From 0ac788288101fdad68d30744bdff115cb110d563 Mon Sep 17 00:00:00 2001 From: David Rice Date: Tue, 6 Jan 2026 19:10:54 +0000 Subject: [PATCH] first commit --- .cproject | 184 + .mxproject | 25 + .project | 32 + .settings/language.settings.xml | 25 + .settings/org.eclipse.core.resources.prefs | 2 + .settings/stm32cubeide.project.prefs | 4 + Core/Inc/main.h | 87 + Core/Inc/stm32g4xx_hal_conf.h | 380 + Core/Inc/stm32g4xx_it.h | 68 + Core/Src/main.c | 739 + Core/Src/stm32g4xx_hal_msp.c | 339 + Core/Src/stm32g4xx_it.c | 232 + Core/Src/syscalls.c | 176 + Core/Src/sysmem.c | 79 + Core/Src/system_stm32g4xx.c | 285 + Core/Startup/startup_stm32g431kbtx.s | 498 + Debug/Core/Src/main.cyclo | 14 + Debug/Core/Src/main.d | 66 + Debug/Core/Src/main.o | Bin 0 -> 1160716 bytes Debug/Core/Src/main.su | 14 + Debug/Core/Src/stm32g4xx_hal_msp.cyclo | 7 + Debug/Core/Src/stm32g4xx_hal_msp.d | 66 + Debug/Core/Src/stm32g4xx_hal_msp.o | Bin 0 -> 1151876 bytes Debug/Core/Src/stm32g4xx_hal_msp.su | 7 + Debug/Core/Src/stm32g4xx_it.cyclo | 11 + Debug/Core/Src/stm32g4xx_it.d | 68 + Debug/Core/Src/stm32g4xx_it.o | Bin 0 -> 1143048 bytes Debug/Core/Src/stm32g4xx_it.su | 11 + Debug/Core/Src/subdir.mk | 42 + Debug/Core/Src/syscalls.cyclo | 18 + Debug/Core/Src/syscalls.d | 1 + Debug/Core/Src/syscalls.o | Bin 0 -> 83688 bytes Debug/Core/Src/syscalls.su | 18 + Debug/Core/Src/sysmem.cyclo | 1 + Debug/Core/Src/sysmem.d | 1 + Debug/Core/Src/sysmem.o | Bin 0 -> 56140 bytes Debug/Core/Src/sysmem.su | 1 + Debug/Core/Src/system_stm32g4xx.cyclo | 2 + Debug/Core/Src/system_stm32g4xx.d | 65 + Debug/Core/Src/system_stm32g4xx.o | Bin 0 -> 1135592 bytes Debug/Core/Src/system_stm32g4xx.su | 2 + Debug/Core/Startup/startup_stm32g431kbtx.d | 2 + Debug/Core/Startup/startup_stm32g431kbtx.o | Bin 0 -> 6928 bytes Debug/Core/Startup/subdir.mk | 27 + .../Src/stm32g4xx_hal.cyclo | 38 + .../STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.d | 66 + .../STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o | Bin 0 -> 1153232 bytes .../STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.su | 38 + .../Src/stm32g4xx_hal_adc.cyclo | 70 + .../Src/stm32g4xx_hal_adc.d | 66 + .../Src/stm32g4xx_hal_adc.o | Bin 0 -> 1185664 bytes .../Src/stm32g4xx_hal_adc.su | 70 + .../Src/stm32g4xx_hal_adc_ex.cyclo | 53 + .../Src/stm32g4xx_hal_adc_ex.d | 66 + .../Src/stm32g4xx_hal_adc_ex.o | Bin 0 -> 1176208 bytes .../Src/stm32g4xx_hal_adc_ex.su | 53 + .../Src/stm32g4xx_hal_cortex.cyclo | 34 + .../Src/stm32g4xx_hal_cortex.d | 66 + .../Src/stm32g4xx_hal_cortex.o | Bin 0 -> 1152264 bytes .../Src/stm32g4xx_hal_cortex.su | 34 + .../Src/stm32g4xx_hal_dma.cyclo | 15 + .../Src/stm32g4xx_hal_dma.d | 66 + .../Src/stm32g4xx_hal_dma.o | Bin 0 -> 1145476 bytes .../Src/stm32g4xx_hal_dma.su | 15 + .../Src/stm32g4xx_hal_dma_ex.cyclo | 5 + .../Src/stm32g4xx_hal_dma_ex.d | 66 + .../Src/stm32g4xx_hal_dma_ex.o | Bin 0 -> 1137756 bytes .../Src/stm32g4xx_hal_dma_ex.su | 5 + .../Src/stm32g4xx_hal_exti.cyclo | 9 + .../Src/stm32g4xx_hal_exti.d | 66 + .../Src/stm32g4xx_hal_exti.o | Bin 0 -> 1139560 bytes .../Src/stm32g4xx_hal_exti.su | 9 + .../Src/stm32g4xx_hal_flash.cyclo | 14 + .../Src/stm32g4xx_hal_flash.d | 66 + .../Src/stm32g4xx_hal_flash.o | Bin 0 -> 1142784 bytes .../Src/stm32g4xx_hal_flash.su | 14 + .../Src/stm32g4xx_hal_flash_ex.cyclo | 22 + .../Src/stm32g4xx_hal_flash_ex.d | 66 + .../Src/stm32g4xx_hal_flash_ex.o | Bin 0 -> 1147664 bytes .../Src/stm32g4xx_hal_flash_ex.su | 22 + .../Src/stm32g4xx_hal_flash_ramfunc.cyclo | 2 + .../Src/stm32g4xx_hal_flash_ramfunc.d | 66 + .../Src/stm32g4xx_hal_flash_ramfunc.o | Bin 0 -> 1133124 bytes .../Src/stm32g4xx_hal_flash_ramfunc.su | 2 + .../Src/stm32g4xx_hal_gpio.cyclo | 8 + .../Src/stm32g4xx_hal_gpio.d | 66 + .../Src/stm32g4xx_hal_gpio.o | Bin 0 -> 1140216 bytes .../Src/stm32g4xx_hal_gpio.su | 8 + .../Src/stm32g4xx_hal_i2c.cyclo | 81 + .../Src/stm32g4xx_hal_i2c.d | 64 + .../Src/stm32g4xx_hal_i2c.o | Bin 0 -> 1121192 bytes .../Src/stm32g4xx_hal_i2c.su | 81 + .../Src/stm32g4xx_hal_i2c_ex.cyclo | 6 + .../Src/stm32g4xx_hal_i2c_ex.d | 64 + .../Src/stm32g4xx_hal_i2c_ex.o | Bin 0 -> 1051828 bytes .../Src/stm32g4xx_hal_i2c_ex.su | 6 + .../Src/stm32g4xx_hal_pwr.cyclo | 16 + .../Src/stm32g4xx_hal_pwr.d | 66 + .../Src/stm32g4xx_hal_pwr.o | Bin 0 -> 1142320 bytes .../Src/stm32g4xx_hal_pwr.su | 16 + .../Src/stm32g4xx_hal_pwr_ex.cyclo | 37 + .../Src/stm32g4xx_hal_pwr_ex.d | 66 + .../Src/stm32g4xx_hal_pwr_ex.o | Bin 0 -> 1152412 bytes .../Src/stm32g4xx_hal_pwr_ex.su | 37 + .../Src/stm32g4xx_hal_rcc.cyclo | 16 + .../Src/stm32g4xx_hal_rcc.d | 66 + .../Src/stm32g4xx_hal_rcc.o | Bin 0 -> 1149936 bytes .../Src/stm32g4xx_hal_rcc.su | 16 + .../Src/stm32g4xx_hal_rcc_ex.cyclo | 19 + .../Src/stm32g4xx_hal_rcc_ex.d | 66 + .../Src/stm32g4xx_hal_rcc_ex.o | Bin 0 -> 1152608 bytes .../Src/stm32g4xx_hal_rcc_ex.su | 19 + .../Src/stm32g4xx_hal_tim.cyclo | 121 + .../Src/stm32g4xx_hal_tim.d | 66 + .../Src/stm32g4xx_hal_tim.o | Bin 0 -> 1233976 bytes .../Src/stm32g4xx_hal_tim.su | 121 + .../Src/stm32g4xx_hal_tim_ex.cyclo | 69 + .../Src/stm32g4xx_hal_tim_ex.d | 66 + .../Src/stm32g4xx_hal_tim_ex.o | Bin 0 -> 1187964 bytes .../Src/stm32g4xx_hal_tim_ex.su | 69 + .../Src/stm32g4xx_hal_uart.cyclo | 70 + .../Src/stm32g4xx_hal_uart.d | 66 + .../Src/stm32g4xx_hal_uart.o | Bin 0 -> 1211148 bytes .../Src/stm32g4xx_hal_uart.su | 70 + .../Src/stm32g4xx_hal_uart_ex.cyclo | 18 + .../Src/stm32g4xx_hal_uart_ex.d | 66 + .../Src/stm32g4xx_hal_uart_ex.o | Bin 0 -> 1149944 bytes .../Src/stm32g4xx_hal_uart_ex.su | 18 + .../Src/stm32g4xx_ll_adc.cyclo | 0 .../Src/stm32g4xx_ll_adc.d | 2 + .../Src/stm32g4xx_ll_adc.o | Bin 0 -> 20172 bytes .../Src/stm32g4xx_ll_adc.su | 0 .../STM32G4xx_HAL_Driver/Src/subdir.mk | 84 + Debug/POWER_SWITCH.elf | Bin 0 -> 1292788 bytes Debug/POWER_SWITCH.list | 18217 ++++++++++++++++ Debug/POWER_SWITCH.map | 4667 ++++ Debug/makefile | 94 + Debug/objects.list | 27 + Debug/objects.mk | 9 + Debug/sources.mk | 28 + .../Device/ST/STM32G4xx/Include/stm32g431xx.h | 13136 +++++++++++ .../Device/ST/STM32G4xx/Include/stm32g4xx.h | 269 + .../ST/STM32G4xx/Include/system_stm32g4xx.h | 104 + Drivers/CMSIS/Device/ST/STM32G4xx/LICENSE.txt | 6 + Drivers/CMSIS/Include/cmsis_armcc.h | 894 + Drivers/CMSIS/Include/cmsis_armclang.h | 1444 ++ Drivers/CMSIS/Include/cmsis_armclang_ltm.h | 1891 ++ Drivers/CMSIS/Include/cmsis_compiler.h | 283 + Drivers/CMSIS/Include/cmsis_gcc.h | 2168 ++ Drivers/CMSIS/Include/cmsis_iccarm.h | 964 + Drivers/CMSIS/Include/cmsis_version.h | 39 + Drivers/CMSIS/Include/core_armv81mml.h | 2968 +++ Drivers/CMSIS/Include/core_armv8mbl.h | 1921 ++ Drivers/CMSIS/Include/core_armv8mml.h | 2835 +++ Drivers/CMSIS/Include/core_cm0.h | 952 + Drivers/CMSIS/Include/core_cm0plus.h | 1085 + Drivers/CMSIS/Include/core_cm1.h | 979 + Drivers/CMSIS/Include/core_cm23.h | 1996 ++ Drivers/CMSIS/Include/core_cm3.h | 1937 ++ Drivers/CMSIS/Include/core_cm33.h | 2910 +++ Drivers/CMSIS/Include/core_cm35p.h | 2910 +++ Drivers/CMSIS/Include/core_cm4.h | 2124 ++ Drivers/CMSIS/Include/core_cm7.h | 2725 +++ Drivers/CMSIS/Include/core_sc000.h | 1025 + Drivers/CMSIS/Include/core_sc300.h | 1912 ++ Drivers/CMSIS/Include/mpu_armv7.h | 272 + Drivers/CMSIS/Include/mpu_armv8.h | 346 + Drivers/CMSIS/Include/tz_context.h | 70 + Drivers/CMSIS/LICENSE.txt | 201 + .../Inc/Legacy/stm32_hal_legacy.h | 4389 ++++ .../STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h | 630 + .../Inc/stm32g4xx_hal_adc.h | 2318 ++ .../Inc/stm32g4xx_hal_adc_ex.h | 1570 ++ .../Inc/stm32g4xx_hal_cortex.h | 421 + .../Inc/stm32g4xx_hal_def.h | 211 + .../Inc/stm32g4xx_hal_dma.h | 852 + .../Inc/stm32g4xx_hal_dma_ex.h | 264 + .../Inc/stm32g4xx_hal_exti.h | 315 + .../Inc/stm32g4xx_hal_flash.h | 1017 + .../Inc/stm32g4xx_hal_flash_ex.h | 89 + .../Inc/stm32g4xx_hal_flash_ramfunc.h | 74 + .../Inc/stm32g4xx_hal_gpio.h | 326 + .../Inc/stm32g4xx_hal_gpio_ex.h | 340 + .../Inc/stm32g4xx_hal_pwr.h | 411 + .../Inc/stm32g4xx_hal_pwr_ex.h | 817 + .../Inc/stm32g4xx_hal_rcc.h | 3406 +++ .../Inc/stm32g4xx_hal_rcc_ex.h | 1646 ++ .../Inc/stm32g4xx_hal_tim.h | 2613 +++ .../Inc/stm32g4xx_hal_tim_ex.h | 2140 ++ .../Inc/stm32g4xx_hal_uart.h | 1745 ++ .../Inc/stm32g4xx_hal_uart_ex.h | 929 + .../Inc/stm32g4xx_ll_adc.h | 9204 ++++++++ .../Inc/stm32g4xx_ll_bus.h | 1680 ++ .../Inc/stm32g4xx_ll_cortex.h | 637 + .../Inc/stm32g4xx_ll_crs.h | 781 + .../Inc/stm32g4xx_ll_dma.h | 2578 +++ .../Inc/stm32g4xx_ll_dmamux.h | 2006 ++ .../Inc/stm32g4xx_ll_exti.h | 1422 ++ .../Inc/stm32g4xx_ll_gpio.h | 994 + .../Inc/stm32g4xx_ll_lpuart.h | 2658 +++ .../Inc/stm32g4xx_ll_pwr.h | 1604 ++ .../Inc/stm32g4xx_ll_rcc.h | 3008 +++ .../Inc/stm32g4xx_ll_system.h | 1519 ++ .../Inc/stm32g4xx_ll_tim.h | 6724 ++++++ .../Inc/stm32g4xx_ll_usart.h | 4399 ++++ .../Inc/stm32g4xx_ll_utils.h | 329 + Drivers/STM32G4xx_HAL_Driver/LICENSE.txt | 6 + .../STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c | 797 + .../Src/stm32g4xx_hal_adc.c | 3716 ++++ .../Src/stm32g4xx_hal_adc_ex.c | 2384 ++ .../Src/stm32g4xx_hal_cortex.c | 541 + .../Src/stm32g4xx_hal_dma.c | 1110 + .../Src/stm32g4xx_hal_dma_ex.c | 298 + .../Src/stm32g4xx_hal_exti.c | 639 + .../Src/stm32g4xx_hal_flash.c | 794 + .../Src/stm32g4xx_hal_flash_ex.c | 1431 ++ .../Src/stm32g4xx_hal_flash_ramfunc.c | 253 + .../Src/stm32g4xx_hal_gpio.c | 532 + .../Src/stm32g4xx_hal_pwr.c | 652 + .../Src/stm32g4xx_hal_pwr_ex.c | 1182 + .../Src/stm32g4xx_hal_rcc.c | 1400 ++ .../Src/stm32g4xx_hal_rcc_ex.c | 1873 ++ .../Src/stm32g4xx_hal_tim.c | 8122 +++++++ .../Src/stm32g4xx_hal_tim_ex.c | 3686 ++++ .../Src/stm32g4xx_hal_uart.c | 4695 ++++ .../Src/stm32g4xx_hal_uart_ex.c | 1042 + .../Src/stm32g4xx_ll_adc.c | 1419 ++ POWER_SWITCH.ioc | 209 + README.md | 2 + STM32G431KBTX_FLASH.ld | 187 + 230 files changed, 182957 insertions(+) create mode 100644 .cproject create mode 100644 .mxproject create mode 100644 .project create mode 100644 .settings/language.settings.xml create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/stm32cubeide.project.prefs create mode 100644 Core/Inc/main.h create mode 100644 Core/Inc/stm32g4xx_hal_conf.h create mode 100644 Core/Inc/stm32g4xx_it.h create mode 100644 Core/Src/main.c create mode 100644 Core/Src/stm32g4xx_hal_msp.c create mode 100644 Core/Src/stm32g4xx_it.c create mode 100644 Core/Src/syscalls.c create mode 100644 Core/Src/sysmem.c create mode 100644 Core/Src/system_stm32g4xx.c create mode 100644 Core/Startup/startup_stm32g431kbtx.s create mode 100644 Debug/Core/Src/main.cyclo create mode 100644 Debug/Core/Src/main.d create mode 100644 Debug/Core/Src/main.o create mode 100644 Debug/Core/Src/main.su create mode 100644 Debug/Core/Src/stm32g4xx_hal_msp.cyclo create mode 100644 Debug/Core/Src/stm32g4xx_hal_msp.d create mode 100644 Debug/Core/Src/stm32g4xx_hal_msp.o create mode 100644 Debug/Core/Src/stm32g4xx_hal_msp.su create mode 100644 Debug/Core/Src/stm32g4xx_it.cyclo create mode 100644 Debug/Core/Src/stm32g4xx_it.d create mode 100644 Debug/Core/Src/stm32g4xx_it.o create mode 100644 Debug/Core/Src/stm32g4xx_it.su create mode 100644 Debug/Core/Src/subdir.mk create mode 100644 Debug/Core/Src/syscalls.cyclo create mode 100644 Debug/Core/Src/syscalls.d create mode 100644 Debug/Core/Src/syscalls.o create mode 100644 Debug/Core/Src/syscalls.su create mode 100644 Debug/Core/Src/sysmem.cyclo create mode 100644 Debug/Core/Src/sysmem.d create mode 100644 Debug/Core/Src/sysmem.o create mode 100644 Debug/Core/Src/sysmem.su create mode 100644 Debug/Core/Src/system_stm32g4xx.cyclo create mode 100644 Debug/Core/Src/system_stm32g4xx.d create mode 100644 Debug/Core/Src/system_stm32g4xx.o create mode 100644 Debug/Core/Src/system_stm32g4xx.su create mode 100644 Debug/Core/Startup/startup_stm32g431kbtx.d create mode 100644 Debug/Core/Startup/startup_stm32g431kbtx.o create mode 100644 Debug/Core/Startup/subdir.mk create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.cyclo create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.d create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.su create mode 100644 Debug/Drivers/STM32G4xx_HAL_Driver/Src/subdir.mk create mode 100644 Debug/POWER_SWITCH.elf create mode 100644 Debug/POWER_SWITCH.list create mode 100644 Debug/POWER_SWITCH.map create mode 100644 Debug/makefile create mode 100644 Debug/objects.list create mode 100644 Debug/objects.mk create mode 100644 Debug/sources.mk create mode 100644 Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h create mode 100644 Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h create mode 100644 Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h create mode 100644 Drivers/CMSIS/Device/ST/STM32G4xx/LICENSE.txt create mode 100644 Drivers/CMSIS/Include/cmsis_armcc.h create mode 100644 Drivers/CMSIS/Include/cmsis_armclang.h create mode 100644 Drivers/CMSIS/Include/cmsis_armclang_ltm.h create mode 100644 Drivers/CMSIS/Include/cmsis_compiler.h create mode 100644 Drivers/CMSIS/Include/cmsis_gcc.h create mode 100644 Drivers/CMSIS/Include/cmsis_iccarm.h create mode 100644 Drivers/CMSIS/Include/cmsis_version.h create mode 100644 Drivers/CMSIS/Include/core_armv81mml.h create mode 100644 Drivers/CMSIS/Include/core_armv8mbl.h create mode 100644 Drivers/CMSIS/Include/core_armv8mml.h create mode 100644 Drivers/CMSIS/Include/core_cm0.h create mode 100644 Drivers/CMSIS/Include/core_cm0plus.h create mode 100644 Drivers/CMSIS/Include/core_cm1.h create mode 100644 Drivers/CMSIS/Include/core_cm23.h create mode 100644 Drivers/CMSIS/Include/core_cm3.h create mode 100644 Drivers/CMSIS/Include/core_cm33.h create mode 100644 Drivers/CMSIS/Include/core_cm35p.h create mode 100644 Drivers/CMSIS/Include/core_cm4.h create mode 100644 Drivers/CMSIS/Include/core_cm7.h create mode 100644 Drivers/CMSIS/Include/core_sc000.h create mode 100644 Drivers/CMSIS/Include/core_sc300.h create mode 100644 Drivers/CMSIS/Include/mpu_armv7.h create mode 100644 Drivers/CMSIS/Include/mpu_armv8.h create mode 100644 Drivers/CMSIS/Include/tz_context.h create mode 100644 Drivers/CMSIS/LICENSE.txt create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_cortex.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_crs.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dma.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dmamux.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_gpio.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_lpuart.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_pwr.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_rcc.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_system.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_tim.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usart.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_utils.h create mode 100644 Drivers/STM32G4xx_HAL_Driver/LICENSE.txt create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c create mode 100644 Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c create mode 100644 POWER_SWITCH.ioc create mode 100644 README.md create mode 100644 STM32G431KBTX_FLASH.ld diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..73167aa --- /dev/null +++ b/.cproject @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.mxproject b/.mxproject new file mode 100644 index 0000000..4493f8e --- /dev/null +++ b/.mxproject @@ -0,0 +1,25 @@ +[PreviousLibFiles] +LibFiles=Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_bus.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_system.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_utils.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crs.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dmamux.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_tim.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_lpuart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_adc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_adc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_bus.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_system.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_utils.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_crs.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_dmamux.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_tim.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_usart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_ll_lpuart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g431xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv81mml.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm35p.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; + +[PreviousUsedCubeIDEFiles] +SourceFiles=Core\Src\main.c;Core\Src\stm32g4xx_it.c;Core\Src\stm32g4xx_hal_msp.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_adc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_ll_adc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;;; +HeaderPath=Drivers\STM32G4xx_HAL_Driver\Inc;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32G4xx\Include;Drivers\CMSIS\Include;Core\Inc; +CDefines=USE_HAL_DRIVER;STM32G431xx;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=3 +HeaderFiles#0=..\Core\Inc\stm32g4xx_it.h +HeaderFiles#1=..\Core\Inc\stm32g4xx_hal_conf.h +HeaderFiles#2=..\Core\Inc\main.h +HeaderFolderListSize=1 +HeaderPath#0=..\Core\Inc +HeaderFiles=; +SourceFileListSize=3 +SourceFiles#0=..\Core\Src\stm32g4xx_it.c +SourceFiles#1=..\Core\Src\stm32g4xx_hal_msp.c +SourceFiles#2=..\Core\Src\main.c +SourceFolderListSize=1 +SourcePath#0=..\Core\Src +SourceFiles=; + diff --git a/.project b/.project new file mode 100644 index 0000000..1f68535 --- /dev/null +++ b/.project @@ -0,0 +1,32 @@ + + + POWER_SWITCH + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.st.stm32cube.ide.mcu.MCUProjectNature + com.st.stm32cube.ide.mcu.MCUCubeProjectNature + org.eclipse.cdt.core.cnature + com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature + com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature + com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature + com.st.stm32cube.ide.mcu.MCURootProjectNature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml new file mode 100644 index 0000000..f8fcf52 --- /dev/null +++ b/.settings/language.settings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs new file mode 100644 index 0000000..5e33848 --- /dev/null +++ b/.settings/stm32cubeide.project.prefs @@ -0,0 +1,4 @@ +66BE74F758C12D739921AEA421D593D3=1 +8DF89ED150041C4CBC7CB9A9CAA90856=9006C687F3CCB116D99763CA2F428CD0 +DC22A860405A8BF2F2C095E5B6529F12=9006C687F3CCB116D99763CA2F428CD0 +eclipse.preferences.version=1 diff --git a/Core/Inc/main.h b/Core/Inc/main.h new file mode 100644 index 0000000..dca560f --- /dev/null +++ b/Core/Inc/main.h @@ -0,0 +1,87 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +#define USART2_TX_Pin GPIO_PIN_2 +#define USART2_TX_GPIO_Port GPIOA +#define USART2_RX_Pin GPIO_PIN_3 +#define USART2_RX_GPIO_Port GPIOA +#define VIN_Pin GPIO_PIN_6 +#define VIN_GPIO_Port GPIOA +#define VOUT_Pin GPIO_PIN_7 +#define VOUT_GPIO_Port GPIOA +#define POWER_SWITCH_Pin GPIO_PIN_12 +#define POWER_SWITCH_GPIO_Port GPIOA +#define T_SWDIO_Pin GPIO_PIN_13 +#define T_SWDIO_GPIO_Port GPIOA +#define T_SWCLK_Pin GPIO_PIN_14 +#define T_SWCLK_GPIO_Port GPIOA +#define T_SWO_Pin GPIO_PIN_3 +#define T_SWO_GPIO_Port GPIOB +#define LD2_Pin GPIO_PIN_8 +#define LD2_GPIO_Port GPIOB + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ diff --git a/Core/Inc/stm32g4xx_hal_conf.h b/Core/Inc/stm32g4xx_hal_conf.h new file mode 100644 index 0000000..a34a8dd --- /dev/null +++ b/Core/Inc/stm32g4xx_hal_conf.h @@ -0,0 +1,380 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32g4xx_hal_conf.h + * @author MCD Application Team + * @brief HAL configuration file + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_CONF_H +#define STM32G4xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ + +#define HAL_MODULE_ENABLED + + #define HAL_ADC_MODULE_ENABLED +/*#define HAL_COMP_MODULE_ENABLED */ +/*#define HAL_CORDIC_MODULE_ENABLED */ +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_FDCAN_MODULE_ENABLED */ +/*#define HAL_FMAC_MODULE_ENABLED */ +/*#define HAL_HRTIM_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_I2C_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_LPTIM_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_QSPI_MODULE_ENABLED */ +/*#define HAL_RNG_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SAI_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SMBUS_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +#define HAL_UART_MODULE_ENABLED +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Register Callbacks selection ############################## */ +/** + * @brief This is the list of modules where register callback can be used + */ +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U +#define USE_HAL_COMP_REGISTER_CALLBACKS 0U +#define USE_HAL_CORDIC_REGISTER_CALLBACKS 0U +#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U +#define USE_HAL_EXTI_REGISTER_CALLBACKS 0U +#define USE_HAL_FDCAN_REGISTER_CALLBACKS 0U +#define USE_HAL_FMAC_REGISTER_CALLBACKS 0U +#define USE_HAL_HRTIM_REGISTER_CALLBACKS 0U +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U +#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U +#define USE_HAL_NAND_REGISTER_CALLBACKS 0U +#define USE_HAL_NOR_REGISTER_CALLBACKS 0U +#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U +#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U +#define USE_HAL_RNG_REGISTER_CALLBACKS 0U +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U +#define USE_HAL_SAI_REGISTER_CALLBACKS 0U +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U +#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U +#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U +#define USE_HAL_UART_REGISTER_CALLBACKS 0U +#define USE_HAL_USART_REGISTER_CALLBACKS 0U +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U + +/* ########################## Oscillator Values adaptation ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE (8000000UL) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT (100UL) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE (16000000UL) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal High Speed oscillator (HSI48) value for USB FS and RNG. + * This internal oscillator is mainly dedicated to provide a high precision clock to + * the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. + * When the CRS is not used, the HSI48 RC oscillator runs on it default frequency + * which is subject to manufacturing process variations. + */ +#if !defined (HSI48_VALUE) + #define HSI48_VALUE (48000000UL) /*!< Value of the Internal High Speed oscillator for USB FS/RNG in Hz. + The real value my vary depending on manufacturing process variations.*/ +#endif /* HSI48_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) +/*!< Value of the Internal Low Speed oscillator in Hz +The real value may vary depending on the variations in voltage and temperature.*/ +#define LSI_VALUE (32000UL) /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ +/** + * @brief External Low Speed oscillator (LSE) value. + * This value is used by the UART, RTC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) +#define LSE_VALUE (32768UL) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) +#define LSE_STARTUP_TIMEOUT (5000UL) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S and SAI peripherals + * This value is used by the I2S and SAI HAL modules to compute the I2S and SAI clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + */ +#if !defined (EXTERNAL_CLOCK_VALUE) +#define EXTERNAL_CLOCK_VALUE (12288000UL) /*!< Value of the External oscillator in Hz*/ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ + +#define VDD_VALUE (3300UL) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY (0UL) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 0U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver + * Activated: CRC code is present inside driver + * Deactivated: CRC code cleaned from driver + */ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED +#include "stm32g4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED +#include "stm32g4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED +#include "stm32g4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED +#include "stm32g4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED +#include "stm32g4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED +#include "stm32g4xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CORDIC_MODULE_ENABLED +#include "stm32g4xx_hal_cordic.h" +#endif /* HAL_CORDIC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED +#include "stm32g4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED +#include "stm32g4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED +#include "stm32g4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED +#include "stm32g4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_FDCAN_MODULE_ENABLED +#include "stm32g4xx_hal_fdcan.h" +#endif /* HAL_FDCAN_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED +#include "stm32g4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_FMAC_MODULE_ENABLED +#include "stm32g4xx_hal_fmac.h" +#endif /* HAL_FMAC_MODULE_ENABLED */ + +#ifdef HAL_HRTIM_MODULE_ENABLED +#include "stm32g4xx_hal_hrtim.h" +#endif /* HAL_HRTIM_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED +#include "stm32g4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED +#include "stm32g4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED +#include "stm32g4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED +#include "stm32g4xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED +#include "stm32g4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED +#include "stm32g4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED +#include "stm32g4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED +#include "stm32g4xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED +#include "stm32g4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED +#include "stm32g4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED +#include "stm32g4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED +#include "stm32g4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED +#include "stm32g4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED +#include "stm32g4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED +#include "stm32g4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED +#include "stm32g4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED +#include "stm32g4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED +#include "stm32g4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED +#include "stm32g4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED +#include "stm32g4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED +#include "stm32g4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED +#include "stm32g4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ +#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ +void assert_failed(uint8_t *file, uint32_t line); +#else +#define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_CONF_H */ diff --git a/Core/Inc/stm32g4xx_it.h b/Core/Inc/stm32g4xx_it.h new file mode 100644 index 0000000..9c166af --- /dev/null +++ b/Core/Inc/stm32g4xx_it.h @@ -0,0 +1,68 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32g4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_IT_H +#define __STM32G4xx_IT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +void TIM2_IRQHandler(void); +void USART2_IRQHandler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_IT_H */ diff --git a/Core/Src/main.c b/Core/Src/main.c new file mode 100644 index 0000000..cca1c04 --- /dev/null +++ b/Core/Src/main.c @@ -0,0 +1,739 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +#include "stm32g4xx_hal.h" +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ +#define IN_SYNC_BYTE_1 'A' +#define IN_SYNC_BYTE_2 'R' + +#define VREFINT_CAL_ADDR ((uint16_t*) ((uint32_t)0x1FFF75AA)) +#define VREFINT_CAL_VREF 3000UL + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +ADC_HandleTypeDef hadc1; +ADC_HandleTypeDef hadc2; + +TIM_HandleTypeDef htim2; + +UART_HandleTypeDef huart2; + +/* USER CODE BEGIN PV */ +/** + * @brief Structure to hold the time and date data in binary format + */ + +uint8_t rx_hold_buffer[2]; +uint8_t rx_buffer[32]; +uint8_t tx_buffer[32]; +uint8_t tx_len = 0x00; +uint8_t rx_counter = 0x00; +uint8_t rx_len = 0x00; +uint8_t rx_len_counter = 0x00; +uint16_t rx_checksum = 0x0000; +uint8_t rx_checksum_hold_1 = 0x00; +uint8_t rx_checksum_hold_2 = 0x00; +uint16_t rx_checksum_hold = 0x0000; +uint8_t power_state_value = 0x00; +uint8_t command = 0x00; +uint8_t adc_task_flag = 0x00; +uint8_t uart_tx_flag = 0x00; +uint16_t vin_adc_val = 0x0000; +uint16_t vout_adc_val = 0x0000; +uint32_t vdd_ref = 0x00000000; + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_USART2_UART_Init(void); +static void MX_ADC2_Init(void); +static void MX_TIM2_Init(void); +static void MX_ADC1_Init(void); +/* USER CODE BEGIN PFP */ +void power_switch (uint8_t state); +void adc_task(void); +uint32_t get_actual_vdda(ADC_HandleTypeDef *hadc); +uint32_t get_calibrated_value_mv(uint32_t raw_adc_value, uint32_t vdda_mv); + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_USART2_UART_Init(); + MX_ADC2_Init(); + MX_TIM2_Init(); + MX_ADC1_Init(); + /* USER CODE BEGIN 2 */ + + /*Configure GPIO pin output Level */ + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + + /* Setup UART interrupts */ + /* Make sure UART Rx counters and flags are reset */ + rx_counter = 0x00; + rx_len = 0x00; + rx_len_counter = 0x00; + adc_task_flag = 0x00; + uart_tx_flag = 0x00; + + HAL_UART_Receive_IT(&huart2, rx_hold_buffer, 1); + + /* Get real VDDA value */ + vdd_ref = get_actual_vdda(&hadc1); + + tx_buffer[0] = vdd_ref >> 24; + tx_buffer[1] = vdd_ref >> 16; + tx_buffer[2] = vdd_ref >> 8; + tx_buffer[3] = vdd_ref; + tx_len = 4; + + HAL_UART_Transmit(&huart2, tx_buffer, tx_len, HAL_MAX_DELAY); + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + if (adc_task_flag == 0xff) + { + adc_task_flag = 0x00; + adc_task(); + } + + if (uart_tx_flag == 0xff) + { + uart_tx_flag = 0x00; + HAL_UART_Transmit(&huart2, tx_buffer, tx_len, HAL_MAX_DELAY); + } + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1); + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV1; + RCC_OscInitStruct.PLL.PLLN = 16; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; + RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief ADC1 Initialization Function + * @param None + * @retval None + */ +static void MX_ADC1_Init(void) +{ + + /* USER CODE BEGIN ADC1_Init 0 */ + + /* USER CODE END ADC1_Init 0 */ + + ADC_MultiModeTypeDef multimode = {0}; + ADC_ChannelConfTypeDef sConfig = {0}; + + /* USER CODE BEGIN ADC1_Init 1 */ + + /* USER CODE END ADC1_Init 1 */ + + /** Common config + */ + hadc1.Instance = ADC1; + hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV16; + hadc1.Init.Resolution = ADC_RESOLUTION_12B; + hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + hadc1.Init.GainCompensation = 0; + hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; + hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + hadc1.Init.LowPowerAutoWait = DISABLE; + hadc1.Init.ContinuousConvMode = DISABLE; + hadc1.Init.NbrOfConversion = 1; + hadc1.Init.DiscontinuousConvMode = DISABLE; + hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + hadc1.Init.DMAContinuousRequests = DISABLE; + hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; + hadc1.Init.OversamplingMode = DISABLE; + if (HAL_ADC_Init(&hadc1) != HAL_OK) + { + Error_Handler(); + } + + /** Configure the ADC multi-mode + */ + multimode.Mode = ADC_MODE_INDEPENDENT; + if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_VREFINT; + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + sConfig.SingleDiff = ADC_SINGLE_ENDED; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; + if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN ADC1_Init 2 */ + + /* USER CODE END ADC1_Init 2 */ + +} + +/** + * @brief ADC2 Initialization Function + * @param None + * @retval None + */ +static void MX_ADC2_Init(void) +{ + + /* USER CODE BEGIN ADC2_Init 0 */ + + /* USER CODE END ADC2_Init 0 */ + + ADC_ChannelConfTypeDef sConfig = {0}; + + /* USER CODE BEGIN ADC2_Init 1 */ + + /* USER CODE END ADC2_Init 1 */ + + /** Common config + */ + hadc2.Instance = ADC2; + hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV16; + hadc2.Init.Resolution = ADC_RESOLUTION_12B; + hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + hadc2.Init.GainCompensation = 0; + hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + hadc2.Init.LowPowerAutoWait = DISABLE; + hadc2.Init.ContinuousConvMode = DISABLE; + hadc2.Init.NbrOfConversion = 2; + hadc2.Init.DiscontinuousConvMode = DISABLE; + hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START; + hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + hadc2.Init.DMAContinuousRequests = DISABLE; + hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + hadc2.Init.OversamplingMode = DISABLE; + if (HAL_ADC_Init(&hadc2) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_3; + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_24CYCLES_5; + sConfig.SingleDiff = ADC_SINGLE_ENDED; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_4; + sConfig.Rank = ADC_REGULAR_RANK_2; + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN ADC2_Init 2 */ + + /* USER CODE END ADC2_Init 2 */ + +} + +/** + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + htim2.Init.Prescaler = 0; + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + htim2.Init.Period = 128999; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + +} + +/** + * @brief USART2 Initialization Function + * @param None + * @retval None + */ +static void MX_USART2_UART_Init(void) +{ + + /* USER CODE BEGIN USART2_Init 0 */ + + /* USER CODE END USART2_Init 0 */ + + /* USER CODE BEGIN USART2_Init 1 */ + + /* USER CODE END USART2_Init 1 */ + huart2.Instance = USART2; + huart2.Init.BaudRate = 921600; + huart2.Init.WordLength = UART_WORDLENGTH_8B; + huart2.Init.StopBits = UART_STOPBITS_1; + huart2.Init.Parity = UART_PARITY_NONE; + huart2.Init.Mode = UART_MODE_TX_RX; + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1; + huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart2) != HAL_OK) + { + Error_Handler(); + } + if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) + { + Error_Handler(); + } + if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) + { + Error_Handler(); + } + if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART2_Init 2 */ + + /* USER CODE END USART2_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + /* USER CODE BEGIN MX_GPIO_Init_1 */ + + /* USER CODE END MX_GPIO_Init_1 */ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin : POWER_SWITCH_Pin */ + GPIO_InitStruct.Pin = POWER_SWITCH_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(POWER_SWITCH_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : LD2_Pin */ + GPIO_InitStruct.Pin = LD2_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct); + + /* USER CODE BEGIN MX_GPIO_Init_2 */ + + /* USER CODE END MX_GPIO_Init_2 */ +} + +/* USER CODE BEGIN 4 */ +uint32_t get_actual_vdda(ADC_HandleTypeDef *hadc) +{ + uint32_t vrefint_raw = 0; + + /* Perform ADC reading of the VREFINT channel */ + HAL_ADC_Start(hadc); + if (HAL_ADC_PollForConversion(hadc, 10) == HAL_OK) { + vrefint_raw = HAL_ADC_GetValue(hadc); + } + + HAL_ADC_Stop(hadc); + + if (vrefint_raw == 0) return 0; /* Avoid division by zero */ + + /* Use the standard ST formula to calculate VDDA */ + /* VDDA = VREFINT_CAL_VREF * VREFINT_CAL / VREFINT_DATA */ + uint32_t vdda_mv = (VREFINT_CAL_VREF * (uint32_t)(*VREFINT_CAL_ADDR)) / vrefint_raw; + + return vdda_mv; +} + +/* Converts a raw ADC reading to real mV using the calculated VDDA */ +uint32_t get_calibrated_value_mv(uint32_t raw_adc_value, uint32_t vdda_mv) +{ + /* Correct for 12-bit ADC (4095) */ + return (raw_adc_value * vdda_mv) / 4095; +} + +/* ADC task */ +void adc_task (void) +{ + HAL_ADC_Start(&hadc2); + HAL_ADC_PollForConversion(&hadc2, 100); + vin_adc_val = HAL_ADC_GetValue(&hadc2); + + HAL_ADC_Start(&hadc2); + HAL_ADC_PollForConversion(&hadc2, 100); + vout_adc_val = HAL_ADC_GetValue(&hadc2); + + HAL_ADC_Stop(&hadc2); +} + +/* Power switch function */ +void power_switch (uint8_t state) +{ + if (state == 1) + { + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET); + } + + else + { + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + } +} + +/* UART Tx callback */ +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +{ + /* Do nothing here for now */ +} + +/* UART Rx callback */ +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) +{ + /* If data received on UART */ + if(huart->Instance==USART2) + { + /* Act on received data */ + switch (rx_counter) + { + case 0x00: + /* Check to see if first sync byte has been received */ + if (rx_hold_buffer[0] == IN_SYNC_BYTE_1) + { + /* Got it, so now wait for the second sync byte */ + rx_counter++; + } + + break; + + case 0x01: + /* Check to see if second sync byte has been received */ + if (rx_hold_buffer[0] == IN_SYNC_BYTE_2) + { + /* Got it, so now wait for the data byte */ + rx_counter++; + } + + else + { + /* Not got the second sync byte */ + /* If first sync byte found here, then still wait for second */ + if (rx_hold_buffer[0] == IN_SYNC_BYTE_1) + { + /* Got it, so now wait for the second sync byte */ + rx_counter = 0x01; + } + + /* Otherwise start again and wait for first sync byte */ + else + { + rx_counter = 0x00; + } + } + + break; + + case 0x02: + /* Get rx length and reset counter */ + rx_len = rx_hold_buffer[0]; + rx_len_counter = 0x00; + rx_counter++; + break; + + case 0x03: + /* Store entire length of Data bytes */ + /* Increase count */ + rx_len_counter++; + + /* Store data */ + rx_buffer[rx_len_counter - 1] = rx_hold_buffer[0]; + + /* Check to see if we have all the expected data bytes */ + /* If so, then move on the CRC */ + if (rx_len_counter == rx_len) + { + rx_counter++; + rx_len_counter = 0x00; + } + + break; + + case 0x04: + /* Store Rx checksum byte #1 */ + rx_checksum_hold_1 = rx_hold_buffer[0]; + rx_counter++; + break; + + case 0x05: + /* Store Rx checksum byte #2, reset and calculate checksum */ + rx_checksum_hold_2 = rx_hold_buffer[0]; + + rx_checksum_hold = (rx_checksum_hold_1 << 8) | rx_checksum_hold_2; + + rx_checksum = 0; + + /* Need to apply to all data bits */ + for (rx_len_counter = 0x00; rx_len_counter < rx_len; rx_len_counter++) + { + rx_checksum += rx_buffer[rx_len_counter]; + } + + rx_len = 0x00; + rx_len_counter = 0x00; + + rx_checksum = ~rx_checksum; + + /* If checksum calculated equals the received checksum of packet then we got a good packet */ + if (rx_checksum == rx_checksum_hold) + { + /* Rx is finished, so reset count to wait for another first sync byte (also act on command/data)*/ + rx_counter = 0x00; + + command = rx_buffer[0]; + + switch (command) + { + /* 'S' - Set power output state */ + case 0x53: + power_state_value = rx_buffer[1]; + power_switch(power_state_value); + break; + + /* 'V' - Get voltages (both input and output) */ + case 0x56: + adc_task_flag = 0xff; + break; + + default: + break; + } + } + + /* Bad packet received */ + else + { + /* Rx is finished, so reset count to wait for another first sync byte (bad packet so no flag)*/ + rx_counter = 0x00; + } + + break; + + /* Default case - NOT USED!*/ + default: + break; + } + + /* Reset interrupts */ + HAL_UART_Receive_IT(&huart2, rx_hold_buffer, 1); + } +} + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } + /* USER CODE END Error_Handler_Debug */ +} +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ diff --git a/Core/Src/stm32g4xx_hal_msp.c b/Core/Src/stm32g4xx_hal_msp.c new file mode 100644 index 0000000..26d2ed6 --- /dev/null +++ b/Core/Src/stm32g4xx_hal_msp.c @@ -0,0 +1,339 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32g4xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral + */ + HAL_PWREx_DisableUCPDDeadBattery(); + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +static uint32_t HAL_RCC_ADC12_CLK_ENABLED=0; + +/** + * @brief ADC MSP Initialization + * This function configures the hardware resources used in this example + * @param hadc: ADC handle pointer + * @retval None + */ +void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(hadc->Instance==ADC1) + { + /* USER CODE BEGIN ADC1_MspInit 0 */ + + /* USER CODE END ADC1_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + HAL_RCC_ADC12_CLK_ENABLED++; + if(HAL_RCC_ADC12_CLK_ENABLED==1){ + __HAL_RCC_ADC12_CLK_ENABLE(); + } + /* USER CODE BEGIN ADC1_MspInit 1 */ + + /* USER CODE END ADC1_MspInit 1 */ + } + else if(hadc->Instance==ADC2) + { + /* USER CODE BEGIN ADC2_MspInit 0 */ + + /* USER CODE END ADC2_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + HAL_RCC_ADC12_CLK_ENABLED++; + if(HAL_RCC_ADC12_CLK_ENABLED==1){ + __HAL_RCC_ADC12_CLK_ENABLE(); + } + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**ADC2 GPIO Configuration + PA6 ------> ADC2_IN3 + PA7 ------> ADC2_IN4 + */ + GPIO_InitStruct.Pin = VIN_Pin|VOUT_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN ADC2_MspInit 1 */ + + /* USER CODE END ADC2_MspInit 1 */ + } + +} + +/** + * @brief ADC MSP De-Initialization + * This function freeze the hardware resources used in this example + * @param hadc: ADC handle pointer + * @retval None + */ +void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) +{ + if(hadc->Instance==ADC1) + { + /* USER CODE BEGIN ADC1_MspDeInit 0 */ + + /* USER CODE END ADC1_MspDeInit 0 */ + /* Peripheral clock disable */ + HAL_RCC_ADC12_CLK_ENABLED--; + if(HAL_RCC_ADC12_CLK_ENABLED==0){ + __HAL_RCC_ADC12_CLK_DISABLE(); + } + /* USER CODE BEGIN ADC1_MspDeInit 1 */ + + /* USER CODE END ADC1_MspDeInit 1 */ + } + else if(hadc->Instance==ADC2) + { + /* USER CODE BEGIN ADC2_MspDeInit 0 */ + + /* USER CODE END ADC2_MspDeInit 0 */ + /* Peripheral clock disable */ + HAL_RCC_ADC12_CLK_ENABLED--; + if(HAL_RCC_ADC12_CLK_ENABLED==0){ + __HAL_RCC_ADC12_CLK_DISABLE(); + } + + /**ADC2 GPIO Configuration + PA6 ------> ADC2_IN3 + PA7 ------> ADC2_IN4 + */ + HAL_GPIO_DeInit(GPIOA, VIN_Pin|VOUT_Pin); + + /* USER CODE BEGIN ADC2_MspDeInit 1 */ + + /* USER CODE END ADC2_MspDeInit 1 */ + } + +} + +/** + * @brief TIM_Base MSP Initialization + * This function configures the hardware resources used in this example + * @param htim_base: TIM_Base handle pointer + * @retval None + */ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + /* TIM2 interrupt Init */ + HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(TIM2_IRQn); + /* USER CODE BEGIN TIM2_MspInit 1 */ + + /* USER CODE END TIM2_MspInit 1 */ + + } + +} + +/** + * @brief TIM_Base MSP De-Initialization + * This function freeze the hardware resources used in this example + * @param htim_base: TIM_Base handle pointer + * @retval None + */ +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspDeInit 0 */ + + /* USER CODE END TIM2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM2_CLK_DISABLE(); + + /* TIM2 interrupt DeInit */ + HAL_NVIC_DisableIRQ(TIM2_IRQn); + /* USER CODE BEGIN TIM2_MspDeInit 1 */ + + /* USER CODE END TIM2_MspDeInit 1 */ + } + +} + +/** + * @brief UART MSP Initialization + * This function configures the hardware resources used in this example + * @param huart: UART handle pointer + * @retval None + */ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspInit 0 */ + + /* USER CODE END USART2_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; + PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + __HAL_RCC_USART2_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + GPIO_InitStruct.Pin = USART2_TX_Pin|USART2_RX_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF7_USART2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USART2 interrupt Init */ + HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART2_IRQn); + /* USER CODE BEGIN USART2_MspInit 1 */ + + /* USER CODE END USART2_MspInit 1 */ + + } + +} + +/** + * @brief UART MSP De-Initialization + * This function freeze the hardware resources used in this example + * @param huart: UART handle pointer + * @retval None + */ +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspDeInit 0 */ + + /* USER CODE END USART2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART2_CLK_DISABLE(); + + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + HAL_GPIO_DeInit(GPIOA, USART2_TX_Pin|USART2_RX_Pin); + + /* USART2 interrupt DeInit */ + HAL_NVIC_DisableIRQ(USART2_IRQn); + /* USER CODE BEGIN USART2_MspDeInit 1 */ + + /* USER CODE END USART2_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Core/Src/stm32g4xx_it.c b/Core/Src/stm32g4xx_it.c new file mode 100644 index 0000000..c73cae0 --- /dev/null +++ b/Core/Src/stm32g4xx_it.c @@ -0,0 +1,232 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32g4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32g4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ +extern TIM_HandleTypeDef htim2; +extern UART_HandleTypeDef huart2; +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) + { + } + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32G4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32g4xx.s). */ +/******************************************************************************/ + +/** + * @brief This function handles TIM2 global interrupt. + */ +void TIM2_IRQHandler(void) +{ + /* USER CODE BEGIN TIM2_IRQn 0 */ + + /* USER CODE END TIM2_IRQn 0 */ + HAL_TIM_IRQHandler(&htim2); + /* USER CODE BEGIN TIM2_IRQn 1 */ + + /* USER CODE END TIM2_IRQn 1 */ +} + +/** + * @brief This function handles USART2 global interrupt / USART2 wake-up interrupt through EXTI line 26. + */ +void USART2_IRQHandler(void) +{ + /* USER CODE BEGIN USART2_IRQn 0 */ + + /* USER CODE END USART2_IRQn 0 */ + HAL_UART_IRQHandler(&huart2); + /* USER CODE BEGIN USART2_IRQn 1 */ + + /* USER CODE END USART2_IRQn 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Core/Src/syscalls.c b/Core/Src/syscalls.c new file mode 100644 index 0000000..8884b5a --- /dev/null +++ b/Core/Src/syscalls.c @@ -0,0 +1,176 @@ +/** + ****************************************************************************** + * @file syscalls.c + * @author Auto-generated by STM32CubeIDE + * @brief STM32CubeIDE Minimal System calls file + * + * For more information about which c-functions + * need which of these lowlevel functions + * please consult the Newlib libc-manual + ****************************************************************************** + * @attention + * + * Copyright (c) 2020-2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes */ +#include +#include +#include +#include +#include +#include +#include +#include + + +/* Variables */ +extern int __io_putchar(int ch) __attribute__((weak)); +extern int __io_getchar(void) __attribute__((weak)); + + +char *__env[1] = { 0 }; +char **environ = __env; + + +/* Functions */ +void initialise_monitor_handles() +{ +} + +int _getpid(void) +{ + return 1; +} + +int _kill(int pid, int sig) +{ + (void)pid; + (void)sig; + errno = EINVAL; + return -1; +} + +void _exit (int status) +{ + _kill(status, -1); + while (1) {} /* Make sure we hang here */ +} + +__attribute__((weak)) int _read(int file, char *ptr, int len) +{ + (void)file; + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + *ptr++ = __io_getchar(); + } + + return len; +} + +__attribute__((weak)) int _write(int file, char *ptr, int len) +{ + (void)file; + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + __io_putchar(*ptr++); + } + return len; +} + +int _close(int file) +{ + (void)file; + return -1; +} + + +int _fstat(int file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _isatty(int file) +{ + (void)file; + return 1; +} + +int _lseek(int file, int ptr, int dir) +{ + (void)file; + (void)ptr; + (void)dir; + return 0; +} + +int _open(char *path, int flags, ...) +{ + (void)path; + (void)flags; + /* Pretend like we always fail */ + return -1; +} + +int _wait(int *status) +{ + (void)status; + errno = ECHILD; + return -1; +} + +int _unlink(char *name) +{ + (void)name; + errno = ENOENT; + return -1; +} + +int _times(struct tms *buf) +{ + (void)buf; + return -1; +} + +int _stat(char *file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _link(char *old, char *new) +{ + (void)old; + (void)new; + errno = EMLINK; + return -1; +} + +int _fork(void) +{ + errno = EAGAIN; + return -1; +} + +int _execve(char *name, char **argv, char **env) +{ + (void)name; + (void)argv; + (void)env; + errno = ENOMEM; + return -1; +} diff --git a/Core/Src/sysmem.c b/Core/Src/sysmem.c new file mode 100644 index 0000000..5d9f7e6 --- /dev/null +++ b/Core/Src/sysmem.c @@ -0,0 +1,79 @@ +/** + ****************************************************************************** + * @file sysmem.c + * @author Generated by STM32CubeIDE + * @brief STM32CubeIDE System Memory calls file + * + * For more information about which C functions + * need which of these lowlevel functions + * please consult the newlib libc manual + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes */ +#include +#include + +/** + * Pointer to the current high watermark of the heap usage + */ +static uint8_t *__sbrk_heap_end = NULL; + +/** + * @brief _sbrk() allocates memory to the newlib heap and is used by malloc + * and others from the C library + * + * @verbatim + * ############################################################################ + * # .data # .bss # newlib heap # MSP stack # + * # # # # Reserved by _Min_Stack_Size # + * ############################################################################ + * ^-- RAM start ^-- _end _estack, RAM end --^ + * @endverbatim + * + * This implementation starts allocating at the '_end' linker symbol + * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack + * The implementation considers '_estack' linker symbol to be RAM end + * NOTE: If the MSP stack, at any point during execution, grows larger than the + * reserved size, please increase the '_Min_Stack_Size'. + * + * @param incr Memory size + * @return Pointer to allocated memory + */ +void *_sbrk(ptrdiff_t incr) +{ + extern uint8_t _end; /* Symbol defined in the linker script */ + extern uint8_t _estack; /* Symbol defined in the linker script */ + extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ + const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; + const uint8_t *max_heap = (uint8_t *)stack_limit; + uint8_t *prev_heap_end; + + /* Initialize heap end at first call */ + if (NULL == __sbrk_heap_end) + { + __sbrk_heap_end = &_end; + } + + /* Protect heap from growing into the reserved MSP stack */ + if (__sbrk_heap_end + incr > max_heap) + { + errno = ENOMEM; + return (void *)-1; + } + + prev_heap_end = __sbrk_heap_end; + __sbrk_heap_end += incr; + + return (void *)prev_heap_end; +} diff --git a/Core/Src/system_stm32g4xx.c b/Core/Src/system_stm32g4xx.c new file mode 100644 index 0000000..922e57a --- /dev/null +++ b/Core/Src/system_stm32g4xx.c @@ -0,0 +1,285 @@ +/** + ****************************************************************************** + * @file system_stm32g4xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32g4xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * After each device reset the HSI (16 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32g4xx.s" file, to + * configure the system clock before to branch to main program. + * + * This file configures the system clock as follows: + *============================================================================= + *----------------------------------------------------------------------------- + * System Clock source | HSI + *----------------------------------------------------------------------------- + * SYSCLK(Hz) | 16000000 + *----------------------------------------------------------------------------- + * HCLK(Hz) | 16000000 + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * PLL_M | 1 + *----------------------------------------------------------------------------- + * PLL_N | 16 + *----------------------------------------------------------------------------- + * PLL_P | 7 + *----------------------------------------------------------------------------- + * PLL_Q | 2 + *----------------------------------------------------------------------------- + * PLL_R | 2 + *----------------------------------------------------------------------------- + * Require 48MHz for RNG | Disabled + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32g4xx_system + * @{ + */ + +/** @addtogroup STM32G4xx_System_Private_Includes + * @{ + */ + +#include "stm32g4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ +/* Note: Following vector table addresses must be defined in line with linker + configuration. */ +/*!< Uncomment the following line if you need to relocate the vector table + anywhere in Flash or Sram, else the vector table is kept at the automatic + remap of boot address selected */ +/* #define USER_VECT_TAB_ADDRESS */ + +#if defined(USER_VECT_TAB_ADDRESS) +/*!< Uncomment the following line if you need to relocate your vector Table + in Sram else user remap will be done in Flash. */ +/* #define VECT_TAB_SRAM */ +#if defined(VECT_TAB_SRAM) +#define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +#else +#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +/******************************************************************************/ +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Variables + * @{ + */ + /* The SystemCoreClock variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ + uint32_t SystemCoreClock = HSI_VALUE; + + const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U}; + const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U}; + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system. + * @param None + * @retval None + */ + +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2))); /* set CP10 and CP11 Full Access */ + #endif + + /* Configure the Vector Table location add offset address ------------------*/ +#if defined(USER_VECT_TAB_ADDRESS) + SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(**) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(***) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(***) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (**) HSI_VALUE is a constant defined in stm32g4xx_hal.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (***) HSE_VALUE is a constant defined in stm32g4xx_hal.h file (default value + * 24 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp, pllvco, pllr, pllsource, pllm; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case 0x04: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + + case 0x08: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + + case 0x0C: /* PLL used as system clock source */ + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC); + pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ; + if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + { + pllvco = (HSI_VALUE / pllm); + } + else /* HSE used as PLL clock source */ + { + pllvco = (HSE_VALUE / pllm); + } + pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8); + pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + SystemCoreClock = pllvco/pllr; + break; + + default: + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + + diff --git a/Core/Startup/startup_stm32g431kbtx.s b/Core/Startup/startup_stm32g431kbtx.s new file mode 100644 index 0000000..8c59237 --- /dev/null +++ b/Core/Startup/startup_stm32g431kbtx.s @@ -0,0 +1,498 @@ +/** + ****************************************************************************** + * @file startup_stm32g431xx.s + * @author MCD Application Team + * @brief STM32G431xx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address, + * - Configure the clock system + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M4 processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m4 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF1E0F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/****************************************************************************** +* +* The minimal vector table for a Cortex-M4. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_PVM_IRQHandler + .word RTC_TAMP_LSECSS_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word 0 + .word ADC1_2_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word FDCAN1_IT0_IRQHandler + .word FDCAN1_IT1_IRQHandler + .word EXTI9_5_IRQHandler + .word TIM1_BRK_TIM15_IRQHandler + .word TIM1_UP_TIM16_IRQHandler + .word TIM1_TRG_COM_TIM17_IRQHandler + .word TIM1_CC_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USBWakeUp_IRQHandler + .word TIM8_BRK_IRQHandler + .word TIM8_UP_IRQHandler + .word TIM8_TRG_COM_IRQHandler + .word TIM8_CC_IRQHandler + .word 0 + .word 0 + .word LPTIM1_IRQHandler + .word 0 + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word 0 + .word TIM6_DAC_IRQHandler + .word TIM7_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word 0 + .word 0 + .word UCPD1_IRQHandler + .word COMP1_2_3_IRQHandler + .word COMP4_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word CRS_IRQHandler + .word SAI1_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word FPU_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word RNG_IRQHandler + .word LPUART1_IRQHandler + .word I2C3_EV_IRQHandler + .word I2C3_ER_IRQHandler + .word DMAMUX_OVR_IRQHandler + .word 0 + .word 0 + .word DMA2_Channel6_IRQHandler + .word 0 + .word 0 + .word CORDIC_IRQHandler + .word FMAC_IRQHandler + + .size g_pfnVectors, .-g_pfnVectors + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_PVM_IRQHandler + .thumb_set PVD_PVM_IRQHandler,Default_Handler + + .weak RTC_TAMP_LSECSS_IRQHandler + .thumb_set RTC_TAMP_LSECSS_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak ADC1_2_IRQHandler + .thumb_set ADC1_2_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak FDCAN1_IT0_IRQHandler + .thumb_set FDCAN1_IT0_IRQHandler,Default_Handler + + .weak FDCAN1_IT1_IRQHandler + .thumb_set FDCAN1_IT1_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak TIM1_BRK_TIM15_IRQHandler + .thumb_set TIM1_BRK_TIM15_IRQHandler,Default_Handler + + .weak TIM1_UP_TIM16_IRQHandler + .thumb_set TIM1_UP_TIM16_IRQHandler,Default_Handler + + .weak TIM1_TRG_COM_TIM17_IRQHandler + .thumb_set TIM1_TRG_COM_TIM17_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USBWakeUp_IRQHandler + .thumb_set USBWakeUp_IRQHandler,Default_Handler + + .weak TIM8_BRK_IRQHandler + .thumb_set TIM8_BRK_IRQHandler,Default_Handler + + .weak TIM8_UP_IRQHandler + .thumb_set TIM8_UP_IRQHandler,Default_Handler + + .weak TIM8_TRG_COM_IRQHandler + .thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler + + .weak TIM8_CC_IRQHandler + .thumb_set TIM8_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak TIM6_DAC_IRQHandler + .thumb_set TIM6_DAC_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak UCPD1_IRQHandler + .thumb_set UCPD1_IRQHandler,Default_Handler + + .weak COMP1_2_3_IRQHandler + .thumb_set COMP1_2_3_IRQHandler,Default_Handler + + .weak COMP4_IRQHandler + .thumb_set COMP4_IRQHandler,Default_Handler + + .weak CRS_IRQHandler + .thumb_set CRS_IRQHandler,Default_Handler + + .weak SAI1_IRQHandler + .thumb_set SAI1_IRQHandler,Default_Handler + + .weak FPU_IRQHandler + .thumb_set FPU_IRQHandler,Default_Handler + + .weak RNG_IRQHandler + .thumb_set RNG_IRQHandler,Default_Handler + + .weak LPUART1_IRQHandler + .thumb_set LPUART1_IRQHandler,Default_Handler + + .weak I2C3_EV_IRQHandler + .thumb_set I2C3_EV_IRQHandler,Default_Handler + + .weak I2C3_ER_IRQHandler + .thumb_set I2C3_ER_IRQHandler,Default_Handler + + .weak DMAMUX_OVR_IRQHandler + .thumb_set DMAMUX_OVR_IRQHandler,Default_Handler + + .weak DMA2_Channel6_IRQHandler + .thumb_set DMA2_Channel6_IRQHandler,Default_Handler + + .weak CORDIC_IRQHandler + .thumb_set CORDIC_IRQHandler,Default_Handler + + .weak FMAC_IRQHandler + .thumb_set FMAC_IRQHandler,Default_Handler + diff --git a/Debug/Core/Src/main.cyclo b/Debug/Core/Src/main.cyclo new file mode 100644 index 0000000..738851d --- /dev/null +++ b/Debug/Core/Src/main.cyclo @@ -0,0 +1,14 @@ +../Core/Src/main.c:105:5:main 3 +../Core/Src/main.c:190:6:SystemClock_Config 3 +../Core/Src/main.c:237:13:MX_ADC1_Init 4 +../Core/Src/main.c:305:13:MX_ADC2_Init 4 +../Core/Src/main.c:373:13:MX_TIM2_Init 4 +../Core/Src/main.c:418:13:MX_USART2_UART_Init 5 +../Core/Src/main.c:466:13:MX_GPIO_Init 1 +../Core/Src/main.c:503:10:get_actual_vdda 3 +../Core/Src/main.c:525:10:get_calibrated_value_mv 1 +../Core/Src/main.c:532:6:adc_task 1 +../Core/Src/main.c:546:6:power_switch 2 +../Core/Src/main.c:562:6:HAL_UART_TxCpltCallback 1 +../Core/Src/main.c:568:6:HAL_UART_RxCpltCallback 16 +../Core/Src/main.c:714:6:Error_Handler 1 diff --git a/Debug/Core/Src/main.d b/Debug/Core/Src/main.d new file mode 100644 index 0000000..920ea3c --- /dev/null +++ b/Debug/Core/Src/main.d @@ -0,0 +1,66 @@ +Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Core/Inc/main.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..74f7d653a5798f43537341407e3140f30e91c2de GIT binary patch literal 1160716 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

Qqa36jJen(ETEK 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�-Yi<2IDg+Q!^uTFfR+U6f3d@ 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 literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/stm32g4xx_hal_msp.su b/Debug/Core/Src/stm32g4xx_hal_msp.su new file mode 100644 index 0000000..d695c93 --- /dev/null +++ b/Debug/Core/Src/stm32g4xx_hal_msp.su @@ -0,0 +1,7 @@ +../Core/Src/stm32g4xx_hal_msp.c:63:6:HAL_MspInit 16 static +../Core/Src/stm32g4xx_hal_msp.c:92:6:HAL_ADC_MspInit 120 static +../Core/Src/stm32g4xx_hal_msp.c:164:6:HAL_ADC_MspDeInit 16 static +../Core/Src/stm32g4xx_hal_msp.c:210:6:HAL_TIM_Base_MspInit 24 static +../Core/Src/stm32g4xx_hal_msp.c:236:6:HAL_TIM_Base_MspDeInit 16 static +../Core/Src/stm32g4xx_hal_msp.c:261:6:HAL_UART_MspInit 112 static +../Core/Src/stm32g4xx_hal_msp.c:312:6:HAL_UART_MspDeInit 16 static diff --git a/Debug/Core/Src/stm32g4xx_it.cyclo b/Debug/Core/Src/stm32g4xx_it.cyclo new file mode 100644 index 0000000..dcdce31 --- /dev/null +++ b/Debug/Core/Src/stm32g4xx_it.cyclo @@ -0,0 +1,11 @@ +../Core/Src/stm32g4xx_it.c:70:6:NMI_Handler 1 +../Core/Src/stm32g4xx_it.c:85:6:HardFault_Handler 1 +../Core/Src/stm32g4xx_it.c:100:6:MemManage_Handler 1 +../Core/Src/stm32g4xx_it.c:115:6:BusFault_Handler 1 +../Core/Src/stm32g4xx_it.c:130:6:UsageFault_Handler 1 +../Core/Src/stm32g4xx_it.c:145:6:SVC_Handler 1 +../Core/Src/stm32g4xx_it.c:158:6:DebugMon_Handler 1 +../Core/Src/stm32g4xx_it.c:171:6:PendSV_Handler 1 +../Core/Src/stm32g4xx_it.c:184:6:SysTick_Handler 1 +../Core/Src/stm32g4xx_it.c:205:6:TIM2_IRQHandler 1 +../Core/Src/stm32g4xx_it.c:219:6:USART2_IRQHandler 1 diff --git a/Debug/Core/Src/stm32g4xx_it.d b/Debug/Core/Src/stm32g4xx_it.d new file mode 100644 index 0000000..17cd7f9 --- /dev/null +++ b/Debug/Core/Src/stm32g4xx_it.d @@ -0,0 +1,68 @@ +Core/Src/stm32g4xx_it.o: ../Core/Src/stm32g4xx_it.c ../Core/Inc/main.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h \ + ../Core/Inc/stm32g4xx_it.h +../Core/Inc/main.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: +../Core/Inc/stm32g4xx_it.h: diff --git a/Debug/Core/Src/stm32g4xx_it.o b/Debug/Core/Src/stm32g4xx_it.o new file mode 100644 index 0000000000000000000000000000000000000000..21e9143d26efba2ca8a85dd313445cb3cef4db31 GIT binary patch literal 1143048 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 nl| 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

TO=nkXd>*Kg-Sn(V$-BV%+`m3dW&wb2K1* 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

lAx0o}txbtTui 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 literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/stm32g4xx_it.su b/Debug/Core/Src/stm32g4xx_it.su new file mode 100644 index 0000000..baeca76 --- /dev/null +++ b/Debug/Core/Src/stm32g4xx_it.su @@ -0,0 +1,11 @@ +../Core/Src/stm32g4xx_it.c:70:6:NMI_Handler 4 static +../Core/Src/stm32g4xx_it.c:85:6:HardFault_Handler 4 static +../Core/Src/stm32g4xx_it.c:100:6:MemManage_Handler 4 static +../Core/Src/stm32g4xx_it.c:115:6:BusFault_Handler 4 static +../Core/Src/stm32g4xx_it.c:130:6:UsageFault_Handler 4 static +../Core/Src/stm32g4xx_it.c:145:6:SVC_Handler 4 static +../Core/Src/stm32g4xx_it.c:158:6:DebugMon_Handler 4 static +../Core/Src/stm32g4xx_it.c:171:6:PendSV_Handler 4 static +../Core/Src/stm32g4xx_it.c:184:6:SysTick_Handler 8 static +../Core/Src/stm32g4xx_it.c:205:6:TIM2_IRQHandler 8 static +../Core/Src/stm32g4xx_it.c:219:6:USART2_IRQHandler 8 static diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk new file mode 100644 index 0000000..de43a26 --- /dev/null +++ b/Debug/Core/Src/subdir.mk @@ -0,0 +1,42 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Core/Src/main.c \ +../Core/Src/stm32g4xx_hal_msp.c \ +../Core/Src/stm32g4xx_it.c \ +../Core/Src/syscalls.c \ +../Core/Src/sysmem.c \ +../Core/Src/system_stm32g4xx.c + +OBJS += \ +./Core/Src/main.o \ +./Core/Src/stm32g4xx_hal_msp.o \ +./Core/Src/stm32g4xx_it.o \ +./Core/Src/syscalls.o \ +./Core/Src/sysmem.o \ +./Core/Src/system_stm32g4xx.o + +C_DEPS += \ +./Core/Src/main.d \ +./Core/Src/stm32g4xx_hal_msp.d \ +./Core/Src/stm32g4xx_it.d \ +./Core/Src/syscalls.d \ +./Core/Src/sysmem.d \ +./Core/Src/system_stm32g4xx.d + + +# Each subdirectory must supply rules for building sources it contributes +Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32G431xx -c -I../Core/Inc -I../Drivers/STM32G4xx_HAL_Driver/Inc -I../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32G4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" + +clean: clean-Core-2f-Src + +clean-Core-2f-Src: + -$(RM) ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32g4xx_hal_msp.cyclo ./Core/Src/stm32g4xx_hal_msp.d ./Core/Src/stm32g4xx_hal_msp.o ./Core/Src/stm32g4xx_hal_msp.su ./Core/Src/stm32g4xx_it.cyclo ./Core/Src/stm32g4xx_it.d ./Core/Src/stm32g4xx_it.o ./Core/Src/stm32g4xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32g4xx.cyclo ./Core/Src/system_stm32g4xx.d ./Core/Src/system_stm32g4xx.o ./Core/Src/system_stm32g4xx.su + +.PHONY: clean-Core-2f-Src + diff --git a/Debug/Core/Src/syscalls.cyclo b/Debug/Core/Src/syscalls.cyclo new file mode 100644 index 0000000..6cbfdd0 --- /dev/null +++ b/Debug/Core/Src/syscalls.cyclo @@ -0,0 +1,18 @@ +../Core/Src/syscalls.c:44:6:initialise_monitor_handles 1 +../Core/Src/syscalls.c:48:5:_getpid 1 +../Core/Src/syscalls.c:53:5:_kill 1 +../Core/Src/syscalls.c:61:6:_exit 1 +../Core/Src/syscalls.c:67:27:_read 2 +../Core/Src/syscalls.c:80:27:_write 2 +../Core/Src/syscalls.c:92:5:_close 1 +../Core/Src/syscalls.c:99:5:_fstat 1 +../Core/Src/syscalls.c:106:5:_isatty 1 +../Core/Src/syscalls.c:112:5:_lseek 1 +../Core/Src/syscalls.c:120:5:_open 1 +../Core/Src/syscalls.c:128:5:_wait 1 +../Core/Src/syscalls.c:135:5:_unlink 1 +../Core/Src/syscalls.c:142:5:_times 1 +../Core/Src/syscalls.c:148:5:_stat 1 +../Core/Src/syscalls.c:155:5:_link 1 +../Core/Src/syscalls.c:163:5:_fork 1 +../Core/Src/syscalls.c:169:5:_execve 1 diff --git a/Debug/Core/Src/syscalls.d b/Debug/Core/Src/syscalls.d new file mode 100644 index 0000000..8667c70 --- /dev/null +++ b/Debug/Core/Src/syscalls.d @@ -0,0 +1 @@ +Core/Src/syscalls.o: ../Core/Src/syscalls.c diff --git a/Debug/Core/Src/syscalls.o b/Debug/Core/Src/syscalls.o new file mode 100644 index 0000000000000000000000000000000000000000..9a7ca9538282bc4b2d4ffe6f457262cc39b0c157 GIT binary patch literal 83688 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 T@k!gQ8d9g^y;pjX{mJs*&=g>U literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/syscalls.su b/Debug/Core/Src/syscalls.su new file mode 100644 index 0000000..50b547a --- /dev/null +++ b/Debug/Core/Src/syscalls.su @@ -0,0 +1,18 @@ +../Core/Src/syscalls.c:44:6:initialise_monitor_handles 4 static +../Core/Src/syscalls.c:48:5:_getpid 4 static +../Core/Src/syscalls.c:53:5:_kill 16 static +../Core/Src/syscalls.c:61:6:_exit 16 static +../Core/Src/syscalls.c:67:27:_read 32 static +../Core/Src/syscalls.c:80:27:_write 32 static +../Core/Src/syscalls.c:92:5:_close 16 static +../Core/Src/syscalls.c:99:5:_fstat 16 static +../Core/Src/syscalls.c:106:5:_isatty 16 static +../Core/Src/syscalls.c:112:5:_lseek 24 static +../Core/Src/syscalls.c:120:5:_open 12 static +../Core/Src/syscalls.c:128:5:_wait 16 static +../Core/Src/syscalls.c:135:5:_unlink 16 static +../Core/Src/syscalls.c:142:5:_times 16 static +../Core/Src/syscalls.c:148:5:_stat 16 static +../Core/Src/syscalls.c:155:5:_link 16 static +../Core/Src/syscalls.c:163:5:_fork 8 static +../Core/Src/syscalls.c:169:5:_execve 24 static diff --git a/Debug/Core/Src/sysmem.cyclo b/Debug/Core/Src/sysmem.cyclo new file mode 100644 index 0000000..0090c10 --- /dev/null +++ b/Debug/Core/Src/sysmem.cyclo @@ -0,0 +1 @@ +../Core/Src/sysmem.c:53:7:_sbrk 3 diff --git a/Debug/Core/Src/sysmem.d b/Debug/Core/Src/sysmem.d new file mode 100644 index 0000000..74fecf9 --- /dev/null +++ b/Debug/Core/Src/sysmem.d @@ -0,0 +1 @@ +Core/Src/sysmem.o: ../Core/Src/sysmem.c diff --git a/Debug/Core/Src/sysmem.o b/Debug/Core/Src/sysmem.o new file mode 100644 index 0000000000000000000000000000000000000000..cdbef81b5d5d7a03a9bf584da3b589263e011957 GIT binary patch literal 56140 zcmeIb37A|}wKjZCRaYk=Bn$z=Oc4m_Cf%KydI|)nbXO-$dP-M!1_q1j>guFP521$) za#0bP1Vls>aR3Aal}S-X5l|5oCqzWAC@NP_6v68R7rp%NyY||rPE`-#-upfObN}!8 z8*<*W_t|HkJ*>Uf+H0@9>s_g~7T0wh`{z0pP9fwt6W@_1p@cw%lX2cI&zB)wfqzU} ziGRoG{c>QH-d6)_^nL{}qW4i?Oz-1B=FNO+@vlzr>wyh=-w0f(_s0WI(EC-u6ZQTi z;K_QQ1g_TmCSbGPr+_VbzXrHg?^}VV=>0lio8GqrJM_L2*roUDf!%ta2KM0JyT5ed zUCy1m&OG3h1J^xu$T`__29M7!T6gGHXL;bs{nqV&${}a&yY7&!=WJcnymIi`)pLIM z=HLJG&0x#kOAa}+^VK)w^L{xOY2P?=j;0Bnvgph=wjR`SQ2j$K?|ul`7yb34u|kep z#>hEcD9z!Ipy@tyw&Uzwl+JPHmW2jKCY-?9V;v`O~DNK$?iE`cu(AtG|Xd5riHF2U!~FGuY63~oa~T%0l{ z+v~_f5MH$4w~SzU=g&jeyR~yZhI{@Y7svg0ADUqA1Uk{JU5v7za{Zwn&vl&o{h3K9 zf-Y<@w^uK4oW@1+!A0n_mHR&`$tQw`qLjz)&x`_BZV#Tk1$4DH3lq3<$SJ!EH;#LZ zGk^Yx^Mh!Vz}uYQ!jBFe-ek z!$))WbC)h$gbWW|*t>W?ci+Xk7o(5#D=7UuWHKLZP~)6*u>IV!gIgCdi}^KfapZpP z{^chh^e+dy$awFNuXrqua~NyFN;qY5<%LaW|MtO6NT1DN#?Yoae1rM@`58XFZemgo{6PTw*?`K{#q3;Fv56+wG zPoVc@!GjkC=N%B*>oGJ&aKVA*rQpJ%q@e|`hmd_4S_J>^8sznpU}hobhBdtYjwI^* zXdbUFm{Z8P`3zo@=%$c!jXeErj`t5A%IiDRyuOAp8gh=9kOIs=t9Lg`BI1fTDqwzVA}rI}^MfwVc;|G2GGqNAY@&P|H{1ylDA zmL9xM==SnH#@tiGYwlQHE7QFGRC?s_vv~hLY1I!4HNGUZzCq~uB6<2R`!mf&d-J+U zo(}KB`%8s#dL*~C5>o?#jTWBI>$O5}Uxma7Icp{VpGkeUN?iid+NE*54d5@yudaks_LqeZdv@@nN$m?n;$+PvmU)jy;kwQx!lQwy+hcTy1 zfBi|y-y$tMM{>v=z^B(p`j&iPa~JV`p-{zfb-X`pKVDy!^p{GH zH)6=3Myq)}QCj;(`Qjg>%qygwkCYK~yIj91b$>%>@*7orYrn&JeW{Gsi{xAX8sq&L z&Ak4ylh;4*%j>;DUHeFHzA7!?N@+v#?uu5XStKzlCIA1B9{Kww#{Xw8udAh}R!Co5 zKE#-1`|!F^INp1uDki1qtgEU zLJ5aS`}|C(_j}TM|Hv}sJ(ABmK&ByQiBR&pgex8)ZTp>L89!J0`T@!9=Q7H!6$*KM zkWbH$K7HBc{SgDa{#y^P@0RxIl3K5loEJ-vUoWkCo21`e#gye6d426{UWcT18AGe` z#T%9~{yCw{8&Bu`MoAf+(*Efz~p8HJjdWKN%F&(_WSVqCi(hL7Q zg)x;!@_M7ta9NJ`?_A95=~C0bNw57x+TkDa)_Ia?-DMSwiApc`NqtvK$=@sSPf4C_LQCJTX38$fbD`Ae-Xj=un9z1odbYEb zG25lhUzPM#pvH3NZ+NTRIUHXvcg~X*cstUUI}f7;5QBP^J3ZTYt*&7X|BkU!?kqWp z*UK@2%AJp+zsj9=oXP9I;_Ky3%kjKEA@X9G(0>T;mOHW|( zrSAVke7Un=j8C7JTGt7+bVz%izMb*69nNbX>Qe4pB@*N*lonJfPxs!3@e8G`?!sH; z4(A-@&c=3L-?x_6%h9Uk&hi6!y->#W!BUb2^ayGP`Cjha*~C0|OCP;QsQ2?|2XF)V z?wvwQ7gjRnW@+04rIn8EXG|41Qn~X|me;?SLJCeO(0vGE%ky}Khfb)hjcrqYEU945I?~|Wf244o_h4F69QqNa zSav?!cKH(KU-QsGxIQ0vV;iMuaN|u`vHgCMP(U|lJ}MU5hNg?rf!gg)SQv14v@$Jhopx%;sr&I|mJAH670 z-UGNIaCR@?BY}o?z^4Ms*#e&q+=}mpZVQCiLSGJigoXG{AVPZkMIZ=}GX2uMmNfQ) z+Xq4kz2q)o7O%N67X2UY6NK{vKcvvOB(MtYANp`${aJud1@=K-Nft-ek$Z#}9Ew=*HdaU`p&YWsKZs9-G%FMcTy6(*Nt+3Uf_Pe9&n-C z1JVp#t*f$3GQ+?hEY=fN%tZ4(*5q;{N4lZ z>3ablbU(`x@nv@n`|~09Nw)G=+>=<~huxkkz$5OfB#=kl(@q6^)qRfS^EG!pzy5Xi zJ%<1ubN^22|AzZVw#MV`PZ;@4_uC-!(6`*Tk@kP!Zr&S(c-g&^nOz#VgM;|8z~9Kz zE)TS`xbF{~1;Rm>Rk6`N5O|X#^UA(*y=ww5veF+7Jj0=QZQzOH@!4AfTZRBX57eWT%C87sy%5hn6g(L9E5A1Q0O7je zdE_P62X6qqg>DXxV&qF7mVb?f+vh~~-XUMyi0e_mVMDGsE`sZ-lfeT*>2(}E!%M*< z(dw770H1d2*v?;e-;Ufv-*cZr7nc9UJrYSI+vpCqRV+;^jUUW`Q}=!nXX70ld@FAv zGdtlQ?2c7C$huCD$ETC`k+OH)%KUdfPkMOAA4tLHKEoW|ieeMY?_@!Yl+8eAfLPspxa=0~-LhxeL|-e(JvcD8LKuq3Z!Jy64mae(U~d z5b!(q>wNZ-dlHG__wLYKz#rVbRsddcKhFZb>b~3uUA1pg!0`T#&uk+dUWmkhehHfhR0l#-k*#{c|pDX(W zJK*-Rg{WY4p)1&94~5<_0(dy|Rkr7&ps zll(Z;M2da}#s|PpLJM{Ro()~iCir=%inaZ9Xf;Xsh0v`*z)PXC<^lc~dXb~(mC&{9 zs#ilttz#Pef50wM_S-%f#&z)`e3!Ax6qPM0e+d0LkVmTW-vwxHdkfq`a(Y*s^!7ow zvj*>c$X&=1-tB&fZTFyi8{rZ69b{17a__=OlQQl9oeJE%?L5nB0zYQ69DN`=c;+wIRxPKk5~VJ(b2av1%OGx<78jwc!WsF2fjlxdLq!marK?Rout?A20lx2_+B7Rin%R#&Jw^kf-g5| zo6ldxv9WK8Zys_r@2ej{Ev2O251!P4yPpPsvJc?b!CsD^7lI$B4ETNUwsOGVf_L=; zUJqUz0K6HjBkz1q*~zTc#bsymo9`?8BqMJqdyW;jsq6$c%`IiG909ns?D0*2&y@Wq z`{c7_51s({Tp10<#yX3C&FY>crC_gI&xN6R& z=utzKi&=o9pKZf+=?NT-$99ldmhE6SRIJM5S~^ulh8L zePVJkt|z5IK%tX=NzzU(X2n-O&iJOgSo`L$aVVvh@ZFa8k#Vhgfx}|$i{u!s`;*L0 zshN*!@69a3hClL)*~dr(eScyDOZP;K6{)-ENY}``u5llvlVn zvfv+Zx77kZaR&fC=6-@L{c(3G zKlBNA4F~Bb-8weUb?(Ki@Ad9SNo+T{e`HJC?EaYr{Iq-7UVvNN5Auau-A|qZxZS<7 z3~-10A@=H>Zk&VgUiUWUa-TcIL2h zWo*>CM;TLpD>H8xB=t3(%cm>f$HF)5tikn^V@W~X=ipnRGnyE)bspb3`@<~Zt_D)j zd2atwz{T$4WKdVRFR{r#;%;E%r`!YBy0^Or?*q8UO|D0Q?sKK=_X{5{f54T}Kj=#F zzwAo+A97jf@~^s5kFU9`h-reA3EUjGjAV20H#g#X=&hS^J?dr-mZje$Aua1+1*#jF zCc1_di*MZ@*TzeDzv@#Y$dgVTz_q!RP1E{#FRmSP*}LgVFfjSj;;qc(a2F*G9UUjr zt?XEiYi)+jaMIh!{aQ!%#x-3&tfy*=eBT6-0!|n33$N$1FQFSw~3Aa zn0whVfN!{)ISPK{{)40HY4s`WOD%wF0t;E?PY3QHk=zmpvbMJdUJnEA z2}IZs_Xd8<$om5IEbcb~+xhj!16Ljd_%R`%$IuIb z%USr}2cF~$e+#_M@$&BAFIc||f{WQNmj#cB0WJ^T%oe;R_-%gnqrtQJ`c1+8Sm~RC zl`QV(gQv3PzYsi`9sOu5rj@6sd+>jIJk~VXmv3!OWui6F+L}mF-09ngCbtZZjGvwx9j+Ol!2iSXSPtoH z2K)0h!@0?t{H}@o*hqG0Vsvz9yk^VDWVPH?4~&jgOX`|vye3{VmLH1N>>M14$MBg* zO*9gziA7?yk;Z5&QXh?-E-#(lH#o8ag&Z2}Td^gVTag_bt{xd3$yevIeS<3`pD0*B zZfLSU|Nq?zpn~52#WmEbtr*VcwhoT`UtPuV-Q)ik_u&8Ps!dOGBl(>ecGV-<5eP-} z&TxLXCPy!v@rnNa{6NiCIs;^Imz^A%$V}|so*zeC5OGKVv4%jIqjx;=UZ2m_TMner$Yjbi^dcjgAZqZZWwH=JWZ1?YPGm2lCm8$uapp zKAA(ASQOlP#q!_dg`v^hHj^SdKAs)YID85so?=TRVC(?X4Z*icH4dXEK#eCexg1YHd%pWtv;p zWHRAsJ)-(12ZtsGM>2!sne5QumXUma#jYy3s|;6EAcskmdi%s!W}iU4T)$hQCFMDSI1+CmbwJeuW4$^BzrpBTbnW) zo7N_~Gd-EM&Zc#lmhMz4976($?CnUmuIWfMvyx7xBek)ub#-P#syodFT9T+q)I^pz z_-0RYYj-#n@yf9_na;F!w6u1#_G~uqB3m?Oce0~7(U3_tH&>u3*f50Z6EkCp23)iK z{gn5J@)>Bhqsk^?P>Pok^b+V-*yP{py$YLE{>+0!lZf$AFw96+WyXptbpM&=4Sd(e) z>}6jJjgD*y_m58Y4dw9;3d!V66}ifAE`0RS;kGu!7Dy%>=`Exx%~BEhODu zJI-)NZ(Ex`=YKT+2Iv(33#FpCBg=Va%jz(gp zi<(!rDHX za6&lFPPL;<22W;kyMK&jgu9FmWHJ@IDl1FI9HN%nF;|TdcWlKw{lQ8htd{O%lZ<$& zOr)l^t-D&Td}@Y??LFIT?AWHxj;3S}in6;hY(r5AI-tOoWN%wfCf(WF-IPLNRxsKe-s*AWaOai$*f0`O&IK-QAQ1&oG~> z7_an5C$lx1+lJ>;>L^w0W(~VK)2*94b`y(48X}E|?oI1>Gb3VC3;w#Q8+zArxTH;f z%CpD_buesfZSGl%DssdbvTk3U?(XT_*p$wsdy+k=5)LptIG!UV_l=KDjPA^hLuzFw z@+?*o9IYjl?CI@JWmfmJ+9u`4i|DblyE)aJ>1yuEq&k{glN{J_Fg~V3n`hX#i1HXG zSg9jSVqEw~mfYgoWe^>H)b$c4A^|uy1lA53U6zK~)FC!YZ9qS9fPmXGdqcx2vnO8w?>9 zH}nZvZ#Yr3roOSht}z~sCmQNv@n~&*emNL{2>JX-za4uRbr^dXfwPT0j5>@xjKIR! zn;hvIogC?hp5dfgJ5ZW6-Klgs9F3AfDPh+pDOxvoG=U4YcO@}IA>uRXjTllL43q4GneZxP}%qa~kpl>Sv71)G!CWQDF1n@;$BXV0Aq{ zZpQMlJ(M4tZ$!YWg;RIqk*DIW?rm-B0S`j^B)iv0rCYj$qBAY+N$@I(V#`7o^7NpB zz)Q6@cejV*?935xlFUx3pcybzTUzAp@vK-aS-7euljHeJZficbEj)$rcV@>%GLs`n z(Qi{{L?|0cuXG{;c3KJw@5X3pN_I4*+ESp61c+mGy4lm_&{S5j^ty;zCMkvm92p(Y zjtovf>%g>XbZocw6^9vWXEhVNbLeLq^~lyVG?*U~sc6QO{V zw=Jm%ZvYR72zTOOqUN|YJD#C^4wJdj5!8fXojf~K&XGhXE2?+nOUzL?o}bb`yLbb+0rhz%moI@OEE!tDkn&HX>|p8z6Kc2eLUN=idR1~_%N$5g_e?(4zDRp4FnAB5>3>_;u~G5 zX>F=$9kryYom;aLRWyxMaa>jnV#x1#hBb(J2&YbbnG~ z!pXBf$Z&cTt*Z<#$44b8`lquSJ$NFfiF`pOP$oqM-zCfI_0I&Tjbi+3_Z5#HkwKe8 zBQBcLr#QQYe$|aqL0qA^)0?4Rh^{S)bVstI6J6d0!-CKfY)_*Q6h4mEoLb#$BoHk? z91AcVj}Pw1SJc$hkcBZC7O9a@P6jHx$0mMYawIo_frEC~kVLDk0ZWpqnfZ#&Ng$h3 zJ)3$~r#FXVlv$D`tljzSc)o%GerGH{ksaHTpP1$;o62OUV-QTlrwvGU?9mzWl1InN zcaRfCPQ z%qNma)I}1Fn8riRjOMGObx;y^AtRAKY{&_46Mw(zl*`9p3XI2_MTs`m(Wx?|NFxy1 z9vQWa-Oy{ZXBrcJYa}bm%?<+Lvh4~M7{feu>fD8o^gv-U6K;>ecqJ*G&-qMat2;Z} zitJ)3>XXf#8=;>GujEkeNYRKSf<<|sl_?%8^jcjs4kJ#YF;3Te*7mlq=D16BZ|v+| zr`>?k>*zG>QRdv7ciX?N>be9HS-p;|JOwe8YU-u!QjB+L>DcyEcu8+h3k-j4DROX_ zY+>J#E5@rCtA1fgvmYqbulg3xn2WemOBXtR0}Q6%Hp%YRp0(|%p4KKuEeTK+#OeXd zAWaFBW`6add2>gS_Qzy*cXBhDpcV2*`%+XX6vK`OI}Ru_L87It*a60wg((iCU^spX z>hYRXN7H7hVmK!1xshc?f~c16kMe~66qOGeUq)z*P)E?%E-WJoQurNG(W55~@L9lk?8%zUA#krAgjq3BMv^ropAN287`Dy~Vyqq}w$q@>RjP-2=X z%=Ot2(5u#@T3VrpS;KV1NwqT~O#7X+5*LhHv(jY)iL$rH8`@%^O{UvH8mWrhNOm|+ z_Phx-YwcJg<0_4T+?HIOYNJ4Gfx#*Rqbn0i3v@MwWn7U;ia8}`tUj~hG*byNCvqZD z+$oj_tuoW*`1wVuD}~t*3D*evJqj_CtRU({>OZRR^}3XE_W~-QCcBsC6Sys1#P+hqDtfu#621kB*>9 z*{Z%uB;jP$W5-xHfz5(1>RJnOSz=b#!AoOU)rlr#+>m!rkuGrT5@szDS|uf>hiVjo zK*-<~(??qLmbT8MHA$-$@RnASj3(ge;q6ISeXWI|JJr_NmF8zH(=Id{SzlLsPX*L2 zSgCnsGGl;Op;r%S*Hs;@rIhp4v~)b;sjg(DVaI90GzO&LW6Iqrn2tL{q^SiCMtNyr z(=aTbF=TKuO*_W;?qR!-T7mnj!Qt&gRap5P>?fUM$A{5xOKR{0ap5K5qxn3%q>8tQ z3@JfICBBX`L(xI0L? zx1*^ld^Gd0Hc%=g804IvPHdeV?z7a}Rk3|+bYc`FWYB5=vW5m*WvY7vP1`hIre%?m zqaT8S(?prIRmmz_g_*&jScPTU3Zp9-Hd`rHcCHFbTiYlMGS%4y9ga4ya3e*G^ex9Py4$ZM%apK~`;t_w7yy%z_23?l z8&V#JXIL-7cZ4Gq7*xS8K+M9;T~M51@G^6`sij8WTBfKq)&(xiJu289h(*hIl`+jA z`W2t5Oktmh&S1^T9zPIIY1JQF8YDv#%0e1N1Z~Gtvlol9F$-+TkAR2gDA>oUCaQMl$E!w0!O_?FriWX$nk^FTd5EH%Eu90)C<|vG9N-I+fzF0>J_8@s9q8(2EV9we zI^H?qNLBb)$e;nNnc2IjcNfDQ63BD}P!8wqbOFgqOrz?L>hO}S*t~`pWtEQn z08KwRHZq=>*g2TXho^9aqQ|H?%L$T&UIVY6f@#Wl?ZohejtFCU>1eE7Vl@iRSJN60 z%`=(rjN3Q*Av%i8hgg;1+E}IuMKx{M-j(U9O_vBt@wtH`4N3?14p>sc4oISZaA1Iw z@uY9vGa8|!B-be7n7uTJfbK|;dz>{EOrQFO=uy*JKh;`U;Ere>t;cHmU(B`yJlsd; z3vd0Gh83*JjblPII55anVAKDFPJjSwj71t_4UM&M?`ep};P6n7Rm_e~Q5fqet#tNo z=67Z$&owE3zYB}xbgruvdY;(#yt!N}R1Ptd;SFz|VW$`ylHD}?ipIk?tfL6#A@B|0 zw1MPoIJSywPe_YOgA@hjpfG$3aWWaviMMY)n_i0r`J&0JmlMZKX-?ia(wwX_h^pr- zq%ZRxSk}!#I*fSmU`uUCn$_uctPXp27c8&0h+bUZ=%g^=O^4$UDCE`@EUFriHI`1+ zJ6ESW+fuMsakduDWQxMjj>Tokm{ECjK1JoP*k%jIn>Yoxd&~}fo8ZTk7 zkmnTL`bx?`@GY8y{`?=+-k(P2GU9+Ohfk{Z>kFYqI{BWWh?17^j(=^&uN;Gm`GS-e zsg6yponf+`WDm?|t9#Mmt?gZOqiRl~PuR2Y!`cLALovRdqw*f=fVn+al>|y{uT4+{ zYo(M4KyR^2g$!NJ5M@~agyEke%FHW6V$Q%&ytb2mr7>AwZVA&o=O4ggT5f4?bHwCc znD$_#SY{^PWV3TK@g?)v8CX6HFR=TB?F~L^waEfc6Tt%iwr*L2#RN^Kfb@Y>p$hey zlhmnlb#RL?X3~){=a5ng>m(2W#SLP`nhch3WD{*3{y*_cg@B_WISmJ02M` zW1Go5fny%`X3}nF{4!gaYAt1fNO7KmQdpAq%5}wTe)h!am!B{KsOgr$DSz;W4>lwFW zl1v0f>=-NTQKfx>Rt?1aSgBq6DfVvmQ`&mCv` O>L)6iGz2{lsI}lwWT(hvPA2k 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

VcB-+`!*;GmzHk^ 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 |z4U`VftIL?we^nDc#04P4IcA=mqIBI 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
  • NoKM?*)oTD|W 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

    lEUC^mBr+^$H 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


    p}Ug?B`pgT0Ht3L|W$ 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

    Z-{c ia%&1GON9x;7vR)Igq0_FW} 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%0DDW-E4N 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

    6B_`l*|`!7MUI0T-aKpO22 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

    2pNui3t0J9veTU#1=kmbY#YsLEEaD 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 Nn3pkEC86lJ{{zpi1N;C0 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.su new file mode 100644 index 0000000..b7f34ad --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.su @@ -0,0 +1,34 @@ +../Drivers/CMSIS/Include/core_cm4.h:1648:22:__NVIC_SetPriorityGrouping 24 static +../Drivers/CMSIS/Include/core_cm4.h:1667:26:__NVIC_GetPriorityGrouping 4 static +../Drivers/CMSIS/Include/core_cm4.h:1679:22:__NVIC_EnableIRQ 16 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm4.h:1717:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm4.h:1736:26:__NVIC_GetPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1755:22:__NVIC_SetPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1770:22:__NVIC_ClearPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1787:26:__NVIC_GetActive 16 static +../Drivers/CMSIS/Include/core_cm4.h:1809:22:__NVIC_SetPriority 16 static +../Drivers/CMSIS/Include/core_cm4.h:1831:26:__NVIC_GetPriority 16 static +../Drivers/CMSIS/Include/core_cm4.h:1856:26:NVIC_EncodePriority 40 static +../Drivers/CMSIS/Include/core_cm4.h:1883:22:NVIC_DecodePriority 40 static +../Drivers/CMSIS/Include/core_cm4.h:1933:34:__NVIC_SystemReset 4 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm4.h:2017:26:SysTick_Config 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:163:6:HAL_NVIC_SetPriorityGrouping 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:185:6:HAL_NVIC_SetPriority 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:207:6:HAL_NVIC_EnableIRQ 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:223:6:HAL_NVIC_DisableIRQ 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:236:6:HAL_NVIC_SystemReset 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:249:10:HAL_SYSTICK_Config 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:277:10:HAL_NVIC_GetPriorityGrouping 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:304:6:HAL_NVIC_GetPriority 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:319:6:HAL_NVIC_SetPendingIRQ 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:337:10:HAL_NVIC_GetPendingIRQ 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:353:6:HAL_NVIC_ClearPendingIRQ 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:370:10:HAL_NVIC_GetActive 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:384:6:HAL_SYSTICK_CLKSourceConfig 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:402:6:HAL_SYSTICK_IRQHandler 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:411:13:HAL_SYSTICK_Callback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:430:6:HAL_MPU_Enable 16 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:445:6:HAL_MPU_Disable 4 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:458:6:HAL_MPU_EnableRegion 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:474:6:HAL_MPU_DisableRegion 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c:492:6:HAL_MPU_ConfigRegion 16 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.cyclo new file mode 100644 index 0000000..c93f140 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.cyclo @@ -0,0 +1,15 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:152:19:HAL_DMA_Init 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:263:19:HAL_DMA_DeInit 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:378:19:HAL_DMA_Start 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:421:19:HAL_DMA_Start_IT 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:491:19:HAL_DMA_Abort 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:544:19:HAL_DMA_Abort_IT 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:611:19:HAL_DMA_PollForTransfer 13 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:741:6:HAL_DMA_IRQHandler 12 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:835:19:HAL_DMA_RegisterCallback 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:886:19:HAL_DMA_UnRegisterCallback 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:964:22:HAL_DMA_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:976:10:HAL_DMA_GetError 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:1002:13:DMA_SetConfig 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:1045:13:DMA_CalcDMAMUXChannelBaseAndMask 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c:1082:13:DMA_CalcDMAMUXRequestGenBaseAndMask 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.d new file mode 100644 index 0000000..1019818 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o new file mode 100644 index 0000000000000000000000000000000000000000..1438ad0533bf6b6123cd699fe8075abb36cdc5ec GIT binary patch literal 1145476 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 @I`#t$S2HjR)W##b;@KoK7Qjufbp}VX zRZ&1`-W3C}16AYE00wD`@$xyosTy^{fPHqeE7)889S!bQgwiVZJVFcHYWC+~bgCU}eno(Vuxn<6#X~iFH$Z$;mg#8lD%CVs za0aM`*N1i6RZ}0Kv{SXu4W+%R$@JYFSIvC}?_E>vdI7m~Ra0yx9o87$z6QNgZBH=O zsFMfm#(Qzwi);UUEEorErltIpoF#az%h}4+(CnRT(n11cPvHEAyUwo2K*!H#i-XG? zB`tgaKx3npXhOr-Y&7!g@fZQM-^>ffh||dZ7X<$s)6tW*NhIbfZPPeEa5nRn;H2h1 zoP^0OdZs{W%RxBsI{&Ch}{|T0i)}CP|;Ph zusRxoBH7-wD%{WJ(30Z_d#Muyj

    xLOhn8lm!jv*arWT5W@w4?FfDm4vXKB~_{ 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

    S1xmViNaQ~pgigZC-NW`pujvfcuUr;<&FLN8?z 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

    M5atURc9itaJ*p?nEGxqXAYSdzog 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 z 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

      J~*# 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

      );E7S8Y)9(6#%b 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.su new file mode 100644 index 0000000..4bf8480 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.su @@ -0,0 +1,5 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c:95:19:HAL_DMAEx_ConfigMuxSync 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c:141:19:HAL_DMAEx_ConfigMuxRequestGenerator 32 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c:181:19:HAL_DMAEx_EnableMuxRequestGenerator 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c:209:19:HAL_DMAEx_DisableMuxRequestGenerator 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c:237:6:HAL_DMAEx_MUX_IRQHandler 16 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.cyclo new file mode 100644 index 0000000..02e1d65 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.cyclo @@ -0,0 +1,9 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:144:19:HAL_EXTI_SetConfigLine 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:268:19:HAL_EXTI_GetConfigLine 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:364:19:HAL_EXTI_ClearConfigLine 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:432:19:HAL_EXTI_RegisterCallback 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:463:19:HAL_EXTI_GetHandle 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:504:6:HAL_EXTI_IRQHandler 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:539:10:HAL_EXTI_GetPending 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:574:6:HAL_EXTI_ClearPending 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c:603:6:HAL_EXTI_GenerateSWI 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.d new file mode 100644 index 0000000..2d2a4d9 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o new file mode 100644 index 0000000000000000000000000000000000000000..c9f5fbcbbc3114bcbabdd14205beceaea2e1eb78 GIT binary patch literal 1139560 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%0DT#x&^O-S5eCk;Fa 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

      S_)R_VEZ@96a1k0mfM~KiGeA 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

      ~ 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%0D_r{b}McT-Fih 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%0DD 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

      YeRq+Q8L*=zzxPRZ8zpfO&S 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


      AhVbF4F0z(dH^W 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%0A3|m006{!Pf-neBJDie*rJ3>Q}@hqi~ z95tG5f+QPV$$y<=K|yCyc`s zpgd_T6G8ha=re=x1@-xLyU8T;qW}$mJR5Jb~Wk8xK<|a)I%+E|^qkTuIql zMaJEifqB;0L^0uW#{YJqW2MH06nH2z&Uy=S<;EboeOO_Pe+Dd-#`tb%s5Uy$1aaOd zTMw`c#>)F(sWFz5tFzWv^d2hfj8T+CRc~a{9_6AjssrMU#^nJZO~#~oP}FQ3C)aU{ z@mIQ|*=k%!9<0m8HS{@xE5@c&kgLXxA3)%m(Rv)v*NrPTpbs~U6%zFCrZIwpQR*h1@U`MlPk`-8249KlJ;? zo@RhOFiubu>Y?!|N|K&3=F$DCY2)cl7_1rN(?Ya4n%<`z0wAP^Wg_`MF09s^2@>D+#Z$C{?-qdsvaUvJnFZ*pA&BN9w+QS>U& zlso~JqbA=j48bvzb_i|Brv6%prDx?j7MfUF zp#6;LuR%bcHND`4%5$de^U>*IQ!vf6rKUrl!j>{q`a390N zmC0)ZpwF9rPDAAd(+A{BuQ6?>U`?&bDFyoKOtUFOSZ`WDTd@XHpf^w&O><~=Yce^1 zi`S;v)K?EXTTRc^(Cclw90#>mOmEY6`KsyCBudvztSN9_H~qo^$_C9ZT zjhnX6F6fSF4SiPNu4yU|C=;e)`nuyi(`)3Xy>B`}2{V(XkNjZE15*;E=07w&e+isZ zrXCBRr%j)PpfqDT{QtAQsgq8vj%LFMG&q@8U4p=V^S)rHbv7^UMgLsPu@!)JHGlmF z6uFt_QFPATocS3>!o%!MORJ}O(;c9AnSYj`D)&)VsA#)N<9>L~MC=n&ZTte9}q2?0WPlTC!DVh{+-a--n z2(z{n21c3N=sX>5&Q$^>#vDOgoH(<@3eI?Q!!nQrGoMz`qh{T=5IAPGw7|e*^CF5# zrI{^{11#Naq`hK>c^#clvdot$M0moSwH4wg&1Wvb_#89487!yG7u-D}mU8ns8uAMBHiE7+ zyYxYAmHAy-Osmb;C?Wm4*-GKH3+7%*Gp{qh+66o7&FhQ6*dFFn)gpa-(~X)bP&5@&Y;Bkt7dT-$TjnVM3C#|K{_qnFz37uTiVU( zCm?szJn0L84)dmu0M=>N(A0d(Y^E2b+kDj%gd zcGrAV4Y>*Pu^#|-&%F8z)4FoZ^58TSC0o9y8&xTmSBWLnve_5rrdfV! zhg`bliMK#9EQ9%wJ8pUR7TPi`k+i+bvdoZQ|AZxxro5AuMS2X~DGU2An3QdKijEjL zmiNi)e%dnI4YuT30-}MEXYqd*ocWfAe?VV>Wi|z)3N5cw)Z~n1cPPY*EUgjXJZlLd z%g$Mtl=V?;i6jSKiKX%cNU3EGh1bd~8wLSgZkZq-e1+xB6(E%sy96DpvebSE@oG!q z8vr|RsjJ73U$9&pgk?3Bk@vw;Z~26hwi+zH6l%X{d2=b+8ZBvb>};~U6avedE$*`* z*J8OynK_p%$Ht+()snIea+fW)$cuBuVkQT}Rg0P~pj@*&l!08g{IC`V-mq}U3Djo! z;}%NomJk}qo0hC5$aPp2iqO_+x#$n^TNX2&Wx6asypPImOX>i$_gLmiA=hhJeG6*) zEMl7E`Yk02lm;vuI?D`Nc&(@$vOIGIy&bj$P=3LPWzPbDjaqU}g5|d5Mf!=3S$5L_ zb=)%76Py#4Vaj~JXL+AeLGD}DQ(p5!OC0TArYs4!pncl%6%ELYWgo@49$8u!q2y@I zmcv{pYt?KJXX|z+fVo(Q$nWiHJ@*lan{_P@YTd1tKT-0quH(WaPiv(Yh__YG1B#Dz z6soq~1Ff|S(H3N_Ab(x3b=^xK zA=ZlZ&>m{dq6COA>wRC4Nb59Z0v)!FkuxC58v7hd(bk}w5Rb9;>;%{m>)P+p+gNKh zoyX#=YMOWBtu=HDEy4QfMYJVa7gFxzQS0*;@Z67C*|at$TSf1{q!epC{R~sB-V{|& zvwr3dx#QM*uR~v^RqY1MEb9k!C+4K}2<1VXvabFEYO}3#UWGu8HP{E3r>)6rp(xM# z3C%tE)|5K16j(1DgWMS_Hw>jBYX)uM&RYHG%GWt7;~<`Uu{Diy4@#{)YE+h4PtZN# za_cj#sI0J7IKqfZYd$$ps;nk@3#zRiv^zX+O(c^pSlcdx)L5;wPS;xh7Z165>jK&d zG+1qK!`zEjA6hgTtqW|BYqG}5K$@+5O2KQju6_usFI)Z3VI;0t`x0P8hjrH{XzR2d zScbmevKG<3o-XTZN=NFpiu|CV$GSZeq}S@@1I|9HGo6|Ht&QZg7_g>h!K6X!9!h5! zvRI^p ze%lJlfOfWBc@3B@ws++~akZr-z(6-!{;xoBw_UQK(!=(p3UZz{_F_B-FI&SIbj;hf z)rLwR+Ya*H`Pzo$AbvLQuVJpg&E^N_0NX=K9zSH;{RL10ZKdRZ4zlh3|G22FhBC53 zY_X-_47IhiLv5Jto0m};Zi^BEEW);&(l#P($sNEvZ2OnKkPv0d`voN0w!Q`eF}8K> zz&v8x)`u~RwLMM~OPsBkvQOh}>(`J3_(P7TbJs@LjU4pAFJ#Tb%}$%eHLF zTD@XRru@&Vw#naM;5FOwuc7a{?MLzj-LQ4OfKr=n`waB8+gj-TylHc40d$9La|gsb zZ3oEF(`_peg7nzVSpn8-OC^U!pRI)QHTrF{DM~Y7Q^Z1U&=yX6%pn`+7j$#jHhV5O zM{J2jP&8`$-4lv#+pbkZ`+MABsPEvsDj%^>Ul=p0|blAFYJN*k-CT#+DuuR!z zbby|=jeZR6Gd6cR%{$ps$f2>{9!np=aJJ9NgMgb|L#``#`>%9r^{_|o1E;6Gm~Kpa z+0W2b2XFf~l;Q1b&!J=B0sBkz4+RJ9`xvm(&%TVJE&g^JEoTAtRti&x+25}M3Ad-u z2Xut}NHn?w}YhF?YHRl zwntHPF2i2X2V0KY7dK-FGVQsv=x5or;}Ab#_iseUPTD&^0m>=+MOO?+wq1P^EIIbw z6KFeakJ|&2a_#^6gXGz{-=h!t_ARvUDX@prg}Orf7&!yZ*pp~OP-K6q7j0+ltLWf& z&OUS$Mikr4v_USh&(I#M)V}FHD$DEzI+V)o+rEco74}KGJX~piiMGpC_E5UYSZ!ZI z6U2G@^&h}_!LFyvA~p7cbhOplzq6pN&K^KtL8!MsxC{du>~-Wlzi9vQ0ZNVb&;CD1 zU_V<6mS+2A`ZijN{pbadOZKI%U}?4gCkEJM`&M!jUa`kdL;F>G)lY!FX3rzv?{&Mi z4{bN>Pf*;c&3+;c0_}FD0pzB=gP=R?{(B(MX?O2KAGZr>^EF`)dB9TpYT0L!YZdDIM|M z9BN1Kz}+2u>8W@){JRdEo(}bGkn?hQv==3BhbcL<`#89ho5|NJ7Odhl*`5H`rkpr7DFuOlP4K>hLZl z;D$MD{}d*LJ2?K1$_NJ&xx6AB-0DCMJLHytCCWkN29#)r)k?6$I2@ydiz5!(^8gm> zknjd7;~eb&N78jbMRh%WcNdUlS7e3ltg} zR{;?aEFcPsfDJ(`bm;<$H0ix4y@-YS{pSCj<2mDq`s`!$8|9Sk~NQRV~5>xw8UOioZt24j4QiXHUznH!48XCSu}Vsnt&3fJ$U zcSpgahd{C-_W)Wc3Ncm6q$*0!0wqn+N^z8Q#U$;4G8C`>ioQ(6ceInbtGM(oyv|Z& ztwt+bv68YFIg0uFz|2(?G-G^uioH~koUd3+OSl4s8?8<6DLz;Q$wI|WS{fB8=6Qoz ztXM-k)BB1UTIfAcba?@#L^1n+TW*DWJbWotg!loaOi?)-Q(mr!pjASJVjJawDiu*D zAo55dq%Clj!geJjs}+|QK(a=WGaap3#p@lwtWyN~L7`r8m(F)ID6S1+${Q71EkT+T zA5m#dv*O}AAT5fk>6nmK#rof%(56VD)LXma`5?t6yj+ZZLdN#4(ol2x$`lR{R)%cATpqsMQ`6h#lHKH98yf99nr92 zoW}Q5v4#%wjwpUh#=xE_+Gqv;T*0S+_X|Zoz4TuyP8cCMsu-a3{g`5sl91yHP6iYv z6lS!gnN*}vv|>sTbQFD#%75tOf|K$ucQBomizZ;*MR{li)LoU|xnM+Y%6{5byDLAU zsF;V6A%dQ#^4AI|cqzl^$gH<=K@m`VmE{*;!B6>NIGFxQQyZ8)syzDw3IWRWAJICd zbfa}ouyXG~SU9e(1mvP}t`{U@l*daU6001fB8NC- zH&sPkQjQIwby;ct0_2J^@n=9^RrXNb#Wm%r>2M-mSxuPNmH)256eK9`QlutHd1VCT zrt+y1L~be5XxVgIIiCdw?MxRLwW8n z9L!X@P6P9&9 zmMfcRTULSV07I3^54ORHN6KT_K&evB{{x1qm1ovMuSV&(AIw^%E5+dJlrO0Ap?`h~(?qtdV&m`%#f`_R{{{Ok-ac#AThZoF1y2-PgKDII8G)~+mdL|=!plRiMu zsT>c6$YbR$x^PdFyIRoKrTn4-zH}>nXQI`kJn+9jmh#C=Sm;x};|qKJNWz!{Q5N?i=}hLwNNms_4H`w9R(qCDLTy=O`@ij6*39{(HUh4PaKkeAAE+NX{x z|IG&Gm@<~Oo#RSN%4AO{c@7xLq_X}o)TfjmtwzgH^k$eY72#Ay;XuQVBJSG@hAK|qVlId(%`Gg zqUfZb>UXLh_E+ue2RWwNLgny*s%PJzFG%G}FO6VT=@!^KuA2B6hC)=@Qy6rpieV4v z6ROw@cy?0t=yiykQu$J(^t9?tdi#c{aw&flt}^umIisqpfkK38kZP39s=lN%M(0#X zd(ethEukeql*+IJ<2$eN-UsFdRrWAQw5r+;7A~sf2Y?cz+CsafSXBenxWuVeQ3mdk zYV&D;T~@JwhR7AwMIM+}RS`5<*Hp#`wBl8Ew3@lDdY?v=p!)c2IGCvNtA@f2RSFLz zNwwxK6mF{4tOoQg)g#Ig-Buku2+!`QW~o7vRWXzXOi?YP7g4He%`8Btspe9gAyXAY zd#<~x5Zc3LsdTMq<*MfX0fju(;U0kHt4`9%wnEivnvf#ZPt~wjton+64EI&Pm%y_J zs;1TGD^VR^3zUbd&AFJ*Y8C$jfYqq}$c3R=l|L2y)~QlI0I63Qs({j5A%Ch`N6Xg{)iNrac&2Kg60YZ}c@(L6q56bA)9_ODr3C8ZDg_G) z6RKM+P?%JG&xXAzm7oj?j%wpWC^)Hk|J$#q=h&jpMcrrz1y}V2+J3mHE9OAbQ@un4 z=e^Y#v%&OHN05U@)Y)~g?yIh)+8;ml^GNjhs~sq{5ulEvT}Yt%IbEY5^><5v8LYk= zj)^?39@3yML~R%YW~jQp6P}$=FQni6DRmmvik()E{f9AxsW*7QdboNGeUR~ty6*>A zh)}Pjwf^bTxdTi&a zH&QKJo?6z7iOg63`!ysB)c3oAa!>uuVpuO!Z+!-{Me6+*AbDTiJP#-j)VpUwq(psx z6AV36mr@x;srvIz&{w7o7{bh#t2a}ba)nw%F^@|1Pjp75TD^e^$ZFIjyFhBy1>{Se z+L1h~S96*5SciJ84-`7pU$20J zPt+HNfZ3z=qc~>2I-8}>)tyQl5XQRw)Ly*sTjBka@Zw9Z+3Z6Nfb>`!ll$zm#bqeFVZ2u2!0Iu1)Isq)+evFRHUbkoF0Of|g%7DHk`+!b( zcGLcr7$SG$k_B=WPTVmfq58Mj-o=KRkvVWVtF;QzT zQ^2JL`!0G-G~3^!jC7m5j~C2#+6PlExy!!1AHMY3XYn98VE<7ACTrM!In~TQv+r2} z$(QyEe}v??eH6t6rtFW>ip5!TpZ1L&nwR8~r>52gUVCZAsr2%Q#&R7beKof4g6XF@ z91Z6KG+P<4a7^?5MKA+3^Qh$gxMo@oybjR}jQ}iEWBC)nPH8^-3-(THmRf-srg<*` zA`zMbidLM}$md}~&S^$U;PrV;@FyS_G}1fJi`FDL13Fd{(*Q$pnwSbOFKLXlB8%5_ zh5_ZeCX9B92^z&Uv~Flhs3tK<^V?sT&zl-II%#%G^UVkpZfllHVDFA5ehx&EH5&%O zOwm}-t2Irdaf6|BO){Oi%g}s8@#HK`Y7bi3nzb~MIht^K>E~(YQkW@UV>JX)pxN(; zf!)(Q3c|n&H9l18QlweD2s2TvnMI+2`&QjrOQBZQ$QM>b7FrBn-(UQtp8%Ze`7wx<8Xt`=P(2K!c>q*&8 z5ACiwui4t;S{)W?*>XTX&@Q5yg@@Yze#O8_wJnVhDbp@3L#tf-&!0f4 z(0=>^q*6PF?)NHf2UW4vYWLI4T(5nHipLwYCFj9x)b63DaFe#T5zJ=omI4f=MH{{! z&bMio&|bS!JD<{(PqbU;>DHzF+zhR5?Z7gOp+|c*8e{0yo}&WCKJA7~jBh}Dg`Qc% zTD!j>GNS$L7!;mq(MGgR>b|A;#3|ieI-q!3_c1Ma z!gP^Txf!mrqt`@)?lmeHjnt)4s_49KAMFY*=;CfcBwDxdAX*o7uTs56jBb4sL}GPT zN$9(z`+Nk0zN$M#;mmklIfb#W>;9w@P6;}d62nZ?MK*!l&}r!*o}`o8L*$k&WB?+` zx(8H;o2pBo^-G%WA_e%;bv;F}kfB?$6J|4Y`w9VlSH~vLvUM$7NapFP=tOvdE{gi@ z>29xwFNM0b^sSa6-3*FP6zjhK2~%)icaRnmCAuay43+7)-jJ-&H7X%escQ@ad89i_ zg*H{Xj190*t?QTvKWlU+9zm~8x8^)rjk+tF0M@LV{yWUJ=<=uvs#W*86UNY{`(-mk z+I21K;cka6pPsajby2he?ACob9Ts|VrD45K*FX`oe%%9WC=BTAjsj&+cR&J#A>9#L zbU)R_CqU%6?yefGm%7q1^o{BYX}LV6JFpLaj_aD~$v2^Er&P+M?kgu)aMbrDL&Q^G zvm7li{hy0Ky!G!>w9rSdwgow&=TrXOSAXPfwEXk|dGuS-XHqQos6ILlGasO@`4oD` z^l4Wy6M_0{y19b%nQ0hwu->bxHrlnYje(Da!5UPJb3#AkKbh?2~>cgqd7yyMTCC5cIPHDCD@AP| z=zonvUy1%4RWCl&-`@!5OZ9vzRxi^R(Hf;(zmRe-75eKR!d|6*-q*13NdMOsFst;b z=O9_FKcYrojs73{z0~SMj)7UHkEYwHUVo9Q7aR0^x>FnVr`N!2lm0M$y`)($jf3+o zdi|FWY1JoE(OsK;(l!EEiA6f^qeR`G~obT7)rSr@K`Yw7(4eHD8Kw(Hf@IEXI>+`5o;;BB50(>L- zq%k=0Oh2EVpU?HKQdoGQ7tob{sgKG5b5y^C?&&eThZXuJ^(klJ%ap!;5X8}7n+iit zh6yu>I2%NCI>E&d_YEXn4fk3w6gR_+9{A~Qkkg&&VYspy(4K}m%I10*a$i8*+hCFf zrjH?{94;L(I6ecIuc0ssD1HVriaGil7Usa-QG+wRs{#zRlx#a@&<;Z+(6EIPe?f-S z)xZokT%*nFal?~Xh=dr1XfYIO@E-;9gke4Hq)r+VxoDj-%%UjcX+sI+%EJtiz5ok1 zSbvB?pD}FmfV~JqZZljuYpAaQ*f~QOMMokH{kQ0@GN_WlJa5=f!RZTzkF4NCwBZMe zGF~(k&}t^e@M;kZ#TwSrd9KTb@9Eid#c;(HeOC=Wl<&W0(2*1Ih6Dc#${1#U0_zC| zgBzd|4Suwmxnbz1^V3O&ZB20grr{SF!!1LJ7ocw&)V3Jk9mB#cP)Ih^vcXI-+;W3n zszFl=dufKvIp|9_)Xs)y8HR(jT+TEs{|K0O4S(iCB+KwMeb7DIaAhI-aty;|a5vX* z=>)*?4B>R8^9`JzfLUP3c@?9*XL!v93WbKGi%>5zcqBrv*l_6|wC)?$KZC*p!*=@X zAtiWnf;ZoHbQYnz!VDP5`_(sDwVzinJ`#yjZ%?1mqUTiT; z(&cD1^wT@F%@9pr2x>PZ)B3Z+u#SZ(cw*3|LZQp>G#h5S4IzCH=`k#eL|?CAEv;Yr z46RzY+i!5nL2JOEGz0XYA&#CzLx!)Yz-rhqFb>S825vV-J7U;11AWg7eg-H!H>~&! z>MsoK97w)22=@be)KE>^fiZ*CQkWe#eEk%C6NaS>3~bVHe-i3b297249F0%uh3RDc zb}feDY@DLo$;D_xSK8H>M5njijL)Y7%-wjcAJ87gwX_8AG&VUv!OM7;7B$|+Tu&(Y z7_U$@;SpmmN%|TcdtuMd$cO>)H~yo5D){S)&hyMa~%)SU@t;C|3g|%D8SmTsm(Ic>q5z z7^}C#P_&Ulas7+N(RA30F%~gFVvReftS`=Z{y3m78K*CV!d2s5iUD3TzNAG|ypc!e zVH1sUejqoDgG(WjWOSShmu?$tX{&I@D5AhbvN6g7B56j4@8Mv&ah#HE8ODW_I?XrE zu7W~=u`vyj_l%l1V4=|X%0sk@j6vriS!~Rwl*oN!=~KA-z?ifV%o5}LI{ZQ&8sGQ@ zm}SQ64p1mJuA%LJh4J7E*sC)7Pe8BQSVNKS8si)aZ`2xV4}jDe8y|wy8|xonLK=*3 zB!e^>w>`itH5ngKzPQ===XEe!jotZRwi)wM0Nrjh+YRd-M#saj-f7%IdA!F)*%g3w z8E5Z=gWblECGe%kSV-H>exny95C)7se?f21_>eYRjt&o}gSa@n^E%Ys97LT^@N!U4 zK;Or~fp+u04g+*E2Rc+w!%&Vp^qNBCgoAS|E=Rb-&U%Q%In>e}70i@`Js+ zt?$~vm$I#~^g)jLt@CbxbZ(s%31;v%h6eL;XyZ+md!-da}21egJ0C zHYIIF%C`l64pO!4Jql+wZu@5xes*lDT>^#PZK-Ksj%*WzLu7p0uXTWS*}jT`)4to= zDQp+K{pK-LDHF^#hU8U<^fH`QnEk&o zK?U6wuWB;Ud~I1PM(}#rV_2A*-vV>`Nx~U|F|L(Xe-`Mgvn1n^Mb`s-={d#N(PlYuIi_ANvn5qVCA!TXXt(&LlN>d z2Wh-te6|a&txZzn|6jJy2JNe!?T}pOOk3#nt$E;V2w4P#uRs3|_}>Ik9AabI??C=m z9R}Yv?Y;rdcW2qq`o7_P$ZUSM2mBw@({T~D%zO|3R~(85zH-Y>psA+Y!v}TeThOv! z5(>Vin-WX9hG1ao|Dk-Dp^i#WjGJf?<*-hKOS^RwJw3ODhXDV-6k5}{GIaD>bz@wh z0Es(;PjxCDj3QdEdotRn9@vZFw-oc^%{ciM2IIr1(8K-_29KU>0gRd%XtgsYsJ8AY znpW`2?hlq1Yu`nrrSvvWBl{g{3f0q|#zFF@-kGo4D|1DGGZ z4MWG6Kbpf(AoCSD`hu9N+F>Dt*-pXrP^K5Hrem0XV;F2K(_$}1o5*}32f4v?rPp{8 za|gYuZ!%9(P1h}ES~VnZGY^jf><&}941LK=6DplaVXm|VNoBI1qc4r=76Zw2<`)^b zP8rOwZa9(2Jlu*_7PELghLX*!qF7`Oa|6}VX0hDqV;tG6Gcsbb8q+~?Sy!n1HIL=~ zHuUmYYv|4|Ug0)$6$J@S(WQBq8ip) zM}S$!%6<%H1M4{L78+SU&Vox#tYHdXHnWbS6(EGk=XWrcnPg*MjDe?y_2b$~Vo z9V|8dSUXv%f5Yr!)^^(EKVfy!gQJTTWedq}*35U%*Tc%9qL*IQE`Q8KA8RwEboyE1 zWgr8rV}4)`vJTR(afr2%Dolo1A+;F$Q&z@Gm>prgISnY!Sf5k5(Q}qWh}H|%6um58 zvPS=f`Y5ZLKDa-|+O+|FDl-{XK)u|A zdk*RqCazg?5H{_(9D*0AVFp)bI})S=1!FxC(KT51vzPU zhE|)W%xYEvGtO+_HXQ6Q3!*F5X(nC+>yORO(F);-nGG!oyUhAt14_5qE=x%En7z@5 zzFsqFC=~k42J2vGz-(FrFbB=W{W8;-4YdVb5)P ze=tz|&2y+i{ir!d0eb=FPPF|!W`1P_E@PniX4=&RnJ4cDO0fA%`X116b4xx@qRr<} z#OR`V_*sy6b6X1LUpIH4I*tVM)O6@2n%7YrHr0IP8H_f~yq;2I>E<)*!OSq9^(QRc zHGe6F*IDLQxFFf)jA4*m^A0)(oM&E<49R@+aEc8Um}gSbz1aLG%HZEOHzkn==I>H! zt-^e0F_XdPjXY0&4#-b2;v{_G!GVf`rkzwNLPz)t=J_5#`MKR_git<3=Q zIQ!d;uouEEDZuQWU<*G6*h%(f`m)Dqc9I+CA31JBNa$_t}HTKpwE;nb0d?zvzVI zLv}1xT$Qp{(QB!KT}9icO7;m_Vn1TfoQ5$}v45n`R@JZ{4T03MS5q}X9oz3X^y=BO zDKOo@K1;!jPWI6+;lyM13knK$v6KIXNH=@^BVhKhSGFZ-=mF`xbH7<$7Guwy7l zFvwms2dyEtH`Ry_v*&n%Il_M24X|hIP8G;=_EiJieZltJguYRBo*4GV*gw;`fpK@10DfUJRr8rtBsl@!M#bK%eyk=3q6V|U=JopKoC0J-bz~xA^s5%F7!y-%t zy_*&1Qv7E9^LP-G!|h`wTr?X-x$Z}CnUz$z_7Ww7wbq9Yc4)fRIp0a;@a zLkYn;i&qOUzIuzv!>}-7@$)pe^voiiDw$qbY&?j*mlpYyTN$;OTL}we7R%?OHE!X) z8`dW*B9B94(qi`!Ku=lhdlM**oa?us?!;Nx32pTQ zopX?Xeam3z2xl>6{(U(ur_l1_to{_3{v652 z&^yX$F$ZPwo*oHg#SeuA^+5ga_p z;qHT>Q=IDefO(oT@*I8PoKFg%eum=`fK~)&6Fuk8a%7&cevZSZZEPgR^f{oTI6NaJ z@;oOs1!gaB*3nucniGfhrs+kFTO;&hIDejmUM#0&2$*pk27M9a66ZW+ye@O5*21ML z9JhS*UFEQDqwf)C&2uPJahi<~Y2qB}2eX;eHx0}d&i-vsXyqKFQP`sIDd*o* zsE=^cOF$gCX8%IniEB>*3m5Jq`YpL~M=8~OguCPlFoU_ZOpxQ;2Q;D(ZZ(C%Lb>Hl zP(Q&PqkHTmm#>80Demi(G&;>)S&I>cagC)g8_rdq0P`ZZ;yOqSH;oqLv0OD}H{!Sl zC|G)l`)4i4Wo~^PM6PfTBth>g_na%Bf^KuiK7>nmxQurpnapKVJya^UoNn|q?g^@SO6QKvM=OK- zy(9E8xnCO4%Hp2;0dtnab#8`w9=A{fy?pKx`jb)x+!vH@E9Cw{x&C7AtW!{U!1WJ< zWC^#n6Rn5b_vj^D#+{rA&nmdW5IA4OJvtu>)m(d8j?{3uRBc_)b)N-hBlpT{u+YRU zGhzywxf2cWrG*tfn?wC9J2DzWSi_s2oZ8kyS zDfdwVP)4{n>GD709$=%DFypUVxNrqCdME-{IwN2&z{+O0(vz=z#yG76DrUT$4wT9n zds4uBG-JmFK-bQ=#(-qqjFAj@T|eUz#fuwe_+V>k+B73sg1+V%Eh_=tI-`SjQ*ARU zyJ6PV@{1E-x>51ig79d@gE9l&6x8<`M zkRHoKYxvS@d8-ok`YhL6L#yBNR|$qPV7Zw}iBuz)#a8Iy+Au%)>bP@Y;w(AR86 zET?{e=(3- zTFqMrg#fD`4nX~wmBJa&fmY$g5Q(y?+X`~Y>gX7pxNOy$h`uXUhR<=quUcg+z!>gY z@zqezvg&vW3)xmfufV|~t550AN)%g}(Np-o)tf0PhKD0`pJFe6! zm%g`IW)=1YM9Qr;EQEy$E1MP2tF(#|1LcvG(`?wQvij#HnAKJ{YM@YSrKRr$)LA7j zgh;(r4+YH{tORdBq|qww7xX=`S}R1W%Syiz1M9YGx(k#Zt9`Xl=(YNn{=`$CRi*{T z&~No%2YeZ@`h)gkgI22oL58dXsN8ng>f|V{-%~3uIsiOkb%u%*pIdp-JMM+m_)idd zX|PL77f?(E{ z_p2=o`SE_FLIr=GnIFheo>c@K4B)Y8+j5LoPgN^{JOjmAgLvFt^ab-8_rj$R-ibkw zP~O`sA##HEn-?y}NnXDZn5TFtUqkXVul+Lg!gy(VFvEH8eFF;-yu0*cKg;`oj-s67 zIq!x`k-YS+XhreV^ou;t`>+sT7kEo3=^o9Cc7(`9-o$Z;#PCF!5Q*ho4*_%>@9Y$Y za+zo93Xv;3lQZz;DsTNvs9)o?Q0Oh5_xK#hb>7AuP*33XEd@#BP0{qE@=l=BQGU{>(PuL7)+r=l$OBi@2`pj7c1C?r?I+mHh5 zwY+IQP^ja@>mgFlyS@hs4ZIJAq29>5Ntv=H=s~iX7e)!|7G600LRxvwRH)a+JN7o1 z?YtSZ0O{a$?uLV%yvZ3*=;B3*0M^YrQxDR^TS!yT%d?@9=swlzH@qV>D`z>KvHUI*qS>*ZVE;1%mt9H3mco@xhliFHCV)a$Gh z>0=f3*1yx21sbfYGSO9H0s2N|#yy#_L5Eu9U_ zVe3=$m8PfG-^wvPBi1Uyd}cko0Aqh{T|F1Rys%Cn3ooso*rPRS-A!@(G3#SgST=6G zh2lgL*6e)PbGLc*8lXLFT-$H~f^FKU2=lm&rW0VHHVxgFkP|j{>AQ<3ZN5%|`Y9U* z{X)WQI?n?0qRqEm5Q(u_Tn4=a8;=%{M4P`W0CvOXJ=$rc+cf=(Daf$d5(DQmZN{6> zch}}GT9{?oymt#E+vY+o^m1%A(groxMnu`SJewy@FqChTxC^AfX0IEV_iS>?F+GJg z`ze%KVY8bqf2EC>2K~s!vJ?(h*@SwbRc&K8fL4vo*#W56+U$J*3w1Wr@1w8YrtTZ` zHQ2BpK)uoC`D(P9Y?jmesM)6PbttshFewJuY7@YLUYkwtHOyJN&E+~c@z^Ho8%RE} zN$SPeyKLfU5!G$8oNl!q8?_kfy*4v!0NrQP(GHY;n-dmL7_cd%=jX7^=}Iu4*@RKW z&T|`6x}9FwI30wcmp0$BG4rD~n%$U}F`LZwkQ}$^lcI0J#`_;Q;m&_!IShI5N9SM) zJo$h1!jKm~X&RW`{M^N81@pZ>fckO1uN8a=<$Kc_pu{3{2*OyHY*0L(-_pB^4J_--|r-6Xz83tYO%AAA!ixA@*iA#$4^I}gk|{7tlX zO6J!tM=OP2#)7?6ei_|(Y5du=4@l?F-+&3p;3v0%naMYq53_gqe2R5t@srNeZ;=0n zKV~q8zqJq-AeX;^N)z(?-5h5SkiZkF=9DDP6n&-(yo z%lThjf`tmcw-lt3e~q?6kNAtuVhmOM$%DYG<_F#dSPkEng0QvxEo8Qi&p8Cldj1#Z zq1V9Yw4kq%-$B=}iGL>>Gtta1r`1dgpHD&9R{n34;A!Kh{f9xf^SQ^N*TMg7Hb^JG zhl1~q`OY)YdcrS01idc)(^imf{_p2NdicvSV6T^d+z}#u{5pCi_wy|`fjPimHUtL; z`3H8x&=CKWD`sh!{~d+*pYm_hZ*YWvrWt0R@y~mr^_;)xF6_PFyHlCVOa4eVFh}{b zDW@{Vcc(jUoNrDQUK9MJe_?2nU-&-sruZy6YvCwZKw%gs!NXAKISbBHZI6q& z!SQ#Y=O$pMLDF6DxD%2d0`Go^cnVC8pwCONcQFik3j+C2@DUt33+N+)ibLr06--}? z3*aY6r!1(yz}6olIx1MX2YmqoRXoTsK?}V*0tMky5D6006oUi{x}4B=TrjsA3L%2s zn_xCnFpc5`Cj?P)_;OOu~f|ZoKJ1>}uhuI5)ie-?D7JQii3l{}00x)9)Gw5X+E6`no zFL8oB(LlK**h2x@%YuK`!?P=bH>jlVs-TV*iPr>)pF<>G;M@v@>w=Z3=t~fI#=u^p zz}pE5Hw3#WyO<>SVI0hx0`D$>-4fV*53{!g70&pX-VtQeWF-pt zFGarc1s~FCtw6B;R~Wh{2wew-Lcw)9BvT|<{5o32f^Mp3yDuoG5~c@&l}5Bm1dR(o z9t!&Qfmtee_b$}S1mzduV7XwT6=SFnd_srGD+OG7f;|$rP!Um;pyn}{)q;;{AzvfN zr{bJi!5hU8sS_m31WLU?#leUg1g4*&)hO6;2YpQf%XawEEZDdRC@lg9`cpBjf}^hk zrA;tQwWjTY2Wp6P2)J~dty6H1R@9FL*{@-=PXulnkS>8wAQZX(i1*MSTOZqsXNP~aN^Cx!(5Zvbpquyq^?PX(u_WOzhyh93UU1iMl( zqUVA=-=pUuED2%%&Yt+T?k8eGkD!lzP@Na2VHBol<+yasm@g;NZey&=3J zLtm0GC(DyZKVZlMSK1ECpxFQ7!Y-X0N zzFoNKb&S13=J?^CJgZMw z-vh7vg|+{CEeYLdmpmw3O~ITYVLnym3=2~z4fs^(91Hak;STyL;xl2O3&!_c*h*gn zc_A#K$L~wwI$9Qv3fKM$>tn)QchDLaUi}fyPY7En13xJoUjxi3;r%GI97T!Cpzb8P zj-oYFXVFkFP+UZT6y|jm^-yNSO|;B zkuiJ$2AK%n@G68O+NDtf0JA_1b;sl?%!=so)F28z6<0W3&# zfZi*?qCQHt9T$aK!Iu!xFkSvok=3UFJ0Uu+201CRqcGYjQFJ6QPm89}BQ{JlBN9%8 zi=OGBen!-G5$X}5r8N*aD{3Eu-Z{~miD*TN&i@RBDAAj*p>!Me7f|(%7qKHJIDDgc=-Vk-S!OtYoYm0CJZi>w5MRZHlRs?ceB>xbG?ud#u zV_K6%)~jGIMf7SDn5m+9U6`db(S}7Zn=V=#4rYdE9{r#*MbWelxhrbF4YOII4^3eq zTlDjXz|0Yu(jGQfw3135@~S@u?N-*L}$if=$=SdidLbh@gzu*=;}?V7mH4x zgS+=d!vy_6^uce?D-rckHQhszp2`GEMgLTxRVMm{>gUQu%Rh#N3els}kgOC9(<|$d zDC8bmRifz>D6bZIE{20OqM)Ui`C3ukA*k1h>|UZ(FZz2sP#Q#4k+^=1A|G0uG>O7! zncXaUcP}JcL^~+@(<<6b3yC(-p`YMcyXd?DdL1GIRa$h4J_~~SW6_i|hVn$TIsj(7 zL{pdHM7PLDdzl{5=wgswk!=(#^ogpz0(8H~UJEA%L`z1%92Bhx26IRhL}AxqQ6Cfb zo{HZ54tgV^_t(STGZCLqo{NssL-mCyECRl~6n#xQ=uuJZdk`5Douen%xM&r{r6xpX zZfH%4I{(5LrbLe^5$7m&D2ASsID8n^oy8_2xZp10T6?IwiaQrW#7)eh46(cTjYlx# zA#R`>!Baeq)}LPD5{eLbiznpp`i!_>3rK|c1)YRHD?S+q=yT#qN&`lU*A@UJO8g(4 zl)E679)o1G_`nCSa8bOv4Q6A+pHloKR{UNeEX0XdCBW-T;<9;AzbuaY7$R51n?gXY ziVvzV*Vn|0D1aF+zT^#Gu8WUQc|wACogFX}#rCHFc0)Wt_0CD+#%7S4;$n))-4g%t z4_?M z`xfMpIOKQOs}ied*HbNihvKa@V&DIOQY((6kG|B2ujPYTFPdpeV4+iNSc%qS@i1+no`^%H z1Eovs>j-zd#RevrJ!0<-KKCh~p*0|u(q?N={5lnC42hpo5^`8< z+=#xX;-XHVjEJAon&FxFun~IC#T&i_c_IF~3?eVZU3C0oR6KJR42_B3-U~7=E=a_@ zOo;c|;Mz`#BYuMVl=#ZmAdZqRcR|5PVm<>cXUW)CkaUskplz9}#FmaiyGh=h4rq6Y z?f}3%B-Tl|4xSQAs+RMTeEbx|TXN+dM0_O6=A-Y3p^|OiK;(pE z1+D8&Ny4Ihw;65sj2jFCjrBQI7mObMAd$!%J?Uy}6A z1lVPXPa_Onk*rQb>#Ah)5c;l3&d?Evc*%zKxQy2&KVF5q36efb%x9uxXa&5!A+a=p zy(GzkPjEGFO3uFpL$@T`)c3Jufx!oq>gTj3CU{_ zaDGx^OF7ypN&l-*aFjm$1_N`F3h2k+Ed90@Ub{$Np{wF5Z8#3%Ce5A!;x2uB1Acl) zt&{-slg3YNQ2ntn@1?FNu?`rbWgj>0^8JU6%e% z)%jPXS{+(fr5!7Qc}*Ic1ncoqtaos8N#An8^dv|JR>N$fR6r*IZ%9?NqE3?LR{-;- z^h4Uq+>)NDf!W*AJz`vrJ5qiO6q2QTKf{Ppq;LNXKU1Z19iW#c{r)pxrb}n6LMub+ z_61s*(k6-}+?8ge!+Mrf!iP)Q(y#wSD@VF}C0e=C2Kuf~p7bM%HRnrnWzZ{-ny-fw z_oPex09GiCwu4BKv`CM>V(CFT%6?yJl>zk!(os5jQ6l}8Dpwv#$DBY)rS6a5V3{5gh#jwjM_3ZHgKZwH{&E!{{LwMQE256NEX-yyKjCuPinpZ!vgw=pjR z(kIJ6ZrR@Of}z{Cv+~fFZ2OKGNUH6}|I0hs3hC%zy6q4DVJI24Pa7baY5NDQv$AY$ zKZLtEwg$>3<=P537+=2agL{xHu>FYx<~>{cn_w2&KB1?6k*&{afEC+@)PdZ$?L804 z2eus)bttj*_z?=Fw$EuI%WPj4pjB@BY$?W2X*;+a%ty8%W|)F1+h3@TrP}sqKa8lx zc48Gst?iTVAX#T?MFH=6+dT)N&|o`2kNZa3i;1~^l6!Zl2~D~0y^>(E~|Bc z`Wcx!)j&qb{43$$IoT&;Xhq7N(`q|Pwvw_K=VdEs-E%>fy9Xp%7De?o7iHNLX^WBN zQ8qAECj1weaWYXG$R*iYA)L4@TiO8iE3%m-P`D~{r<1tXWMg?C@v^VG;NW%H1`6*d z%3h%Ys~a*!1r(BGOp4v#lyT|3c}w;k56n9J`{~C^Mm@QK@V@eblB*c7=iu<+6{b zz^srh@qxRQvcOs}AIb74lvIr=fMku#NWYMJ*&x+KHOLw$!PO{BrCN?A89xZEW?4ix zhSDNyejSEdW#{|gV9RVt9MlJA4<3dSL$mL6Kyqq!4wXYV&-up#Ot(3IAA<9qbCmQa z6@BI`c@=sgbDHZR5;~`@63i2GzTg4n{uyb=9wqhueb2fCtdej_SI<9wNPG2$1M$cJ6DT<^y!L$gz zIVY2%jCbbr{0ZpfIa_H@nKCEZ1oqPAxKSN^`kXogoH%Nyqi^B_*yT}*;+WmOJhTGs z7We=x$ZkI+FN5tYX^j$MS3yN8p>~UmuyE2YPzuaQyHD-lM3fzm)_mvf5@aA3?95(; zUbG#H-i8kRA#usasL+}0syVofrooH9M0nj(>S}y}S-EJ*iu?)MtYay9w z_v|gG-?g))!h&qOm@bf9I~5ls&+bQmh?Lq{+QZ#4yXB$4EVuLj1L_ra{`7WwWT$=x z&#LSSDVO}%Zkiduy6iNsK(gEJM=vG)S^8Wc4 zpQoHjv*aarpnROST>1&XeB`A^;qDRn7K$DE$&Fp;^Ot{i6?y^k&sPELnEWmsv^yz( zg(7CBb}xM9CLygUETg1y!_OkpG&3 zzG(TkMKE+xp86QjG4jJgh{Vdbl)^%se9IM(OL99WT>i`Q{X$4ym2-lj9xtD63PacB ze^N#)S-$=mm?`q%1Hep`PkoQRH2KL5Xr;@qQ1UrL{ww`LGUXR2G1(lxMm)FyRyi#8AC(J&QTcltLs^nu-V^%G{MQfrOd8#eU*2+&5qpwcB zISpX-^37iWr9pm|K6TkB-)4WN|D4C`8YkcTjhlUv|h+F%K`RMeq=Am zs62rJ!ejEEKgCRp%MVsSazbu~*Wffd#5GSwD}*=xiiYf4eg|N}mGOd(v$!!fQoW-) z!#)rC9t;h=j6E5<>02&djPVZWdNcl|r@s$l{40nYVdPW6urI^aXfn+#oKZp_V7Sc~ zqJpVAjD$F}k{L^nfTS>9qqRdSBbWZlL>eRTI9y9-ETWK02IFn2CC_B^1j52yMg%Q< zvKYS=!g@C2BAxHaVJtcV$y`R{W4NBju%iOWd`1=3`4ljIqO?~DqaWWPGV5h{&<4oCz-2o=)f$RX*b}Ap{#O!*Iq+u0*~3v^#*6pSe~U5Ijv-|+?qiAd zKWq=iw>!b{WE`fDz)=R5f?ENMO{UO2#t>7wIFOM{G5a9KtRHE}j4$k=5XOk>010Qr zo`nx*7)+Y6XoeHTzb-PurT`YhC_Vv?;~D1_(7Vp?_5m}2vBesblgzN8v|$P(>?uUD z8M#idki&?(27AQ}M+#WqXN*uT;{hXdDHI+t%vn&VVyqy0)r>#qLZpTvppbDbV~h?g z)-mSq0!lr@mr8gV7>t`3N+V;&d9<1slL|;SGd`eSSqo$DYk+QLFd`t*#?aftiFU@C za)@*=-V6g+AA?DOjDE&IEL<93gjGRukl{}`-66&oYk@h;c=YSMiDFx=jTzMBvSLPwgdblwq4`IQbd6)_xJea2Rbpuc4>OQ#Z z#S9jq&zsrd4&uYyM<=2JnStG~7sM3OXoHy*Z=&xw^GjN}hcnA%P(Q=`?LDYRFtg}y zpqypa9fU{>^V%ISW0}Q=U?`6H$_2QTz$?>7&Q# z%oFd!UIz1@L5Sot_eEgl3z)a*NYg#$9y<0?$~=D-Ln&jzH3pK(C(J zM?aee<`+MMG%`PDg4x8}{QwHh%-<>g)x!KF3CvdJw{xN1#+*f~v>xVKif;5We@%d1 zA5%pO+M>Gks#K`b0HGUs;Aw58202C zbU16q$LKr5Dy7Pd2-cTxLH#Vt_HU4Ltn2hfj%0CWpf8GbdkpHASj|_#yv+KCcIsDH z`!rC$%KB^&nAceHVt96o6+pq)+pN!NnRSO{y##b!{3K?nm-U>M zrmiMCwU9hwl1D3mAd|aAXq`6M_#1{2Ws*-Tze^@fUxOr?ywgiVF*$V)m}w?IFMzul zCin;|-T)@G%zOeI_aNnX+dl zA5zWFq>0OHFx^d+lW6&wnmvbS5vE_Yfm}D;l8?Uorqga?(2q>JwgIf#H0&`XYfW8T z;dQ;K?KaOOTIC)YI@PROz)FKZa0Q2hfJNwbPIepd?B-5uSRRc4BdOv;QGD@+{OHxF-)DCc^6@NnBS)R*4NzG0OD^h-UJbxuA?#us7!oF*jNT(}1l5@X&Kfa@1$-c4JzE9MV> z2Q%JW-wS&Q<_n|Y^$qhKGa+)*{HqHPNi{#~1h7K$Ru{C&%>SevaIJad6X>;?kN*d= z-R6f6U?wKaM^fOD8=FtD6<_wEe3(7ME_ZX3_A+~z&19daPkU#vAJV&{fE`GGqN0}VvJuer?0)(*bR&Cr2wZArGbxGD%9gAG zSUdalGMMdTud{&q6LuleB{(T&MoXt&wgnwN>}RiA13w4ZA8bJ1Fk5>9>Lcv7QZQXC z5+^|1EFAv>iigExN=$lLMEd~D$D&+KBeEEzw}rpO;>TzOSWGx!C?OUnDex6$QSdb^ zL|YuB^k1yS_v_&2B@5;Ms_ZNl(J_>378ji0%XN!3O1LLlv@L;Tl7*UqzFQVulqyfN z*qaSzwnZ78@VswP_!Gzri$zrJIBL;+5v_5H!xmWMJ9E~ahFMomLp=O+=hW^6@#I{z zf=k|d}vKgp)uy#)*B7zF^L-eVDV;oP?FY4CjOd(hr66$6BaI za!O7@@&e~K13bIP3D|=vh~;dhD9j~Jj29%YbDBrNOyuMb!a@?~+7am8;_O@x=rqo9 zQpn&u^@K}zIjwF`$mTqx_ew5j+Xs-$=cN1ra*y+uJJgFf3+d5(pR?{SNIv8kUZPdS z*_4gG8qQw==+$$=YXRNN;Zne}jkAe9+t8X{aBzTgDgv!Zjv0md z9Jw=lfa%PA&V+(1_ak%6t~+-={g#e!Gbs}9$Nk$D?jGfa{tL6mxevd9WEi(&6n$s7 zdufGqmaC<2RYY?CpuO^WuK!!OjB#AWTKozwbFb5q^eWey!bCT?TVDam;(ope&gXCi zbTlxJ`?(E#Dd4gxqxFB>y@y{_$JRIQ%x>o#PNk@5tTD|fwwM^Bv6t9lO>D8FV!?(j zY7|7k0!RlD3n+r3f(;cF6%Z*RiYUD(2v`9t0{Z)|-22@3dEV#VKj8iOK^8N!)_1L$ zz0d5KwbtyDroFQpEVr~ZEl_z|yI+QeJKDMAqr9iJy$S>GYu{f-A9A!EY0;LaT{jr| z3bg0w!BC{#Ll6BDt-deFL+$i*U_R5@)7|<)JLCW^T(wp=11PoHstqvWwe}(TdERQD z(!TG#_G@cke$XzW^VSX86Mw(qMz=EtM!4yG+k$xO&XXU@PbXPHE7#lGY5RI_nvLexzGTVYPBylsm*Lbg%#Z!0O(*1LdWz=L*Qx=F6uG; zo13uuxPIAvy8QYJpP(T|e}Go$r}d345I?8C6AZb_`u&tK7OyWQhtf5@-)K}O>dTH| zkdyV3bD%Fp-_IX?Pt$*(b-^wD2ija^>8&ZDr%?Zz((a4((~?mt)z{NK_(;F*A=H-Z zKPUH6h5kSRFrVwQX}$YWzyATiYV@~$0(qyuJQU&|^}8u~V~b&_4>UL##z#Zk*Z<3I|G6$8=s(D)O1WXp`bDD~j6G5RJrD~;jDQF>y`Bk#sDWb;lObBccSFr6ZwXprff0tf_~qPD@ZgQk(ruqDiN_8@w6*fioO zDvy}LDfAL)a-`4SF;i&^R310|+5wy=P0j1j7GqjLH^UjzTnZk?ncA&HZ!en)Qz3BG zgx7rF+M0f*l$vBy^M|lA#k6Dvw5OTwQefnkDdh=JvP`;LAP;fg1z=^S<`n#YY|8lx zES08jr=abL>5dka)h6EnkXqAJa`wJ9-8}_GA55|RA?Ijbz8}5aYCeX14%^Jf9R!Q3 zxeo>WwwrHi2^LTDw!={AWgbbM79aEZ<4_r7UPI3FDDzf7pmf4KaRl0;&1bX+$|>_+ zbcpbbxj8-R&Y8;;?K*GnN$Erv&A+pNftSs@P&_8y+=m<(*UVpDfxZOu2HNH(nHy=@ zlx+TdEcM-7{Q)G+{1rW&^2|>*(yd|M{9EWNGXJszG?bWYe@5w{xlax{R%ZUm4;mhu zFQKhorMb8fa!<_n%z?Sj%pX$NqSk!DQ3$*@Uq|68CyN{vv zK5h~69>(Wd6kkGb^DV~H^i*hJih?bVEI!_ZzH*C*4D_MGVw5E~t1L>ILHkpSPX~eW z+(POA%U)XWH7M0sw4?{-D+}+5FygI69DN!aEy9n1<&(uJ@_Ra3>ZsGsmiCK*;%YfB z25s9dZ=VC%Y1#QV=ySJRLGLE;u}q*4yT4_VNstS)Ob>#<9?RKPz&v1iArLH~mTR8D z+(VWP$50t=nLuC>mb1n|;HYKqrf7?@ykUp76P8)u0y^4qcm_Il+VVZco-bN@QiAX$ z%K~}}*cD4RR|s6QJlze75-nG>g1`++XUYn@Y3bz)t5Yq5$<3Z=S-cOuEwcbnF4Y>V9g`u@VD*W%vLCJLXt@>8 zH0wTw;BwQ->yW$Ow1SdkbDHiYuS#vxRXw1+vFW!SFwnJ`?*Le~z1bs5rtoVvDI2BG zW-aJsVM?<%lzfxl?BFdJ_@r4nB|bcBRtBdeQbSi!-o)1C11JdP-u&zuh=(*kNomce zn>VY2_|4{J^py$^n#XN}ffdci7Q?c)&9lD-W@Ga)XHe;Fo!kcE;nsU8*XxM&9ZHRf zuy+iee^>)W9Zm=Ke9DOo7*a@OHnQdP(l{KNHmD_A&e;{PC`M*K>4!b`9R^4T7 zmVjij)-(a!V`ENWXtLRp22?&^TWI#mWoNgcGLQ8f1(MHxrgY14IPd`dg8elboG)2p z8&p=a)f-S*!!jeGp^oi$gW3ou8G009py9iC>`TlcL6hsr_YDn8UFYUD$nx7 zzu!g3XVb}-D||i01LL_xDKM|{0ZmYOlc&@JGlknwH&b~(dauh}?oWxzS$rey=a8xD2vTMRf z%CJij6hE}33enyur3n*^U`ZEzS3|=sAzK7zhOpTYm+`hRjXnzxgi!j_q9nWuVJB^$Duu6$QK}Z+ZO4Gr z2!6EktrH60LflC#2&X=X3+QI>6-SX<)lVEkd%qBI+c9A76WfySbH6xfDk=|%%_PVj z6ra-t2o>K~Vm!mdddl0061(mN%5m}fPUt%!`ewkElVS&Q2StmQhM=1r-VU7E;xFV$D;1rq=mLnH$m9M_bf$aWQF5RhS`XenTgSesQ<54=To!uFB-qhM9Ks;T0sVCa*X!9RI z-#xAKe6ZZt22%JkM_XJ16zrFK{&Ui_vJ6CrCr(@k9g_y#L0^6=hy~d14y(aGxy=P& zO!1<33Qlc$9W~RM(BpFYRdbmANBh+Pn{ktT5;JY+*wd^Jm(e=AyfrZA9Hw>u+>@KY zGw;ts7=rm9768Ygv=W@FbB91`&1DLVti47~v~`U;!1HHvFCc8JCKu5rS30KimrTRA zg;l(Tm?NuP1#Bl~HX4;XSu4s>*~R)1ac54eq0xhlj{!sgdrc{xfh>zsc!Jn?TKXMl z*JV_mWxr65F0-X}80aKs(EyfP>`EEP1GXXul{xGntrBwCL2Gd4v00RJm(T9gA%gyd;YPtE$lB1k{$l344H`;Vz8f@@GP~ih^C27E4RViI)g*A1G4J&t<&;{$$}{ru9|I%21+ekz8Koyu+2_@cH(UX2)OcDC+IncpQekAsOV|e1-#$8 zcL2{1?5=Ksqzu1TYiO!mbGZ$0HtZe&{Eg}4c-iDiyT`v$F5~y+a+7nY+UQ>iKm=!ia z$zB$E5gJ3-K-wo9WM3@<%3f;Fc#%t_YQ z2Q1NSj1%OpFcVF~@$7vN6kTPTDCzSWDH9jhp04HV=pV)nV?qBLb?haji+y1ID6n47Cer733t!v=;*NY;2lU8^ zU!on_Rz8)yAUpUA3zWQhufL!#fWK)6lLEQe2b@9t8#;Nohj*q7wqPDh8A)N>>lQE% z^D@eoh~?RL{%iJVO|!va)@L{n!r49gew!mKh&E{vY$eSpk<7RnRvl%J%gJ~);|b)hvU*!^ zUT1gvK`w!1Ql4odlgZVR#O|#F%MIo)qm;}ZwE;>B`-9eDsVtN-<h)Q zMJBg!3-ahX@(uJLcH+NwM%z~Ys6PapdG;cZZQOxQ6S?ph3L?94*J=oC=U>yBX$QYs zicat3S{Zik;yW9l&x5D+hMk`Li2>rfdERuCy!h9tFv**LPRHMUcr<0K`0+C|J^Axg zYZxEE?~@BSkZI(Ce2 zd;*jxuBCj@bA01eXo%$pl7MoP`z%Cd3U8pN*FEk=Sr^&->?TRs9|gGp;lgsD1PWCY+CLz)nhKPI z!UioggbIi3(UmYE%?Tt*i2n?II4*e8jB!G^LbJ&^!Hu?1vBGvbt94#Tcn$+E2s0_y z>!J{@28k2&e$akNXitZqE(@b6NPb1QMrl^@f<&v;tHKsq5M2}E)XE zAM|cEmfZJV>=8^ZYl)a|N)g$(Y9+p+IMP*=l!dBAf`8n%BzPgue z-~gCg!}bj^LnD5|xf9m8E$TjLXyut)O*!W(inl?5hULto?=P{+xypxUUwwOhV0)$93RYW0eQg zwbTDZ{W>ekKw00R0G)DVcyTCQm^eM;cCb+T-0ft=^ziXveQ49?%S4JH?`6+uLm$Fs z(QfuId;AMZ;miS@!kF|X-``2*MAto?vzQJ~R zVaSr%KYh$m%XY+TNW!B21WPS8rnh>u#Ir!Vv2w606w zADRO!i7%%^)XDtIchH`~oeqQZ7XOk~2ATY_14tI1@*3nm|GXX-HkY?gMpp{>Om~n{ zo;3{GD|rQ0sF;KcOt8#D&`;3-20vE6(4yjp&msWOYvUV8{OGq1D80j%fxpkHrC|R# zVHAG%8%oZyK}Y=1-@!}BKR+bTgsu#o;DDN8Ez^NEeCB>A`^B~fJsok{4!=j9F-OfP zPfF++?R^Lx8ne0s(0&cJ2HMyFdNz-Xrx|ekLrOaMqj?1|XH-!l!A$XY{5|Um?ThDp zgx)?Z1mUe?B4kx4W_lEK~v~FeISI7jhKM#QAAZwr~`4QH!KZGM#CrZwZWfrzzInSgjXu80%I)hwf4~~KJ zGHXrK(KVLx0W8;<3w^&>61(#Xr4$xK=dM%P6UzTfV{d4&o6c&Fpmdv+QfxnywJk*- zvRStf=)2FPSup7VI~D~EIm~q)pmW(5=77YMvyQJJWG$(oTvp_-kcXKM``I0>YdCD3E-74!52=WEuSvVPvM9a#`~%g)Zm z=)PlfY3cEvbsY}zI=0ysoF7=F5!&n7Av1_KFufl-*2wHA-{T`2L_1AquA!vYZG7|) z2)OXWivjJ*KciGuH~uquOt|$%{XxMIV;alzHaEg&!d2%ir6B#gE6(o$t@9%)z;z-`fTw4)7{^8Xe@* zXe2^;Vh*4W^VYQGJHq$S)E~*`(EW9e$L|A)<=g2E0_XY0c3`>0%V@zH2YD&PZ00=ks@-GRVE{ujN#hKS17a%NSJF@kYXI;4dcv^AkTt{-s&LuG7zO1H0tGRL; z@_9Ux3CP zy(>69l#@-NZ?_WQ4g^| z3`s#ZLzNU-=^RqNnF5o-m2nGk9U>I(#Sl2E3@%5KZv zMmNtY=dYr4UI}dnxl79D0Wjj4GM(nLM5X^oC`wi)kW(^Mac>Fn3}rRt2i;NPmO$-2 zWi@?nOBA<R%JC7}}9pD00@Ak|8#1&nyB)SrRe2c?8w;`LE!{ufFvsvAkb zbXOIA30r(rn^Ga}uZr#lbN8y2(Mv%OsdQ)2u?Q8TOrn#j5owS+ry5M}<+!L?${}z? zr5yqB>ni^#uq8=#k6ab$sx7P0l}y#cYY@m*b=U-ye3exl*{O<}jX{2*il^@+tyO8s z_4i)oG6rp*RQGAIyiM&xKEqw=s4A%SQ4c-_4MFNNw6fc;en!un!|K~hff=Q4LGHU# z>bmYQ>Abp}_M}(TO>dynsp=M8(3Y;QB*%D$+GIf61N8$Rn3SttUI>;#bs?pcSE%o; zg}y4aKRxkYsYk6qfM(Ajh=*!U(6acD=HYF0EL<~&9=j2m?@P?h|G~LHzT+VB%X%30g{NfF;E1E7FfpSx`@d!$(nr0@DbWQsm)IZIh=8((O z#La<*EX|HH7~O1*Yc())G!L`r0%)p4RF-Ro(k8Y-Q%UbOuhMj;%~{k5m1fOuu)NU-i&6PbqZ$fQrln+23cO&eMhebQ{B<$a0~Lpt@6A{Q*XJ zYv=YvWstU#{7n0`caK6KTzi!gJ)*SVeTT|Z+I26$a$Z|#27Onwy7Q1r)H;1e7f0L5 z4B9ib%V`63U;F3JfG*GuYYLVM?bE*KN|ko-3K;)Xd#D!#UTfcFV(8v!D=8MeRX1@Z zG`Q%t*#l*}u3`x|y>;Kx)aVY+oG;Ed93!n`V- z&^;peW3+DHacDoKn@#?=I9>f8kh`SoN=}{2IulK!S9C%)1g`4dk@z)TCvvtX=-v!~ zK$1>Fi=o@P;x;h;j&3cT<<8O#qC2Ee*FFoz7wZz~!BDCja|?ZVqPtHH=4ZO8QD}Rq z`^+7jwYqEc2LCrY+v8w)uRDbkCsMuc5sld=ojIkvIO#9^41sO>%k+lP?fT4esNJPE z3kLDj`^X?Z`r40Z^Vb)UYcEJ|y%c>2(NER@`hdRjJ;1{BzACUB(Pw^zZXVSSngO}v z`Vt7mCc~`F@r(Cvv#8iw@uKoqN2@3T6cR@q3encyXKhl5r1(lEWcSk_HN`JH$ zpr7l@vcXcV*Uy7Vuk=SLrQn_3-2nn0^f_vj8ud+%!azsEZ~H-<4Tl9(x*Fmi0&J%t zpYkC*46co+^fF`y0>$6p-5bzBhLd~1vez*55)3?Gcu2>3!VFL8@fmLTy&Hz-sG(>D zDvui$CIULzaMm9qc*c-GF}?GK2iB0gWLWSL(ANx;=Yl24u#={s6vJMBsLe3A6k)9I z8ZsB45BCl2rbBJMp^lzoC5C%-=w`X0r9CR28eC{|@X`>z2hgt!m)AnkdqV&nUaU9l zUJmlfaFfFS&c-|j%iN5^=#jk3n0*>Xcp2}T1I5qiIvABfM%#|CWuI}d9l%13J;{d? zZgfn9+GEDdSlDvXIPz!cJ8e8dG5qt!9m~2G>5O`=b8lkVu==m2g9~;NE1ZTBz1vxTn zj6Xg`0nEv~Lobwen+H??)7w1o7+8GG zr+t9A{^m9m6%91s`WBUY%tsx75qr(s=Avz%`Qo6&@dY{*rb`^<%bFU_MUnenapObRBxGY_AKJ~&yV z>;~sPizWg%!!7b(qpiYXIbFY_mOa;_EA^JCyTN(ON~ALqmzz!-4ixX^eqVz`H;)NK z+l}T+zXwWobMNOc>2Y%dW!AlG-p&n}{?Mfw` zsxZ(36YDkMi#{k_7rN1!FiH452P8%KErmhgHISndg@ z`=azf$SZ?}9N|$j2;>U(kI_~jY^HNVC&l6`7?fynU;`d|AdFZ<7) zj7lFVB@!h+sU5{y0;G4hff*zf2BI=pvY}u}h}6yt*LT09eG8U@QW>pC!=&`RfIckM z4g%&8$(623q}0I%1|E}|wubm|X$XZFPfEL903`-%Zd9I@`uU=CRtmX?QmnN26UYT= zbS_Zhq@QV5ds&*Z0>;NnP3SRsO>*sk!Ag)ioxpe|;Y(`JmMj??QJEsOq}^f~-e~~w zTT(_RT%6ld`pIy)z&lDEB@9TY}{E^q|@!kG=$fVEHEP+V{#2zXVH&e2UhK z`{ZV{Gv6<}y+o&v$bWW&z6iO=6kLEvxqyyU9hJYOdGeTimEKGcB?r^jaUGZURzmv; z*{vTqPs$<%)8ph6S|MJNpB=)`U6vgwAbmwv=+s%fY@l<*SLKDXz6|2F^5j+cOxEF5mJ3 z$}RZ?E%7qs<0BwS%H#p( zfKnl6ra<2l`NU7??Q5AohlV$D0mbFt%D)YS5g+CH-C)_GRHvcRNl7{Z7H4IVCy0wO zU=c>pO)2z1Z+9qo;~XBS%GY!t%3pa;U-TBBBn?1YkTRwi8iJLuQfS|&6fA@I0cEd< z%237XH$b0M`gy@X>{WjTiBUeg0nSs3oB?uLdAuBzXOtdO!Fg7x`2g{AN*@LKt}Cgu z>`zeKmcq_N#YpjjBt>-t%;3UX=`D;rOs56_enaZvkQIYJ4kFO==yqAM?z&&fentwhm))F>&*V0ojwmC#nN zJi7&x8kCLQVPK=;*b$|VijG{9pOnV0XdqP^X|Nnsi4>%EQu$?|v{e;oz%0B?HHW;) zt}1~dD7#gs_JVk+LdSx5tNJg1xjrgwB?Np`v9!wdQ~gNqpzv26{6L=vRsXJN3sl*L z;GPIlb!i2bJ*uco$i=97x}fcXYWxJWU02Pgb!MvS8ZG#;RCBtavOpD1{)95s77D}E zsT#sTwyK-b(qgCjX)MHj)P}7P*naQg>-Iw7=H9quBTj{kX>{RbyEU;%Lz30NT?KOo5*;!?8S6o;Em>@B60V zJ}tnC4M!<~;+>(}GjIkNP0_d~QjBe?QQBfkJtY7XKUTk#!+cVxnH7F$M}@D5IxQn%EUOy!-hgEhL@06|1@9I2$g5~H1avd@~G`ld4YfF4$e5f zelALvxj%Vh;(0Nha=ylY@q%#){1t6%llWi10VSDNbitUUaNS;zG@kP(1a2XR0;SvB z@GVTb!`BT3XBHoo1Cq`Ex(<{Fe1Cgz=JHT~7?ICAsG+ZrCl>;`m|s5)xl(@69OMx< ztpQj$pSuO4UcpaL0!0-s_#JXjc^0MHJm+WWg{UvNS0LKn^LDf%`@mQFL7;(0)6@JT zA4ahPS0RS-4BUk8DI;dL@Od)`cngd!wx3|IhrU3e^a(111xt>~!@@)Y3l}1@K~4w{ z{tmDS752Dj(ZUDH+lUcnzJ!4nh3IFfyd-q01?Lr^zB|ZOfsxz%y3kV#1CxX+-#{Q) z$U6%SDZ$RZ(j)amZPm&_>V*XJ;9~T?XfHO^OIRTfdR9sCdDD`52mIS056CvO(T{!{bCq+C*TZlA< zrtHJgz`@XWT>6y`Rh*HGw8o5+O4|cEL0UuIyerKkXKJZbN#38A((h&%ta_=t5ptpO z?uY2n8Clf|oLA+_d_bql-t-o=yE3B>d9GYfSrxHLk0`LjsQkx3E?L#86dG=;hTcMD zo~qZ6C_PkFg+L%*z3oS62+;IL;8P0KWGzKyw5HJtl@~Po9nimY&H392!nwAIkecW90Ds#)NyG2?9W!9sf^(E5wJ<>hf}Kq3*F}YWfw_1trCBVw z_Z&T3YWp+l?YDLX{<0}gfU|r7z3*eiuxRL7nVpF7T2)bkza7L8KwIs;55L!>{{pGC z1KU8$x+Pa3yZ!=&kp7&17QZ)mPXzzQr6O*IO;(@4|5rac7P2{kyt-T1_Y@0uWLCX_ zjSK_YO6*|eYrwaY6;R}47dx>KIKC{6^8Wl-vtS7LvpW=_3t)3U0_6a6XbXXZ%(x09 zl=;yUA&ezbWd0B^Z$N?l60E9Gu~7$|l%+X#%)$kniOigGDKgmTg}}Vc-mgXF9j37XXC6zZ%(Hwp zh_=85?9>Wy7P8(8!BWJ+$lFxRw$Q?>g7xWu3scE#17YWD=1DG-H|$OvgB$C^2X|Ureb-JNV=gDDC7;DNkV+&nE}8J71>BN6DX8XG32A z?>rf$K)$&fN!+gkVpoH_5fe<*tqdTB2 zg8$YTrAU6UHHIgKThMy%6gSYTBQA0`N|VJ?EgsMb{QWXmmdGW_rcCFpDMRiSch5yv zvUx%kY`M?Zjzj;7_%xb~i}~{25UAk47@)n9cc+XXPhs&~2<#R@zJm5ZVG%9jgM{vs zVRb+-_J-U+q1SGZ2q8Zl;*r9I@6nYQLDdL>Q$iv|^)3oSDf$>Egw255CE>>m2qX$O z>HUgH!aRFa-V(adEqYs+-V(;=2z#$VAXms43Y0uy5xLRwh4J4&dx4;*nWRuy{}ot@ zgkm~SSu8xKOuiCfzXZ%u;U*J6XgApO(1sy&s;o{q4fIcGXAAm%Nf6%lTDb65gT!whCGYl*je_931 zr{aA2lA9WF2yJ8EiS~5UHi|A&K(qokAx zKshUQSr5)QY5s4h%*0t|2oy=fNUlywTn-I>@&SDQ|DFKKoj;Xk@3eUs1Eb z^(}rc+(GO4<;7v(U$KQ&Ve8lQh9Q3j#KEeqthg(Bvy%9r?M*kA9_R?V6p1?O8fX&%HI*eH5op%afJqqg&|Em7Ld>k7cRhv$-)<`C~r zxA#&0Vg&@EdC~)zbBWu}faTYC$rNZ$;oFx%UphZPG2slpaKJyG6jr+^JTdgeR~VIF zH&aY&Y#cdO#7>vK2it(86Vl5yhX3*JzNiM(R_iqm`0OofG`ru8@d5*uQbes>) zsV}l2HO;;s_@^J84CFs-75tu`_6XYTZcr+~;(AK&TGBorza4C8KfHPwxjxsNrVYf} zBAQCpJsF8EtRI$(`adIjq95DX6Y?dvvb|kkof~_;0+n8@?)rJ7>oW3J&9tg z*F)|&D_;$LCs^@0V4h@6BY+vr9AAROumM}Za*FxV^n8(R+6}NcmP=0kOU#q5;boSR z0CI(C=n)#vMo{4TDpQe*IEA&_5Ak%?b_PlrY&^MaZ?n_n$;e^Wr!g4$OiP!!kX^5Y zz9M$2AFO`PZY87g1-oYnlU}kF6yd36rL^y_Ve|gPK-V(u5`ev8t!b6}nnk&x^p@37 zSn?ffmJXKptZpkxbu6nRQ0kczIhH=Mv;dU0@I7C^PDj3iUZCR3O(789!~0E!NeB2z zA8>|q*&U@Qe(xm6DgI;w`f#2Hdd5?jxW3>Q^nv1fW9N%KL(Z@@%tJK-9yoza%Z23bLdS2wPNH5Xm~Fk zqjwT`NPjTM?Uz=(1LsL;Ev-e)NR6}_y)3=@3EjLQ{o;$Z6uhw-(CO0WxgfWswVwZ# z+}B8tRTOCEaT6nc1?P6LmO|fNA{?lg0L0k)Fv3SvqEYe{H&UX%pLj48EdF9o z+Vlp94fF^M6iapkB}gnPhlYdVghyx#6=zWxDNM8{Z`m<%KoG2s5^E@9@Qm2=GjN_2 z6W*fjoOp|_L98g#d6RgtooUI>1X=Fk5ke@T1Z@!+R#QVPLlqF_$BEJ3iu{U2-#qDD3z^4>4r3m zJRr%^-XcKXmQM5mSf=zNy&*P7Iz+CiTq!aMBoC>>Ao@&`=|_q4-IyWI>tpuOwqDpw#2N-RMz+v^gFq&T=?y0k_F^w7_tYXC8pK zt325mEN-$*1ITvy2RgU5Lmo*kC~tXoDmZ=QuH~>ZSpJ?oSbOEf)zB9rx1mqYKKYM9 zP_$nTcn$3bYAeU!yHboy_fR)MR=h5kM*@kZR=W<^kRKAcWQ;6lIyf+P`S{}U)ir&ko zHlnRgo=#5@M`cbpf*)+qTat!Q%> zqTIZXk=UnPu0?6Tl41bZ0fpP3GD6wV1z?fNeM-!VQD%9go2Qf|ArQZ)c>ah|oHF?W zSQ3=3L!l^985#<;>55f5kXy>=^Dr=5DW^sLeZ}boN=3@tb$~8bqIIaOPzKT6Q>o-$ zgg})dkdyq0GJiQrwMq`Lyi&60etE6r4FY+i+#{drTV*Znz}_i(8J4|QG(*5yr?mVH zwtP@NC*PBk%ANMNTUEO${mEICb`#>;RMTlU=%SiVIYX|h(5Gl~Q;oMrSGKFfeZbtI zsviisovQsufwD{0leX3Fs*&x`=Anx3i@U&6l@Ng5?p7_Qq4QEXv;$|5>bvhz+M_x` zC-g#9J6&K>m}(;JS`VqLsq(PuO*0H~xM~O8FGo}_Xqy|M`o0;Ah*nu-!lW2glpk15 zsT%35(P>p{N?1FiT6qO+XH`E82j@9eyOpSnRjr>1mh&omN?yI73Y>*8yQrEm7MyXa zfCnI#R39j5>$2)oDtdH9RkaOP$E&XNf_SpZokIIJRn-)gOi{T|R#K|!F|AKBR31s_ z(QVZv@~vg6oF+lh9o0TZh-a%B=~H}Pm9h@{9;kjJ_ePG&jSkP}s@`>hzC6`u--0Dy zRWHJ_N2(R%H!V|D*8r?swdX!KAFDEM!lVjS!nZKur7AWO+N)KW2S936_LRzAs|xx6 z&JU^svq0)q&xS#KtC~?3o3q-VTxZ+VCt3i-MIGXXHdpn*Pf+Bh4*VVFZdV`9g!Uck zy^8_1Q+=fsDtD=yU4gmo>b;j>poiKo4ca}`@9B8WZuN}?=#iIt>wd_2t1sRFrjOd; zIOKfQ!@GdfPd$e=+5YNv?kEMQ7t^=b1**TI9FQQj3muEtqpqijLa_SVPSCJdy_dY_ zhtwtQQ97(%(gG~uY6r@wJEFeb9({;Vw{ZiBRF9~^kRMgQ`U#~|>W@w^;%PF4rD-zgxl)Wb<)QM0X4xsQG-~d8LN3Ux`Uc2Zv&j_6O*Q+g1klB1 zMPGrX%4|Ut46HHxnT|-*nO)ljeNNh*u`p?ec0CJ4Nc;WQXgjG* zrRRH`)_)uHrD~sbhIo-SqX?x}+WT}2%~cm-0h9LX_R{hvM(6(-wBOJreGQgkU1|_8 z-|KRRVO-qwF0}aa)3^E#BwYV=F^o8)KS>_O>w57FI1}_0qo5&2?|Bg7CHiq=K^pXT zf*}4;f6EFbXG8chQfoM#4S}78cLwy&!|=WeZC-|_tzf*bA&k-%0t|gaVA&qSqaGk3 zhL1A=eZZg{2(Uwj)*(hx9IVR;U>?|^APlJ@1I<^5PzP6lZ#n+}UdVp*-Pi;gux0}DG*o&w649h04 z9zRx#y#TaWFaUMQ1uf8)PNd1vKJ+%UF6;LP>eu%oFYBMB6!qVb`#I{JSnY81a4Q={ zug!6014^M|8yjo^;=-QO5@a`vrl*G&b1#QAe(Wnhlmb{Bc~}D3mGfW;VqNIY-ov!{ zuq~KPp;+2sHZvL)!CkC?9AUY%e~w`8cg2$2b z_#|g~lwx_i$q+ctBPW9M0zdy9$VIN(2Lt2y$ZB9-;hkzQbn*Pa1eC7wo#f8B#(mSl za-Dap0$4Ktl~!*z`Ojkjmcm^wf~4}?BdAQ{pVKlillP|Q(;ekQ0${4FKu zWpj-hB!~N1!OmPB@CAC5#~Dq)`TP}mBnx}lyNZXDL;DlHgyP>% zx!xQa-tuMTfPTjp=~4Q?dp!YkJwHLmMH+a^TOf_xfiCz*-Yx|rxLp`U&)6NpTT6iL z6i&TC+b+T53M$=&r2|nJDD08^Gx!I%J{bE54^w4t}B?MOXaAx%4pDC*Em_(tdH00h|ZK z_(tf95V38*T`nf924;-t^AO^vM3>RfcUsI`i?%c3EDB<$iWV7=%NEUVVjv%i)*~VC zQjBxO{n99=_@J~?+DzNfJyIJV$Q_YZQotut^72IGc`0ck(91iFG{(8z+ zbcH$3_{~uec+S%YLcETLQ`X1_KK2+i)bssB8o0+|5NAQ8mD@I93?*K=2s`qi!9$ov zt1M4pbW^nL7P1WB^b#gc24;}3f!g*63u*lxEVQI;W|%PgGn5VqSVUun5`LyU%Hx7V zYZ!P|SgS|>&IvnzgWMIN3B^U@gN}Jy%CLV_A?dIC0hy^!AddM4^-@ ze)th2N$j@|8g7YA<^VcFEO`Y*_r(RJC_NBw((1EVWL_whh@W*wTcsG;4=7b)#s%CH zHKM8;Dr-fL25^25gXw;05O+OAX`AFZ1uQO7H+nUUhcuRQ@H{0wt>y!e?+wfLOA+1C zc0f830+fT&G@AU5N*3hCIwtWLfSs1+j{(>vsed<+B&mHEnJaayLFs`shg|zP(q{`` zQm*vy56I<7b00%4U#hl;z5?kg`L7D4VYHhrl9D@v6iY4e1eZ!AkAonk()u4D_fT3- zd(TIbqZ>4oNsiTME0?+rfxu&FD`h8FNM*H9TPYO<&|M(i^##ilX}$=#r;;~?W}iu~ zrlSwfr4h8BeIc2B5AsqPNtt}r(qtU{hd0DPD-<`m7aaiKE>CQU${lhSTF32_cTET8 zF4=DZ^tsDjC|u|v$5JrfQyx4CWVif`9JO9@z+iORTOQg20zR^BEW~}~NduwJPwr1% zUw^rNKg0v%nHxZYQS)GRh}^a}$YHr9oyH57dyz}+i0n>@ND=bP z*)T9t{$c}4N9AdQQ933Mr3ZJE{M)xsdt6Rz0dhhl3s+P+bfLSeeRxIx3&25-l-;)hdTmQ2SQZ`yn(msFK3~wo{!$+V`no7M}_noj3Yc|r5tb*N3$e7_keX_|zauq8|LwHhQ}6T2Clk2J+JqdeD0bav*A zW(dWq8#JkP0CP5Tn1rtEGOIrgPG7SV^h%t)X8E)vJY+WbdvHdXE%k;iv1ay^GkwF% z^LJEcn0Zk4$9=QpSr9KWv!{s6W3!--=)()M+jK7Yo!Qqbf%3`BsQ{I(+CV)xJ+(Q5 z!5N_afihGNXuo*?5~1zYox>RXSos{m&Z-@LZx9Ouj&eaOGkGG>ynKo=V zIzGMYw=lrAGwrM9x5x$d0=sIcUHI8bD6pHKjQT|}4v<~Nm+PFN)>RpNQS}ciyWL2~AKmLI zgP?~a#jC#S91Gk5bII*H@KtC0J^Y(#Xq|L|mR!HR8vuR3zbJr;$(QOdepBMfpEmWz zQMAtOO*6$j&)XO#+qZNUX@1gIz*!JJ6!tAVL1_nezj@>DMNJ+7XK}@F{Jo@R5%`w| zQO<_F6-|`Oe)|r;m$&H({uQHs$5^cVLZtq;?~A`3`qL6}^`u1nUK30XqqWt&p?BR( zb4aaE_kz@)ZXv+mFpM@_8yAxUZ_^2Sb;Vy3oSW5bE{UX99K z%&H|S-C0*!=6bM2!$1O9Dovz;>=-!_!q|lpln$}h#VAFy2^}CF!-{_fIn6pH!Ju>a zP8g63wsJR=-e$qqA&|u;3 zekCB!n3jV)XG8PRvl{l<0Vt|vBgTXCEn7!z@7M?%pwzPm8lW_=AWAXc!rM&1fH-nC z9W2{;9zA1S_);%u-@ympN83*R_*Y>1^7(I2^5gSq2!i-scUZlL8@IyheY~w56z%8F zoq!U?Prd@@As#{ZW(0p~0r5yafszrg^4wUoCGyT%ly36jd%#l4XO9O;74Lr!oKN`3 zMHtT-{&GIR-t({Mnb638?F8c;g`?I`yIs(bE6`IYYK=BOp?^o91PiYzBlnPSh8EzF zLO8`QPYG^jXgepk7ooQaLhtW!$y0?L^k}~?1eHTPPxz38QjySVEm%s0{-qEv7Y6i$ zc!SUmQK=?agf|hI!2R2VvwFNsiQylr@t@h)bQ!$TZjJ5ARb3`b9NnY)ul>I zsG0w$?J{BI+$Mv1PoFRmKWHAbdXDWcgNMxQX49>wP1pZXH+}h%)eG$GS52S0Y^lvE z2mCDU(S0uXZS3aR+AN*B+QxRBgY8QD*-IRjEnBk6W`X_c&VT>adH%AMo&V;x>DI%h zhs{dcCEaY++S&K$4mDkEx^?Yp)4gl=o?U?jE(_+) z?J|4i($4nF>}@;S&Yok}p76_rE`x2?*v+-YCI3HHy~{8E7?c0b{BLgw@Db0TWh-q-=D+j*1N^^${-3>X z?EX0t|Ic>dUw1wJ__sIyf4^w|=^}R-WxHVZ-1SYG{QcQnKoi5l*-K_FSZ=q>W-d)0 zGw0dPpS^mC!%Tp{FkX%DE#Yhb(1FZZD%{I zUio*A(21G$wrerV%%nNeZkatq!7>wlT(x>R3gDQ#bd}wz|JDxZe^g;6TyD3-cI7|R z{i6<()jx_$m#?0QYqREue-!aCb+BEE;lr#+V~yJX8nC~IeaYV!1GSjYVeCJ~?r+2Y zDeyNJIzH2uWdH4`{)eV{OK1N(2~__F0Su$Vzt=K*-v2%DGnXux`EP3JPD1s6P=F_e z-M=$w{*u|N7XHVE{{Z&4(9D&ym(E{p|G%swJC?7dEA+oc4AuVu(ZO!%zY{?9e-Kzb zdnJ7&{+9}>|CdM;%G1P02+!(J#w6_&Ni86Cx8>*3H#U-Cgrw>!S&flCvys#`l2sS_ zpFXM<~z%gl>ItgzujSpY@fx*-#M(O~KaxpKKj^Qq7lBq%M7==57BE^A9#s z|31<;ZK)M1AgG-#b?Ga$huwW7ZCj~DU#Xpq^plPB|FQONOL8RXnOF^}8fv*5&2l-r zT**vp$sXfafz#d0L!nS0yL*%wnOT*MJRu{q3Yaxn7^b`WU_=A020%8&+0~_&j|dMx{D<#9_=l+a@c0+WGylbJj{oid zb$p_GKX`Qf7atw}cj3wZ`eT0IPd~-qKjfcd{`n*R`4{~2FZt(BKE$6t=AZwXe}2k8 z{}uoI0p5py{@qV|$A8U#KRQ0)KX{M*^K*2m$3gqWiX-! zhsQs|K%v)vo%|jg|2vgqlu#aj-|MquKkFU;{L%5B_l|%4v;+b3E#! z<3Ih)@!x!LTzqu=e((4%aoOW)`IG-}jJ5PvX#Wvk_b0zO{`H5)|Lv#zO#J@%LoRG2 z6v8EX^@~3|e02O5pJMDj_~;M*O*VA@FNW@C&yWA?!{eV~3HJYo<3H{n|KumO^!{eX4*SO{X;lqD>{L@d5kNY1V z|76*y{{Q~)CzXm8Wi_4_RauPJ)oL@HomBPjs=C)ZIcb)B{BbYdFIH;?WjgRg9Oj9bT>vVqtuLR^nr;+p6;Ex~R6r@=-NiTn*x6yyFeS zA9};-JKQi1?;_*=2#<%ge>=XmhozW>>TIUKAx>X`7diccZF&JQ!A| z+~)&qR?-G8>bgohefDI(sFsU0z=H?96J22k&leZH-}iL2n_Ud>8xI-0(T1NN*2R9Y zSp$tI_v8KSM1Mu>{1^6DPTT5oCuR4JR@(#U&;_1Ttq-foYdjr0xLTR<%EiNM29N5sjt+gJx zxSn2Ak9O6g+0$O~TeOG|-pw8#X63%xFIK~S)vNiG{AaN&tKF0NV!rA3S|y=}*?)5ZLL zg@=P(K0MsRGAg%=VFixMg%rl2UPv9axQ9dMlw&y?@A&%y43htlH-7%I_fNgAzmS{~ z%6{dfM%ObA8tBbtSKjOW#mBw=;U4ZNXZvch*q@+DdHKO7Z1ldE`CFfH?{9nmvHimT zWKXhgrLRohdA(cgXCxWnt!3+-w?9U&{g1tW_zHSI2qGkma=hDD#co)QCp(I6VUAsj zYS(L;o!(H28dQs6F{tLNZLhOb(}~&IFN#NVY_1dj5tXzbAd;LMR#z;+KDzv^bHiI( zyuHaIJcNsd&)#0|s_oUZ64BtC?H1)?eNoM(7c&vTi`mXeQP$KJSK3;8R7X zcnP`fH~t#cs;u?Md%eGDHX61YMaIJ(6}wZl7>ugzn5?w#|LNOj`^(k1*zULbrgAx( zZ6QTAN&FqHjM$ggpm>7{{|rvUI!x((Rv*dDqS%&&gjNdVp<740JtkwhTVbSlN%b%VjMmtU&8?8O2s=+oJzRF}eqYQ-W+ zSaybq}gPV%;V6b1FSwqKTsPW!gLT$T&atIedkrfhY2ov&qlu4Zpl zY$_;tkY@Qkp@=2Wl1Or1fA!{@-&Iv_pz$>M1fuiczRldB*p0D)2lvsGl}3cxTeVe} zE}>#`SntIvv^0k!Uz?DqhY+jp+uG`%*ULZFXh~tB%$8TlAX8nI=Z!+Apj($RcXRO|72is>z? z>oLB5J{#{38Y3e~u|-#{w%Mms=nbDjbQxcIf|k%_$!Pp;WJ z?Q0wQv_>Ou+#JLlVik0XM)PKEn5-$V7O=D#P!Q6e+1{B4mtfhd#L9vQW@5f^0%N1; zO!!a#by~)B+#}-{1SAp+HT6llL{?FOpbi5tqx15uKVjv z3F%=vTaKSrgJJO$B7{GXqN|mMXVxWDY5CH+L_#6qD{S%y(4?xq)T4=Dq`qmLVzTF8 z9runndiYu>R2;m=)di#?vR3el!SHZ&pm-^1xSTwi_k4+gTk!HoZ#MP9HbJvM11H|) z`)qBxHb!s{?!E-kN5vEhQT2WmH>1?-DAp%!?tSn{@zt{zFK(W%%h%6d-~5OE|JVcA z*1q#^Ss0$&x@+*G?i&86yGFO( z+R*!;UTwDH)pkUp2C<+)!qQ5Jgawwy9P_tWUu_{1P&SEWhw@@R#%e@0D}LP@Vu6&q z@d`5C;|(-b%xl_EIP$;GNTh)~Rbi%p7aW7p+=17Iej zy?3{b^s8KsuV&(IRJ1U+E5IEHA`BCta*8;hMb~PV<428tyCSB@COkB ztaS=RhI4!ZNDXtmU4T*)J3L+ggt4fF;8qJgP=mYx9I}|YQ0N!h_o}U>#2sEaFa)J8 zWSOWhXpbN#QJ4|B(Hov0C@OLoMnflPkU|%0kcV|KI|)Cii`Ks(`{9nE_{g~2pZ6Sp zMB!|6*jHEMcaXoPR3#Tr@yK*5BnKmvs!;P#eT(+28aT^Thi3ZJe4 zmoA1HO1p96FxajsWmOtw5mlRbNQ^#h6xuY596iEe1yl}j764J2SH8u&Y;sO@wVTcH zaTvf)+k%c)zJs{)=^gUUp`28+?SozKgui5Vk(I^Oxdx0lO)7z25@{#%*M=pi4(kgR2!b;$jyF@}Pfuki5Rd=Axq2L_5RA zvpP*`R1!rzoc1_qlh>)a>_!}pCu*Nsy&6?&&P`JkE6DSk;&c_6zT3$fwYmc!P(|4d z_&bC*6gg?oL>AcMB?K~;T>%2SM#oh~0$xxenC~H4`Mub@Rzr!4gkFRlvPDj11MyE= zs5>^x`zI5imiT}5hm?vps4nV_)g_F3DR3ZQpoSXG3>ruZM4ZGj)o%a-RH*xj;N7ZJ zpSTa9Nj$-}z1YkF8tf_2^-iEDH6_RnR6da>MG1mdFOYb*TPGhDm)yfT(B=s>x;p1jIqFgg#vCHis=g>aZMR>&CGJK?)3t zs{^1LHXX=lFT0W?A|bbYeCjJLvB$<54Pji_(=x1t2ga(>nq&p6Cjh0^`*L;>hxCEt zGPXq02D-1nDwfbfV}e_Lu?Cx#-!UW@ejkU|`#7>S(04+d)x-tBt+1nFS*=R5SY;)e zGNZ`Ae@s?A^KOLVnlAPs=b;arPi!FA05)OkQSu7gbc9WOzc3JYh5wh;TAj`B`RVMpgZ+25hvhHd;hY0kJ%_>4Ju!HOYV@A)p&G`dRn8B?+(O3UxStcd=$(8}LE?%f<0n8fKIj4VVIMYga%i!VAq3D~N10yA zomis76l@xwl2z$DYS?=>g+T+~-vNBnw*-{z6u_LI2E3Y=5N&j6n>BzXr21#z?Y+RR z1)+pe^^jCVFu}e!6F25yP{!8$U{r@}-T=QK4#rI=sGcRH`$A%k`AO}bkhMM$Xe*gE zDbSlzDH_K5{L=aYqae2lv~YZO?}VepcS2u%7+607UBS;ukM@Fgu{~@H+xxE4-+@1{E*hADU<+H3 zw0S|4i3F>`sVntCaSxr5FXph|D9C+I#I82W{TS9&Y$^O5Iv;A3awR4dad~aUu;r&0o`9iB+6lO7f(&Hk>-oVfKktD}Cu?sBl zSrDM8Dr#rdWA?DuEYQ5roB@swy@E5nSko8_egE0(*WZ2pyEm_Is_NwA+4FyR_K&aN zmj4{#Jn;F0dieV5&w6$(L1{&+8SItgmG_{=t`?M`ZpHRlrBC*SI%)Va;qzz5rBj#b*2$dM!PuU_pf`c{Mt> zspKdU8kijB(v_~@DuZ|SP7<4uNUCUorq-#Nw)$gOok4HU>;t*}=A{{`W%0fqKbjr3 z0F@`zW`DstE2*30^3=$XX&_hguw481B~QUO2{vS+IP!m#nP`eh47P!e+9PT)w9@XL zw48Ucs<<9ae#gKWNShwG{{53Ii;O;vRbun(IOqL`sMXu6ln8K^P6bH;ECyfRdQ zKsV(W(JCk>f~lc$QMTgmE|S*OOrM>|6f0;D`4lxOb%OyB+lw)L8P{-4uC7-7UMxg6 ztQ27W45+~RVzJ%=<6La|VtWzNghR7@6T5^W4LGRE00c+xY|7+kr>k5jA3!K~S0Ro& z7X<%(*yUNG4G8JgCJUM&NjShZU27(TwLdGN1wY)SR%1XD?wMA*$gqi5kak^!$J0MX z&Ng>H(})fB98hI>F62+ns$0)@+JYWX{lpXa9IUk90aSNJZcN%cknusDZZWFf(n7c* zRyMGi{bpAM4lEb(fn*@ku&WLB2T)}YK$_#|cU=OB^abXyVyjxyohY#2dlCHcCBI!R zVabPYLR|x_lTRWsnejzMFTWI1^$otc0wO?lxf)={k|(f#(0Q(~HPapLMcCuE4S@WC zhN3lKu~v!RAa_(~__r9gF&&M{BTWun<@jR=04U*N1si zdC98u6(Ymq`3_bLY9aSCyt7rQTkJ~`Tzvycz_xERt@`&RjnpEA)8FqUwR{9TfSmP~ zlR{u3moR?olWklH6YOSF`2KOc2NXAo#e63zaE6t)m_n)&3Ld0*j7}A6)c-JX5Xj~a zOxo_VNsOciOM9~Bep>8pMN@?wc8rBD&Ky-k^C>I8Q@divM zyjI)ywv^Hx(2=(D7RqQt3ivdJxoJyn)@mGlcsktD;a@Quugaz%@D4ZV!BI^)rJ6EX z5*U(BI=!a;viK=Li@Myk z9=wD7lA_Kn?poYbMX}g|ybOyGjY6rNtz8=j!KttjD~iMD*4%RzA+bP; zk%xjyHpMe*I;~-?wdueIMu86ydSa@C>CNxnd|6E|Wr(BN1KSiR=itG?85JBT`T(8# z^QH6Cx+0d=s1m6qZrV_6Q5{ofZJPMy-Y>@cT*#Q_2%W zXKV8kUrz3pxKzVwL{9xcPd7cr)6k8y_xhV}zq|SJZ=>TrZZxMZ4ovM!5{3!v5+3t* z6C8!wPAGTXc31;Rou1g;a=e$@J^gjG6hL&A*vACtM2g zAHf`Va0k`u7LE{PM@ggj_i-j}v?_IrZ}aUKAap*b2!P9+fKK|iR^ zUGL-2mUKv;hp#D@q{r%hwGc%Glnc@Q`k0x}3%@{4m zIjK~qB@Xe;;NrnUIUN(04g0@}7or^nBw|+;>{SwxjElgjQ~zO+C!7?rnASeU z=y>;iU>>+zQkDG{RffrhPe4mb=@>*TXy_RQrc2LYO^~eNjC3(*EQP#I-_zVx9u7tw zrfU&ItsP$Pl4P<~F!WWB6$VxEj-{dD*wn#%gOS0(4D8!X2P24kY+@eunFFKiIGmMR zTF_4|sCcma5s2L`4<$I>mhQ{4>DCv&3S@>>!qB$bP7o~%+@s?;R;TFtw?E~<9Zx~s zJ3a-0zPI)z1OdOjFAwi{%0u8HJHV$WC-_@A%HR8|dp%xKa0)8+Y(0fb^8PBUGc)}M zxx>`O*hcFObPkUtu#r5Lm-bj&30d+1kF^=lUT1Nx4L+N!0c;6y>x>IyQ_)XahCxER zp{u^fo3-jBmlKpl7!r%JGywt%u3yh>_ck*mXaiaw#e}vyAS)n5We=bX`UN&eQDRdd z(LtjR%~~6%sPZ z!_I9!s&JZ%!Q9OTy3-LBaN=Ok8&bW1T6X!kg29&f?cmJi+x?RnZ42|%L0E)j2X|%= z%02jszE6;~A%_SqD17Ary=wS%x+&!-6B&Dk|sPs+WSRT)RctO;aC$f#?T6S$P+z*l2#geJFCq7Gk7x!L z*K^^3;X>WD%}QxsQ4WyY85v{qO708-!N2!ST&PR#TNA@EN|z?Wm7ZJ+lIRP(P8#;f z&bWvnRMM!(^1{S%>TY1jTyW(-zS@8N+26q#2nd3tH%+~^h0~u~nrNuGfDlmvfg1KC z`msHM*;}y-a%ABhFN{kiiI#%*{3fpi95#VCt#+z!;@COFqEH)AKnk$Bq%`CgXbaTD72?SFG z1`q0nCZ~59wmR!QDgz{H0^cAT4!h7-;~oaZPQHGSr6 zmplE3IPUa$$Qz_MJg^k0gS``iZ@&J`$)JQ6IJO}+9Q0|IqPiN`ekW|lh_8LIMb^n1 z7%xzc&@M4nMc7jaq6{i?stZLX5Cx>fcpx&lfES`yH4ilR3p0nyLj-t)0Q+{4CYBEX zW(`>rpVthNXjH2ELJ{D`8HCYQIhijgcXdGu9C_UU9tdM8#zaFTE~2ffH`Jj3!w6%h z+IUv4P6XWnQbJb}F)H2U8Fb~Q0hk{A3;sH5d6u;6^#TcZ9z5c+PN_)Sc|3>gwOE~# z|8Ftp=@vzHp}@+ahex)K-x_TUfSYw7-#3x=Mx}iy;hHoOix5K(GLvxvE~EMD^7YGa zzrFdKZ;<$JGOqyOyn#J32HmBuD{#_;mrJkP1;#4%1zeL5s;;Mp@H%%cPAc>o+jbhq zkSWBn5rlQp(ZH+B_-~{xa4NV};;|4Hod#mC1m+`EMGftZ8A1jy3F(*?Q5}i+iY!%3 z)nuW!-5&XkM*0-Zx|>I;;QHs+@cVOsfJ-@urRM=P$O<)p><*1Fos!ilRRI~vAo;=? z1Rt2?ez@rmUU;;+muF%@uVGD&!P)A*f(Azwg3c2#~_CNtL z(?O&OQt$)LOQrU(pY9eB1qhN($h8rwHG&>Yg57;U@}lfYgF<#l6WE>xMts!e;sP;U zG>^&Q&JtDJVxI6t(}4qeq*IjMEba+gmu3jJc@L{gM8YCo-0j}+I<9uKH$M_WN66VB zvYZ!g%ArgUwY>)6net3>X@;v-VQRHw6GVn3SFZVG2l+POVS6wWExTBdM%Lr$!<3KV z+Zp76k*mXbiB%>R7+osn3%|lL@|DY#gjggPYauz}SZA6z6=b*2|fWSZu3 z>AD3bjs^6skk0h2&B>T=$wSlmcro%H`25iiY<~*ES}W{h$V0ip?j>3|oLq2Dctp%z z(9BgrBPhl=O5tS;%+2eJXFwRZ#O?+`jGksrm4n|!tkwikhOgHHtP6w4N>4$M%qeKd zz!XG<=hL0n`HBTyhxwv*_)V5+vkHcx8C2a|pYXC;ogiBPmXW|O{DRmq(u7kaaVrn`)|$l5zQsR1Q?R$0L59sZxtDr^a*qU1l1we z@g;z%5@r(+n{cg9(7d>xAJD64ql0+Esu;nGfuP?(J~Le{G(V!Fm)G!Y+V9{K4H%Z; zOB6#0F;Q|s(F|}vU4VL^{!RZ=q!G>iPx}vY;}%fpL}V&QN@qZqGT12>~6R9 zuC{s+7c7W*4Mf|Dg*X>cy$p(u)qn)Cslff2zsVApr3Dz)Fi~6_vxXLrd1~e)fo4}@ zZ+0Pj-;CIs`%Sn6Bk6^%14y0{le-2ng>V>QuI?H`yAo$RSN90?hMh313WgEnlhvrS zS#rD$Hx#Gv08SVrrbJMjSE+fz|FKrwxO9%rCKaI^#Tdfvqsz(uWW2i=ypKOa{sAL8 zff8zJD4lZdsUATwNQLdh!(wy6vDyuXXow8Hyk~@;yo0StDj{$qU9ji|X!2f))){fe zKx0g(1gFA}#^`i5sXsbsPp2uRpgSa2v^F5z zUS`ODka}}*7Gj0EBf+J120$6mMat`$mVyXVo6Qi8(W=$MMD5+51A!xkiX}{djz@6o z4~`QwZzx?E%CHXU-Ka=a%%W2Jn8RaI1d&(3d(%AEiWF%!Q17UsD{A%nKo_a>O5^Ul z2}=>e2=X7e@AWs}U4rF@zW4hMzytzAb2ET_>poMX)H){>J5dA^>Mh-- zQ|!cG7)#vcgmIvIivyJlN`0+Cg=BM!vA~2&0$68v7z~nDdY;?o;AZ>Y^XKnry-NrT z_DRCzwp6u$pt3DDNM;oV#FV^_1{x9TY)l1VrnKHkC?=+aJX;jGfKLKHOebP+Dq|Is z%5ct{TDc^dF-6P;z|`Uriy;btSW2nWl=|*v!CNLR>w{SH-t4)#a}@$5!SWi6v{&=l zj#}r!T$i-Y6a4j*d5e&RFwrQ}=)c%Z#1-Q;dG_iC+ij$M#%uc4;@V$fSy9Sn5-l&D z?WuDyix!tH{pP2Wr9H`hYbE&5W==$nq0PLG0$t4t!{BC5X%6IaOEzcP%Wb|!x3=*w zCSQUILr@G(#>#aMq#~B&u>)w_3LQ|>D}@ducSY10PA)(VQ?wbTROX5+|kEK~BMs|smC3Z51uYYCvD6hv`2n7gJtv$!#LV#cr1P{AO6hjb) zm>F$hp^SO=?O~Rj?l0!KB`UAds8FSIr^_{PzhYbf1w{tCe0kBa8bZRp1pNoz zuQB54Kx9kEVFBVhM+!~GZH9pcGPytX#T1fG`PP9%=g<$lVaJc<$hj@ zPDx-z(q&4lMkjkU6~^#qRq=T+3c(>ZJWf}7nk~%TlZ!cY{q;P=+tmgBP9T%j6%wy= z-ViYaHZSi*m=2lui@rh_HWyj6;sMBU$f*Z~i2#AR3yf?HPQ{vaTE=9~GP%IF%4nVdV0p1+b!yFh0MKKx=aC@1kRpJR-~$n^ zN058$045G1a@oV(EpsOqPF@Kvj}{hrU4X{JDTHi0-l=kC$45?8FN`C2=RFQhSr4d) z1yMwyYfV6|QK=8E2s#a?sih!Um#sQ%j-a7qd%_8_As-}A3O73}N$_nn7)6_3alv+H zw2v$NB|Ve^`;doJXbE!;EEXVSJ|%S#RiNi4!W0-dZ`2?u(7h>PN)^1c+y{Yj{S+jt zJK=IiEs5y^`B-&RnSrM&OC&!GCT7<%W-}0=3;u(2=Q5q-JltYv69-+(5oVZTyk%x> zpbcXLzCXqGOw4*gE@x`q(1Ppl^Oyf5(Fvyhjz=WVxF^{nKIR^RXl{G)9e3#=$@>|K z6C-gl9dh%inM98znm?^qh#p+bS`7(QlGkY#jY?kZw^$ai_~w^-V7++hd>1Uqu!!a6 z%_LX=?T}BBhkfKtEGMR552>x39HuIb{B{gpEOIMU_b>(5&6STvrM|!^igxuo&<~M@ z#TtI=aHYmsOt;aDyYr0vfV&W(1`8Xg&AZ$q1M`xpNi%0h0N~ z;Hs8%(5i!YFrmq1*Jm(E_<yrMFA5Y*%jdOcnA`P&m*~igKE#LU8%6bfz3h*q+ zw8Q)b=IVZTG9J#ylny{}j%$1W@Ik?&1`0ZI*MPHu)RzE>97|91_eQmzinzzk7BU$;p2}74?_WMg z1}q*z_1=q@-@XT7x(ZNJ*FpUPXH$Uv;4kCaAXd68n#X#CTd1;M z!wUmzCCj4r4>!;Lj{aVzV@RJNQ4N4{Qp|4qno?d+;iRO$Fcm$xKND11OJH;;G8Hel zr?sqmoNm({H1XwiiH=Yb=Es@W!{p5uIGv`vdGYGycUAGt=O>?i^SRvF@Ne(l#~&ME zVvZocFZx8#QjD#(zxn1{yB*u)Z<1CXJ>1bODlQ#qG-{l>iPl4ue=7p6h&KB~H$;XQ z=8buFl>hMc>(9QLynKm+;Vu6~vt8Dr>4emgg|%kEr#640_aOgBl&caTVRWc~XiEJB z;W;?(M==*CoMer){lM9}m}?x-r?Yjf>?0H@85d60J>otqcFg$)gy8fXdYiUVUSza` z+!HRj<)*mYZPpvCUc)q*yoCpJQn>=IX=YsV*_gK%eTGMcGvtw)1+(~I;I<{RUYfm= zcFnYb)^Os@VCFf7*(B$Kp4M?uA_CH(`HQ`m$YBNsQ5FPGH5%2VD6PZlNZbKwKB_kh zlm$bMZg*rf9$=XopTRV$)MD9#Sxvh%lqUg~Jm%WKD2#qusL#&E05d~pq7O=|U0QpbSxG@|PC z9aQ}3JdcAz16FCFW%W^Qk-KmjU0iQ+BiktT?2tgyVK>3{x^p~q`zlNlUxkLCj01gI zCHfM3IsEnavnM2@M8kv|SL-&C>ii%+$>ijSiACiSZL2M5^~m5_XFfv^L4TSlO~z;aZ+<1ekcr_r4V^OkpFf z)gxipF-LQcdmZJcrpVuI0>g#Q=?w^v0W^;22wO;D7R#@amVEGuPE|stl<))tB=nqH zj#Sbeb`DdxDF8n2db5sW`ms0bRHh$$vkqtau{WRcWTzi{^Zg%pb9(I64}Z1a{UgWQ z@BWbk?sxyt5$CqyA%f|`B$LqDf#&7`RSy~g&*P1#AT$bW)DtRINh~W%J(M+L_m;jA z8E=t{AgJGcn(Xi*%2~S$C`+5U+n7WdD1M;Ok32EiqrMhdmC7D4jXbjtL=VtAN!)b` zuMuCKoVi%n7!3pQgO?4?eo(r2^x5H|5yLcMPnCn#lG%w=b%uvsSOX_4pjLxXgXKVS z=kg)}@2WmZqPy1cKxV# zD!}n)c+xo}`#SxLHBbU7#5TR(9nEwu$taV=v%DW9_c+nBuYi!OhNUKUTP!&f9*Tu~ zXnC~I$UCIzUKG?juhe%-lkO+=HrMvv4!j~4%dVVU){dK&!Uae7k;E2%5%3NF)x z=6ODNCR!pzb+?EE4z2lek5HWQaxvdmNMzuuIg=Y$nOaomQoJBsdcyh6<3{Rg5Xz9I ze(ZR6eb7i}vkCOF8W}@Y?e$f!ajn6y&BgU5Rh$k-3?ZPS_+ovaf_6t;aFfJx0v3*N zFr#wR;_x3Rp*>xT|B6VgQh{UFDw!M!5~`rMyE44JS`AL_{cTtI5anX;%^OCy+;GYp z5+5%M}Q$c{0EvmMi-jSOFc2F@8qycjWd zR@2#nb08xa2I~OhwZSdZo@^f=1?g$Qr@{7#L%iWShySRaACcQyzBc%QZEs$D{`HG5 zlay^)AyEi}Cp|=5whsg^qi;ODu>>3uo2;lb!oR!S28N*6Y6Hm4Z;lT!*sTNzf~B@; zs=HjKb)CjKY9$D1i|M)Sx1^IgJy*S02plg%s$udr6uA1P(Nku&4dSw$V{)GuOo%kg zNQ914zw*mup9T@Y4g|JI3EK&F%y-Dmm}sg%d_zWyGia)JrDnYAt~)X_nrqC%uy?{D zs>cdUZP2WC@xy|~H(1D)34<%rmPn&UgNpH_k;hJ?j$)$>5S}jSc{&sF6C zct?QPVq&JeNxU;*>#0|qz9m0AHF`;Sr9PeKcbNW_tbh1S!?m z0XOv6kNL!$bnqQK7SN!*Bn@WMxWvtsRmTCS@vde9WPxCw@(-ekU<{5e4jDK5t$w&H z^Z>}DiB}xGb~C+?TcSSrYUF6aIic@;TWfGbf+(A z)MQh7ZX&QxB2Gc`MXDu@+6m32=kZmoQTc_H!%J z)XVBf(|Ss@`8a3)9ZGhdSOrvoqrE8rd(_@);b)`?X#og>-x5oi=pj;wSZZ#R&9=+UHRy#1 zQk@ZI)O3Vw*XygY36AJWdi2K+ljPC45kZO=iAeI(Hg_cyr=x-OY*J3O-LcJkzVAdo zJtQG>oXFq~w6bK|FxKyewX&g005X)`X~-vXj+~3G3=+!T7n2JB-L4KMB_a+jAHD|d zY}e~U^ntQ2VEGJ&L=;dCV>cPEGzkcANMiV8zK(CkW<{b%E3>IpR}qSwq*Uahwp)uj zaXZpRYP(}1hR8+=jEXMhxH8s>5_Vt&(|EJY-F>rmaCJvBu4tGX7{v};Vr0U{9;b@Z zK~u@ef~#;=NI!YZzWa$8mSSJdAkv0r3G+jvWN_ps2*b@#DRPV!GHew(_;kUv7YM$v zMrshmCd{oo-jZg%fS}x%z-I17!NPAe%?Y^3@m=jKc@py>4wKx7LjgM)E=-J~fDnz( zQ6~G9O$FC*=Ejl2lbA2eE^C5ID42@xx-5|wgv*5TO$dNSsLOt3_%78*olb&)>?yF4 zrX99Xsg>xYE=$gpxkhz0(4AFV(SO%*(ZcfM*+`ko`cL0a2KnxrQB^NEcFIK>zC4ZG}165(uZGk+i36uy(H6 z&B8K*K8&SgfP7G{FgF<)BE^+6I7krJlqj$i1>PDWYW6^btNoy$myKC?lM;~~Q=#A` zwVMyZp$LAZdK^-9|Li5p1K_bPl&(d;QY^$DZ%|}G<*W_8P0HPxXi%i zoH=~$&Y(9w?CC-A(k4spWn=J?X`MKhf};q1k{=EpV#vh5JAjZ$HOGq(Y8X1g$Syt| zB+n0?8w`J^_thoUU^uC>C(+3sxi#kSy_*rDL@oi~V}YDU$p5n_M(}_W znW8(WF7+u|ufZ_ncyYW`3)grqvG8b~<@yUcPq=WUhjuK~(seY7HMceyzP-um+na>! z-*v~@eL*I3_mIA|GiUGcs=@FbUWW7_Z-3kU0rCzQh4gIwhU|c&NqLN?GYIcNX?vzz ztqC(_dW~WY5kB9!qG`KO!c9Ibk<7RN>pGF(%pM8(0wfL&TrtfevMg$?2ag5tru4A) zEF3=p5VJ;l4_21mPDgs=i_wY6#7R7dKv-qTH72)p2jJQ;zi(?o)ttD0t z6-F>s1RL4%Hx#ZGx?6P#MTRmKC{)H*zy>WogZvPLMoJq93!g(&#%_8WM-;Hj|O(sIoQWbxBsuQ+bis#k|J>i7m=T_n)gfaf!T ztD|1`3E*iZ2KQIGi&l3V-A>_eGX@XdjE6k5uW>D+q0z<8-&{d(1tHO=%I%SUJybxN z*|PW)udt7!JG#kSt5kC-R&y+4o<8@*vsXF~DU%ulD3!*I{}@oAOLp*Q{s^ffz4H#a zgM2dV`?H!|!_^rWBl3%Jn`efwUcK2n>xIQ(v~l9$)lvzd!i8o@E@)Ve<^GY79ZeIQ zr(9B(bH@fLQ#E^171%+}{GxQY&Z4?&xA*!qfYf)PF4cR(^LcC$0uvFbt2byXU<{DN z#ax{!r@I5N3Ya6})S(br@swDFzlIRX@sDL%u>!rx#z*2&6onX_mIU}kbDhKspu4qa zDjKG>_j;dv(t~zMh#b52H)vZwDNphVh4WV*_x=;M_d$t%8c#yTAN2{U8C~XJ2hmxr z(IvLgJbf`_%sXE^{1Gp{^(#g{@L{BJ?oa5)t2;(-%oz+EvqvVL>6|wGh^Gf*PMj=* z8@t6yn`5-H5NZOFh8|2!Da%=MxCIl{-HyWIIfNl&T%^cPl%@|UGC*v^?D9gbCh|lu z#PB{~A6_Cx!kQhj4V1IH{e$_aL=bXF7i+!CTUfNvRx#ftvivr1%7we=x@<>o@mAqd zI?xf~8nQ>v3a~6>%;U%#6AKyvR$!tG1d%8&a;YdOgwha&qNLcM#ry?4t?QlJp1*t3 zGc+akW{$~;*Q%T8TgRP<`O=gJn;|k-MrhL=eAw%>Rue)(jo?%qGi_3gtHh$;mVs_C zQy;L1U~d{+>gC}=Yl+V_mR~;hFoJN1YhI-n@_TUm9A};7t0$>YLy%Un(aZf}exLb& z>MOmrR&9}`2zOv1Vmk)r3wAAbPDU)&4XcHoF~`dxE5ldao>^bpQ$sY>ZnocV1V{1N z7QR=zmX|zE@`)o6;w~xxcS8r7#|b68t)n&oJ?7-$ctGvI7R-)jvIAl8JuAFYqOEyk z%c4i9k(qzG%Hfk?yU&2TsR1p4mk1cly4{Q=7mQo37udJ8?zBx9i(^&uz*cMQ(hqv2M!)K`UYWMfn-yh zVdK_LOPN9r{7|w+3+ZWAX>q{paiBpSvjn2@q&I*B!DXrVxgA3NmfNoLYO-prU2*W> zm@`E7F|MITA&!JbX^l>HrJ>?#=3~rS&Gumumkb8;V&E9_#f7i3v|@n_A=3p?rv>kk z+=(uF0lK8ztgSyKkxm-Bwk50RCLTAXBr)4+x9LHz5J*C79^aCscOiucf}(6tli99U zXT5Tj25VPO2!43d))UUtsPu6HJO!Zyi*||w7AmB@_a(>O!IcBkdm2@mt$wt*!#JY5 z#e$4buIR{HocWnVit)^ejhiDBxaay5^+oAZ(APvKr_7-m4)FC<4|O9WvDg*nFbu0% z$+e&)U6iIO`u4 z{Pu=N(($*%@ZdKEvN1tU(VQVUplns@3llSdeIQ(Q*l3&9sHx~(?gu)|oOn7L=+-cL zIG%%^+Ag!B8N_5>>MgjX5*K5drjO8O+Tw@l6Rs>WSB z_nvDm0K=(Nm(>`{1q&tEYL zX>u|y9>IUnw~w;d>&)+-c1(Rufqfvh;_+tNm1L@T#SiBo8@T=sY0pN(?}OtKmj_`b z{u{?Tj9?lQ8JZ*uXiwIMq*RZ>$h)sg;+v*g-9iIg2yoxx++9R9ODk`b>03Yw>1$9h zn8897GKi{Otv5KCY-Hj_h?vF`k3#Y=APFHqUmagj8)HY&7;6hZGrQX1hj@AFi8>rM zT~P--635*uw^*7uX3KV%ls~HYATHchNn{ExUGtB5U=eIRrh^hb4XQMwQN%f69X$uG zWNH+{PWhiXTqO1Bc+dqG`ChLii;k%4P&~i^LI5OB0#+9|YT62#x<<~iVS;~D*qzZx z@B5VO76vv;9jT)3lJWw%E%h{p=D1yV6MfFhFTQwn^ZMl%N7HNE&a=;E zPm0+UXse~u!x3K5|0*Q@_R*tRoamT|IycXsz5HA-Yq);->~kAkOqb5>ISmLU#lmzD z9#SE)6-CX6gz&=nE5_jDWQd)k^v3BuX!t#)(}WNEEYBIhJTK`$t!bv{&N~t3bLw$E zr<^-gDljD|cZfP&Ast&-2XzF669rak)PmdJ1Bj>8$9DVy!e-8ZS*f-j7pCRx*c7M8 z1=qMvw`UAlZ@B`Es43m;EhILTh7rvV>tvr$j-@6xIh4(_HM1&xBMi06x$KAuW7|J* zJHO(C(4QpgxIRcNx+-P0dMbw+IxZl>Ll#ezmaC!m9Zh`vF=`nITGjS+<3#~IX@n#@ zr>bjpkCYco<97VC{4J(Y{~Bb|EY&EKJa8YAl|9^5I07Hia2Lx!f;hq-5P0$B|e{Dy-ZcIpmJOLWl>XkMY zHXCr5`R)R_QL|Ojs?~EF;+`j#uNU8G{bU&raTX!D)c_gl^uR`;T5F}a-z)+G^GmfL z@gWx`QJL*zBQia1Dv{8N*}&{aR%h$i&N+X`$0UldJ|k4=!`M4|daIX-jG}T6pA}Jn zSbVt;M}<*9@#Sj*hmK{auu*Q6HIPy3zqEv*5hDTxO$hP4Bs1ixwYq_2i)>WpuKv$* z##HEN?Tm@wCTzO`crs5f$4_GeB7V)B^{~W7nXa*ld^9=u@s=qCjsjtjtty}ItV;7u!ANdStLgn}{`HHmUwtLv2rdms<{r!R zQ0@BQuXrlqAQO>?)Za43U!UYkpFlrmU8n|o0uB!y6MpA5A}%3QDP_g|pqg?#NB}Mw zlX(Tth5f`NCge!d2;!t{ocq+|W?7ZK6*DhIk6|zjnFQ1yent(?H8NJi#q@rOXTMTNZD1En_m1HqfAtycpF!y6TgjpfI{@?a87f+z4WOk>>*<0Ow}(q0XL zj_;+=B#EiKrX@-Y5GFVLN9Qz&8XhRn6^6$w`wSwG6k=j{&CHsban9Ntiy&bC``GSHo z8fD@b>}npw1zlnWGfd+#_BRPKAeyRpmXo?ci@5KmlGW1>50oE&N zVuT(KKB~3BZL4)Lp6@OZ>j%3ZTu*%99Y1QWw9U0w6O!xWcqtg>NHyW+ zj`=Y2;uOD(ZZ=Cb0dhFlD(NOn-GGNRl1jHCW`bje6%FBsRhaJ#oC}myPCKs;?XZ?T z-5Qw$)FqZnbk6dKuy--E#`9wehebtrT6n#QyT+j1-@c-6eezs3`QQ_o!P?&PFv?O2 zGk4`pJb{U;*SgJGAawv{5Wv5gLR>-#m!wjH15D+=q9(yjBGljeYkCMF=_}=`U(;s@ zo;(Pzjm?=ykxlX&!n6KLb@}Zd@F~cvh^dT(7f|LC2xavt%l(iLf(Png)@_4IEFdxo zFfH>F)OJoRS6cBQR%E_&!IT&P3lTh0Z4WS{2bwVzgxxB}=;5;lQPXgznx(9n6buVv4BRP159Bv1V+ne#R6>4umFZQQW!B< zfh2lwnziZtB?}!&^D?oc9!G$=SHJ5^ zjbld7zzjejY#IzHrVK+Lj}i9k9WEerL+Nq>Q8~=$90IEFvOMEp_Q%+88JO*8_+#Qe z2m;j*)zky3>-f!U95eGAAiFa!ej3B{$A|sKWJ}lLN~v*C*!D@#IJ<#15w$U?0K3Po zBT~($CYv7Rqmz6swse{uq z^SO6{IfabX56+Av5|}JYn8Go12))ECkU24h>h;#q3>Hd@hAWVSFWB<2f0wiM1st&k zgNaK3d=&C&FOj1WLc(utD~63|MVcRz7uXv13>=)1i;vA(-Qw1EU=v&9uaSuD$iErr ztwK$;wS(Kpz*E!L*V=iuyp0QoU^Um1lXUAXE-ZJJHWy~hT9Q5uM!z(hnkOj;>*Hd# z!Pzsg-6?(}3PaR!X<_3qxoDq`++*98PHbdXr2)2rO)pD@+SNd#!j$4ziOMWaOps0y zx^S55h34ZiLDRy?B5Fg~CrT!NEMe zpRKmgrAkD~VBYUXx^zo@tsd~~K&Wj7Sz@uuPm=`@)kK)F|??jPbjocFATPlK~ApMyq78y3(#hREQg?o}%*tPNaJtzk9LjbV|7W+P#ByGW~? z%+Yo!*dX^lx7Xl)ZvclVxb+mb9oy8XsTBseu`r(xy5afd$ua3(gYABW2S;^!?jS8x zPh@(K>S=dTtmgI&zQ6-R8N-pcd6hmFTa^kk4d#nAlrpH8C*cRTZ2cR%7A*re0zF!m z%qkhVg~J}ktdeTIrq+Tja;nsz%ZbSnSCk?v4&p>PU}_vSXjuK znGLuYnl1GB%zTWAwDrs8NQF5Csk$)6$!)Wq!dSp{3-LCf2qFxS3Nu@Bx2j6?!_RnQ zRERFgo$-TDTOte_&OYToJS-h6IZfi2R%*C7Fd(jVR)jsz<}Dz0x)e=yiqK%6EZ*Wb(+) zx*`x0UX(X_w2q>p6!f0{AdKyNnP3In)=e7mIm47*e@C%%i z1^KW(MOw7o&mgn>TM{q1bIhl-T;c@tdNo0gWB3HkPQHHCKoX}+MqV1)C86omhVWdd z-B}QMxE~p%Uc7q!?8Rp{SiWe7#3c+&Z@njLw>~U^1kwE_oR;Zc)=F*}MEB^S-`&iH z6n@|yB;zFCmI_H!qej$UDV@iy5F`?bSfvL$nIr9#+8+X3@MYnrnJyXy7%ho(&HHj} zDSybV_tdBnx&x9y7cuolnk~XM*M$%_`+>&<71h$r#9|v7xl!uIE{P~{>d9=zL`bf?VoiA;%^`7+ z0V!e!awJ0y&&ZBAc}T3*4Q=Gu2I-{h`x)ke@{n<-SswE1G|NLCre=9az0@op1P{1Y zMaaX{s(64IlLbJyEfO+@95w`Qd8sAMumgO2F-WYg9Fkz3hG6VFs%92xr6$4|LWoRd zzE4oK?QBY{2(3HPbu%C4c8}vrpfxfjCYL=XzZUo5OoltJJZ3D2*sz<0!wBGm1BkZK zJLeEyr_R{~gMML_*Dmf+u%QYeVL`?rEo$ijqD{7>Y0QQ>8^DT4rk`Zp3~SBnY-Pg6 z!X$QpQWo<|`#Jcaej`MdFW$B7@0nlXeS$ zNmh6GTrg9iZcXxMEO;v1E^p_X1`ywA5tqtb7H=KymcZ&zbvI%p(8=0O@*l1^apsS!z0 zuoGCKSB0TMx)<`x*sLo~jPl4W=17uRgYKL*5*2nQeZp+zVFH$4V~A$A>u8{Ft5;8& z1u4@^x`8KYB5mufKgE_&ObD5{@bv08dM?PMGSCNTcd#*$@YA(MY!!h96*82=0j`xG z0Q(6C-qh9lFp>__2sgzL$Bmk=LsSWaYeOu6Ys2?#GpZNqiIm)p9v7!h5O@$doNJT= z2L5^Rw3^mB>};Z^CZal{%_y(?c9ZxX%1C7r`hl-|5XeV1SzS~lqEiuO52zL&qp1oo zJFFolI=GXJ#NU&2y!xmjWT3@$-LUGl_MMejGDRrMVwa)T+IXG zEfOrd8O+q%pwf?mZ{5^)g0g#ZF-M2j^U{&~xSU!Ufevt zf2)0}kAP5!QOUWyW+Ayi0A9>O2JjKiktC6JR;|(z$flB9+k5RiT+A=Dc=?vQh>xYh zeq!gRaSZBvqfE~+j<)8p-RtsGNB)5&x^r%`TFZjs9ubP=7T#?X7~+iiQtD`+8_@xZ ztQQxvT~q?so3({vAc%?eKoq;`qNuI}CU%+y6dF38+rpI-R|!Y<^zwn-#$AKN=6b%i z5H9rf>}UXOU3;Pw!U-s-fvv`7(6ZmUg+jA)8>P-f|7V$CE1?7m1_%_!1+Ko$0zJkg zq}^k@W3_W~9--$(rBh}+XL#GW7>%j`P{n-!KMCJ5brJiKgPvJhKtvrVS5snxZb1aM zw1~mCR3`%XNzcyu!^+8{-DCH_;wb1k4lp5Y#q(lhX*S@02(w2lmL1TG^ofl1k~Ud3MY2th$H@qnuB(hm)7xbfRSz? zu+syE#O=3v!U~;+fP@urTBh39$8JX8BW40_sV?DB^=43Nb!F}a2*k_yucV%?Mw-va zkqWweZR~tT!aBQ)P@+X-pKHqvKA-Z}HE&d3b9td@w*Ulz0nGbCP#Kt|D?Lvu!4LX8 zrGI!TGPEkyRc?E@tpcNed}htlY;&j zJ;4A&KA_@jG7Jp>Gx#7UaDRK(A>$HR|0OUt{z!IRT_fp$>*j(ZAQlvtR2Usq*%YJ0 zwLS((7zWdRoTrGp-se4S;L;M2J?Riz$8 zsc?D&1L_~US45GlOE8V6%=2T;flh5w;KI{GRmq4XJVbBR<=WT-2tg881pM1?y zT1>R52NpkJr%wwwcP57b*LfeD4x?gm5L}X6kz$SUhpNd`jNS-zwNoZkLsgCJCXIgU zh;$35gr$LPLG{0a6Ib%vhLX&?kp(!T9v$_XUQIc5Nytk4i)n8kFNQMmI`&)1K_G`% zk`PE*AeRw6o={|E6HvPojT1$%QP|)I($_)95+!*I zZ;iIGG>7UQw+GEhifGXh61i;CuGeiHV}%qr0JY+fa-GHfXfPRRW9X%oq-hD8jh%A& zF-XX$Oz8qIM_{hxRf2sy8<$1$()m4tRPj;Rwxny zLz2Bf+h36TqCjp*fka@qiap%NK|rk zN|wjW-5&-`$@wyAP9$#}AvU}!Uq5^O<`vn%=Qm#{wN73-z4=0N9AzhdrA=h`O0I8% zxdJAA-eJEyhy9WxC6SySoOI8%9H*g(B@okx+?ynq?-oRXmJt3ZV^Hv8T0vzGaTbtO zXo#_7B-s=Tydqz>S(O?G+D)&|^GLgO<+NLx0ltf$lx3~v$5Qb1QlC80C+$|omy*YU z+UOdpjrpbX>Vr=Z3<~o^qtY=rPrwyJMf_X!m{_O&dl7gaG!PFJWd1W<>I;krntvuK z;;9@p8K<0kYC_CvmMM3D*%ZNaYWcU#uWoOoH9==)hPcxa6bryv5<{z^kQ=<9Zx@4; z7W#C47$#K5F^-YeCR{V50oO4TCoF2~p6REaK4NWR4Fdqr+<{Z!mJ*4%(C&_D} zTydGobK!cofa5sa|B;TmW)nCd#-;4-824a%3q?WJpb#lmOWRir9h-svxD$m-4V_LD zu`YfsbIdOaN$j*cNGZbtO60YGP|`aMEiLzftZT6*#^i*OraM|H)B*LQOHA+g@}~?> z41Q_h3E--2^fPmDyX~3ieRwDVDtObr{nqZ|jp z<@61{yzRKw>nPJsB4Gvl+s}lRP_M*s6*G-d46T##BVHxcHDsq#=#Y?ky(cRsUSFr( zg|e8YN^k>JOxzf%wQ(>QLYrWlVf=u+%{4@!ls++DY-60{#D()Y6xwz!q>wNdvyvp0 zMk46|Hj!tF8$vHGXOzh@?KG=WH^n#VKprHoY?Wxpc&GW}VoBAQOHWUfKy9^@i*WvN zaHL?u8>p^YGW1zbbc8|B5hyR}W|B|-ua{lv^(3;vOKu4IBC4Afs1-e;AV*;FGsbOP zBH_hT*jt_;N@W3$CU}73#7#^LpQdak8|2nlA<@mO%k$71B7Ui(7Vn@$g{a_i55?2m z4|1tWJRa_9`21Po%g?n;o9SwNm?Df6XR9;{^eJKaB5NBEtaL$ff z0|pgw&v(5qf}!MHvlq{hr42^k^7YGaS1&)mk!a_M%377S|6P1&M!2M+g)+njkq=q` zF;pxFtsSa^94Bo~NYVIR3~|A+;$ER~Zb?$!*+?s$v?8IXBU%!AXE2l#Zm5YjBu~i8!Dr}pOc2gO*b501 z&npjqOS}$!^&!FJY#ElKE^J4+MrMb3mdh(qQ|f53MD3{K%Zx`sC;8>m)6NIiXs2&% znunX>NxR-ABD@=J`7}SOAND({fR-{#c^ixIkLy^x!ZyvLxM71Nw2XJ^-v?NCU#NK{iR8NSP>HQkVog3+`!5 z>16(@ID-*^tiZUMBTJ8qSgB4)QZVbEXM~l*iC)3nO58!s72BxPa|jwd4!QquV1)2k z3;>8%lfPtDx;YR*9>UoSu*mEDT}hfjL~$9!3&6dldr_|@ZOAf+tl=n@rV!z^)+fKq z&hi*sh|6>64)g7yT5NETgq2Xu8CW4QmL8=Pq_!oK*!1IY zU`Vh@aP$RP;6Q^CGTO?9-Y1LWxX|ZKjgSJ8xu?vE)+{wQck>KbL5bPm=vYKVQ|_yE z7A#_+k~PPC{_@3_jzPS*x%s^MhtIxx_FeT_UqEI@@y?Qfn3fz;&&6UqkUYs3`#|&w zmhFL;J6H0kBW#jU*rLhYSR*^cX#QK$Ouvm5G8V|gNjH;Wa>*fjlvJ>_1JW9;PIgYi zxO-wDte5*pm9VX~eCA7dTqlaI5%pe8^Sc|gJ-NK}+*@os~zB-3JYX^g_QoSTrF6lk0bwWn&&IF2^&r^Q=7YF@3*lG~P-kXx`p zmaxw>uJzyrURymfJh2vUT)s&w>nDO@jNu$TbpR5FaX^k@?1Lq7)Cm)rPSLE?qa^v8 zDIU?JnPuKI#5CB{sy)_JW>#is>2e|_XR7Ob&Po`mV1|I0%L#KSCRy>F^@%6tb~len zN2yo_sKYxf=QqYI>?3(EYG8P=XH77jLd9vAGI^?Kpm?^0Y zCyH8@{HIx|PvznSeU~XHfIZ>5xI{7vnudV;K$##siv$ly?;s+nODHc@5BVQGXbPc+ z7B)4wFL}7^fS7GjbyR3|B}9b_Bmw&qf`}bp@g-zW4Q9oqBWA^o$mNfugvJYLUvx-{ zuF(j11SEw>&Fb8=-?As;EAm{>Jj!Y%CM4-j%fc~5X&E3vIVK=t|IFV;RX66v@XW-c zfoU6D$@6*<05%CJB$gXE#lu^O|6qQYLM4bHlErJTuH7J8k1ReN`7hE+&9&&f`IH5$ zGMXTg7f}|1q8;9Amzo@Lv3PKVTiN|6i)NkP$T!G0`o8hK!iLL)C^U#&F-cKCHgf^GQ+#&X18v*e@9F zM-Q>z_f8yhfN)Z5sKtfmEFZ%I1qb-WX2iF3qwX5((4n;bb_2TWcj&oHQF-nb-SPa~ zWjvaxX zxf)If_lIXACAnr6u9`(893ro9WC@v!An=z9K9ypYTf_`@ij~?rHtbsnl=>Fmuyx3Q zwr9IGm^R}XQ1v+vAny>D&WJ_Q_<4H^eKYrSl=U+gmb}J0i`5weh1%@0qc$2MitT0d zteF^^%PPGfymN)ln~sl3;)VJOHl0Kb_~I0yv*2Y$ZwicWwQ{7%+X9+OTKJH|+Ksu0 z8YVbf?GUjqCKs-0DYZDe>3M;9o=kqJu2N-08X?fc@$#DPdik~5IJp^6|5-JhWM;LA zgyy&exFZ=zEK0jvCv8?n@+_(W9vR3pe$I_c)pm7c@YNzrOX4CyO@l7m*(e~*AY#sN zGtykw8}V||1a!1Xnv^LTRv~{%u&fM1zIS(s8k~1KN};^%DTTt?Rf2k2tUG&!(>&BKA5z8SmkNai=c#V(|)|z$}0aNKyz|0!g>6VC;3; zUT8Sm9kw{xpgv9+jm-1B(ZHM?6Fx7W$0%vcq~N0W(5j;z5=4QT&UZI(=@#sKgK65i z;2AEp9D;GsLz+7cgG7o5*#IFutU~gla}(e_moUUGZGn(lxW?;4%Ko-G6A=BRMO@-j zONKf2WX<79U8YVq-%jaKIyLtNY-C&ikz)><%d)Q%I)Y~uBB78m30ZUbKvMMp_8Oh2 ztJNXSv%XF{s(AMN`R|^6hGck#j|~Bm4T)X!M+!&+WR?`E$9L-ffrWJ=1G=Adg4JNh zo&*^^*FvPC;#7pe{a2&7aQZl^LY`b3xRv04@k14N;<{hjK%c756iVXh5H~OfCfAUe zVuih#{gSH&4v~SH$)6IoI?DAe987LT6Kd&=4-GHk7d}hcL(oi`S)e=_)EDqNOP5;( zYL{LQ04XX7BJ_y;Y#u+}LG-*%-(B+ufJ^CxjXx;9C#jg4TYJ1xeMBl68M@>L76K%0 zYvk{rRFeX(JyWQYfODEB<8hh|xkUbq%)Km@#^(sFM%JmfdDn6BZ8Dke5L7F8T{(G~ zLMFYt1*n3dQ&Hhgq^U*?IkKZFpsYxZIFGX-t}|s_=OKe^2z9YeKVW>9&Z@pb+ATD?i7FcT8q<4qBo;@~)_+zg zKV?NiY>+0Khci+9km>QZEP!232LJi%&>!scHO$>zVRUVruGo8Jv(_OLxZBiC+P z-?FN7UYU{IQd~kKg%dc=58^@~5)O)fg##;?8lX`Wu!W=*mYAqfBX&C5x19~tnTAlf zM$*K@blSxi;3w4ZHH#fUc5AIU7ra2(Q5agl)CcL2UD#X0#r2~4NT-8~xC=k+j zjt?O2RXjqVv=bS7DX5lHG}7qECh4jR8JqXPY@vey^bn=@nZRE~PfSAl>=j9Y_?F}u z&kZH&Oi7?Ajy)*s3lg6P z*k%Py_P-BY-XME<^e@(1Bz4Y2dVNy2pdX2IR2yt3=R_X}sN1?$_-LM2GDFg0T8N;) z^}lzJ?3O0lcG)P;GwrQWrRHYm<Ym zmhPj?fT32k-iSpcr)hdxm76)xu*`Xgn3tbO|UC!=HCLtBM`=V=jk&4i@Im*^y0z8K+UH8)U0^ zGMpUdpxV_FWbCGOJW9x(7KdPVtC78ssa_S)Ceq|-E0O|zgW%;A!!G!1xN@>g1D&f5 zvbzVRAsXSGc_^GQIpY{x1<;D8jy>lNr`s#~{%D9K_ouP{^>;Vw)pha@;RiJP0CWdw zqScY|kzuDsS;&vi(b^ODwpCSQfhqmV<)ESy&f;4Vg(xQpeXrtMmN zMJ-Dxyvs$&Ah*KoaH6y{01XHYn;DkQDlSBrDrE`_9ak7Dfmz|$Bx;M)07;uog{H32 zL~AR+$(86%r$<7p^Uh=L&Qd!`B6T&Zz+wO?BS`pl1&{ZyU)+2S@@xAxMkPHkV7McH ze1918$J4bu?cAltC(@6VnMMHtbGc-6jKP4fI%No=r&(Mm3R*yCpeA{BlGnPEnMi zMh(u5ztJtue`Cco8`ilLZf{fPQn!A+h2T&3Cya2=uj+q-g{#!H7etrfJY7R z-R_x7F=+Y7W=GDstfp%&l9&_7Lo_tF$P>N2!AM*6_6h?okZC`5Q{t$*bs~?y$|V^Y z1%cqRt6qR-K}nl>G_T^8h%1nzmd~I4{Y_Q!bd49Uzkc?-+TDD1^EHYgm3 z%%Spm4${7dA$K&ae@D5WPH_C$0VioF*`tQ5uCcA@-W6_x7|<5U55xdT1fmpG z_Y3LjQ32rDqS;0@n=y$AXHn7^jpWhLMK}q8F9ojzPUzsYhe>ixNu2Tuf{Ug)#ub5I zvw)#QL#RV+r3P~G-=e)qOz0_W|8UbQmT+g2+>{q-unocny?_jG@jm2D8kF!8Y`(`d z0iaUq2BcMPuVG_5AhV?yOo{GF z!HX#@*{n;4;FO!SVIzZ;#fOg*PhFV*f(E2Vk1N`oQ3@~)P7wb%#9;xH^PWcERTA|0 zBuG4I9<||laBYm)qK4;^#7(DPV*A1qU1tPLwYb{lW@XT_#Bp|aN1lw{$O`G0C#N6& zizyQ0uj-Ii@4~#M8Ro^!t7zRR02~v`YWcse(eV2Y^`si>O$8^jWVd6JYK?9WTaa@7 zeHge?U4|mpPn!7#@eV|1DZP@ToCQzB2GUpy#R4 zRhi|D;uzR;4Z8ou%kRD^UcPzp`sODW z7lkX)W^;I6ZotS({4IamYn7-SXKo8Ojq>L8{`>jY^Ou@Sl+3=b%d~eB25{Nr2nc&b z@}GnoPGI$eXS^|Yn$Ezm(xik9g5IpvoKP5T;7Gnw<Sqjr-xn?%lQ{CdWp)*I5c z+U^9ZhG4gxy)e; z0$@KYH%nx*$Z%JLj(Q_yOGvLUO9&>t6_v%e2lEYw0l1@5w8Ho2Uhl7Z%xDrIeunA* zlLN){gBr}+wS~_Nw}jDBL}n=Y;fUkOC^K6XE#&$!R%7N*bO59muBrJ5ItJkhER&waeGcf#!>gbNOogZl}fz0Fi7tZ6h&)5I7%Z(SggTpFdh(t0G&{ci!aZpCeV!^D zGv_@VVMSplj|v=|3-1&lzJfCp^wn;nQI=FHh&cLqL~;zIU0s*^B>kt>4}dTF z-!jW7yFy(`lQ|+N8H`Bt8U1hb)tA?4Eb6ZcOyVxjUw?Cw6`UOz1_pzRX!)>%C@{Iy zCy;h+#mJ0V$^0mN1S4>22$Rc|478x`2UoC5Shveoj{P-|K-`){u!)=jw38ogoe0M+ zwI#F=+*E?qnh#c^Qlphgw?j#{FvlYGcyQ;v&z;#6(HfC1VyHDz5Z~)QiLGkA8MA_8 zF|i3Od2)S;kwe<1(eQ~3FG!s{d$NV?bksjLW#L-Ny#4hLq$rc1<7o@Mi&7e0BmRHx z-nF@n?8*|=Pr>y>J0y2i4*`%AHSYEVhzH3MNuU7mA%8*0Hf>k5EICvvclESy|Mt7q z+Iyc@CMc@xnL9HMmxw(3Wai29*zd}Nay-rZ)#avq-+ zHt)1x(oJQ!MyefiIYnp){&8f{6Myz(v86v}9FDP=o)_V%q1P5Ve`Xuc7Mm{AX4P^7 zAb<$WuxX`0zg;~g0$*La*0k&n3pY~wC9P<_wXZMyGC?Zv^c5WL_~0BJdF>&mY7 zBaLn>2y6NbgyMaA!L%$mb%GCp#*~vK8epZX8^&$J;q@G|?>vul%r4K9H30?J|&~(8C5V#(*}ePxFB2qUTM; zf!8b?qDoCoCyFT|FrP?|idsSygvP;h3I`QhfbT_ft+$ylg#ldNB4p{ifv~a_Yz_8D7amMMlryxc>qElI2K0?&5{xdZXM_`*VR}2v z0!TW6Z4So{=2c{u)aE|KN&Q8IUJ(ajq8}7gD`d(l{a@``bH+umsz}pu$JMFRYH8m;Z9G-vVJbI3oMu*;5b)e zwb55okLAz=V^V89XyKOb(>9+D;Uv3UqChlKuY~h(-Kr@R!gkMJC?D%f^-y{k9mwVF z;_6~hUazk%p7lA%VvY}i%$7PBmiJHR4h)=RC0RkFb1`htZP%;CZcvD$Jh_3&w1Y`3l3B$`$sR|ZhQu5}Df4aW*sG)o>IlI-OMP!YFQN@DikPBZkH_M>WKHUc-85MvY%GRkoHy}L0%^C{c}2aD zAv|C82N=MD5uZct=&Fjmp=;vaY-o`=laZC;Xw6d0E>2&csvr(+u>7e=of;ZtZbJS> zYFfkF!iTBOO&1IV?;BKscGA!6J2Od&J(ZdBh4cG%hG zmIc_k=8Uiq47geQcjj?yRZ?F%7-guIo?%xYD)9Slc1ZzHNAAGYdU*z?US$|MeFH>g z8>a-Z*$ldP*J8aviUDM2kUl?MYin0X-fIN~2{=#>^2t*~i-UE_#GfL%XLZS$Re&^+ zWrget6)*>uSw)0&z1`pttdZZmJ_8L8x7G*hi#gM(QAXT}`2Yh~=x++d*@2lA zBda0c#NfloZD_J?%y@E&+_ugY_?70)up>?;5?)bBu-P{dJP$K<8|yz+G>pgxAQR~k2D{Q=wR8Wa44XKxz38Ren4e0tJZ zgwa7O3FMAkW<}Jb)of}LeNe|(szt=b*T=8}*68!+UeEElXfy6jLI`#KiVW$9Ckc|K zV7ZxITq08|!mnA2%@XnlOHJ#S=80^Q;4t4>B)FI(HBmtWuN5m5lABq3q0>kPi_ZM@ zL)ohGAa!Em^8ro`_mgOc0>~Np7areCT3H4GK4NQte<%cbWc{J#NV0x$BPz;4&yG}* z2yu}vnHeL=()~BTEJvZtQgFSf$3b5VH-E(Fs;rTyQ=}x5)I;DDLUIS$)jg0oJ#(nc zxbS3^D7KnF4P`P9%n2|kXqRwz)06;4h`Sg*Y{u)~k2uF7qqhH3GY;2sa8z6)QA zlC#dvK%JuHkp~i1=J15(DSuwbuRJ_;2YVQN!2fx^Mgp2RbKZ;)(yx$|<|{a!@;_s^aJCJsvz7$y zAdH-B*hsQ(g?@3PwH_V4T{H_i_NR=HLZ$PZ&5>GN5CSG3gkTHqX^JQ+jJi{o6_OgW zQu~x=eQ;a9)%)q4SsuDND1@Uc;}e2aqU*{i9_$L%8m5P#)(>L`*V~&F$re+ip%kc3 zjiVl{GJXCG^=OsR)4U;0Uptxhve88zGIwmqOT9)ASF<4yO0E{SY8%)uIQGZ|nF5p% zwvgPuaI%sISST#Z2C$+WXL)Y|TgIxyjHY%x=ds&zv2fEViLhen6(o1IUf!&dE2XZu zEeMn5Q~SKg`AB;JJoxb${wuN5#dYx0-TT74l|JHWcbO^2n0)blmg<%Dc$m0SP4dWz zDXm(5Zi+Iy$Ml}yGI8F7p-%=s`{N&frb&r>uAWc5j0DUe?Z7RP5t~~m!fLTDpiFe< zE1M_CuMA&21Oi>31^LIO+|sP?CqQulVdhWXSwix~z6C}wOtVF%l^}g5z`3eMh6)r& zow=BPc>hWFIC^AqYKrWmBH15&`RZ66_)>rnLnN5GYb->^*_pHI8PhBx{d(ppn@%3{l)1#$?I2?UAq?*pefj#Vbv#R{}`f|{f5p0b**QE?Ivv>#OBn`Ed|11@ze*3|3b zZG-3h3Rjw84}dC#X<$N5u7Lpe{4c|i=zQORQCpBc=7U7E-5%$Dn zlt6tyQ8iQaAYc_4^EpPc{y`!m}Fsi+6JLl5d>KO=x74$ zTwkh3`P~TagI+@pl2#mvIU%=q9<|I5!;YQ|6;8eQfv*CCn$N2oXn0uR25=esU(0U^^_l z_L}|FtmN~DXG7GhRLeaF5N=Ae&nM}}3Q_4^nd*52DMMdQZhJEwgWENow;9Lq??n@dxu5dX7AB=h>lu5mU;3YH442b+4PETKHE zDkxJz<5u}*wm!r^3=pj^we*=`rdr`KemUTJd8J}8A7Uv=Oi9v0bxTTHzM5Kkw(B-a zP+t$9L-NNFXDY*IO0Wh`-%FAqx7UjG3ij<~{9!W6-d(=F}ksA<#0@{I= zs1X%$v*`A4y2(cbcU2%``3ie=k42z@>izD`29y)()7>jbh2P-hhNGLK=T{H_xp0M6 zRC>)4H-AIq3|(ALCp^F3Q^X24aM3=i@IbYSvAf>d||%?2m+ zWCzCa2pLB5J!t)$Mx~Fc^ET4-YD0}Ghi=HlEmYq?-Y8d)9ye#Ih3Xc(joP2n8z3>) z=blKog(vhT7?zi0SlH7LIa0UD;n>WuTqlI8jqwktizzLAGu9xzkMv1`;@ypC6}6dn zH;ZJiq|D=)l<80BmImmFuKQwqJ7B#-YLT5vXkdsE$xTkQJUR5Ix!kO%X-+4{I3Sfy zJ)L1Hii6RSce)aguu5Kd-hsV~jbzLqsL9`)Vvc2bf9YxI;0nN!d{Hd;F%x9*Da`yX|=}zwRW?zZwLwNOI^9HKdb5OI>B<%W1 z!`YfDCZ;_uq;=jeM-<1E;80AY1b2tuXYD!0i9H_<4)HK2=+cq-&4{fhmj}bYQ}TkO z|NlbYD=l~^!BfC(=>%8n!2DF$U4mJ7rQ7~5%!F6H!X5US*m=ooAaCP zYxVnQ+e1bu-t2>4mvG5jtxb*l>!LwXxfj0emLcU z8BKc1YiKg3=Ol}vBZtV*@%X@Qe_C8MZ^mYixN65+RMZ+@fNeV88RES_EwknIX7Feq zburB!pwvI?9^?NX~&j|m9^h@qQC_*+x2WGmxoNhnd6^yfs| zMZpY~PL|UQ^%(e0`*AAOY^PPv7lUj*YSXJy_@c?e7@#-~er`+{;wQ(fj(Q^tqE)XE zd65;%%C%oE@BAPD2}&>1_PByKGE%x^9Vq=1i4$Q;BrX>+M&2`T%6uY#RDz5Xv8DU& zD@`#Ces=6afHatPgE+D51eU~O>@GTm<u)F>j4eEuNPCUe6za3w4MZz6>Fqk2)-I;FP6LY&5lIAiAZ8d73o<|rF){x72Iaw^ zAvTTlb7^*D@%LX)^!0ajKETy{pY84ZH-xlM4b^db<6$Rm4@sHrJovu9xi0ecR5aN- zC;`N1@#``RKQ5Ir7K?-_R1SU!ax@ zfofKHkYc~8l0<1d>;QF(v1;(ffvE%k_m{XwPXp8qBz$(pU}r^~7>L5HJ4lFw=QSX{ z@rWcWPC+UVA&KHTbaTumlB+#flr|jNd^C=Od=u~KtHEWv#(a6|N+cODgugse!SOQL z87KRcJ#)_V(cYZt(D-RJk<$Fr!=Kg<-#>hc1umNK>2X36vyX0xWAM5m3HB^7DRdL? zu>z9?qt|Le9|s2cR-(LbXmmB!IPYJJ?Twtcpu<;Y}T2@yWU9uev}b zGo22RK)YTr?zjZfpe3JH)hY|lqXFs$UUu4k<9vpR>F`(m{Ld2U+KSScUY;MN22 zoLh>GSH2@j{~{0vSe$gR^n~kAt!SQ7kS8egf&+b+qdosK8&bc_6l;8?E?TTG|v&p>;K z$GXY$h-Pd30EmWox#&Q@d^Nj#v%`N^!(?K1{6SBK8m_1M>EH{=67et2WLq^jxj;3^ zLM0J|IIypi-owLDOB2k+M{z>wQ;QJPLg3Jy#$^M$U0e^H<+cm1Lb6=DX;^L{N5fHF z0Oo*9Mj9S8$zGg`zo4^s_pZ9#o{mvxm!3nR%;Gxr+1@RMsGzu0(W2eU=^HSnndnPOxpttlw56WMQP27T>zqUHEhd(H9$?3WzK+6>=t&N%3+~|sB4gu`2u;M z7psfp3K|XiHpj`BTpXCP;sHhQY?#4VsG}W+q(*_q+sf>d(N-C7yx)P}TfJ&NJ44Ol z`C@W&iBP++C~av`^3QVtx&js7hnT?moqw8s>#M4%J2FL`XYI$y=dJ=WLg8^udP~kNRMp?(Gw@(T7_lYRdp8RqK8_%mM02RHwZxpj9s`RhI9L2jlU2@IMn;`f zXrM6`6lU5>xL({Lu|kG3Zz%d$k*=PuW_T%l0T}O1Imv|tU<@8u8rrU|;Cafc$TQQI zHJ~c@5iOT5A)Z zn_bpIo7Kfiz|Q8B*fgVkG`LTfsap%mt8bAq!$Y#npWP{fmq@?yore$JTHvWfL zgW)s7n6pzPcboy;AyWt*W}feSOC}5HXcuEBp&A3-#bjW;h0C`UwN7iL@WyR9W<5Qj&WP6-#=)PHzqz>5TrLO3Uj4SeA2A8QsQ}$P%FP^ein!bc@0C)n_!oFo>)$%4kDdbxQ__p(}8H;Lhb#$ZT~(w=^hA=-LX$IYTXl z{fOk84=S1vx~^GG;kWh;&n4Hf@BA-FW48J5!^hw9Xjx*9TDgB{Yz=VooO+IxEqE7*t|`*w42>hplLXFit8@goeE99B4?~Aq7dI+1+t&zPV#hq<*811L85(3Sy5FAiB zXA}$72eusmCnv}oS7Uc_BEyT>hQtl*Qp8QBwlZ!~GBS*k7qWkj5UE%uYrS1Nn?tn% zl*#mGWKD>qLG?BrQ>}I-1s#effct-Mt3KQ3Z+-S7kmLr8F^m#{-F#2=b+LERrIR)b86w1ak`H*Pg9#3RzY{A;2cyG8D0HRKiW_2dKEfroV@DJ8C=ijx zWQAv7=>iy*Wnv&9D3UM?8e1biwV`hg)R_5XW{4s0hpmHXfURR8`uxaTpe(~?A&NA^ zV(;Wgy}-_dy<`ecMR;K2k%Q-{9d5Fc2-pRHe}qeNq_N!IoA|PbXo}pRnXnJ0JvCQ} zw9*1(a7&f!t6pP8)x)-Ng!`b#lIA&I>y5@WTwHE;2n6;o;TwfUvsK3A4sOxXBv`>U zufD5#RG^g4Jd9Z0BEh6Ws@>AbF1Dv(ycTK?zk`eT&9$k}A;2O92i)!I8|e+x?W5ac zH$kuct@M#h$wJejfjL{^WL2Q+XK4DX5SbIJ_NaLsi$xzdK0^qs-^dI(S8$Nv}_GWL9Iwd zc$6vVTtO0k__*uIt?GI9>P{)Q>ctk!M10MBwYj(ilLRlzABU^2$HU9Z*8uY!Zok1( zQZ?mXq|wt)Vo#)mg!iqbgd7Q7|Lp~FcFr?ETK7Rk{ z^5Oj-KK*ew+J1cd{`=p<9b4p{(8399l$^jcno7Ak;OncF=D?c+R&su-R5;R6m=|rK zu3+v3K9%9jaNfKJ$LE>MENz6efdG&d%qh-z2O2?yx{W~k-NwV*7*2wqn&)pA)XQ(+ z9Q$4}C&3I&TU$B0vcqa{`5a4t(#Bf>!^<%{BYeBmgb8Iv>S$TqdBJ!;8Gb*_4#%uEV|i0ylVrRz`r(FKZ%!6(MWB5X&I zC$tQ6Q*sg=N_)6x12AVRw*tUgRYhtF&nUu%myk1V=g8pL2hzdwq(5UNJcQt?F&yV9GHo(eWUc%F)3jB98ypaXE?Oxq*DrA9sFkkSEbqq%AzHOUsKL<#|rq;_z z10txgR`(&Wu@VH1Ll7_{^5f#bo?VP(wVcS|2&kAltduABGM8QeYD`zo7_yo|K431Q znr!yDZj`;XMwRLV=o9u7l=aD}9}&EYAsN?}oQ=kVwm~cEsQ{>CSiZ)RH`nSTECy*2 zDMVH{=okay?>+N`DMa9hxm`yNUSMEe<_!~me#x`eQLqM-f%-O{+{!b@=f^qb4p=w2 zuP4#=^fe+`V^UpQ?|^kvsEWxH6uGMSu{hm|X9ey8KQN!|9tmtEf>Wp11Z%{g@jp#d zS_u2hGGz$18M)lpOvSE(`Z8MOXi|1V>a4qgD;f89G9Sm!c4L_7XFI`3>5T$X!L#@l zl4yxzUzHnB=2QmVICVjw%mw%u*yZ4DISlz3Do0Gs)ZJQ%2r2UX@*QoLop!%9F1Nr&R>q&Fpq)Mk2j z7%{VB;PGPuB~g{oz6?F{?V<`+-5sbo8 zf!$N&)l{XgzO*g6kDimUg}@CWtxR$QX_T)4&Ff$#Ic(F`%TPj6lp!Km>Hj}Gefbj3 zNlc<~HQk;qHu$U%%ZGUMLgE;SDmK)7B1*1I)ph+tUfV`175VGyQW< z0s+92;^^}G@!D)f|12v4W4c(89JZ=Udy2T};6(Ur(&ZFYNH=BF^hsNk#A$PwiX}J7}{)(S?)+5aWTr@J{SJGDe>2Yke=fW5OiVHAlc4+@7S=fhhF6pxCt+l>uaD6ipeZo*dw!?{Lhq9P>r@3 zG#0`o7^_q(1DwqMh>(DBNiz)lw7cv8*-@6nX_I=1_|C62OWG1x`fuE?r+Hfktoeye zc!uDCB5$;<5ICIWEO}Fu9Gw*`5Pg5q33NJa1D%e_)0yK$tD{+9NcAvp_o|Bs7MW}l z9k`JX`BU_vr(LrmhQN&%W3v#&mEcAmFl{i0(Lhu$Q46&_#XR^pGISDOFJDKxD(a-B z$lP-QmIlwehIYwTa7aE{={$KbZ)qE&{N@)L1yPIqE2xqfReVGP(g<>7`l1L;Co{zm zPzW9I8BU~1h#tW6axa?Gv{+Gdj@)6Vw z#A6^12tl}xwl@$e!8C!H@8X_|QFJ&iGL}Yg#bTl_IjwxNi@%^&T=4y#aDCC?c5mql zhmo+L07E*iyBS3akbeTE0eqgnJhT|aPV0rc9fr59%2foL`0Xo89|@=E{I#w@4NG)~RRkS7Ix zkN5Z}9Lz;mK?}^OJo4aJvJaS~v}T^rQn(0Qnfx3n8>S(_Y9;Nz(Hj}>L69e9EDjvE=;389#;TEb}LUVbI{8$}g)Btru z4=;#Br}H!H0tba2|KJIHAXrMc06;p?2H3l71U|z7Ln_DTd5o{o}bXWGfc9lgXxrX@*2PBQp2OI5^I$;rIrsJLuSq ztQSB0=G}wYX0R&A$vn-;FmBf z7D;Vv!D6Wz>e_(|P2t>}q4q>hYKL9xxzI3o^W`eE@=DLZh*zkKMq(lSJ;iIfKqCs6 zUl_(AWpP3a_BN*0f%-%uG$l+1*1D&EN=5U&o zBus`YeAEZ<^qG+i)8@@KEVt$e)-!EQg{p9GROM7*gR!@h8@r$r2ToC5h(Z7TT?RI4eQ8xdcVwfBEO`&&7#yWb+7n{_7x3KH)!tMxYer-O0fKVFg8>v zWxb}Zw3!T%B84D{&c(CAwb_eW|4(MmpY6EjbI%a zCfgEafZC+%#7NTMy{I=+LD`~AOu^+bfF)O68Z*nD36h2%azqqDooZ%K_@jag`HvT$*&#Wf2Ny$DxGlFchpUEB^oPx{Ci$9zQ=8qNb)FR|3=TF(#* z3l0uN-uf-sWbYi92IfUZ&u>g0=ju38lnha4)0R)Rr%;$DXK|CSKue5LOi_u+N;){l z84cX$NwA`d04X+Hg_X=#qS6>)0_(M4WGu^Y;{%WI60ZtxeDiweDd+9-$XI@A;$hfF z=mF+T^Ha8H)^H5zVPH{I%MhN($_5+2VAsMdM2AW%MHDeW!O3BzlplcF<5Rc^DPWC1 z^`bjQ@>2-n6=kYOo|pmpV&VmwwHUa92FsoaNs;qowK5qp2AXIW;kuiyAiArovOK8O zU0;ejybq?@p7K}^@B{Q)eXI*)>PNe<%F^RKzWEk5q39DHMiN5d5rD&JGa)k|BtL40 z3a+#eZ(5KxT|SRhs*w5=Ywj`4I$4koAP6zf%yeEQZ;VE|PPyZxT&Fsp=g<@nvOub9%GjB)(A@ zo7jJ$Ywqi!*`UOP-H5FSb#1;&F{_22TJEB|Xv_dUfW8##3AyVEejLjgyl<<~C%J_J z=>f!;vt?J%IrN!I6oCr0R?s26+2`}!fjwgjq916xg_Ur#VCtO#72yLhP<-4IKy#PzBl?FC<*L$zqgXKbhbqs4s6_j z7>L1t)cGzNOA;Q7POMS;@b3GE!Tv{`zFAE+nK;!Xu{zvOxw5NOHgw*Y2 zZ~lMrE&uk%@7_JI-fnR|UYcpaPRC1bQR7-7kxFb@UsrJ~38uy1tU{^lm2$CMvgT;A zyUlt*+(8qlNm;oZyu0n;M2z4lzTZsS-$5pXT;whN8YC5)vMr@{4F{%WqC*7FvvS7t zd=9&plA;U%5ju2`8s%(grjZRWu6U7rsRwe)=4g8=NQ=wVqfP>59#!)6+aM}oSj(0k zXBeWUt&^xLPz3{BJh4Pv=_QS_0{BMW=mD>y+K(tkUTE&as$>&D5yk5mS8|0|AvH8 zSF@BRrXV3NAga{IrwImh5miVbtm#yyFw>IK(2#aGiuaaEkz!6Iv$ zg-_1d7Fc~;XqWR!l|{lo{pruBKhoej*K1|lZ)gCau+L!07(1gHj#@dM57Nrn5*#mnz_WGfo~>nz zwxE>LhmRafEMN!x%#m&D?ZhV*W{G{hv@v)#n2AjYrLb|U-Rt_fQjv$7K_~p1e2v|G zsJDw=;1G(8P$46(WOa%-X3XY3faaqb^GIxGMSAR$3xMwONZQxRkcxj?Q7}yn>Q$%; zNz@oN)Uvqg))-vzCeCa%)t8oY(f4>5pdcGRj6?WYlVvWXu0N5mum)#5yXi>_*s3c ztMpAc3DfEEMaTI7$TWfUcJ3w`)55He#=&!Dz7Rn1fe10s1wS2!(C$EXC;Ucq>2a#S^rp=DV^$c~%9@{i1SBjAuQ;7)kmY|Lm`sP z;I#yMva*shxQET;_YHQtJFtV_I6seKZrn~QxZMO!PU zzFq!732ZxNMj;z!nuE=5aS-Lo)3qMW!+=2hLl~uD*OUGwU#bVOAULo#_y7!;AJi0J zK=TUgb~0AD@o~(WqKYrd%^ENVlOhgap)BpjElf8!3L)0IS}m0}zaXwHRJX`Ns^mHR zHS!Gn7_LiNUAS%|g+TsSEc*0y%IcPMZP*M7QX2&NwU9NgT}4XWhfc~IByQFJaQ49I ztuf7@G}zC^pE_^NrR~6;1!0<9Y|lG}+yX~$l7$WmQdK=4QH@S7oh3`W3N%Rlt z)vuo1oUbJlk$_;m^yfUe^n_0j_fy>?&lEE?tuB!0OY;_2`Xrq-rl6cdzBjBBSAvs^ zs##6Wv7QszYC8T%Ez~xgbg-k{B~T~a^3djq6Uz0%2`MiRe9f>_XS+F7vBKw@!E;-@ zXrF>Q*DW({LbGbSu?6fG+$3PLW#k{L0t_ApQyk-*%8>zy43q|mx?Vaw#C1y7&}mJ& z-{c-a*N7ygJ=)*>C>Tb>^9K~YTHfKy6(h==b{ISX)NWs{Y;!Oj7yO#wgUKQv`S|k_ zN|@GyjUq1CFmT!8LN~XRP~Bp}{L4Lj0|ogCR-M9~D~J40zBJ%ual{a5Bs-8T`UIwE za#*bs?NB&8e}Y^Dq&#s?>6MqZ8gXNCT67kH;jMOQ3UwDMyG3F)9@P%m#&o?z8pJvg zhUZG~91z!aN{DOA2@#VF7VK(OJEJuq&83?Zm%xSF86+t98 zx_6!J(uM0I^}>vz;mB)WL3Uf>$%0JRV#AW>&9$b$i7^w2o~>6Lrvjv*JG%krl4U2b zUg&cb0y9`9Ye9|p{hTOevDVk*bG`Ld3UxtjBx*nGw&xhk`SNnM8zL)*Q41PM7&?jb z12#%?5X!b*FX9Z;mm%jnlv~jrLUPXo)u#S_sKMa75m|z&~(w0ljqp^n@&7V z4O4fT)+PvLMNAhkUvIhWZWrCzu6tq|OU-YwFGQjJ(0@z5?c3NY+$oxGSDP+pSoWA^ z5H#fB{%e|cTyLt_FH^2G5#vWmdx9^!m;tM|LZcJ?4Aw^pcObNc2FO<4sbMzRU{kmE z)Wjhkb1}KN4> zuXexr_fHSM{qTbqp{6lOui*Yix|9yiYk*pGwn5Z*BrqzD=K`b~G4y*7&@_SdSbmIG z_nq7`@7z5j7|Q>xzCIo!gQa|ut(YVdnjOiFD_?3$Weu!k*48WnqL9RH1)`_mM%TBd zYbw`ds0lJdHj*6w%TOzRE{Z1%J?Y7X-RET$#-n{;5uWSd5AE_m^pKGr%0riaVBWx6 z;)v;1(tBeH;AZLkWo|JBL zU7&av)sMcqsYH0Xd_=n*O$>-*pO1YV3+L9=&}YjnN}8*a*f9n&_vaq?2K+ zIK;vbUpyWm9i5_szT9L#_*P$R4%?NeVd|c=FR&t0`!a&}lg$?$p0a)pG>RMmgutG* z;-nbM7`7(+8la2foRHe>P56PN=M6O+AD9T1>EBqjUMglS-WRql`D@^v*+Oe?CGX%I z8+|@@(qCeaFxNWWrcuUklq>p;a0Vd07i^W~Y-d{PR=WX380Zz%VTG2Smkbr-zPp3w z65J`{Cp3dq4TwQTGhJXhvgDJ1q-SE7K*lX(t7_GNxy&+WUV+IgF9a3mNJGH_DJqmV z&9_tq(B{y|O$j7vk1e$P-F7|R6JM;);I)y$F&+MbgFTpQU!UvE#AhL_a8*%aYzOR2Jt(xIfQ?ThC$g5us zK>WH7$m1nz6a1#Kd~?3AEKJ|wT1lZ2G~wF)1p$0^qae>YRIFg!P&r&LYT7`RgWo|2 z!0HOx7wPg~-sM#+v;|q9KEMS8E6phN>N-QAKlJqA3SzH#K|Z4pVr!T-fK;QP=ty#K z&7|-Z((M4#o(avUvgX>TvNf8M#0XKuIe%-)35&o1#qr}?9b9z98o@`O_i!k5&DV}` zi+k(YS;I6Yo&o%alftMQrZd#Bs8U#=JVj{N7n|+sEGxToX?vRzVd!v1KCeo$wUZwM z(>miQzy0*-<9EOL;nTxz_x$fwkjg^2I=XL zrkA?#+37^{>c90eR|&OjWw4+$Qsm#J0bB5kFt7?^lZr-lKfn- z^ur_k@^b+qFhtbAFtSxq(FvC?xV`LA)wCdEbPFS7t38q`2xpL5dd-lS-|R7G9EEZd z?x0(PiVaU-9|$VYNPT-`84C?zk~{vErFf)}7!Bkm5I<0PF5Gy%+gp~wL?=fs8xp$8f4-}Q6t2OAVJ#=yrp75~=da9k;4-G6$-uaTsI z%23c$T&-3Y`1C36?X-HywP*6T25OXS$J~sX7ad_@C4}ntnR{9gKK)y4vi{Buq{oz^ zrJ(*qY=P^~V1}=;djr&xsx8%HXen(A)h#xw8_i>5nh-${d`T~GDCJ>@bsyo>G91~y zQzZ7q^e}0g3a4H3@Dot)T+b&+Vh*(|{tL5rR*Fl-d|a`*!nKi9(32pMEK*E0tbt94 zAGV7XflaXShq!szsYlxb*3e8^5t$(q?f~K zJ?a4U4m+z#dH-fUfir=4%XF=kqG*V%dpEg7j^*-^6+n+Gw9(K^=@TQ3dks==7X%ue ztLinKcow|=F1lOj0W1c&?^lLS;!48?DPL@643{m?gVQmtQV-M_ZK5vdr(ubdHY8Hy zw`4f3r{{3Cy4}i&LCX@HA!LG{qg6m-7IsP5bX@D6q%ak7Tm>SONb3d~*NiF_5yar& zfMu@W%#Y8$n(nSQe||uQVHZIL(YTr;N2)i9YjkOc!qnI~6^qy4;Y8g(cs)$E6B6LX z9o#0IA?^nPLlJ2~skCR-d!V?7$N*tyq+Shqf@!~q0Du>eDZbfYHB8-Q_qxRK zeSNbUJXeZrM339GQ-ZK+yM`rQ>KF;3k;g?w`S7QylpdZn1iORe9(YH8XI%y*K=D_} ziCe>5)~3bLaeS}uSl(Q3Wxvba^pT>w&{viAOd~)>);*uHW$zhlrLlgeMTLmr(e|+t z5dg!-ZnFT#AjhYsie8D#xdsi`#%Od!9Jn145|;Q%%PzvnrpG>MPwu1JAwW?Kgldkp z4mMCC%_)gLm(wzdUHpRZ)YsAN=ia^UbPWQWo(QSbovkR5LTx_&r^AEM$!L6dd^|om z8l9XRKm6nPWP!3Yn&MnqX-)fW(}t$n?*%F3ki4K}BP-XK=u%D_)1$xxVnyzhc6Y$A z3!M?;$pa(U%q4U87(frw(O0?!=zWl(V{&hp1wCQ*i)v!D?+NNN^JE+N~BP<80HzXi@805n(=EBpy z`;|_t>nVFuT^;qOx*EB<-%JDUuId+hV#VMUQG})`0kx!;An;MM0v)i1pG7%pa$KL( zRRR?hV2_r_Rpg*3nhqt|FZGxeK(D5FS>y+?Di%e)5Nse(M6!R%kfGe!GOtL1*VC@~ z;hV~Oji;!d^RK2`61jF-BI43HHFYlQ=JkyWdd%-g~Dl3h!GZp|62yg~MVaT24 zYmJVcW{cH~5i;wXBhpFTNswm1Na7aETK?! zR|f~Vl4=aqLj8D1W-qNk#Ze&oD?w?y0zE>NffPGAiE3`rI@!4+J^?AAM-^xpHHypY zvn9}?=k|iR{qtS)R%08%NFJVmYqXsw&(mn~x2}+(22X9&p?`k++kbud-B*LR@4oxP z`-k5>NBRu10+!_l1vvm7(P>jcG{mN?3PB%RZ1>vSw)IC| zm}P^_Wm%k%?Efw8O@?_aKuzx0;t=NdE53JhV%vf#vEV5Uo&VG}MbV&V>l3pX4{DQ6 zi~0r9Q^bNt&J7i<(^I7bvq>7bTn+Lz7%qN|L*X02pn7mtip}PeknNMvJM%M;-%7@= zLCt^~u1vnJD3M7IrfXAG*jwlT%65_#rSOEr0%B?Ee)=T*`11Gmze~%e363S$8-A-B zd+6$NkkWm*KTr+RV8|Qrm5AzpBi0};G=LBf82r?U@@;^6oU;;idt*!?_|8kqQAHXP z4KDB~!Cuy&8UFwcTD#8&ZG(m;q=W4BmhZz{zrmWB!qeC@cF9rj8lN5obM)DK4cSCW z4_c3Iy;ieK;o(EnlAJO^Ti6$pyotfRLJX&PWdQ7}5ihjT{KOy2$B z!{*_gS?DMU4Y3q#zdT!lwwVL7+RdwOGP_*>bKF4pG`ZO>PbW9CHDlbD*9Z4UM{qfU zl{S#fXg4`slRbLo%n%rpa~ovD=g8>5Z3I2=rw;ey%+Gnj{HR}Me*S84J&9q-oX+|4 zn$xLo?B#TfX+MAa?)R&=e|T7Z{P2g5Z~v5c<{Z@)YZw-0xkVJw-cv=%9X()cth<2R zgPRe$T0n^>0<9f#V;(ameIDG0!`A9+2xzZ+lk+Kfq@eRe<|Qihr;B)Wgt!vNcSSty zZE#Ga_2j;CMH8}Mz77&nYnL>@T&vG)9ilE{4Sk;InCIeDYruh;Kz1z1&V~_$L6Q7HfXMm zgk&MY^)*Fum@-5OZD(QTJfyaw&~xZRsYZJ(7Lm4(0%)} z?rd9b1ID2erYw*@7ti3ga)_IwG5M|^Sqj(G2a*YDjrPe+R!R8Vu{%Z>AEUC9?1MZ^g zX`d;h152SbOqR8I-5OS@`15>Zf@*Gwfw@Cx-+liU`J)%_-hThb)rWt3_&EFUZ|_BR z0R_?Rh4;@hBbj^V8O``0x}2?`Tz2C6qYEFuPi}b^tMfZy8uM%gK?D=GMl0swTQGDY z(~K8NS#9U{@KC2?n1GAT*^#?xz&V%EpKas2U?3Zq*nG45}B_siU|)v^h zaNStmxLMoke!cSMN$AntEchDt@$H3cvnvDOdQ+qW#D$QdgrUO%qjgC&M53M!q7JZl z(TmJJNLqf91S{@F5w5ZTm>7&|R=4o|p1KJ;E;X3VjOnLgodfmfZ){0~aG`!QjG}#z z?Hng1cq3&NBWAWO^(9V1z18TDLf}y+p+|3e#7W4t0q}=e3{jV{zRV@GJZ?VkFALkDngi)Az%9Lgpa|-MD}8P z4>b|~p+kX4Nw9Os6)H~-`Sf#G{>4Jv31*+`?4k7AcqoK?eq?b|Fpy;r-I{2YXJW5! zYoWS@`&D_S7!y&XozkTyH-^Y0V6cAF&uoC{kt)svoal@uDmCFkkJDicCy`OhM6^&n z5N81;%7~-7Shj(PW5h$|>+8v-A~{$QH&Zc`5pktoMRdgDF~K3S{2DE_q-SC6flipZ z9kIZp2xKyZN!5Sg(q1_33piE!n1+@Qo>j6aR#(a$Gts$^Z;C>|BdQoEsx^VNn7tEo zWjSlKKcEnjnH^qC<2{!6wu>g)A2@|TgJ@_ylONCBEoCpF9g5#tQr9XZ)@r1nA(C#a z1o^5~M0~;xHWpLm=Yyg__)) zr161psI9hKxy*fFtTK)gs%F|<-M!HRt>PC7yR!~K=q3-%e2^|R<1P^xahieB!!_lw zu2^RTQm$^Z$s69q8Avm+d#nhzs^!1wFj`^_DZeT%L7de~Gt&T^}=-p${_sD-SX z0QoD55g-cA?50XIm7`x&Xnk3P7UE|cV;?hx|RPFe}l7)t94G*?j87uJ_(Xx9{ZXzRsj)*NtK z4sCEGX9rPUSTQCPiYJ3(2g63c*XmS&^|<7orFhcpo@HSG5d{D)QHejBPI>|f?R5HM zqyo-NW7yICgnPIR!R=8*vZ}sDPKhWVG=6SkqDKvM3OzO^w9DPb?R&lo zU<;R*H`-t)$i$cQacGCU9U+pnsAPUadnG9YlOryox16MKv)CRq|G}sdSbO01_ps^o zI7Z~tiVYEpbkp`kpd&lzj${gvlL)VHNZkrTO)RMN=DZ-*AcUpL%2^MPYEz?RJ52JX zN%1)0UBgF+S|{=efkNt-AfbM(1%%({Y6>X@A%82lKf*E9r4qFcp=U^7Z4D}Dn7d|q zYuGSdE+o8y6MeI-+`&oktTpdQL?GQj??l7`_UFR+H7W*gHa;0-h;C;y9)aM$h$GOP z6*srP`yJq}%VMZMxZqlsb#MTu=NHc`KJ@D1ngUC@U=&zplMHWWE@}VN2V2x~NqU0K zym{XuhjS8f2l-9hU?r%FS`o5R{)ZT{9&MnBT(_X%sYZK^rhhA5eKPeE(uKV%Pdd3c|Edkk;h6tP%Z)G!}cZmBp_0Xv>A;` zz_mv{s#E&xjgRP+GXDSu&2$?A8;Yh#1JS=0+R3|k;1P%B!wFuwJ?e9M6G>z zCO$H81fBqIEt55fN=Xew2jyuh`6^#ZrNrF(uxw0^kaHx`S1qTGAYW!guMWpY2PdP^=;YOz}C z5~$?jaEdvG$j58h4cUk`DWf}$3E^^e+~+z3H%DE4BDpOi5-SvoTKH@yp9`g%DFZJH zf)fIER zzCQ;?3GuOcMHjAD2z^+Z-;{2}E)RqofPb(br?0_EXoHj4);;Dw9;x0SpqwHt3o!~* zmhj9ZvIvTiF-Ze4ihH-*fbWB4{>-Wv4~OCM?PRFOD?IwxVMN~e@ZamWh;a^UxV{^- zcX~yY9vxp`TIn6`zAic!;Rkt0`-tYo+=n4$wb@Uqpfav?+d)I(=`te%ob)B0xwuyX z)RXEQFrh2pY^+QhM9@NYix4gd3NvmjvfYJxY$7YumCd2O{`mgwJNboAnIGxlqnVK; z`le1@xM2#IE2g81RJ>jn+7tX{;N(Vu2XT@puwQ$}{VuQ#uwqO%GdysDfqwXd2G#}I z3gO{Eub6$#AXWdsq7Zy46uEOxX}<3W>K?>afk)>JvA_!FM)Dz6e!?NZ0N)j^#85d$Wm;}yC&rNKlOweZ0Y#wBZ_UkP$Ybdm^XbMf_Lsp>Ri!;lq zm#_UKa%p)0uq6ybm3f*vtPz5Er0Yq@(33RrZsWW8Wvnv+$HmJf{MOtZ$jcify}Ux# zh$X%$_^~cF*we$XB~Y21HLp4WM?#h*SW`$wMg=usMwq0)TR%Y!P&WvRwIOf)R%q^~ zs#viWNHs?!k#cMC#}L~&YMADhbON}*$OPI!QT(6`)8Op5Qa1~wMf)`kP&bIoWjzDOrc8Z(rFh@ zZ>~b_+dwR??VO#@4uR*enkcR}Kne2>&=wM`h~mnW*$JjgS9JqzgF2(IH z5e{IifH;r@eK9q9-lLMi<99tG7PL8O;Q!xdrJ2Ag!g_IFp-$guzx;a6f!W&}tT zK<2|rIVi0{6kRJj=@Hz4%(Sc|6Jp-EeZA~T1Jn)0nnS)ok0AsW`48jJH=gXW2)Vmw!j&4#%}7wIEuIHggBN$ zjVD*)K$s2`HT)Excng%=T-&Q{&mLmWj^(SL%>bY#RfqxnOW>4@Qv_|iaZ4gO1v@9D zb&0wYqbG=#q0r7rmc%o8XrKZ*$DLd_nhX-CcD~{sEYeL5r0pX@A%@+9)9s>jKBCD$6q|Rpub=G>7%1#1zpm6R?b`qP=+9; zsEl;2V<`m`$lMK_MlQ~134uQ~1gr6l@DHhnJE)%i>&>6n4?Uu!13DbxZcAGV%!GSR zBB1BsLy5(Z$8L9cay10EEc8|6wflB{olHomIh#B%SbsKbf6cCDFow>_fTvtQQrk_WVE_jsd-sM!3*&kQ7 z>VSXl{@Jhl?pN!R?nlPYp7*QuN%t>%?^o-S?!TDzy63QbO)_?>~He`1Hd^csSzG+=g37zn3@>JX~@Z5JwZr zBWQXUiN#=%36($?5UmdJQw+l67Hb!+u$*7miU$mjldz6KqxCOV)kLkYnHYGX`+erOma+mDL>UEL|wIr3YR(rqSF=T1ClA! zXSxE9LGuIHn8^=ehvQR_lGr79|G+S9kPiW$m@Vym%-6qCfwq1@Uhj#3l~fndN8A84 zX!~NIth+U)!#P2!thrCWnPH=TBR5Vz0$C^5!1b_3_Br8Rpb<5MAys%VMVuA4fP+uv zIwICBf%Hrog-E94dka09Y(`Ya@CcY^`W&3oDvE#*M44zgO}_3->cpmqKUx{<%6xvX zbgDO;m@Br*LW^a{nQvDt6AQ%6wYptiZYO8J_slEaAu ziZtbYNU)~lH%`f)cFUJ^9s$pk(MH{KgXtLA$#R(4vr^Up4}HqlI?9~HNHyJ@oC;){ zq4d_`9=erj&^MANCaGMyawk1N=te;)!~kMg##vAZe<9!Ot#ewr*S#_VpT}rnsIagy z*Jo5^)tJ4nhkeUlX8@)enOtoSW2-0c&m342T{MMSmY#qJVBSy|`wJ>5!IzK^Z1lTC91NEqeg^PQz<({kR40 zJ=S61DPCP7ieP?wtgiufIDPy51F6N44k#Po@1q7gqbX5jwH?CoDjtYTX43hkH;%K#fP!SU7f7tc#(9?XjKYw6v*rfxwa@n+B@ua*@qkfh*Kew8Co4u7Myqx@i}K zfljRh);UC0i&OLj(Xv!5&%YiXjBv0UO*Iru{cVYZamCpBA8K{R@O zbX5mRe1vh-c%3qx#>=}+TH=EP#_@`71la?L#Eo#6m1hU_Wn4wst&l292(xI= zlod;jF4dLb#EZsHwyMq&qTyoBf@K+-ApV>OO_&uPNeHc(gu^nLff;ne^6C_f{A|2} zj5=T4p_C^)OeRQMRAgRRQ+$>q=;2hGgWk2e_3&`)ju?&h})1bb(wV#GaPEYB0QL z3j&RZq#rqMR53I<=j~2URgh$0j(&dSq=*BTcVH3j-Dlq>x0KD>;+=RKeh}w_V(*vh zx!Y#p2anyku z^GTwgV&(f!e-O+nVj#J@d7Dd61;BT2s#gqc@0GiZ9sbj+!-M0aUfq8Y6N-T_A6UcZ*6^1di> zg&ZG6EG*hjs0X|T5DNYg=1EsVJk6vfDWISBg&+`)4=8rpdJ0gglv9LYT4W+|vf98V z`g6YHNra^sw(r93Uw6@+Wcj!@I0&|)wX~a0o~zv=O5fex4uSaKDP0*9wm^X{tB)%DJ4bBzBH)MHG*cRGEcZc-(c%#)e>fx zo^c{BHLjF!`SfyfjlBA2IpuP+s9y>eKv-*AoY~xWNl}rR6)OOIW3HS?gecin1PMv! z5hKzk&_tu;8Qm%Ob`qyZ#aSvDs8-Ns%xMvL?232|~d1x($uEL3J{GrZH71VZknxM~Igm$@as$_U{(+k!Au;giky{p{CW zG$cY$5`gTwnS5{|`;Unps-T!p$d6syr#INSR{%Af(-{Q}P)MujC6t-kf>z^L zL9zbFx9{ISygM@S>$%#9guu)2%pSqt&BW?3Nd%sW90M49){r<05#G=gRV%m#7xE)= zOw2c4AtC40!l^`IcccR=m3k@@fg(i&!cU9G6B)SR2%~h}638NPTEDUad6kh=O)hTs zIfYc+@y9P<8ZbYj%0qT2dw$)-RdJ0dhk}W0O?L6!4%DN?lzDvbVYfs@g#OAG)Wtwg zKH?Rt;!3Y~LUuo2Adx+)=rz~sLt;XfdP!C#Y2b#wml~*jzGu%8skubeoqoJlD{Azy zy{Z~P!U3g1hJuWt#rz_2#rxbZ4ZG?S9aG{~#cA>OU84dCXC73o~84hJGk8~GQ^yGVtcyz7K zl_3^*Q3VM1={xNqVt89RYF;F!r!$!KP#Sf%Sz8_4vO$j(!LQR2em>CNNHaf}O8yZX<>8BOB6PmiD&|k@D=FFbxjuA(a<#%Yf|<*;Ame&^jv53kLWT5ut}i89d5y$YZW=e` zUz0GV-6?LzNZDh=idQkrw3g5el2Znai);u0P?Z#U?_|I7wn%$dwnf%El9u$~+Q-tC z2An$+ibs(+U3w)AH_I{5&cPOQH_DnTFaSWb(;;hGCz4rUV5zstPKj1PO$hy%sxBhE znej7HRY3=V^V1-Z0>AV?Wv$8%3!-WHQX8e@UtU)1i^T)FkDQb$s7(XJOGQuO`oks# ztUxvbF3sc7+2M~!*$j;gpN+8c^MPeHTQOQsNmGmrx}&|ao)s|7gmZxsL@<$*I?(Ps zmoWzjh1;oCY{^EDqmg3`g|BdwEp;SiyWYg(ivKKk9M6+fdzHm{R8ajXc3WYe;-%)1 zV`6H$V-73*urUK$@+~r3+>{x;aG{&yYfTlx{ddNn_Q_^(h40iP&AJhYvMFh-Wr-Qt zLWW^RJbwy__lYw=#Hir_nS8PC z2V)4Qninj#hFa7*SG!j`=R5-mO{ZhnjLQqnb9O7>uhA8{(2!*0)YPyG*KKJp(pRo`lME$n!UGp|aRW8=A93vA;YP&bHxS*DmT zAen4*#an3{bKRSC6>yx9@)Z`n=2~CpJXuNr=5H*JpE09>9fK$12AF#B<2Gb%1NI&E zZs1@}AaLg4s z9~zY@br9SuO0l@XE~89@6qu!%xeuNm&4r+43KIy!NwQ4Il#Fd4>)`p_0={YglNo<= z_pe0)%yzh*R{%f#5Ei)KAnSX$Dm2nCM|j(?Y!uFcO!3WRhC1rT7sZv<1*a3nv^&_z z5j1mmQACPh7KEaKeJ>qS{FYpL@W}%^{_?lH{PJ5)zWkO~Uw+H*;3wRZmjCICIs6G5VE7Yu z!0;z*fuj86llQ>zCv1Y@PuK;+pRf&vKVct?e!@N&{e*om`U(4B^b_{M=qK!h(NDky zqhcRWn*qvrxW`)Gg2MZa#8A`?X+P$bikC3tvO3yl=?wp(PSDG-vb*P*r)llHSjh-eSjEVu&%?S&+xYF zkR~o0bD>kC2am*)dbVmIrtGK3xF8wq7@T6cQ0dZD)(Axo*OGNT z|N7v5h;#Nj{z?mAzD`gLP9cEGf3a@Sf@@to`RLef)6!~erth&CAOqWv9i`yGFOVc} zigGWs>DWg08g`Hm{M1E*I}zr@baeQIHjSc&t7CYKi_CTGps&^O4p9eAcV-7Juw_pN z-KdDeZ-v4~FK=`J!982(0QD_0hgJHP1JhMhu4biptUXad^`fSEREg9bpnX)*61lUU z@T}uaP=yNw4Y;<4(mgM=K*SbM)Qw$H$JlM*t)@+Vxo>zg)W<>t7PCzO!b5rz+IIb5 z1=28So?>>OYZS7E(H;)1XofP3PQpp>13pIzz(I4J_mk6@ksQxJO?gDk)nN-qjos~P z)B2Nkp&E^&_TsuQ%4Nh0BN;Obla{mu8FoQSM0MyuMZyrin19942Cp!9W|1iGLB}8K zguN6;v1ux|yuowMWilF{zX{h*`IDH54$ig1&2BM-^~v$7`)YK+nq#sh@W)@>Y-elK zvkA@LOzM#yfNJBQEDkbF0jukezed=WMB?oF23~Fh)WxFNUIukV5FFH3EqccvtgRvZaUG*Zp+I)-P{=iJUQ915=yf~2kMLyWrw>P$PO5Z%UGFjQaFx5n5D{0e@drmt_rIQ`FU8HWUH)st@-Kl1WTk_fPATj24sqMtC!szIHU{gUQIeAPaWl*~Q zFjVB$Pbkdet-Zujl!?N~K7z@VMD(g4nK{brfOV7e3zTDk{3M|x-@d*b2q?8kL!6b|+P_qD>&*7F+uD)Q z#Z%T-x2PsoTnH+DG5bZJxKO7>{a6(0YIi+{Qem+&%Ib`kpAIT5;y__;yH&6opuU?2 z1|x#18}&yoFHY?o(cF162W2#$HTSDe7yk^Wblz2YGBa&fr;(c#j0}!55{#I8*l~6b zLqvFX4?CWcrwhc22>j(O#Ej#5EE?_ zN^Ya4@a#uiG#8cR(KCwmbkJ5Ucozl>+rk=O1J%Qm{nJgdOqN1f)NBeLbx{AzZI5`U zmrO8nXV#b6&{l}ZXlFoxBy{^ZSBofNd~~5K?5-x;n+U^ z{dW)Ve)km$X8(YkCLTD#igPbmM4N3tAE?XVzx^&Q-+ zG*X&(0VE5H#=za6_tbqM87{I9c>M?e4Zi)EZcIV-^wZd{_A}=*l|%{G1t?d0LYW~0 z=TPQ@BiS}NK!j%iV_W&Y34X=)bGK$6OVdX)Kv`)uyP93T+2OydLzI_qTQm=}baP3V z#+n)_t{&0r?F6#73vL2ffed2X>=S=%pnJ| zdH6K_@TWh&{rKRVu^ORFrRWaXLz2BY4RyAk9t(%BD~W@4Hcr7C?##7)Cd^+pXv?`- zxo|H4^|r)c5oVUI+~8aEH3=9A(2@o2vCa?>Nm{}qw|Gy_lf82|=|0{W3p$@YX$7TGw?U?JG{JL%X+UZ;@SaH@T(uNTk_TjfuIDh^Jsen%=cCuAZ&aC6}-B1%tkbvPi7EE_b7RQSVY$$Huw=^aoo(n1|ZkA^ywo%DWg2qbTZ z>UnY4oZbqQI&1IVUd{V@XPCNk(1=K3NjrRaW#u=-O$x+pqu6KU0pe0qFJI$uuo)gR z_*ae!c$gB%J?BzMTDKoyMk{#mtNqYmQv0F7nf5~u!NA!@B;3MNUYS~wkt)mCEAx+# zWU2h!Ag99|Xij?S3RR#t_jGZC=(mkMl-x`1)Z@ILh_=$_jI(z&;tUh*gnj%LxsaSw zlWpDTtSMBkm)l>@*UL@{32%1;i*zkmFx|5mJhvyPb%|+MgM1ZDD53%_ThnOyM4OIh zlTJS-g>3Idj*Ctk0tPy5t_`YRqUgrD2`aW*+zjOioRffS@keePvxncylY=fxJeR)K z7FmQuc{PR8K1eX_dM+7k;zeqh6Y@$2N|u)@!qh! zGUR9)yp~E|2R)SNx=Ghp(Tpy*nmkkOJ3>(6cr>3*AX=@61WDy#mqlv31*UiJYT1wsTfMQ$k*6m+c@uE}Q( zx^KQ+-oimIR?~Pk{71lZ7-quyxC898V>^Szezl5%|vSEbcJe1_n>>Y6Ib7FA6-WdXY zg>nuJ{;RWng1Z*rroIVcK$Wftg$*1ug!~hdbuVaJy~p6KT!jrUk-&} zQg}?@9G)`<5G|_dcFp&OO479oo*a$Bsul(-Zm#D3;n|6aXS$L&b5M4qCw1!zzInSgC3w&xvnC}x%Ld&-WJ zwk_loCtr%uzWj3dm>MSS1&=C7PNGHNp8W(!@=1QVrjm#RDqbgc=egD0SmtIUdMUU! zZ+(~b{-vYi-sjg3uHfaKYMH$IEM@u%%8x`pVz%js*F z45qK$ogiK61R2WY1o(n4r$3Ud1mX?vIaVEa_8=J$@^vW2gMm(-E+E^WWEO5J-qSo6VhZYSebIAAPkAo%?VourJlgVjM;Pz;DbGcC;g>%5@F~xQ z+W#}pg*QSTFDb-Per_yjXHhyg9pfgaJFZwO_oEJsx94LpS)9nMMG=E^-~BgFOm1Ut zK}k@Q>6fpOBm(IoK#J^g;Q}08!!BXdT7;Y&*V?VW{o~t@Nw335QubL;_1_MAa7Q zd%hs)a_A)DDPevK<5=6?8_SEKFnP0bgktsI;1Xo$2vQF5= z-NZ)u&JkWsFnzpmF=!Z7uyUzIT34H9#eA91)?z+EiJUnDkD&a*I#2FF6RGc!ZVY|_ z{WDj6FuS_n^n~XJYZoNSX%v~vb-*+_>Qlp~h!eweIyiz#O(z-k2N0Kkl(|L!%m$dg zGj{Y*-i&xu?1>yP(7$IgTn}`%%)OIP+8eQVCMg_8Rd1d>37PZD$s1VI+#{cYj9S1r zlY!BywAwfE^eLfvi!WMe`a~4~herYY|G<4pP$xecEy6|>&y7%|c9(SF>G3gxg{BPq z(sW8#Q|WMGRedoUpdQ7qmIvJWUim4JhLT)^ZDLteIdVEiEG=;WrVLlhYu6B1gur?+ zjJ$@q!M@O|q#=$0X$vSTPB7I*?0&z~a*QYNLcuk#dJ<|!&{_to>NK7oju zcUFA@DLvLF8|(MKE8FS!_sJ&u{e7}^eor6xcZ0UOvA;8S_~g&eT_~I%`{w^E=Z^bk z_`(w>{G|ECcKQ3vZ>aSjTZ8}0_9p23|GK$*%KrU7=v)IW{O>h)PuZLQo8ZJD*7^Uu z$$QG?{Cg4<_rVHB;Ew%ByjB4f@y{w-<(^M2LHiv-!DCC`QKWdXYv_YF{N;Y3@YScZ zevEp|<`XKF|J7y$-%XW(kZZyf8^Aw`Z;@ja{Hit*<(LlwPr#*kAqjwha}84)BEgo(IweJRTl3r}Sf6|p_m3yzy8V6faoyi1^MCvMyn4zUK53$#GSkDSO!e?7 z^T?fMtG`DTsH1?LP)Gp#XTd_jpYjFU`PB*;7dD7ev4=Yc_{g(QC)+1XGONQw@X73W zaWD!cU3?ZMGU(9$R}Y`EYdsA92}6Ya_wxtN9yjLfp!g=xfoZIv?^o&&^Un1ezLhVQ zd|@D!BJ&@U$w<7U1&yb9154=T9GQ1ud}T!1ZlR(eGx&{NEVi)PKH3TD^}*KzINsXB z=vk7Yxyt0L_L#`m3Z)IGfvgOv4r^7IqXvnFscCbG+}99!m)p&+E5%_KS`a=|W|{wb zPPG|=7%ZUCZ7d$$Saz^jfi>d~2J$D<&q7d#`2)Ix?UGHTJ+M{cf2AEH_0Slkpups> zXK-1ll{FQp7_h6kDoYh?syW>YIw&)=qGrB=g2)DeVfeJlQ31oZ$~y=L0zkXPbdzqS z@C$uhrKD+n(;A?L8cIzD)}eMw{bdbMH>8JvhHnpt7MVq*kzH#PIHu6)PVNUdqVXFF zh{EWMRW$!%{&AQy0iq`JuaW= zwnswIcy#d9(zx(g$k8BYJI?h(Y4=U%=6sE3GYs-5Y|>^lb32-;{Vke|9V5H{JQywn z|DzE(Xq*AF>v3~^NYjJDgRwU)qrBq(sRGOi<}va7P+6XxTlAyDJ=%i8o>%5P=Nwdy zJJ<_2HrS6GJiUEboi!@Sg!d1wZNGZ5P2aF_rM(hn2x-;#C24Y?HejJpZo5|?b>{a` z!Jnc)Y3*lh!sR8}Oj*ek1e-gx*=VynCh`S$3ag)(lNY0Q`=B?WB6E@SBDobW+~ZRhe(0ScI7D!;>;7 zdp2K8SduJyqiR%yEg%~MXs*Yvj3l63BMNc${2nsHUp{>IyBGI%wxB$}n%p4O3(9fZ zhcn%R8;&d&o)>f-b6BeO#;@agV4naJ?(QyT+jA_+@u3lTPalPJKQ+n~dd)y>VoE<3 zqmAe;QYs*CsRW|BNr$N#5{(Rzgrk1R-fntbd7_Dy2GKx=J~o&HsJNtwypCzHgEwAm z$`(>0eu;p8ljw>kxai6>&$Kkq1%}z;>W@s0F#*=cK?P_z`qCk>)F(Uw^j0(Xg#Pp> zZ67_5#}k@P`gSfZE)kcc9bk+^3)2lgOA&;R$weLDQPe$fPAwq~xIxIpU%?R=<0D}R z0WII+nZ=CC+OvVihn^UV=}?@bn4ow9_8InXX^%!eA+x2BoUFE5*m{;b;4~?LvuNhM z&$dHzBiWPZDI?5eYXpViI#VN|h4f8awSDb|WYIOzMSlgfx@tfd6ka;`zhY{KN5G)$Vj*x{-lYReE)O{k3}@4gYOy~YsIjNT zMtYw6-6`lGqzph{yHnnp7B)pcvd87}^~CN8s1LvQW-$&PZh7wBw0?&mbbod)`{OM|ADJ zBupw9#S)6I3-59VYIwehu|sZF@I9$7wWDdH2kqHwqOT2U=o)&3O1p;kP=>VaEKwx3 zBitm(myAgjeBnsTaZbVPUC&P6ATb{}5>+$z`(wM*E}b#TAl&ZEl&MS4YutLLXeqOtvSv z4uj3F&uIi12Vfe(o0%-{G)vduFCP+&*zlCssGNGxCzu7_x+) zQLE<{dn~s>g7|V=Ud8;8M-ULDPNeQUL0wSh>)S6SD3t(%z!Sv|)zo9~_u2b@MHGy$ zV&Z5kdA z$Gf2A4xbj(HoCA&JT1yW)n4x=Yf@Z*o5TX0^ptX+Qy28v8A`}M=VtF(&+Zz$1;N|E zZ(VJOp11n9`D~%Xt`86(9`_Qge!gTdj&aGY;~M$#a|yW4!QPRQvG%b>rx&G|#P-HM z=u43j$@8HOmWZW<04000qb$UeD^K|j;^FYyUo|UGWp&=M2nBj8A)FcLd~kPs46j3^ z^D{?g*nF42a3+$!-ehEI-DgJ$u!m>DIE1?P_=GGt=t+P(q}NQcoJneCM;Ls>l$n|0 zNJUH~D_)<729&dOehX0#EGz^X#{vB){*$+>v4(ZrTi;Tvl#Uey<_n7#s*?p*UP$Cw ze1Yo0Rr<^nOjm1Ab0!!TZ|h(KB}2qH5FY6Q{e&14p-Y`PB*mh6vX!^F&eNwNt_N3( zIBRi{fURc~olKYYvWqHWM5tzGp%C8MKp2m|eRqJpKCMQ8P&eki1gSF}i;kT}{E|nb!Gf&=n?GkI-Bh;e&KB?bj*8#zo zoeD-1F5fvCtJhxND%L%hShu4k zL%5U7zEe`F3tw7G*N^S;?noGF{1OJ-3P%7-YP$8WWy6R^{ux$`=Eg_t7>#x9@<7(N zE;HA(H=skvow5jG4f%O}SCQK|yE&P@T3{2$0u^*U5IbxJ0BnE5IM)Qg@v$t~0IBjlgHeB7b)3EOy$-6Z)}5GX3O3i>Ug^frG{Q z6R*a|KcODIKoQg=vAE6_K~oVkw)-mCMaf>OuF%Fx7v?{D@`M(gkLsMt>8c=!DVYr7 zUbt~%$x~2Ne1vOQp*LI?43+NZCE^Jkxj;q|@|E$2$}SE07EHH>|6FAodb<5k zDxX|pt6w8zrIgPeB*vD+t?DhYx9GQ5td0MiZdZ^y4!FGwP$k_RQ1CieOkuyFx15X^ z7H%M}%WA~SyGGQQe%~fBja^WTFsLYgw534emGh(G0aVhnkAA1FAr?6uPA=LCy&3j9(#M=8Hf zZ&yCe`P)=7r6l5f?*S&(DWrY@g4llYgG~6RzRycLP(|t5;eI8}71b6DABn6wTl`$2 zO74X6DS2Sn&2)Sn>66bP>AcG11n<9iu&3v@$=Bm=a+p>N-CsNk-CqnQ7v-bk^eG_~ zr>M(Nmq&Ho5AlMSn6`Nn@@(uTj8FP~mw2ePqxxX#ZeZR#cV)opICxYZJBw(sk#y%X zE1{Wa#0R3O=y2D#*YC27gPIRN2K1nm4W8`t+z8+5ouQzO3jLgKl%y>3oN-$CjoVe^ zD{J;r(7iW?i^Tvnv;E1-N--@e=Cu%L2p39^LBW=ab5rfob$PA<-+bHA`PEnn*7tch zpsUkpr&7eiGuy=Z0jnV?vBdP|Z(wzHbiokyriTU=gz?FNLKC65?@~ZJ8%O3#oay!_ zrMa>5O<~qp)8;dDmkQk74XqPcYt2=-l){41l|!} z_4(qz^!W?dn{ej=h8=U|WOwhs|LOhW;l~_&dA)yg^NB|>h-Y<5kB8s&Ul!ph0c3~M z(9FM4ts%)kFWfC_uC_cBek+Y;jCVIM1yP^kHi%D!tp~6Ent#Fw^9)) z4gQK$+MiCNO)9-UYc?okXaJcFZi!B-0U{tAMB~y?Oi<#&azK&O}bL)h6@8Xj1rWtnK8iagej5$;4ITUT;-X$h2;T3aPPY>6;7*m;nH&BPe&iV`up$Se3twrfec(ogd19TLy> zywO?KwwwaIIoc7NF?MxcY=$olJ~3yv7u$2K;MZTj|LG^63S!U&h7qe-s`?ERSfX7qQtIXasmtCbF_-Jw!@h&m9)8?u{MibZYL+u0!SqO~++ zV*aWJK4Q#mW_%3m$?9BFgIl3VHcmI+qQ@Wds2S!?rI^=n$ES&cGM_#08l`g5QCijPlN8-}v-Ng;w zI2aH{&#mH8Gs2J8st);paWAq>pvebJlfAAE$%`O&;)}2T_aA;#1*-Cf6dL83H67!3 z)ZKPM-a*w(C)han1);vM<|i7)LxfD16ah?0tna+7dVg7!iajHM!NtacCalsWm_(0B zC59HST(Oo$Vd9c^<>e&p%FEc;NS&J=WO?D|7%kb;30iZ1wl|BJx_+;W5q{%1vperN zQ=4NJLMQ00`R~gqoVJ~QM?FuQ^7M9I3T4hIr=6Uy!KRlD2_&? z(Wvb13awMxu&!l6c&MZLl;7Nw8Btk)8ojb^lBt7Zg_F8jtK| zp)>Zjw)>vKElO!*-|5G+N@YNWWPNpr*=Slw4Kk!Kv9oBkL557GO-1>Wb=L5e<99%! zTI(m+pnY|4u9454i38TdUFlE-S1}aBk?UK{9DAIj&jzsyEPs?mB%H4u%`gB>KDe<# zC|dnF!5-Q(1dkA%j6h3?j7o>qO!k#7#h^_e$q>JOKRDP=8w@88=Y0O(nKM04?SXtQ{$!)Rs0CckJsW=B&4>JPlu8MWiy` zsF%tyTLREPYz{5r)ur3)N_Y8Ji~n1DUj_g)^%06kLl7P@Zp&Ghq{6w;+iZgNRe^6Kn5QbLm%1daa&zePf^~XXpA3S@UU^VZ9lW-O*=S;uZqF;<*TZbo0qbCK4rVd=`HaH_%jI!3>#{O* z`hAHeNemIDLPYmV)^dH$PP3cXMk{OkL4|4C=R zrrj_l{{trlqy!;qN=Jh%SFgr})|u)67%ExVfYTF6CwGZ(rr0zn*AjwTecM5cE%4`l z3|j=k=D?{QNODKWhfX4D&RZRl?d9rse15fmyS=|6w3B}<^p>*_zs}EY2{nW(J3Pa} zyba<6g^=MO&8m_EJJf0kdpqQ8+=lPN!UIdf3zB_lgTp6qypGHpTD(w`dp zatG7e$`n)tD|QAcs+16-i&GlZI%U)1*gY`F6HJ*;u6MOI`oR@x^AAssZZe?2dsTZk z*j+hMsmP5(UlcrJs^iZeI{ik>srwo7*2xqC)lm;e;2fPczJW@(yE5lT}@A6gM^N-e1jVsNtjRI0RBAl2~I+;g(8HhdOj|}gH^hXA>Gpg+S;WI z^3otoUEL+^je1QXn6S%;-~sR=4!6K^mu$ZO^3&~iU;k&>7`N-Y4IEZAWkeDU;4*|Z zEQKpkr|`C`(2WvS&~0RC{r>s2CLtAnr?HqFU?{VM+C+gd*W4rI+06zciR=S))^Zfr zQ7ht}v?JSFG6>iVpJY!|)E$fx&k)@O0>i|Qz=5DGolZ`z%Enw&B!824xxw_M;A_8!Dht*1*Kpr5HCjz3syxiOKY%2`)W1Vled8cP^?Gs z+jw&K_}D;?$+M~HbAEN-m-L~bS+gc=gH$#Op2RD7ZGtp0l`|hTEK@NWMY!x zx^kWYZ>;VMfg5YFcoqj;g$}oW`uO8F-+lWn3?pB` zG1y?pxv_c#Z?E)F(+b(>VUhnK%_v1#DvMX9y;~E6x0aDOv>uwcB-4j;X+3_|BOxgI9BKN=H|L+Q8V)QRjNw(4 zn9*I;N^Sva5I5_g-{Y696SCTLtwyN>ouYcmMZhaattovJ5mD}~OJ4NssDjcYRdpIx zMZkUS!3gLZOjo3ypp8^5!s|Lfm;3A2$HwyY%JTt}65R+3oN-(0i$i16abt(Iah?r` z7G5h~l$sN}B&QGPsLP*Iq*wU@H8z@}XK7QGaXY$&>K6Kl2WV6%{%lFxaqh0siDn_dW^e-lROAVgM86h;F}@Y zpX^VI2YTbZ&Mw1bYzAoN5@rE5s<(0_F4qB+$aX7(8VXJCj%jN3pu)$kCKoKkyT+`j z&x@fQyIP0$%GC)e95er}ivQ4Ih%E`=Y7>?M30&0iK2M{WCjj63fEe+z*;T_UYa~IZ zgW+tG>bJsmw$(Bc;;XW)_z8C+OYbKvW@UZMVSqtezda*2fqA*I8k1hHNPa?>9x1C^ z$SY1$6aO0oXh#_+na~-r>nzyOMMR6h_y~<_acw9>7j{ElQo?}_i{F8k0TT80P?3ku z)%TDq<+RgOvMCXQQh0s3T)afFiUBSvFf&Vhq@kY`NqXQ^Rn3W+mO-i5JvMj}RF` zH;34JxVvaC+}i*;UfW+@U>t)Jy1u_yn$O8IKsvFDrfXW?IG7-|>U4#Ka=XAtGZaB1 zG>9B+ZxdGv0;HEZdbd_Jj{Kv~=AZzPRD%&CF^R1OZ;n!EUm~Q%Xl@9A@p~g$M6O7lA5J2>2q)l zi}p4mnUxgclr2A7SGDNDpcY*eRcX^^a3ZhX;-7x_{;QAQegA&(^$#C@`q;?)yp(*G1*&N*}kxxK8I3%#x~I%L)Uo;PBLpK@T&b57?bvH9RP&1}ncl-;DJ$W_=gcvhx>W zm-8mUbOWksQ=0ZUp%VU%m~M17 z#X@OW#6p>aDi^u)MWcao;EcTWu^_He4fZ|yg~VlYCV%_QH}v{cs`?{K=<=femW5jI zquJcvIc<`9fKg4D43({<)SQ}`-j?1Lf@QBUEAc3FjYv(pjw>=Vw?;AOmykd@l{hAS z$fG#;mW($nCcB!XiTEJx92HFnnfGC-S&C8DR*ciaZ6^J0*ch9HkDGAe1%Zpn3 z>BSx2y6U1A5)~iRLRGdZ3Nu76G_0khWL=2R`2)afEBMV3D1L4K8ggeXWG}tRNCe1T zp-I+Z)KOSd&-nHTL+~*mDo=G)6+X5-uh@fY&*v%)JoJ7}9&cghu?2JQWCSM1#Xn}v z%Qb<5yV440)XrCAXMzZc092clQ1gg0U+%1u@QE`#MK!HBIg2EwN5o?@8FR{X-*pKG zhSq$z4jAU=khP2AXmkK4{p>!>5z)uvooa5JA5ac&R8zwY2O`Q-3Kia1w7C#0S2p$l zHMnxg0>XKsilj3)B)>|~ba$D#$x(@}W^k;!Lt@)~Yy@?26;xsVDOexEqlx?w3Qldi=l!h>G>8v+Tfo>jX6_6=DAr z+}j>M&E%j_t_2I#G#I^$ETHs*&vU+AYmrENF1JD(T5b#}?26+XwxUy3`1|P>}tyi~eb~AiESd7x()wj># zhOFean`d6@pFjNc-5)=^|7L+Yb=dH?hYgqLz1>IQ&7!zq;xz`HkrA*}Emp;Au6Ez& zkMx%mscvlb9d-JKuygT6*JSq;q76K2^K-~{$tet!Zqip3kDP*ugMSwIbC=&3530hl zK<4c7?&@x+iDUX7ZJ%BI@XdRlzC5EVpV8jo3u)_oyGn{CuHPRjiql3l749NYoW|Yn zzdnMOiFLVDri<>5S}j$9_zBwQuqVf4!8^q$QDNu>{MWEPaAIhgrnq%pouB^BBWpM2 za-Px|yES3>K4>q#LvTh06hwl^VYZ|42L`CY(Z2Yjw=D)(e{k{!lkx?lPVbp^3#2Nf z1(KX(%%E$?a#2%!>p{YD`un125W2=ZJwo;~)hHS>Tl6~V)#~`~e%s`)Jexw~L!TE>O-96| zK?}#46@fWLR>P_0{!oDIQ#cZ3#7$Bi2^Rp~P zz4QpH^hDs!^y@{UFJ=xaq(q2e;<;Y57rt>qlX|*2>Gm3#y}23U)dC+C^QT=^IS0^o zuaeCU39ryRQXAwaNYmv@&!ky`4a`(?sX&qttlqG@tni#<49LBD zVOJzwX|nV`R!US45{KVFOkDP-tc9?C_RHs>q~7T{3tmQ z@-8Y_j~TPJ$Llj-XchoEg6+DBCr>v0WRS~%t__oV;G?#mPu%v1@kg+ao&^exNf$Av z&!#fz%`X+#H*yV1x~Ds4dP`k~z|XikgS1JEb&UX&=tQ>G!IESf{t&&Rz0k$ zx^Q47tO4!VrxKQwU}n+$4hS4?P-p3$-ynhg{^21DK=^6-0ff)A`W>7}_;Mf3#@eFR zwEF~Xo9Gmel@vZYj;2#dXq|uedmG%RLOs4K1M|By^E=w6Nq5~PM}f;zduh%rcQ@_O zT9DBI-zfZx1Sy};^2?uIm|Qts?Jc^ivNT~$5;gjrFbA@{vVVkvQeb}}Skn#{dx)G-GJB?_2brqYOmK^(bZmWVz znZvYjXXHz877g_8?>wWV27yTm) z5X+(MxPq0qI(N2XG&ALAgqMvPG6?-@T}P<~Np$d~>w zBkCnp;E4m3)$_J!I?IfsBWdllUkUUN@L~*kcP|&E&p(v1LOvsGZGru^gTPoHwW1lx&t{Moj*y2c|KK+58{luu{;@4{D?fjLFarD zn0-i^-Z~XCZ#$EeG2(%OpMot1UkEM`$I7 zaItLg*-VuNXz6x+Z~|i!Fej5@ntQG}s-E+vrpyu9CwVTjLNj=-@Y0z9{;rP4c{x$< zHK4^4B8hO&=z*b0n$6}q09x~s+C=P9(Ps^B8TI733P;}K`+I)a#1O}=ZEg%tZ!g%i z#b9UhwHK?ADJIIpuFv0Yd92wbj$fsN1DE^vGoE1)UD@GmCTvmcU`5 zwbS%H9^42Do33cv#!-n9^*A?DOEwYPLt_cq7B&=1yMB(i(4VcY%kK=0^WniQCYi%^ z25Xi}FQWNx$>HY5FR1y$jY%ShjZCFZ6D>anD?0X*wC8avT_xjQ7f6JB-7cHgsE?`$ z3A||5&lEjFm~P2I$o9#!Rnl%M@M8yMddF_g42azmeQb_?>n}Zv7SxEIK&h_Zj`C7z zzisc7+caEYcj<-J&2pz24$uqzjODfu66PzJw<1zQ=Q-JB*|pRm%%RCR|yvRXi{Bs!F8KXN_^MUiVfON~g5WgonpBhe|G3q_swlaaXIQ zEFvkf6308osjHBxLdRPYGr|9q59zMFcan`+@tWADhp%z3KRWpqr@~P@yo^yLF%o*D zt2g40XqGo_`YPSsoD?IEI(}nw+B{h7PQYR}=$&|54qwmNW`j3r@TzEP z5co_N&&1gg{(!)fM6vH68Sb2%6%3M6$)wviS?DGWLgz;v*H!tad?aHDwn!7v=SQhY z+Ki+7yX!@J;V%;>)knXB9EMQKuFsE4LI6l_BB}u3^+kCc{)NPULVh(ef4eVXSuBN= zk>jaPy8SwfU5!r8oUn1Ucb2`~YFh-Z^a?&1dE{b(D52 zOi7g$knFMECV)zoH$2RAcqLjx(f#^0ghI^?TAmr;)v&%gEMqn=7kqAwyo=MaUe0dk zd?m;u(xPe8t^UP*?#h~ly@LpDYO_&C8ESHgBSVPRr9Lk6i?eHyXS}!@j@oZ<-U5@| zliN$?4pK?s8>to`S&hpr7B?x@PVbAUZcTQQ zgMk1q30sxON(7^!(uqjYm@pY(`?2Y*T%J^eO2LgR|AI7mtx_9BuP~7Uv66b5;)6FX zr>ZhqhhFcczg8m25#gkf)_VK$pnmsC+L?=&4_Sh2Qf<`jojujCfl{f%P#t6_)|dgF z2;{_bDJ9X6dCSj|W2L?Rk2vwYe2y$)>LzX>JouE{L*xyi4VU>h%iRjoDGv3Wezo8^ zarL;QlS-l5o2cuc(JxT~rZD;6oWC_y?OFog%oHL6G{ROBd#C7LD}r_RHJdOtZrMlJ zm}$n@&+zT?RAVndPBWAd=5V)|<5GZW3&+iMe|AIq2`W_(-z|5l6#emnooi<5aYnLU zTV3#w)W*GDaY3rWoz6iDFwQ9i?rJZECgfmCB$-6~Fq`ftK za~fehQ*{r>9pIgy3b-d!uUfvcPa@@l@EfzneJRy$3S_tVP;YNnJ8N;SJvvO!^LBtg z#NM3I6>zfKD z8Zn#*bqU6m<6Q0B-7Ub=A-MIvvVlC3al)zf2SDca)@Vw3gL)}@hB)q zqGcji)_7=_|Eh(e*bE%>2Bk!D{F834WFs8GtEQBMe!L_u?*%K`HB|&fNQE;l@DKz$ zeV^A|Ry#+v75qm2Qf2og8HLqu0vF&2zbScl$m*_?-3caza~&>!|F`z;RH!D&%Da&y zd{WdLc|MC6H>9jdnRI9{S}1n6hs|!Gq{HeF>*=OySx*k)mtwWAL|;cD2M63A`V@Z7xge_zkT` z!!sxR{^x(dn^#G*Q~p$Zpgl^8=xMKhaq9bL(kNXcY;La5H40jw7QweE)xxCOYS-lz z*6|cr-CP`;P7uVX(>G`(9gcU4XxndL*X6-LtEGsPp330@m(8)M!Z_-QTer^i^Qm+k z#Tk^pZ(k}8UKSRWc-dwqSPXnE(~Q(MZGWI?(p!Y>pD8S!>DcR=_%|dQ36H1ZP3A!P zWr#cJieyzoB4Wrnh}guz(e=iVwxLWk7o&c!K|!e4>Y*PcSyV)I3bmZ}E(Fat&h$=H z%Ox387rx{VZV=Uu)c-PyDprPotTh=Q2iLV&7LFR|jdH@-^L)r|Aird0lvzZh3} z7JE4}BE=f*RdiGE7m8bT=(+%NUL0*q3?elm(bMNwC-}L@ef0Jep78YQ-05mF-w;SI zkY-IlBqvjO#tfq|6hXgk3e)yrr$XOno|iH4g_1LeksqU6RTo0EKJPNJ0lcX!fWKV~ z;KNkI0=E+kbFX&$;!}FL6#b3hG7vfw6_+ccQ@^jXOO4L?%m8ofaKr?D$73Fi9h_D` zX@Z|4oYL;+$8y$3u_DTsCve3v+;wMnwnT19ln&aKS^_|vS2;ebt;{CHlBnY&x6nZJ zHmEq|Smr65>+&2jHYW;vDi#|X5{VawNHzQ`*1H$@qYRO1*_3(i1fHmEJqq-0h4+^f zWt5=$rR~1KKI^NK@&VHz_8!f4U86&Y7V0GF^BHGSm)=t?qK_PYj#pK|;0v=H?mIbu z;kAW(G~O~Q1^Q=IbwY}5R~}u%hOG-nFd=#@N5W5s|ELu)nzp|R_~sUm3X_5a~gh^LT$$lB#KyDL97)EIha7^VVh#Jmon zHss2?#AX%3=;DjQ6)5!=m30$D^2!et<5`0FEJC3yP_mYCh~(K&Nsz2t0svH8Ajj7$ zQty>aDU#b+bMBc7LOYyWQ{=dL}LVIB05j4ei7x*SZ^#BCS6Q zqs|5m1;b399av%Vdm9e%bA*lxkq4@3#&`s~Ux)m5(e&~J%!Z0vJr>7xOje5&@thtp z$Xw_m(Nm|(pKF4fKg6X_S+h7V{p?4bp1tf4yaMC`Y8;L4`#cU-Yc1FePU~nTXhvxxAe@V-E&{D}3V%SC zfl;rBw7D0EGQ@V8ICY-BC-9l6b}HM(&u-2hY=MRs`IPNtMeJ4`5jHT#3rQpF*)rdls{(-%()bsi`OEfNMUD~fYH(w360-2D*WjF~DjV%4;9fAjow^Sd4W zmvzbPWGK1M4kX&iL~Zs+}(4dDP|MQk~kDCF7i%-(H|0AyLxcnq)aAGdRUf4Nb<}gU1a)`z?q}dp#o& z9w&LYzObP@e|r*3J_iS?G)o zramf}qpt0Bh&(07S?7;G{`~dFvk%{WJpS>Ae|-DhH}8K~|M214@BV1N6%8Ra_Q63W z^4Et_ey(3v1)##NZg3{Oz#dFhr)#{SZ}*9BnY2-RvQ@j{_%e9HSP>g7UN5p z)LiXZ!)diI$9%#B2x6Mf3Scm%yG+}EPzsl$lqp_xS3ja|tZq8r9N>N%tcNe^)>_vi zOC;JiZFO_)G2Mx36SNp+X1#1`vXGz`Tq<{sKuo{Zfi2k&u}O@&(Lw+c+p2h6!B#5%AE^ zePpa-Vix+3DXWy7{t}eoOkOH+dDAccntYD@b{vY1t}DkqG{I?S;NJ|2OON2ekGpTL zjZ*3#Y8$=)x& z*yLum2vxWhOn?PZ)#qoVqaI!RPQkWa(^KI{y{Z?+^AR8P!dqnq5)WmHm6t&qng&C&AwR67$mC z%U*=ZFm=R=tO)??W5=UWqhFcYjy8P)h9_Ke($S~$sK}gRwatkYlI^;`3%hd5j*q&A zl`XNpZH`AlY2-7OPgh~ZL|zNai0=6d7e?H-(eB; zfAR%+n#Cq6($)^V&dQ=+MxfJX@21EGPN)#>doonPyXj#ip+G@SvksO+r&o|kwAY+1GCGkjbrz#!KzoAfmo6{~Ro! z#Ytwy0Q0c(o*rZ0y<&&4w+IL%y+%g)3X>g39-F+q8!RmR>GTObmpvZjb@P_hS&3LW zr*MJUL=z8<@+0_mLxdDSbG&!yM~^hqZEEW+2~SnN7}_E4oVik97}@RM8c5ID=!4e; z!VV}emG#)WB~XsOW7O&C^X^7@4nd2CR(rmDj{4l^*7|MROxC!XxB6@5t<#taZ&F(S z_~Q>ht|7>azqKT++r!u*hryr|rt>eR0W?*Z6k+AS3DXo?fe@o?1B)e`ys6%L4G&M| z-ooGyh~WrtB@+gjW3|R$7THMD-fD77cOgET6VAgGrUn)$JOjt##*4kN&p8TvuMl?< zKf(bze>+(`h&)~_9%Q81(6mKTh&N&H#o zQ;+G+r{B7dFRynbDgCR+CP7^xe{J%vO;loO!9|x%Q2am2w6o(Y_G3`YMBsbuZuowT z^Z}}%8Ic760dPU<_2FO;(}fnvvp^pYAvz{g+AW&D@sZFx$0NKk1|0B;@>{OP*%?Ni zzQH70XZM|XD#MP9zh)AEd70sHv%k1jfQnVRi(>3TLUl1dtCbGd7bMnnHnsKU>e{EL zZTs^b`_ZI1s8y}As*r5cE1fIBp6oCZke^>9XC#kMv$CUJf1}&9 zoM$(YLPe?%U3j%6Dy=tr+k0{#HNV}LN;KdkKDr4*F8VdePcl=JR2Dpf4i>o*j85vF zs2{jpzCfnP-f<60a(DBlR7*NDp(~_%zjd-iAlF))s@PhX=muJGnS)_D5a?%8&k?uKQ^Y6tbS}vDPR5A znCCT?q|6Xo$!N|mo-jrhl#$sY{N7;Rhx`B-4hu{IRM@u*{!J3lnkB~Ge96Zbqecq9 z>02o$FY8P=oObvUX7Fhx|2{TKng5*Hm>n8Q`3 zj2*7)ImJadcqNchv6c?;2lnfgAs6=m=d_6+sn&yyxrmnPJYcq%_NQOq?UiT{Xe{lU zdFgrJTTPtai^X63!(a3knt%>iZloGdB_d{vrJsGgzC1`qB`*9t%?18Q$Uco!`U2>P zGKfe_(~sTc6T~LO0VlfhWc{233H_xXsV3>-$OPOg2%3(H8J(95_k_b6Qby7W?@)@E z%9X>hV*^hytY690So81zK0z1?Tef!{#M$=>UKZ1b?v zVpWB(czQkz{n?#d)k{( zZ9eUR41Dqv8`A#BNAtvnc0WF_A>fY>eEFo+;nlBjE{!16XJgpmJO8a<=V?p$s{rl) zQ`p&g>T*Br!`YYrF<_^JFIOB?7*0WF!C4$F%7i@xWqjzr6_h>gL?@IzZD;<+fU>83 z`2R3a_8{ya7yVno&eOo*e?koPWY~Gy3jKFW-Cq6wu=7-+^E z+rK*E`JarmJQ+Pad5fRSCI2esH%)|tClIQK<-!W{p-rh2>>&{W@R|8O9CV_Dsa!fH zBP_;s>gUwxI>ucRU)n=fm)EJ#uz7?_D>Tx6jBH&MlX9k!x#e0p7Yar?0YPRK1KHB9`XD{#B%1xgxDdRglCgS+&#k*AJJC3m*|D zgYxF1Y$WZaKM=*(wX6nM_(G+IZsfSc>1^J~!T7vXM0X9xqUlyRuwa)Uxlmro#9uX* z2j}~juS;r;XG^)R>c-GNq0vf?9SzY!?UA`NdKJ~a(<}bSZxi0^Rq@9xZA3w_a?C`| zaZ5`TNP3kli&sg}MtZIzkEa<^G^!oGY|!&GpIJh|5?H;e%3p!iDRnfgYc>paEEQ^+ z@i->lU#XFme1uwhUV4{}YLrDUFoKmru<_e!&%y7y*oox7cB!Z+Vt@Qsa60Lvu~B(B z?5RoYG|_mW2b3|R(IEO#THRf%yb>n}Nyrjg{5MG^cG+%|gMLEGOECBW>MTdJ__qPu zIjZH-iXY|Cnxp{)$}`cLx%%tR7hf;_@-G*6=jW}D1qP*}A&diHL>m4V^cnakYfu)5 z-su9-Xth~}SbA~rvnIW$+-L%a*0O)faXD%tm@;0dFyak0Lh=>mGQQU8aiK&P&NFiK zuc5NZ1?fPBpgH>!-ki!nfHL24>`ci=?l%jUjKf*v)XpMD2X`lO=F-=Z^dn4+gkRhc z`T(})l)oAd`Cd8Xzzz8#kIKHpmFL>vt`9f&2Ul0OJFPOZw0UeoL!2`7>@dj@a4|q+()sf)7nZ=~f#(6KZ;xh*3L08^UojT)Q zW#ZBWCxf5GrEze^dk%L6;AQB6m#FRZ68Q*+v3mD14s^Nl%Y0CksP^W~ZlCw5>+!SX zcY1t%sF>Nq^e0H0dEeu~x?P9?j%(K+SuXtA262_#1Ts_+NyWaa4mXKey8LnFy4gd0 z@Zq0n)HuxDOE_rgM6-3%&ZLY-N*yD&$1T5tIq2;z%5{#-VX$n?)i9Z(#N4Qu{Qo6l z@{?)8AWZVO%ps5^8g}iP5%j`-7mYnLt}hiepE--qrmn38mn)Rc$(s7pUN$H@V@qSk zMn|gA5fNf^EuINaS0m7jX)26B@)zcRj5V;T{^ZqRskTzC3<2`UBtYhZFvi0OTB%oE zKVio=;rp+CUqwIrA|J;f>2gJxsoY$eeTV(s`6y*Fuh=KSyYKT_#0PYVg~qOujm%Ty z<63mq_4}d0Ik*hk;r^EcVEJXm4T@|{qifGUXj!#`I%}S%vHy2E7B>B{ z^BiW-TW0fk_4hu|L&NsfLF_2#=QN5le$iE5^Mu<@KUJGtQ^S&#y}R^BafYr*6hH4m z2o>#!CGZ#iSBH1|=XnMo&o^gs8m@r_;X$k+68&)aR6~)^EXI5=BM_@^LpHMz53jW$ zZWb;>S?txKgs=lT=d>yeO^DCvJ+A#7aC_%eCC117Ox{r2#qKKZOTVxeVwM)Q+^`Vg zNw{utf}cGj`kesWjC3f}n>&8#Q=Gsl7-QhQg~wMdNVa};tnfiyk3X?r}g zAmahQE{+%J?@ePN)D8j{xs?Umqp)EsUq##@FHX)fhU@>((DcX0WfBS~YJrB5MF9*o zJa%ZrIn;0+!G%q=^T3@j$mWuVW86^G0mC%be=pq48~gu+IEnCTP~z{Kj@S$Oy3SlQ zHn4R`nFe*v4=`J3H;yaS5aMCDb}P3_dat}YqUPbz@o^2@O&8-yx2GYVBjOhi-#u)c zKXYf!Tlu9fl_7RJc=D`}F?MrVMPDLV@p((}TVf54@A?!Rn9D?xM^(GTa__&@C9Pgz zYr`+5nBdxGgz&j${Nd-C$yAbOu%rpj!b+z8!&<4O4(fEbQ@E`^#P?~ ze%oqx2Z{P^(IXq&0 zRHlRUv8KH*_N)fuC>`A2;C|~5cbdvUJhA_<$2JFsQ~F}M8bOwrc*I4>o!gUN>I7PtaB`)y_3kyIm%HRqW>Ap3 znSwE(W_Q=uSDRa@Im-IOjR}Bzd27fx#0N&1I)U162Pr=IYT;QtjM%!=Iu6ercNIAn z#_;llXH`iwdASs0hi=13B8q}+uOae*Z%c;kxdFbDim)4;Z6QRI*e>Z__I6jx!fWZ7 zKme&pMJ0;@EP%&+8PZ#y!&ygO3%?Q?{Yx?Z$ zmgu@`P(G#XrQ-IM5|buZ*CSvrrP-p@YlT?@E>_D(dD7&bGh{8R53 z+>4)j$6(xf+8w*wU;B=izxq2~amR4l(@mabUOW>Zf(0n`Vtrxb&92srPRb)D=TrXq zzBtC#$v%dY<_7@K?Dq(JG?;AK>5A0OEfe@6php-WKdW`BxeSLrD@UAk@#yyY1`WOB zS=^j)ioV<@pSZn*Q~9n)4OSvTAC5@|U;L=C6-1zAi6)pGVu%%DEOn69|M<EeLJ;Iy1&ls3SqNshyq?4g+y^;OdHX>@gK+}?{hCZ$mqx@@ zACsYGP1sr0S7U48St4#>p(0W)a;-Ls#c8i+Kca{gLpR35MnXw6?Pr0}74`^Bj%|FC zZokRPOvS@e`0(Xo(&7&`<+R|xe~e-&gS_{Tk)b1rB#ptUT!^ZWZ1iF>0a)6m)2|PL zR>N%1n7YDdFV=U7gT{fl8sRmi;v5l9Cev&)S67!V%A@F^8}x@Jo#n!xP&h25h+8U6 zRF}D8-0SJpZGI^=yf@ju=wuVwT`!9=2y#2ZAvrnG#u=Ms*cwIh%(hbPZU_Zb35JuX zT^<-MVLn4nBDOpScpkEmm1xB<-&6gWa7CC2&09$j&&cYT_%WZ>^~C2WZLQd^2#?|v zUyEWWU##-@`-gob2fL3QwtuFim{UDsTj77Ye6dGZUVXslpZ~jOLVDLfzW?d#Tj9$8 zmA=WN{6-%k_;@JEi%~$i z^7C_|;TT&hJ1&7rQxWE3P~dyh@uIe%$uaN`npWh>X}%h0J$bnaw~IW+$7kno1d>X{ zv#NT*Lw%na7pQo)ias5obd_&}@I%w~+37}5&cDN>^ZhT64k-Y6i`7u}jrxu{h8OQ| z5p^&XKQy=q7D9qT9{O8rMs5iKXsl@oa%+Guf4U z`F}u5{TES_r$8wswI)o;z>NCPAv^ALE$-mYkYnDRRvt;@Rc~P}k2a*X){|}N-QI#( zvFTQ2vJQ`WHB>ts-G%iErx=67ea=UD6ddKb|IIhxp`XM+fAjv^#klS8{kLVCiMDC0 zgW)`r$e=3eSF6emloaNbA1Dpp2|`O%o5P3ECovmTnF{cCJCDj(9vJR-+Z|_SIdF(X za<*hCSI$^lxy?lutdF-5S?5?Y;avT$0$05%!q)!X?Um7I-dhE&$w+0s2*;*R4ppAs z2=4pj(9Jt5m5rNv^)$!jx6Gy$TGXfi(_c-fksWKgmQJPhB!>Y#w> znSg1(4@}yQWSKnJU=8nY8u$7Z;R;bAU<8S-yE3@=O)_+H{tinCcFO8iE?VVHcSS6+ zMYJ&vp>5FNS}|88xLu|UH(DGO9IYmTRba= zxR^_j3a}Mq{Zvg9-D;DrX!*hlW^vJbk8P*`emY<{G#EFK7cuns$Z!nvF!k+TUQ<=Y z1B(BbRcYMdQK4ZxRb{F}l8(W~t&h(raD1_#Bo+HCg6ge9IZOf~P&2!AF0TXFj;Lt_ zNbDcZW&kKXUPWLvTn%27y*BzZP3W`3?Q|G?c7UJQxQvjZdeL9{>pHdVE^6ISWSW{N zXf+kRh7QG&sz&L=q@dkwIvbG4C|s zr=iM)`@JHS#hBqNg4a-$vF*{(+m~M~>R{IVL4IU(ml-)KXC9(TJR-T(eXGT_hIp{i zJ5)8zk_~TqbElmOMplUI%j=s{szdg;OyiqQ-w?ZCL&~_0`$MUfas1PG1BA;HprQ@! z5TPiwf=yT2rf7#cDB2xo&TB!8&iEi1QqbSacmSs)uEW2_pZ3r&KSXdYF2?Fm6gvH~ zjC<=sYSr?%+?oRetvsry4ckNGEXj8)Nj(8NR6^~-tW=(a1aV_F#l?L4 z7e5}8T>Li%^9L-N-wK7pW?ul|wOza$8LH{D53o6=YiEM z43)hdzH9O+sF)6@1mglgN91>V;v4F1o_c&{BIHPD@rg~B z4aSj9x3|V~UNHr_aEQe2! z8=44Oph=9LgKKjj;%P`o7F_AJrdo}ZA=24p5fh}}97th% zXt1?{Jt5U(n@)dTBLfu$^{!OabV9RvC$vTP;R8Y$LHqsM%O2F(G(}d9aTB;lx5hz0 zVXXpv6_@pQ=TI*nsPQRd%VWp)zb7UzT(`b~W6cdK&T}RS_=599p2;!tIn)s}S7f zU^BltJv&zF;NqkT^nff~hX~WbFwSr^YQVEnHiO}g&ndq0;ir#ZefawQ?|v^!T=A@u zxXwFVY!2@4^Tl7|IHoLL1GbS@Vzo^)&tw*%r_LFa*>&#%hmbguyUNf?JkHN4fDVwz zftvq`ZV27q}uf{%|}J$dBrlSl47dF1mak9_gukuRS-^3{_^e(~gy%O<}3@s%f! zNbzlHc6W9+3)kMk!R*Mw$A5Zc;p{&>vasl%9tqE0um)uO7$xXitPLXq6< zAn6iuhjJuOQnupkP^uL*BYdk)TJb2zqBDeU)~x75mq+)61MCZO^U)om6{69!mK=14 z7o>iik58HOB_rklf-hB)jaMQaN~@ea22vv`>lYKMQT(asJ;GK#_;kg!C)06lk*W^u z#=1dDB7LD0e@um{8BF>^rJ`A8ks2X6$}JCmXoO9UJ?KWAUSJV4VQgzvQR9sEf70!n z#!S*AAN}6q(?h&Sd>pP6kz4e|qq#-t^}E?)Wsy@$K)Mu9mF=gyJnf6{cgFll1Mm2Jl^lW6|681*fi1B%Cy=FRu%e` z5P}Bd)8O;{(4gGcyHd5wabD3 zS(S+AnV(>%WG{9Ri&p(qwcJCOC#WWXq?$Olsr22Ppu9`5LhM=jJG;i1XBnO}14gxjK)-x$na}|d zgmE4=^__g_?{&4Ddu75O655Y3&LFvIM~W_2GKFpKsG#oGq)otJU?`@&%ohWSQv&Mz;&{r20>N@bCq?csO-L`^S03i{DWwR<(P2thp;vY{LtoiwHU4dgi!$@c^mJ~MH z>;I@4jdJ@N0jf)I!7gZ<6t%$%u{11(pMD+o$jdu89uNKAyjytv(A6<`I@vCC~G|tB49!dLv{$$oMJ-~-z(}9 z2Xa7zN@s$GRLP`4gE$R-_KU(CLSwU{pmS8DJKeuQoqKsjn3|wHc%zZycaoxIQGCu0 z^5@$XnB_tdsVW7=5$4i67CRWdB~HJMpP$_?vNi~8=Js~AvsST{X_FVGawvNfXP)2> z#AYim3uoTR^>M%^4iw}irgBKG-#1q*jtT}Ju?Nw3?ef5M-BcQ;ZQ?>qG$=rEI3u1#*!+S>Cl2E^3L&%HzB{ju9^^ksJ!2P1y6!uKHDjyOtl0WcPn9w7NZLnfVLJj$3~L0+8z=`ql(o@Rng*15rk zAUuan1d_(jN5BiJ;N4M$^?W2#TxvCNP{ zVDtV-UrNv=(^W}>Q?I@Ig;5mK+ql03tjgbJv)?Ar@uhDp)Bp_n4p)gv9rD^^d=9b_ zhibuP{(>kAx2x4z6;c4Uo{)mv-wG}xfy|yHMd9+$pynXWSwav>j`lBZ#*Q2hGvM_G zKUllSKkzleP59Sq8%Tt}dfq0u2R96|e|u4#^HR0cb@_<_PeD0ln|5$1{=&aH2p$RQ zNkQ;sTpI+Rldxm6zVD0KsE2TTc0Zu0W1!`*CGP4@p;a(5Rn-mdYOXpZ`y~z?bH&Mc z+A7?sSs6|)M_Pm=O?9Mq!0Of?s!4a*{q6elkR9Sbp*<*93CZcH=M?sl+8=P9HhOe| z#yAQB?pa2(B1Vm?FXFBo$RG{X@ErcAl~`^qo2;bQ_hAhxk*7_&KO`Ki&o`pd754dk-Llal}rkjxUC(df$Moj=9P(<(5iAyJj}-U@N@pArEQ`oiBDw!Ioe5Y z`P@PsYrc@yC2Z2^FSlC{;<}7jRkfDHw(pDKfJyba0;}C`q$TkZOq;!2MuQTr@rZE3 z$HlX*DGP>VQk^oeR)!4l*P3ho1bKub;1iN|Qs<_{PJbqD2; zhUfBVs-+KQUg@m6pJ7~4@A>+GBCRNJ`o^o9tQ=wWP|b=|^rUl@KWDNd;nOkMUba(v z>xnO`P633Lj83tR4VM^6X6|r6(_mEj8)g3?OLiUI-|URN)D zG=zotN21E4adv*_Xk4VU0br^|FhTVs-EWB z(+JQL$7Y?i6yI3+56=`$bF+A$-A}&S=h0XDD+Rglq(Vx%vv?~Xf>Imtw!ic{wS^!I zrOnh5;I2D5BQpaGv7+lYa^yQWHp`vA{ZREOhn86Io*_3EQbidAA~Ab2hcX@aqq14m z*pQV=nlauV+852uDFQet;=A)fspB8_dfG+0Pz2x+K1Kbz$GyH~zzB%8)wL+O)2HS> z)2;G<=G2JFYbWfI{VsMTe|z=jwA0#}jLs1pn92c+tut5KR@}Ba4R`OhRrW|Fu*bzn z`#vuM6R_#WI?zJe9d9ia+S%%cGzUwZf;D=QQdUuW1CCnzG2QHDf{LBS-rEey{?iMsEjOWv)MW*V@_Vl*KFP4MW zc6ll)aOyk}r^lBU6mMtyc@D}$e_pKZDwK|SF+F&zdAwQ=ru+T2fT)z1JpZ{k@}?i~ zmk4r288#Ad!3CsmRwMAw_UEw)*cH*1Vyu*V#kgp;_IJN0mn4o&V>rFQYfuLcUELeG zIW{?UUrj1|m&({O{Xc+}arSe}-sQ1wI`WLAu6@1*8s$}Q^cT0#ORrH-qg*p~uOW}fNy5hxD*&>JLeu|n_ zGY`Bs)zE7eXUM%Sy#@{VFFW{Oa{ioON|L@{Pl@4L=*p#Nz;d?aa1{#SR*I<~?N;dP zYWzcPZ3%}c?}pO0sjI?$q1l7k{zs5ts&iiI(=7Xjjxq)u$AvzdZ%3VoYB|G6m_1P?IlFlam#sLFi+j-I?s51)qC@lsG7UOIinZ z3%>HH3K4`Yd$-iUuT+TmDZN6ZIZ1em4EXXODOKdlzbQzpUJfuMC)pbArw~YSlM8{D ztr)pblM&rH1w`9pyY#s=`js$?g5-)QMoy^z&f#_^OyLxR6*k2#rc-Pyn0%sa7TYbD z(kI;Mjjj>L`?>-!3*h8=kHJY_A@nYhL27~GUo4*wV|QfUg3m#|Y+;5@!P ze|uh>1bi_pZ7^$@RvbNkQPcbEW~U)C7^CnnI(h$btsuMiKjuNq=A&EZwmI53J=Oa3 z>>9}*-I21z1hKSPwP|NdtcviLkjV>|D)~@5zM_0fRM8NKN+%dWjTpH19uo5VA)dUx zhVW)tsYfNZu~)m3jXlF{6fZTO`N3dVIq$RtOuBP*8W%R?{o=*8yYo_KOoqFo{ev@G zrt=BdU(PPj2G&q+rU&UgfCKAOA!y+3f-nt-`ZhSAQ59H_OEm9N7mc!CdZCW49OjPG1 z>8P-ao3#Cg>9;Z8DMb>V4ksw~Bvp&+9#n2%1Vg62{Zmya9KvR|9m+WdEj>+xm zk>ylY7&Y$C_OeiQ+me(Coxol}m_?D&P^P(V;5>XY;JDWZCj?Ajz!NLne^fuzah&PjJq3 znH)!h>vJ5(GjKjUug|Ey_#L_c!h2%e^g+X0fB*Z2gL?2e1Sl8<4~!jDFiWHjZ8Vu= zncnS&<4*J2$~jTfNZvP~sXnhU=dj0WXb(D5R4^AM)yDD@IhEaSawKh~@3LPQO;P?q zo87qgDC$iR>wY=z=B`Itdj${PsXo+@1gm})UnYkRJuh&oJux0pZw~#QABc<_5ihcC zmy}5=R)OmQ|F5c7SEfn2J9PUAv2x?Ien{D!gMIXebN2DysgP9OAx=UK!UdMil?^Ny zCav3XIBx2Di|~{ysvb{ZLZ{QKIO+6rFOFU#f9gypA?LPUe$@)j3~D}6BZBabfus9U zhCS+ou16RLmrX{5XhQCk3dDy@$s5jZ@w_jxn5-Wb>YK&r`5JyPozdFwNBu=VG zY1UtIz$d2rBWzQV1gXE?5`syp#E{ImyLo1^7g%Pd6B4A)F=5<}o zqIosn;zD6ID6n&}g_f9+5^A6!4@Zn34~EhP-56zWi2I347sKH{a2p^&yE5ca7Ze~! zHqKkD%yThMFs6kFq)u)$sKi@l?_B*wiK!11TNGH^=ygtF`GN*KGi%B?GusQu2+M@B zL;~~?iEl{l4mUbq%uXRC!#<&>gMM4VEpE79g(}Pl)66+0v6UeYDwPU_RI3w+tvqO9eB*Y^6 z;S-1xZ72B=yui+DUkWR{rW{wfwrZ}_OLK(36SBHrdZs2pD;&*~Ax2<# z?5$M!i=-T|#>FCKFQkkMEp#annqm2s(Sbpr3rK8r?3j6RXmTUJafYsuq?M;~oNlTPY0 zy8z^>&X4hsPH{7zyeT!TC3#c$R%3ot>BmS2h2w#>L)*9D>Bsudt|$bMacgB_)&{dPEO8=Kq_a1;^ zlH0VEtSGG^y-4TXlY8l0FnzFp%dz-UvE&=pPQ?;z;ZUEVgx($;r9kDwY;r{{G{t<7 z*5sZnUfZBy7TLt-2f4E73{X32-go5yL3E_YQwb?%HU!);PY5)9 zarbV{e;3UJpfWa=e0qGvPZKO`y(>-Sk>sCiBBxXUR^icu!!Q^k|kUZdq0oTen$w67FJt z^56hdO%iwQb(AW3wi5qVM7~=U3GRiUuFH>6aYm@rnjA3w(Cmm03f2Ie0PCDCZ>Ck9 z%iB(}#MkT1)%8-lpdZ`KVGylnF8RYVoRzBR|C8sluGrMCq^Y{TNen3ZEZI5rep6XY zmCj7WGpl?-1c{aQI;^x;4?J`QU$nESq*xF@Gr&s~KwfoAI@VWrc$k3#8U>RXp3NPR zSD}7UE|scyW@y`QO$yK{FE6wLi~l5aQl8Z*rEm?Q!o^dc1r$8`td*Yi;G1^Q@Sp%& z-pS!PCvOYEWcGg*#bQ_q7lh|NYIP=0|DP1J&3oc9suS-YzCAvQu*JIeN%^LW&h{T3 zKs3h0gXpu-Ya6P4@QuhYx?`H#wZMWBdB(OUJOCUtON?yX0dOpBA>|WeOG8@k7q096E zu%ShG^uD`G$oAp0xSi)@M1rdFL5PCAQ%J-!jK~Bvz{YWgk=tqOT?w#ipfD;N= z#E2c}YEAjpi*MTNlL`KYfdp}8CTqV&ZxLF67KA}>kXflK67};)+|c@KFXD*nE%@A(xD55H&C0R2G%h>s)V~jeawQ)V$Mh(>PRrL9rQ)M7C(AXTk z*QAgN+fhh5+V64=1PSof6qR%ie*X5`_djkQEWQIm$s3M-$y?;m2s#5KqWBIEqi*1QO-7q46;GZFgln6rI#!aBU$16U|oH8b3q66;ZCoRo`$9P z_5hzY%7iJb>F~>LCwkr6#NEG0pNi(@f!`P2kJy)J- znv*M6j^->5vL)C4cM9rU8Wc>}AkRv96Qvcn^Mk|cy#`mP%R=}Bq!KIj7k7;7eQ%mY zC+mH@5CrJ$MK0!U7CT2M>u)c1S0{VF{8Fq{l&^Iplq$E}zPlsl0PAWg<&q6aPV{V8 z%sH`q+-0Gmo`{z+T!yM#CQDQVT^V2!(>$>Zu*DbEXWSO5M$d z$XBa*qrvN~>$1Qqk_-=YcIp0s(4ZWZyuiDUlv9IM>My-U1SQ<#9c=OkR{H-Gj|g*3ySP1`4e$GlAVz6r2g;x9FQ05b+HdU525|}E);wI zaGO5Y3U3b#8W3LNRK>9c!!&`%)}*AzRp1P}^^lTa{p{<{7hf;_@-G*6nw<~i(Z&9? z1)9X6$w@}9IwCTv0915aI=Vi)RL;_=S1A>1R9=J=BAY}V61(oK9npRCnN~U+vQdRb z#$A!7aK}bjr2g6(sc^FAsVh)e6#~dNnzj?+#R7&yZ_lui<`RVq%um7`pKBSDT zO+4jmSRo~e5ee}B4urB|wNU9Sq4)lS{)4a2PuWc~<3q#zE&fnUdR`82E)@^G9G#sK6_Hlggjt_R#up6H=93MYaa~WE zw2uZ<4rs{8~1Jh0+<`z1tMz^B(<2Q&?%$varH&?Ce^TS&dfj?9aFr!Z2 zFwisNUK@=T7~OIFEoyQ-NEAfOlm{(-EDpO>#@_MCR@b;!7R;ag*m z%WXJ`*waL?(T)nKWpwB&xVEON;Y`{Gy3AIPe@i`?)3cM)n!(m*bJE(G)M3imn6z!i zhkF+0+)FlW;L+D3eLA*}$Uxh64x$LPF{vRXeQ6u7U1X7=*MMOP&}cwJp^^q&U2fjt z|9!Pt4EMqi9@%eD0@2OKuRi|#)AsbM@4r3%nUul`ad&&vssg|j)N^il-Mqu{BvDuf zD1W*6$N)<`uA!y{BpTR5&r@0pz)=M#vZ78pl=r{It7M^4LZqC%bdtC4ta_}@*fQB= zbc_;k8ZDK4U%5R6@nYpVWL*O5=7mwN(XuUxweH;@M~({OQNXCY!yfNhSDshKr5~8o z)Um8sm3B)!JP|D-!qMcBn6rsHCYzl2*upprhiKaQnR2Ke-(6;9JDj@Sip8(+p4j}M zQ3e=8={~`h9DbqcNvX;&svnVr981x_p_a+%d0Kv1jl-bO0$`X(|0CRSGu9-F!6q@Z zmp~v^@I2J+=IVGtVy69`y_cUl-)M~#ucS*M`0I1@R!47l&F~OKR7!%Thk^vXvT+K} zfTQXdpuW#9Dy)K4ZVEdn+gMzfqpj>?6=g&fsD^iY1WHkDcBJCf&f+%_xD6B9B+2?L1Z|yh7vS zeDdsjhB;{IYFoxWnEL^KcE{IN0)Ht(Ri64yrUD7=U{bGv;kcA-$DgT*XdlJjm%NR;paBb-;>6S_HcqDLNh6Yp zZuaRrIGox-Mx6$834(Z$pjCs&q^=+%2nZn1W(=QSyqkqLTa8JhM&=cbKOMScy;Gig z=Kaz3U5j#t&V(oLAD>-4fQH9iMLHMTvfRp7ghdN+RaxF*t_64Zg(V4*%8pvZiPWV6 zZ)K~IcWPB6X121v&kH4Z6VAIjyBXuLuFHdM>4fTlwdDtzXwR{_2^3AJLR#9x`)#MF z#-vM?E*Js@H+Q>z)#!oErmI7$yW*wLHI{lVU1PyJwNd4*2Avamum(Qh7=9(GWV_%T zbZR2TdJ8y=r#PyAcymR3Hu>^`(zh)>d;vtlGJi(?B#yjT6aW=5AZ!v5dC7bawrvom zI6luwg~aSBEh+tI^A^2p!J%5%Y4?=+7Cq!4y0!R{=E}Xdz{AH*XS(>a{-@NlK_- z{d(_Jl}i_;@w{#I{;|_F*NQShT0PTkVI|6(zU;?Z9_~a3_cyoWL)vxukf!)@etvj$ zkMBoOdyt*#^UuQZNgiW(F3Gv9=sSXEm~{Jrp&4Kemit@&ot2xq6o^f?ZyL5-MtW9c zj9usS(J-|}sEJ?8<(5aN-KN{X-I0M^ERoh}l+tK1ynLp&AOM{@VLtucE10xvEIX_< zuAWUK9(M@08udHqeX+LK@D&=GVG`g6Mp{UFODkli!0TvC%&Mg|gT@;`9`1MlFLg{pbEjR@Uv z1=|!)2oVk8!XbRlLCj@LBtV%soX}Y4C_u<|Cxug^7K^Nhs z6#Aa&@?jJAyIZAj!l8dfy_pB+DI!yRoyEB@A%kTflhV;Ch7en8ZwJ19m=O941))4s z?TO#<_t(9XTTw{VdN#~SmN3P>*a>6wBD^G2_68HBImjrfb$Ot_!Be&^hI^xtFvx9+ z|B`q=!F}N`R-I0v?@26h9!h#?@t1$|@{5-*zSv#v?!9`k+Fd?>`TjS%JFm{I`?4Nf zgcJZ$P!_+|r!URGhl;#whipce9PWSMmP>%5m%*m}o==tV$mv*_qcqRU+0yn=9Tw9JaWKESsO)fCL+ycxnt3%f5)Yt#R=6U)MzLWvk1)QW zF`3J&+jN&2t_`t)aLu}zw-X9Nc@V5y+k(Bz+9x=s@aa+<2LOj&^<;ZOz+9!77(EL0 zJ2|GR%kpYSr5_}7(w!S7$-UshvvoD9H0TfIb&)E=3#+@%2!t{MeI<@p&E37{mHgYm z0D58gx<_@pf(pu0c+cp$C~WoIU-RG;KSzKl zrrbI&^sH~t3wP?Qg=vP9FQ{H(0?zR{Mb8VvR1QtU(aiQ&M4-%PnSBF2qOUxeHsPc) zs7o9BKt9US6(0Q|>6zWyUA?B_WAzi{kYIfXZj(waC3d~U=@YFXAsa-zUL($_mZgCW{^6hB|9JSr zKYv(cXLUg8yUlkU!8aV780zDvUlmpzuZc2-D(^}(u_oD2qL_rNio&~5iO=cBA5f3~ zYZ+=DQosK>bed2LLM^G z6?KaRsP)Ccjq}1t#!9f98DQ8nmdWIiS+zrH3}9V^CA6KK60x?pM}Z8P6ByZ3E2N=Z zfWPyWxWnxQP1K;UM@OUULqQHIf^+@9FmpDqntl4K?TZ{;wFw2`<5ggKTNI`xH%$hj z)Mk0fjN6z1PkMKh}#0GIcG$c_d(Se+E{r5!)QW=blG*uKYlfz&t z@|E$25RWz^ylTQ!H`4~<$RsN^RulaK3#*?>7ZE2x440VsP!pIfS}n#6fwL5Y$*^~l zJgPP!4}MHKzSNcb)&Ke3=DPed4yg`07itqxq{^oiGJxb@I6$+v4j$nOzU|Zi#YHX!IjQR&w z3Q0b^hV_G=R#LvAig{uEv!6y$SRC|^FB0Yp?TmbiTC15*lm^|*jqqwE4^!-6+tNr$~R?MjNT)kP_NMa-EqxinXeHA82bF40BOO&=_pHTErzX5<&tDT zs}D|mkLPeNJ0m+H5L zL0xh74=x3g`ZI@KIx!dvST<71OE13&#?n8nB%EpY*K0cA-^zc{Gqj#0<36u&QNIw- z%83gsQaERS@!5y(K2`>Qmo%2J0*P$IzL_x}Y^cjrKsowi&VtQ8q_Vs?7qlkq5*Yhy zt<@EY-`p4IObpfb_=6krgz{5NJY1D|`C#BeyH^^}-E|RFJdUc>8%xt-$EM?`H-R9X z<4|5aGL-czL#6b6WF*p283{+rz<54>?j+E0e3dydoN+#WULviA$^Df<##3z~tDvGh zlhOa)Il+a%u)`kS;$KbHreN&~nS)lc*IG-NQmteY*1bL$dqs1y+D$R1uT>Qq0#1%3}@Y9EY1!(9m+$(yz)-1+NEzi%V*Aae*#&-th)KnoNrHQU7HtZ)q3>4)na76`E)jP~W# zf+XGKGg571gpWA{GwGA&z(+p0LOzcT#3uvdp{AOgpj;r>x8rf%NMl-60X#esfpT*T zoBM>JLL~N2AnyhRI&Z(k2~!LLdeA1aZnxuNBC?JY=AlZ*OY;pV^OAKSuH5f+hvSi8Ot8?rNhCYHDI;MdxiF{QHn3k|4}qB^-%$(g9~4fr4B5xo zWze`E6PtyQm$_ApB8M)&OPnVsf4L$NpU}XPi<*C0F>H3-n;+!|6sQvZdZ@xh^m(}P zBECR_WR~1<(-8wjgbD2sss}>(J6gFUN9_RLI9k08++n828?+Z{8*4dA@{4X1o8|Nq z4yO4!Y{0LNEio&V9UrY_4TtB}aSymD9MAj!-tPg5&ca3MiYzyA z!r^9bPV@FyLl$Uu5RX7GKfSp-SFWIu=U_8|MuMLmTBgGJ)0qs0W~|W?A0O6;9+wrHP9 z`+Y%PCA>hCwbvLn3G(cK76fag>+uFt>dA)G8$lXUku13RgABL9oUD&|7YUp~r#XI8 z-|N@#`8+Wk&{&^W9P{19^AfuT$E4#y)gfGH_!a#0xYeH;2iEC1Hba0@;OD;2?;ZH> z&HY`&e{&U>FWew;n@Q}Li6NH-a}{(1ZEUgA?z~1Fi`hh@zAIH!YSdvTuQCcvx?nPm$R~`gQMEpiz#b2?)8(rY5T{ZZI0RVozwp_h0%y(ma)P`vs12q+5y}4Z1ENY_f#gqW=}IjZ zRig~PhCesMjpA!6;L1 zl$?InDcH>dJFynu2WS*|6v%K0JgROP=+ku29mIp5{|mbb)hmB2(J*I!cZ8up`Bk=u zS9cU=;Rw7Mhs!MxE$jeY0_513*$!QhZ}DzW|VPIxHo<1^g0dHA#%RsM0`k2 zC;ApJaaPfrIc{X+QYNZ|W;FH?<>%L}&mvD~FtFBDfIyf02<(owL`-eA`Log^0Mdd- zKxUPf%z4RzfEE7fhwr{w{PpJmrFN$;L+Fj_oBYVF3bf4&Z+!>!9tc8O9C(JZodehM zz=$EoB0!@>!>-|Tg9!rv+go`6?!R0&i7+^h?;1N5#Dz1IHqgq+js|(FVlI|8-V)g5 z-HhW{tfRj!7cF^0MAp#Ct{gEu39GL?etnTPLP>3|Oh3zxrdw=n_ZH}$fjvsp+{gx% z_26T+Ln6hXx1DNuR$p8)DRv`^pJ&%t;t{$R_E|lOkSedE#+=Zg-y`{0zLl8rnnUle zK`m3nKi$`aDh5uHAB&~Xq%A2;jymi53LRBVsiI)dUweJ6mO3*xEj0)ofZr*?O&H9Ib{L@!IzPH;<)B4q)KK}gU`)}TU_5IK93*^A`yuo+D z#)ndvB!Mcs{B5anzI`W4xDT`vV^y8A^{|F#+ZO;wsyf)jxOgTLMe+#|(MViK>x@7! zBUvZjY|mu$!<#ABCyzyE)0CdVp$s z{A_Ik3-SkYc3E;zzAjyy9eJ}ws_l;8Ft6fVDI0gsa-ps9td?SDI%dqyaiM>7W{~YY z>@tb~1x0E$7oz=Sy*jvP%+i8`gSDJ04#6BF%LDL(gb{I;i{gjFQpniGxjkB=NGo3J zIBL>lGhFe;X|B^{hI^~E&JWn4Hd6A9sx|u+_Z07}?!}M2h!hXM?meqNV{RxXo8;6_ z`kdWA<2Bd}fBkFL>yl#NiEE~}{K_@k`!hb~#h-D{%Rl3uF#rBK7$_#=;so}j9Yv!4 zwd+RCvOnV>P%rRTf&oVmG_-vFt5zXs4z6X7+~xCp3#W>!&h0(*zC>9z+z~pMl43`B z(hJ(ZTE7^sMyYqiNth_Z3pp1LXkRE)?0qfJ<5C+cSC>-t)mtLXRDNSi(n1j&DRj=S z{~zYwwaJa+N)zT!!8;!mtr^MF0Q$xqTN`Lxx?!RL2tap}-gpB+%Wau!nbK0!EGO3M z-@ecDoOAM0RRBqQH+B^^8q@dAiPCs)yral4i5sJVXeI9DcDGuH^hCE|{N&PKa5tJ{>gYQ$=+hd- zWt@T_t{>N%?YL$Q8h!dOE}Xv{`IUwc4pHbL@@9T{a$*a6wtrj?fBkC>M%B(#Nlp<& zfD;#mkT3Z0ehtG#qBI~k9i)cp0Y%+#W0p!+V@pXg%a^dMINdb{M*nOLJ?tN@VIozM zQnBNn4%Wri+#nX1P(ovm;blGog) zMYMe+yDg^Bt(9(y?KCITYEZC*ywbfzNZ))1(=lFza+PL<91NX3Fctdqp1{B_^tIez z{GaFrMpNdVP%s>>s1iaO|C~O91;Nr;g9U^adhg_G;~|vJnr%uk#*{G6-0NrJ1s_Z8 zy7>mFM~k2XJHvOF(iDc^aF&Z;cXOtqn1^M`iL{V0FLZu!*zpm_ihp)FeuaR*E#m4d zFhB|A=x}oiz&7vM?1Xc==X?vHm&*gSa0VfEIxoLv28CpvU{yb7u&9TizGyN{ma@_Z zuk6-WCv}_~tz2zXG;5gV70CsuTE{%d{M+QR#T$AB6D^HdCW{5X_oUx2K+_31IuIBK zE(0{1&yn)~;`IFdxwM^(rbj*P&FOyoC)7XR|NGN-?|*#vbD&I@j}DE}m(UbP@SiTt z1J-{F{=^3#;*Zsy9)U9nF8F?eC>=gAU+O_igi{g*K!qd+@tPWM=!d-7xN+Ohf zR11JBkpWBUE!6~3jOX~KB1>zR0zq_V+WV}Y+TaMei+pZmn`sxAm?1#*3ViXJFwKfy z*Z3m+kTy8QIHjc0G4#uSrIup-?&;_6cCUZ`!_$AkLt3}||6l$y@DzL|=m2F;{_8EFySIpx#h^op=- z?S%`hTtzNgN!5TrizJQc7XaAvl@?eO&)vrPCRhF7``D8bJ8=oh2C)A5c8yY|9eP?7 z4_BL=Cx32JSM#5m!(C+U9v+muw19nkKbk;e>d*0I?HFLm%W{@GH=S3R?~wS8Sd{TT zI9B>|t0c43^U`Uu%wtmwu~T)>Ar)k8I=b5y37XY^Ce$4{+j6q|Bu7o`J`) zX`-pR1|}s9LduT;RDc606o+eacXdk>&VZ|74@vV0FzAX1H|Lfd9BC>sV*82dQ%thY z@%OI!&kg=^ip(H)?vC>_F=8({HC&A=e#`b9ROFy}-I!2z^1QA|t9S-BQ9Q$h>e z-R(#Qq)H2TWg!`%k0dO(7SPA0FFOVAiy{;G%e+Bf=EO!k2Js~;!3xun?QvBv;Ol-J zniP3HHTWq$sUY`e6ezeW!JJ&dr~>DY0n6{{Jy63s17FsX06)-Dau(Wa$e&^uYKPrU zmkxK|m2QTc;1PAMgkrMfd+4NQrjxoj!*yx>rkO;b=0MivNoG3o3}aN76T*;AFh$_n zQ=J%l()Hlo$@Forzy1a}aN#V#QQG@ZY(ZuLKRZFSC9!ihMH!c)YSM{x zcgYUL^Wz`Y%il~=b6$S%v!}Z|c-06ZTSJC<&N%MmI@PrKV)5K;LmFe5JKAUseE zXf5{ihlzowpVvTNPIg{b0#DF=+VLV3qj^MH-THQH@_OD1oi4tztJ@}?c{UF;lR7PN zXgQuOYm?~>RiI09DAYdRDn6%7ZD03jrjje@10z|n4vH~NEs&%mN`fVTk$?*ACA>~= zzQS)Nh2U>F9P?TrccNdV@_N5R<|jj$AmT+kREMc(VbNR+ zZ;p=__?c_a>Zo*(bBNdpguyRV%T=ud52OPnL;Y!(=x5>=^QBXXKpn^qGe$h3PO-g$ zJQoi7BeD)N&)7{m@h;ir18?`H=?Cxbe9tFv`Q0OZy@?lW&jPa@6Fq7Ct38?R-a_=u zxC4g~e50Yu!w)q#xr8kXm$;Om1`jITP*9Z#ZYUSekxhUOMoKu0G7QW+4EJ~xy6bM% zmJnuvGof{x&&XJ$3-#*wF^X)qz271exs(|o(eJ+$i^7=J>hnr2=or^w7PkD2#&zJc z%&!;^y}vE&AOcYwIr&v4B&aJ*v+2c!ybNwvPmV*io0kUYh#C_hn+23nHJPsa3?I?c zWXC!i_=k0h(F($@bs%ZLRy5fzoXddv10y5{owMG$^$OLb}EAy3H zAu7U<5gk}){9?KsD)~%tt;e7|BbX2BtGWn$tIzO#IKnlGqXQ_R`@+UcQXb#22takI zH*)#1@seDm;Jg8Dhem0w4T$U@uUC&$V<7)lFepHrD%6v)r$&Ndn!xQI7|L(tRUg^R zK4shh<1+U5=Rv}Xhf&y~yU2QytMXtw5Q|V_C)xq#H@$OYK_M+8helznN_!U#S}kGv z@a-tf*K%#3+ikah5LUI(*-A0dzi6hIKzKNW4scCbbBBwpvU3S?K(fYssJFdVi{_jK z0d7l(0@T$Jry^)&zS~@yqF&X#&_X-D5H6t=*EIH**UxFo<8q;+S5!?mpWw>S238(JUaDy}ai)?}G9UY1s^swvR@GK&2$D{Er zg13+*c=o}IW(kgMsl+6`f zg{e~$)=)ZI+oM#(6&dpD#o?xuz4}n`gbi*zMYWbn&ej;+&S&C#%E-=(R%GWnxkG&& zWHh?n7aDvWk|KmLz1t~XyI=1G&o~-4nUI1)b@b}gX3em({ir?SW(O8P88209&~kkh z4O;(#$u?&&zycX=tg>?tUMKy2nG0(UfzmSeu>l_|t&T;7r-o{)H)*bOUFKbKL{vQ- z^d#CXl?am@k>XSHPp3K|3@Q<;2B;}byugXYPCvqOqlHM9`hM;%oHghIw>lGNldjaS zZFC>m(_VF@eteezMEhCFS`%h5dq(vzvnKQ=1TQ+(3H zLREP5p^`a1gFA5ol+W>;`cILpXxSUhOz z#-*(9hH73YBe(R0-sLa8-A(49yQlxSUHbtkD_mW};5nJjMo8m=nF?!nGBJ%FXHjl; zFzDX6OYZ51hzBx;B|3#B1T;XRLOKRQaiv)Sprv*AV9?Ce9td<%np-5guqdO>A&!KA zl80vp7P-~uNP-6th8S|TlMPV0%J<^bg&z%Bp#PC7^OYTCB1o{oU-k4TFO*mD%HU+e zmFnXU=wh}rDO=b6vXmhlz(IxQ)2Ka~vcuGEaP7fekd81W0|_$1 z`|0!)!eE1+ObE=GetBWR?&u5zlypt816uM6)0F!xN5~NlRWuBrOdS8(}gW?hfTaub|@;t2&0b$2~0Mn=umDyW*V}fvKQ!0fRlA zx00p+IEp@fEo8&xJ(hYi1x`Ep%j^I8)nDGcB|-I$JqyCJD#*WJY8nd30ru2=?;8{x z=MAd-Vk1s?FP8!+8!5IY`=8#w`@@?*{&D{vwc}h$gbUmF`eqkPCuegmX;?~NorkJY zaW_5L?InhUG=fZ9r3S{_Y^g*H8ad85Ns4Vac=`j|nki(ZjXh>tLueZ#1P=;w9lcmX7N?-*sVLc~Gi;?6fLc^) z!R+64o8X}EeO81S9ayH2K6t2*)klXa7dG{C;fR2i_}nKraa9DqoQ4(z@2yo)pic;T#M3)s9u?tOh#%RAkTQGKG6%DJ1ud}nG8P~_ZdyGD}f#8QA zQ9w~1iQMYcEslBT>)S_R4EQD?p%ssuTTq7#t2q#Z6hpLi^}K*R&ptNy7^8_83b8cL zv?zhq>Qz_aMU1)BwX=pufegqaGgNDBarQ%{*Y3m}I^4iW2Y53evZ_7V4fjikPmiaW*qk&FAutO?36>jNKR72wf9Zh@0tz3@-s>`V*Y_?+Bf zU<1w|TZL!*X^*6#)6f{z{JU|f^$-IIsnyg5ngJ&O&vLDt#YY4a$87P7YgDt|GMhi$ zPKdEVE?+cVAnHDCuL|Zej&nDr3&_*k_YJV_7@!-mrKH5yFy|xP$9w??Yaqev%?tZ& zZYGU}UqkZy0IcB1F`_O#BFipmA@$&}*uvr~5zJODgzN+y7gI25`Kc|eCvWDc>VxbCAkyeY&+NT&lxjthyivM!Xl zUM=uVnOPDwFzS9cAEdbAGi${3j!nw}{_Etd!dsOC{FBtQO9oHDIr*7U?KDx9p z9)C#dDXf85rk{4r2uh5i&?rlURnmmiBt@S-F8C!T4>#QrDG>8Q@*p&Nbq5bO*0@x$ z4bGZ6wmy`kUQ@}nEN}p>ms)$CJN0ZGJnY^0g*g0@8aBE#JZp#XFlxhrD(jbYjYw~D zx0Q3Fx~Q~~4u9&=Sd%uDEeG<2%Cv$~x&pS@EEp5knQlO&c?f`Ahao|Ni}Q5}q0EDr zR8uPHixu2wDrIbfC$KCU^%kQ@U~xCI{&MPWHgTyDH9KXwA@G#r$s^7`fra|Kyb;_x zYC55Txm#Zvt}Re)(WUi{z^~wiVdzlCi%>H2apDlmX45t^e*!rX*oy?G=~BzVm863_ z3b>eqynf)FpyR-%48wx=gr!y5u}X2HEI`$%sXD7g;|r{XMUEzcE0ZEjwmY|(Cb7Qm z({n%(c7B3bX^LD>h70XB{xJPO{rUNlm?%@p0)mW#1u2{`CLG@dW zGgeRHXz;G+M=cEE^314q`ESA1y5;7edkb31cX^e$K@*PZK7BEqKaeEq`px_0FMs*{ z(>pDuw?P4IwfW3Y4V7gML-F)NvS3?>p2qF(2ybBxxYA~<_?96&Ra|0$Y>lZwUsMKR zj!J1uQnR*H)36yN> zFP(89tdmOvoTMVTb{(~nJ5nKnYqe#O!f5*_CZKVbo%>X{&!5Kqsg6GJmL0qO^|b>_ z(c-go>yf-|&0^%o+U-k4|1<0?eP|(2y?|OceQepGk#hDc6=yA>4@$Fk zzi=wpl@xZ$h*QKtrXxk_OkRfky6HpVg#_Yc_3y|v1v8Ix=4h}hd9E@17^B%r4+=jO zRQxS!8C|jdLoj(znIRhifNDSZYr72!F+wX0;!4b*0nnnv3|wQ~IYbjk%*yo9Q^qRk zb1>WtjSo%;q&T8Gkm~#W@AiNB@efb&B66lFaae1uEN0O(dO99hFUAu^8i2AbqI1f& z$P7?DxK094fHd63`=;tLA6LSNAp%spZ&0YROA8_`8(3ZF4gl{r@$pnlKOhJZ**@gc z@qqj}C4@Ko>c!p7rp-5}g;$@33r|~2R(FylrL>VnS~4a8)beGXyPgDWkE={9S?0Nt zWpXbCn~1M7ROt>}P2Rw1t78$uOp7`2A;c#-1cDi+%y?hOokGcESP{oPmJ`E>=U~+^hx$Q>^{G?elO7Ypi z_fX-}eWbeLETl|`BwRvW$oz|NO(8523WO&Dxu)<$a?Ckp6F%i|&U`EV(ecicGf~i6&~8ttZUNKKq^C1?9dg%osXG7PKLxwk{OWY=Q)lLj|kfm zL$C$BGhZ=$sY~SB)vpCLK-Y16V3|iA!c=<_6WA4y&d#sD(X0j?*+f9=&6DzIf9 zm^G|@Y@}AYM0uG3a`vOqsT+8%sIU6v-OukAPjA0}|0fvTcJE%l{rQhi?|v4RZm6@+ z4Ow?PLtKA_6!9b`2Z7V&8B#bI2MaiH|GUPAw7NAJAtSKI@TbBW)e;hXCe@w&6A+ct zXc>qgviuan22s_3fJ=J;4|<{I{cx}ZBOb-X+3MgSQZhw^_QN^L3z?n$>iOB}#rehA`PEr}aCUKi_Vo2| zaJGohZt65D-n--{t87uhP*#nB6RXBxDXYd$NH#@WAV)9DVB?8%^VZ5PkAS)*LKD-$CyOA@7Q!nRXM~iL@JVo3K>_ zmg1Kr9l}{iaxs(6xJ{aRx*0^68|xR;-?b$EiS z1%h$67!Y#mc|nDP$ghtLNg*Jr4!Ix7Y!evUYEBM*H5is@5SBK@c6* zj+|H9(lp`^1g*$?-r)dQ2xo+GH!e_C(`AteC-{tGf9hUF2^w@#Gs!g%*_f_`w^*{tt8_dZr?53p;WggP3N)neRI~6$ud7j0=jt)> z-<(;%E4*LzXa<7b$b;?#PnF=~=}dP*pQhkV$i=yj=&>9e&a*gDbfJn>&sTV-1q3#N%$~F+PgNn4xYt!4EU~RIH2F$vg|B z*2TM|FwE z9@07{mn-D7Bs(R%cxb@Dd03fVp`$UbRafUOoRTqtSbA9bq)zRCiGxJ?NU(>bF^y~O zK~~kRZ={SVEgh{+gDqft_=`+7h_~9`LYmPhg}2sZ^FaEDvhxR>=`D!G$S8&)hXJg* zl;4IH#2-mO`y`YRxnDKHKp}uMPnu@veAT5XXDA41sPs>3p|-<;%DA2UaA*p+86!Bk zb1BKP_;K)sj!sR1laf39d`SfbT;YpEMdb84Tsy)YfP5S{KO5mR%USqd{a~5HS`^KU)Rb+>s)6+fWBz{M8&)A0Q85DrR!eJ0x;L`NlR6aHqr~Kwhg}WHRo( z|I1JBp1#kqvPNwIl3;ZTuQguDsTk1sZ+=tnH`#salWx0Tf`gu%*elEMT2p|QO#gld zLW`XEY5Pi!mL$cxlZU~z=K?;-*|x~DVWmG#KD${9-fE0R=KWR4@etduPIxE<5#rwUt2n2QUOEN{?zjK(^X|=ee>T$xJj8I!ji9oI8XXrA zc*%c2>Gozxs#*l~{HTQ7?=bZKt_#KQ5nyj;W&?kF5SY~rIaHc0dZK7pA?~rrWJ9{E zdi5y?XaJ+aqf$9^7TB({pEBFAFs^e5;Zzpbku0>}u+6h=36BKDWx!9?l-tKxeNa}M zxFQER4syP)3S%m&U~nf88uU21mj=OpYNaZ?by4Fj(YP|_4h&$>hru0$z*_p)!gYYJ zfQ}T~GFmkCOLdOQ?yP-OL^Jh?$g4pooFI?G_uzn0M!)n!0!u;LAN zqJQ=YQ7T6QeX#<3zfy|g{6hj+E$(Tu6b@jQG(;iqR}C;y=A4iyJcD{g$R7>EMB_mq zEx?O-b}DQMF$G$%b9j%4f^4rd{g4k=ML#%%MhKC6sO+MUR@KzT9_Kaou+YSk7Fj+V zs<&7mPKpJ|fF;RKdOpipb5z?`4atddX<=)cwKxs>D_WoSyllFV^c@2X?{O92*G)Ll3)M6Iw^l2eS9UMwD0XDrn)I_$0r7=6qk!#WDiDZsU`PsG zIj`(KF)ECu#F0{9q`kp7c?y>L8q5!`h`y1%ma^4x8m!7_dW|Ti1VqNw1zl7_J)_>*MU}-<0*8~ z_TwvO=B12Htx6Beb#O-habNA z@>6bxFa(kznWL(Q;(>GK}O%(sDIhtDUCR9hH2sD0- zQd6WuHq^=D)gJ%98+z!FqvCdNi|`d@95^^5Ee&Lm2M{NOj-&iD{jDY|u-y1D?&DWk zUey%Fa0%%%Eyc~8b0#Tpn^db??3X_d1D^3R}5 z`Sinn`tJ45R-+PD-t8?~*l*p|*);{5-@8+e)TSW7$6LCb;`|sq72H+F__ARwN`R@-Mqeo7J=Pxh0i z(Rc6P{QJ}9=`TONe|miV=ciwO>NPrFzpuLWNfeDKbYcGxXNzBr>G8YTV>ClafN-;d z7Jat4VPXKc;Y6Gkv(cCRx+^4A=3cr?lB%u*Qqd22bquvdJku7d(WwXOBPkIh%PecE z%{SlPzJB|M9}qj}U7%R)PC5hI!GgCnl|b;bwm*Wj_z6%;qhw%pQ0wZ4`8894%?-e3 zHEXK(l8V=R^P0d9o56|A8}!MkPs6DWq2UZEikjh?RhI^5w8kg>!^j&C>A>BD66m=A zDD@k{F9Zk_RZd2rD9{rd0tMV1pbz#SdkdDIEDyshVg990A2HC&5TF7K0CPk+YD@x&g=v95@_4PtCnjxhw4MbgO4f6W2ok_8ohJ6@%+><)fLLw< zA3L}M5u+rCWFyJGMgfMPFoh)mA-**rwYv2IIFT~H9%Ml)PLo6JMGodo-C%J7WHQ0o zxq}Nbw1{v))Cx^JzhG{u^s9`hLqtU%mB~y=UD%e|u7^h6_v;<%Tg_%DN}jzk16MOk z^Yeu0brnDpIcN_hpEaQk0Ep#HOi}R87CxgMEhKD5o5_gf3gwM&;o`lHHrpr9Dg@I; zPaBi3H9J{(=>LPfe{iDESxdqfWiQ|$zmLClPd;$K8A;kJ9VNQ+*BnBGd`g9EnRHlT zS+}z#ig_$Y24TJ;?Or<}wB9gpI#S$%z3X2MXT(#66Pz9dWaKaC>UKwM`TDNlqFq%_ zz-7i%FlD3a7yV)R3sxXkBh>9$G*MT}O$f`G)>%osRJRcR-75sz1F9xh>aQ39zvmVg^s8 zOa(m&-zcpLWh~`A-wa|WNL?cR7vTsJ5lDI}`(ag%^C0#k8nN_qcE1OH6_aG!48ozB zZ!E&IpYM)EXFpFOUj>rauXad**UF^HW*sF9@>8IlL6DGvS~0iM18bo0eS}4)ilHop zhZ8`CBuf-BcYjpw$fLAnh6pCNoBjYRp{SrKoXU2}W?40})ii$^3^@tPzX66A=9D9p zi564?*{#JOy^TCIc^(vf8n6(Q&aw&%Iy|TP@~4*G-Lt#5dyC0)705POwMN6gU=BaS zovF}2z>Eg-racdg$T4rGV|N{KW>UfkC?*P}NP&(4%ypkRP+&%IjzY=Fnh$c)>V3W@ z!U!#Pxp+tS01z_wjqr+~!-28;DKDhianq$R0~X$>({!VdcQ6s~mNPh-ggXIrN_W5< zh2W3lPmjtT_s*<&-eTyc4gH7~N!ju}dWGlSsYPR1${sCBc!EG9inTJZqsmXSA8(KZ zkpKAF(i5b#Sw^>>qzQvWA+S08>O_mQ40pgJ3NxlB-wyFRbzVc81*g1uxdbIfK&Q>6 z(Sa9*N7J}2yn!AwjAr_cBQ*#~(Rq&!5fNT&0PE}@PZ;N&0P#>A;!=Kx^q|7@({cop z*zDGFFz50FL4vOkfxi9a_f&hPWyBhq%SP$hHR=&&s}|m11S>11O=nP;0)>t_AG8z05T+zR7{w9YRu|!3W@VS63Y-G05yfc zU`Sd?nzXy!fMqqA6&`j7L=c;~sZNeNK={Ei|A$ft8^2hutfD~@!`Y&Bp-h9tb!JB7 zgw8T8x{?XHn4~5_FB(%Vl z<`{^wi*v9asn)pVI({I#8i!1bXyT}@TTlVh=KdDn8%7TecVhpj;cA(lYD8s zoo+9i6nE}P6@a=!KY{hGk{5MoNlZ!UxFG2)d7~UfB9v_@4JHz!xFQ?zReKSLgVWoO9zW&o`_hGSxVX)jixiZC$*I$^Pj2HM+P z!C$q}h9+!(?SX2L;$S3-RXMO)w}4lM2yh~v5zc&ub;o#)m~3@ZXt%ONtc?MOWbki? zGf|cOw$NSx1rq5N;wwdHdTXwwy~otaEoR*wc9FWLV(y*&xQ`G|)RBsZvne^vikY@l zKDoUzdTlqoFMwElpcRYGmyQc59&8^+>ojq@6jT`VfHKL@y$n0^D>9-xdTlNE^)x#` z6ahnosG3+1JeSr8E4T97Z&wd9bHFM@1GT!ArZgDh#czG(A|1ze4Xu%X=(<&}?=6=p(%4i&cN{@vXr1B}Q z^&UYUOdxwR!Oo07EE+UQCxF~001^KtHGgU2E4#JyTq*qj4F6bw&zTml3gsC9tdzaC zTUFBRGWHQWe0R4sNmbG$F7h-p&vIIc&W%$nGqlkYWWEMUgZCvf7-|8k7CkyMjN9uM zDVPd?z)K$iK7|FH*OSMk`v>QG&UF2A*R|k0Y$mr*KqO`Eyw1o2qHrKt~I2qyivWb`pG$`a_$64ejsp_@ZOyE=jy;{NsEWozg!t!X+hAAyNA}Jr6bp^PaMW>#dmyOP!l|`dt#e7eaj9@#2JF#mX zV>SdJ8R!-M4Qd#=g98^+ihMA0CT3ZE8#f;+0A@gY00^$Qyy*skdx7+Q6y0Lp{QUa& zKRhvBW-$Ko?Rz9M-8}JM@c2N@t^<{ieVyV!@f^ZVj0aDO6wXN@N&}_2!15q`o}fkQ zvfTk&;OwxJ2a~OV;0-GE!@)tm%#Q#CMix)tslV@q+?-AKeJ^`gw%93kyY2wmaX5?R z6{CyRhwWm8lf!>AuaSk*_7Ke`?SN%?sacdpXSxBJvU_BJFqIlIFc-c?(z0E}Vd0tP zrT~RD<6$~Ms=NNXo*;F+oigB$DwV6u@rb~HJ`ow=PQLrH_nmMpNsWr};X6b~a2VCb z{NB?Y($!dExd4m6FIo~41>ok zF?YcTqw?CZuCX^1w-DFp`Yo!-L;p?dJTz5!qDO>qOTg&16Iz%|Q0+y^1ZaJxl24hz zh82O~bBiv0g2*dvZ`;ROky~|WXu;=0#+`0&;R&}@ge?~D(YO*)@7rCZ6Xexm2Uj$) z?O_vs&UGmeV53v-A`kqqLo_)`Tp$rey2C+;`-6oJE8W7vMtFW%!0RZco6_@WZckVX01Wcjhhi;ZN0`>16mcU zg_P_3sfr=UzdkoLF&wPGLe5~9*d6qEDFcg;+biK_N|_s57k`c32LU zR@85(u{r1#+p)+gM}h10DtulJGpOPjmRNv#0Y>hqvs+F>_)T^N*tKNO2FoB{OWP)o zATCCAnjg4Y72ZVzQ48_*&xm>F%lU2&ac8^6l5F3<{_fAaAAhoFYD`R-6j|g`fJq~Y z7S%=Ne$(-%(Wy@s!aU5v55~soXJt()qc$JcRn*FBFQR5>3a?E#4nD2O@pH_n72Wh| zZB~eKTyp9A*zDG~1mYVgg0Q=|PxR>qv0qK+2G(FIIyUa~fM&2ChU961wY42FH_PJC~)6i35Cb~8j10CyVGvB?UdeMJoePhu8J!10~ zQNpZs{K#NXOehPJ=ld!2x2F)B9GaVs@zJdh;$HrC0-X9=d6J_I#1xxWlB>$t@6L|k zQ}D}_3N;1p7@#)^+G#?@`ZL)8lK@;H-!YWK7j*@Q+xhQe?ymYOYe2A956p1IM^D2@ zQK}`noH#|-wFSbo1*;?&gzTH_J9v- zw}64jwITgKa(9W9wyvrpl~Ceg-n&J#!$rXP0w#;N&NWOGeHpF?(?-RDvae9At$^OaShks7;jA3Xvd- zIb!^iPxSQyUU1ABr07V;W9?q8cmsevB*&79al$O5dQT`L_hjyhSRk(Lf!Aw@FIZQ;F8w1&yX<*l?^@k56xUzialEHusbFv&FABWAMM9=4fgJB=|y ziE!`5?5DQL>$uW(8U96B$8@nOb)2|Tf3pt#;QXSQLGs#&>y36y|BhEvNG#YdL(8OH z)cOK0VBoF@c%w^OY$>A84!C9!5m$X#OM6{@0WS0b+;&U%N#WcagF4!1FW?DnyVMro z(>s<+3K!D-))WN<322Sm`(sK%@|B^cn2#wco?WK zu0vX>)C(B*^*1cWCA$ZF2yqX1eJK1q9l!_`XQ3cz(6OP3X1qz+hiN(-T-ie;79;B> z+Atwy>SvA!RCGXkOKNpauT1eorRpON-d(L#Rh);j-frm~_>mouCr9G(m#Fc0J>Nf| zi~|hP@C)rPq_c~+r2wyoQ5Hrnk}%iC?{QGdiNm8-P#H& zjSv_}Eyj!Kvfpc53yc!^Im1rENRg?OJLOQlrZlo&mPtUAOZ2QU@l%`_+uoEW5700q zZ*n)j?^%~~B-IEpu|;qZGgFde)J>YN&OH$OuxHc_-ib&fU`ddu?9DPb*JSac5X0F` zA^bG_EfRTa#gCm*;d4ADO@;`uw1wL&?F|BX7<}+^w(iU3r)Z&-)WU~JRd)0WICNA-OH{Ys0wL~56CaOV-3qK0n`Xs))8PEA)^ zg0u=$wB#HLy3$i!yTpVrFyPRcB02XExJWV$TLYUjhVoUfzSKkZQ2E^=F(17{lQObp z`aC!$=-B!mV##Vrln#d-$emL8gM;v2NhBz)-LoKCf?8GgG{&5PLPb?{$*qw6=Ud3c zM02?)dII6a7H*RdNps=Q(du^SAg?exu;;Blf+%F7*#I#G0}Cp^V*r6UBLv9?v?QkH zwKW9-{$!Ur@bIO(kz678xT79*M{hdfP-mdATa6#~_{Sk7E(IwhKt^#^<3W-lyE0Rt z*H?70m@%P^*J(NV`t(=l(0=)!R$-iWT^zl*NKY;sKlT)b5m1b-Jn;tyX(kT%^f{s$ z$nH!&2hCpH5~q)h5K4#Cmzq~W9Ap)NQu=u|j1-m9h;jqUA!k?~yxl5ktm|Wv*z=>e zRQCjVpuAyl23@Gr1+}qoRq6mEjpzu|Zm67i%|_RKS_^&v#t6O#HajC`Q7<6Q`z+g40+qYVLWIT1H)#hOuyAd1u)7q-d28|++LYsFzZ&LE2 zLv!G@D~bEyW@~KR=u9_wt+q3G9JX&LI_)c?W(~QdT@FWdO+_kM6WzK=dd0}GS`{_} z;O-FCvWK5Pe)XPlJ(5iu*w5H!1>GmH^X@+8>8xehqxWU55nT+I6Vq$%BNelV*IDk} z+8oR)kF+CN@`wzipz70>$3K9(l$H{a9!g_lj(4q5#X7?paWg(g0@$u~PM!Vl?Z4|LkAjQmb&xad17|= zw2CXenqVK^OMtM8{r$QJ_ats4ZTVPAsb?6;)6u3!NSd`0pL=M!i_895p;E=yuoPS` zt5Lm04EF3s+P;O0%>h;qnVjd6fSSwnva$#7ITBxB(A2Jvw{ zTod}rHfL)2v3MsO;Qrp)+E?_z1*<@vUVQUlzd#-?I~6Ix*=Pn+D0q}Q+1qJlnZ;D9 zSe_2mt*rXV_s?wnyiG>_e55Elg;D{3p1SIpv-TeYszvwXy3iy@C3DIzyu(2DBO(hUMznbrck~4(d#pKUu=uj&fWHU-*Xi z-GGWuyEUCmnKA(oQ4P@A^T0zZ`YI*Hd?kXU@M$j3^?ZW*vXEVBEN>A}MYkSiL<40R zLEd5J248RbKi9Q(bnCVxh||)9ltC#9&@{EIh#_gov>G6R7XK^-{v|c#PFQ)~>}V&8 zusIO8*)&uv4)KuTcMPCcpL-TjGvLKgpib_R;pfwnE}QpuT)S5{X?MWsLg~q$ zv`s61s#GjJjvhSbMW!(0whP^o_v?9p5n}%E-94W2(Fc#mUBh}Vsk*H%UH#gKiMxNE z+rF99HJNWBHIzIEL;B;XZ5FSu`)uy8BVqEijKkrHWv3e?godWZ0Nuz?D`a-vUBgEa zk(xUu0eJ;oCy*rKGVqmlWWY8x(qGab6OH0E{cL4Bp-PMJK`P6hk(Cv`b1FjRkRT#^ zF%FFlDH;S+=3WCxlSd^1GO4k$`(oE1eP>80s|P4X;V|5|&R`p|rl;_#T^Vqf$5H<8 z(O&6!pRK;icOB7R!OV$zz;UpzcXJm-*W=A<-N#w6A6QK!STJ6pt4j;xiXHA#;8^&I zpkP?id2kzfc*-2mX1gMdw8ujy4K@V|eSaNV;YtAiNhBtq4~J!TIvEZwFA$)s=M4d5 zI+M9387{*uSa1^#NnXr0UE0LKBg=mou2xZatmcy2{Q?)Eoa|*EzLlyT?RFdl10qOK zbb62UZH1i=rVV5q~1{oT>&Yqz~~>t6O_CJLkB0Q?x4aZo0^3Q|RdF<8U- z>=h)Z8_Ut77*`X!Qn)KE4_~p2TI=>~%M>f%Dm>_v>{1KH#g-Q6I zN(Eh-rm>-!#%Lq_!1@qKjsZ7A)B|m`=%Eeb&@VYy8M>ij?o2@fP_DY1EuhCKo=G7k zK%B^nbI(?8M9g}8;wc^epTW21Evspqn${xvXjGEj4N?To#%QsdS`j@ohp4x!%=Nid zi_S|x)Q)K(gNHUArR>qrB(}+Zno1c0Oq|!Q+qHH)%`mMorbz`gagsJ3w>()PfJgm! zKcvnLl?oPggM1zjFkTi6Q`Mo_H1VTx3?~Enk-(o9{x*n3Gdw8fEVWT+0CF^iM@}7b zTDh(S!{>QLJdDW>55E^ugW-P5D3w(Eg{;uw+B@I5oIPO15yG|kTYH+h(d=Y2BUi(J z;jmRAZ62geK_3t8EqHsJ-(G>gf&Fq|jq5KmF1Oxd?a9nPtQI@E zM$t8e3H5^mFh_32Fo5_UF_RX20Uk#m79@4$gDIFjthV9@%7=AkAnCjnBabkdCP`s_ zbEN+&F-Fy)ua);6u+J1V)hMEv7jH|@+^`a<`%OT5@buq)dHVVN&C}bbcdy_7_%3v{ zM%26xj+BQ?hX$Szq1xjSeCuu@#`GW}ICk_Yh*HJQ(XHksee; zzU%$_k3YPA5B@2TC+16|2O}#YT6B`5fHhIl)pl-MWhpng!IR;2hQmLjdqPnujF@*AinwI?LwQ7NvuJB!3egD zRNWQVbe|{}KhDj09so~&wkeW!V!A-@;IinWx9G!S*>KW31(OKAhp+_te7j>9{_T9W z+rv`f#G8d)txY5L@O{?;hfiNpWjMiTbo%}R!^kHa^(5g_3->{m(M=4X(yIX{LJ9V} zseucaSN(_C(OguggpeOf!$+(=La(;+(lB5@c!ebM>EVka_;KGmv#<&VwInq=gJA`% z^aTe#HYVRMw6Z0fA(Xs^jYg;D;wxHKPXgVahinhp9a z*AG_QcZ7q0B*f3;239t>k5}itpfaGJkTa5s_>=F1KU})mwf~e_0R7<3#>sdP4f>3H z!o*I%1o-)iuWkkp&pWF4I)2v?oMO%`%S2CU0-kl!CA zo8Z0+P=pyp+Ckv`D0zQtZYZD@RHHl~LOW^5uJ2Qo&x=hj3VL41P1B@L+;qP{Ab}Gg zBoJJjRVW(A!(PkK-;#2#u@_+ocjb(HMHDog@bK z8^b{eC59dU%$ATwF%iXOS$u)} z?}?I<`8!EdWR&6bK_d<;_44-x=-*%k$JiOl=~;UHvX?we>Ndje1XT&&+6plOaTHKb zLmW)zC2JT56W-esSfDV(&69kBcrM6jaJ{J%1kFA@Si~aqzhy8yqy_WCb7_OuWT@$z zr*nk0^6~~%#1uCocj+BnvbY(sU3F-_37R+NBeu=bh89hLThT;d--VQ4MitYgFt6~9 zJN$)q1;<|N8e%w0tYPVeF~~yUH+Us$boA}V5n|`TI-`e%-@b`|?vvIoU6QJB7+m1=~;5MBp#c!<~S z=q(r^;v>|KJ)D)3-fq%@8}T7`#(>vV2v7^O(nWc(O_(e}1|BO8XDM|of0qSrQG-x^@Cwn-V3(O2BgA%zEpQXvq zlJ6n-9Ft~a2g zHNV&Bw8fW=8lgDX@Y29)sLG_T|K?lhkKz9JtsN-IB1pT-;!0+q@K`uOP}!>|113?n zX%lBExvgChoneF{A~~k6=X~hc{`jQ5V3W{9DlY5QQ=E@)_UXOceVFa3?YRcsU>eEE zRE1!0rp|DhGS@{w4iAZ=Iy8DqCas)YCwXha_@tDx#SWxnyZ`on4o$-n(Hyi}<#$0q zOz)~{5_fCuy2~Q)Ar?;S?uW4gOlYyj0kXUuu9$3eYIO`a0o+hufd*bigiLA>7~wti zq{9EwW&~-?U3#9QCLGAoW`m^caf9zrt6MiYPTX2ldoU(`sR?lE#PFLX)c#b4aw@4{M5gaac(tU}~;NzwNg?7@52Y1~`WWt-RUBkd_Q&#;J-f zY?=m|l>5tiAj3oTK*H@)ut9kjs8JpZKsVP+3%`O;hV#fvYWr87Y`0jk)`Dpw$n8h9 z3|tI>PJz3%_7q!ynecBorI#(bPcH*tPp%7}Y*BTb3ea@qd0w`VRl8q%>nL+`!@SNn z%WDuxbD#=|uxo(s)NBhshok8PP3(2m0p0}P_8lTyVX9WbvD}~!Bqq291G@+GOg0a~ z48?UC19dg(;$e_R;0iy{;Dl+mnNFe2!fKs&YKDvcw4L{$-(KN-n6l_s?5a(em9doO z2AX%krFeg)z?Tr+IYevbv>~!nxbenHV;7a10SiL#%GNm_pUo{e0NuKWz^F7bc?PP$s53QRn za8tt*4F=Zsp#&b_k&&k3-JADM`|VG!-#v}qJ-vp- zc|qp6)v>?&y|hA}%@3h@L$a=s&5zeQD}|$&6!p!h{8NZn`~BOer$2z&B21dl4!IjK z-4Yd*bbd4oce#FIhG6-DmBA?}SsEM=`UIyOhNXSB*=Hx-qZ4)&rXuMDoBc{65uV!R zFlu#yg8DV%Sg0`T31xYWFHd{L_Ge@z;0zDJ?q;!0+?+Eqjn3lq6B9v)c04ONg2;fi zLN4+v-G=5bwZ)zi6h_DG`yYS0`|%G}NY}$!+P&G_g4}GS3w({c!YQXQNFQLjA7$a3 zT{AObrF3fb>K>5`iVE{3GK)s!^`Uc8 z1C36>lL&UWI=d*4E`_GdrD<}#TfB1d)oV%@Ja z2ib#M9GCTLJng1(A*TQE76=x+e#2BA#QVPK9Q>YVxGd-hVE=w_FY zG^5X1|FkJ=3cOOErcaWgbzENehQHX|kO-Bf*4aaaxR*tQ`@QlCSd0@%{HF;pRB$)7 z1(F`Y3rK*>{j}|IfuW@s050_BmLbCQSy!o_WGbtN=mT6S1fd){qt%OE<66MKzutle z0P6?!<{s+_#9f8S7VFvU3Qx;1w1Az#et5C>IXJ*Z3!Nc7T_)1naWgq+d_FJI_2WWQ zixbc7f(^31)QDiNJw>!jaI+h~))+1y#4#ATb+G9;i{D5fdq0Cc3v^+B{pS7hm%scT zg?w`p?&x;$Ou9d}fcbHb;&FltQ&Y0aP9^|t@HDkSYlK0J+l`fRKPek5-8-2c3(0ju zP=@$s7sx!-&Qx05BRybJ_uHlIKl8{Xg{jZ7j9lyLZm77rG+aX{xVXIlc_}8y=ME%! zutlDTYyrfP6XhwP&b2(rRluQMV;7(wSd zGV}oXnF`G4qyuR39>8|QkwtdwEHPJBj?NL98;>&Ho3pVq$8cfGR66!PoQbh0mt>I3 zBHe1sMY}5r;53Jf6$=&K(m+~3juZIE7&nowb%4m}B5T-W@oJC%-whK%4zJ}_zrH2p zk$Y1Y_{QW`4Wb~Ib6Msqr~>>5mP+Nb$F1msIZILbNS;>ENLAbx5i+IsU8_^CY<$k3 z;X+@340?4F?EIp0w2A_u8DkGxp2JGzL7FeYHMeh&!%A`p`q*Ho=RbKY;eGJ}BDLXM z9^t5f%H*I(fjfa}9-1LQDtsRdCmFS*NB~DT#1`IfofeiI{)xCn)REY{g_RpUUMYEU zKUy#?`*e#ifU070yT^QPVEG~-g7d>K)2UTW29C)=ZuXX}Gwng) z?g5#14|Y=WBYFsYPA#2$P4-la6opBugbBb2=w zai`0AL9H>`Z;?YwT4Rcnq@E>@rGiY*{9`Eewp8TU*~>oQ&H^je#=X**1TWX{)|FOX zj+-dCh5w0ExW2b&){Kn3-lsf;ISnt=C)3g0_B^bxM~3KyT{I|hmlf#(y+~XZSO9md z@Xxl~mdh33LkEMFYQUV_kEtty7#6&W#7O17!x_hiJOe9ftgL8Gq8b3pBk#i*MEMx|7rZgkKg?nL#_CO6g3v`q!1Q%*traq z{FT|R(xtYF>q!Dl3zTqFSc}RI0}m6fvA752Ywy!=YD!?0TTWnz8oj{xHC;APPYNy@ zxF!0;(4o>U9K){qaG`4iIc9LgvtS~1=Ps!}beOUQ%ZpMM4fOS<>Utiw7IKJ07HNp%^M0t3tPaRtv*=ofB9Lk=uTVn2&o$uz!`>yzK&Vn7bi{1$tit$I*n;Sm>KDwx~7nw{1X zp8`@aghSecq1~dvcMA|;B29}YX!JA*{CYFKZBlr)>AA**E~(R6;?&*@oG&d}G>)v? z2lzqK1%+k2Sq7tEZ{cFwH9{XqCVn7ZfZIfdvd;)ooZ$F$D1?hw#Jeb1A~xJ!DsxUpoqkV^fE!} zk0c@`_LGwVN`|*A<_vIg{8MPi;9sL28U~@rh?x3fMCED&w~?oPI;EAe-#Q67tyGRg zfupzF-kjCu43U}0OhTwziR5kY9)Fz8Yi%z=@T6QM8!SWldDEw>)vbLvmJzjw?4+hY zD%_g0x{+KMP9}hfUg`8{XE2M7`3a49^2D|u5YRM?1FTru^{X8Q{PnN+ibF%7$(cPO z3F$|MaYzrsm?XetsZiQ=IVG8B*wLXK%5aDi(!VVCzZES7eNkaK^D9y5OPS7`Ka#D- z>WWqvO_fH`VzmK?LQP@VW(Dr)?KA_BiB*WPJhv zH|o)yYxX+;53V!&=h%gmkmzxX{>S^7DNo~~SjI4Txn%2lp=gCvORmb(gP3p7$;lsn z`~}qqzdZZZ^Rv^7^NX|dtF!*#?Be|F>FeR(3?!n9>%?9`O@9l;b(0T)@!QDfM|hK9 zLrd256ZjRQ91uiys6s2`!Bikd->yAx9}xRsz!V8a;xdFOwb%WEwqht!n$G8?mXvtI z^Lrg0Zzj#ChJg)iXKF-7G*21>FeOL6o1YnDj!C-ML&{Kf3M@#=i|qB>Gtk#sF4Zt_!TdgIMYlnemwgJx1Vy(q-Y zXIe@J_L9bJk!3jj%*WG`+L+6dA5VOXNIjIwgFQgFc|04PS`;dxv7C6?c)q&d%EaLO zU(t1sF2g3)Cu}H{3M4roC(o=S;lL$lB_4vI=t0gK%|@!A3fJdQDP>^p=*2yueV6Fz zQ115vot`j}mcqG#tYxoemV-pjc>(qEh;E3Xf9A@9oKNm6Q9ZY6jp%+cnLf-X`{m|$ z2p7N)ZW9zhW@d9k99%23drI`jM{sY+9ByBnCHn2xc^^|E)E3|kyxemBY%&~3ih!ei zl#3}pT5jpOk7ftcNbO+DfTn4j@=8*xK@MRwXTG5|v{9Q?q&5%5aJyS;Bi#c44h#r9 zX-CL;<%o-1kG+m?0)hU{tkX+Zi#1wpL5M35>`d3Gb4EK8c_@T{m6(TzjQ@y=Hjeb1 zI8pjK^Ug>~@oV%#Qd}hN8%m*7)O5lD^`{IR?2G<&g&Ln0dWd@iABo+$`rAjW_-|1fdX+=hM)+O}fN zZ`)~!e9h4l`(Fa)nI9#7eAYTJi?$&e_;gmHC@j@$m#!sz@>-KH4C1U<_TC*9EU0x_ zc6BmpU-h~;H!((3eO2{h%=X+!+Hu)%el6mHNe@YgS?o}Zdt7L;Tvbr2jvx;x%(}R> z6y$+)ZxYE^4})jC7Ga<_mttjw{V`n&a;Svh9&s$~5!x6c$MO0ei2nh$!cowE(C|_z zFnuy1t$o*(R>dCfMrzREa9PApWF$_7 z+n8CVf0}m76>%^Zi#SBD-Uv|N2*20dfr|_j;yU~7GsDfxt>x)ba}A$!*llm7P~O_A zHCnx_1t8DsTNLHhy@dqdjt__o?P=Hdvl(KUuffn(PUT8_liY%wDa*`2qsLgkDAqg} zn0hB)>l?^Fm8=--8x#K!G$YLwu8W|}>-(*A1$3yw>h{3!U|DH4pMrUS#s^~fiQ*?I zjQbCy@v>L2^4xw2ZCL^PVFUsgcUqyK=KsP3EO=HeAyMGS-Ho;{sIMa6N}f89J7RkS zan2Dyc({0-EB9|}bqZv7@WA$ra|#WWO_9J4&4jo{*jrH;+GPE@P3!8oQi^?AHejN? zeiazBZcY1uv!Q@cTDz&`(8c%`K8+7MsYZO++|zHU?}w)!+*_wN?&$}aXf|J=0dA^r zcQ6}G29b8B=n+mAa-hrn;0wbguvV>z?H@2S!~&#O^8HNL`UEiOa@B!`3WzpUn=G3B zJkF5e<=_n4ozCUk6r}MPkH)vjA+OTgX%J{uPTFL-BFXC7D)?ipmdO8}lu_nJ3d7|8 ziKJ1jhyUGaqiiEU>XLuAYp072-yvw#ycXTXS>l1raj;jZt&OD-+X-NJHAR3i>Ulw; zqM&M*f(;3pZuq)1L=;!*cW~>h3;L-WJMtU)eDJ0Q-Au;Q)Sbst!4FSkokq&Yh|n*o$SnO84bXs6lh zTT6#G6a;}|))3-{5p$X0i>I4xWsKL19H39 zzb*7`l0u;XDD}&S^>4{2l6+u2&I9IFxGM}RPf%?N)E4W}tL^WgO|rlGByLGUQmAfS z+PuqlO;%hYV9twX8P}Mvg;at`vDoPP)Yg6e{r6r%FqLfW5{}ae3C6E7dZb>>z%*mc zaG|?XSB^D0=Bv}1y&rn!^VV(4!r!`M1sRK0wXIJA!aN9n_gVNZk7j2cg;)1 zWfqT8n^GI(kRwJ*HilUCgJKBDtEnw8kD`uhudA_ewIx*{G!W^RTP+9y9{~TYVuW^x zm}d(tKZZw>SeCf3?WXk3Y|+=V(I)F}PbAf=-Q^q%A;A4hk5(7^JW2s1UO28LlU*Uu z#1|Ciy9j*Ky)xe^S!tAaFY$wr1hWeAlm!g{8X?JAFQ9k_A?YjUC*41**5pxTe$3M_ zJ5Y0Mc0hsv!+aSOv)W+qwGp|jT7X2m8NeZ@qC6JQ5p4ADBL@#n=V94vmXWn$ho31|drv54Kf)(fUmID6XyzO%rqpuG`UB%CP+fZ*Ce(u{Y zwDuRDyZ9);Z6Bw#M9p;^A_r$;qcLLC_?Ko9)Wi-S5_wy?=lFctJNa7Y#Qey?yno$; z8iY8VZkmi5YLVkcr|^Lc*g1s%9Hk#>EZ;FeH#!9*DnUkR1rHY-V6#`Z@ckgp)U*w2 zpT4Rm&kI!n-SK*cRX0>efr&|K+E5Pv1-an9V3& zzI*fi{4JkX+)C-B?A4u#O}>I=?lTKKm?Qy?+-hfswVr$+z0govVSP*XK*0?u z;it0V)nt2C^QsXs2J+oD79SStp{1hD7!;AL=<)$|i?>hj*YDo^h&%=Var5rSUzp^+ zx8EP?viJl+PGYkzpy*?%%nlChLKrXUN*6U^^N~h?53GkWgofS^asg^atqnoHvMRxO&%|hg9(D(kcaIj zW?J9|f~Dw1<9dofOK)^{WcZ{0>Gj*UPd`9P@(g;>vM)62Nqg#p<-8$8RGQO<%4S`+ z=m6}+;XzH3v_CCnJD0gVz@-xRK8ai!Nl)4H@5&U#e53#Zh` zbONd_&$ecJ6t8c#gPeDc2f6NS@3Tsp0IMhucV3D5?OuH%R+1JL<<6j5o3IUEP=zdQ z9}zjzhYSi5=OhU}!5&luM=J#vNkB=zzrlg~&<9*y3i^6qd;u^>y)ZO*FZ>+uG35r< z7)lbL`+%bnk#iCY_%fBAcsRHr;5NGqf#-x&MeGQffe#?wR!b)iK}0RpowomOufhkw zdDOH+11^B2WPH|XL})y>dyF2hEg`$$$}XSkfQmcyrQpwST`d}P4s2JbLZ3sM&R`O50r_Fj&h@rlvRZ4Wj!~M(%0WGTm%lkyftG?wvqp?5mk%9R+_D>i`Z7CHux2gCli zm*y$N8pVsppYsE9dog}Z6a7qCd&W*l5 z5kZZ#F8UgpaJ3=OE>le;*M;5*mEXoqaG!vsZ~@B`@)i*9lo@P>G40UZK>bzDy3wp@ z2;71wo%hPi$j0h`oV1d7?L{S2+kj7SNVrha6d3na!$OGzlcy=3dg(b;D#qmaSZ$*i z4Nnh#r7fcKJM)8s5r#q`C!m0C!)ag~{&u$>X#i;HJgzr#%@DIxg$?9x-4iEHNo{!I z_yZagbM&cNwe!1qW!9x#+gFHH$04K~Nvg;FRpYp1vF*>LB7N69B414b zJcHTqN?#US$_JTXe(sPX_{^q@B=wc<4Q02!fybO|m~(OR6b1slQDdn+f8sf4@SP#Y6J2^YVG-~5j0&xU3d*NItvSR1iUNuc`(xuj zX5(_zFf4<+m$C>4r{xEy)vvd=cD2+cwmNl-5kPzzMT)cYi_6pg0I?A+Bqx46{KDNu z0ogvy11fwJa(g?Z6@zn3D_D^oTyJF_AHAGTdZ#Y9qBPvyW)va(exPR zbFFEUL8=-!DtHG;f97r6|Abtw9c;kgkpfq7mVgKk_|n<~AsPK!&&0tV0_8vMf?M2n zq@;w{fD}bqy4F@YC6j7=CAbi7of#o{HO)>SudNm>B$A~g56lw2;I9yHW`(QD2GM+Y z!WN}vzd zS4B6PT?h$#NWEr(+!mSBbc`aOk}<(WuUYuKrLlZM{A(+txQ15rmbxR9!O zRF4*L3?du$48{fl1= zSB>!)1iWT0$oOgDvDBw|kgk|lNU00Utr`T=I%t>0ua^1ddKv$94{(pR6qg=uY%r9$ zLmSjSIFE{vx_xw!x!tvWWX2A8bwfoBe+HzBta+hEr>1RfyD21F7oRCLWaD{3W zDlC|R!DdQU*bNpc$JJ)7P42TTqVM0HVsPX`zp7H#km$thp_@cfnF5)FlgaIjL7df< zmV_2e=1XtBDLepZNcV<}GKB9OdBs<_QXnc7pvQv2}E7v`GgyS$u zwa-nij@0y3kH(tKmd+fT$9reX{YoF=gwetU%ysjs+r{(hAN25SGNpxMdASW&QYJ8g z9ybNLW~IJ>A$WDa+@05XM1@yEq9@#R4bn2i%iXh!x|T}bY4_W0Ra!5KmeZHa>?QPS zUcmBl>~sQd(r0+KAem_LdWYY=FMj3nlKX=Pbhe`ux%-!gWbPwklS$MH&L#Oj7&c$) zGcgp!Pn1Jr)TMVU`mcdWD=Iw32X?Nr(PVZzkfyDJehO*lY_Iv7A`-~a>8W&uV(!ds zh*mp!RlyLMG&;Gno8$<2JztGgLCmEF}+ECgDdMR&SE~l`uHm>+P=xBH^mm;M^ba!8xN>n#>AcKiarAk^G?|0OIP7NewR>|FSRa>HoXEX8Ey>&cr(|R8sT&T2n+db*ivj^-RJ8t zhInNr(XDucjD*l*N6eXW%@m)VBz$8N_$i2G?dB1P$k2TY^@WjNc$`4!hAG0yMB<;% zJrtmy}bi(ySRgC&HEJg?v zH%%WpFwQ%aBINVInGY(n(!oJ`vTZAkPDthyX&RK?47I}7oA{V9>%w5Fl-Lo(ROx8_ z3mQZ8bfSbMg2LAKD9Pe_x=F9AwQ1CAfRhx3*}`X7A@eB=_;1|N=+tzSKnoJh5z{z< zs69Y27wDP-Gl5jw4-->lVWXc@X{vxH_TGxY(m!>+034gUYI!A#FKA=ov)~1obHXBb z^0x#T!k7ew>sVaUgxg3ur{i5;I4hPk%mqvPyxpEevZexLMuj{Btd=Lde;_z}|C zuWle{d75<~tMT3XE=q`!(|}5C1{NC`Wi5{C6m`nx2!Lj}%#)!CE#M?(ibRmG>=dN} z4!mE}l5p733TeN=<+(37l67pho0qM)8ZlUyZ}bXL0c_=XY$+Mhw?ZnU)f&+GQBNBk zuufka^>ljMsHfB4MpBf+O1xZ-JBu~D`dISJfl(TPwH>yK#}TlPh*s6)x>D$w!FMNS zpGhi9b!l{KB@B%-JsS7Uc?>sY)_od&n3`r$QAKqSpW2nIv=}Aq6jmm@e}>`-aBtg8 zVBw;S!)uM}WcYcYe2COjtqtXfYQT4-XJnvrp@DS zB84J$6KSXgwMBzQnG}RODX5Hrod$tg#43qMia)xa01N<$kTR(-aV7*VW1G=I4q1JI zUgL5ker%w|DK5{R>2QTTa7vOL5s-XQMWzv;;hdn)h4_!00C?eWaIqs#1jP?5827{D zG)1ihmM0SAn1EO`XuTQ_(K6^=S{h`T3imb$qL26MVw%oLL05pBZ&umXl2HZrDfDmv zv1kov!cN2oh&|#Qc))8AF$&%8gqHw1X;qP1aKF9ZuJ3Bemb@CikLPAJo=+CAhOj&{ z^9}1Pk=34Wt!$NcnDl61`dyEHD@!vdI>U`ipPUC zRoIEnUfHx~$p`WvI{dey@nQ=Z1q6lI_8LD9fJ!w)P(n>ABnD{3yq2`ndD zrr;uDo`DgdWdUyFiBGPHsF>C#nnW32p}H$+JWi22La5&rR9y-NRCA%vx>>rApPfaX z!-?H^c?x9_aL7cOR87=vI)GHG6~3ZP^<=ACAD1UfZCf?4irQ2BC#TL*mWE%+>G@A zeGw?i8ORFsaoWkq3(t?uU78y*)$i{fW}8#wtluN{#U#UA;0*jan)o&`NGV*m#`IP-R?^`U%i|yXHX){ zCTnO+Sl>`H0LhtcWqx$D%G+J2Aw6OyXAE%7mp;Z0562k~%#crGjA5V@2VAxY2pin} zmC4ds7BCMQ8J{6@(Sj9XJBWTFi%8(|(%dfeD^6gjs}7CRHn5Ws4kE4ThjznO*#ZT# zDZ(vZg?x8lgp3hORB}Yw7lcjveG{pVTFn|Pbvw4Cmh{6^jIAS-xS|piRTb^q6)QsY zPu;p{kK8SDtWt=l(4=0SK3~*gnOBbqDa}^jb`D4G7HQcguUv{^EDwBkcN_3EZ|SKi z2&U&HP6=EA^oZQFH1aNcIOaY>^QV@9Qi5U(*u`At}2@*x-s2D;`oF$`tqbqkre2 z__<-5O4LYp-H)g~qACz+4UBfv4?^xDDK}AW3GOJjfI%V_S76ok3uxNA9AE41v>PR_ z>qcEx3Cj#`<@bfxuu2#L=i;m?lUp;2z0qlaNmK$%Qqhd!banLBTs59T`9TI+~AoaK-W@XXE6UHZ_Z{i0vnV~*?*zpOuti#o2msO9+rh6 zTX7Gz5=ecwnbhfIg-zX50qy3M2Uk5XbR&Hd2wo9lubgt35aqaYZ1L@c)?N zOq1f+p-ycb2|1+GQWd~VS#}zK)fpkezpa}hh^*JO4MRkz`*%nC+mmt2XNjXgB@JU`22`#J3X?m4+gxY_r?&^0El~?T zDJo);VK82SVm??^T!SUi@}O*3ij{9uVe(8JBTDxlU-HO?-gE%U5i&*95c-tKriV3l zdr|#WDR9pLtJ$l)5t|0wZB~?)dtmCx8wt=9yVHq6bEj@_`r}F3w(}c=Vu9N4<_~nN zG1A(1(yA1084x&I3eGQ3qiYH;FkjaWIEczbu1btc+3hV=g*G$k-1y`PnP@E>jUQqp zz_(nlHfVS4X})$49ZgM7VP~))1a*hh7p2k#90N4;IZ>SxOo9<M0MC8ZXN$^@ zggTt8!5&IUEws0>2^>WKLfV-r2HxMak;&dWGzCF04RLrV{_RfwUG?iW>Hi-2sXVy+ z+gI#?{Z4IK9&LcLY8Mg6C{PvONX`l@bEH}<+vqiB=`1O8kayx=M=h!~4^arrgenml z6&v3UdS{5JGzueGJk^3U=Dci;&w`zgD-FBk`%% zP-|h5Vfjr?QsfYaqlVH=*C}y3yy{2Yi=S3X&s(Lx$!p=V=AB@nxqzq)IVaxGSc#lZv8s%Vp@{`6!v9@Cf71$SX)flzk}775a2mq3JCd7)k|3NhedZe>UO zxBBX;>{1C>{DyO*|V&5fbjT(L@>=e%Ycg1jncy_2z@w~r7!y9)UQSZji*N(8hGocac z9;DOkigsXJqh44#{?^ik%pln|6j78s{b1lABk6Vx1yz@!C1gvJF8?KIXca3GPG<1h zV3&piW>_Ah#iA9QQTG6&AdC@M!1-W`8c9Y&$`*ZA<_68vwEeCF5jh06Qi*HV_%`Kg zk>!Ng*4&@yz4M?l>80e^?9(SZA{je_;NB7GGWZ2o#l$EDZ#Ub(5|*XBt%_#Tw_8Ud zx-5Wf5Vp6P z?V;RJIttUvX)Hw=gsC@Os1FSb4{CXILYJe8?OF!&=^>WT)XZMgHgM!+29~h(ubTSyoK;xy0 zYaWB`p}#k!w{+fXLID-uF2$1y%Qtin5y_p$fu5n#UU{`>Dj1|C8iWcMj7OmYh9@er z>v%ws=p3F2Z6kbz8D8NR{7ebTDry6V+BH8u(pA;kz@SF~F2yzWSitY330UDjL*gU) zHCBFg^v7ZIwo4Ntpz=h^nrRHV_Mm z5J^A)NJ=@@22&^)5wcWDIT97An$DVUpL5Q=_bu)YlCjKKRnJ6Kitu-zyFY)+-4{DR z*l`ejE*6iN{+v(Q{vx23pZlUg<3)o9y$JZ}=e}sK@uI!rMGv2s{l-)F`4p@?6{{@S zBz3iWq?QwIIfveU-(H5dw|~6;@bSB|oA*E5{>W^rdKNtz&n6cq;M1QSKkEI@-j-Vz zubGTB-L^oXHaLCJA(1zgBY5)l`D@4rOdq+6?2?zg|JwWa-p#vDH+S^gjeg#9%OLI^ z|Iu$h{xq)p#t&7izVp|N|LOk& z4r1@o)jqqK8b5Xg*Ck4Yh*t{rtMm4*=<4Wjhu99)*U99<^HU6RF+W6T0h?+BaQ9+t zFUAamoe3zwe~S}WMd^3Kge(n8GTo;~KM=e*&>|<#g87!n)vpdA&c7@wtXhM~AC|-k zwpyfXs>qLV(Msav&`dqTaP`dm0n()g6`p7yjf>6c0{?JS_|npGbag3JjAvCrdC@@Z zR&ro|W(U=2v@osoQjS{#;|E!mwmI-F6ry+LiRvNlK3|-%!fF#^C2c&-X{4{qrg@O%OZUOq-Tgz zO#yK^IUg>Ns&T%2Wmef59ksyX%8!R@IL9KZ-6<5O~Ki^YN3; zHhA6ROYp=_(vOhE<6?!RDXZ#WABAS2Wr;wMR}L^N5AR=p`|jpWC$oun$v$RenJt|Q zp29Cp^)2z8A{CKAz0;zYfw3{5XR#2K#y-+X4^X)!(0e!_leFs&0jh$5)3pGagP{(R z`joNA&}VxUixo;(;0e7Q`dGU=Av6h-DGcIqbZqlBfO;)=`*b#)uWn!8e*UyMyZQ8~ z|KjuOkH|(h{rv8ov{8a1@CF5Epp01cUy%EnEO8vqzG9qoA%#neadeI<9t9aip5)}7 zffd3M8D^B>9pz^xzfwgW!g|x~Hw5%%dkE#t_B#TbfOf8VYLHWPOilp#=zG2)V7fTQ zNv@~b_KJfv(eUzMX4J{`uqVS7FRsCeBA(6CJee*T=uM2sKnSj_{B8qd&5>g07_ySn zhnZjM>_HrXC7`>sTmyplUyf7NM<~BT4ND#ZS$vb$-mmq1D#udP=0Qw_*N1NaH5o-^ z2ha?LBSF)yYDcN$5qG%fD`S93kTToJ4WK_$qWE2Op}T`9vdS7#{mPRW7y3BI#5kA` zLgiBf2Ne%|YQlUVXojbiq~m6Cjwa|U#!Ax7p4vWX_sRyW#u^-5{-&0}y$f6j-$S_X zxbRIbGjOAx4lod zA3wjj?XAl`2pZin=uaQse#a}_1Y!Co=sLFLHYl~tTRUlT#WzqpehNx~7+KCEuu-MqPd`{6wZ%aA^T201%nQDJjabBJ^KkxLL-W@G!y1cUv-^~w)C z*`xJ%bd`=qrN2&4eSld!p>{eIlT8Dd_bwson&*&eZe4Xx;s}#y3>29(WQ2<9n)KO| zx*W}L64-;+iaDO{C|I?g%uqNH2f)&`mMhIyiz`@Gj^Ey1eE#dVHy?X;iO^0{f5I~f zk1mq%qr3`u7_z;X%Gq??t1oRd@U<9hzCnK8CRx;23#g`njr3emk;MT6Z5mOXy@&?o z4w9RFsTDL~vUPA<%E9Ed;_AV4?FDSIv5<2-+QS^zga-J8#%Tj-IZ!I`_-b zI!M-L^ZNGo-#zZVey4J*J4nS*5r`rW9uH8c zXXLa5zd10;S58r!@6Pc>0oH9oJg$DelBx!KuwhvAc5EVuYdq+aQPbn4gy^|APrzNt zxk^!vJrwOTWe?qzF6PkNH&$M9ZwBf~Knl+PN#n2V0XzCvY=Hj)YH&u?PkwH<LY14V7hUrrhdxR7?utB#d-pjBhshd#SnLdNN#}xW2GTASsNnzY*jjDGYaL%U1QM z_q7i~sblcW6rgzc=n)J;Xc>T7tzgfh?ZY1}yA?ZkfPxZo2bj&x->YmK#Yl-1szFh! za07D+zm9iX`VKuqmQUN-$OqX}r*JB??FG{wRTB#ej!sdUp($`Tp}M7JHL<;FTGs;W zCfAaHpF~-t`i2Um&N}|givWB&ThU(uKlTkP0MDX*qq1iFcuTB>XgoxkjZrq(m|09% zY6+IBYyfi2Hzz>&Fw{49_YL*PL;6Bx0#*==g-t%FI1eN}Z^;HR+366{V)0ws*J&2{ zWm0rerMdIutX^0kcqy0twrda;vBFwngy5T_;C!vjg0YKI!8r-ygEXa3h{TuIRYsk?DF z93=!bfQ&9d6n4hto9chFMo2xJ&jJj@LvYm>T>U zp5dA^osK7rjJJPQnhT*T#JaxrEn@M?PnjZwY6<=D&C#~T)!iCnf-MUSJamc1jzH{uaAl@$uU~ zw*xiK(99r`F);%Tm2*HfrMv~<%MoJ*;(QwCweM)WtBdY6y3ka_C02cRcZ4zJtqzO| z^L?RjFO&t?KFV34(7L4c(UoZCp}fK*LaeS4rHF61p6wmkx6_akMoVOHcsX4I_rzED z$G7471da*uB(g)oqPV|^+Z;i(;kpfk7A0;}17~##VE|5>QT?V_2Pfbgeu1fgs$w_^ z4(%LzxVqM2XEl}m&nmN^Z%6hrNL+B!kwVY=M$CJE-!!`UTKK?`tCE#(knapz!-M&r znjfw4B1EwkK;1%8k&}@KJCZ*I45oaVYeURAp+KYN zKyG2GznY(|QF1X`NI8)%^nqil#jP2vGOypixlyeRAT!KW!#}0Jtf*ldT8`Vx(V~+w zU7E%(>2RW16V5LcA5GIW1a4qdB>=!ILt)cYT7#BQmnDc^SZrygtD~w*Nf@y!8tLkk zpwD)#8D+(1!;PF(xyfYvgZY1`@$9d(iss*+x=^l{A zmtl%8po2idFC4;Wy=TTsVXbECmFX`0w^rSbn5^7LV_#ey*7JG--=J#WRr4yS25JjP zTsI1I2}4!LSSl+LK=se=ZTdxj0xxjMRhO;{!(F~SU*VJ7$*5@1H*jx=B3xn?q$!MY zPZdP(BU+(`^lHAUKBsI~N1SUWMOGUB$;l)c&FSNf>vUvB^lA2#EjnIhLmD1QnWq?b zx)tPXJH;DVm*j{IE0I<=Voo{`PCAcrse2VH)$-~;E*@TzWJa2o|sk3avzmO>n;gdu*e*lj!Ls_6hN`$ zbeHPwSOb4&j$jSNXHMzzBNwmvB$z6OkXWpd za(y}lkGkpYixC>mmc&Ua*9qS)(HCUvOd>42b4-NQ58qmC5w`B8@ApJXFz^DC>@_h@ z6RKNCxiA`Ll#7Ji$`)YUB3+y(%!Y@)2v=v$A1dgk3!-mHC>oxlwgyPg=T5yIUI7EM za-^kgTcS?s37i%KMh&J~O!)%yG9yX7W?)?THnq2EvXQ+n)Ry~DKse#&z)3Lp7Yts` zb-H^f8wU(0*uPxEA_)&JA*F#guvK5N!s`k->sMOre5pY=rP*Fh4H2^UMUPwHtPx)( zAB45Kq7o&<=F!jx6T}on(@~kXKqQ?&J5n7kgNOUiYoEd0DVEpC8*3_Sxi&e+mi#pU zSb}EfbYF1NVpGbpm3u*%MrNB^Wx>2il&?&@Dw_3iO`h1f0=FNwp}Gkt>lCymg9s=9%@Su*Dx~B44P%QLd@LKBWVDzqmaWqJ*qK^|poZFRuAXc|}NNrOvh76bjUXZZHyMd5V z;1%bo3Qvws7@L;G5S+pNPykd(cYa=!H6J4v9_rb7;-g%!vK29vHt>Jo4VpW)pH(7! z&pJtg0BOG#sC~(}qgHk2&3DlP0EB7Gdb43c4uL0EV6@Ha~JwWa_UAbDO={nax z`s}uRXaW>UPHAnMCBM~2Z!u}R!A^qJU$`^CYzWuaEhL8Fsxa{P_0G&7TxlKKlIa&1^jR z)89XQ{L3e}`P^*!f9xOparaM)`8A{-s8(T&{gbv`ar%WmvimNy5D&{ajQf~!I3Y3R zWK_V|DCe+(%BE;fsjVzAu`G1=bZ{3Wan0Y*1=fUKYKGmbgsR~UynImQ^jMarzPVx{ zvR41$v`Kxj&G(w$Pu5imwq2Qf^QDeddX*SI8AwV7k)?FCIkxrFs&eOy*U)f};a%fr zCU{-E9kR)=mdJI31M~!)yShj=+Htt?g~nA=XFuZ%)n~W?)Wf)JwleS+liz2ZNYk2t zUZK502Gqhch3^FNM*R58#m<*UJ#g3m<-dHv|B$Lza|yl?A2{);jH?1Uk=>mPCr(cN zN^pqd{A{z3hk3MNkCYxTV1-pzH>LKodDN({?W}GBt~;O3PEMgxt3n75K#{8uLN(-V zw{P3-7{$Pl%R)RB>bJy>WBIuWLUk9zS7-C#xX0g(wy!|aFQEWqfD#SVmhY|ED7i&G zHB1b!0-st-f;hQ&z#(_85U*CSB&%tBL2$L_j z)3-P8zI#0TwEFS&#~TJY;rHnEn;+x%@#pUmQzZaORxNLSz`g$5$E&yhC$z)mE3s#* zxAt1EP2D|EWv3cPuN(+2@|jv@Fh5Az^lZ!NQcFgW0T=`>EvTQG*tY?S zD-bmxnhLkB&o|%x+wIL8RAIQ~P2@OSLA$M&un_4uDAU>S80;@h5K|*USvLa%MGfa!Ts?xJ2L^C*BRoL@~fx8t&DDVEW*8XUAlb&-FJX*2>% z52d=l$RE9+Hz|-M^onk?>gu37#S733iKT+*5s7Gvm}@K0LY!x*Y$HnRf2mRtwlBGl z=Cmpd1YOv+C23!XTLA_u?O6O#&W z&=}+3SC8>Gdtw^nUSo`Vzj}-}Fn#^3CTX^aPrF&_NtF?Kz%*zkv7 z*O&sqV`cGkKT^6^O+xFL-qX`J$^Y&Vv_gP$STofo-!LmHf-{OHwkQKW zy_>)dLy>TG|~BM1(u^a~|D%7(wqv zlX~h4$>Y-=SBbtAM8u@xjfYc)1^|27j}*U@FH1%@dMU~z1uWg&_jqPn5m+RKv^SHq zo*@KpbN2TA&E%(>_oLVE-hGQ$5>eO+avLD$NGQTe&ywqLVB}d36P}t?3&x-BleR|2 zVpFs+*N^XCNylXInlCVC$L4!lPqlI(*t8(|9?4NYy8=V64aS)jok+kSDE~__3Z6VX zgHM9vH%?(|K$yfrAqQ?J(wES}ow;R{KVfKYvqAf%tFh4Tw7}Xp8qM+Z#Z%MAN?u%{ zBKumLC@l1AI*!D_?`;KPH7gTr@G3l*@EGJ~9FM+eEB1D9sPi>u9U!=7(n5R4Ioq!pcw#(6 zzShitQH-hNb|!X_2|m?!fN6jcGmBHp^u@$pyL-@ZdIA&{HinW4av*tJ{q=AQB1@V~ zhReky)WwD!&1V_9jS1{1P5ij`0OWWFZsbv>_T~#+j8LTK`?o)s2%333K; zBC(9euRq;vj-h4|>0txCPS_yvH9SG6Y}cEmibb|FaQj~%3DBKKOHws41GZJa^?(`= z--V7ZveZi5Hz=qt&m8Kh*jxA!>FmIz7al9fkVB&!Qn}$6F!s^oCBg%W#gU7&Iy?l* zB*=DN0C~*ME@jj+?70K$hB)Fs6u04B1G(h(p7geLz~+O`uAHclPm(#*c6fN>aXiLB zoe{JTFGU+j9sqk3@61Dm6l`a_9_{0vKQBK5rS_0g3-z75=K_xFf9e&lz-JY6_Ne^0 zUgPuQ>-6;WP4%-No-tw3lg2A7j}dSd>r1Cw)33&h9z4&iKwZDz6DAqKiWm7Dv8Qho zE2b^MR&gsUbNWMZugMq_r@x60NLN6;LVDJKv-|>;O|xq3u72l}@$B+Eu?u%~l>#jS zq3`O54fJZ`>Na>VS;lsRI>Y|9^F(Ue)HI|j;7Jd>S9li61Orc0RKVC~gvlZ0sh3c^ zaSKvUUcoh3wAl^gsIUyhc*`Xdjqpcyr%Y1*@X5r0xX10lrWhq=dXYZWdB=i3b*B|F zY;psfcmZD-g7~Py7J)PsP3>)05C0~nGXYze?Wtvv%{CB7Xf>YAx2ThvAoK<0_oq3gZmR&@>Z8vh0+xDK+$w(3#nLsaNK8~JX+ecwo}r9(G9 z6fH5>Tp^jz`P)x#go;7Alie%|k)t4ctuF8Cp^^ESED7|01iD*@89abUZ;@cO$TXze zlr5095&E&s>gNCWeDnVH?dx}&<;|O$w?EyG1d5W^y-IN5U^$siLj@1M6;~qB1^qjW zh+h%NL#fIvtqCNS;b=fpUOja(QDk6RPuI2~vsc}}co|^oE>o}N=$jrR`9f_JX+d?5 z)P8dOfKiea%6Puvy3|LFjX)mUjess@+?Pg|`%I$}<{z>w&A`kWrdJuCLPLw3$*x<+ zwWEV>#Hm^Gyxeh|x;u!s!JQyevwi6hEd)GjU+t5d>4y^zd5L3`JPJlaNy_@YXjaa1 zh{n50;61%W@c_kf!Z+iJd_W2=afX>$yt{holZcu4KpY5|ja#vZEwFA9HH!R+oz~_I zEM^=N4(1SRxc0ck+@Ni%LkmM7gmaomRBDhve7{Aw2orI1^va*(>V~IV6R(vXIQ;TH zG#TNfQTq152geYlZ3uC1qv7ZjApnX5C%{;XDLoET;) zX)bOJ)07ve_VQv3Osoen@W)=^4$zLK!W|lGszZUfLK%XQ9S7_~{6s}(;*{Y0k&vz; z9zJix*)nj_qmtVc87?GhS+ORcs-jm%N*tFt%%Xc@#Zuh9d*Ts$avws@Dpg~No#ZSOY_YKy%x0d^Md&u8@Bkc@E!iNudCh-DGwC zl|TsMUoeh8`AF+@3ZxMcdAhTn$v$y5yZuB8sBVYf7o4iLb0{rfU~A=Gkv4<+JxAeH zqYgcn8cuG&iu^}=hq4w|6b?kE)N3fB3K<_mgr<9)wW$ZZn|-TMzDJ5G-)erPw~(j- z+kn0-`sNREqr(PW$ zBE|%@lCDxF8{bYIWMUuOb}O+}GX%sr-AIx} zLV=mopA?Ts|5~RuT)4WAJ|#%F^ZyLayr2J1z4Qp}YtLA@@g%-}`OK;^oa}%3BKxVj zT3sV9=Zajzag#?ZA$kFqSSQf3KA`yHD>xG;0!gVD@pP z?ArPmINsjd=RhipyPwm4e(z%j_jiG_@O=Y5y1z^R@cuq~4;T%7m+u=6=J@_jnB@CA zVV3Xj)IYy>M1%Xg?BCx7sb25>^uzo6>^)#KhYuJIruqJtVVdvnglWFNQ~%`NuOHms zWglHUkpu~@oQVtxQQ4pUI!{-d%QHBbWZgzD(<(YRvD|yRlX(hH8RkJx;i*Ns_rEI?Krp?P%*y0qL@kh9A7F7|A!UkR2&`nRd7>6{j&@oI z-cLFP=S;<|f^!y}du~?+%Uzd;5ondq)R@qoc!{f8INq zA_K46Z6_4tTM>K>pq?(Ox?Ha~P3!$6zq*f56RKM(*2ojXM);B3n9oO>3wWg<;(#GE zFpdRJ?Pi;4bm#zTw)lpkfbc{ttSGSx2v4-SIil=Yr{~9Q<;&Q0#!$c_V*2> z48i9W#orOMW2@S5Ytk?qZGK|N6}5{27H6`%gOZb&lmSf{vbbYTp_rj%w`yg5lJE!b z2=9T~8rs@jTILvPy1j=+oBSVlDeEV{NORJRL_^y;X$B>i0za)^LM-Jo3lXV?sk_*I z7`hZZW!Q{TIu})oPNB|Ybv?tmd@PHc8O204K|qRRF4My#6*m2>wSn}mPB5Nvg1tOk z&(D!XaC8b2wp^uY+v^RA%H~M2uS``8q|s;d93_1NZd58I%hQPTSiq7=vI-!U*Bvsl z>js0Bm+&LNtM3GE;18$y#it-V`=x1fFn5QNTd;4<(K_W*ExKqWh^l1evm`&wwQGTO zQ=VX8*8chwhN;u}8JskkUbiq_X_D{mqBXDMBm3gwcj+8#qvuN2T{Ma?)Ax5FYub*Z zWW@jMzOqC5SgrX2X63$ZZ;$ihhZZ1pZw9>r!yQ{J#tyMwCa>JiF0@zlaf?%siDfCf zinB4^)~0 zjl@(Wz#$CtbaO^Ub0xqrn`%U$Z;lGJ2?0l1V5y6cN;|n1lsR=W(3TZsp9bj7a4xY4 z=5Eqd%x_a+LpOor;pG^1VU)U%caO++xW~i=WTU%o-OMi_gD$E3aBg*z!Y%H<)w5Jl z-}ejd-hByao<&v+EXEkX<2W!LfL|-p_kp*mn6RJ&NW*P3S&@Wgsdh_q4J8#E zNt&A2|CBjZZc%S$*CVTjb?>u?t%DWX#;<@wctoGJ0E3 zaeAV`;|R8E2m+6F+?6ej3(i2--cPUJ{Z~t%hF?fbiUk`lCofOwv4Khfsox(S{hp72 zo5k-@^N$Zo+3B!4Amw zk!*srlu0c{*N^R5F+y#M$axLVP;P~pBkiwSDa88L2TOZgA@*F{to9#tsQn9j0SJKf zXW2-@K-XzX+^H*~ic0f0=vS&gY!~)$hK@`LjGTzBLXO#nU9ydRllX1Sh^ z5Fx7oq;#!$wl=CiX^@*;qgw_Y6yxwZi4kJt^xjcgkT-s zI2y=!Nkq*|d5qyv!IwQhwNaSkps+}$Hk9RPFqnvm=^KwuBwup_2%RY=iWc`V>glLWI4ZF06WGt9re_f$YZ(!d2~CZH38u;4$z(N ziboJ1i`-;Es^tSuairT_M9~JtAeyf=L2)wvW$)eMxkBH2y||o;hkVDD=WY44Qd%J@ zA=U;tgs&%Lw+WrOnla4oYm~)<-Vxw^s6-*w>VOKHB@t5CTh9!{>J#BO-cvyk$6GJW1;olh#El)A zAGos57cSwuha7U z#KIs8qSRGZxPkAZSB6|lP<9C#0J7z#n@5)Kl`)OBe5rnty{(9TFLaDGEcTbO?1Ai~ zG#z|=ToA ze=*boX+6mLVCzv219FY5YTGqG0BJz>@s<)J{4xAW->Btvk_Z)yRTi)*mdcAH5l&fg zYRa}w=dGj)$EUEKK}do~jTmPYj|63hQyohTGjC)^P=*7470uREVY;%fU!NQr7&mg@ z@c%PyM|pwA3}cs{VaYXOW)~I>CEuAYE$CWx8$!l$jq0y zB3Pr*VO=1N#8cPdP^4Fl>?64rD&tFXTER1zo3(}9pLU{rw%TlZv^0y1NS5vG&|gWO z-=OE+5<2&11v4L7xIHoZ-?qAC1}i3-V?9Q_s!K+~!BbP#kishx@F!nWhhx}A+MMGt zMsDX7RynxIAUQUl6BqDE))4}dg!evbrMYC}1e`}Hfix7hr~r3l8l1UvEwx>P>0%HV zfcV|`vncm*AGNOTsQo9aBYI%^fKVT)@*SD~j3BKJ zdPSl7Tr82EVL9JiF5xm+DnAh&U9vA(cW=0@hUuxqPDL^F!JWzR0M$*!b3pLw{a3?$ za%70?TEQCN-1Fr{j>kLbL{C+Zg6D=-04@#li|LH@mh39os9|FOd6-RKk+$vV=(Unh z^A^w_MRm1q_sK1^H~SWNRJI7`X!BEO7;L6%huf47wf+?#>12$K9lm z;p{BZ?`;+7_qN@_(>Fc1KB`6(WZ+Gy+*8>q$b1~{ldn;m0d$|ec%4FpV9nH$iybnR z0jC*NkRk2OPqf={Ll*uJhYymLOsZ5xrg7mw1A2<^BS|terW5O<8I*y)MyH1gT{Sy< z)oyMTWQpll!2~9lSEOa9B}(iRup-ih!!`EI>hhASj0UY59_MM9JZxOfBo&z>u>}dE z&Vomh+AdaRz9Fpa8!{mM(J<+5Pf;<3Cp54u#DAJvLIn^=QsZA=YE&rq?hk zYo3%IlTLsTB^ViX4zCWPQWHm8wxaG1HX`Ea8OOGdkQwTXiUv&|C%Ki``k5s*PRreq zkifh6Dq(glCwAanLtR?I1oJ6{4G^{K&t~Vdbq`;6i%9*mw|{+m8v_Q5iGl8cip7X? zi-x=*Hw=T^3(Jl@yEuV{Plm^KyKN%p$&C?)Hqei4sKmTI$$2~~^xNiN)1-qt#fIee z#=5mKv>)}5Gtff4P{9Wh7o$-zEOTqRI^Xp;unypC9@1h8T5w}5Z9+Pu!zprLAhNI~ z8VD^ec*xaO9ug4EyXq+{E}0#5$ke)Gv&eM2YPJp6Z5lzXgLxK*$JzDHF22^G+JKN% z>|j?-bxLuj!$@+Rt28QOxtp1cESwr$fSpN-we!{U#~{z9jlA3F1X}YDt5ZA{MyP-E zcH-H;jUCGOVI{;JbO-I(9zA$~5Vu8PspKPCt7DkFj+d2M+je!A`x3EyDmUNZ-XwU! zBypmSsAibXCTC-#f%wA0zy1g(4Q964U?n;ThV2a6_e%U~gSDfG>_g-<1A8G~wt%{& za439F=|VYQYxLjQMK_a$mqp2{1KeZF@1W^>gpt=ZD&|S2y*zh5# z{rLL*`!0kP=PcHo1J#AF}Dy-Ib&ca|`HjkqERXpD9-{Zp|`8bIB^ zts`HUk`&hP_-I|$brh=b|yYd^UPph>LMq0WQcXIfH8&O}VD zK&PKR=__=4UVuleCCH*#ucj0`T0?hB85Yj#U_ousU4797*NvI0n6ZutjI59;w3nHy zrurfX^bHobsd7nH?EFFIN{25JpO7`Zi_=%55d<#N_+f&hL7PdVLgQ-v+>C14!2T^Q zpgts!27|E^1LSwqFm>0dhC=()wB2EmNWQmz`VQjs*_osmsxstgQ z=O4bi(M%>i9@M`Ky#I82a`PUUM^V>rFPnQBn6-~udBChOPHN?sXMGclvm(Cld7wCD6AHE2SE9KeQE1tE>RI8UPX=%T9M<3G&imR z9(d=Y=i$^y<&Zuz%loN@XUV~qVB5Q@PJ**B2Qotoq*7ul5(9kD@#l}9ZqIJs|8V=` zrhmBp`1<`PqIOlQ+RJil7i#w)p{W9FrKXoeQ>hk)Bfmt z1OljeC?gJjhJ2)FO0Gt_OK(c}-)v~nkKUeh$8z!H93#Uee6fC0zS@EO%hs zr|RnTi5yvR2M#7J8=$CUM>lO&L!~-HdcTWUKo*!RwrH?HCCdgZO}LR9?+2CRnW3ExSq4XYP!>0?wf7tR)M_~r{VrH6G^r==RuuB; z!{?94B|n0%zuH)#(1|qK?9@liCGf8ODk)ZfU>&@?faAWn(u+)_Ut{2ibsvFvxg1}# zqyf!G7iEfX|3tFkqyEL>t0???f&y;j=!s9@(CJ=eaC|z4L|#fj)dmUH9*Y*lAh*{jVi>jn7AkXZ@qEtv2Zdz!!|d6 z7O)tRDzUkPJ9|f>#Bi79GD;9~{uH|v=MDcR=PLh=Q|22S(PkI&LZ<_38(MlKcR(+S z)1;JyQH(H!?^q@tOLav8F-BHzd4ASS6vD9lFOYJ9iPJ`q#*E+$dQTzkQ3e9jhy5XB zrA+b&i>-A~V_+|O5g<3V9XnIuQTUY3@z6|$Ae@x?@-`YH5yW=E1u$)3xxkYp^2~%T zWn`01vxDx^xq&2psZcJQpHnG&y(||Fa-AXDN_4SVcN2{$#gn^v$gBKv5sn^ISCCIV za}l;nVd8rpQ+rpcH!ac$@ZRV(3!djdBf*}9}RHY&md zfK8B|Su0>HStZV*I~(#Xbq~#k;XlfG(DIxcqR7&ot1-Ge>3$rFTsf{?ulQe)FgwFH z*Go#AMFVJH-N2OWb&JSh-6SU+1_RX1(7m!ydQ9avf4CRdVXf*wb$}^dlmrG=vt*&$g0+%38qNU-gVOoIXwS*j} z5$i-=UXq*F0V!gpY#|#!JxC5D*b%VQfQRB9TFnoRs5|X81 ziYv$;biX*WBDcs5)LMJTx2G0fC?3dsjljA84~z;(TnyR8`=M6<;=KBu7x#0 zm0|_i4Nw(xa>TIqKutQ@bevp3U!Ks@=LCFgW6Im`ys}D137+&inaUKfLiS>2sftlU zQ>3uG)@zM)fFEjF%ocs;wA--Ryl+GjBON{GHn30b^E``Ml4Zc#gLtM(y^=l5-Ldxf zD%y zQQ@j$b3yYcyT(?_S~x3V*3kF)WI1P2q}q+7e5IvrCzf#SM8@}d25 zpyneqHZ)|Db;!CJZ_ruE%V%uo2aGh$pOSQmyD_g60tUco7u$i== zx`*qYo$Hl(E18GIT$zGU0Lmby9Jh>)r+jpTLj^)m3Px;|5zxC<;w>op4`H^}jHF%kUiJ8up8Q*SUT3gKizt-T- zoowMZW8_pT6-+fm8=Kx5@}q$j4n?X8uTE%ffR#&qSfBc^n%j^u-!eWpiSXp6Je37d z?*gK5et<5%Wl2>{S++qOR+_FBP!E%;0)^Xf_Jcb4t4oNw8lOn~A@5q&Jy0fEs2Nai zdeYkpacXPzM24>*iRPav;A8p%?zz)x;-7pJCV!xQMu0VxE`O}TPTd0QCVP~EU!YGe zV_|S9`a*O9za=0wkJE)~UbZjOTGWjK`>pNKfhQFUY4|sj&9liAsX9Z}K&ToF{6YatmY5<#)Z`1d*4cCWK1VoBs|bz#L0X z&LXZuwOmEns6c~{BhpOi>G@K(28~nhLX!rXtbMe`t6=<7z%*=g2Tr2XwfexIVi|a- zpBNz+>!5bbq&7aO+vuqoy7+XyKnr!~3ybiQClc+&zKtXBqRG+KCj?;K1onoU38V|? zx~e@aD=n*kUd%_HL?JbW2MeHF@PC$-#Y45YM@A5J`S%F67IBDDQ$XZ34?khR>(_s| z`TVyi7o-fRY)5618WLXkB`Sx@V5jN@_J{k!X7BRe(#W7argN3~K2EX>dIvDcg5YgUEchEn%@y=&>j}gH1gpk=vZmWwf-M9cx0vuTMnWr>@fCWV`M#4Nh`EmD9uCGRTdg+ zLIl<;{oGxnkWWhD;3KR+>g+t(E<}AuzcmG=&q{2O)wzdQa^#*4tODw3)Da_dIK10N z$UQI__gX$Eja3z~gWw-7Dz>pQHGmr<{0C%8<(KaxEP*HXko1GeS|bPP%bGokKOX*>(%vQ$?Q3GNBB4Y{l~ZOZkR2H z*uAO*qZrmgwbIo=-?#d=PwTgD{=!T*Gx(Q2pInO~LlAea5FFtyiumqA5mk!}HdzH& z&r4<*LiJ zxq!+5PSiDZX+kw(?r%Akp3lwgAuf0`H8?t(OqgWB0@K+UkS~^FHnN{)NUpD8IHTWw zvj4aVf1oeGO2IA>c74N9va1kDO|I61JIcxwT{QX*Iko?E3v=`IS28!G1XWVer`jt! z;WH=eS?#ls84Q`q(nn)ixt3@wW+FGX3o4)|s;0-BA#D;e!ay?Q|Cb_j(X8n)dh2J; z%*GR74;mi}-^Dm+G9IJ;wmG$#DH+{?zPSe!v`P0EcsuoWv@0 zq_t$(YIV?D0Bb`>IokR12sAohfRZ=jf$@1?ee(hZu&t`4R;swJXc?vf4~6~xXz#M= z#OKaD*=F@%wGP1}u13`^@D!~2?#?~6O zh~X+*lr>1yIHMxMzMOaT&;6JFBRC zg1MPrEMH2!h8={<H^@-4qfEuG7-~4h34!3W(DC>Md zJ=}jVx1ov150O8JZuW2Y1u2W+b$2ia(=eKI3p2~V*4+g8NyE6L5mb#|?fptTPa z6YK@TBxj6HNyFI+YJO-kg?8KGp;7tpDQWyBI2(}R)BfR=Mk38-PF}`OljlStF=Yom zQ6dI&PVBjO0kU8@Cw37`R_T|4AGNZSX_Krndd|Jx%&!L2aeZkZy@h8`E>)(!Y^B=b z`2edRZ;1WckE{miX_C{QY0p=+Ra(22c-Qtg(tLjHmjP>1z1W z3R4;{%3^Rc6zj4XkzF;sN+HuUXG7kmXxH<#$GDm0u9y!tICt?T?##Q7)6lrK6$VFx z6NNMYjCsfU!aY%uYwR3={GyyP4{a3DT(&k(8%iv4w0RCc0W6ILrR`8pKon!~_Sdg} zy7~UY$G>{%B3LFNA7MeIy6fnYI_P_<@(0-@fP=EH??Vp4y4Cn$5EHszQr&W<7&qz=0}>IlWk;gzAE=GL`rCC<4>8Bua6I5-7c1G(?^ z_3aIEuW|}`w`niTH9>PS8!b==98+M4M<5?UcQ_mM*}5CvoXWbJ@Q86DW?1n?;6T2? zg`=|xGQch7*T6vtCkYAnQ4&hktyOT&;@%fyJJ7^y$lr!YUvYc|Vhj#1pqli=fVLg* zW62DID31#sf%8)1TOQZ~sHbut!`C3$SP&1Yq8aO1IuFplDXCPLAqI+T?_bPOHW&E- z>vy=Zr_rZt*YuHghZrGt5d<<%G*#~#w6|mU(3pex+--sO^68&x!8k@z2c~%H2$8+J zuTM0wG(uyI&Ku4vNnID%^#J4JH7bpOAwkrH(Tk!*7=@ciRN(Bxo4+jHzBkI$j7-Ns zfIdQG#P{Q~@bBX6vZ=VNkgDMN2-~Olmw{eGFlwIZ31ro-W8;ILW&#>_T$J{V`Dn1J zE^;$y;N|%Wnt}@`(M%->#a`K{-rTfY{mGK_Z86*x@h)2Cs}{cj-LCeoE73GBne(v7 z?!>v9SJw&|90PNfVWi+qmO&wecVSi=%`Y$3PwDx(%e@8vS4gz@EnZP77R&Mj1n;Vc z<73xS=Y}MS4KokIv&yP!Mhnt$^$uD9F=KFZf?PD+>XPX|-H@JQC?T;vfdsfB@ld9E zLKTSmQmbHCD!ce0lS+|&sc`VC0g_fJLeq#1;Yr(%)2k)%V3OcSs50IlF)T{AEN4iC znKLOnuI$+;?&u-Jtldc!y-*Ea&fn9tF(I*^hpCfd9=}$@q1EW9`uHP^M{y5TlF}Fk z&|VvumlYo^*LtyUjTIG4%j2JfXK@VJTTQFQ&&UFyCrAL$D4?At0|zq}r_?WeH7}up zpx~yWJ~?B{<(V;ymZl#DJ>{*_veADq9F14Ui0#%|vK4tdU%r$se|CW!Rfw4Y69U)Q z*#*O;5cN`ILkA^An_ZG`L$?<170L_51!5YoIW8CL&?5%y(UY%d??2tXe*fm?$=6W)_x=HI z{JMXo@FXteM-=4NaAm@b#yEQ8WYjlbNNK~0$+VrgVhV~C45c>9JQ*MxhWV{vIoJ`z zHWuDI4QDF#g(585^hW2dOX+8`JxMp;I1Z{5tO|BrGb^syHB)SHGJKAUQXy%BoFAjv zMlaQkL=e!3Gv*Pir>O$zOt7W!QlqFUFSYi4UA^=O=d?hD&Ww4h}V|Mf7=rGrGVwtcYOf6`KH}Gch#z zDg19A|LkkUs{QX81ez*k;WN$A!6jFuaZ;wwL}v!8L|qBujbh?3x$Qi2@Df54m2TG%qWRi_Ex*gx*1$0m^Iusb_|m^>fUk-G zXV_KytirB+nNzB#l+3#pCY!Id3+$-CD8g`~tDF@B8a=FRjx@rrm#`_p2jBg~iD+{p z`U3CCkPR9Tj=HGfmWh$$0mGLSk~B3gXr(8cgZGUkmMbu+sqAZ^aSm&xQ3Ymyg58o^ znsQ?kAh+u;Wg+>HLnI+9ZnK1HzKfBgd>~|xQkm9fwa4rPX|1D|=^DUro=q^q$!7nl zCHtcK)c1818EU}6QNnJ3Dcf*u^6zDt>{~fx;Od2f3%>mD%(vs8RrN@SYB(S_Asm+z z=DrvnBb=_ZJ0iH`C5sxJ_3BIY5XLI=VU{WLOl(T}O`vbsHjU&Y1E@TQy zz#*6OJrZswpCRdCRt77X8JzMNg4% zROpU%)+z208}L>n7kmKIn7qE7f~RYHhOv#}z;eXOpqZ(n4cAwfObwH`F=jB$R}{DC z?xg#LkKokc9{g{Acz^R<@6C^|KUVTX=>!`hiX~2V+zBR0ncb2MZIj7ZL;Af=r*eix< z7_Km?;&Y)UN^9I&bKY-D9-I;*IWHJ3s7=d}(VKu(01hbWrXK=Jd5jrlin27F2%G`a zh*l*aC2YX7qY%YC0hpwU)C}xG?;^RnLAl~7p|_{5F8gRndDaRc6o?neJlO~%FMkVR zuFjA;NQzqQT_p+uHDM=tWzpp(%*UyLKZD|*#%NGCJcu-PTmD>6I$i* z%a}<8qH-#aM~tZ$Pv8nHC%2@cS5eQFM$}@EJpj1{)dYZiMSzP;@6=0e3$02WHkO9g zO=MM+OYXD0WROdFjHb}O2=E6NjI>Q zLXqwk?=+*tbl_vDp&XN8L7r?C8&(UfXBtJfY?{+uL_DF@Qbco;!W@TPihsh8bYylU zN;VA326MA~F1=&q)S2wIO;?}J>rCI9r`*nqY(}ba*|v?`z^f! z5ln19=o*kUqh5g;rVry=@VZ+Jf)^2~ zH@7RNCmil+a`8MF?ojV8_)aL;*XvxD&iAf_@LS468$z~e@`0kt1lSb+x$(^>2GS{{ zJkAo^YxQ2!C87z{L@^B%9)W~bNa|neNh^T5QcV;a8B!;; zYy^7bXG$dheBQ`_wOCJPBpf6ioUXX?conw)NT`EIR?b98a-iREi8MO1bDY$%3wIgAT*kfw}ZA}5ur^NAtNbmd>d&BTv@godq+6fjV~ zjA!dp908Pd70ZgbMh{LXlULEA#J|SPs^tt^oKn{D8Mg$h7S$VbIJFL{XjYz+MkeVwv%ixC2@VLF>?cj{%3O-9JY1TU}p^BX{o&gGp%-&mKJA6t9n zx&L0#iye@hqpW9R_@XvA(6u0|r%PLdi0$m;loe^Mq_RFH#9%IPZuS|;L=1ia?(~t{ z(9}G1(Cd^qsBt6#)f|{+XR|y3;+lsgVT+R%bb3uEtx%417w$I2NdXh}N1QiT>G|Zs zQ;JAU1A_olSexP?w55J*wB&6lDI81nA%gk&09j}I%{||S>zj@GV+^AG2&{r?cY?suDubG^ zw61gvH34*{Mb;RoH{3|Tb0moPe-py+T(JcvDx@|&MM7q1zP!jrx>S!WIzw!ryK13n z?I1nST+>_KNsnJq;$V;u$=LODhTFiOuFiWueR%i!7M|U`o!|Za`?tSK=nPukY*U6v zq$J1RfKdDKO!nqq5t0hah#RSyl>u+;D=T#t(a22n>Pt-sk-j{q=PL+d)s^5`HMlrA zLG{c^mD&Q@?n?zVhsR3^P~|a=F$^{V)lH4l>n2gxvb2D@B^aCdT#mOeqO`!eiC;*E z3q+D3VICbWid$Mh-9lNDdm0gvIO*rZHF9pWnlxD&rv*(N_R0%EK}hkwg4Zbye*+R; z$mQ0-h`Z7b{o2qsO%uM(Q+|}w(Ew>OoTH7BB;dmOxf06xQ})$86UE!bD3iyD}<;*y-U z;}}R^!!Z!6tQ6EU=xR1GHCfIk<0u<=m*0T@;Y(2!N#<(H1sO@=2U5@g1(Jhun^CHg zLib)cdRSIWBxT6g@GlJm6ZN$?ipQ&0kN&$i!g&g<$Q)>WU_Yf<4Y>knLG?#IvfMn# zqS?PhPtu4Ka)eyS%gG3p(_jU~WWtz*?CT>&vmRfrlzbgO3Haw;h(NdjO$diVg%q!P zq>MMBCCb{lhclt8ZHY)HpR;w4d5M=GquNFM>3NFxn%s*ch%7IlI(x&RB5O|QUSXOO z?iXkYA-b>5r?StdE8Rc7rj`i*DtCwyhv2sozk?@*{SHv+_lw=HYj%NN4V@YMVgGQZ zpi1FZa5=k=7}*-lHh|i~7C6SW;}&8D7}mbCRP`CDHrUu;4hTYb_WMUE1xYg#}wVLA1v`r z8_2Pnzfk>PrDTA0`=J@Ei|%undb z$mcuSGlJ1nM%BTC=6<_1co3rS1A_Sq~#hlOr#bOXM;d z*P6Em=ZFb7y0@6!QO#tvvIr#hOQUdJM+hYBzS<9^WmpCTICxdzIWoT~IbVoI!LXVC7@Nd&E4-oVxqv_?V_KSlQQDam*a` z`7oc%T|wlUD!vmR*u_&cK}Ju+D5F^1-Hh_?XD&FE?87Ax)og`YhNqY3$34#&KSY5G zjENcSm=zzaDs|LuNP1>`J~T`8&N#k2LC7_yuSz^nLp233k4*W>=ON3&nmV&?&89Da@P&!1f-U$5O= zMC9`HGtIkkd(=1am(XgvIX$ZaDN~;vOUW}v>iW!tf+tm1dH@+2$rZ>BXuQ6Ofl`31BuGUS*&31)C-2UR!H5D&siNv?r-R1F~I;|3Q=hQh`XI?G;(7tLp{ zy;7w{qz%;;BTBF3NT=Q5!P4%a`?P)Bce9!GriQ6|-pNZaW=#V?6RKNW)|Mo)LmOvP zG!c7^c@c7=Sjor=aJtP5FKu`+Bo#nl>iOFB!1aJ|zaUKg4c*gJV=+}Dq`#`J5@X3I zgA4OOkGLcl^0}2bnOI}kTl%NIkIXNbQ#ReoW_Li{NMjK($HuF|{fY;Lg5emSYIbylQw5n--p;?6Pwg{m|a14Ev zsoXG=86R4A(WDUblU+TYFTv9^&v+B6TevJl!JwHv{ic2o7vqVoix#^1T8-ivr1RNQ+r(cUOQt zd4v4}a=il6fOxl1-_UZrcye@k`kc(e7N#A#o5}Eem5_-e(+Aw3W055bb38YKL*Z~G zA&P#ER5l|#Cyv$f{A!v>Ay{`rAT%(!=N~he-s6UTRavKU72?pvX7u6x_iukF^Ea2> z+|oeNjw+_DaXCeh4mOB*Vqd2!#V`SpzPJU5yu~d55*7Cyzgm2L_f9;je6t`XxLYi_jkD*PPV?Gog0K~EFyIkgC~|?CL*Q+}(4W`=J|B0e z>9+JJw%ug0nlXF`g_OSZecy4-ZMmU=RBvsM@qWvxUU6HUrZj3mH#rwMs=*rU#d;MfMN=Mvi!W@*DQz@)!Y2T zJg8Q+#v}^LMrbp_9Y;Q$+5#{+(2Q1BT4ieb&(E>Q%h;)XmZ;I3v*6C^MfQR74OqeS zEw&qA4hOc$LWu7?q>^jE^Y?qM2Shew@s0DfU4VmRvD9FHcbH!Cfof$P4y9(8j|RqB zS*8YF>Vt_wAiq2EYq@Lj0Z28BNQ@!_L`)4SW2pH()Ej~1@MWHy!1L`2$sP;8M962^ z)dH9Xh^CZEn=nlZrKI)hE{ClIRsS#)Bglt^lXz^nI^ReiSWF=snHr2fXAHsyWXYi#cehX&CL+Wc#$mbjtjG7JVr6Uy5LMxoT3Dp;pM+UA`T{ayg zq(9q72o>BT!T6CiNtvkjc8^R`Knn|Eiue79%9(k&!akxiaA88_rCCtA`>@sr8aIznFi1J{4*P^Z5_H2SD(^ji|zK5$x9ZOEZ}K(yS~8 z=aSEnVK`L(BG8QPEfjWKq(+RT8-sQ${3NqBD97-8gLEAvlYXHiSghg1g8}*^I$&#c zy`wwt9p4F6!APuT_mii0-g^QL`d+=l zgEbUzlgS?0e+ab(Z7a0JJnH>HwSI8o>HaOX$D`h#dinie&=DSMI*_dU;Fra-h?-1A zvPG})xaU+L-;WcC$q$zA40)I@Mz279Ol!+LSgGxLC0bAIg>eq6v#SOc5^}8IIth}$ zEOUe+;4>40?PS{sxPfPxGgO2>X|pN93TEmt5^qo7B{aW=Saq>p&RH?kf2F-wTw@E_ zt=G{=5}sB(8lgOD_e5T;hjoOn_QN{jiFEA7mSX1rW=(iZ6Fip0f{~Ype-nHU$bzLS z9Z4b-&ap)kiaJ~jp$7ynLDQU0TS^HAk)R?GO=wygNFcN@${rcH8TdH8sgNGQ79i~^ z1w};%yJo@p2)L9ZIv2fx-d9xi=}?sM){OCT#0T4770 zDm}clf$v9%8K^Hc%E0|Ja89QYTPFK&LLta`g`DrC1r+)R5FBEixaw%;F;6<^qHVW` zNJx(;1I}$Nv7_Mr@*+Ea)zI;RcTq6=8ysnCa)}jJ(Lpbgb-BpX*D9oFMRv zIq%h%eVZ>N-(!Gd-=-_B$~Db}T3n2ocTs1tAE`E4iB)(1QMDp6$nel}v z;Cj5NW1$HFYhC=-Bc&nZ%57w0mJ-avJ-a|=9KW6cUE!bjMpIlsd=xj7pnAE{m&*k_ z6DZn0t3<07FpYO{1;LJ1^`}1ML1Y(x3cV=ZKxhoILfBU)zGq-d0*Sfjw>K)CtGxF8ZV*SrgSi z6^d`dbVDFv1~61<9HK#6f?GH%N%oZ}vuaQ;V}`Rg$Uqs_&?<}sLD2KjC>Drm9E#K+ zGT4_5dSV#OneIJpEnm|bmUc-lQnH_RHmi;7$5A2r1>+AFwZ-wX%@o?;`dIpjX?N2r zDAfTaC>~6%L~)_<8jnV250Isuoj+vu34XyD7%bxnDqT*NDE9_-$MVJ^gcWYqpd!q7 z!$kfx*u&>KKaBB%cR%d+@hnrj@Cn%m5$;Xrdq*Y(z$MWxHFlvRctDWvSfYGbq=aHT zuAvB+m5-aVRYLNH5~5rJd3q7Dd|gZvSy=?H!%d^H0-4iwa9Z5RWxT7UO;>s-ZIHky z{ZF@4cp~eVU4reV@Yz>_!W>#`|7tfHWS6vf%WfL7I#e zY>S1F9(m{Wci(+{{L|}q@EiN-!`tsr9A{_e)9uI4Z*F_*swb9FJ@}V5JwhV0pRgHl zAMOr?^EnDN;S7yF{PnM&ktFHuhxenuy~Cpr0@4M5d<1g{Xn&V0Q3K+fe!|4dP)ufx zYk&7ETMqnt!g?NHbX^p|&bMp4lF`OWQj{`-e18AQa)UsAsM+BC#&V0)1dl8usPjXh z=;DV`1ir5Z_Z-*Wfm)5cXU0Gkg|Ng+?GNtn$aXPOEJdl&YeV%|X}qP&zg$m7_(n4- zyE9S?s(Z+PDsbkI$vE;aM>9Dg{FZ)t2$t9QV8kIdof~SHjngVI7{6ut?*|^zA=LmW zBY~1YT4KZoDbS!js?swgHV|(kCyB&7fgxxck(FqQUya4=?&I@98g0TsK8NKZ7!_~! z(9NP#INnQ%(-bDq3`7a!WGwmu+i~%-IaM`GPa^3xN>y8!_Nk_Cm=6ZY8tM6~+i*Rz zSdnn+vuuk~RDRk{{X3vIOTio9p+^Nr;@kr`l15su#A&*6s$@Kmq?s}WB6ja3oWvHM z$xNbyxUJgc-&v!)*+pN?wa(f*tPsRP)1k`@jZeWRJfl%-!Ysiu2luM)YXA)&W%(>w zFI>*hXiKn$Vg8L%csyNF8?k`4;tIZ_@Rws2v(s~A;uw83Tc2;vutkpl?e=E)=8f&z z;3OKb^l>BV#N}aKzh$pS}Hbdm|KHRphfC zZJ_UN$b0L_blSbW6VRu_^YD`b_@*gly$v)sJ_R+Yj>iGQoa9GbH3^57nAcN3I36~{ zV#m!ai>q(0UFb^JdWJA9R$?_}&EjqTHUZTqtsyQBM^dRqg;TUMP>Pe=krDmoqvb?L z&Yvwk0v;BjD)3{lzdi0F#OG}AMC2^BlE@)~Yy{nt-hv62CTgVAOZ=jp90&&^nuQhY zeikEWR1%(MR!h&RGPFOK$yX~>py6TUBL=mTHx+LC1sXBI23Uk)L<~E?dfb_QN)IqJ zBIKUrAD-@~l56!|I=5?(;q{(QuOG7p5H}%MlG42u)P$(F&+YbvGanwXM*(4kRKuq}kbA&GV z=dY-9bz7{3e^%EJEi}bpttQ$qD-TB!IB7s3Z$tA(2guS`ybG7C9h1m8lK zC0x%oBV1f9|4c0Y}SFDBP3E^>#IBf0Zd#-sOYG0p&2TOnbCkIR9`Kd zH}(h8EuGDh4hjrG$AbFu#P+Xw-Oi;i7c^z6NA6Bc4;8~Wk#NF8)HB_I5?+H9FrCtG z@Dl15nhn~wY&38AYsT-6Q9y(>-jU==3j#8M4zm7Gxr%f#5gx$v@5QoxDJ(>VHD)#M ze%a3h8D6f(XRjJFnxAjbw2zc8bFy9}MY6j~a*t)0x~mHMG0a;CNA)5bkc+pl16pcD zu<;CqR4pqZH-$v%DvpJj4|NlDz_z3u1JhW5?@9y;tO<1eN~Bgg+(@a)yS$)bnfIRv z!?ISCcZh@m@6~Nceu31U|Iz~jo+zmhQdL;6I}8|bS^eYg<>^ws)=K;=-9TYQp3t-j(+#$EqA)H|6zhU@Dz3^^f*y+Q-`QMqi4+)y zS`r`Z(XxFC6pPUaZU$s|neRrzoHxGkwESiexH;Y0wj)}C>^hQ&s)OdnBo1am^ zwBP5e(d-Pq7I36tvSa80Dx8ok!zi;9)AI;m;h0 z6c{v}5Digo8a0>HsR~lD=etvK7&Dr@&}{vjV)9*`@V2g)^g&BkXp7N?V@=%K?QhUAj?|fO*BMQRkpR}!8KG~Mx za*0Iuc6gu}osSPfnSswuA|c*1Il+N+4j?4Oha|D$tYO=Br8%QGVF9NnC>B)2pYl?l zS{`cpIr~V><@ultI_%8&=n;s3>7&Uu0xgpC=AU|xu+z)_@#Pehbpw|^{8G5Jo&N09 z&Md0%+mER>9z+^^h-CulO<7|M>X1r#y9%QLOgnA-_S5Tc-`$|H*y`QQ&EL*He0L*U z<)y|tz(VcrPvH^HaNSNAJwfye@iI`fF)5K_M7-=D2*~c1gEnF(Pk0!OkI3= zE(WXWm<+^x06RdEhe4ssJk@~M8>2WqP{USpgH^cq9-1;Uy`L0{uQuA}7VYSPA-eu} zJv;^%GF*ciAH)6w6#4r0_T$@cKi}TKvis@gyT`pxH*aW?+xguef5NX1A3yz$IXub* zYf|4Drom=%h=qhUx89>osBWPp_W14X#pl0%d-JiUD=<)2J z*PKgkhMhiHF_9ow+%?0$YM9<`IQN_-Zu;#KH?E_q{9Uc2Afi#g8KmEdIjUM*8`XU~ zDrh4p{`w+`r9bP|Uvih;mSfb&3$XUQ2hF%-x-OiWO{WR-!whCvksUwS6+rXoY_)L- zSev~jmtbu|beMDM9U?R7plOM3!}SU%1J74jkrNPhIt?+(>Ek2UVtq8jg>#nWu7#ch zh0vjw2|-5=T9lG9jq)aGWx|zXJFBy$M?OK&!NJMbPmowrqXEb+^8(!G^aV^4c8tv6 zhmq~=-(m9WgbQuL8x^Ms=BuLS0ov%A$Kxh34c7z8O+Uhrw0Za8{SSKsBCw z1>(f^#K_fE9Qskwi0;f-6=*z}Rugz4HE5^lz{~dw3IJUYQ(_$YEyKh=#0q~lJ#l2z zfa_cc&HWLhJeaEp7iA|^9!B`qVyX-F^v%#^=gcRUp>a(?1^cNdyO&f{pvCPW=~9GLPe;H3s>5W!k21W|48 z5H!>$s&O~S4tYmVA}V6!g3KS#Ws8R-@spyDx_o8e!kF6$a~R9t=%HaJ|GG15!l1UP zv6V@d!jF#zsy6KT(HV*w#1y#@-O)ksf*!|IbF{X*;VRPcKq$B5VfcpCe1Rlg`}Tq4 zk!yytZ^i{!dbTqRG$$;(X4guf&0&GfS1u7M^I-TmeAA_m6OHRrR5H zdnxZh9i@5ao=XI}sNjZ#R$%#vBg{VsWxA1Q0|s`fLw58p+!J@=7g%m}W*0Z*^#1V= zbnu=f+~p`pIWFB=s-xX66C`}HY%5y=RW@LnN24v)2(hoDQ`jQ7aP(ITtAV~$UJV{n z31KwW+U4>Bpfx5w#74w7O)d-xrYqiQx-6Q@;NQi6pM|15x1lLXyuhd!52RD31rTQi zpDROPsCql`d~>^=atB_oKB;*3Lz zg2Fratw>=e>%#eH4j(!bJ>2ptZjfdMhuKNMroht_2$^*DVA$c}B>jxiXRj_RGZ1Gw z+S5aXz^*^Oy}e;IbDfj$)ek4^LHO$LD<`stH7@ctHi6xuW4lH53I^`-(leYSo&9q* z!ZXXO`COhc%B0f?>W*GoH)Lc(n4JnEAmuYvqD6yNiFlMQK&r{keC6;k@wsk*Y(s9% zxdNI6U+ewQw{#>)^d5R`E1JSwAcZQ+tOJSeI5KQ?(5Sebj421wH7Nu19lxiT$rtpv z;Ph=v*4y2|@KLz)_Mf@X081&{E!TY+KJEOuBj55Y=kE5De+MQInOQr#io#|4NTXya zQfTKOwcr4=wIcB~<>JE79g+W0?dv=Vi1x&on4MJgn1|X=D`v({B<2Zp0%+D_*0tGo zcD|Ed?a|)4ijEBm5cc_V;g|Ad(%gAs6888uE*VVQ`GVO`s1?dR6F|nQ>}p(8x|iD9(WFQUQ~%2|Id_UJN?l+I)_)3BOYaEm zQx`iJ&P&EKMok?#YGbB&2jsDwI=pAHAWu>YhW?oC!R{SGb0^$agoz4YT+YBDT_6h( z>($Yis4<&4(b!p87%6(XXb*aTecsZw+2SOiCZ_OFGuPzOEZzd@7GX*7hm$2k>=&~m zg^JLr(p%=MKE@B*(m6`2yX#ADk4=%P^C=>{`89kL*!t^nXF7B?>y13hq1(T3s|UWh z5T}vtAUcFivbc7oTeS2QhEmDmE*xL5QuEFKzWYBU)>O}IJOhqb2xYnB8U6d8fm}*= zKVzV0-0_mV|G~4%{b2N?W$kK$41rl40yqwey)vGz(10)`5VZI3b3;3ZKw;Ruk(D&3 z6ERD1Xnj$g;smsiScQI?db-EqWLntpGT(2Meru#QRSKQ(8vyfsi~<_A>8&sdvd59< z5$a%|IH)Tdh!`9%R3L4q&^bd|f&rF+4<&_bLv<4wH*)t3ylL_N4WMptHVw3KQRE;> zyh@~n(yI-F(+dsDNf8p^faU}Q@(KPH`X!j#);$L@M5MEW<{_sm*I7oWcCx%=kcP-N znWM}EE`%T7zkWCQ>E`|I=)>ptxLn?Ry16Y}jM1kBHin|Er&P_RzPAC_yMYa=9Bz#M z<9|%U|6FX=2xaiDj+EcdQ^zx z1~X^j>7QBm!F!W%vVqyfc@OZ_4MI%sVw80w}IR6?IYs<)7UhBDBR89*_WePTgX5Y^DUXs~x z>;XC-IE$1nbw5TVl#bAerJS8DaE2TYP-^CW0+m-Sfr!)18OpG?WCh91c+A~50hvo6 zY`pvKoA!UnO-Gb0nfmw?rPX0)#BXFjK3z(e)oj#U1#YEzRB;FeYO7&>ti-u)b2x1S zO|t>f%FCgE8?#MSHKk>5`Hd922Py2tnq)b%mK|C^jo5kC6uaIGh-<@jTVnSR=lycC zTlgF7dK?>&>VSMPbqgM}rihlz8dfO{wsq3m?4;ij{aZS7n?;Gz>Hre7+pcM=7eRDi z!lJ~l(o#o4YWP=?HTvWJZh!FXX#a43Z?J#Vf7-u!vVSlQ)3#^ifYmn1$e4ViTqIJ= z5{6V)%?7O^>7i^*h>tMK)6?WanJX!pHR`EE1Jn)J!d_rnDv*X*7@ghp1b&ee8}5DS>=U;w(QKHX`b9?fvFS>nKRJNq^8keh z@gy&oz{e%geNZJhY=F|+u`9PZ*TNckr*kdhCP`fow+ICsKK)`eDUysr1sAQtz}k+T zYa&Qs;r2aXl!c#b2xEVMP7$VyL_I@fMY(uBfQT^}4tt0;=xF{5nHsP-sD%wG6Te}m zuehc`9RReWy>?*niHBe)WnnHt8{6>QN^J$AHWV6zKF#Y5i= z4!o-il9VHP630|7T6TucfdWv`cQ`}Cn!-&5XNu8kb&3G?d}XNHJeZm&Scp47+BXe{ zt1AUR;G{I#v1{FU-KluDPf23g0YkQs{pD=jlPVuBS_5+2`~#luz@}b09eDADN(Vn@ z(`IaI9~?5z1f#8-5hwSO2&lUVSDrY6TROp zfd@mlbtRlj#$tE^jWr6xO{OzcJ;VB449_Q!fyLV4GZ&|?mM`HV(YV(A#`Ge31Gyfw z3r%g4NET90lLj6`s|Uu`*nW^cMXJhrlni*xdIhW<*5ER=5Snv0Pcl>${9phqc=k$t zs#(r*i>VlRPM4RSpLIAojY7x;2ds|ZwnwlL*iFosFoO?Valky3XSQA*Xtm)Xz~4!* z6o=XA(G&b;WDn1_8Lwa865$F1Pwt{EAubEP96-jSPJgEaQ+ILK$o$34yiw#O)!A)E zTZc+2Ch5>jsP${8s+3o~xvdAjt(AyJ4=}@Kws0n8e;w~Yg+H9rP}m&>HmPuHX$o2} zmt%+_3~`t0W~^jKpf+e}4$~%KwHvvn`UNc*j`Q&{aVCDLJ?<>l@?=EA;2cS7wYR9A zB-y3U{@;3FuO|)h4WXcA;?vL6TmfCPVj_Wlls|VOL+7S%}T<@u{ zB2Fnd)HMuajJiw6G4n0NkIhbcOL-=sfiS~B*kJ$&{^;r=#$P#8*LFkS}?M@R9lcCfa7VKx>hm4251Mlp%2xj_@UV~{$=D)QUxYnGSbjz?nc<+51`UDfd^HMeV#s`50oJC9EAn{XI!q`2YmW}&gBYi-5pyMj+5Kg6x;8A={0@GG5t?; z1fggB|NL@2_?>rm)e&6osZ(QKpp(ane+3mHO1RKq-I)1>rF_dfpUV8$f%^#Tv;nM>}7bnFso2zi_)M z*Bq62RPd!RjhN9j0rem~+^cz_#1-1$Rl#)HCRi!y;rzJeNw8r+Ww%@+%nNsNoaUflwsh?Uck9@5GZsaE)DEzy$!-Nx8yFG2p#WY_ z&XGUpV#VZk;}LQJG_=Y4_b8J!W2UCwkCpe$Sb;Ppl*Mw^-@cMwRSlXFGd?o?;_?_# zx>^J&-{?OW>6u2X0jU(N9c?V^uM$*VX7Qghd3HhyNEXnwhL-;7r2j zu1s;%p|e2ZMtT}2MT4$nc{@aVGfx7lGib?D0sBL9@u8P5lo_7(v^YWBw=$zSRI_c5 zfP>i_`JZj=Fxf1_C#}&ONS0Y`SxuYwcL9>_5gI!f1Gnh%0Ld@R=5M%OyDwpGLzAie zQN709@z-9|+lEL@T^ungxMO35gN)&@s)ydKt>sn+g%}pIQ^V9QGAkxDZsIRb&<@Rf~6EekdRF*q`4! z_KqG@T$;P^>3ZJ}51iZJ5Mv1=FjMkO4Xsj85@gtBg%ZIuulZak(N#EpR({4~kOm@K z>ar{yR(Chs^KLprm7zPVW3cR%xTW9JIyQhBDkqfaK-Q!5!@n?RWAE-}n+S_pg)%SZ zUiqhQzRa}gpbdN8Fsao-W?jBQ(=A_Y%mqs6ULuN?+A~w7TNXT6UfLj6b80uy69|SO z=x8uiTT<&}81hih-haA%{r=6(ldn;*v#a#g=)=dG@y)lNe}GrUIlkcvHdEF>HfHTv z_;_hjub5Sh`MO-mYSjcP3`p>kufg&R9`|?;68*yvEiX(YRD=g9Pg1|S zseyLo^vjR7kzFplA`)f`(Km4Ee_+BO`IMM3;e55g(`X$=w!X1k{}Ld#+eX8ora{a@ zh-7DFS;qOC{x%MJ#aF1w7Go*#^X3h z7!M0dQNVC*(`{QM&30t`OmppNVze}xYP%WylZ=6pO^5WN%|vx|(T*3L!GZtg1(JAG zH3d?O)`{qZxsJfhheg&|ks6|h^3&iJ+lOJ!O`c>3;D{BB7x56cx)R61W30uYmh{CB zu$#Cww@_@lO5qg&NMvw-R695l1*YM24Cd5w4;1lE^gPjcfydzucc zOO=l9pp}je=JW^{_`ivJ7v)Hf>`ar7g0(SgD~_64+zM43&GZDjhR59sI|2; zc6W7)CN|ka7B$q2R?oiQ|DWR??h%owBDH4Q5(^pb9uXey$Itx|JjJX$5ZPV(x=T#RycLww9%9+H`^o`qR9f&kMPt(1j8f=F)FXA z8Rff94<9@ON#>mSb%ltuy&KLRRAYTch*Njz)9Fc95j3RRdg&1c5r;G=v@|$_MDXW+ zV#GU4IwRk--|l?VM-wRJp)tGC?{6veSs5bmu$QnWjX)a;yDP)bB0_10EI(Qx8 z9#Jcue&|H}sA)-t%d|apQWGT14S&`NRQO@Vfh*1Hrh@?=lYS z9ViYeOWoqt$(U|0CFH?~c{43EHuD=hl5|~uN}@riu`(WAoi9pO5{WsK0#f60d+fD# zTG+u`hA>Ahc(}`udKm{(g0l`z_6R?vgzKV7t|QV@8hKR&Y8OVHO0(PRGm1j{6LhqE zaMHQv;B|hQTwAq{@`!RB*W;NwuHn*ET|%Rz!Vl|GSgu;F3EzEqJMEbG-hd(1lKBd*l^SR5NzAdL)(mjtIimz8bal%j&J-2 z&A&W&d=oKKzx*bGq<;BLN5AH#<6m>r%bhnh33oaD($78XHS?+{?VcYM^et*DrNs@m9kN+94&E6Y1eWfcD$+4 zRtt39*24LfkKb2$YV-U0)tW8Zb}wg9*~6T_r979~8U}mZ z>m4pK5{dTU zBYJg@A1uz6=ji}luKbDVXssHZg&`8x&;%E3aCs#hv#5TyhvFnQdoQe+4Yq+Y^-=~v zbd~oLk~&j&XWALsg+yz~T1UbS2)OcXnpP^}94TVs44mR2O9L+yhj7&5zUCNB`jTZ= zyr6QoVLQpp3Bk%oyVp!-SGpFGhUjO?_QzLC3os8Gn4WVIa#)7-Z?9y%zIp66rET}) zeMq%=v4zCVPL(!#1(B_C?o^D-rmd5Qn|7!N)aPlN$=ukj`v2kt5$)Nbb09X zcMGrKJq{f5Pbr-pDmtu!P38$I+H(U6`L^<}9ArLm4VqGT9gNa%VuNZ7&<+T zz*5Ba9N-J?KS-F3t|0E*G0IN}CI?L}4|o+uridh`&Z@M2Xld9OCI*gCnxwaf5s@)% zAHKlq#Y4>0v2o6kgx<_oHKX8x;^_xuPBrrqa;Ehgoz^10s!NIw1@&Rm-?$<0 zLW(0gOOiQwcuz-)ywVKtg3OQ-jJl20*CCX`P)m$&4;MyO@zXC3*cJ6vpw7|5C3Nx< zHE`5&YDlt=-v`E6noUf2G*NanXi}Y?enW8CA~GaL42&^vO^qV5kr{PH3NHAMFN`PJ z>Jd6IAgH?)`c34yJIIi}FQ^c^S{bbXw6<)0u6YWK)BbkJH?ka&Xq!|=xd}sym(~EO zL;MzE9bj0lhCL5wa1N&utmfGhZH>GTXFDmSAa2xK!ShIVe~?j8L+R^{IN3heb{IE! zI@MBkb$g>FYO%_=&+CxP_$%|Nsa@L}FswM~u8(hmE<^y!bojU{C@~9m9ZBZu*A!+& zA=OqyM4TA+!+VijEr=egH}V&e_gSjul$H&dX0i~ zS&xo+=C#LEBgOjd?Q(Ju#=W_ke8JIf5;@Zw`kbQqOnuIwpeNqIQYaV-rwrkpnKsWg z^soM-M2P)lo*r@;<>>>)B?w-%U>h+A;=>@2!h`{pyV_-9+I<1i3ZoF zbOpuL(-jXV$|lxBI~1x6o$2M>LQI&H&yEHs8H7wNNG)Q>9{%-j82bK9k=i}AX4IRw zRf6$fqcP-X7ogv^`Lo2Aq#udm`g)u@>hy;-ZFmA5jvY@T^|4t%f4+3sPpPnR`tx%! z$qU(*7Ms)2`(h_*r{5QCm-jb#Ly;YjwoolA6&p#Mq&mO4d)$aqEGEportgtH%K)X* z9FyzbU)6cZ{imENi2zkun$mmU=V>*J%BArjrq;7ZRc3CsQ#1=4dQt0CvTYIEr1(~6 z+m*(P*F$bKxQTqCs--@*3K_b?+DWvdM(3oVCwIW|BG7#L7B!;?BY~oHbfDv}Y#F9r z0#G>2nb|a7)((lyu;}GaV&R3=gG2z#aa}|rFbP$A6n{z*$n9~&5hfi{zCQZZjf4>a zwrv|y(!ggd#NT<-?INMGqg2>e*UJlPI}?q1`gr}Y_d@NcR~bqtt@%+AFIDWj3;)2-bPH8*o^zs-^5H$>p$VQ{I{Y@@q zpJM$9I4hN$&26Uu1oiZo%iS8iudHP1}nD!GRA+EEjl_f1! z&rz>uYW*2Iq#PE4x8p-#$*XEM`v}zSt4Z1_9R;#Jt$r%JPh|Luy=d49Ek)a9T+2cV z(@rR@NYl{g33>&@kh2~tog0X!X%IFD0?HuDNGq&6H!i$$WKTgpspgbI4Qetkt^Ld(f1jj-Gnp!T`lP8ssnaL{ z)nf*CMx!(r9;-VWeUgqfmQenSgDE*Xc181&YgJU*Bvr>x_qB1a?Nk_#_3zt?W=ccU?d5d5)WwQfhVmh^`qxBR>rt zc{XNDSVANxvNk+p=CRSdA_}0Dg%-Iumf5xEybGcj4QdggR@3RrnENYG*8S)ai5aKE zDz>>>7~qj@&*1%Ge4lPuAmO1XpLMr5xPj{l52~h#eB+uQ{5=Pal-)S0n259u1|BbO zdfJWEV|}0Jw0rd;&2EVz2ygwOre(fUOVLD)36hKSv4f&^lulMB2+VZ@RobPUpX)Bp z@4|ErYT)mPEWu%_(Mu9617R~N89&;wzRyb%tdJ{-^G_)#T(AAeR72o-wZo`j80&kD z&D!(WXx%*I3SFu-Tcl{kZo{Z<90W$9*Jq)jo1{JyO}j2KfpOZhKqEh)^8I>9zF; z;C3uknfAhYwy9s^FtqJ`Xmewd_0q1M>nKN0zAqG!M- z_g58NkB@i`!KDJfFyq%}PQXt-I+@T@c&iNFl#AUlqO~q# z8=iH7T4`03IK#F&Ar;UXczT!RXQtQKRh$xH1a##FSKU%s50M*5&#WS>?DlSPjA=P> zHhkv|S`wwdH4e|~;sPr}tNIbI%}s?#aWlrteP19U;l!`9ir-f=Mf_3@`hq-SXixNy z2&Q&5<&TFAEK~E_cuO<{(cD-_B6`->>YEy*85%n9W-0{Gr4<2f6x}0GNk6xkTHEhW zN>U@~esi~Kk{Js1!7oEu`L~!c^ddIU&~$qKX0@ceDM|co?gj^j*}EXYdR3e$#&;A= zRK6hA73F4Qd;T-H@d_N+I{$)BKor<7YUyA;C}jd^nY2aMeMEr+L8=bHHs3 z>7+b%M`|#DC?2I1Au;l1`NCC(o%bhy0XCyC=;1Gxn*^8Lqj2U$qUV{w$>?mY&7UWKJkg%eBQho)aaxOH_3qK zIX^oM4S5NYXgiuY=}B}Qbe7Q$kQw1T=E@6JH{40We4p}qc{wE?aGLn{xI2lHPQSen zb`}XQ`no@wEkvj5Xjv_PgEgL(u!l0JU^ z#Rqgu+u0ZQg=gcZK~V1k-MhvSJ`@8WVAd2>C^Um{N7k+GotWe18ec7`ROddb>*@?~ zC2@dBae4VqKm7Rq`rUVbdH+w_R}VjY{oRj$e)q$V{#;G%5zKJCyuCmN`KpFMwSGlu zt^@ht8^I?-*R=aO-uTSO&@$TSaj!SJqI>L9WPyM9YIM`I-?s%GaGFeUL{Xwe5ok?E zX{R~2xFUa+;8=&`3?CL4L65Ti|IlJ)i>aM!n zsr`5+tp<}uX(%=nE(yZ?usv>AP-9bdD4ltyAS{hVLs&=Z;F~K{D9k;sxv8;ppi%2B z8XjmxsV#+G*+SwTYe0J1cDpX`ky@r_Sg8o*Eu7!honUXv;u6)P8R0wT#}5qecQ}hB z)~M+_W`+!)QS2lg;Cp{EOKXxgN$PdxB>z0WwzU|(LSZfWF@t?Pgzy9gPAOHF% zvzPk&-~L-{uYxi(sEFncX^dOst4zEr82P`nL$XZzXiPOpQsVFQD|A{l0|wIK3OK`& z;S56@ez2t1L~YHD`B0CaWEzA)v=o zBSzQjM`tLlIiv1=!PIa9>)G_ZE`thvpuKEUKE== z(N^zzQ%Zw5W_@w~x1i7vNDbJJC-p(HDv(BA@f=Kcoq8XnT3|4}1U5|NN(K zzJ2$Cj}ci~+$wgDf9h0*)7W);CWVu=Wo)b-8Fl)GN6w2w)J~2|diGJ1vb5)>$TNa; z;LTBC`3c~<{XLRZIR}|DVKj({cyCqqBBU#RQ@$f^mc`}wJRTEd+oYDw1!r&caFUyc z^(G$&PZZ&E<>sLsj%nJ6q~v7hgIFNf8E83c0vt+bVr*@*_c2Z@zM7c5vs%;ZpOUM~ z%5(7DRlSzph$fM3w->)2&quu4t}blH&;*9|&4ryrB+SwAcY8V^L2g4YAqnN+Feq?H zD+h-bpsPJYO1NM#OEn^Kv3<8EGe{ejG*ao;%Dd-NxkGB!*2TJ9T3WG#b#WsX?&3f6 zp)x1fpCOuLd80{xiu$j_+_=$)8V9=I!BT6n*UWa*Wjs9uJ5Gd+q066*BN$uXgk_cn z4u6JZ3YFcT--u4}-_6lF@Ny#MX|JD~5G!?-U7tP=h_$Fgb@E z#SvZ-ZgsVQ+g@7Gr2-z_*;F3hpvzEf_x0K7f(Q|m3S);rfho;`v2+%2W{KnH+zILk zFP!iJtAsH8GW8v zZ|btPeO|5Y_H1*$eRH+BQst?GVh4#bX(K`xCX(pNn+vU{*sxx=2pntt-8bcu6~vD8 zjuIXw8VRdn`?k?iooptrB-GU(IiqPdoPL;RCwTMsf>_SJvcP90Ly+xpuWu1?#pCYI z0+7;v?U~%Np7*S!SJ&)2m2LI8+=C)X9IB!NAE;h;PGv{}v=bwdFlV;CDxO4PGSHe$ z^OfOClS8{{^+fOGCo-_H$ak~6F&&UYF2-)JOvB>M4)RBW#YOcwyGrkKw?=K0zsy%R zSEz0^Qk76@>-LT?AeVosO*KUN`tIre?g@soJWzv^=M8nvt6ry)=UR#$+boJD?*S5~ z|GdD`-!bPPm!MFotv^uOMq^KNnq|0WsgAQ<9gAHZCHwc}Q6+|S(oynvPdYAa^dOF( zaJj_aB?-^acKQ}B)v0)-(M~Vz9qG=9nBm6Ps(JVIxrp}oM&YH_<TqI-8iSdNPS4X!F#@V$1aMF8FXMnNDP#f1sI&81{_5oLljN;?FLYV0 zxmt)45{g$Ew#{NC-nSJlS43C?lOnVB0>!1@R83J}M`Z8=Y*o#%ppKzc-BfRUxS~8D zAtbd-;dcFaTT~q`U2nZvA}ukE<-3&NVZ4ETpI1e!nIuiD4~wIf<9$MnF51NRn{^u; z_|=+b6w^F#{g!y()eS>yUPKlHuVLn5p5aWahJxA}G+!l~euQTvfM?Z9mW!!_c;&Ae z{-BT`Q=rvFdDmEdBKkzH-xH@0=7>D5q`bPjr4s@5_WSSNS)(W(Y1~K2nMgiUWm=py zbMd9&(Z1Saihni_3T|%96;`D4di<$y2jsAf8w?tR->8Dj4(;lsFNB0qNt*^9#}fMD zHhuOZ9>?pZ{Q>(@D}sfI-LDLd^VVSzQ_<)6?T3>wD817<{=7O4eps5=b;cDz)5#NT z%QNn3V++rRMtkeSvqav+*xV`NHv*SQcZJIc5#SIkw}*?bFsE)`n$elGZ?-S%NwkPQ zdPO;j(KkH5R@ON3GB>H5I0spD!=vqaAp}QE_1zcaFBtdwmIzkc?KmcaFzSWD<73AG z#(Tq_&-4~Py4V7RGEP3I4?Z~Iz7T4r1-bKB!BIS*JtJR29J6xmbJJ|v;<+7FrQ;M zkJbJ5&p-Y6?oY6^`07VqhY}k)Kgf$9vV4p7Z@qj#)fFn|a}(=vYg;C21T1w!u*y_3 z6~A&CHL=>Rah^$luEM?e!inZ`+#5hNu#hMWTPSUqOM2o<b`No>omT4DiF{w*}(Dyjw}vta;Ze%CI0f$YO*41G~w&W|mC>Y4QD`QpqA zRhoAAO0kx$=uR-;1I&9p;Dhkq_XHz#x;maoxI@kdqx!*^zeX`VYC1Uj1m0x}O%P`pZN}9Mz-U{^T>gNyWnGcCuO~8LQWRZt@Xq<0HPk-Ie==AW|c? z#Q>Vth#|y8mJH}gEy^l`N49kqpQ0k&lIZ@jQ2@lHS1cGUBZKw%eTy5o z^oT}{5z)hqh=(XRuR@pfH;o-0Hf(XzmcZmHwvYT7kk5R0 z2C%AlvL_n4}5>28$T(~_?d+H%$TkX;uYyv63V5RtfN~0G$ zTouGgMDT%Z3(7@nJtO^S0WiS0sbSXE<|F|?rjo!w705Lq*mV`0pPA8&_^Iw`vSAr5LQI$Bk6Tex9uFpU$j!Qa3Qjsl_6_)-GwelB09CBOQ ztHkajb4Ywt;uoz}@s4Yq->ew8d$`b`R`zJe80qkY>ZA^2FTpj$C6XPlm=eY=WAt9a z{>G;0DCR)}2rvt}5Jcu^_~y?nOWWMmfIwhStpq(lKl$fpJQ(d5;sZ!L`2XJf=Fh+A z0m=k3dcw}vuMhTqqaqZZ0LT$r#iuyn`2VUGjtFCSi%R$VtJjA*VyCyaf;N%YhB~C9lqF<@?6bQ&Y>e_V%lI0O%MfYP4oIAx zrq3N?a_c~%@HNyD+CDz4wy0{w{xv*%2=Fi;E$3bv8-nB|xw}yc5(uYVNX(7kW!$#S zYG_221_h0?=;(1UGROSGq^#m9j!k`+&yPWOz~O^(rA;N@_4~HwJ0*XSm?UcbFq0eQC&iXOL3y1hOL)?$RJff)>P$d!_mc*`Z>LRW+?JE=F@I;l6?iraMe z+&-}aBT=S2;V}y<`xJrc#$7^KF7R*{)w{kdL*WbFxE z>M#9O>8iSUy2rpwfL@v-mE_EXK-grcY4FD~*e+jD zeNHT{Qt7bz=XZ~=tX1|YUpyV)&+L!;#LsU)5-rG@CtOk%>jr(K;S`llUWZIn<2GaA z>ZKP>(V31X=MXLN%PwL{kt4$mtq~*F@BaAi8$8p}B~4VOj@b^KpU4}}R&P)wn9`+- z4h~;`an>=F#(?7bWI4x^GQ6eq!>rz<)pOR|a>G@NLfB4e1uXZHI>e%5*Fj@oGc@kn zteO)@I$WcFIm4` zku>q5^ZuCj8Z0pTAw)c|9E%$fWS?y6Ibx%q?HKZ_EbgyM&Ka!o_>74Nq%n}Z0t-i! z2Ym{0R@fFGZxXa;Ou(VeT{Q(c@k_Ps^*&U)2KiHvY#KLKUkyI2y}#$;j`V{Ib1TBN zp~OfdyS=zWe__|qY|5?A9s_+7XsmKAmn2>j$WNO+^FlJ5 z&KaA#qR-7)mq^070iKlbth4Q^uoNwk8B!a(ygyp+z0j|kxuQ_){Y4;Xky%NV2g;ye zjLjh>LBiqoaH66kaxXFEGb%c?jx#DcvtQcjTFWUfa@T}e;ybX>IQ4%lXfh@0f^2$z zaui|lx3UI(qA-f<&7-Q-<(~v2Yr8PhfMq2HuivtKMdHch(>Z+{IzN&Q6<`K?`Q_NP zDVM*7%+K85-Kg~n5_^$Cnef9Qp)$I=tZo3&*K!UGQ4Rraei&_TfN|qSLz*m$3nn5k$g9aZ!9xe%K3ixIpOk z;F2z8+EX&nOnZ))pV{rx)oUDs$gkRwE|sTXE{M<;d&>PRNBLRHW3>&;h|el-?FUC+ zeQ(woNDExKGN=j!i@Ef^vbf1#j5@t)NiT)GN@67RG3ednBpyj_t_);_uJG^{IEpLA z1yINOP$Tmgq>`q@UGnkeXZ`rLfe+N=Mt8Ab*ddfO5G0IgJ%f;nmx&`J{g*O~w5aIbJ5Ole6|8~2@K(PJsoB#E0`+oaRd!63E#`iN6 zV^1{Q|{WeO5bi3%_-b0EDUvh1CyhOq*0UOkwp2#76_iIOH&7| zJ4_CC@1lT2VWZeSRrhivX9L*nr$xe`Tlky^xy6s)@s0o zLtHPHlzio&yy9C$!R59cowmDLWNt05gAA>kEN_RYRNh7*sG_>(N8s|XsLNeK_Vg)Q z8uff4Jb^U~#rEm-)9X+f)yu>LLNB{q?k0UABmy0&Cz(Q~0|8^+J<7yb)DXiZ)L=3m zUk_{@6{UY*ut?$c7oR!|qfAy3&9M+hGnza-rYMFll zPiZ%xt%UZTTuv(fr4_siMdnjZsgbj5<)@w8!NDST@Xhh|l02oiDS3P2gIb? zH<3#2;o_24fuholaaP zIqT*lyvmZHyj(Bw{n$1>kU{~2Gv#q-a~<~?Bno?{$QV4gdXZ|>=^KWyyv-Z%I(d^* z5KFL|>-UX`yYHy_z+FV+$yWp!U}&fayl+ZWJ2cwKM4Gik;**E`##n!J1G)^e7lM?z zE~EI5ebm+NN741m9(DZsnTM(K7d(y{M7tj5u3z-1o$E!IDRj=fid5IiMo|DKeayQ) zZ$A_#LU{5(l#|(tHM0XgsrdjYt61tAkQ3>qy zV{!S)xt^hXboK4#S0vY*DM7bL6Yjh%eJyfN+wX7d}sso^6q}( z(LUO1tSp49o5ToQ}w-pON>vCGNMC6G29VJgk`a#)90_GIgn8~?agh(tv058y3e^)}< zwWMln{&vCsAQb(w`v(2wFT3x!3SqzOzSkT#pPX^^7*>z`HDbdIAS+c=TM>x63RBf^ zZD1I*VX0|vVo!_iU3{^*AY!Bmk;B)m5V`=wzR$a-Edpg;oxjcESyq91Lip}emSy>6 zv3V$VAXGp$DXp=B#wXCOP_7k*8q!p)N^~j_0`c7h4&R+OjyK!;2WonvLwMNk1>}XF zkrI61TPc=DoW1<0+>(bubwF+KXZ;r>#=!LI_ltfOS^)wfOz8T}=)))7{`P92b5!hL z#*44ADj55jbjr91_bVymS$6nQmYw-}PR_X4Sl8vjn$5%0og+@MvqVm_V+W%`qEaY{ zq*@w=*JL+DZ2R@SgwkDzZl-szS-upq%V6NP;&R{aH6O%9z@%03hB(>iZP>F=+E^-S z90=lCn7{#&MdS#~V5e6Y9k4<1M5IEsIG?o2l-5sMM?_iT_WsSq>|>}Nn(W$66+tj- zU3UwenKV|Zqwmg-1K_^@ftq)J_~|cOVs1DhkSk@?6>v~is7+t67R2}PQPg_6FV90E zx(|1YHw4Kb6zTj6%2G>5=*)68_Vn-j3_gii7tZE|5$|@fe8xt^N*7F7Y&GV&X%}W1 zw386fHrhg$UI(irNX&Ua0z7%}`low@PIL&)&+hk{-?i_ag-c1z-|Fm|1qV5a*OCN1F&~Zk za@xc}7>`n7d{txbKL_GPQ?%V^!m?Akg45_F;ZN$(<-_NO8TaNxf4#)cphRAYUP_3G zrOe47AA_VHW~DE;Z)_uW90dD6Qg~(OM>ys3GVc`t4@mu+7x$>1HqKwc&-R9BFH`Y0y5mFklkxDhpoA9dBOWj1(nk*ti;G}MvM-JS zg#{FT!sX^s`N9B|$^^>Zsal;3Cnp%xwhXJT=`s$(^ZHyWHLWhlO&ff=oDtf*CblQz z)eY;sNo(%>5RXW{M7d}0>pnWE8k>u6h|vHtIa#m^Xr#43yFVJ>O%1GUy8Z6`=}+(B zu)h8NYiTNqcarRYq#4F`bA5MuZkq%=UYl(D;J{x&%p^GtU9Wim6kYZw!Df^D02chA zWMz`W3pa+`Gy2ZyT`%NGh3IF53m%2QmTy3NmoN(9D@Sa=hVZI^gf1n z+C9)Frl{=!x~qH`@8@!{GWSmX1i3q(EjQQct%Fm2RHR#pjr8eO^gC0=c`vd#Wq=d$ zKgQE|8Xs<#Hw0bt+Q<{+PokALCTi5W`9O4tb&seDv}PcKN#I`=Xp+s$kf7Lb>G#|3 zoOJqQ1prwSZnhMh6l5Bs2pF)1s>5NLY3a;inZLkskc_WZ>kIUxU7*3F*Hhr*piBSs z^>^RB`xd7=mm0~-HnOA}R-Iihgdee;+dmoLxPQdoT8Ps*7S@=M(PmbHojT^W&r=8$ zs$;5eja@|}+Qpk4;9GO2tutL;XG+;2W9?x|HU-g_k{EYGgQgb?hawIa1f9F}+s)nm z(H#KPBYLmk+%V6j+m_eiGMe1Lp|j~&BjG@~>kX;&2>unswGEz(Hr#;Azsfm#71gFn zr2Oujvw#M~LP$0I0g0X?8_f9~8N^soC`NZJhR=NPq!s!xJf!wEhMSou&EJ!O-XQHt z8tU`R2{4Ce?{rw-ue_JH{;J#Ma`-D|9G;3qA^y_o=KFH4BkV=si*wNp*h}C6@{<$@ z*oE9&I4>knDrGesqAm?ogBYMA6Sagp&!1U0n@B8MO`Dl#)=#iyGfm}dvK%k?XE^DR zy2PbY0)LeuJ}Jr42q!v^MsPA8!P1QGu+6tF_rMP&12i7}EQc~4j7kjY3A6_+eEGP9 z>ElCi5xqRvJH`m^!w!^K6TN@%lRvdIk|O46<=j9;wzeUQ&z1mCENHCws2)zyDi4lU z)XnQ(sc6jNqo?ng6;UGr>xI1R%H;6CQb0jp8kf zZeY@1zfwRYyTI!TV!oPrbp`f*sy8WK%Iou6@eJ@?afc_phH3z|eH(qDRYs$t^=#Ukxr5VJYdRuz>i{d{WWv{#s3N$gt%pMMHe>GU?2u<78LIE9ggY zJ)lq^;!@-AV^UF~9W%{{vn3+vL?*4XGfI%6wIZzIte{fhJs9zUjLgz)SuZQq)`f2a zmaNezQUBy0M$gfr6CIeo*Ne?NmBw%+COGOe1c#BN&<##up$QWtAHnC(Q=b1|bS* zZvHWtDP$M+Ihw|{!~=Wo8l zL*XD83Wo@b7Ezcp1c_$qd>{f^V)#e6fV0;z;pJC1}pt_qU zD+x-$L+YfWi(`}nbUfVtd~tsO4~gX^+a81(*YYk+tiSey#HTuynH2+{PQE!~Ns{1u zAyx5+qkDS(RhE*8_02*^(NiMAe1lZ1q1fRV=^}O*ByFpjWS#^6OsQQ4TB%;FBz=2# zTWd8*JCJ1Swd^&SubKtaMCHW@AT8IFv^*}=jN`f1b0!Rf!sKaPqTUX*lG;v+Qbj!AY-#KLebnR52vdS1pq>zta&|nY(5Z3S z+EkB5_WPnKNhzkuN!>e)^S34w$3dP{>wT$k(oOnBWwqW2TTBHFfUP*pW?KT*(`7b} zB&Vt2m@$tPk6M|^%I_Fj#P8A?qOgxoJ`!u?e+NM}{QPIXOV!Ng{nzi`{a^e4H#`CT zbJ#rihypT@6SccrALypCOe-HM|GB*vzLL%UhvV&?T zkZsj;FUY$3MD+J(6PEyd5lzx$`J0I~@tcIz$cv~VHYP@!>(e*O?X@zc+%|P=qBEM4 zB8i@&VnzE3MlD3FU^bUO?06cD`s{adts?+Q_xd)|B|T+G*e03r^UBZr$}{ys+9DNv z`FSpF(=<39EXSEEs@nlQ#v#!lTfmO7+0`N(bUTiR)ZE3lVu8Ozrj*PV4r8=yTZ%(u zH@;6L60djE(qcpQS<$V`I}0D6VtS<3ArCmY%C2AdU#t1@7n%{L*2w{srVn;^M|bg; z*wI}a$aZvt3GBDLqx%^CxV4Wg6e2i$P^0wCf)VFuW9O3jFCKYXb#XO!8D)F%n0dN^**38pOe69y9yQ5-c+>>O(Dyx{%b@I-xyt7vM@PP5V!GXL*-4Mv*L6GY_oHEvzeY1y<^O?kiCjJ^2>a}69|AU?d{@{5)0PiDsZ4{Hyp@QQ=DpL zU1jmpFsDE~`{IzwddK$yqQ1o&04}vbb@SBb6U(N?YD_}1H~C?bC`-Ek{q5$TzW?F< z_Fvxp5ex8-9-(poR?o;Tq#p+)`_-C^8l(JZ48;-ch?7~AUsk@SvCVfyzjq|W5iLkc zC@p(AW;U`ib1z=>FtS)V75P@u~!K8*s{A-QC6>%DPWH6Z^g=y;U;UdAMBrX!fSx@$&OH3L2}nu6cr{b z_#?PlunAdeb~ZXmbewIz3dE|dG2%9j4OcnUi}l)A-K>o=Jjny@0+*{X#k|H>x ztVm+@aF2SLc65AVu61zu?-0%jP;fFG!4Z@c^%=SUrEUI%cut9o>j$PouS(o2_`^(4 zN%?_7^=ftJ0v$!?qU1FU`owjfU7HXaQm`qbCUGl+*3CyREw7!ydoI;QQ7Bg3dFmJI z@sqcL(2PJsT;pZKLGs(6tv;Ov^7BDoMj88}#p6Q2cLd3qj8T>ENe~miChZ=Meyaz9 z@Q1KOEd=-~nNb4oSDcJ^fG0;PCc~T0>Kc{78uUbc(NUwV+gB@ge{uP6wIWA1Y(aDF zS!z#<`_Uma^?H7I+-n#SVn!!y>-;_O!jUe36PG;6q#r0s%+=}f(J@zOef9XsH{bv9 zryqVG(LJ1pR3qXx7dMO6MNF5Tb?O*^cm1-94aunw453T#(qk67({d%rBo+jgsK==W zxe~PGhzJT-r|KmlBn}R2A84F-!skkN@;^Vm=yBF>ZI1_^5ZcbuAn)O_sz+6hn4UzFL zpgX>!7YmWvk5VKQA@}(<5T~IUF0H@x*LKVLGTvTR+3q-rBZxl1I9|fUq?{k~*^?A= z#s(cLJ{{sYl#PPHSsZTEr0*DI%g9deyYOQPlO*+@zdGwY^<5raqsTLe+|Mu0qY4mM zaXy9s^RQqGsoqn73B)JjI9w)-oUbn7>*i{+fnGpEpkeDZKGXv>^^+$Dt1%<;tY_F*-yVEyNEh-!cqFJk zeXz@=x5;$WOr%3DlFyK?(^D}(j<13^% zs3NyBnslYv!@ma!&;MhrV2~NXh9Ug67hc@p9in2~^#LgpU%`$q{YAMO>+@66 zAU%Z0>ikoC=(EOcZBQciY~D7E=9-hk#*$hv5(d3`}Y%COYf;bOK5o;gU%#S>bYNij6M? zl6F;}++SQ!e?2}wt8-r(4JwOkhDWR&pc zJd8uG)6$1N_We<0#=~ZFSRcMT8RxKe+)l*usFqrW_3+cHKbBa7mS87Wa<<*m(qSVSQ-W9i!KlG&GN?+5;OP**Erh>QNB}v1NIme? z_TcDg<9h?coF_V3-ivX5xVvypFedG42Uag)SsHjrfEew`e&_F1H+>tWet%OH9eBTU7VkoAqg7a3w{z2#}+Ch;(+a_Y!fvFo23A z9)~9MeSW@hz60Mx0-`?PaOt%WWg`X+qm5)6|IOkQ35T-->cc%b#VBZ4$GmGRiZioV zi+Nt8WZ8%Ter(>DVz-Zh^XDe=E#EHuHCxg)kFU4;+AbE;*D7J#lLn#!$%`W12dqtHCbP9fr%)K;8 z*ln*%P?}Ry(~k?h0TVQd(HX^P$%YbK$LV@~`c?64+3T)Kf@z!W*zid16^>Eu@WCk7=88+RH!xHjG(ug8 z0Hp>%4wMJ^r&T8=b$=oLw!C#I4hyZ$0?2wQE;J5q%$UIg)qWz8UodjJl_m27Y{8cf zE^0ZBFto+)q0@kzA|K$3>empf3B=R!P$h;UlYOJ}b*aqloBRDV$j$d(-R&E2i5@?M z3Aq?WIS6Wpu6mf5zy^(40CoH}X3*IQE2HFZ1=t)9RP8lc#mFg3eGV}r=(KN7H&1WQ z&x=QB-|FW%fy?1}&uTZEE`)yE%XSo-QQ?D2MvijbtDE>hE41~D-mA%s#$c0N zzaHBpUnlPfyF`G^Ah2@bwa%{qnMtj3w_5c3qDIKXQNcJC|KN_^ME0cO)c@;Z28tV0 zc}j^HDE?35_L4tq++I>fj@y4_?12>;>;p&{bISF@;cX>cMa&=%xWKs`;ZvgJx_Pr& zV@3TRKYjhfyX_C(fB)V`mZVs~sL)PUXdF~kbE4etVb*_g0vsz~`e^ikVF`PX-eUTR z7UE_Djk;xHQTAP(?={Us>wpLC^?Qbo3K_L~cDEL(fCuxQ%HOa?~dnVsW^E_!FKJwK= zs^90o=Gj2z=GA-(d5D8OAE|+?`B3ibM)}bX38;1u&7soQph5_pOI{hk%wYin=VzyV z$&$9iPbwk;6)M(n-XmZf_xhI1+fH!#=vX&Al(5Kjz<{|Z^_MyR^lPtTw7%Wng8V_L zC%vmvI}1enj*|OPpnr3J_eHV2%QT_U0c_$fD4xKzd7)Cv@^w|?pz|Rwr4NqyV0-FG zq}30_WcK81((NTO-xQW;sMgEin$j};(v$Ja@6o~auEup<(dCCFtM^29sCVmke?bZ= z$@jnL$4n|uquQ{4Wi|2 zbHD&f9kE!V6NSoB>a7@o7vu_B;AG+q+cNpq27jtSCDlTDN*Gt*?sb86un-blDlRhq z0)E6-!~GHz!-6rkc=+*cw?ERYiz{e|>5N2+UY$BKAZ{d8v2-HSM8(nSL4$eX%{`B9 zoIZW+Y3FIM<^?Sin@R+!w;du|8d53=TixdOPi2zn=@K+@=&dspl|?;wbNkrwnuW|} zmxs6NU_e2v*dCRF0$-34jfE9%xL+?Qm(&~I<=;9QQD?wveDx4O>O{A_`4e7V)jSvt zRR=W9tXW}#wx0>0=PzC@IQgUJFIVej!#2JW@k;H<` z3Vxr|csit+@Yru9`1s+9L!tIk5)B5WQA}+(a-C*M4V~&r4X8|#b>rBq4krFgqfW2Z zUEzMOdKu>4-#vey96Bn|CW_k3cjJPyc6>AEva{{ zX+0u*77Z50OFa4>6zNg@5v889DaEGY(HO5~!4>JG9q=VJgT*>r54Pvu{P^`BzI~@C z=aBW<#vi`_o6RFWlo#ZCD%cDgjxilZhqN8A7peN}>8S9=+^BAPvan=o2vC`?yv>5w znyJo!d3(n}ZbECsPZgD*Q4}iL6ikBX&5I<{fPLGwJ}sh1a?p|mijszaTdL8P1$Zg) zV`V(pX+?Pvx%{EdEmw8=#eRT&{%0ki2tQ71HT|@Mm5!&sLSH+{&iwkr*_m^Qmf`W? zOVW=Zypt3xtIps(dX(Oy7=kaS4nX4p-kAZzP*@CBbad^{Gcyzw6gN#u$06n2mIP#%&>Uz{5HMs4AIcDjNEMg^7(Nv3AP0;BV9&_q2?>N;Jr{=P7(lTQTa z=H~uoN8k-rLzgFGc28UF>PSbk++f@7n<^6{ZD=NBIUAUmw$%$3>X%CHGY!QnAW5Lx z2og~4NZ)I2k`B@1{eLrnOVO7t2a^_?rJ!2jur%STM?C>aVW)RXk5lbg*ir=rlp_O>^Fl@vDI~6cs=u1_38Jr8YuC=9oYHo0pWM*# zzx&UQP#CQ%H-svA@oKN&J70OtEzXxp!uuiJ*UNfJu|pqH-1cO8I%-dV3E#;qUssQ7 zI9<)UbGZ&O*|l}$09{h+@miwZGlEvC{HU!pJJhQzM_~^4;^mEjf4KCA4Z3X^u7-CN za@l&x16uYYi+H%|j~$m7<6Pn@Y$YWt(Mzv(z49x~w+vab77v?>IY2&Wti4|w&e_u= zPU@^F7y|e&UV{qA)`NsMQlZs#c@rd5M)3^To%$p1dR2+y{IL3j!DS~oCi{6*U0ZTY zI&#&r9vahP-8(X)mMUEkhf_c{wGlEWB=Zs&i(^9wZoPo^h7FqQZar@sxzzw|Yuhnu zQ(s{NBa3*^T_FsLG2_^M{!=wjM#>046%+etfxA!45niRzAtfCBZ|U=fVXtjZn?lNoM?*yoB_p(3%*$U|5$)8C&6lZ`SbJ z^J~@M>_n0EQJ33~NAaX!aHQY3yV|riLQbOnBk%=E8O}Tel6Wo4)#kp^d2Rf%RIr|X z3&d;ukq-1}rj`yRj+s4_bPmI1$r<#Tp3Z;3g7e9+9Ni+ERw>t8gQc%@%5m7`xa^OIjTb*R}dnhh?mDq}9FkxfS# z`h6F;*3>v&!IVxYu#`Q&9`vswYi3}=f44vRXSSkv%&6?Rj=@f%`}s%Pu4yTa!M z&K`C8hB2e@^5AgnU2Hjt1;Qd6R?H;G=M7Ib*Zqm{WoDVqlyT+COV%4a(tyjXQ0vL) zkle^PniXkv-f>I zq8-DYrDAq)?BT=vALZLq(=o4iu%@HwN}cuk?Zpaif4xd3OTV_P6jhQ`)ZTSIeDI@vdYB)4QUj zc-0Lp;AnwEIQcJ*@owc^AbRQ7tJY$DeOGp8tk6)GXJ<;2nFfzDf1}$RuK0J>pdCAh zRGyon6X*4$mcP4EsA(cWQ);V}i)wsuC+$Qi5sh(IgC2!Kr(uti$itFBiCl4dpj0JR z7aVT=0R0YQLroQ=b>`y`)Z0WsO=~j=0>@N)_$V>^G?ZZCfT__y1)SA@>3N&I-V)ch zxny=&2mA?RC0IVjpHwja2#=B12yc8L-l^sxv#ovv=6y!}FmmK_K9HhcbtWU=kt0Nf zzEZBhVG)6WK`K!QqsaS$(+8v$VBF^F+pHj20Cm)7SZ$aqDAL(-Jrd=?Wkx^Z5D~xi zFXU#_bU;2tfdDU_sH2(=zi`+`J)~N9KD>+bnO*#lZVv@|Q0C?O_Vn8BvXOcQ4K_|Y zxxpf(?qeWag^s=Y1!X|o;SPQFxXbjR4GCUOzTStZ2`knJFGI?3#$e{Y@o`jnw&F6< zxzd(K%i4S&n_?5;C6W6N04Y2d&cxFu<6VE;mGcCE0B{IAuwYVT+stPf1mRXevn0PM zT%clb%;jWMyp<#kgWvZRnodsb8No&&bjG7LP{jqqL zv?+%R5^hbV;~^t>D|lm2+XVuhAi*NQKZh}bXI9cq?;h(Kne}WVNgbEhc`&z|*ntcV zIVS#d8H^v;y^W#kM>O9cz_ucC{e^}3{2k{L?xAFe+V8AmUd^u8kGxr5zoBN-**EWR zfBNemNYhjr(0BzRD8dc%san__<^Nv($FQKM*m$p}AJ)+FGK+En?U9F!6?`yocSOoM z?IR(Bo_G!IzDF3TKxh_#kO%GFfxtA-Q}6*!4~{wJXM`G65o^?aO*-PDYbh$}MkDr2 zBH}hT9L1^ZIiRG;S6Nvt_=Qg!cxrJJXv`Uz2VTSc}8n*~QJ` zF>f5F<Am6J&Ki-i_q6U z{`iiJkbnF7hp+$of+d){eH>)@DNZ^Vwx#S(S8EbBDoDv5m~A+wym@K}Wvr;AFl@Ts z2C=vDU&u96m!drAjx5#vsDAnO{Dit-tj?e@aQHy4F$lY6sth2~zlV3bL+Uz3fVe;X zO4w>o*}!Jnd2V={9c`5^yD{kMvSLVCTa?x+xcYkKe(Phv!7KDJZ&ON=$wKI$xDA;2 zl?&g6+3fZazlbZGez5%?4X#L+4<{iMShl1?P z-NDW~`x&~Tr>k>T2+x`m;6I~h2Hs$5(%Use-yu!x)&1p@RrN#CO?U6&7r=VA7>$t!snc_o!I@*@gzN`NRuwHq^0oWkq1 z99r=+S9S*82*1Y^18VGONtZ+;`dak^%H=is(9|5b$KM%t zNWjb~*or&lp?J~(oAGvBBU>|k2O?nAfDa(GpiBw1zO)IPUuhOBg|c$D;K_>8)(*a# zRVaG!1CR>0iH7b|0AN1zq8%2$yjx6!TYH6X@4x=bJ3B^=+P1I%U|~YyE+Ckt*raa~ zS*RstBno4ji-qZuOLVyQjw>f20?eeS?kaaF$efjqO#m}FDg7^N@fBKpKwp*{PV_lr=`JM%C6w|l@ zchD5o-ShO%!;;)52K`8JrZ|>rgd{7@9@xiGF`E)=HP=1D$fI-7qiexdXkhGVSD5s) zA#P3|9&N?DEecH=BAjuOKFv^SJ2~Y%?$ux3uH>Yn<`1Xp;3Xh2n#%kb&!~g9sP=-1 z8@)+@+es+4#s45rpjUo_O*gD0qL^;f>gmNhr0;Q8T{S!qp2$sYsIuK6-vX2(eU>cl zF%uGHY9{!YCejvs;TSOv?Hu>kRZss~NDnnczWdW3{`KbjKgE$way2`^qF;4i{Ct)t zv}a>_nAqOX_$P(|qG|A!1sPsl9BeP)T>xtgMPeQE5c-a#(Y)t{|83n{qnIx zVXHrODCCyUF@tsmhP*njfSIgV*JTjb(%bPcBYX#=UUfXo{1GBgsPv1?LrN6|l`q#M zYuLUHMs9dIe+H-@Oc8EtZCf#2v~ByHid??yY(}x(e>556K4`>01jU5;yS|2< z)Na8c_`+b-OPGl}T2p%~VwUbgc!-Sk+T@xh5u!D4Mi`ZZ|K$7R@(d%>2Re?j^&`wFA54fGdR!Pv z!r(**VbR2JQ`akbPq~LX_VGvrEMxGzBekb~i*efK%P93$F1%0$y-311O7o{)VS^D* zei4=;)r?hq|5r912a zp+xkQTN*f2iAKqT>T4HY5RC=8WI!etm~^&lftl&cgQFN~n_>(tDoJ~PwK~p@NTigQ!I@=x;Tch5_o$OD*w1VF?Z0RHZNEB2bE1I=&^ZNI1vkT=ko%I zpIFU+(gCZG^A_$&|EsC0&6p0LGyL)QzG0ybl7$k0jEDHW?Ss0f8eWox+^rR;@uJTR z@sk4URP7vxnc6JRY3DS;CTnrPB=S`$p+GE_p6%Xxdj4ibb@NArJ_UiCog(eGRWYlW zi0965{?iGb&)<6?LEQUT3J-%Sd)>vj*Q;i}ljwo!Je}Jz;8vzT?U!f;zV12Irp5Gy z%usVNq1o)$Yd34rWB9b2KJb3pos*{acCTk>gt|#zis%5D5-;7a@qAA=>bA+7o0u0> z^Y+cnMgqPUSBN!n3s{Bh@=1kghT#$$DwP%>{jmP(h5vP(vit>)Rff1_`?M-q8Fr7r z;LygvEvihVjjnm5Zyw3H@&&?Y>~$XUnQpIJQ8YP&#@PFO)ae@rH52eS$s026^(_Me zzrGh}+oIX4muH9g=9C_Elw}m=Kaz&wBSKszGV=8U9zXRY@U4UVJdur4u69sx?j36S zL(&}{jmvd=V~0*pB>jR=CEoXy&AX0v&Rvx|&J6s>Y*jqP`Rbr_rSb|7*)^)%mqvC^ zp2;*-4tyq%ua^dBadbfW(<711&2RUG=E_o>#21y#2rwe!x#Gam33RBdQAhd1jZYd| zW~M*SK>um4Z!)%1{-Yao%-HyrWFm7~4g_v;?e!R|?eX0sZt!q4e$wrm*bMm-kQ{Vz zgn2%NKwv?M4N8=?aI>y4<`;M%>gWcJg=gS)B<81l5>#4QXiqxkXVU3+I}#XZ#w`6v zU_v0*b3CoEYG(~7yCJ=3FTy8j-|4Rf z5A?a_=)JlU-c|Sof6SdFNKHCDuPXJSUK+b{nmeVylK-bAKrG&#ef#|%|9ML?qZiV! z$JM}Vw?mTQj&s5(x;sNBdir>amUX7hXUfExd0_UT?DqO?{H=QsDAR7aaxYHj-1Z~q zNBB!2HI0K15ToSw%5!!40O>sAh`$iqWzrKrpgheTw|A8FTTqfUW$?K%S*Tp?YZZ~eD3_VPd|~Z>hAX9PIYv2v~;bkTi9u`IbCrs5l}Dht|_z~emM2o zne#%ql1*O{2R;d4tAG=A_6(W8Eoy!}XF1 zXJ!L-GY%T_0nVWvB8zxZ()&{c6&p?Qzfw-hN!=ahED1s+cQ^#%pE)R`R4+%8s9YsS zma+KI`mxSq=>UF^x7@?p38+x_e?w&(a}>pnGse}UPOsnA1?80&w5cU8ZlMN=N@Gwq z&Dv#crJ_3SGX=NBz?oW6P4Y{M8Cavs>5*?OB>vJ$nAMKvgYnyg&wNw;JHb4N>EZJf zo$Ix~&isT*J|nO{pkHV6VJKvwFUGt3WwqLIc%aDXBOeZc1a=oqlt`psIjjLeyndjo z)Ehgg2G+w5-~8q3JNJ+pDV4&qwV?~vA4LjU6I?D*4}2MV$~Q&zJd7R@d zodZgO(47MgPQYV6{pqp^D%aufIhL6Lak@eR2vsIrh7QBM5&xjP^1_L;(?c4iLZ35p z(&^`W8)|-zeolR#hlfWe+MfN*cC|mYppJWeOWC#S>n|ho7<*STkj3WJD>jF-SQ7oU z%^-ofW`xMOX3W5Y`CU?C6B^HSw0t5IA`DDMe<~oA3#O98+ya@cZ`wIz0Hz&7t z$0$#`4?V=jqK_GL_~Ahxp7P>$Fq!OFo%_w=LvJEe`G7=UAd%fK}X=y7kLTEAQlIrr-oUKS~<4Gn&9 zX!_)EATO6DX`Y>4M1!S!DNMyn`6I5bme=RuCIQ3IIF7#zF4_Kd6xlu_v$JqubM03q zGuG*I826gDAOZe=rW9&fO_(~?B;#X6$WXmtSydTzU6G!m6ii>G_TYH?<_vpf4+455 z=P|mx$RY#cpC6W3TC8rbSN_&A2@#P->d6gTU;NDWY$ylHQq8pa5$O%CEkaaYL~`?- zSL&u_ha`L!A0P72rrrg^Yw;}Q<8dq9Waz1(K$3J57#ay{N+e%3AZM0n!^Y|LO39P3 z7W(f7QwQ3N;|%4VAL7Y{jIZQAC;--Ac)SLR7ihM41@wrt92PE5Onq-Bk`b?pc!N4c zHnvn0v(%4>f2vmeKro4yu+(C<;r_ zCyA>rNmf7_K$$@~d;j!5oXsi9i(ucy*@TVO&BrpTW2UhZ)RL zZGW7($LggYx815-{XnGX6^%>rS=qT;?YHtMH$_t5*u~;Sxo@n#IA_&ivt9rX!Hy=EmEP+ASqQw zb&nrhX+~zk+8?M$X)y>C?SymCPP6DrRgqnOtcGI0jB-;Udfvy=K^3WTwiU?_T+ii)~pc)$#ikdhmq+rl19dk zhQG(4g9uJRf^s+u9~5Wd&;$l=_IA{o2aVhp|MLB}U%&t6+jn95#T&WkgC62{?1z+j zC87_m@ASqI%_C3}nwcBrG-beF2CGubghyRr8?(V*)d=3(wLKl; zJf{P4gMt+XC9dRwE!XN5`k;X8hUxGy9N<-IEN&Ti(&Flvb`x*{_WQZ5ZU=lK)ZyCN zhnS?K69TJ{II=_M)^(C)zEnZMNY=U)k_!juuY`=WGB31?`c!ghtFd*&tJ*NR* z@pgetOqxEgaA5R>oj6KW<|xKgSTLq}(n<;+?E$A7UUhx_Yf>1@@#0?5lrI#fN6@$G@+Y53rzDZ4W1v8&ZrQm|5W@Zz@)gi|?~-@;exZ<|J6BR(Z)>qQhO%zHki zD%swPe}7SL{gjq}qpC(eK+-6Cb9#k3LVl=@;3YoPpi4xk&tj>y2!Nvgo_yZ?7=PmV z6a4zaTClKKzCk$5p!~`Z&J6I4M&H;n>^d3}=yO@lj9i^%+6?DgPRyvz<0Lr)*z5Q;yfZ5}rjBFV%e3E94rWMl-1XUcEjO5# z-v1H8S3}L9zO9vaqHZm%aDqj=1f5**N}f zs&!GwFkv$Dd2`Zs(!HAWyAJYfOxsEb^GSJo&1|J_Jb?DV82cDAahw#+0U}SmOhG;X zP&p}KSO!hXoPMe2L1USza++qIktTw>ZS?Z)j4MiZVJ_mRvig!FG;flB#xxzJrCDvx z$wpB_uNFYICp&5u#P>|;#OckLx3H}AdM)jQ;=?KT%M`u^_qq%NOO_o;gAUx^9SK`B z@eC{hI}zizz*-}!YfE5y!OjlwYm;#Y6Ar@PknSQhK&|jMSAMQ|pmz`H1w!+u_tdZ! zMivV%cF+Dig~`wgg9ETf-BErRbPo1yPA%P$t{DIA)R2f9)0J=IM-VP1VgD@WYdxxx ziRKnf0rw?hZgV(s=#3^Xtjp4{1(g55%U#85^1{7CQI$yFIb^O+UX9v?kU9tgD4HQY zli|o;81ck5(gaXFfhx|O_%dh$+}UmzAc~4E6KRpWX*L0k@zL>rEcHSl;PsaV#C6a- zlLa4s;M4xVGUCQ@iJ(Yi7F19u=uWSn2&DCSx4)9OL-{o+!D(n+@*>t-_W{LZLzmbS zKiwlM;syzyLP>^hJy99sL2_fpyshyFM?a6Ke^t&r1T6gTw3dnpr;aPw>Wmwq{$U(>9)B zrgtXWUgK~8+hU9(A5ln!oX%pWwK;YiJqSLq<|*jw_-cg|uEt>85xv7Y$pZ!C*W3H^ zh5$xGLyVq=Nal28DKj|2H_-G=k5u-t1}C)3-S-5QC;=7DzJ`k1yGu0~w&;XyF+ z17Ca?D7Gj#lG;U%I;tIv+KXBaPF<5u-x4SXnnR*t>bDdcC|d0stS+ifVz$&nxKH+KrxQzsJzpI~ zm~cGBeta%*#jP}vU3oAK$pZ2=-&4EkI)3ARAm4tsc_K>qVL!QBxhvY$AT%8j zEi~hhR=SI&ta_o9j$+oDbQCk*q~kbvUIg@i`ue-?-hE4IDLXXf<;1b63`-9up_86Q zB{qV= zHD=yp!sDJir{e*=TZWYXEJ@K)NE!-NNeTT#yf^0-4lK>pZ&Ih?-Uv-q-FKWFv*!DM zZ$v0R^RwS+nDdI{Bc0M~c&2myC>xQui5Gc~j7IGclnc$}#6M>ZpKXpzq!d)dzcAS) zGaTZkWKex^aZ9TiSYOs83!+MJEix1-StwE1*;>6`Pkj#=2mLjv#ZvlbC12bwSaEyMMUZdf6Zz&TfJQD zTXkm}YA_auwu6^3r1APc?g*VBz3cTXlX3?meR_M#AxCvS%Sa!P<0&Xyl7Gm0sFp?* zBiO-FORXVMZKkHd`{_O|vRQjPt<-}oY>WmkCA8QzFVi#T0W|_oQaU}mVR;d!vAMd1 zerL_O&7`=;1oh)v_OX=n|v&0Zc6c+ZdX)W-{b5GSlz`rxH{+k)J8ua|F=F_gr+ zDk+EJqMGig~{RQV{${!JyiFi5iTi0%V9s1 z%BrcPmDm0pz1EvS?d|jBP-olcI6K<*1~skjDHi_IcYgvyZU0JYi68YqiPULa9ZHK& zM|zt~*i$&W3I71<)CNn|_j$N=^^ywoy){zDoD6v}VTuZw6jw0OPP^eC@%_61_zalT)U2UW8GOFTxNfjc=-Tc<)1 z=qNa(s6L5ic?|xv7i5^5aHGy9__3x5#Ycuvy{a7fyfXit^UTnX8JZQdw5uP7H)uX4 zE&jR@EheShsO88Cw5EjmL3J8P{!I$DzTcZi+Nvz4btQ!$^|bt1T};u>P_{`$Kg|N6~)JT?sM-JrG?{(=2^ zCi_U& zN(<7Yl&*(~dDk%i`mdn;5^ERRTYBU3?X)cHtO6~2;lo@m4bf?2->I))*NJ=Vv>7Au zT?&&nazN-hwcqEsiVX-zkf!hEm@j|$;rk!V+?R`DcW$Y?vVrYz#((t@bpDs6$ro5? zWthOBS%`AsWl9AfTCK$@4Gs1@F_)D*Tgc+8gNv&iF*G#KSl*tK)aKz$jwzQO5j%MC zfc6Zx++pS7?UyPwvbs8do43|$-z!=)Dcc;6a8=vF>xE->ft?^GeV-vm%fV6{!ItcVarWufUUo-h zc7W#=%OvCCLoLlK8f7{_9_pZMRu{%`*H$j?C}mX*bl025=Ph`{0KYPPv}EswM-vzD zmCfD5F}_^BaUV{2;P0^ z*)qq`6shb(-Yv)lzjahT1$Z=!Xk zD~z1zAhwHJC{)puh)HeOUnbrvZ~GoEka#v{vcPx(^1WKEBH6&hT`5S9Zb!uhPH~{U zyC{v@Eh(pU5}cW!T%fAGyM9#C&u~9U=fh8x;&vGP>E3_+uPQCJ_n-G()DiP9`E>99 z?8f9=&#x{(4A*iVzE&KLp549s)4k8S`{q6%RHo?~bupAF6k<2D7R>~SDtpKr_j)1W zFSPTQ4h-Vo8W)tm5dyPcMObQ7!c6Z_gl^h-_SOCAX2aCG2>6mZ_T)H7QY3T*XPExP z)nNn%i;DuDi+m1>E!P2xMg2meH)~<7i^=jUpG=X<%Hfv%^6VOw@K#tTd7|5e6SmN< z?QA5htIHQEpZOQ(TEahl|G%YOEFGh|hE7!eBJzH7qPd5h$j=R@4kF$0?CHpF-v9kV zvGM2M{EHQFd)??p=c|L{l_9OfP9>H5{LwZV%h$LoWP(`kAS4oC{or&O$c*{r%8->uSKRQ} zsr=xe@hZ21>e`73b*%FeFZ#kU)tG^@6e*NW`|H}9dM_3y=GFmueqKpsoO6o0Jys}0 zqLrw9;T;27G>sU78cszq+)**$`0f%|I@~rqnZDos4%LDB78Ze&*kyD5##|5bz`sB9 zJ~@h|X0YChCA?(4z+&w za*O2^bxheAdAYI1Ar_u5DMylp%MX#UpW(Eb^W2CcbfRz}o;{>KV3gliOG^_EPj|%; zI!jI26S^vt0)90L{ZTtYI}e~9h3zldr`QIg_)(XkM^2#^%c(2BPu{GL|L{OT*!f6K zpV76#+@fpEgvW6a1&|x9sLt1*D8nT$U4d%B=GsY2-NO?eqIt5aI!X_NO?h$r2%Dn3 zfOgXK!L9cK-ZlspZ}sL5AmbO_p=hOF_740QxFgS1l6-h~AJn*nd5`6_I5Y`kvh#g+ zdgA<&ALlT=74660gfa=F0bbaU%_UYrzzs+xuk1%cb#!bP3Fqi7ju(3|!wAXBFO! z;Sm}*I^Tl!q0hqys736+3>eC#XDtK`)JD}u+11hT+vIA66KgA#*kias7rC^y=8IvO z5BEtU&O1f@7YjZSVErR#_b0sCV0|O0)ZzTui#A$ZJ6X-={ojI zj7(10?)tWeLq3L!$}jg#u+93)rtxfzmvxC$#y0(hpQYPp#~v~v)1kr3hKga67Q>A4 z)LPG?Xrt9$f9VmaeFVW`89>cDf|N;j?%87f6}owl`vi-QdMvyFYZBFE!r0zNV)VYr zQxT4v;`R)4c^13pn8EDrv?F0U#n2r|NG$N0^4*_;KW|CZ9}WPhrv7oMwKo6i)KbWD z|9y{=!;gFaWqy=31Rh1kD~&qg5F2ZFy;ay_tidrnI3r{O=AjNUG|Srv1K6 zILq1jrAm03W7peW-=ejJ^R%;2+IL4r)a>$T15@fYu%`FY(5TZlzX@A`+;S*ipwIDO`rlT{_%B!qjH@=I$211ZFNZ zVKP?=hUj~}gvkiX^1Av*WD%~nmdccdvfqJchx%b!NA_uCd?T@L2BoH)&=GzEoBI>L zq(2B*Y5Uh30ESM#u&5^y^OngMiY-hs9sA8n6%QhxG-c?OBW2OXIX-)w;X4;?*C4+f zJ@D0f`J@nYu=7rW)_{s>nr>`^yMqGJQ4D=+qG_H0H3$CC(q!^%$c~d*oCs^ z`s@@k2kcc#(H%;vx5J?e`Z4 z8w2^iJ8yU&K_p7V&I+yR$p=S9n!%GZH(w|^%i0`cs{R*dS>Qy_*{k zT-GqgSu!**)4ms?TF2I_{jqAf@AG^}_C_|!Mbvf~E_6^D-+{y8e+AV1;G1)Hb!Cd#ODT`bRL**Ut3X_ZXNPLT!0ls6oef^;-PR)RgF_V^jUprKO z>}li5#qdLb>?C#JQFgWda&Nos8$w_C0O5i(K+-U-Gr8q;W#$XW!01!Vc{*%3myvqA zBnmr_0O67Z@>Y&oistnkdJ@+G5;cwZwbO|6z&%pon@2OtfQIiW)TG0u@3h3=lS zTcpNt#p}oOWeRy97rPM_OcCbZJd%Tp;UIP>`(Tr{YmWQ_-J$={R2z%r^J5KA9Y5D5 zmr17>mL$FH^U+O7!KuG}HRi6!)tS~@ff=P6^YiZ^6~&D+v~jX&9q-W9PWn3WyE_44 zL5OS}`#-<>bNsJb@JLwkuz(bdR;U>GYPT1K^$ZcM`Zix)U0jCbMxG`DX70y;)kHEz zNjw~R-#qR$zYRvQ&xB<_NXd$zwFzggN)V>`Ptx&U^gscp$;}S1`1w>L-gf$n+9L+2 z;7DWL4?kcw#ip;wfc&7qT~%bK{tL>Y_8tcQET`$Lgmr%>qm2f{6ZrRKH;Yl1=b%qy z>%peCr(YxsUcGhAZVzgR5G-M@5f>mwxS&1WW?M97V!$vpimXva8W=ERT+RJ%I}M)7_N|=Ww**tdsA$^Y@DKzr4?7BCkGbVg>!duM@@QoFf+%JNJr$39z2pcl(_IUS( z^=-YlMqTkJqx>38vY)w7f)bRpxJAn&XPj|qqQ1}1Eb1!CT}GTl3GCi2-Wu%c_*`9- z$a6yN>{xmG7M<7dnp6|nX3*}NQ~Um+XP0=Kk9+oz%}>~-QCLl8qBO;z3r)zP!r7XT z&;ZmLAZ%tuS%?nhSEsZ%|1WFbqTEJuWvNfW_Qp7! zCJ?fkZYxGD^-5GvduMjOea|`f-h5OQD7tq#qD53@R#jH!&HH|sJ#h$)41l@9Cqtp8 zgn5($$23gSl#XcjKJ6bD82>9t?m%ZM!#H>%tv}^(xRlj2wd^UMbjqAR z%BOrpLSbApniv3s_z-9}Aq9bZu)0(|G)S5%8zt?a{3qh|RjL?%2lcy&2I_vzAfrt& zF3CBt6jdi3rU%GXw0D=~7VX;AB)mwT*}GdXZjj}6y-pq+QexAcEKiH;@i@QpwpLm9 zmTF}(o;dVp%QZwnPqI8Hv+r)rpC+Z?^=si|NX|%$(k(f&EOYLGe1eqBrq`OTHZ#=f zq6_fP{nfY7_RZ&OSM`IH23`Y_*AGMo1!Gt{(y?9pOHMtqKMgXU&L#kUW+A2PKNHUZ zL}gd{1To{x^9QdQxXSnnke8x6FkPx#2BIGh*$wE$5#7MY!pDQ|SG7m&t7y#WaBBgsdT$e;2kbI3X980uQo{R%jI`sDq` z58wCn&zBFM-+lk#?mHzPH_nOvo5;h_r^j|h|1bq&ZWTxD9k51}G8tfUkeT6{Q6Hqb zPlrgZRYlpJ?JFeo!uhvUn5A{_`bJbae;9)DmLeKMF4W zj~GQ?-<2|uJz_9DF@gI}@7~@6Ml5||U$wm(Pib`OF=A(; zV7#S;0Ao#XBfiG}L;N!kdaje94~U-+{e?7^Y|dUp=5{KvobzJn3eFZ&fYgxG?$>;D z(2zYA$^+oOXa3?!?L11^+{t%Rgr(A!#ih1P#8o9ajj&p^PJCx8ImT?+S^$?ZanLM(hK6VjNZ%6G?NwKLZI>E4MSy^S zb6UxO%>{`38C7FMjaQA4Rin~9)yv|plpeufRD=WdrvyJsImMc+bF)_;+jt!FvIU$% zV4xPCTh(ZS8<6;3^bZni3CPCGt5;{afj<@MP-l0Fg-dBV$K!J#;swpRgPmVLGK zSJ-3%0-=<{O0}f1R<~A*`$HuGQ+3SiK!7XdW!IntI28BKr)m>&_ zvLvs05T`4ItwS%9*&t%(1`9KAHX1iCgh7lan4E3l>BFiD*;Ww)m|i!O5QB4`S2V7 z7R;a09Fxph{;lw6LBp<25MGda^oD?FhIs9>g#3qU8W)97KdC zHs0Aszo9wIhL|@#_7B4JDCHT_g?6M+03l08sh6pHG}THN*&b$w-UJH^JB4?Kte}my zDbCIa{v_usp=-H*<#Uilc@#_GZWOgZRD-mNBkvlJ_L(3F=?^8+%E$v@jnt#TJmo0Y zBjyac|2Y_?^7}iwbsHJ&$#{WCkdGh!^6q=?o4&Vf`}FZgd@cj{x^ww7dV-u53GKZs z8*O7LdkhV>+)4gXC|Ra_7dW`^DhgU>m$t!JOiwaDrSK_2S2pB>>9tf^;Rf3F+^JP? z^9O{r^FH$X3u{BB;FTUIE{UwLLOq#q$(@ebhRwjL2a~}Tlw6(6Uqj3x;~>~@Dhw5r z@Cd4ckR`u(q71w=4k6F(_N>~mMwjN94;`}sCUy?qGcFnEjZsRA+0m*;aynI~9?FlK zTtjO`H5w@AW=0=Y95JZ9DHbH^YObvu%3*L^T7aDXi35>7k!dH--rZk)`Qguy;Or7U z7sfm45D=SzMWK4l4ebKf$Q4L)yVe;%p?4@43NloJ7@=prUDIx0Um{=V+&pPstFzqZ zNZ5up^Qr8T1RQ~eAXKsUj~4_&W~y!vq3HqXK=Y5vo8je|uLYD*Iu5MVc9BHg2>osJ z>ifyySwJXw2NcsA-~weE&1RPhbas!@1L8zd)zR|IX>{ra=Lh88RUh?|Alif5$2AFp^2}KFT>Fdq?S82;r7{9T`=a)&V?Uf=Vjiz0D5>b-*EG z!3v^9uiF$ViNk^1T$432Mf=G?zDy`Z+wC%pfJ0kY*ha!r?phaoS@a5PXv#1*${HZ! z$do^A+U<5t9aK1bLq)uo(v-mCal&l>fKs_6iqS(F?mluVBp7Vw^443A%PxImbfu4k&qRnszQ1 z$kAwWs}t|)Mlvk3mbDG8(j+UG7IAdfKD^yL+JD?444u+SPO7{ z35&YH!gAT*$ws$9@T)T-X2 z%%xP8M(E*~efWfi4;&3H!7jmUiQEwN-qwA3N-}99VhKfpKtSRi9>y|uYqp-da|lCD zL`H^tn13y7As2}J%IApuMI1!R-l7soNA5HtUu%uRUzM{5kJ;g=DvueQX2ioI2BzMd zx=-J%Wx()}5|1#`ZGB6-U$=3u3Zd<#BcHlSGd5mAkAbQHDJ3>{@9*B;Bkx?Vs}XXw zd*s4yvgZ?B?B{w>;lRIeF)YnZjJHSbx#UgcjwR&4QkTA?!C%#RU|XGO#c11xrUvGI ze=)osTs(6_S0OGNa3aVFVF5!XDe)DK3de%oqB~E_BU+u4P>$iunjvigN*T7I-T z>e$9VU2o`=gWgsrxHVv!R8W9gBRCQ=BO|v{KY1TynuR#HJ8fd)+mKv*H%gwU&X-~v(%T!026@G|RFO&Dx->n2m>(%~D= zq~O}pE_aR4twPO2$sqnNs++VbNH9NBoaVl)b^V5~2c7_$>gX8ijG<{YhR|yCCBxEf zt`KAEA$mVCMI|B*Nu`Uz9aX1p;i+SA@r-tg@ktydaV>UH&b$J!Ff{PJLD3 zc&pFivCsBq=6yghnv}I75=Q86V%*aeSa3&Woi`pP7WuJvWap#D-obD+Vnr59Mw(N% z+ADu&qJ~gW$Tf%`jBu)Ey0#%;n>#EILFQ_llbpPLd-wUX9c$-g8(rF@#3CJ%i*h%6 z`^^nL%x?Aob<0D$offu0%m(>_!4g^?dK3A2h6I|;F82cb$KxaLhK82oQcxj+#Mz@p zLWIfV!x$^m<*KXWf`Je(dSB@`paV#X@+01z;TF|p8sWC!$!2Y`d2y{V05{&bx`pQ? z`Nr%GrUKK_QUTKgxHxP%Rs%+7;MhAPi*emU00w7ZtD)Wa`s2#6UwbZ!sx5%e;bric zC)cA1!6MY0G6)I&1yQa^Y`b637sLrW4%hP{O^_)#i9NQ{sG8?j+JXuvLxC#z7Yjfz zrI`~6Uc8y!{~FIQ=iPKMJTc)vUFwOMZrQsjWSM)ID<(RK*M9dfJwx7MI3ARbs&s;W zK8Vv>eWm~Q`qaFSOcxA~dMs-AmMt)Scnh9GJB9@hG*-9zhi#As6#Oq@E?@8FQ1;G| zr%}t44EW6$#%8ZJi)WLxON=T`PvbgX2A8NQvY%`h!@D`d3X(w zMN%5e(fAU6=eK9OtJ{&%auYG)AdyEwc8828w}{f@x`Ag(5X8Nvtb%yLc* z-vemJMXsn$+uXmo|MGb^{o%*^zeyLPMmW%+9K&?6+P>DKA@?E0)mHEH-`aG78@9I@ zvw4C^UM!OZpwd`lrq=BU%EG^%^Ko1;CyT;O(IrUdnyk;D=AeM*1>W!-)C563kL@B} z5nER2dq#WoKx)^AWK4tkJp;0m`tz5&qVg$1HIX9NUVy_R!7PGGeJ|^Xbe^q;2kH|U ze#m870gK4(gx-$iaW}VoEY?JS&%6d_m3+6ZPSOudl}yS^S-}9sVinq|;O+s2);-j= zX_^))NPXJZ%pwfV|5*{lSi93E`_Sssu3@CJ4v^|we0#H3uVW*{;|0WE*+zLpqdY~~ zsnH!;G>>NlclDw}kyi8yokQBYhNmD!I`DDkvC;2wqujfH%{;lE?=S8?_(?Pj5#72X zdN>4rAbN146HEYbyc4QI;vz%a33;KVC`?9$8UO;k5&2Ob5HWPLI6?u`6)qwJ8~d~d zW^KU3QOu^TJZbjomP!?2UKQXY&I2Q2!KsHTl(<--(okLZ=#f0s;5;CFznHFMW@Ir@O9&-oqzt82IkFj$ON<=iTb2BK;O~rllD{xD@Us!gz z;TB$v;6o)$D;}4P5=K^@6{2v9Qds^asTOz)r9oys1MV|0qkwtL`Uo&+b$a|XC~%XW z<*@d^&8`5h$zC3&jgmHvp)>1OkR7{XXSzn{R%s03o>uwv6nq)JsM%X`W*Zp)jc#~e z8;>bY0i;qbb9E5c$1`BD7@#K}N9F{Z2!Th9&JWa!HEZ_dX3aYJd;j{-W|RGR;M?O< z%57+hLkyk_Ckmt%5DT>wNGVH&K;xeaLOg@+CseHDpplKcnLER*`>9iN(lR7HS!|!F zLFzsY7sX7BGhF})(>yT+N!~L^4+vO;*VA}74k?nXy{@a%NxzKabU1aTe&ezt)o~<8 zPS?d4VEXO(bQ&HPcBTGI#%VLH0jXP7kcBmQht&pG7f~Xq$iO(+bg4Je9*YybTfF&< z(j2?4wCBL(a*nBo<;3Uc2ink~O7cw$Yjky&7!_tw|n_x^Bk!JRaToC$l zj|PX!3mpWF@KGlv&@Uw7R@Qx#0|C%G!w*-U+exJ0whQ%=$AWe?oFSI$vtGMNBRR1R zePgHFm8dCPgEQVLXQnh8RnZA984d}g8>|r%b=Qcg>ax`U ziUzWT7Pv8#DBU|W5Nfgs=A1Zz-~kGv(>;KKYE&Sj%hf(RrQESDZ@UbS>e}2wMCD2> zh`_g-<;}u!85Gw7B?lR@X3&?6$6h6dQeGlJARABMRkoPTASPk0RC&|OHCK%u6eV&) zwyx!?h&J&Ln3F_Gu_JMz`53mwUf_r{H>B>*FjS?4M1W7I2rI|{?@NR}~&=iG516aC!w?gcY^&}~y%LhGl zpCNW^x{gZnYJzJZc>KCVkhwqEmn!rN0aH-SBf1R&Uws5x-2vU5k$}%G*HB&XDa0ah zqOKoSb?HGwI7~Bvc#ieh^$T<|(E4ZAX6?C-bIZUuSMcPhE;f3WsJ^bWJz~9i`v#`0 zk??iM1oc4=h1C(92O}6Q=*WJ(rfIRrn(UtW^asHp*fs%O%%RLXaZ7!#OqBHUh$paI zIlMvQAy1J_x#N{zz0Fb#`0MeEB6D&jpLt~kh!tZkEZJYy$w`V7F-258!Bd96wS;9U zUT@c8+L5%VQjabjREM~8fP*Xh0BI(bb>QO8ey7$z3UES_pR|K>xU0x7x9Iklf#`yT z*=$dDk-2*~Fo+(VLqo;j0vdR5GE3K}6GVg~78gFM>zCtIzvma*h2^o2IOoY4b0L|P zm4r$eIr420ncX~YQrQ%}nx5rPnh=mjm!9j(*}6uThPx7FHem%sa1l4~=n3OX)u=rp zGcZoxOy75RTO19BO-sgf_L zb4GUGv)2~M0xW~B@LUs~0>-i+7viqfHQ04C(6UA$e4Xx}3Qv`ff+Lwe@% z>QA9FTXQ~Nz1b&&tlPxC%k9N^hsvhl*7l4rrDXUE45b(#vU8}Hd{Xo}+ylq$abIfm zNbO4QbV)^9KH!dlc*2WbJ)L%Bsh6ovPd@^4@kSGpu&g;p!+?aK%Fz(Hg?Uykp|O`s zE$B-GVqE|oxRTjdi6gN}9PMtqy2<#GbRQf#lF|t_gt4SY(;mW$<9xQ1hN~r|HhQpS zgg@EISqL=AfxUK<5K9hUbuE{Ip@Sh&I&eQBj9bEDU|rouD5*t!(Hot%=;rM?TV3An z$Vpon70M4ddehNjgL;Wy9gQ|+q_m@ zB?wITsjU*%;~DT8Yg%>LVuF(5UIwUn{SUv;qfDM(Qep6cm9P8mpHsAG94Vw6b0ArQ zQKd0Y#0QQW_~y-IvA{=Ymn>OCUffn+g$nit7ZXoJa4~o|ZXo$93M^YXWaw}9_fgK! z(j`NKn{rjU$t=ClCu*3TBM=4Rm(_Rz*P8oxKi#eGe)xEQcl+jF@4oyfp*D5Bxvx46 z_MF8YW||2;Mo20-n0jieKJiVZv2fQOigBJ^4Ei*;&O`%gR^VGFT>gE%yxQFZ%6im9 z;5dqa4d{35L`(l zPLdCw!oaNboDrc56wi)li$XMdnj&P+5^O(HfE ze>dAnrS&ATX>{v0gDj+BF>-4=0D;9nNCJ1OGs)?ej;5Yk7}BgyFJV)T`Z;b#{TwF? z%Yb$k;05varG_JU3o91cG$O5B>O;Qoz_oZ*3DR_m* zKDglE2M-vPjb@<&{$IaZY;g1@q4X%Vx5hwF8Utf4HPxZ=u)}!dtcjzSE6040`^7!y z>PjKvgVzpmKjAxRqoOsV$!LMg3o6MM&qGlr*I``Il6?2S4*$g~C;40A$tow08{rasj@0un|7qwVgbD0#%~1Tx!< zDQHF}mZ~uVFjFJFp~VXDRt2P%Fkbfv;(%e;YOX)x+(;IY!2q%=6Lm=k*=+ii^eu7E z3lJ1&?y&tJh~>j_hsrWM>M7Xh?x%!n;-j8|E$x0vWaj(oQ}98Ed}}|%+8^~j^A+h* z*RrIZM?D9s&aQ`8^JAaTwXS%=V^Ue@$A9X*pFCF)*^-=fJzSIQ}-u|d(fO>V!0j=)M<2WAC z)sb1Lr%Y7JlK|<#(k1jEYG%e0iNQ(%phI}-34&f+1qUx>Fj!IJk*}OzBhydDTbP(`>ElcBs>Stgb2&TTIwglU z$|YDpVt1(1lK)9=Gp^BD1P`V3DL42B@6<$v;gJ~8G8bB?5oE~`@*p@re0KKi+&pn0 zyPtje^!a{%_u>2dzwS=9EQf$Y7;43U51Vta{R5T?yJ@)lvckdkOT22EmB& zUz*H;Plx9$cmt>=qCy&3$@MmI!^yKY`oVe9j($GhVy*ZSzhZSFvaUTq-%20S*(*;7 z%$U}_nlPMuFvWv-uCMsl$J=Y966DblSh~>lHBVb$BI#{hjT4u8hSWIWXG>TXQ;!18 zu1B*JM{`;+7N{gLeYJum~u5p#r`*QBcyOA<17@DSuV*h!;D~g$=aI^ zWmtAq|r%wS+BY zL}$P4d-f7qgSL5wk=)3(I3e`E#QAGZ$l4XK$#9+&s%E8s8V(k$8AkJs)s5<(CiM|-g)!l3w7I>R$fLqi&>EDH?z*zd z655B{MWc3^+rA-$&OUs;fAit(-M4>aP*?9)e^5Eq@(x6KK=xwVHdb%R$qdUT$U_ZP^+i6LSklxYpb?QNwuVlZ*|yW})kXmCNRh?tfa~ikh$#LmDJY9;NG453kmxm- zN^T(0Y(n+En|xhm(;_c(4)rW@b-|Xb8d{6-wJU4fu3PjcuT*C5Z(!gi(ul|vm1IP$ zgVXQ0v=hf|uDOrn#C?QTkD)2RbQ|P3O~&&6iJeII<{u~!s#td&*W9T^w@6xntR){P z<>gkVZXuSW=mem53j%zIggY(1mVLru(&+L_m<@2Vj;W*i1gFkbCPahD$~k)iqA7NB zNYX207zPeTwQAl;Y>c}zw?r>4_<6z5%@hw=omH2KK)hK9gjsT^yz3wu1eF<3>vz`+#3&?&M8 zmN_)YSyPq{a5p#KefRF;VDa(8yZeuyb|~6(`R2oS%zy0zra$i;!YRoTy=4wnyv_Vm zdDaZU^Jl=e}+@XuUUGC;(zFmD3T?0s*T>$Tr_pyx7Bq$Xj=^UWfllRf$@l#w9 zm+z${1fe?@Qaukc^@V%NLm_2IF^IRRV3YyHmZ3zbMC0O)GxT*|UXaR0gTkO0C7xYB z`R#9iH~9pM*{9FH^RUpLe-@Us*57SDz5U(i`yYmb?~l;&*EjEX-~agT<8R;U^wRs+ z)cS{FnTu;}V=Rav0lxx1Bu=P}S7?M$8dz^a(&2t9^qCSGgWn+I1B!^31i%#J%L~0X zl>89VC*2W6)}u87Z8G;nkMg&Gp}0uT13(Z|oiDBdRhfYYX4#08g9f7BV=ppWXs(_c zrtl?vy=U9kpgnl3ekSIlYykH`9JcrV-Fz7i#`TlFdLuJdy9Ox=t@?(#W2)r&W!O96ikQ9E_(t7CIkNK{|21x2%l@ylo@pINzi`>Dl8PetukhOm_Hg&Z4&!t9iwZfF_@a1#{q@Mq`F`MrO9%90$0FieP1b{)kV;?Y)ln>Q>+I1|g! zfG7X3uR0!elfH_+K#T|=dhy6isya$`G!m&%Z4Ox-L=~=g?w(vW1XoI)Gqv}lD0F>u z=U9eEbG2{;lRyFqaR4kf9_V0~J+PSEL}x@WRU~7$hhz-@KS_p@pw$SPG072341aSr zf*ORgr)L$fzy&(<0Iq9a2pMi@_7?2J41sd+)-B;Ra}VAra59Fn=FSBr7|x`O5Xb4| zi?ecIgOrI{MRI==ewkI(T;0r+82~Z(ZH$?D4nL$;sH4mWg|3xr9?rk z(Q>JEOEuP(`Svg-yhKnSQ)hv>rl%fYxY!hF0{Tc35OXwclz@(K5VpUg+0k5~A*{glfs*bj! z-IUp*77##IpFVyMe`&oy{%UALdhwABh;A`?V%s-oVosSyiATjk2_Z->U=^pOehv8m zibW;%1HMV3dM^hZqMW-Mh3vM-1+qu9r}qGJyy0@k1aqT3gY}rh& zHi+h!mu<*(m05Vwd4OBdk1L$kvSB(Oy)LhjsoJ4nbiT$Hp~B_dYq%E;+EQ~|dQs|u z3qhIaspoU*Em?ZuRbi$Cqqh!Lql*|Fbv}_0w~=p06Xw%se`i$HaF$lx2$+(8L8cL&vjx zfpM)CjSIC7E4Wzt9crC)rG9S0@*D!_2F{jIrZ8puq}_~eto30Q>_?Zait2kJybv1g z*PC+&8oGCB)uuO+=cVwDl4DbGyK$l3kn=al$5_9$?9odFhQL}L?MCceCaA%L?7cqs~~M!s2BUa`cfnK$n2YU)b`Cg z^7v1o-YL?w2}P4&-~w0z=MOAQk)5@`Dy=>x`op0((?S4YFTpLXrUZ%QsY|cpcW|4r;+S6K=_p&l_-hq_Cd5>mEmp?@XMf-tH&&sy z1!qh)ymO(`sZU6=SFZ^oW(d?Sh?Z6WM;a3nbu2*q^SiaeGK8Z_I|4qMn*Ea5=tBDOYdm7^y84qBL z&Axz#dPw^EFfpPYQ}>zcy;4>o`br9)mH!}vnt%UK@IZ=p8GrnQya0dx z@;%Bf@IXLz*n0JG_tFL~KWD0!_&YH^rrD~A5OB&dD<~1SIaske(r45E=p+ubjBE5RF6b4HGVTpZ{+3h-KBR^KkSPY z6e>@_VvGpCaWdZZPaqIDp(Qdvs$hu`V$P@Q8zjoeT4T%E10-E|`5bwg1i3khR7PM& zQF0Z*m&my>0`qzGVu19-)6p4=O?5PbHoCGL+}Z}9Ld_db_U8J`oR^f>isCWl=2RHk z3mF|Ax|)#~FRL#Hw(P7rAa1}jScyaxn$x;ZAUj2QjiP*xUFPyRhVx;YoM!}L9$!M{ z)fAKOmDjU%++_&sV!gzR4)cCJ!?vurwaf}2#uXm&H4$s~Ysy$OzMO#zVbP_Yb9oK7 z!mQ;?myp?;!=;3pzi{cgytivGB3&Li65#R3k+48Ra~e$Q_SN;3drxo+v*X#eFtO2m zpp+g^XO$T~bg2`>)ePg2x#}ZgvXFI)7=cg*$8d8tC?5c~U3l3Sf^rHDNU;IG2iEy| z5WxONAOzrRkAM^NgR_9A|JNP?x9|ra0iXY`J>vK)k2umJ_J8Q{zd)E}1TVM<$l`A9 z@j#ZU!_Fi_aA{k@KSTGXBwPScQI8ENKrOL0Eb2kvz>q8_S!HPIxPor7?0TtJ_PQ3zk7ZO`+10{|n#cVTRaCZlRRH(PqTTwcor z=f8Dg$OeLW6M5(N%Vj$IZzvtq=XtM8Dd>5&WZ;L!ho!l zD@#5_aN2gUA}%#T8{}Ej25$2jkjaoE86@U!-hYGN0GFXedgHx%S=?{*Xcw4xdUd;6 z=fV*l_(-TLI`#EzLrDbGa42GLGPCXdXjJ9Tvgn{;u4$1Pn)nn99vMSf*!VIaxboD9H=7 zN2}Q|g9f=7Y|;kN{=1vmX2!&ngTsE`i5!Xl)wI$K^3o0`ykYt3)#&x+pYg-~I*WkZ zJ?^F5IZ8_y0_zzN!1>GU;%zrJdvyzVi=u)7bq^*<7mb7+T9skXg@~x=g5pv$H@KsA ztA9vbMu~B{*+|7zwUnG`^4G-k2iRrc2C0F_V`1}YB8l)ZGO}rSy`RE5IocI5`lVsJ z-K(!ggaE9fvcUlp@mqm@tDIom;z&$0-fRkHMJLewE^`{3Q$-bEZ^4{2)gtZ&p&q?m zfCg!2-e+NxqK=0eqJ%P0%Vc?b6^MmLOrMig+Rv~+856cT^)j_C`H4Wv+k%DnU4@5_ zeB}lq$w=2Cb($$Ursr@v#-miC+Y}LDLA5%A=}MsBUwig?wYeNk!Ux1J4a@^GKO?XU zN9&i~5itzz?1sH`ybukAv3CY*F9c+p+&&X9{FSh9_*jsW_3`dve2f&$HQU|j)Uq{# z8wPN^s>P&%d0$B^p%_S0ze_fF9u3;P18Cx4m`HpqVrkDxM%J!v)hIhctpYp(^dxgq zLMg;e)CZ86VoqY8JfdXet5UJ1i6(J88q{g1W<7ND!u;i9TW_Z?z<^qQgvenIm z-d#nGFI0l3rFD-r0;ku^uP1Je2vkEw85CKzLlP(pR{zyGJnF!4z#fWkqf(p=S`O}r z1gP=lF<7?&ShsPn+NJ?DVsJ}vgO`#eb>@gyfH7o9?u0#oZl<&Gz_U2HPPx&gh2-AC zA7J3_0m4pVOxPHX!lawX254Vw7y5*330kgee6MRC<2(vKK8lvuZ&93_uT5a~5)+4| z+Fan3ex`oyiizQ>D}53t z8Zy>%uSr|rb-GueS`S%mjU=x3HZa%1RfRsrdCJ@Z2hmnuAgmPT#V^9N@WG>|R9$uH zBZ+{K!xBOS{&9}fT>WvVNWR1Ht1ME>tMl0fmTi$m6Oa7g#J_OR>(zAOg>2bEsy2_#CH}C8h~zOqOWDJV$5eN7AmRD?vm_ zfSAq2jS807<*3Qv55eGTLVZG;+@z__JzF!IM-9Y{PVKDt=A1&JU#22S6P?b$%hb=R z`|_hAadA@{TJq<8_b4FH81rP7T`0rcN~G<;CE6_jz->{7l_|;`2hG$s077tNSWx)7 zPqU2D7bD0_2vTIx3+`~BslJYx_7EpefRzBL1}p6qmvkr`jx!5Yrt83kUFG;Yu%wRK z)68^%uD0q4GuS5|BtYUcjQeK$ zbyd~4se(+LBJT5w>*@|aU9J9ld~_;BoUR}w9-UUvA7)Q0c2_Xv(I4p4_6AvkW@J1x zch5R|*ArErrt91J{pSATk3Zghr}G2VIqwBrbMwUeBvm9ba!6RCLYv`kL?kSci8mS| z;GJy4KM*eg6GwuTa3N5&^FveSf%>g3QRI@`y6#VGD%}8()y7@KVRmlGsI5MMZYq!t z4t=_wCkC)l6Ww}EAyZkAiWN<=9s(P|)zAQ%Yk9d}Zt?;R^F=j+?uh158r65Ta-}Mk zX;HP$5nQtw_yT3{=Xn9zZP?xmZVZ48cgHBe;wK<3xKRE;ZIm9p~9tI#LS35*(-V)A1vnwZm zmSt^ot4{hp&~8PqH|7>t!k?DYrRt$*zm9g{gjnYs`;=OOtA}_y9-p`n>#8!)OGpR` z{cPoHYjhdB*M`#shQ1vF!{!ie3`su%{jk!vZ+^P_%g0YYj6Z()fG{VR4nEz>rLUt~ zo#Lnq^Bd&KQi0KyI`u*qiVY`HJ3>&ozM3zP#&Wtj-JKwURl5veL09cRNB=s!#945R zPy_gHw&#?J(xF4@CnE-h3B)uj{#LpV;Zy{#+&v(>X3r1+Gab()u?x&y@=AhxIY1wY z>Chm(z5sPwo*$C8EU$ISlO6}Ll%rR)-_$MO(*?BJJ0kP!bs@(jf}{A}BG>umcC^BS z_$Qm!{33z^8p8tNNscA#4ZUg$bxEpx6v`xG_`KUF5OAJ=-M6LLs~s_f>NQFhrhUr!BO1NBqtv5y zrm+tt8#;AE2B>s;OMq+9%>B-4yx)i>PXc*h)QnF2Fn$YwC{Ru=*QZc>;3o=cU*bGi zYK+jhb`8;71yor&1yyZHth9iH<>zdN$>uUHcBx5l<+R`vsX1Ayu4N}d7HuDP_U1Ed z@~uzAmEpc%@lMP@h%07mKALr#wm-u>vJ78tuIJ2Tk(fpQ&H^b=f8qIvyT^hxgJuaT z=FRnHRce@dt&>kg+L6=OHy9jV)0F~%@`!u%>CMUty=H?xT021360Fen$VK6NT`bJ? zl?U^~z(AQq+EteO2z_G!&Uif82UF@wgLBaa2oG`=O&JbyR~juF zk^Vsw#*Zb5G*6g-(HFVfrnRe$ku&Axe-njvW^}b!jkRpspU<(k*w4(5)mk z)8MY4>}hgWmXD)Wafz*0Mbhj#jPJ8)I;U6n=v5RWi_*pYmtP>4A`8ct_wQxIDJmHE zU-AG?*HkAfuqSAV;x!1XeLCib!LTlidlZJmlpN*Al%A1i3g-5j5(xNHDgCE%Vibf!SYWr&Tzr8qHaO;BC)Ce>oP*h=PBHCJw|F4ou^zOp#+phm!_Io z1DpzQ6GaF}OIE=i)4-e90aI}6K54iuj3n_F2Dha{H70;pIQ!wEmf>>=X;ft5c{XM_k@D-k1<2lFx;fgej^}OQi;=GkzdiioiPKt&r{rVa7 zv4;AN0R~MMq_|szlfr7g?d@}yIh9vq!A9T|Q3D^z6u~bfADX1-DcT<4S0fysxDP}5 z=~Ao49hEU@0W5~uLsdjoB*EhrI>_DC63U*QpoPIzH^|*^Xb7c>d!2vus9Nnp9rVh+ z%3?NnUYX1WvdbyIm!-*DA}L$F(zKc7J}t5dw-Cz?;q7!7rc7!u1F2!D;3I%-U7bBc zh{Gy?lIvP^Xd%c`)3cp>ciBtxh2Oy9C`X&wrEZXPw!FUD$~Vy}s#q*o-`IaTl=DAK z$%)hDb$ple9=ToLBrZeJIR!`9n%&xiG-L`_0WvpVQwr(3-r*~+PMQ9!zGZe)q(|kp z;(sLkfGY|~ls`%H5wby4zUu7xWN8u%t{``5R@{6X0#FdtmF%R8xl=a~>hd$p!M@CY zpWdv|oyyVPfhjD3mcqfyzxn59f3g3-du_&-OiOEvfeu45RGe%&)l>j|>(YzO2aH)6 zEE^wJG(Fv4@)wX#t|eXs^f})hr*(usBxXRn+Kim<*@%fz)}R)UV~}y~r;qR7+%vhu zH{bmJ_rL$<2h`{I^tW%M{RzK2gbxf;ZZrDjsX?&i+efKupm+3p)*W`) zPhx6!Qk%og5n}RB0?USPQ)2msr#)Ps+Me>lC_$$Z0~gB!CJ=mIIVMtnSB96ym`IoY z&=~l`D`E6QW8m=q)iF6s%>Fq)d&F~2A2H_nBgXU(A2SGH4PX7T{t=8-mQ=ggQ-u3R zQoq<6Y>8}I7`1;5n7RAwuN=big?e3?eKI2Kyp5@Re}QU6Pq7%~(5;Z7npYG5Zq|u8 zakGw4XFWiNoNTAN`kNDXTTS@-Oa;0Bqfl`bRjKWv~(WQf=qwnLjk2YEx#)m@!T|tkge;N4LXhYKz z6quUqZUMhw451Lr>WTHMRz)~1}WH_kQPG~mI* zIOE(kLQAYP`F1oNX;(O9edW%B4LrS zKZ3N}scC6x2%)g(fFH&-CYb^}fO?_u$u8V#(K+|8qKb&*`{M52Ey`dLQX{NMyx2MAquOVH-wyWjsbWM-*xVbvj8i{kw1Tc0Ne1fyW#lynWhx+xzeTz2{sdR)~IE{Wgd0 zt^q-x85;&xIJr?pd;c_a&d!n{J}V@75cebtZC&XLD;zqy5$^C9vUo;7ahuQEGMTfyKgrF8T^RH(sq?ujgTYF&L6U zpdCgmcyUG~!ib-lq9|SZ&WjWQpLRNhQSn{%h4v++lK~iBGsCF zk=CBGn!hlZlz!L-n2MuXQ%_$z3`L%iqG)y4AYVmT$KDtQa3-qagJN~5M0Q1f)-s=Z znWsIT5|UNIjjhA`!ekjNy|IQ7eBd#vN-!6p-sHn?Ag?v9^(7Ecc;d|;^f3|&Mt4dm zXz!Fz&>o7HN^(JaC|jECp*(4}hr*=U9!ipCdmnzau{s0zn4S+kq>&YC0^8siY$^m; zbqIK=+zsnB7mdUzBI>F>jb`QX^Xn@sImo1pH^^)c9;H?_?;E8@mNfN5EBp)jz8NgE4vmRRHN`IXjzqoN^`WCTWIp)RH0JNZAUo`<_qzPRtpr{r zd#bl|0CtSmW0O6OL8(fi*h+-bIYc)LU$~pNr+ADj!M-tEbR0QT?ze*JsJiqp85Uuq zmM7kzu^Nre{C0DSUrZ;n>xCgbYmr~PHB(zk1_fA6JoWl|we6uzWTVlZ9B}$BgOkao z30F}!0Lv*g@A!{OAg~5|a7*^w3cp>&v@^JpDk4dqkmIj8wH)FQ$Lj(0g>Y&odN6G3 z%D#A#RE6rH5`*Zpu)+a93R~Ar+PDx~loC&-=9LlY8}QmXzZBqk)8_Uo(r?jK0Ls`h%bvr;i*E zREk-?)tb?FnW(>;!}W3os%%Uo%@kn7tyr1MHeODv*_tsMkbtVKmS*XM-J(;lS~%Si zb(Kzdy!Njl&7<4BzMXEvo*QL1y+8&I^%e;ppCPjGOA6`n?60>fF$Fe`v< zjL>r00^Pz;1A+f`<}{f`Lm9a)sT|%4vsXFl3o@f5_sRXimCq%u@d0`r5I2c90vIXe zGh>>ykhh^f9scy=bXgFWoyP7Ds(jk;^@iUwKS_!AA;*QxO!|Q~-V(ybM#@}5V59+X zhss0G@=?+WoqX>xU$@C=_vyw8mRFdR{tM`@6aZ=uXF|79*mtAV;K7_5xWU z_w;6dlNo;`hLH!xuy+vLern=&m>&`yyhJXo^hdtbj@dVCrei8Q!L#7ZgU>2BNXGL0eLA_fVdSyfPCs-BnE)9Y#CZ;jeh$MC0@AORt>()nh7Hfe@6 zIFg7?LB4&r5-MFG6OVs-y4IJ87eFc%`2FA?XBYe$hZ6~VTuF7wY~sA7IIC4xdDx&z z9wG7n?TBi9o=kb-pb7O;L4M%Q4XgmStNvxLywHpYk<+U&rC_DQ9x*~o;y_t3 z$T#{igVZz~xhIqY5XFJL_7cLcjRJMF>FewnAahVZj3b>$TxtZx2lN7L$QPTZy=02i zXl)*s&H5JfwY*?5y|6Go~y4&HP1n9}Y5HZ&x5*G?sq1OrPM=Iykv$^(|N{&6zK zt$?Wm1oh#EkWPoIi^E<_d(-ZA(+wa|4vOXNwwJ)Xm&^HNH>5ox2*41G@A($HyE{Z?XUc!H zxkQ_)nU_wlb7bmz)q5t=3nY4-i%Q{V0h+>|6WGiJ_XK-mADfXk*!KQOr7^P+s^&8| z|L3xn4=x$TBSzP>p}x4TRdm%3Sw6T%A)2OSQhS+wZFXrlX%SE+xAenKEFOlVrSwWWbEj#c(G$#tnKgVObySIUX&%Mmg$Gd)HjBF@3F3oc%ckMI{xII1`}DxT z3$OyrQDCrO9(Ao9(;|<~AxGmxyC-2;75NYWsa%@m6@@38SwEAPOAvaj2Qyq(7SqlV zHZvkDMod-+?itdY$DCQp%JAFZ0d*KP7cvWBN}(Dy9tHmnD{9D%FS>kzT%~~E#8=21 zDle3JSrf%5hv?=8zIQccCIA*+s>Ch$OqhG1>>F(n=L!>i{f_Q2dI5GACCjehpjCpsG$=bWt@gYJwJkABRLxc`5g}RoM!nwi z6um@;jpwEqM6Dk#fU7m64w8&&y8(kPl-$=UHadgz^!T#hJ3-2Cswj%=4#NktJD}Is zgc!ytE2JhCy2dFaS*3~&Q+#BJJl-TjAN3Uw4%V@rqlTh7Eaf)5yUUEg& z5)qRGG#pv#&`2n>aD+2D%g&U<%26cIA<_kJ?KLF1pxkEJk zknE8!nGJ)M1;dc$6-hPBRCHoWI^#WIit5u9WVuyB-3HF+9wW>lwB~ir93KRa&}>a; z&|EOMl|Yy-M=^B53$)5h@=wbfI1JzwCMpNzQ(B?$^D+>>*-=-oJ`rE)wJ`WS$LYxn)!|%0(GS4^bx`0F#a0G z31@ihO3xnAImpchATCqa)eKu0#&2?J#Akp=tEU33N>+f`_8gIp6L>oEr{Ij>3H%l? z0ewKKv;N3VYeHW{*}H>*t38>8W{M&;g(l5(UEP>~UsLn|6WkJGiFp#*fxDWt}9fKL2>{!$FyYACVf_{nZ zfw>ipy@OC`MKQzpyRrE3G9){?;_rq}Fd!H+xf7xip)-ucfP^s7E8}&G@-EnMrWVhf zTzw=7RNVufNLLBdAWjr3ln$~W2kgBVHe>yW(9sSKRh^n`xh|c8wXdi2NDL4b}fY%Hvu+A>%h+qfa zavE@&(}yW;v)f%r%#Uexu@a0J;}dP0C&<;UB6spL1W84eS*;Hh}e^-6CNUm;EJ=)=SdIQk%4pnnTsG`J(4txqRHCjNy^7RsV z;*34*ilk;R=xDJCI|xuaBA#z4RQ0seq=KH%vP!e5dE zZ3?T?)|n4^VF}|*;q!BL(c(Ur@FS!4))7L@gr*Y==2v_V6h$h9i4%NK3qGy-95x<1 z4VcoJR_u>}MtTv)6HF@@Jhk*PHH%$defvk9C&*slF8Js|vj`p4uuJ0@?Fj_NIh+>6 zI}`rk2vo+VNVeqXpw(>~*qLtWBxqU6*LCuQVGO`NG!<;NWFqm^Tni-q$_P_SmppY# z)lOF;%;1P~z>G1-_7whB0(CN{?>~O{zNdd6`${#c#Kz>rn|f}tUqz=rlWSe#oKiR0 z?9&b0m@?%;@mu9bLMeoCtpshfH&ZXf2S*t34uvFfaIROY)rC<6Gf9Eu z#ngpyEp*DLei9IUF)S}L|88?a1{d~PZx{clfrFm z3(FM}dXNjLta= z%u83UVbf6O*Ft&MImUNO`mMlLx3?42w`?dyTRcayMx=8S)(PIPVjuxI8s4C-K=aN~tS=DfkMzOe864LMP>>7?#1oIzABkB&ZXszAl!5Ur?5K1=kaJl^KI+7Dh+3a&suguHB$52FaG2P_8YJfgDZxMCKB%SjY zu)ui$1xTTq5R|}15X73Vc2cV}<7HOWR?xH^el z4xbQS!G@u_3{JjuIbx!WMPSjSl6^QRFT_ijHb)3R{!~^h>*^y!-j6>v7N}!@7D$o| zJRe{rC$4i>-=abLMM6Q5)6BEm$ywyUQ7ESS;=+d7v|Sp~rWPDsdLMa_C|rJo3@%<< z2s$xUCZ`&cLukg`TdLe3EQ+{Z%;HmBOlWoM#Zr#}_c2z(bY*^_5A;*s$k~d_Io^?^ zi2idNd$}2}5Iz89Fg(q0X2g|lXE)QDfaP2bqGvLan?Ob<7pt%B94=Rq%PhPpgbJfw zP7nmeXDD+SLu0B1tQ4b5P<>{*g?lwpb<(&Prhx~>ahT?T6Q1F84j^ob5{K0X8CG}l ztc4T&G;D?`A7-h)XpPaX=xZY#fcpXqi)6^5kBKt^#t8(g$yYsnm=PYCKr zlYy5&&CL*0qTEudE%0t+T3YJr#j-KHaFJ(vx^$uK6m5a%A*w6O z2Y#lPnijo#jNXex2lKfFNh64eG19*U?wvD58FN| z#OD?#s{oQ#UujhdcYYmVfRomLZzdqj)cQ0N^Kb$=bjKZ8#4Y{>2nAM(%27z@oP;Io zMal8tk%(d9AxcQdIfQ1feZ7Rj3&y6r*uhN(j=ykw^y>)i(| z-EMO^x%H3cJUNEd{IG!vG*foknIBYqH^NKpUS_s&Do<*Z z95jYlW%6WHYaIf=0EKE-1aPRuyjt}R{5O~uck5cMB1{7d!q2N#$Q!gmdR9s@RAqJ8 z^oNkE!4+5u_X&LNu17N>K}>F7Xv^dUsV2h!uy5^QdeAUmZA#4I2spMP~-owG() zhTWWw^r*T)-&J<%mc&-59&Kqt@dm94KL~q}G<-@Tp&}mCgjk-*v?I$nK zfn31#|EAbE8&}1QQ%y+hG@mW79?%Nabp`j95e$6^B5x)qGHx(TTvwWZ1xA+b3T{3r z8=y+s74d#!)Wx(TL0m^K0-hdY?F}2C&^o?P3XJ&Bmm7FGi zFZBsDun|?}mjUa@XnQaioAa`8h_*u`m+_{0rRvgy4L?foB-yJc(&*F;Qtjn6!Y_AE z;)$bh3k|ObHDL#Y!nw3yRfn83xBQF_wr zcv&#Qx!_`&jehZ!^3nn zpT0^`df-ExDkmI(s0DL}2%0Kq+d*4@F$|0<_c6C1fiaKB=W#bf))=APie(4#Uxbr~ zGKtxNAk>C0mhTk!;=*xkkCWK9e*{<2`wz>bQ2K9yW9NaHwNw<}AhhIvXl_JZl z`_6bMv93D1BUI`H76XKou24f5RS+jB1&Qg3{Yv7isYE2wj8MJDffKTTrMZp$@Y0mP z)y(i=QECNYLkWt?nwGU-=n_!JGan>4|MrjHhryO)Lg>q6Og-p-GzPDKet5Kp z7|Gj?xnP89m?(zcGi4-xt5e@0CVUIs&IV;8sp6@KL$kN|bn*{4(E|t+zevZ*dkYn- z(;P{b8wQT~L|kFf>eft%M(N=}rwyP^<2nrEve~p;-W^ZKN0S)~oDAfPB~D41@Fo2TtCD&U>!o0UMIv7w z+t=vTSCP4tb09Sc0HMlUkLW_NnlE#LzU*L)#}`lz#hVRhv;1%7O75(qZ3skNE3#= zU;Ux?pFwosvv@TH$Nlul&78KE(M6AjvAFQp5^A-+SH zXfJQ8Un?w(+EBUCMGf4u!$S86-3;(gwkMqF16=RMe|_`e!`=H`kx+>3<73f?7sad+$@>=Mh=Mj+_ zoK`{%iB*C^04p$}VnL zj{cyVp}coSS-BLr#?znfKHP6Ue);tFZg>6TcW>_RdTK6Qlu%Ow`o{DsdhR|;f{m{9 zc>?0AEhfxgBF0%3m1rC&6J!lJmt2#}V-18Y#0dz1BVwu~G$=UX zX&@E*!=fI#=Yg0g(>qA%yn@4SrRvkQL|qi#5+TN4Fm)#Qc=AXP5fD?B2!mxG%Gq=! zpKEwKA^pfWryF*?DLt;sJ}n(jd@i4crrv=PR7o`ge~&)2#`*)!65eSx^;WyKizpEP z5Ae@G*+0x&6B)f#N6bQ(Z?Cbb_{Tnq$jrhefWl{2b>9D~Lo=4+I6o0zKE9bTK>=sY zW~)jJ?Mzjb_}B15gtxU3o?jn|q($mU&+BnmRE*1AdYu=KLH%pYtrBPI9-AB0>YMoz zpLcb}zZGX-meR6UH`ymrZV@9}v+j*f-5{o`mGPtxl|<&EBIC)SBCoM`(81G3oY)}T zf4I@yG`@KTU#0rZWshD*Cxz?(_Sy4iC(nod;nC^I zVAwx?cK7Sy;pzEs@Uu;a(cn|~ZkDp6W)mHHsu4y=40r$g%iZVui@Ohy>+e5)0xw3! zimI>N)nKpC*>R(@TA^70$HDweO5`#eK-pM|&x)&JULyv?D6!E|(v_$R1=e*oh6FT1 zfsWVittKu(j){I^8~s@i4%H8+_xc2DAbwI;YC}^_A9uNeof@lQhc@L9g%@yRGpjBw zpZH(uu8=8~%va-DCz?B6q&*XRP+V(_8%wZb^X~N7$REiry)=tuqqq0(egfmP{ORt~ zLp*C%x|W;64z9JsMmg@6hH&5}Sc>@U`M7 zykHWhTwm&qE}n?eLX!X#SXg(XL3wV>$|SBzNoY4b`DubUP7e&wM2dtRnhBkHrnlEC zBn5S2JFqMm_)|_y5{bcRvsYUopCTlBIs|4}?Ed_>`@6RvzkImYNgp6Zkbf7pWVeBJ ze?x7yO?KBmqRDk*+7l3Vq!5=R=yaZ!DWcJOJ=_4kR4QsU7>2g*5NWXF&@SV4LRFX{ zY>iP1i%#3HK;qk0GiG#Xd>(|6kkZyMF(r#xA5mln&(u*j$_M{Jn&4f>0KijpsB_iFKoj5eT3%nt#3w~h>1 z27i0g8@7Dno*{Z{Km?c!Y@vMl4;hatN|5!Q&LP!ux`qK?Oh<88^ z5qbumDMe0TJ8?!HE?$Yjk^dt`DWsl~V!?kE+pI+HqH9Ya`8fbAoy}E!J zb0BX*z$VJMng0Wl#70?1^UWU~8ohO2z@cK7O_hec9z|6@`+Rb68!XM}W1q^2$GkhI9kUL!$0S#z!|;=V6#_CJNw861 zv2%Z72X)T7U8<=rKevN#4`20H!#;|r=U>UAgxEA^>}ASddnRSM%PrFKIvXJE5aJT> z9n;;>vj1<_Cu#la;(WZDBe=G4t(%Q1ug2@;st?+1Kcq5YH~Br7 zdfWx=fw5X4N4WB}vO);Kd*NKf&!p}v8vyp&DX82LD2)`IsZ&htcABdYq#hix{kK8Z zN_R@+nQtY>3wj5?9Sn{SpAAosPw{7P*gv}aHstuiM=xbb^c+hl2Ox=#X`JUD|84d0 z-|jwn%7fM2r*}X8wM=o)d-{hz`0=$22cF`RH(Ms%&PP1$S!RP`w5K=d9v;4Ba?86C z8%sA6fxv*~KhrSg#F|H)?teu;?oimY>pTvB{)_*IAS6hiMIP1xe%qV)A{~nyB~T}Q zX>|%-Lhxa*Sz#Xle={6h9R2*W+?WjL;L>o}VqaY+d@eq#dq=}u25X{PP!TkdZs+F^F0HPvoJu_ka&TQl?&f>^UxORI^d)E`3$ zpswqxyEHniVaSF+U*h!Dy258$x&XRN-N0hydP_R?>@G-FQ8B^v^auh@aE?_ zmF4TYU28_&H=aG7qIQif1s)BomSm{l>gZJ?v4;EtT$;fL`wj9k@^pe-wav>eeR9^k zYsL*1_*UG&{_s@XZqcb!5g96mxDNjZ=}{nKIhVw=j;!I=l%utMxzlz}HP@LG(LGq< zFxG6sIpz7u&ig*Jm%psD-=HbtDF+6X=~DZ_qXWk=S!D}Cr)DQ~@_SPDNk+sjJXLyb z*t{t6%|#1paxF{<~a`Wkp8B)szt+)AC0%|+~qzoB|E!eC4G~di{ zrAPm!_l@=FDLp+0gAhGT65{v)R%+-JVYLR@-Cl#qfoa?-=4|lH!ko?a(aiOH7tweU0YQo{w(|lL_JnZGWE>m-eKM)wQ`VKPrjc)c z+WSW?N!R?nO#6%KBv}dPWyE0m3)$_&Y%>`x4rV+)vLKWu>yEQz6YjD zyf5F^x+||KhyHrs&|)EJ4R!voBZQW&55thE_w@@z`K_f>wWZXgQ?>O_r=_A@=*Y_L z9OBlbSAlSl&5#+oTy;QPNT(_Og{@~KvZZsYW2+E;E9a$utIQWy5$>++Li`~bgf1zI_Hg%zm4j}23!0*v@BcNT1_!{y0l19ne^!}-LfU{6N zt92_3PiFvW3JFhpfBa+f$=;0@IMM}L1;+n9pB#yDpBfH^xd(9o_4`O2j8kqIwSiK} z0BM~F&&D+}IT_B|WTp+#Y`Qv1ZG9h78?|dvu4M+kS2FWd&k{9C1zYB|AydT~e~#N> zeh8$-aspm&(TfXMJzKiYcp`$!>oN@iTx|H7Rz@=y4Dhj>0nIK%`a@5UV`Q315*xjO zYRAdI1Us-$enqs@Kk4vrQ7}it>4j5*v6lKO>NHFmq(5l0QF4xwj$V-vW1={H@|e|| zNMyE_;9ajNuJzekUDQEBEu;&5iV_guLcQQ2FA)!IhTc=ED*1{L_?btbDhy3NpPd-1 z9MFll$^o7Ds~pf-O}!j&?Ap?px(-}9pi||J0l)+1s=Dth(tv$mkp}GhiZo!~SEK>^ zz9J1c0Y2x!3_Jt!_&^vRoK;;xBG+$5i^(aV*%&w$?a)85=$sC@Wz@ozV+4Xa(_%pR zIe2_-IgW-|srsT-W| z9q&?tlAKo8m0JA)JaFll#p*&Cv+;bX6ea8>8KdZVIifKtaF;DQe>iYlQTnhTvjb|+ zKuvN6*$Gq+^g-cUNgbN56rVptd_FK2rBk^U@>gJ7B5*f{Ae|i&TrVK)~{DUW2X+I+htyP_6nzYyQY@J6f~vEA^W#DQ{Cv)wDMeM;{lTo zq7@zlTz^Xcatz;0k#d0v8U*Wn*wZIpKA6v*I|sUF%teYGbbtHGOGdrE7*wiVg4Z=Q z5@{u~Iv~*k3})E40V=VKrl{-3vy4y?$T{ORWXgPv^9>FU2?DXa zs1P%XoT1QsZ!QONM%`SNO&Q)j8A(y0QKv5wil!0>?kUyi)G8QKxAxflSE?_UhpRTY;&4&v=D0yFdF8-?bX+?OwFl_6pwQ6Vq5gzuAz!GwbJUj3) zK_!8O2v%{e4I+AFNlcw}ayR;A2bJeE*h)rZ=jt%J(*2?N?uY{cfO7`PZIEieh?A`v z!!4<5JcPnuYg|6Lj;Lif5Ne80p}@O0s$Kl;K%z3{1?jw%`)No5V8zcYp*hh4HW`Wl z{*TRgB4Q*h1R|scpa3_@(@8FTfYeb~ucSpK+X;~X^~v?iw~}FBN-e%`oOV=;?r|xF zT}OxAD-A6%BQF-npUcUywmaApTRQm)ZJv;4zGOZ*h-&hW7Ul&>?SFV>W=L)5q zq{*tj0;-8?fEa;Pp|LQK=gy*$e`u#^H3GUd_e|fzWWz(eLMdBnfZfHMmvX(e)kf`y z9lSioo6SRB9_rTGW%lLvdSmJW@DD>cohuSo039xRZeXTWq@pECrk&i&!oRFzh~Ah< zg5J%wK{bdAFeq`I(w0FghRG!|=>eJ$2FDC$7JQ(eeiPPGDwB>!T!+x^C5CSDMb;P+(4SelkXa#=@T6|W|vkJoQ6zn zrAh;iT@NI;0#=}ZfroB58Ts3RwdRZb2<)AGJXb|~GCT@1Dz-=IR zOmbZ_NB;r=@La$O zpP(i11kOf3p$T4SExFRJpEgEKik33w7gUwjZaqs|A8uQfLC`pQ@k_U4zd+vg*8?#~ zF-X3Jw&B@RX>?+v%(n??WkBUkI2EKTs~H_F(IZzqgjt$7A5xQ@a5C6xdTbTy3Cd7E zd;WKqq1J7pKP5Td(bP^affOyu*>V*~wRx<(pNuN6s>9jKXtmWRuOrzx*6S8yM!%!n zr~L^ghEU^)3*39$5*JAMTqR;TvC>}Jb!10!q(%iR45~aG;EA~%d%Rq2z<;@yYw!hv z{w90a=+uWdPJ3Z`+;b3XQ{&%t-phyYdAc3z!p@mru=m6ZtIfwRzy*w7G|Ra(I`z%s zXyI-^Os*n>#OcDfK)iLUjylJ?E90q#N!&yWgW$p8of_{#mtio0_}9I&{Ol>cGOb&`Psc zlOq>TOCfk-xbVaebb%@XwL1s653g})t3Ind3iyNF_k4YUsY$$Gnj~u4l`6LEO$$Wr zJZnCkJeZ#Xy}BbX1=Ui{0@Da_4wcOLip&^&Pf-Ps-!ZhZ)IXam6nw^;TzKIPrQS3r zZrYpAcT~s^P33?Fc$=v~#DXP7AZ_T6+`Id%+r3yban?*{02G*Yw63hrpqPxi6+`mWHvZ(!?Tm#_r5j z7}?>WPIbR<0C^?%(XlLUWrLQwBB36_48_Dg651d9ms3xH6(gTEFSGl+TZM+d7{7?8q{E%x}88=OE$G=&}S2Uu~f}?d<4rJ5rgb~5#PR`(|Dl>Oabof z&^*Gy3jS4&N5ZW~e&>FVNIs_eR3Ibx^}OKvdH(ZD{H%n9JPFHy{@7WB>MyOfYXbF@Y7$y+ zEba1a4u%R@8@T@YS|CNXhhTCw!fdfPE}VfBC@9-%L?|(FI8Aw-h?K0jnca;AxW>~u z;aVgA+CTLYE%%IYhu6PB`Q+2!0BBHV};v1%=rlNq@R-X<6Rk#dmz)It< z_NH#qlZoYO2@ND^jL&l9Ol(}rXXw3zb5`&R)cS(%+P)ffTlRkX`2NlPyZ3jJV+%F( z0QtFkCoqXYE3n0T^Vx5?nsoNtTOp=_s~#7nCHJU*$iRi!$a4%iVmyYyBmH#5XN(>_ zsn1~pu`iOhzewBW7K(k4iQ5@cHrJeWyI&jHMciO4?TUaz+M$*+i+QmWStb7jNt63n zG_hrK0sXW2Y>Dn<|t8>(yG~S zk|Gf+ORGjW$9fGw1oh{VUMSQca*W~e_7FRnE&~j9^Rvl3>4of4OB;uQGI*zBp=+n4 z;SS=!x6!&GwLE_mJ0!-iqEFq{S;@0WHR*yZZ$?MFhd9~R7a0y7P;>%Y@NpUG^D6H2 z=TYlo)SUpkTu)|nTH51nQ~9yj zVDnXy3y(@})sRVEEca=@@ft^p#Ctff2pOOW2?`8ZlFW@QUx4@U@yY6>o8)VmY)>gH zF`n`D+f0-G3vTpkRlnd)du6&mFpIPh#3iPd7~&`z%Bj>8XqF5YUN(J5s*VM7(?hP) zAQi}TA#|mqX~)u$Lx(GMjMuhh7{md9u>5uG#&o#p@F+Jf?<_Ez)nQ>Vlg;!7dJYeG zu}htN9xm8CtOl~NKQvC+^||ZqLF&MLP7o-IiCP`e8e#V#D2XwmZK8;QFcA)F>oO|W zGc+inw+dD6s)8b(=-Z>JlwOFbhc^Gr`4;TCm{vb-AX=q!5+%yL1l z*_KH}hPy|Ehx_q!zZ6A4Wm-Z_5RO`wRC(-B6@~-HW`|cy&$`?@W~?#Z$-)&`8FaX+ zy9(yUR);h0^MW|q3EbasWr@$URNT_{g?=TEJ^zKsh1-m z+QiU!S03KpTpbTB%_Ju@es*Q~P)*;Qm{;h?fUm3Ieo>HF-x4k5fR%}sF zePfnWcvu&P3^|?=zFSUqQ7OWDkWiC~W2hJNw>Q6N#a1$ar_x$jTad)dD=WLLWe@Jq z2@L&Vw{1^$`}he(!MCKh{{G$jx7|k` z9)r8;SNbZn8dXOo`|yDdd0;s4PG(Uu0Co{9YPs@9!xYwq6+2Hz9MwtW1r_=KM@_$& z{Z|B=V+{h}$=oNYyooyRuCK|1V5vQ#RuDc>GyUQhfSv+Lx_A8|90Iz>`Yw-(G&0G( z|GZnn&FJsCRclA&WK4KxzBTCnu223~edq9zmq$ch?k|3HO#?UEfT(KF%r0a2z4VOy zzdZ6QRBlFm_`+yg*P&`?oDZG#1H!qlF{%;+k{P$jS?5X}ss|_@0G*b5b-Luyz87Fv?b88=^)dhvr6@On!q9je zA0A^W5F6Dud1Q&v!Gds#$vPu;eC7Tv3Z7@Do7;1t`|6q8Q#Y-ukUb+2O{lLnH8!!9 zsdPx$DMGbn?55O2cd3g*{0@C_s*2>k!grF0|M2~r??3$8$-D1Az5QVu2|pZT5xvpS zjxl63@t&}&9f8%fN8R2xdy#y7@5->~69XE%>-sh80j37iJP`}K_jJej+6)<9OQwu_ zHiXws3<%g6IRy*|PLMgcKh5|4U<^65sIoR2sm;#aOGr4L4gA$aZwO3i>95W<)rwl2 z>%^9qu6h_CJx7bPvE`SKk~f-rav|VjN$sM4l+%K8em^}a*-!HC`MC{ej>%B5jwbuF zFAe8O0MXsq-Nu~qzL+F5wzxn&9BUdPt6Yru0`00)sdp$>l}q?cs!7N#{vX8BXI8*m zpQ(O-d&{$@!HuUR18+jR#7#Fst(!W6GUN?hT|dOn&7~M?=H=u~(29|lP#suT-nYeR zx*KjKR4qf~Gw-UoS*%U>@v7tkwW)SudDRESH0_=j*K%M7h+r;wLW(Krc|Y#;Ev5|C ztz-0mbvB*IqwDu=p0K`=WM?~Qz`i=_@KB-ENO=%x>`REwu@UZ659f!Kfh#!P{#BI; zwx4E}WfhR~>XvjBz4#?IuXg#BMKV$fo~~4*zqS;#X}l~t*bX~5$v&qn1$$or%J&%x zv}HQWj=69BA-fKLMNW!o4ECQOtty$d>&9P7U{w)FAn;H1?RTnz*Yl&>6SjCu&Srjv z1fDxm&duEe10+bJstRq-NHmWC6Z@G~Yo%Ci`+P$cltyZwE=26EL4HCxl$?#1-~iv) zgq8_pv&+M`hc`egF7Kg%5!tjr6mFkKw;OUuzpl341=6$j&$0X#fTXxqRF8e}hms%Z zhhH18<5e8B#+9w9GU-br-hpm-S$9ayS^$giE1b zdrb?yfLZaZLHt5#bAE)Gn|zMANPVM>{pR}}TY#*Q5e^c~ko|A2E@aABzPP2dGzEt$ z04-$8s$n9?w`t?*+r2r$D9g2z7DGxXbt2oSf4ST8P_+w|Oz*sYEM8x1j!w=n@_=>D zZYp5G=Y$roYH}=_mU>_5mZ+si$g>|8WTM`!)Nax`0PoC7Yu6*rzAxZ@@I)7Ow;9D% zy zMSvMji?wagMJ zuKh&GSK!FiWyJBtPxp+Enr`pU9{UVPVt~Qcirz+!H}KB=?(g;+0;JSMW4pSt-(6g- z@-mSXPc?QrE73tigXfoo%TWW7LQN%1W&>m7##qst*MKHcq5cHNBeho?n~~8=nSPs& zbsEEHF5wx>>tvpclN?22T_WVq!BH-O(Z%@90T?+#?LbN5K`}a${UIqA(M#vgGV@F~ zbg_GG_PWI6K@L~PB?)z0xK}qSmupD3)^o@@9*k(;>2yR^>s%^J0{;w4XF`|xK7s`w z)J7a5mnq5iqL7vr>t(w}^K-cB@h+4DbQ7HqK2{WxJ8&Ue$dK_wk?En(U zr>-EC7uTe|jh15sXDdo(;AZ$GKCQB9%bAo&a2jj?Xka4MB8mB8x}@Z zNbxA-VlWHL$~?6Hxs>H#qp2844TmjMiibRJcmXWu$}x~HPac1#yL~wdHj8OMxH9s= zgTLaHBYo(uMi)jxuXe)L0rYw`ns6P>xl& zLgG!Lp9STNnk&Mw$tSA2Ag4$V74!=wv;sh2G!X0bXm!Q7pdox+@ES+Ym!#XANE*_2 zS41z4I1?nl{O-GV9~KuM-oK-kk`=UcqQ0H#4y?_WDL$zjxnv;p$P&7gvx5pKN$A&A zEC>(wBE#G29Q~e{Hjod$9R0{+LD+`&w_JEV4Fw}AdEC2rOb_uC zI&LCZnJ3d~nkRoh3t@jwZ>J<6D#(*lpjFh2x;(KaR_atxfb{%)6^4HaVMoW3?2g`j zy8Q9ae|YTG6y93PpxWc^$;WM zOd35|F{<`?ILWdd6%?Uu7Pmk~RK=W?9+zKDBw@97sE!e<%QOm44J{b@{PYNU-M?2F z(5apnk?fq)o}8TTRNe`WZs_&vl8=5Gl(tubkY`trhD0zg;RP}x3(W{FX%~iFnAEb! z%jM!KQht{UpErBV;ad>)6LePjgV)0p!O`h~joIdf-_SP1W26B&7vfW-Mw5Tk4TGnV zozVl|N{EnR-X#txb4B=H`pq<2`>xYVBKR+y`aXGc|-UJ8Q9m$>*pa-sl1cODs?we4<6#9Xsz{d>E&sRf)|(5Mb<%@ z>hd=V7hmI-W#613Ayr)Zfp>BHPP{GJ79v~g4tBHR$~Uu8YXK>{H633w)gA6qs=))D zAR9FM<%Ao(;3u7g3-yc#)xBeKZH1NjehvF9YN;h=`N|+JIDrRZ5L*m8z(98T=|0~O zSbL)Hr#Z*zG>#}#N%MApD35hSwd&^xXj%|)|7ik|ccRI3?XMFT&?#E;5eY{#wZ-1v zU^y{RX20**b$;uS+-|>blP*y)sVW&X{3x@mhNtOaenK1s!_Z5mH4=*%=@`YRz^A{$ z`NOfq>C{3z=Y&fON>;={E%n6)k|X6Rw8DRD_O^Nj5A2anSvzRCQ|T7Pf|{G}7@kNO zcGi>5+zg98Tl->RAQl%Ohnh^*Z}Gah_LxF)P%p1gfxwR_njjP=qdu=(J>sMf#xIfC z8@(hrMnK@af=r?*eRu834G`Wwxq}(q=`&Z%2UmxlC)zW7g62_(q3sHf_3Ul6V1u%& z)wxedgcjCwfh`76KrXyO?y8OS`UMYLV+RXE7jA$I3SXE zp@6xqSp0m6(m@p^hWIpMUD6~FWh#VsMG>X(YgD-$s^TX`@2`K0ey`0*lUKTncM)8_ zgJs%H+wJutnz9SRYaPjgh6W8FI;5uGw}nXv@OXK0ezwDuje8S*%V*kgWtx;0d6~r! zE=tFhbZO|RZaQk%OaF$N7;@4_b%c{XRun!WPCINI$m(K$GI(p~^b8Hx;RD|!+R+Mi z*&-BV6ZzLubjy8MnbaOr_3zXu(2ZRMCEv}gBqj!;jeB_Qtt>7{~Q z8BkC3@w!+d5S}J}J(seS!{^DT%Mb52pFaG>eP|F(+IMmV3Z)i-aAJhtHgIO~UJ2>{EOnZn_;={j zhWqYOs3i?`{*X*C9^p5;dB$0w>SaP&jpNNrvBN&04LfUTV(5;&m@eHN_o@z6qSiZx z`5CEGT|aY;z$?lM^|)cTKQ~4iya^wt_Ha*+&}jk!!BrPmmk1_4K_CA7=MV2&pTBlc z`u@eyMW{^Izy}ug#I7?L9I~O_nkWx1Lf(d{#G{wjsZ#RYD_g-0VEcyM}<2UpY= zlFx&$ybfA_uq|u`NmclETkWzarq&24Hr)CWQHqTXMBDWynpEB}iOM&R$w6|rk7OzW z2x(J1f1FfTUY1>r2}vhoV~GuI(U8iUFUa+FbfqjWtCx?T{+v{A^)B#_)cW_?u_ya2 zieFtfuw+qBrXyM_??(9=>d=PQd}`z`zXo>}N8#r`M)48yY zPe^LJJQfn-AbR3YRmk^|XiC>Gtd|e<#pW5PVc8t>Z1FgpAZwL_{rMnN6vz|W7xs*o zM23!08T ze||W3-*?VTxa-Uk`@>+9&~r)BU-=9;M?HyIgDeRrh1ce}6&?ATP*b8cs$gS9{;NY9 zL#5N#&rsEbj=x-ElhOmNCT866xeXD65P_6Jx;%dwIMr7PaCLR5MBHGKpS!l)9VjRL`N=)FlvGAoz+Gn51m&vM^~SlvCm^ZBW6^EZ{SzpTKO+Ae%?&4}lY!xIZ5C`%d)yPv{6D#FC zd5PxMCochK;AfNqq5W=+x;th~zNN6Exal_jx=OcHKP)AW$w3Bnf8G&(gGW@bNaw4# zoJaopn+tf(a}F?;eR1RB&2(yyu{JI{VUI_5MxXMNg=(CsA5f)zu z$5Ssodyhz!)xnsJ7A*G*A4~n>U)D~GN;lI z%fzyI+5-v~YaK(#>Tw@I0jM7OGsGX>K6sou$7f;WC@&MhW_i@H-DOKw{Jdu`r+Lle*E-y zyM6djZPo2<{RmR_2;$-oUC6SarIlCW4Oj~Dm*wvU$ExVF<|REABgt5_FNS*{t;4e# z4@X=xkDgsDZ$)k`V4($eMEum5R+Uy2HH-u6YOAT7 zZbeSO1twZ)=TsY5e`!3Cz~kuo?Ur*_>L{u*kTqs56r9?#C>s2W@(_Z}e@V~IqYxk< zC%7FJ%&*9Xxvhzr$D&*`ltFOQrAKVYIF#c~qnYo6Obt#Xl1Sh-3we&qTvkxz~B&)WGMG+eX7;wd)hkfG%*#&js z(oq{l%cQU8cJ|bR1uXW^L$5)mJ9wq82&eV?v^#xCYCeLFt-)Hac-tfmE1k{p7NH^6 z`Zz2(@oDMw4c?+s$cGG!&Gr0|4_HYRW4_pK4YN6D45-5|(YDDbH41&;>#2?FurM31}X%crx4y0ij8Oao1jh`*U_=o)ePZSY`abdnZ#U4D@< zVF|yTC(k_>f%M)F29+nB`F5w%4;wZb)SW7%&M@7{%7KC)j?x1(N#}fNlh2dT5NI)~ zE`eonykzn$GR4M;wL*K&sSC~a`uIATiQNt(9HyuP%QV)T&`PgTH>q3 zdV*+;l2blTi%dZ^F7Q7FcNgDK$JG_=5AJVze*N3x6>9R<&;=ffqNmgm{px?s^cFw< zh77b6<{e1Lmp^gwPk&;aLER-zP@N_O^jdsSJfjc>mHyg}N$Gd)?rQHLCyd&Ac ztHYb+>G9PwCsBnkJB+rCj@-$FkqHITt*bc8q*6yBvz-m4^tzDFr4d&mj7@S3Npji? zV;0Rx^;jr!G!Xd4PFDK-0Zl|)%`)63_Nk42H0yeQ7#QkL$$>(tnuex`XH0N2@!QWS zivE$M2(?l~cMq1LgCHVOGQ*g| zVa_ATUHJB+A89X*s>e;gmDmx1rSzqfaC(wX|$-jq+L!`~jr&(oX$PM*ULfg6nbkZ6#g0jZWt!qZ}v z=>~{T&V;GiAIy0;;;qP#Rw6njU59BX9Sj=(!GW;PE35}~GOnk*rQ%hw z&)cA{BFi)mwjBG6r>uldH!kDgAhW@dV$rxdK6bo%y>fqRl-r_PC9=z9thN}?qC5LzRr#{g(puH)U_9-ZW}Svc0Nv?Q-}Y*ffw-TX2qX8Iy{s{!aFJn36-si zh@ZbS!RT7N!bbZeEtXAfP#k^Kpe-A`KS6T<%3bcCwb##YNLB%iM4)Ytfg-RcH65!+83(UK9abnhQ#wD;ReR9h>dvY2no}e{Dn%(=dGmi z-^;8TcXZFc`rF^wg*$o|_ussK@68AI-~8y_n;+kQ^Ao^BM^fc~uvcDep6~mJHrHP3 zKo-hOO>FW>mkDUp<>lqvYTFjYGkzA*a^D!NN9K8vN`tU`gJ7sP=KIA#FAl@L4+HWq zh1tqsI4D}jL}dG8Lso<2==0qCinPyWMv1uk+T{O~g0t8EPPwm=rcpeB8nIxv+I1?S^%EUlqbK z9lvDa()XGqDW*yhXio#v>zpUcE7EX51hLnRH5Ueu0{4WES>7zqP7*f^X|o}wdQ@W< z)cW&(Gz~Y{z>NH#+s<8_lbjN%mWpNiCwoJAv%E9}n#U?8#d6MD{;T$Rm&Gz*Fh|o# zgkR?dsgwqMie@H`>=woU}+-7e0AqYlqTgix58&%nu)hontH{_earVhh`gdR&zuW{oqb@6i_*RwJ}G zf`?=MEZ>=HdDp06{@D5sk8w-HWgyXQgT;Ai?e#6JLe*_Nx)-E}VF}U+JWp*PW9dLA z7(VSc(WRrgqYOR!s`Vx$@6_pv!!rmSk3EEjcrE!0=?aWr$HT$KC`HL83T}}0g!-Y_WOjO9p=cF60frpj8#1qu zmBXh7UR4PJ3~hJz8aXTZz{{(hdhz<`+SR;HtE6-7m+ol!r_6dt8Ab=y|0{FL_$k)y z7TccGyI7po-a?!8E+UJU+08(X+TGgac^PXD*8UEKnR9-b+m>#KDA_^}{Z4I?oC-$!G!B>A>Gp>i zTNWGH)B8+h3p&kU3{k8EF<_EizS z)u^S8pas{tNA9C2m5Zouk0ZBv@WfdctkHT=xIEJ``j_EOPh_P$J9t;tLmaH_;jQta zHvb~{@|r5%HPqTn@q-Dax#z#i^F6_E67WsDJe6aru2}d>sbqaeTq=^( z>LO8xPx9zm&kp|5wS0(DLYvo>F*5TxbozaqOf!4w2ycUOaNS;&kjn=(Ue_(b%=<|I*~#!Qp8DSU5tgr^Jq7~SJ#^_=7VMWOJ{T7*)= zt2Qu8x;GiH=8=i2If%XH=OtM(VQlYE_o(-uuH&&&3G8WgPtScHP&emux4%n*A-|=) zG-r$FanzIbfvn*2dAi&RI(=;*AN;&Gx7XKK>zi4@D37)Hn4H@Tu$W?mCcxD-YJN*q z?)%DO(yOwV?Xg3)Z!Z@dK5NCpQ|k6IliOOe!yHzmRqlvYD2eb~$r#~ZO~wUR#ZWy= z&KnfTdjg+3EZsJmsP}bpgyT**N5!Rfr{AzyaI2`_*wwV}^KgGJSo$=u^iUQktvb8? zaRTg22ex?W6eV$16$H;7ZdPZTS@YW{;nUkc|3wm}kGXW4{MLyhP;au;H|;VNtqNhc z*Hg2ex)$&)Oi!<*-s!ID0Fk7W?fU={)M;Pf$QqjKfuj^xuR9yVk2WE=U=lXL;hx_R z$+UHNL8Nw(WDeu&2vKTb>@Qw#SJ#^}RhQb%7Qb06_6`mn?;U)-c(k`a-=Dwz_5AV4 z{^F+xoB#ZH^X}U}DVZb$@{(*&2{HwtP4s)kaswtDN!cOfk*e*!dxW>kX&p3s*HtHd z8Bd3>%Uwgb4bb3p%6nSP7ywGVLCf6|Z$P#=MInq@{f5MbGHry28Uik|wNAfWO%@8~ z-*AwJqN~}2@5z9(pb>>F?ra%9M@~pO(@6>9u9-!oXT z6@oq}=RBjf)AKBFN{u0xs!K5EjIYXs!+Lu#sJ1-## z4wWRJ==7^#w$gN8oOu;5g^+Z;IzGIls(2&7ILl|1dC*kdduI_iD>wG#cP1MbN>fAY z&1%2+uwzpvVU@Ba3K{Chg3N~fwb5CCznnR#EA>oKJc^OjWAIrFIS&cpW_3cnE7l@~ zByXSO5u)pR?Jh4)<*wAJf*fc8Y_nbTw7PiP_pK3(3*toLXk4`0UAf0WyMT6zcn2NS z>~tpJsGZElck`3e13C(wVMr-LcG0?b(x{~B7C^NY9AYvY6>1dL_$D#v4x78vXVi?1 zoKMMwdxEys@fI);L6D29_5u5JgL14IxkO7(61j_hBiToZsa|>A>~Q{F7g>e=x7}Xg zgtJA!9mTT>N&j#&LIg>09kw2v&zT}uGCBUjGO zu`+<&Go-j&dW5;P$T+gI;_On}V>gZE^_iSB@{bM$i)_-Tl_0kN0GsGH)%`eGpNRqf zjwTJ~N&#qSF_|ezaJ>+D^PPkI2-C@(P_10ZCyj3uN3qNGjkQRk_P~?yxyU4(i&zLG zi=UBNdN+PbkAv;JFR}DJH{Fv32Z?YM8pV!vO1!V7p6usK1K$mw*xWMi3JO*WVUUB^ z_@p*GZ5EECkjIssn_&3eUzztZpm0{gjwBM$yy3I#x(vxDCJ`>j{&8v&pgnYw6%lB4 zL}}j}60IJ6Gn;BOc(?4(M&2APX5Hx=0YupGc2MOMkBY!)UG_Xhk9w`Jk>F4>-^~DT zTF~mv7F!vRH}!)1l;zL57ib~jQfm&KqO;_IoT~FkV?fa=pnHg2lmS=S8&8<=_~jD?n@LET+Iw%k^-bmc+i{+WF`roEQVh zF}Uc8RJ8ER#O)|G3SG8e*%8?l>t#`s@0CzhjgeEI!Fh~<}Kb@qnmzY zHRJM9Iy`ZCx%4|kRkP|?7faBzdzFnM(xf6iz!2m-YV=c6YU$?16Hz&xa+vg8qu9@o z{JO?cQLTGOUs28E`0Dl&`&dyL`ZCzp)}xM$Z=G_9r-f$86By2U%qMQ=cU8PU32Ae`SCl;o-F~3kki*u;tsLe; zEv<%*sQ6Yv$0ecDaHN*Tl>N~qw#pBSVC6zbBD$f6t*;G6>71TtP zltcqZ)HZXye*yntVG+%>EgLrdR>p+PZ6 z-3Y{?dak_#8Sx+cBjevd4#6Z!U{~dm&;9a!PPcSWffP2X+4EaN1($WAv$n@<7 z*KqerSFF77?!*B-Qdxz0kt_Ek78=kv7Tb&4n-!H>$XK!4Fpkp{6oouN%Qx}G| zg|XTBrsSX6VpJX80!JOMKLq}RF+kFYHIq_Q;GdpQia;7|@3`07i|UJhc+> zupZUS(d?=dhcph;vtgshU0w_LlWTE;q^v3qcJo8xCQATV2xFXKQhIO-K-8}{SJ!}~ zg|yvve}dS;;$sGE#R^Ij$jniMQw~w;&WCa@Kt4ipjfP)p3Q{6ac}DcjT+Q!Zl$2!> zRg;7|sciU3vks$;m>%QpNaf7gu?`%`kYB2HN1jqtTIuc;W{-Z5Z}*ccDFm=Ik8*z_ zat(B`jPdQMl&O&z<1`7o{k|>ili(F0?qb#$yo%z9N9-~e_skF&PGN=-K zrMr#4R{w!2ZS&#BAHIDnFL48$i?<|WOIv#opzAJWR1Su&{Vb!*^v^q(byx03nqnne z-~I+v$6XH^TQGV+KMkX>B&)NVyAn+A^ci}b8W^aLh=d+PYk&KGFB=piEO%!osyc?< zQ|ha*`Z{Nc^_ z#g`T5@aRtuJ1<`6ZxJy7#>=Vu-I5xuy`CS$fkb!YJmYdG4>(-Z^m19geg_bn=d9`U zijGwaRIR+cT1r|Ez(*x zm4@eDhN~0Be`CNNd#nj*HJzR#7(kATcse~_;946V$+L&zRB&-X-pJ~jR9MH%_3+ny zqshjvXCr&{Q0B1I*Ma_nZNy0c+y-h@u<@YD-y%Co&C#v|2O-;nUla^aj^Gz ze(*1a46-Kc*G^E!=GLVdn3jj)T!azgFUVl%Q+}^FpvVz>gf;CwBLS2iBi{g~A=T`1 z`S`3UPr`+C?UkC=htg$jy z6WrorFtqzJ(B4uWhtJXOJ(LwwMb6Gk&naSfI+8~iwZ z>+1RuMWXe~yrWsgpCX2HPMDuyXM4VUj%I%Oyor<3E`;wfr>4E|gN4pY3@M!ls8$YU zPY?tAxUu&Y#48h8_j0w`hqSdMrj_~fD09>L$`QZVqmF#asYJTi9^X8xjxB}p^!#dP z?&Zl^;_cuFL7dn1ujh~O$sNpRMo5mC3Oq5@1%8tWRrD_T%+4A=A?_gpz}_|~Aas>C z^Rr0WRV93NUG}eS@_ zV5sIVV6^&6uNTz&#Wr1E@k|ZoOLiJ9K;nYb$@nmrE-#3IH)QH{vFXRp6wMZ_ZxEagy1Z{Kw1r#da^`k&Fi#E3Pbh)IQHM zFU|9&`FCv;W>og?*E+q*F!bHw`BkuR(k^2(r;9LnmRG9*OX?%k zKMRq?QP)=1E^h}Z!ZEi{ZD)+jn^)X1!dNX6o1ghKmy29wkN`3z58j>ixT|7F{2@-7 z;LFYOz1a6NJR-!aOBKCATUtI#Y-~uXjWzMbBruK!_~V7?Qtv#l9I;YeSFTi4-;gb+ zF4hhQdFPm*ZA0+SVobpeC|$o_8*tL(t5k?bzpIl&a?XXb;d>qz|Hhc~luZ}C6QJFg zjCG|G&H?|*aSqTC5iITW<|v(4B&7M=WgKyr=6P?2vTmsey<84yDdfFg?Tft2%x3EF zpo_}y(1nDY$;2oRKt55v9)5Mtcut1{7%WAZ!jw>*p{@f)Nm^Dr!PTIh+EKyNlNoC# z3kAK!@XlBvKI-%he7HQ=`P0TWt2MP#iBY{ls?*GmWDTVLm1aVoM|K>C?ep{{ zL6;;J?$J_n80ATLc6obsyTQh@)8@=K5&v>uZ<`}t&y4AWepb!m|??hV@B0%-L`|ut;~>9p&_xc1Ksd zg5TJ~Tkc}}hyVQa_S+9XzW-ECVX~Wdjq>gm8mg=UFdBJ&M+7!I;|5SWC`&ThON7Z{ zf!I4Pp?s;Z&j19a5`y_Il?$Ttb72S0U8HOkvWcy{+ScZ>&=c9!wGpWB;Ax#O6wH3= z^&ho)pW72Lj-KoLhQo4r@<;(@Qr0Sf>Zz;r>^;iZki+AbC#%DoTO1f9)16(Sl1f8S zT^lM^B#V`f*d^d+f3LWGRtv-ao|HXMHiaMfw4iak1m4b$AJ$(Y%FPAAaDvFVDN`b) zG(_A-0a%?=j%^gA==`B3CCR&_BRwK4hYjo470dt!ESw5tr?mwB+0TF@?!Ot))?C41 zX|mDFt|otV=ZH&57u*ov4AM-cFfM<7P*DmqbtN*Wl1Me-r^6J+37lH@7qdXCX=EpT zr$M7$8j^UH^&l6hrt{R0v7j%jikzfwgOW8);Q~n|6msHJ7fV^$hMePPEiQW>)K!=N>9eiCpXQqM}&mXxq5>bU4`r=_<*Uq#qQ_ zk>-lm%xJGJqiei)E2olrxKXEPrs-CrI4Cxb$icwc)J_ktp6VCpI7wh?(0d===T4yS zNQ7{Z2tj1Ku3G9Br-t~AWv5LtizsOkcPNlxSLK+BI1Jq)m4yOfa&r>%wmp8j65X)s ztIJeixYEx@=M|cL`|odlFl53}s+@8w9STclv!A2s%e4ppv6HiNQv;+h0g_%>V$Kb= z<-!}^K?@mLM%Muxj(ad)_kQzA1<6wnW4lqQ1cw=Unt={Jv+p(x1C&SPYr!f#_j`4% zk{w)QU?+_`q#17Of@+_U#C^E-yrf8Ust{Q2M8%m!Eq#!+D7&7k0b~hb(?h(ZLDYps z*rXbC)uG8L#`G=+3q9mc4bpx9j|@ttYYh#NKHD0bBAQep0z>KT0;yb`ZT81mT-dG%MFV8bh0VvtBA{c}-! zFN#}{e-uVzM?2mR%dHXJ)n+F*zX1~*txHy*yz)e~fA;M@I!51VgOD|B>26%<+H~*^U8Z1i!gqu4HsUGCKp~*-;~|YLto_HNEAo=2@iJ z>l5fTPtaQKrr`6TR}DE-a>u9^jKk`szuJub;R$+g0URPu%gU@U%ru9dg~MCx_@43u z@9Pk+lDB(Ex=0)J6xcR7jwM|_hwgS6HPtXoEd;drq&!ml5*PqR$|7H_mnc68IJ#-p zXWV6dQ&W85;NDCS^yVvyaGJKiHU@5*S7Je0>C~6i@v??Sw~F&U^yyVh(1%E4n}=!0 zhX^my#|y6IENn;>%4DOEr>>qy`f6$Vbw%D~a~l9N`A<>4f~n;hPV6CBk4h17mogrW z7`C%!vVIcE?%~>-Hbz@FuVH*s8y3zKW{%tp1_0)KeSUO2uHHH7^bGucpnu5$EM-db z`;w4Sx{$X?Ep04*6J=e=FyV+~ofO+}$T|3WyC+XJYUmJZ#P9I<6|+W>QJ!hkX|4F# zauJr?P?GD?pBtR@_RfHvOjqj}+LovC71Ig645D3U9A8r08Sk^F83UMy)P)U91(Y>{ z-S^rvjHp?mBkPx&^XuI4(DvOXe~M7Ku^gv1kDzg2!x**Q-VYszcwD&QUf?_)*ZfN! z%QM3M)`6QdR&afqx|Sh!@M*%qS`OkzIKl-HTnt7W?ZdOTpD@Ax@b=@kZ>W@-N826b z2dAg#M!aaQ%TAuovBt_w5Pa6sef|V-UYpY)_eWvWiXm^@A2*R~6>fu%zdFbB4DXR@ z%1N4`bgbhMzO~?BJ9^!vm&s1w(EF8ySINz>H2tgB*LW@=n;*XZYG%h0X&fPkH@L$s zF;?R-39c1bR5v}2$JkBJToP`23CoelQ*XteuFC~IHNaC0dY6Jdd-7y5jI!x3_{<3s zwl}Yw*z$OFe)!GyVEGM3qfKHr_9~j?7HbHtEnr0xuaO>2uq?PuPJ41lGwFgc$K*FO zj*Wr>8vX0vF43rqSThOTAg&ZOqwxfvjf;-5$pX#*N!E@x}xR~kR+8#T06cxv5q2t*VWaYD|7~XVVPep zmnPTtdUk5GqRGx>hTY-P5A{?A_4z#LY180Q#rbPw@@aURfV@$E#O_iJWDfIEmRjq{ ze<@Tem^TM_#=(^-$@B5mt4o4*d!X3q_DwoJs0PGEEX-ANAq}ANj=X&P{<{x9Y%`}r zRxd2-Z@JMi^AX1h6`P9KjQG!S7$@`NEuul*0V$G$b`9)P(lVGq^G2!@Crg+>=Wx>K zG9FR)a+JoN1D-sYqWVL%P!E}W{ym4T#oNg?>1cEQ?Dh@9#yEJt3##@v6%V&?Syj>?cNTq(HR=hy0*HhQbEdd$_y|f5N^BugPlD-@-D%LC)1mz-@? zk~bidzB^D!9LX+J?R2g0B$ykcktWjxw;d#T?-~^wqmkWX`iM7^ZykIU#7caXl)vlp ztWaIyUExH7(q7>~N!});{8XSYJz|R>WFp{JMRi$9_X^X(fk$y@k3VDvEgKVr@FhN| zUH|knR$@iP{#<~%N_I7g(_UBkG?@JmbdIzUIGywv_!f;``TE&2j1y(?N@Au#@0|T! zK@+1kz`Hp|%%bfnUbfgmzuEjAS<8RJzY@W#YxP0pvx<+!%~k#yRMe}B1r8V-7=7O9 zefI3>0Vx_QS(>c}ih(tRtlOrT2+OQMdfcZ_CZLl^E@2@Ra++&IyOrcme}{ZiX&sv$ zlM7fdqfJ?jrgU0;Fo6_xqnOS?$z(}+zgd&Sa?_6tr?1h^T&Sb=%HdP4>t4X)01#*#s?e?p$4=?1}6papfJU$;JtoOVATyGioPmQLOs} zpTth?ber^Odu6Y&YOL(&-rnOdOIQ&Ui6dtM1|Z~Uadr|MR&h7Unl|+^K&)y9frN6_ zT+mhLbL$}A{r%ZPU!@z{-$IB2cPM)rr+5CNKJ7LBq5>qx{R6^{4jejQFb z#OFgF;`J!(!hyc6V;3X<;kUTB7mTL|gh(B6{E*7NL#4VOBBqDDb}a51j!QhQvx91L#UI zq(U@HtIs#OO1Ul{zSgAc1+tE@iZUeK5+88=O}xEc`rbl{%{VMd)Ss@@ZM}8S-g^dm zUsCSM%(f+hhY6LRRrYEd5U+#+;;!0pe)Xz4q|`=sX?nCWz~P>v=j75BPN3EX4Nrg8 zsQV;~pQS6%(GWgjN0rnNHlZVKPU8;(&T?@>fzu3~T!;fo&@h#9H!De%&hFMse zBzmZ$=A|qR@L|QJLuaI92oqJw$Ld+tVKNj+_#fqS2fYpI=G5{wZAA)fjSqDS&A5^u zrF&N|Eqdj~p+M95HPR-bozXYV47uJYqXDU&g2J1=t(MDWE;>I^LvaoIDZG9pSVOK< z&D{q5(4LKh1AUX9k-d$B1vkb+F~z54Bmzzk*W}tu53_63(WjBe{03_g!VB(_*dNYt zC^}zsJfaO6Q-cgjxnc2D6e1w|wq@|h*X`>BBUuQEpOi2<0?@(6So-~Fp&4j(jaShH z3hqIZ*6&=Q@hI1Vi6N)iCGvR&D~m$K3L8hBZ4NOV@i>ld(UO2NK`Us?Z?Cgjc+>e+ zt3pBPnGq@dEqa9`=w6*2lbwOw^+j?H*9p+wVr)*a-3<=iL_kR{UM-&kyCqG!1a=`M zSnPpdUtWnySs)#?lcPr8S4-sC6sUcDhMrb_rR%G6%sh=P80k#?U=}HO2c0Ru8UyDZ zB^H<@>+|@a!NGAM9DEiUfN)zxBjrHH?aPb#Y_j9*YR+20e{R2j`{tv3A-CVX{o_08 zqRr+73rtvh=6loTo_gqoV{8{H<{s>Z5K=|%9CV&gKHF`lVNQaKje$2C+=t@$gk4eN ze|Lwsz)l~ZCM#O2-WLWurcSX9$i{7XCc=NSJ%lQ^_rN!VjPs9tF);6h_9sC!d16$$kuAHJ5P4#`P2wMR#55Ve04nbwCK7#I6htJn81pw%jGxQ z`Q9rG#zn=pcbJqB3!-^F{$`p*eg252pBUt~2=jDIhH~MppIzO-W$?Y(UsY;yv7OMV zso8HZJg3|B<7MwE%XJ=dL4KDvdeSAL8<9pQB}LvbqjMCc@}e9Zru4JbITXJ$v_H1Q zu9rqeZM>m2pWeLx?hpTY@!`9-5d;vakf!>B#dx7iC@(1S)XB11&`s^CYpflDHGXBT zo>m43Ln=C(MQa@}f*{c%=Y zRsXrxryO=e2l(+F{K;--F8uY9gr9R3IDX)FSMnlG^mytcCh>ZWOZ?ylC%rcaUQDsn zZL@dpzlWtua@}PqJczr}BO*@!Xn?=D$rj|ie*o9z;WajJ1P`C`e8PR>{2;L-s_Rn~ z)aAmTHJGo^agf@1bRC}_8oPzE`M}*uqOaL~xUOSV^-vJlBw^CfM;YZ-QkOt$uD7Sx z{FB%!`KH}|&wq$uSY7NSzc{(+=gT#~M zZq$48pjlbxizX4%>7g@b#>96wU_8w8CyOf~SnKV3nNn+dKh@^UX=%bJ<`&k!-D{DW zFmma}FmmZQ9||goNQT!8acG%Jcj}Vj#hM6F_yfeUfWr9C>6TnTV@Kcp>SkJub!16y z9D(Wg=fP^(owD)3m&e!9A<^lOFZho3vMPzjji`R^dra~2u4<#7dw;NkaM#l~CW0vg zOsutic@Z|t^vEq9rQ}v5s(XmW6K4ALZ-tr`zp~f3QI$3B*E}MHTPa7D*L6V?a4h$h zt~jbd!r4+{7^YVU#zoNAy<)W5>Goa5AvK3tYH9L%{^)^<^YBFe?D8vZSDgVIg9DhN zcDvQ*gx`(y9WxUl_^#E}vUO9pduiuY7w0NYq_Sn;NyJ!Brjo>Gm({xBq5#i`H7-B-_I^nL`6> za(+GbBGh9Pla-x@TR~&Bwr5#p6*ml~9YHq?=g7ADVH%-CoL#Fwz2E1QBa4xb&Hgff ztk~01Q8XMTagK-@??F9k(9F2k-(yBjdaH{aC(5p?46gK;YvGULdE?RNMUqGUrp_sgmq!qfmR*PG z_UNvp9nt04YMpx9(Ecvko*d)b&G7QJl*T&&Wz^^K0q*IC(*+wBMkFG7#j49$Q}kQ- z?#;)KZ-4l-{mYvl-u(F?r)1&@(m!-h+_w4`t_21up z|Mnp|O=B&ENOACQ4$>z@2B6`@#-pv-?$y~WDzCv0X=a5<+gTlzYWVmQ!ehhBWoQyS zBL{_BnPN|qb4^O#ba+)OWrv2R?MR4MC;jS>y}3G^TlQfv8X%FT!j)W~ezROQ`igwP zPItVfb;iM4171YgGzM=RF`3DNg#C3R>7modG!|HQ`oWT*?O=JJ(4XF{Zi(O3SHt+7 zR0e&_70zg#`l0LcgSXTHlfFhqlFb3%`MMD}qQM8Lu&toxA z@Xk9YS*uTb?af6(nywxsyE@E?UN0J6^O>P_CZsl8dfp8iwtQYq9JyROot{XvS`9%B zx2}F|)g2s)1$_PR_}xddaHIxMUQBQN$^G;;3OpUnPi@2J#R|0x zQh4U>que;$RlgvhC}(5_TPD?_>=x>nfvMCc4AHim7mG5@rDCN@HX8*#=n|t;&1Map zfKgO3Hz!vy#!h~$csYpmOJ=NV(mYeicYBSxTxXELTULnUFDJsJ=><)YUn1yuk#--Y zoKURfLpvB{x3P%Ep?Blp;K1QbD2Q#RJ-*D7)eZ1r=?FJG8d7<%ndQr(&7Wpkwo($o z6}b@OyIeqGtVRpeORJp%cGYa7em^{km)=nwZ{a;p8U=DOZB>rhq}|KwqUxcX6wk5( z&8<;eG;81JlhRE;luM!e&o5YJapz>kMW>_C=ltmQ1cLAUe%n_y+gIx4r^k4G^T8Qv zb%{sGi+*RO2Kdh0vYOqdV8`0vWlNBnGQHaJ+AN<5kl1jf2}8rt2wO0j z5U%mQ-Ke0@&7l-gisAD71+Stz=PEVpt#=%0=k$PLT54DMB?%$j40jqONjDyatDv zJN{Ial5h72^`?lK7(G!Gq3mP)h4CRa@^;S;z{^( zg!g_4xOQ9Py&rBjjc^CY{r9QeCY@)=eQ}@C?Y?{NQMqYT!nuR*UXk)SoOYBqBI!#} zL5%vRA~}YeTp78X>t*==;sDlC=;&d@!q3HU*pGyCwQs6x>f`ShQj5^Y@*E%;lt!%Z0fEb!_D$!SmHdtXzy+s zeLK^-!#M_o%Bu^_EQ-xy^qPBHLd9N;UQAqoauey4Z%$FYpOS+CX?_7MRo4=6k#4f6 zJ=@ABO(wE+ljB%vFcO<4PdV=8CY|rETgz30e|P$fm|!~CoFh`xr(!Iwya1^rtT0#8>u$UgAKv=C+68U;b`ozBJ80T;taUbX))>HFDcKO$1J%Z2b3t0Wl3;X7a z5Alj2aNHcPbCLL^E6>he1M;?nqq)V0vWVs#!dz4_C^3ACP3f#y-P;A#S~f{<)6}M^ zb=|%Ra+x?VqGXcdH48r3FZ4{Za&uw0*L-t9C03I02(m@79xV} zg`K~Y!z~;?OEA%4Q1xcZNwubK9WJ_@trN{{vQ~8mgy~yZyA|H!Y-0SdM#9TiB=qS~ zb>YEB8L+f&@|2#`a^8%TA$SB1PNmPkX+c`N%SI2SW%;IB(oCg6$o2cB_ zR7Eg7u9pTme|44=n|~dPP%k~gv#>K8Wcc8zw8tGal%Usld!DK;8x@VW0{YXN3wzW zG&JoO86Z#e&#(ppZkTaun(biMdas|^RHMJw9pT~I1d$0b0(#5k92v*(D%M@CrQBwC z+|?^TD}t$UwLgA#IBPH5Th)c3%ydNjmJj?hGHzJK!{Zx6rw?uX@@@4x@U zn{WT*os7P=8FP!1^&_I66K8O?Q93Wp1$9!O)X4#UTOQXgHwEiVm0uMevfj3{o0ia~ zuCZjb>Yg$cvjobxI?gEB5P%$H&RIrjbzgRqsczF|z^w6<3Y`>aGSyPawlpLB(HSH> zonuj7-#RQdh=wk}AaxBLn>Q5=UFwzA90iMTXz)|?(;;=@OK5=+amC%UOKO@DwTFk1 z)Gm9GOIE3j&uHB44VYW3LMmpBgN(fWdAr^_v)v}c>i7T$&{URer`wO0c-E+p_P4j! zv&WCp0~^LHzEbjue^!QV)Lthrm66pSS93gR9y_CQC+S1wQayfV16dgLNWZ0pwj1>} zgl4#$l%B2F>Mk?fF@__bttk5QHyN|qd%8hEc|JD^YYCorpBqK}qAwUii0tP_Exu^f z{y%Zl!52O2(HD(+{6(Ym#$;nMyX5EBMNj^@_cZT8YHObG`PWU{`o&Y#Qsq>C?rSG* zEw4>&6)t4*-7C7UDiT>kL8nCX)SG4B12MJII#lIT8cR+~LV7U;%4I}@u^S$H=oIx2 z$2Nqq&P*{xdCq5dbr@lUn1Q1S)`**N-pNsCVhC$am@v8sbYum6C)YWRxTk#j;`Rn> z3oF@-AJ)iyStEl0HPmN3z;hBB8Un*dNO#nkA3-ZLIZ00uS_fP=)g78et@+hvJ*&za zF1(T%(RGyN3!x?lp~(_wK{u;=}uQpFZ>)3hX^>*JQsl z?XO8)homU_CTJ)c(#(U5HB=ztZ0|J=&4;zQE|>Th@QTZU`+riJ6zLL zgQekDGwIlOAO0VdewhEHq+XE?28b3OuOo(_G36oK|5cT$$a6~;SsbIrqu+h{&FNoH zzW?yo<)`nX2wahA>n;ChmhMqdctm+X-UY{_QF}W87-BBE5iQUNS6A0t;Zt_`x%J*2w z6A!^0wb^i5IX2CRz(Trs+plGt{*rEF_8und{MX${8LX6W=4sp%$;u5L~x zKxF#AB@r6P(sB;*8t3)pb@d6MdWd~O#3c86#Sxm;0I!r6Ivr%kgrx5qEi4|^s)^KC zWjnn^0P7uxu=2b_D^n#8DxIEiTdpHig-bcZYx%oEQuDBBvf}p70RCg4? zpt(+_zqG)p6WKc^5Fd$K{Pr#6M2Xi;Ap&yk)&MAPs7w7nd|P=AZyG(Byr@6>$%`*~ zGKI}Q^W;T0XB-}v`^}TfLUrjU^r^eI9q2ZJtPWMAJPf#)4Nx`iGSBEzIafH`200R8 z>%6BzeTWGhw~f?~;`z!bsf0mXLReuEZ5vF|WPilk0wV;?07;r{ORh~MZ`^OlnRt1{ z8zl;>_4$qYS?jIO->hD8E-^uDE@uDn;rlnAaGjn#{Fje!|Knd8|7o$clpX0fSz=j1 zX~E7h=aci7=fTe9g?j~EI#~Cn{uD0MVjLc?kH6`XqSO{YOlyFT2T1o2XPbggi(R7c zP3#C(gaaNSqGpRH`v(i`DQFR2s9H2iSWaw=6x)Pb%@5E)qda~0>GH=v|AEB$>TBAO zP=Yc^wTC_+a}RR9q^-!y)>7RKOCC%tvivPh*H@R6=(FGDL>scu8I@j}x_@|P!e7*N zN}b#8fLyBc<0GQYC~QmSdl|9!76%VX9O9s-uiOJ3VL@6?$kZ8BE*wlC4Yi?en>|ZH zD{s@gAg35ER6nKi5~&*O`#eKI3F||y)zwBHCRYif+(l0|vvB2vYjNRcawcgftnEMN zQQ|TmJ`{+-x1mo)nI-oyb`#R={iG`gS}`tLkRrA)R&B2Eg8VOCx(t%8zY2Nb-Vo@) zu+?T~s%d&LQyJ51eL*Uw5Ktm)YW?H;>kof@`@`{vzrMGo z)}1was_jnDmUyg#$f_go$fBjG_A1SJhB2#@hh6PJG>!Ax`Z0bo~@RZ+Dlzz07NnFf# z$|Nr4h6P1BD)|Yv6+>~o^m!*0o@KlH@a`QW;_1ob%*hIf=d}-typA2c7np`)`|u&Y zr{{Kw_Z;#j29BaXpz>y%sl(*jwMcwULERN&B8W>kRi5XhcKGz;$L;=$AK(1&38T%) zkKcc9!sgEK#@&A*8Gp6LY$BkLa3e}5_Erz4I7q{IwQQSy$AEBJWLSasT}JD3EF2tM zBy*`x{KuI$Sf!u+%+IlHI0F3aXC8cp63K2Jr=5Lg(Qesl}YZ=`%SqO>efc*Cv1_Py*M50+a*ArTB}#L*HkzuS!%CW5KUus zM@$=HjV~@X7GP@?NKxm34MrbSBa7~tXT~g4yOOn)DkFeWqS};9Y(>m2mRES4fwIZI zAd``t2>1^ymJvkYl*9G<0`IsUTkdolgW)#P@UP!~c>nQJHK*d$bFv@qdysiw8BZB2 zT*;pf``-<&NBxU-y8WV`RBifY3{74oo7@e{ zh=EPo%QFtAd|69i=M#B3^;wPgi;OEBeS$>z4Iz9ioFdDNVxAPAe!CUbZogL_q5ST^ z6ZZBVHv2vgKcsA*HRk4!Q0wE>yj*`nh^W-)L*oOoL!P2nZ!30LGsQ_ncQtxZ+vC>+ zRIOjDU^s$%Vot?;aJFlW3vr!t)~oO@P${5{I<^9GAKTS5YaWG_h0CrC0Y-heKVU1_ z+`=f#pL~JuiyU3`Ner&W%^R zC!WHT|9&ywwX@Y8PsH3uTwIR*B(s+yaL=A=ugal11dusXr=8Ja!I{Qfq{h{E98?Zt_}(oS|V1vaZOD^@}BS@ABg2A`{nIDnjI$?{^u(43tfumm?wdK#=;#avRVYSKcGLA)`_m zROk(4a&y-e#1gMlMS*y|u>tU%UYT(cXjrSPOF6O*(GHc?(W<#K%-*qr&Zn0XNUyZf z7$1z?B;g$%4mhrHLt)mON&Dvd6>aFyQp~x*Xvp!nkX|MMZ8{62M|gQ<`y>w&%puy1 zYeGJhwKeaZ7air~Am6V1@li+N1g!`9x5xVrNccPZrAi&>_;jY7W@mQ#3`vsEDaepM znbmblKvui_-e$w#g6&=kL1>Bg^a$T9eZuB+1H|71CxqMLPLqMlXg6Judxzw&-7nyb z=ml&)vYW47AR05>yyzU-Cz@M_c6Ae;61##>|C5g72^pqaGAC)jc6cbrw^W4@t63Zo zlvvdA88Qo!ZqATm-44<&~)?)8(A@p&}L71T~LM2aCJeT%I3OCC0E7v~!1 ztvCNRn?BWT5@pu|xW1LEafP!s`R59oCjOjLI&i@w{ddx&Ny}mI<-3xG9uao0f)hqt0=aY8(CVNsMY5442+d#i``u zh=UQa4F5;`I=DUw6G$yq!RG)DsTMVu)h-MZ zw~XbZwUqxeL);)VsckZfdhxsuqINo5%_j4u?h{$oUwZeoC@3l-hulbqhxv{Xz~KrmHyJ}G<+fZ_9b2j;R7_Nia3C<(7Ksl zT10-{Rc(IU)tg_jGy?4eJ=TmyDVjnRI+nIigOO1{uGYcGDx&*kaAI`iS<|Kq?C^a2 zjI#y4Ir^@_IY(Do>TS~E)aP0}$E3#wX=Czmg0IYR#gZ;IqaBWAw zk&TVHoalt;venH9-|E9b{BVh!L6+b*i7TYd4g_P*99=%j)b~?e&i+DCZ-r~Tdw=xf zA2ou{sb zc5lBn<_27QPN|RPxBG-z1MCq`u^`urRmp(Qcb9o=R!tAWj%5 z%V!j#P!5MQw+6=~@xk{m29RFxni3IR;+N-BLCrLJ=JktlTO8}0Ec|O~MG`A3Nq9IES;7Z@?SR9(p9+gQ|HRcQwjZ=d~N|)6-kM+{rbzN0paCwIyER zln~srrPY(*zMA!6OHK-f2~;mP-s`j)I4@o(cwmNIi@3S3F4+x!eCP-TBhi0c<8meHY1rX2HSGU*8(?@L1)lx3(;Y`(D z{sP!VX!CzK3E%*gt~>_05-F3>+YIgU#(#pj?OOa zdusPQ$3Sn7@U^*|g$xi;t&f8S=Y_ZMehzQU>3(js*TYncQ*NTQeW`d7mEx@0$7DV3 z9Oj3Zc^Fiz8EDuvc=oyUSIf&Y#RvFRtbM#PFjRAutDU1`5T~@RcD-$CV1$iTzr~T; z2dQAvAEf3oB_B+JT4X)oD9j%NX|u^ze~y;~p6lkdeCX8FV6Rc9SILh`mf1|Nr1Ah| zr3omY?o;lQu#*^ba)_VZNa0Rc8Z1O+8ya`k*+}xcekM;RJ((*c6uXZ7ZT8T6dU&#@ zX1S8(h~U;C2#A96QSq>6U{BxZ%V&03X~$nv#j4!l8cO^FH}t=Z%Tht(a7Xz z1(z$7+T+DFLnqo4z5X6yVnUw~cVPuzss6G^mfRU9{YTv^dZsBvnz|)2a@-}C*PvXM z3czcmkxI4J)#bA*DL&yfR9`xT>ib5RZIO2m^SZdUGSIyD;8oUi`cw4M&c|?h>er0g z42AyelKCJ5;Y}1`{??X7?2Qf`jF>V^RA-N*&&?>0XonD!6YR6%cl?atr_g_7y_ZfM zWNK2o{5g5w2w5vIgHsF2$E=hX;24)YK6z_7^VpX>w z{q*MS3ee*1(EkfR+HY zx<+<7zPWl95>9OrZTMSWArh!}z%@jyEFYE3|FYe2lSYDzqnXa9$avnnH{!6wy>-WNhTLJ9qN zlR{CWR7r;(*A&Rg5xQiy+B5FHIn(bOc91`<*<9b%b>?IwXu2YdghY9OSR-k&6j4dF zykK5F4Z(|yugL!>v;)|TczaJ@sDui%W=W~#(K`D5ZN?6^Q~B8m^bK};r`#L=YiHFo*XI_G9?tR{xAGur@(LJK<_$rM z4&U4?>}LCQ@U$8I^|kS?^j4P;d9)=$!^5RvvCn<`I`SgM@sfPtZVU~W8%}P~|M1F` zQ-ySv*7+QUX2^bcX{H%>R0==_r}! zaB8_Pp-Volvkd{{B%HJkL?2wqOdN*D6w@_+fh$T?O<8HEJZwi^M}tVg>30qCni$o| zQtbP@C(fW8s78@kSIY%X0;6khcxl5-FP5-{%TbqKC9uAbH$sR}2~ctpT+u0(TW!voB)d<3qU!mDs5DL2LYo_OE~7mrIX8#n|>?7 zJ5ujJE>`2uJdG&qX#3C!mC|3jxA!d07oU_h=pu%>xv%S|( zQfF2ET>pB1e*Qe1HSn)PFgeLw2P#W$S{jguKe}V5}9eX@(D*(G?Yb)L{L#;Esh8N9u<8i2`xT)?(*A0d1@D^u%3>o z?!*A!h%ha@2wVu_C!DdSy1f<>0=Aoz8wtRljVg+9RuK+N7J?)vyo>KEr#HJiMRSHl zG^$iCG480-H#DA|#`n2bsSF?Y#w}>FWg1zpcTyip9bUUUSd--c`17E)v8>xMopHwO zs_{_j4IiNR0YfcZlwP$dYjj=9vo$U_hihwn1S5KxMQ3UcDg}BTerqj7DVOntLQ^WT64&F=yn^$(BW&K;z3hO}(g%@{q8gNO<2)i@z{h!8)t!#vzgm_f`(dSyKl#tAI}8w7Z5?bS3?n8LA;* zcyF(mn!zwlf6U$?1I75p+55W_!($obF(=BR(XfJ6$X!B@P&3}wxh45$a6^ z42E4$m_*FbOH$cfEy86&N~uK3#NTivGo@*gy7BOI;i`9#iNtt9Fl@aIXNT>XJsdQ& znvt2N5uXD-99JcriZj!#P4t%FQ(}WGhUFlJT-){-LiA!~&j~JF@N%r5!~D#@6vuhb zy2%F2?mfd@W8=+`N{`>YrW(X3f02rPJt$2hY~2-Ju+<$T$^#$7BfwdLqS7*NEFoHTU;kykNvTdXUsGWMVK{Na23xC>3|qsQKg1j9O^a z)7gEa*2;5YI*D5~q1mGDiL&`-JMiq`pc&Z9?ixT+@t)fAb7g?{FLvn+hY1yNo03 z+t@g~wWO~)J2w6CHGwg}julzxcS2{DLVO&4W%lHX-xhWEPfp+jE$TWH)VY9elt#Q? zlcb}#a{ocvxjMDw=NU@^t+ds>7N(NbLh6q{t` zr#k=5OMrEl8BX@D22L|*V{Bv7?e(sl>mvb4WpHPAv>UL@Um%qimF)pxk3hOa2{lP6 zG*9lU6#l|%GJz_66=F6`w`Zd*G-bbKUwr`DWW}||V-trfX-Rd2NOrvIiotif-6HWK z@IH}V;10*!91)+cU@p;Y@(}i?q*C+9P&l{>pq~MrIWKZm7~drJBt2(_F~d>_N4;cK z&ohY2iYY8DFd6nuOZ-@hsXXn3sDyp_+bJ!H%$LRe{y?co@(5xhmVuxcLGu#rs6e0^ z?+SaJxH_F4wO`dRe$a6@qb`3_!NzwLhQ@rVlNU)aej3XDL_(+G+FNmQeY-um7EBxx zFBB}DN;(D0Jrb1$-5$De5zI&+Kd9Uq>^$yzz$-GHUuMi2u8rml`M-Ms77Uh32f>$~ zr)&~@cr9l^SquEACtE#UY?{yZ@!K=fhYl{QCrH*W$pJO9--7fFdoc^v95u*ZDBdu8)!b{c~{0(>9mq3aZ<5_y_l+R#SM(^3_ z_6rhKqBy6VPw^ZVZL%Ka@c8A)3dJM}8&QfoRVoGjpX?#*?tzbaHg<7II|yaDfKW!( z3MIY;-r)izVU8eR=xHhir@Qe~g3;6HVg{BjiJh3cYz~>4{2#9smS!pVGbhhegzVMJ z1_+!Ne+@YZnDFI(91E6&(pKUmi!WDP`fh=k${pJeAV1eQWg`9VgJP{Dx$EgxcBHUOjU6g{k z2Gpc{eP=)Zkcybq_duqZ;0x+4(eHags1uHw?e_8?@Gdn}aJ@(! zi4bu#3|rb5(=%E`G)^><(;%x&mOnb?0u|T619x5&-z^sU00We)#c*SIx9nMOIb!T&N7KmD}BOlRb zt7Z3gx*HTIXl`nRG_nn+H3S=Tz6pAj$>l!U!wAVMq`O`0+VDghNGdm9WQMr~7p4&7 zMnjbVEo;H8(R`hWw8})bg&v|_Rd-Ra&o3Y(B~fzdAQZAx_innS9FU0_u5wMJQ?{oNAl= z>CkSo0rICHD(dpt%_&4YepE6(Ttdj}@N9i@RO$J>YwD{~24a9B|_FIV?2^ zCMjFFT^SA0_H&^AM>FF1-N!e7`2Ou^NHr-$&FpFk0Eb3+leh><_U-0_5 zC4v0S(FSbiPf?*X$-8F*5t`^7=WRboQ-g~`d*P#wQASDRh4)P)9mRa1M;NF^;4m@3 zK;g$W-XeH-W>$}(QEdi6vCJE%N*6%ZE6>2}=PO|g2(SNg_{|fWNzBbL{Df9Japccn z^`yP7UN1^fViqn8Bf>W&+0@t#u6Ed~zZFdLZ=%Pzvx zYc{&}T9|uA{{s?{hKl^4@uPLsylaf7r`@tIS)lhZLfq;0O#?g%tucMv_hA)7K5bhp zPH+|%@IXbz<7X50g~Bo5tz)SvOE}r;Zyq3f2oCHisb(D-=a$v4R=nPCQR0oc8=%bb zVb<37Ek(y7rA3T^@QeX^u?x>MRSp*i|BKD@g8)@K>{aEkdEWqGakF}ND5f_ra{NN( zcTp#pilbZTaAJIAkUqTJ;8_wmUJ=ohCvp(uvRqB0Mo|Pvfm4AtmB%}ox$n#U-k?vY zBG(f#+lECzA;#7}Ml^hSGKK;$%dSY?Eg#AfP&PSVmr_jM=hw*=7YSROlw#10p%Zav z|0qR3gX@5`Q73m4`!gSvAfh6UssZV{hjW0&&AOv- z9~H5VOD_&i$Y3&AoPdldu_Oz;E(O==ELb3cQqcvtfMs&@6=a#{E1@g;;&69%$_g{7 zj{tu+cFF`8pAKX_*$nJJ5a*?B@zjIUmS>iauE9KG9Y$TAiSeid9k}7u+5XcAYHwTo z*wCBfcCvbv+C_;;dE}calXIuqwIXncMv!tEROUaYB5t;7Un3hfLS}=ZNwd*)g*H*~ z$B0;D<-plI**Q}VVSp-v3cE8VkifV#S7>E)AG{LWG)eard_&zL<>!M)?qo`>^e<2K zh^#vcmAQ<5Wqd{ldJX8+(T?!c+N6Ls>gk41f# z&t-}qT^pv5$|JMh>UwiVV1PX3f12AheqA_&AbB3Bs5es zDjJUGjsh$EtKt%=-B&J^Jae-)cbj=wvh=}RerU?)vmtFO&Zs&E+7Z1>hc#L7tgzSW z$ZCj8acQf&)KeHO;FjD9z$?aqoV|potZ3uVrL_yg@JI>Y( z-n_!?qR^1QqQmaH(hMa7Z`ay(TxI@3jVadi_UM3YluW_?( zaas&CXr>B%1@z+BU7me*efr8)pdrbX^k0V;n}Pnt+;cMb-Qe#LF$t08eAfK-CY0~r zXNylTlV*MF5n&s8{lHyg@%&MjVf=)pDzb$#k8Pf(l1Td@T&|r$Y$bz_-19fL*NUTG z9Tz59MVAbdfT_Ks<&T2-KZs$n7?|~Wgd2m_4SBx_TYYssbok~rRTc=2oIC*q( zdUAO|WU;rA1SuBR*?MI8m+LT(l`Ah7u`2kFAALh632c^{F1GVsoybuL7NH;kkgO;< zTEvPA-LQfrxx@fhgrUIQ-zt_$tHQeX_qeO>Wbs#F!G zBzYa<&_EWK*2&}jM4TV8xihsDOLNmfU=wIyxl8J;A4dVKBj!<%?= zst>jCk>>HmtUK%m4HR=T+H@~?T{#S^V9X4Z~yf6)AGan zKfe37*>2NKRED)lrn>1Bh)_}Df8Gxr)QAr& z8S7K*(t)y1m>j(G6&c#mbq#Nbts3^wsg9f7Et{)$G-ScmVP__Sp}R5=)pvj>T2ZcT z&mCUk(ewW@_pZ%tT-Ua!ehO}GRf^h)QUt)4Zgz4C#Dhdc5-S3mV6{C zacXCu-+sp!bI$eXZjjQ6@3}h_i|931ukK!t`F_xh+*WfoAk{kQkpocG9@K|^s>$&% zG7&r1d|aQ>N`#M1vP8Q}z6NRQB#aqDX*FY!qWZCt48#aO>=vci0XAf*yS*2~W0RL<YXB}1hIxS|+S-51eEqiJ1 z(oTc}M&}L<#|*x4XT{rKL5ol7FH3SW@^v(EgkOz3*o}zU3Sc z`pP_8^#rwUh#p0CoBO&0W+k+Z!~Mf zs!wmWBt}{z+k|G|SnMvEz%`aj08NE$4``c^BzVE#a}L*gu~w!RK%M2w2H#P*0Ab zX>*e+sdjOPl|3m~vee-U7Y-pFf_%#Y3UHelf_|!{EIFwkN{2Fs9=?OWNBx^ zUrm{LM~x7Zx;QiPo4lIHhj#$5Ba!75--|toslE+21(l`=7xB%9yKnDLKYe7>u*tK> z!QH!edC@}?Eu{s@e;|OujEQ}Dim@U{Zqi3qOJcGkIG|jX0_FcOojw&Zb`JLwE7YHs z%rCYaLLvMBKgIk;P=DIE&irbSiuvWt@kjweoD%vvGHB5Mpl0aaFAQr+zabr*Vi#+7 zMc6Kif??0g>xEDRo3V!%X5=>9);Sf_Ra_p=@|De={nV@>HP|^YF#UkHJ+i-Gc zu-fbJP(_7TmRrH64<8>c?%)0J@Z%f|qP6yfNKtdh$l*km2Jd}Ow zX+{F1^^TU+>#M1pk$ERC^tQs2*%hee8?>)pc$FQ|K6D83qc1n63Q@HjB0pO-g4scI zzU-JrAGr4WJGjmk%-lGUMjFbDOIN+xg|85W6P4fK@;bNdQQUqiojgj>)F{T`{cRs` zc8ROc;38{_t7#}`-4ao=)W~1CE0G9bYSasbI*azwWEk@WtzlZxJoxhLjFG9$hP<*0 ziHRX_JZ4#UrYrR{a?M~ltEmM-fLhYj-kF+{TQy>6iE%3_zXjAQ>fFfW2^;P0eBdmE zDmBFGP?zUHz|;UjwiAV&!J7~rtdSc(<|U|93DV1QWoYN7Q!h#e#JP5CrHNW2&U8px zXX;;75l{0*pax33)coo)N#*3jC6$9L!tRWCao`TAB}gb!izXiXN1;_8YWL|O?b1@u;)JVHhDPN%FHP&ea+ zTWvt{^2`sP3DP3?OrZX)J0Rx^^ zZA{Heu5YU?PZz&ygY*{{o8+ny>ZB5sc4Y)6?I+bgaitL_&_L-E7FSaeT`@I~(|bj` zsIhT7p#}k0h@*{ifAmI~UtKSdtI9S4xi&T$gDXD%>|z*Fx!{W-^=lVIs3kp+&EkLX~;=-AdR3YQ6NJM<{&qB{UjUU)U+H zvI^#reh`k5YUt5!rq2Y@1XZLU*U}d>LFJZhh9>t9+p)>9t>AyhP-WU+c&Pjm8!RX= zSpYZSlUA@fDi#+JSDcRVY6a9L#|KL8icQ>ymzMB9;a&vb`aJB4&6u!|W#gg1@l` zF}P-mENF>cwaeJQe63T298Om(MT44z8<^06$>CW8J%(M&aGNi%lgqn+u~(?az%1{6 zdw2&%gV^oIZ|QFjp(>%mBh?n$89#V=b#2^$xSE|RW5lzTe7$W>I1fTYGVV7$AGA6d zsMXZ`g@olLWYVSPk9TqVSeA@)1g0%+n*kKvee{6D;CW_{l=cDDr?k_GDBaYzk!ZHs zk-IwSY5GLi?)m)#tsse?uJkb-Wrb#!7iHYS%@X{3?Y?Xhf}$E6s%P{&&OuliAThkmG#_KFpY$r4`mgt_ux`qM^)?{uYMR!%DRM)yA3JZcyzRTml%1)p+@;NtD}gpHcZ>GII@5y)A%$W{?D2 zDDkH$uT259Z4o6Lnuple4ZCGN!wJ_@fG~lWERnD4;b}qjtlTCbEN+mS7`@HF*QNPa zmTzkQyYs`KXsFo*z>R3*<#-QlbqKp&T!gzegUVR|DFmq+#vZD4uwPaeh{KpJ3wYXe z9I$JOl?P{}41_kh-JxF1E_z8)QB34%p;PJ)9#tv<9FZ)+Wq=Q*2Fn~8p|k5u`+f8o z4vmlH{pOYu(@w{4RPkm845YDMy$&{ee=xLo8nTJe%7?u^a9Dps0MjKvDIDISWelkpoJGxh@#poF@xLlVKKG#(uPT?$Ha0MWmYo_$tUn^3msOlgF-!&su%ZA^UwE(|Q(v1w5Jt;C=eFng_trud@5O6+V~ik{sT{J^Ac++^VOleseY z1M`EPW+6=4UlNbDx`xEV)x$*x>6E1;+QJA#Nq;vL3Ssi(&BclXili6v3(MhGShGPB>p zj5+(620W9a}Klc;F)e@^&kp znr!;2F7Fc9zvjOGE63FoEYaffl4fkkRF~Hmo4K(?jm9EHNMyD>s+?^ZE+ss7gI#|E zj?dV|LW2iOt#Z{_zFwR8qLLDql8&#f^w2x?^pJOa6A|Tl^}0$?A4^J>)j6#vsU)_I zOp`u%T!M2{;-JC|5TnB$Y{GLjHeTCInZQ^q|D|oyoiCaLBpYbWc>ooH^MIqBIUVKr zgZ>}-F9-WC2PZEN5BHBx`h&y!7soTYlFV0=5&ROe{t1?r+*)d%c;ZDD;8b#SX=*sg zpU!wRpgNgs)0T!YLw;1EF;P2pD$L4bMcsGS5z5dBpI7GGg+K0iZNGj;`Z|Nn9qzb@ zuwcD~+xZ0cuPv$|NUp<{yuC&o47QV_p29h=0H$~2cDuZUG{14P=+BUw$|A*I53P84)1>BU$9 zjeyy^P>%g+>O{vad;ZtFzdqrRC!ZF$ZibYYk&rAPaCcNtXQ$;(<8yp3XX7HSbWL)b_ zpl5PLKV;L}iD&nut5M3v=6(<^Q54Nie7Ld1PoLj%Bdid>HAeh`lcLfY8Ckghv*#6w zGB;87C_e}J2T)Bi`J7|SDKdpMd%t=3!};H5Z{PoY{P4E-+duXG*Iw(E|LXny$2V{9 zB`|a;&If0}^@TDC{x#W&q|8n6GD-A)68nhlS5Ou0rJxe82J==nAsQvh<`fFy7pv8nZMi&es&p8d=Ajs_6T>@BT5q zd;9hqL^G6=W~qFl$K>weF7+zA{k})-8uAi8^x!)4-TR-0gKyqEWCb<+a3*0i<#s7N zsvvTW=k#YQ{ku}5&QvXzo`^}$GOV-;hB;Pp?^(g&s6*V&Kz;i7{fGO>{WqU}0KTLz z=?(Dc`75ANyVp1H?p_+iu^Ux2h_McJ4Xj*@=;domiL)9E0|c$*`c>FtY2ZW$piiD^ zbEYT?BJzGL{Tbup_04n`!f(azQCqNnd-pfQlHUK%PxtR0-rT+2Zs@o4)0+n>pR{sS zuL^AJYN(eEzsNKihOEk5+WaV}kAY;x??H}$kYa33x8|tPLvstRf4-XDYF<0l0A1jc z-q6NQt$I%OiU@vAs@@v_^416CdwW~h?aF?U1Bd47G%%gjg527-g69OabfMS0g(avp z+iN`9tFbCJZ(_V7XeUuaS3U$Ip5dCbP`A-4k91P?F=zmFgXY8b74tP~pUE@I^Ean= zDZHdRoTTX^ow)`mXW+V5g;(`5lzh3XZ>larT5~>pel>?811KzA2@eok87{QQRc51g zrdQ|0v(swRxf=#TO}GW!55q;PG^+b4Qhty5bit-yMSQe?nmT?*hrS6^sIy(4ppo)a z!nYhlxs8R(LqAzMD?7a>gT}8mGbVHUSe+~KNk=`2##htZi#g(2=BN$^=ItO(fG|&- zZ|K3gatt6l^1oE`Mov{GFz(Wg)`7Fev6y@d!zD9Q+%}Ol*B$Kv)Ktd;#BO)1I2g0w zhq%fhp2^eEp0vXhKs|PYU*)~jpZs581mLvuaFEbg(3XA~MoTUeVjrmM^97>=UAl|+ z9_vKuR$Xcr*m7=n$BjRh*WC@*7C_A8C16LC!^A@kd;j*lr)!n@aYZI|05pp?t*ycS z1T<}I`uVANRQ%AkjthDK8kqP2pTqqJj$^)7iMN8O2Uft;o`ed@m!-f49nb=kNd9p3 zm5=`UYs#AoofwHB=RtO<@N8u8=ER<`(??H%^qd(&L2-S?r&4px%KM?R-Q`II^w?LXC85H~Z@rq+ zLe4D4a0aDN%Iydy8knH)#J4NWdOfN<@x1cyzEN5!0pJ9Lv4Am9DV0hG-)xz6r~!^A zx@_M}SYPQXtka7>!#KXWT>d`H^LDA)X{5@sT}V7#j#l%{*N}1Shl$eFB@}K&&)PjL z-_+eLYefy-zrr67q9I~bPtPvL*S?Y5^j>!{#R0Qt(T`$` zTqpgO8CAN4W*4onom7{j4veZvpah~QLTN55{)kwl0%|DXmRAQS6+?_#>R%a(x#$Av z2oU=WAn71Wju33Rw5`NLUz87Ey6sa|9;0p1cT6U0BdF}JB9j^vPh+IM_QYv+r7`0% z+`xExdaPfo5BUKn~eYa(#tsKgWgKx`NsMN$!6tlOa$M9oeOzNN~VXQLc zRKJ~as{icj2BAx+yh5&e;~wcyL*PRP+wqTg@7~?NrIrWRak(uRiK?4S7d)Ri&H=w( z(-HB!hdw_t7|^igzThP6cXM-pmx(*SB=Plr7d2mqdS#g1B*| z`b1*Um#7@r_5uokb`%Wah^K(tU9lUAoze!%J(C;As;z-$%LWyiO{Hn+7gTb5*(3{@ zWD=$?YrZ@3)8%Y~J|W$Gbi1Jv;C^JNTAxwBo5H^^F*;bmRe|+-l&d=WT&_x^LcIlR zAGQPi@iTi=kjrt^#W&g6)%BRRHsFfa)3H^V9m6G)=KrhF<+S&k>&@)NaBwmG4R$)t z4C0d38_alNpX0fUOez@GRBkp$I7&WQ#VPU@W5{_k{<947U#hgmd1L?>g=AD+IO#R6 zwXOUCaPF{@e6TxO6B!yb@lPn6tE~fl4f2iQ3z&6`uTN2ezh%7S!C#M3TG+#uZ>=IW zh%u#ffv9>Iua^X!b{D;|BV-=0+tH1Cy+_d~94Zco2oCcFcIQSCC9xwpXb$92c+)p+ z8>%e;X#!>MrLXJsN{B`o-Ov-K8&d$f1!fwA*+?PoFjuw*qzy}6)ndOnRXBT2*fI)6O3EqR*d#WlPz7gsX``2b46 zrv!y(0#4Ix-($haYqv!1UaLiGXBY)_=wY%&S}JGC)3y3&rmCFfr%hkP&Mx{?vJoj> z0_#yYxtNoUwdp~cDGKbwG{{0z;PeK_wgTn?Gg;TTvISOlDc-X|=}e@DTI2gHTRr1b zT<>cQMGweGOkJP00A(?7kZ04TD$duafa`@!yQRRAcc+WRCTabA>$KszO-vh?N0EX? zmJZ6WUmVItV(5xF#uURv14>vr4Q1yKUhzD$**8Q~tA^%C+aX_T{?*n@6BHGY>U@Dj z9}-`fSE@;XYnZ-q{g02EH%M&;ZUgErkbYRn3al@uEE*7*UI9riueO_WB_ds}m#DXP z?ZPwU=jnu&MrOu5p8<_}Dh>@52ebi8dqp19m#34K8pX5;+;sx#28uk>UxUsz+OLb zR($Cqt2j|sD!u7^I@>s@(eAQKa1*1`s&1S(47KT9>@c7&&WmFC^hL^J5eyt(0kMbm zrEcbvRW%bQ6w;<{9dyu?)iF3nZR<>D&=kaP%rul(O)6%Ahs9(@>g`zMx{LNk?R^f% z^R&C^7cTDAG}>4rmXX&yjo}uHoJg=4+R`O1)-ycA{ikv=)mJB&o=X{qY&TOv!T|-0 zfASP+fYiOPew~x$0EN05Q4s|E$9I5NxcjwXyw#}5Y}PQ1sF}?A@1sg6XaRK#>_FhP z9&^C$gj-c;2;!s5?N?R|*)O#Iq$&^$=ns(`C1{?-1_vJ9p?+wBghg&h`Zh@Zj~Gx+ z3ewPI(|s%!`324}CUFDpe!Wlyz`vM+zr<%o{Xr2@YS)3e$*Y#Gb)LaBtF-0C2f1Rk zHs3m>Hd$XF-T*@_HtWAuq_GXnYZZauV5RGFD8ee*sfw_vRXW;Oq(e++pE)A!X(y(j ztrD|~Hq8(Xq{Lm*l^~(??QxQOfOHLY;xkHJ8I9(>A6{EjKB-bY+a+txib^ z(PulqVGgu7!-aMqUxJrfpHtNZ+PHD!lV9mU^k+1Fd5>Pe_zW<=)r0Q^=zgS{S zekA~Q5N3=6i$z*pi%Gz3v>Q9?Ocg2|g~=PWTJ&D@#6S|XDIzzN@D&ozRJ!`omw|yX zfi>s`qwL?kJ#OACI4WfYC0^2^vJU>!w?upwTDK|%tTx=O?<;z-# zp2VmLZG5N^727dJM8D))&CZ@VJeuWw#795&srw%JTAnY`j_CsY8n$QSTAMQ~cvY(! z)MWurSye^F*CDRb6UvKEbyb;tM4>lZt5my=GfDv=Uyy!+W{xJfnooh+dFBuoYGI_I zEA(ag?}Vu99y^&o%iy`cfyVK zgGYifMT3%G!f%bq!#ai`?sgf`@A@qmrB*Sl$Z}l#7R+!2=+^uya}6&oOt*sh?jzF& z5fV7>TIua{%6o{h!wh+>*W?rdY0^|z^puN$9cHM9gnxU25~UzskfO8|a1t)j!Sr_1 zB`^RDP2iE~Q53$q`{L>v`~lclmqIc_fu@AP$ozS@j7O@P53xu;tuuWfjBwS!PpPH# z^$kE~X+hy|EJZM15&sSFPe%zvLPfb%VK9z?F3S9U;wR}NLS7~mcrJf6+0LSy=7`_E z)&SS*Gx@qQ3EXyv5G=NS~S6_jZIDNJHst6!P zG+WZLYJg$h;nXL(d<~7-x{!$>uw9TwE#gSZ>DbdcyQfSR_qj- z*idYFkg0tfk<;e&6ctw+*XbJ=b6B&ojad?}*6yUqBHtjUNY>6eR6zV`QEEvG3`_(> z#Pn{Bv&z-aKn?B>HU$(}IFboKa6%|jlZZ=cx<{?b<4m9o(q?vpA0#xBbm2Bf3fLP7 zkWoD{WRwjs8|J&!iD|NqhxNnzpE==jRP5*xa7hJ8Xk|WJJh1R*EkJr8@v&!(L%uIK zwk&RYA|`ZCeZIGsY3AVH|6QH0k)U*OA%idQ3UDSYw9*+wQ8V~G8-+C1_Aic#h#uW`AV`2%KoqH9#a=S`}Hks05@A)4)ng?js zJYt}-`>?zF0lOzhXKDT6Y&l!(WA9x;y8}HAlo|CYpdFyyM>Fo)P({#fC)bo+VXj+) z5HMZA2%!jx)C&sdc3?*H0v}z#k$HJBeT}|AnvYlb5uS($jOZ^ty&w^I(S}64MGa93 zVvE(N02cAthY7y$QwF6fx%D7bIW=T-(3C`yg7XnH?ohqMq48^x8_@$wkCo;lx27#@ zY@M4Gh*N9_YSwI3Q$Ze}?u(Q-`tt2l{gOjxYfr zX+;V2uY0Hq!EWU^a39nQ0cDXwJb(WD|M}d$!7+`*>WO?w%)P4` zd8)3wJw+w!TbUEq=ZlNFL=F$G)a{@`(0}5&cmlSHmfq^#BJY@*y_Ae2OAu;C9tYmR zxdQF{MQ%p;0SlmYa1VNDfW!xp@9rP+r-T)1m>TWcct%apR|cx-1dh=x{l(-@r=trZ z*~xY~y*Yl_OFbzkZ^1B`k!$xY&+;8gwj>5#avh|c#noiar@#zg-PA=)7{66pO$EK=jMoJodYyTk{1NS?+B2jBB=c(slIjr0Qso(8=aF zC!pw*3TDuHtzJ*y;9Dvg=o^HSYeoxI*_h&A56wu|)dcS>AdJa3SeiGhse}C7$Wu(i zr%LMZQUjVpRVsGfSh6NmgK8Z;c}kJam>jr@YOfhO+!&|7>A9XWwOS3KP+eQ~G`Sf9aIULc%i zjDH2vByja;BEe_609h<(6GZK1kv?{yq=Qw1rVhQfQ@qi5d~ha}Qe33vEXr82jf)zJ zpvnLthMIe>^vhqLj|QzbX$;eRQN!i>{BVf&-Igx(a@-RnBho^fPCBjxPoWwRk{~5E zbp?a58H{)uz-(YvU1JI3rFei--~d9X$YBf?-t%b3Q6A0z`P#^cG_4PnxNpF)w0#3yD>c6wk6&I+vE!LhU5-PRHxurxC~RxXK# zlc~~Qlb^s%EDggy5z`#M|6O(QSnklUhR|Xp3a4D2vV@;O_sqz>vy}Cx>gzI9>JHUN zoIH3U!_5}O!l!4~P!muS&P=tiZYA$i=$Oz89vg7{x45Cn{0#8|7tFYK!I$Sg0JF5X zFqcE((+KB)EJneq-GczOf=9+0Pmw#M3@_=u=wXXP=CV~6PUtRnhRJF|!*Gu|S>L9* zqJCuDaPKg!o8}5+jau%a@Sk03BTI!9Q5$ZAO_#YxQmqcmPMfdQ2fL1vMh82H&3HDw zYHHt~?yuM9@hNOYSGC%z1=T%fG=Tz%C*id-@hlXgFU?8S%fiw?{kL<)ZWz)mq(A1` z61vE3XnHonvMRjYmFBaaQ-SHoEa32`l}SUqw1T*3s7iT|Db1M4!&fI8bj+Spu3W-? zMJXJkMQv2QtBXZ2!5=`*x0oqI8kB@w6^Ed6X$4&=SVJ_m+>i=_U%*8Hh)biu(WS~4 zk-}_U zt>jE$h6dCLW0DjCiANyaWz{SW9%*->Zt!DkEcBY1#jZwAXG;Sc?TBCfCEYIYl_@>Fyt9b35aHL_;Gtw8?N^vmWr@r*aL{xLLd!qY z_7y7|!2f(a3l&9N7YCp84YEy2FIS=b?s!^zcyfwyJp>2gTS;*&X*t}X+y^szM0tbW zf+R?@0{&%N_+u*7&Jd`Ddy+1k;DVACTKQkzeBaPaU!c4((?`Y~6e0h!_u>BG(}#Cz zWC~LnH}2nlya%Kl@x`C*?&4yZp|KMV&{lUF6Umx%e zJbd%`Vg0K4yPrQjXp_qm(y0R34J&r< za(I{zOI|s9Aw6}M86E%V*w%RP#`yKXwW+E&O2e7UB!0ATtr>0Rxnz`=Bp0j6z zdBsf4w#S^+6JJA470RDFNOKij6xBL@2#IW*eUMnd0sy4pE&xzKw0+ z02bo!zC>4xN&o-Umihddlm^5ib?kO-)&vXXx@Nc;Nm9eqT{cS?$sxJIRC$DT(8fBD zHo?SWKeVJLwELByoy+#ctLBTA4bIcerSWjUNQ%6tQNDB~eujCAu}COE%2vf8PB%-`fEVin#kREDOn*RDr?}QM z+3Bi6#t)v3DnEF}(0f@Z;VL1eO0R4&=LyH#JO@Nz*$ZP2o){7m^cUp228ZIm8yf2W zZfF<*x}jkT=!QmW%5EsibSlmAGwommyA*d(D zIC!$hp?U-w=c&XtO$lI1&G(mZo*ctCPtVZ9fl=|+i{Z$_SNhOKoA!J`k&{vZ0|I?P z7H_E(9#bEXsHY+7^j~(c_*!Ojgx0sz!*+kHoXr!LZLa5bd%YC(t)O;8Ee*Kj_?f8w5P7vL@CT@>8Rx4N}jJ$C*j4>e=8(0(uVju%P{r zSU1oJaf2}oE*~*&tW-hfNpUu0=@j_j;;crg3;^)b3(BBNn;NC)WUJ9m&`zjmUXNzG$ku(5{X;dX)NCujzC%ndW-C+(H@$!b4jJ zi!souG4e#>{Rahum&LgGBIopc`03{l_donG`8fi~nUiBjA~g>9XeNJnBHd?1wP7_W!4#M((IYXBQjoD;hMqe$a~12i7cTdn-Q z7Emvj$__0TNEZW#MLnY`{BuV4Vm0qcSrA$GfoCM3!OYy4} z0FBS0DwHpKc^L*exul;XaU#q44yoOQJ+3R^VcFv|tmHI+?=Xo|GlW9YYe>7Z%|ZTn z+IP;B{@FbhnqB!op0sX@@+}$vHxV5*(l#E&r zmI*{L9+WRryFzj?46W|cv@%oovISU{hgQzc)vH@|g zZz)K@&R1M%<>Ns>>(Kr1ZSX5R{S=UzTGhV@TY%4w1vz7Us55Y>9$b5**JkZZ*C`^d za%N&Qh+M;Kk>3KohITdoBa;+aslvg(?x7FE6L%=>vwNPGm`+M{RoQiChB>}h(k$MU zzul;{d3}n{!T)_dyaI;1Xaz9dz`~BsEAY2qe9;aKl^7O`!M z-M&qWmY!6>>8kZ6H5jq~7qlHq12Xzt%sjHV3>VBw|hs(Q$SL(OlI{ zz?XQ9s_;m$^i7cF2xst=_0JY7Qw;GMNkn-4jEIG{o9sS>_cL*MJV%Ne*>!O0Q(lXm z{ufP3xBKLqzlKMA@uOvWCrR}w+(T_2<5aLJL!i5kXhN6V&F%=KWcg(w;_-0vf6V2Q z$kZWtVibkhk?}2gwVb1XB3HUV@ik1Vr4@{%@qIhK=~5fTU(UD>E7T{yJV;><8hiNM z=eXoO!fcpt5cCOl#wXe^=@NT|oPpMud&cz+-WMEwBY>Kutb+sRrlQiJ%7Dy4wK~Kz zHsZf7B5=U}4G|&T_K1j3=s{9e|HTR(t#k$Bxs_onR!6CXW(cE&16$z$3!9;38LB}R zW4cA4O$DtK0pTY5Xbs!zAm0mI6itq~pXk zR-g4<#It87n2MOTR@|91DVzAA*t8aGX>Uy3etm*>bkei2bF6fiV)!HEJ3{`b<;@0H zY!K084;gPdc+@bB&L?}wSjMjubECHU@%bTCRVmFRU%mlaQ86F9~vLw7orWp*QpSL z`{#@G_~y|5!D1(fmQy0wtz04X zuL)sAgT}TXNjD19KC)cgPFJOGN^cL-=%q#@Zl&S+GKYWN-Meq^{aY-l3O3Wl4WCgk zGyKvLDlC1uQV%6pOctX&Y|A|3u2GQAYP^{U2>={W6h zobkB(AkpMBU;LT8CCYm8KCzyP=cnsUa*8FR*(@_;F(CXzv7wKZ8rm82VL^sa_+jpS z>J{j@o`EMIIssPzy$$o>2BS%7#d!}q*KIaaStd;5UL>4g_E~W-5FARrC0P6Xi0%${ z6qB?Kw{|;=Ox@R{og{#6lCG_MP>#^Z00eHXi{n0G12hhOdUV*c34VoVv{C@F?HTuM zp%=o+J*_;7PTHNW3vDE!&qp(51r(!-q}WsAzlMDz@J47^ zsD%lU7-_c*m$f&a?{{C`qp!3j-u&&&$2afa^$HL+lxQ9t8&nQVvpb$+ zBZ3IRyz87NHSfTbcx9{|t4km}WH0@ak3n$->cO7=N}B}}{V!Hu_ndgNdm4O;o_5b? zbhKNrr<0jrb+M2tTXrE_Xay1!-W#r&l(&=4x~nFKO>VOR)N~rA#PT5msA2Yw7Clf1 z2r&V4vh=iToIGK}2um~dUZLBAzEaU^+=DtH@QbtT(MSh9x&K}np;>0fI4)a1Jt<;t zR!U+*`iVfBB(ZmN^b;S>gv5!CV8TRzly%U7d(wj785;=*nC9*72GjqXnWWdPGr`_@5&!qpz+5y6xAG~E(^AX(x+vi?UhdWHzr1TZcze!3iEvHQo zNMOj*zjl%r6VuCi1#;e%&r!e4!o2Lks|nD`+_O_v{lIE;FE1A@PuHS7;zdb zqF-t!^5}cAYRiij7lO*3iHV158}5=&kY@FJm?4m9f!d>@hqkAu%FDvNoDhr?fVaYC zIzvP&db&*vE2qT)KNv!&ZA+f0CP>tw>2YPAn8qG=##mn8MNRS za%2(r6)OO4-`?MSe1QGFr~^n0hTXCm3zyN;e*-6%CiMXuC+ef`9q^=wbpXCz7juw2 zK?vY_a6p_a2`(anyz)^SXjf{m+&!~uBHy(Cq3cVAv(5>a5D(JnAiPNCpn5*rL3 zFNv1{)4?Z1OE@S#*5?2NA#+Zj_d-?$QbpCUDrGB*s9fy98hrm@{PXYUsM?~xAJ;$L zeYn5-=I#CSUgMTM>W2Q=i+i3w|9x+syMxB<`6!s99$W?*Ezs~`+kz<*H#|qI{_CE8 zvQ3v{!}y&jurqp9D%K=xVMoTemAm4bh@myV8X78vGxx#(Sr{HVr8aXq$$5NBWD<(`j^|G z$5BHsv6`TxlPgLyF0iAX3M{y559@=^tuA#$oZCNHb=8S83w~D@eN}LW)b`{A>AKR` znToYCb6Gk_k?cb_qwF zip8r}7#2TAQWv{vl8$1o+k)wOUuWOU*rw;DkLq8h3y|!_Jdz9+z-lHLW&-POJ@GNG z4%7`glg)|?sAgWYhhJZRfG-BNeO&DB?og)g48zLhB{!^I(Ftsa^~E~rRn4Y-(Csk7 z)tCF8JP zHc7qalWp56L-oMek9O=Gb&;JBgNK!~`Y4!yRAr!s*lTC|{q2OOwf@q=yl-G%WX!-| zuyZd}prq;6i<&#Bxyc11eziuGkovh5NY6};m#MB^s&thKM~qO)1aEdC1_3N`>5h9? z2;Uy^&dK6Z7HX*aEgC?3k4S7PbN9aaZ`tpp*`y1Xg`LqvvAmf~g_Yxi-&(P>%@|g3 za?an%+cnoBp+zHG3v{L7z&evnj4E<3@$uFaEv40_+1d38+GZr3z$^Us*zj0xId-zB z@b**W4sg1VuJtNlwdzbearCpi*WDp6#&x*6bBWCRMQ3Y@2dg`ZH>;+mY0tL~Z9 z6AZ;#?2r9Sr6U8z2Jkc#FBIy;{?JESB1*DN`My@S0oWbsUGatRVL>6hlV0OmGr)a= z|L9eL6#=tqR1udvVO|7`LcDb>8lmFQn=#j?m>6TTil-2Qnu<55g@r_+*RU82QPzNp zbRb;0`N72%@z=e*7t*7oCfJp?Oj;6@wBvc2evdq&{vo*y`bhbDrm6E6+1p)K6R$4C9p2u#o+uAXIWd7kc(gWCzBS#g*=k zeKSD%AS|d;9x4ckb5$gLeZFi)%GEG^R8HWv!+VTeD77vnm|ADq#W-H}e~a z*w4tYU2JH@Q*x2{yEhNB5AS~(eRucs!~J*T_doq~_YQyFegEbM3++c=aCcAlex^wA z5m=!$WGE~qUFx~PEf519a{0F=$IuM(SHZ#94h(l0<_wWZUKOjT6R8t;GeK@FAYG%G zqQDoR7t@W7_V zel^^*@JM#kM8pu_B+97}e7H6XuZcx*9p*OK9bFXze_7)<|AO7?=D5&8x?!pVUD`DooC*a@JNh5&6B8S2_2P#;g zEnv2Ey1n4v#1{K+@K{})k$W(aiYIzb7PnWR78-?iW3z_(StOda@hg>r89*btp`(L7 zgzbf)UyRc*TU(T0z&TJ-h8aRJOj~7FI?EZweRWyjyRWctESr^10QtCZ;Wd8Ag_rIC z;_f^>9E9(e^7QEGfus)^+R(FrI7L1HXPbvLcGw=%9>KdRoK*cL-0@4TD#cV&b#Fm# zCs<`-&Wcx(jI_x-X2&NaD!9w%A< z!Ajpu_743=ErxY=(O5$8Oy&l%8lFRlDdW}n{6LmX%k^f<#&|P_8I^Q*T<8evCyIn- zpq^DDrMmKq9eCz?#{V$W)c#VGo?NAGajSC)(Xh>uv1pWOkQ@CM%+v^*V7f7TR=P}Q zpPF7WE}>VTTOm}5WaM}4n>J8FQ`jf5t_qj#9bs{Jz|8{;v^SmSGbGP5&tiuUK<3bG zfDjD%GH_Y=q2~OCa#JRuw40u#@X+ycKD`0)1e<~hfTUT4vKQP|=D296FJj%pwlN1E zjA}-aV>>Q2Wn6sv&oBXx(!b{`!O59JCyebny12CLP5Y6)sfKCos=BpcKvz&vY%Io` zN`~G*LIx+v%ub?JP@Jf0c5+pRtrpA>PYR@C%p^3^Fz^V2%joJmr`W@jBE=gjD^Z{qj2}22Eg7uYc1|y$ z9gY}sR$-!Y0~YwQQFCo9Hc-_mLW{}^L3JBfidX@(%H<-mXr^IciL1@)*&`*c460Wy zDy}H{v&7v^m~J2fuv#fys39QgYD9VU`fSG9uStdEtJZ|-7A|E$`Ef2pSB(o*sVB`x zxCXoIpDr~)&UK;MG}uIp3iXrZg?eawN9HJ0%AMPoDh*^Do-mmP);s(yDoF8dNK=m> zyIkWmA3^)N1lK(km4TYD!AW-rluvLQKxk`os9+2U6g01oXUiAI=PT(Ql&NTq>|a__ z;@{Z5I6?_%)9xSWb&54OL-lavh*OfV;6NW8=7IrH7tO~= zbSNb(5)E${9j3JTW_6^clf!@%;3u-g02xd`^O^yP#aZoyKche2>Sj9GPru-5?QIBU z^?zlNsHE$cQnxGs`eg1VL23mfn(wz{Zp~dAyVj7n^ zD0H~M7C{{cICUgeqD8z1Y}3^h_Cf!IpD>$GQ42}uP7Gz@EBhzLA~9kw3=@Yq`!(Ml z*rn{Dx8oL~f_08GBu4Z?I%L(PWgbVNLwwc3CDKY}7Sy8)o+i3v_&_}96foEq+Xp?0qq9m8#8c=Uvdxt$ z!KRUDa7Lyl7Ijz5m5WCNHiT z;?`L9?lA{H14%hFGhtcVu5Dg zm%^Du{5toW?dTd|B}{`cU9Dm1%Sym*xQ{~Y0N`vLwk0o-i4F{C~-sg+i?W0F_%=g~$(AL_kL)wH>XV@L`TdL(@242Vh0a zb-^>kl%5OjSqBtB&$`Ap@bL=mBq*;R>4LeHxRh2j2*(h667xfU@;dzhJ@05$f8l+u z@8x)b#H{fa9s=2f>P1X`X|H9$6XDbQ?G91RksKb?Rs4&fo>`#vL!fpbL@|Il#|*S( zcr4^i`X~9Sz-wd%NtCW>=VY9jy4)PiP{-o_ z<3~l1RoB1m$x4jw+7uc^dUCs&?$fCQwlQt^d=R^&_Eb<8_^8sCJW?`K`V_&n2%IHl z>XN6Ir#Pu`SZ5dA%xSJwR;C9HeL@SYyNt@M4oP`E#2r6$#ZOd>3lilRa|=r|!++>D z*Jw+9u`_VyEMV4u3l{P$+Gqx+GFX;Zzg8bf$KcISw-U}2moV>NzhmsYY>_hI(Vr6? z4DL|zv`~OT>BhK1A^>x0m`F|A1+nca-5zkX_O4&(Js<)x!}qQdTWz4NH&~a^)rc6! z)NJ`$qw?tCBhE@YF}_}Q;%6!lu)cp-et7f#!<&bH09iDfKr5hSg5(AjPFq}Pf~4!T zNhad{irQac6l4JaN8FG+TUlK7#@rk03m6jlO&A0i#iYMWd>WNJ1G-MnZzm`O&8!Bi zYZ%33&Q?vZ1d!{^n8}rLc^U2M!tbU5&NvA<5TFpCUX3BTSwAMSTmp5AD+J^~2F|cP zI}M<25H^KEbij}#&j6GzH4DzbTjgsUe%UNg9~7FG$vAK`*=~8qnK=}v6wBmM(~yxD z*Gz>A-GO{&@}(O@%kJh1om2^r_hpWRn$gETpus>=94ZIVBCL(4zy_@&9fg<7Gjmn4 z(9e7Ro!EqzpWZ&a`3YJku)E$0S)eLqTQJ`RlZF73YPO0;C9Mp~`*pkG)xLNnkv<8P zj~?11S9r5Mf^eGcksrL-&QhTiu)NTM(@{Ef6i7C5BEseOb!?}0?nFTybE9A0S+egB zQKLiq490ClGlOdA3VVsZ1CZGcK0)oZ6eb`(uC$GcsO0*q~hwYGWXtQ{#mux z|Bp<1M=^Fj_YkY$o2Mx&!^4%?=A?(Hyet^=!QEXohCfC%O6_`KND46@eGq*80Rn?a zj9JBjCObpR6PS89DBM*nt zI*DmBo=uy@b$kG7=}n$ypd-Y1)z{81L&M(W8a1H7=faaGQN!+bkQMpeRoq#@tG0or zlmj-W-Oi)V`xO15gI!~PBhi+QLXV`pY!KOnJ&oLHrD+H?2Uz(rVkT>>-2m$INwUfN zi4>wpf=D>o^m8)lU;_rpqI|Yp;+Sa=n2>cPw9b74rPh#Cnt#sSz__1GjO`xw>}gQO+&J)E-TdSqz6*4zL!@nOJx zs-{CrBI<1V6Zb6dtB7R${PUma$ju~E3i6C*R0Q2SVY92ybE2dZ1cHG{0Fd4-!6blI zlY{Umht_UE@t{n|XRbQ~dkXpK$2-JfzQvfIALuajK!@_&dSX;}2teSc`?KJrfYlv? zCCfy|^WA&OUPk`v$Ei73sx%kh>f9j=?B&7jqyFA1UrBKt{@?Tz?I^5f|X9^b>{>!Uu9kdI}Ah zl`)6L*%b}GqbS-|^>_wP*W(%3?jqA}I<28u)tx0whLHfq;VQAq#a~f96xcw%Yb2Mg z9o+;$?GHH`o0gI}9B+~kn+`WZ8&w8d0*RxJI9`;I;pLBTQtYL@^ota!xB&6VcKj?{i$#a# z?HXS9=4ONQ!|Dx>d(jm=G?TD?Y)`-5Ob60L(Gy!Jq}hr^$PniO*uz@l|Rp1(YAudrUt5TV?_E@1YF_@Pe-9V*JTiF?!RY9<(hF8*4r$l^6N z`5C6}A}CQWebCtZ4WMqYYBoszKc~?NMLo`xr(=7w9Q1a<<_o0>U@74swBP&xuAP&+ zSg@1~{-wTG&aXv_rZ5ZvbY#M=QmF$P2K-umv@YfqTGZ1aabQpReKtO^hUp9Aa5E)B zmgID$hwzrb;8@XPgcI~$UYmLPbsuph;J>!uF%fYI*$6v}c z`#Vajk;)jZ55dSFz``^9s2~dtjSvVdB#@>TqlrRip(@kgr2b1+AS4#J$2=?}I%0d~ z9zOxzq)AA+%hQE(-718f*tZKgCWqrOT|M|Ji}iSpm`aG`auG$eM3%b|2FLwR)d~&9 z2TVL@UQZELqNH$S&rr^D5D7NG`g;Rnd}C=SxO=>~`)MC)E}p@D+$$Jumn6k%D}#&twg%n^u*eU~HG zyTk$VCFv(NQ+W_L3CN}P8hkP)5P2g{Fs=BBG?+PuWZ9S4y~ec~_Vgbkxl<~4CZp`fdvLIOkz z$YVQIS=54C4Ggo z40JfI-Nrir=|U}oPV~nF@6K{~w)qe)OIsW8rP3^1Kw3S+DgT7DfpQBL6=KC@IKS!+ zpj#>qy5@bEV0y3UPCqkG6@U)9(rgyA8a@T}ht@C+=O~O@jtk7c5Ew>MRY|)ci*;X16+UMNAT_4+xrhUcW*!4OCcruC|!uDGGYB*(fOn-Ki`ltXlpX?n!+1HW~}(v zc5?S{w_V-;?fwHQ+B*#LL*{BAm8il968PF zRc*tyvTF9SHbcWAaiw8P^S`+P*k@4&0d$(A~*Uqz+ zP12|Xez7>aWo@3x0&)1FhBz8&F(Cl~Rha1}YAlv|NRpOl*V8}#`2NE~?{|F-uRVez zj=%OX#6;yp4BR&CGcgd6Hx(TCywK*-{p)muQs<1rSuhv;Y6Cyo%ydE3#5cyv7ExM= znx|cxrzU&p)Lrz(ESkittXVS-{}J^p;SiAnz`iK?|P*!Z3W&CKHf!CDzD6mW>^F$>pUgd)(=#^)|`vd zpb$5MhK=qaitph$=pO77ek3zW>&&HHf_=X-Z)TiPq%ej~RPPeZQRgrjs6j+NJ+}^= z_q49!O^MhP9Z=@SM6$ws=%H8w6VG!WW;n~52FcK}r-frkx`JN_yKin6afgBWyjr8gXY=?zC;dc*OT-f;4zH@y7P8~XcSe1|Rd7c5;rEp|A~ zlaux{OdS1~V))VXE0%+5x+~C`oq9S4`iTn)ff!6EQcYs>7kFA^ime{ zwxuR;v-dahZqFh7jn~-v)k`3N&oshz4dCd2pS? zxP0H)LDQfk&&s`^)}DL;gkIb+FgOu7dyq82#kr{qsX%Esn%PDZ)dUFg7}_EZRX}wM z`6zHcP_Lh!nlxWDJWK9fVJ*HoWmyEb`3pUn6&dXrN0m*`I=sYp(AyvAI-8yChDLq~ zxXhRVzYdQAb}~M$W_k8i%BnGB>I-KCie+hDF~lB{@m!!(R`WIBJkWTNu0$887l8ne z|MMRK8r=C2&97imJ#LxL{u*P(L7m`b^q7~u@l>!!dMK8w9*Sn|Bon0z$Ijcfujg$h z;aQ`R9eP~r-B4-(t_L)mJq*1VNa}EGTH+QHmzfrrLQVs-7=kF$XRy=m>N}9WO}z?V zs;`jndUiICv*oYc0;lr`_PZ+Zw?+;yG4q*|Z+Fq%HQ$f|OihhHok*r+ae^pe7XY6C zqCKeyUL?~JzOkuuuN!6brEmPD|YC-DpZf8;v7T4M&wu+woQJ%tP zx(7Dq^12*MnaAi!Go<@OFAc7xk4r@9#^66M31Nou8Q4v;!K zr;M+yHX+Q`R_Ju$={Ehq626sL1sM7loo93Y%Q0{Ws#Tkv(d`@fB+tI7( zH62Sq7dpnSz#UJ>Z$a}J#^6X0Y9X^XzgXTn1Ym~b26EK2=jpZrswo6tEYmV-SCc3h zgUsCiXi)gEyG-Xxd}GHQfdLYy`{WHK_`&dEXB+imA#lwna^A%WhQ!7bRu)x|4%>-s z6Q+-Gc@dZr3JRzrwwLRT_;_hEyupn}vVXl!&J{jvmQ^=^Y0yadPk}#DM-C2;F6-Qp zFlL$CR_y5|48<_aJ+kYghpj`c=afdNq4yN8;s@bIysGvfX3~oL5S& zll79`Jm5cRwS{BnbPTKkQX#e5c>GIv_as{-Bu}a%wAtXS8=+#f6?EirhbKU|2f#R( z=Y~oZ=8j=d40JQpwzEOYA!My}>hgr?A)C&#`Q~zafrEegkB9rwx8G`GpoWW`J6b)F z%JZgIU;0vq6hWoG^h|bYvw;T*^FlY?d-&<+5BER(v6Uf{mIU{ssB8$Z``9f#Amiz1 zLImWARjuESn;t1mEORW^_hNlIo5K`jw)3(@Ulu0H&Fhv4v;x`LGy`Cmxap*{(=DS8 zqOb#mg}MKqpYA_CoZX|O$lb&H5BrWLtB8nQojb!Yc6IKI&Dhm>2<#i58*WgBHn>4y zI)DOgG2?!RZzxmj#&$5*18s;e)=J^tLM25n7_ladh*{qtxruF0WV}+XrlW(ZOcP}? zAYwT$qm;xeGJB5R(9G%*XbS%TO3d<(vTvf#VudKoXadjR6h$PpUO3X=oI#D43_Do~ zD#nozfwe{0#Dj#$`ux*&8nnGLm%nLsV!<{hAdx*2N7}s4(ZhHFqw95A8g(^=St#oY z?{4I$-B_Ls)t1JDAuV{WExq?*xPL6A=#$>JuplPG9gWtQK6sx*tGP~3PLW6^C5PVI z`|kZG7RDL;VKCS~I5^rrcsV%SANGg+`xpHq$k#&G**iRIUOgdH8?O0Ob7XjG)#zwK z(-KS(fv|A{f~EMw-i6&RoNSKW$>ze0oN)32ia_S4k&^Xty(l{rEJpGviY|H-&5oPb zP$lCZ##s1$Nd7FR_a<2P*csfe&VJ#pY`Foqz`BVvov)w}b8NTdduA&|zc^UCW>XO0 zM0!#NQV<2WAo)V-LK`xlV$U86>Qtci-Rfl|t=0ROvN_q?d6-iFhUl2{U_*FL z*NBG%;!y0tfQJ^Yay;5*1puXT;A$7Jz1=KWC$9(Gz(w8Rv+OQ z>hNKPz>{GO$6C*jYHo%!!7Dffk&V;7^WEBnrTs%(ElxBEvf*Ath$fd{Knnzq$1`6* z;e*iW&f1;(nm6NIg%-4MUA1gIShSR2qG#K&=tJ(Ef>rABdy_ZH1VBl(!VH7pOeo6T zz7pzI;au8Ij+F4QIUaY)x7%xv5_Mw!g9NIMO=km!|mHXZ}d) z8@VSktoR}#F&0>Je{l~IhMZgTpsmu%)*twU&VqPf(}3b%);pleDZgm}O7DqJr#hx7 zmGd2cw4mF5c4?RGZ5fRhXSQ?>^(Qb7dU6BcD>c}a(7iwVv%k_n>f4#ej193z2eC)7H>5tGM>WNVC+jO3 zD}>w4SY(sC4(<>xIkV>Hd<-{XsXj;>G^)Sd-tPXgXs@p&N#Y7hPEsnl&43#x#Ak*9$t z=^zuuLDK^Rcz#Tx=qza?v8J6Wxd+t3f@~e`oJbRfGy_yUuFtPGOm1&?lH1aaS#)74 zsw^C|fLcdaKR`*oISD@;Q z(EJufN$nMv*Gr-i{0p~;);m^Ey`P=%~NkTM+kp!W;S#NGWOtUk$kr0hzBxBvn%F}ctElN*wM6E`|&gTHt{g$O;_K$)nE8(PHYokKyWLnsK4I8MxF^|ci?0SiQg-V2Zt zBifglZ!Wxr7#NZ3a_LHIHGNG*5-J*8DFGvtk4q?bu_vhJ!T%=2Erp8qoZ=+IN;c49 zgIVApKqJQTJ=RYP;b=0k_$_QUbQYg@b^4C=GQp^<-`?N<%w)qB?r4#;b-lbbD0+4Dh$Oz|3GMW-kx2(jWdJVrZ{csHshdJtv6>hWvBPVn z4=DRnXHay=etVbG%K`qg8BW?5GL4da9jbZNvCbH7bz}%7w;&NMStouXHow0tbOK6fLW?8=%Q|bpSY%%PLmZ zPHV9ncl02eXlWg~MPxcB^2CyOKupZ}_Yl0$(IynYcJcZYNO>XIgW_qj*`RD*oF^_z zJ~Z40(@>l}q5{XNXXA%mXah_O6}XMc7bw%{=#9z-D9tvKp`reX*c|0b%8~INBOwH! zv^dfTQx^w~@bvYP86IBr2Z#8Q&Gr^VcC|Irm6t{xwA7N?Idp0oj|tR<;+v8hmyR<) zoM6cGKQ05zX3R;=W71mT1|--lc%k57sKg{naAGc}qvo8$SOA?>mXEr$mAmHrw3u^@ zB9#-d%IY=G1S$X^o4#AS(^VL|tzXN?y{n&nG{kH;cr|nN3r8Yj|FC~yDf_*|@ZnPW zt8}G3Dw{og<@)=DpvaezMG>)Xu|2sHv{!* za3+K4DXs*tOnuCNMb-~iL`2=8h@P0roq&$UbqGvD7Pi_OBX*X~!WNqT8mcFJCThFg! zMP1um!}N-LWo7hBW)w5h3IQqd0Q8ip`x|hdQNEnSY^bh6Vv6g;n0}7PWH;g1LuLYX zp>LTyGZG{I{Mpa%KfZZD%3XbWsk1|>4~3goHuEwR(!e5HwV`*1eb;!=9PgpTF1TB?0tCN`_1n@{HBK=t#gmm0w+BBzC$CFP1*h=*Oe-Eu0@8V<)JvFn)GUyFExQQ{zHJUjQZFY zcr9ujEcTdrqE~&zE2pU=17~{81kNaZ{!YfcQ76w^N zlA+FtYwy|KyTs~zgkfG0p@DJ(doCdl~{cl5{ehn

      3iva00-KCu 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 z zhLbsq3%P>pxs7{ygr|9lH+Y}V_?BN7Dr%rpM8;rzCSzJ=VQv;+F_vK^)?ht0;cx7~ zZtTNB9KrFN#<^U=)!f9LJiy~T$A5U6kNA=w7%W<#Pgq7_Y$jq#W?*)H&qDl>Kk;Y& z!e7~(zw;0N$-nqFM{^Qqasiif9k+515Azf+@;dMFDc|rjLq-pDioocM$D~Zd%*@67 zEXvZX$m*=i#%#s*?8@F8$WTG7b1??vGa1t|3v;soi?IwVu?Fk02}3eGqcS!VGCBYK z`I&9!WL_3x36|x*kE6QnI&8@1Y{QQ1#@-yjp&ZSLoX)vi%#~cvt=!FnJkGPc%&%|% z`!?_Y_3aYh{CZpIH^1J7^UbfzmEZh2z5C6tm&4!uI&Apn*QfcLahaGYnVwmhoB3IU zrC5R0Sci?+lI_@qy*PlwIF?g5n~S)T8@QeOc$8;&nK$`>&-so)g6YLbjL8H{&UDPm zJS@oKEX&HQ$@*-{*6hgc?90I%$qAg!d0fgh+{|4($P+xztGvUhjI)ja~2nJ1=n*M_woo&^Ad0HKA-U|zc5sY zK&Oa|!T3zZw9LZXEWlzc!%D2ddTheq*n!>Hhl4nR<2j9UxrD2^i930K$9azb@HQXu zB|k9O*8~24)-S^{3S%=7Q!)dy^LrNJkNk;0^B4Zg=KP(1@K655zd4$dIFk#woa?xi zdw7_qc#+q6k5BoApBeJ&3Hd*rA}~7RF)7n9GjlONi?TE;vO4RsFKfSWL(iOwVlmjz6#j%drY;u>qU04Lh+1 z`*8?IaUy4MK9_MVw{SNP@gy(s8t?K6U-J_~gb8#C&uEOxBuvdr%*lK#!cwfjYOKRX zY{_=)!d@J}VI0dToXtgC$qn4jeLTuDyv&#{sEotJOvQ}M z!MrTYk}S`vtj&gO!M5zop6t(|9K*?+#f4nK_1wn2Ji^nw#2dWNXMD>q4E6Ow=0C^n zh>XGbOvbd#!rUytVl2Z-tigJ0!r$0|-PnhNID+FjjdQt#tGS6gd4R`xj{opBAMqtW zFj#~@pRkO=*i6Kf%)spYo`v`$f8x*lg}<^nf9D_klYjAVj^-rJeF7oB66Tpct&GfCShu3Vov5`5td>FR%0DDVoSDT7xv-+ z4&zu(;cPDAN^anG?&DFO;bq?B13u?F28j~r6Pl42lL?rd>6n#ySdhh8mX%qP_1ToI z*^%AZmxDQy6F8moxRh(SnY(z9CwQJ$d54eriXR#L>%`oD&THWqm2sGushE*Dn3siF zlI2;Iwb_s@*p{8yll?iAV>p?!xR5Kjp4+&WM|hf-c!T%(jBojcp`rykMPv-dXELT` z7UpIF7GoJ!Vhz?~6aK~y?8ZJE#1S0NX`IU?T+L0~$pbvjbNq+5`G_z1fx)5&`h;Z^ z#%3a>WCmvE_bkL8`4fNUFZ`9w`8)sMpZtq|b2KM$CKqry*KsTN@GwvDBCqovpYjbq zGvwC^_;1($jLvvW$~4T(T+Gj+EX|6n&bn;OR&39%?9G83&T*W|Ib6(D+{hi=&tp8x zE4;;re8Kk&8Z*!*3?nlZ6EX$UGaJ9-4=llQtioDsz-Da2PVB*c9KunY$Qhi^Wn9ZG z+|5Hg$qT&3yL`ge{KOEk0-eG$8sjnvQ!^8DG9Qbu6f3YA>#z}9vK_my7YA?{$8rj1 za}if^1GjS@kMayJ^ClngIo~nJ*M+A4yv{;15@Rv}lQSK&G7k%~ILop!YqCC@vNb!h zJNt4lM{)wEa~_v+4L5Ta5Ap=h^D6J~F<FR%0DDVoSDT7xv-+4&zu(;cPDA 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%0Dr)l&Cq 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 u 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∋{7!vLC**>NzEv5z0&6If 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

      Da#kKHs5obbF)FR%%DR7$mgdm%UMTZwHd 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 HCVu||RU;VL literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.su new file mode 100644 index 0000000..d460d92 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.su @@ -0,0 +1,81 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:535:19:HAL_I2C_Init 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:650:19:HAL_I2C_DeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:696:13:HAL_I2C_MspInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:712:13:HAL_I2C_MspDeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1119:19:HAL_I2C_Master_Transmit 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1260:19:HAL_I2C_Master_Receive 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1378:19:HAL_I2C_Slave_Transmit 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1565:19:HAL_I2C_Slave_Receive 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1695:19:HAL_I2C_Master_Transmit_IT 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1785:19:HAL_I2C_Master_Receive_IT 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1854:19:HAL_I2C_Slave_Transmit_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1918:19:HAL_I2C_Slave_Receive_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:1970:19:HAL_I2C_Master_Transmit_DMA 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2133:19:HAL_I2C_Master_Receive_DMA 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2278:19:HAL_I2C_Slave_Transmit_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2414:19:HAL_I2C_Slave_Receive_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2523:19:HAL_I2C_Mem_Write 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2660:19:HAL_I2C_Mem_Read 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2797:19:HAL_I2C_Mem_Write_IT 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2885:19:HAL_I2C_Mem_Read_IT 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:2972:19:HAL_I2C_Mem_Write_DMA 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3118:19:HAL_I2C_Mem_Read_DMA 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3263:19:HAL_I2C_IsDeviceReady 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3389:19:HAL_I2C_Master_Seq_Transmit_IT 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3503:19:HAL_I2C_Master_Seq_Transmit_DMA 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3700:19:HAL_I2C_Master_Seq_Receive_IT 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3787:19:HAL_I2C_Master_Seq_Receive_DMA 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:3953:19:HAL_I2C_Slave_Seq_Transmit_IT 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4053:19:HAL_I2C_Slave_Seq_Transmit_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4237:19:HAL_I2C_Slave_Seq_Receive_IT 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4337:19:HAL_I2C_Slave_Seq_Receive_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4517:19:HAL_I2C_EnableListen_IT 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4541:19:HAL_I2C_DisableListen_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4574:19:HAL_I2C_Master_Abort_IT 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4638:6:HAL_I2C_EV_IRQHandler 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4657:6:HAL_I2C_ER_IRQHandler 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4709:13:HAL_I2C_MasterTxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4725:13:HAL_I2C_MasterRxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4740:13:HAL_I2C_SlaveTxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4756:13:HAL_I2C_SlaveRxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4774:13:HAL_I2C_AddrCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4792:13:HAL_I2C_ListenCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4808:13:HAL_I2C_MemTxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4824:13:HAL_I2C_MemRxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4840:13:HAL_I2C_ErrorCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4856:13:HAL_I2C_AbortCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4891:22:HAL_I2C_GetState 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4903:21:HAL_I2C_GetMode 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4914:10:HAL_I2C_GetError 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:4939:26:I2C_Master_ISR_IT 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5090:26:I2C_Mem_ISR_IT 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5233:26:I2C_Slave_ISR_IT 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5373:26:I2C_Master_ISR_DMA 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5513:26:I2C_Mem_ISR_DMA 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5661:26:I2C_Slave_ISR_DMA 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5805:26:I2C_RequestMemoryWrite 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5860:26:I2C_RequestMemoryRead 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:5909:13:I2C_ITAddrCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6004:13:I2C_ITMasterSeqCplt 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6057:13:I2C_ITSlaveSeqCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6131:13:I2C_ITMasterCplt 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6274:13:I2C_ITSlaveCplt 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6490:13:I2C_ITListenCplt 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6541:13:I2C_ITError 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6672:13:I2C_TreatErrorCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6710:13:I2C_Flush_TXDR 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6731:13:I2C_DMAMasterTransmitCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6782:13:I2C_DMASlaveTransmitCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6811:13:I2C_DMAMasterReceiveCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6862:13:I2C_DMASlaveReceiveCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6891:13:I2C_DMAError 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6910:13:I2C_DMAAbort 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6940:26:I2C_WaitOnFlagUntilTimeout 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:6980:26:I2C_WaitOnTXISFlagUntilTimeout 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7021:26:I2C_WaitOnSTOPFlagUntilTimeout 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7059:26:I2C_WaitOnRXNEFlagUntilTimeout 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7136:26:I2C_IsErrorOccurred 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7277:13:I2C_TransferConfig 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7304:13:I2C_Enable_IRQ 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7395:13:I2C_Disable_IRQ 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c:7458:13:I2C_ConvertOtherXferOptions 16 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.cyclo new file mode 100644 index 0000000..9b44a71 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.cyclo @@ -0,0 +1,6 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c:96:19:HAL_I2CEx_ConfigAnalogFilter 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c:140:19:HAL_I2CEx_ConfigDigitalFilter 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c:208:19:HAL_I2CEx_EnableWakeUp 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c:247:19:HAL_I2CEx_DisableWakeUp 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c:314:6:HAL_I2CEx_EnableFastModePlus 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c:343:6:HAL_I2CEx_DisableFastModePlus 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.d new file mode 100644 index 0000000..06b5d5e --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.d @@ -0,0 +1,64 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..7f1f106458a0fa5c7491be647b4bf27d4aaf357b GIT binary patch literal 1051828 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�Er_J>3h9TQ%3DbVaQAu3=>eF=D}Diy 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 ld)Mv)_ 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�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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.su new file mode 100644 index 0000000..a301adf --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.su @@ -0,0 +1,16 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:86:6:HAL_PWR_DeInit 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:104:6:HAL_PWR_EnableBkUpAccess 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:114:6:HAL_PWR_DisableBkUpAccess 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:308:19:HAL_PWR_ConfigPVD 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:354:6:HAL_PWR_EnablePVD 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:363:6:HAL_PWR_DisablePVD 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:388:6:HAL_PWR_EnableWakeUpPin 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:409:6:HAL_PWR_DisableWakeUpPin 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:441:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:516:6:HAL_PWR_EnterSTOPMode 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:549:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:575:6:HAL_PWR_EnableSleepOnExit 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:588:6:HAL_PWR_DisableSleepOnExit 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:602:6:HAL_PWR_EnableSEVOnPend 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:615:6:HAL_PWR_DisableSEVOnPend 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c:629:13:HAL_PWR_PVDCallback 4 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.cyclo new file mode 100644 index 0000000..e7b9e81 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.cyclo @@ -0,0 +1,37 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:109:10:HAL_PWREx_GetVoltageRange 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:153:19:HAL_PWREx_ControlVoltageScaling 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:238:6:HAL_PWREx_EnableBatteryCharging 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:254:6:HAL_PWREx_DisableBatteryCharging 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:264:6:HAL_PWREx_EnableInternalWakeUpLine 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:274:6:HAL_PWREx_DisableInternalWakeUpLine 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:302:19:HAL_PWREx_EnableGPIOPullUp 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:363:19:HAL_PWREx_DisableGPIOPullUp 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:424:19:HAL_PWREx_EnableGPIOPullDown 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:485:19:HAL_PWREx_DisableGPIOPullDown 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:535:6:HAL_PWREx_EnablePullUpPullDownConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:547:6:HAL_PWREx_DisablePullUpPullDownConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:560:6:HAL_PWREx_EnableSRAM2ContentRetention 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:572:6:HAL_PWREx_DisableSRAM2ContentRetention 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:585:6:HAL_PWREx_EnablePVM1 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:594:6:HAL_PWREx_DisablePVM1 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:606:6:HAL_PWREx_EnablePVM2 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:615:6:HAL_PWREx_DisablePVM2 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:626:6:HAL_PWREx_EnablePVM3 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:635:6:HAL_PWREx_DisablePVM3 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:645:6:HAL_PWREx_EnablePVM4 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:654:6:HAL_PWREx_DisablePVM4 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:674:19:HAL_PWREx_ConfigPVM 23 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:835:6:HAL_PWREx_EnableLowPowerRunMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:850:19:HAL_PWREx_DisableLowPowerRunMode 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:894:6:HAL_PWREx_EnterSTOP0Mode 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:945:6:HAL_PWREx_EnterSTOP1Mode 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:986:6:HAL_PWREx_EnterSHUTDOWNMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1011:6:HAL_PWREx_PVD_PVM_IRQHandler 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1067:13:HAL_PWREx_PVM1Callback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1080:13:HAL_PWREx_PVM2Callback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1092:13:HAL_PWREx_PVM3Callback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1103:13:HAL_PWREx_PVM4Callback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1115:6:HAL_PWREx_EnableUCPDStandbyMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1127:6:HAL_PWREx_DisableUCPDStandbyMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1141:6:HAL_PWREx_EnableUCPDDeadBattery 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1157:6:HAL_PWREx_DisableUCPDDeadBattery 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.d new file mode 100644 index 0000000..2d9d4e2 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..eefccbf2625b49369781e165f232d8e649293e84 GIT binary patch literal 1152412 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 z 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 ZyD+;sZL2r2&bUHpK}z4d%oOvw{|7SKOn3kQ literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.su new file mode 100644 index 0000000..d2964cd --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.su @@ -0,0 +1,37 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:109:10:HAL_PWREx_GetVoltageRange 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:153:19:HAL_PWREx_ControlVoltageScaling 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:238:6:HAL_PWREx_EnableBatteryCharging 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:254:6:HAL_PWREx_DisableBatteryCharging 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:264:6:HAL_PWREx_EnableInternalWakeUpLine 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:274:6:HAL_PWREx_DisableInternalWakeUpLine 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:302:19:HAL_PWREx_EnableGPIOPullUp 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:363:19:HAL_PWREx_DisableGPIOPullUp 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:424:19:HAL_PWREx_EnableGPIOPullDown 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:485:19:HAL_PWREx_DisableGPIOPullDown 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:535:6:HAL_PWREx_EnablePullUpPullDownConfig 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:547:6:HAL_PWREx_DisablePullUpPullDownConfig 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:560:6:HAL_PWREx_EnableSRAM2ContentRetention 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:572:6:HAL_PWREx_DisableSRAM2ContentRetention 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:585:6:HAL_PWREx_EnablePVM1 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:594:6:HAL_PWREx_DisablePVM1 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:606:6:HAL_PWREx_EnablePVM2 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:615:6:HAL_PWREx_DisablePVM2 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:626:6:HAL_PWREx_EnablePVM3 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:635:6:HAL_PWREx_DisablePVM3 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:645:6:HAL_PWREx_EnablePVM4 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:654:6:HAL_PWREx_DisablePVM4 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:674:19:HAL_PWREx_ConfigPVM 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:835:6:HAL_PWREx_EnableLowPowerRunMode 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:850:19:HAL_PWREx_DisableLowPowerRunMode 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:894:6:HAL_PWREx_EnterSTOP0Mode 16 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:945:6:HAL_PWREx_EnterSTOP1Mode 16 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:986:6:HAL_PWREx_EnterSHUTDOWNMode 4 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1011:6:HAL_PWREx_PVD_PVM_IRQHandler 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1067:13:HAL_PWREx_PVM1Callback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1080:13:HAL_PWREx_PVM2Callback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1092:13:HAL_PWREx_PVM3Callback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1103:13:HAL_PWREx_PVM4Callback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1115:6:HAL_PWREx_EnableUCPDStandbyMode 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1127:6:HAL_PWREx_DisableUCPDStandbyMode 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1141:6:HAL_PWREx_EnableUCPDDeadBattery 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c:1157:6:HAL_PWREx_DisableUCPDDeadBattery 4 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.cyclo new file mode 100644 index 0000000..4ab94bd --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.cyclo @@ -0,0 +1,16 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:219:19:HAL_RCC_DeInit 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:312:19:HAL_RCC_OscConfig 69 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:766:19:HAL_RCC_ClockConfig 26 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:994:6:HAL_RCC_MCOConfig 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1063:10:HAL_RCC_GetSysClockFreq 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1118:10:HAL_RCC_GetHCLKFreq 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1129:10:HAL_RCC_GetPCLK1Freq 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1141:10:HAL_RCC_GetPCLK2Freq 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1154:6:HAL_RCC_GetOscConfig 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1248:6:HAL_RCC_GetClockConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1283:6:HAL_RCC_EnableCSS 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1297:6:HAL_RCC_EnableLSECSS 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1308:6:HAL_RCC_DisableLSECSS 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1318:6:HAL_RCC_NMI_IRQHandler 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1335:13:HAL_RCC_CSSCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1359:17:RCC_GetSysClockFreqFromPLLSource 2 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.d new file mode 100644 index 0000000..0277c18 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o new file mode 100644 index 0000000000000000000000000000000000000000..739c689e809f83f9d969a5761238c38bc8a2bfba GIT binary patch literal 1149936 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

      @YPmi`@+@#d2_IzvjbZe7) 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%0AiB@#k6HrSiQc+ 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

      t7 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

      p?!xR5Kjp4+&WM|hf-c#{wKobULR!4?Pl zgk@yLVnU{1dj8IwEWqL{!^-@J_1Khc*qOaJkRv#r(>Rw)xSE@|lLvU5=XjNO_?WNw zkv|x6Nubj&jK;W3!qm*jY|O*L{FCKbjkVa2E!dvj*q1{%nv*z_3%H!?xRrZ&n5TG= zH+Y}V_?BN7bZMYZ7)D}DCSY==<8S$CSzh67KH^J$;CF^t7U&e7Q5lDcnTo$MD|53DOR^lRvL+j_Ioq)-`*1KvaUy4M zK9_MVw{SNP@gy(sI`8o*-|#boED!Vv&4`S__)NyM%*-6j$D%CFimbspY|K{d$R6y^ zVI0dToXtgC$qn4jeLTuDyv$pC$QOLiZw$U7&?y|FFg6o0B{MJ!bFm;xuq>=mh%MQH-Pw;rIfj!tiwn7e>$#14d4#8Vi8uLx&-spD8EjRcPgq7~EGA?Mrswa> z$pS3SGOWyhSdUHFhMn1q137}@IgN9Lj$65hhk1$@d4u=)jBojcLDvNO zgkdDcWCA8Rn&ta#NtwFO0^xOv2R6$ZX8R!u*rv zS&g;WkS*Ar-Po5yIGU3$sJBc$lYnkvDjs&-j*K7<6->PZ&mGOeSD*rsHq? zgZWvEf3Xt(W?eR6Yj$E!4&ZQ(<5bS!Vy@yw?%;kN<5^zeZ9d{le&Bb8*b?Xzo>3Wx ziJ6MOGAnbl5KFQgtFk5=usPeYEBkOTM{y!&a6XrDEw^wt5Ah@~@H+4DDc|rjgKQ1- z3C)O%!T3zZw9L#L%*UcE&5EqSI&92V?8qMM&tV+PDV)tkT*(dG&V4+}GrY`Oe8?Ak z&ufE3+~;3$Y~2 zu_|k_0h_ZOyRr`la}+0X2Iq4b*K!MY^AJz+0v(kOv}v7 z!F(*r(yYiDti#4^#g6R3{v5`!oWj{$#FgB@?cB$sJj2Vp#fN;s_x#4-djp-qF$!Zd z5mPb)voIG6vINVr3jbw&He*|MVQ&uNNKW8%&f`+9;b!jQL7w1wUgKRp;cI^4PlnnT z=oEp`8IMVshMAb1d0B*|Sb^19n~m6#9oU`yIFw^JnX|Z%E4ZH9xR*zGnwNN!5BQw# z_?5x-2l|9%WX57breJ#h&YUd3;w;0;{D<|}lx^6Vy*Q8~IG)oumrJ;so4At)c%0{W zm3R1N{Db*fjDN8b|7Kk_VQY3`PY&R4j^k9$ z;bN}hM(*H#9^+YF;cY(ROMc*YhBy@H6rNEThl!brzcMRxvk*(N9ILV>8?ZUsu`By< zFh_ABXK+53aV@uSHxKb7FYr3=@hRW%GlLus^a;&~jKTO!#MrJG~ zWD2I|@65>pEY32l%zs#qP1%N>*^2`?g5x=jbGd}8xrsY@fX8``S9ynz`HCO;gCUOx zI{m_EjLRfU&5X>(JS@yVS)SEciw)U=?b(feIfSD*i8Hx?%ejtQxrc{&iWhl<_xX%( z`GrAG1p0(wB*tU{CTBYS#y^;!#rPL1@o&~;6Sih2_T&H#=QvK~94_W6ZsZQ`=P{n; z72f6}zT^jfXNZ%5PT?7qahRB?_$#wAHw&>O%dskJvH_d39lNp*2XhoBat7yf8P{?P zck>WW@&d2(9-s0JKQqXwK%dZz$QX>zWK7G<%)xvt%F?XJ8mz;{Y{ic3!Tub^v7Ex$ zT*Q^!!0p_}qdddQyv2un!T0>e;HLwf!Z8YCGZ9lV1G6v}3$g^uvI_rYeKuoTc42Q0 z;z&;5bk5^auHk0x;z6F^d0yjPKH+PA;!lP;6X+Cy(HW0PnTDB|oq1V=rC5R0S(}a6 zk{#Hc{Wz3kIGMA!kSn;J+qjoUc$$}ZlMncu@A#F$&IbB~Wn{);LZ)DP{?42%z~U^! z%KV4**pzM9nY}oWBRHPZIG0Pfnwz+j2Y8(4c$Ihfn6LPeKN#{{pwlmm#<)zv)Xd0i z%)`R`ljT{Bwb+m?*q+_kmqR$3lQ@$LxSZ>_m3w%Yr+AS!c%RSsmR}h3e4tMlMq*4R zU~;D8Z~TM#S&VaE{|t&f#LN;zsV^ejejlUg2#%;!A$ucZRqS z=oFq&8Hb6PioY@|bF&ajvK*_jCL6Fh+p#PAa4<)4B4=XGbOvbd#%pAyZEUWNe)@L)eWf%75Adch&PUk!>pxs7{ygr|9lH~E0i`Ho*1>`I_dSVm?nCS(ex=kLtP0xZrltjvE{k4@Qzo!N^6 zIfCOkjdQt#tGS6gd4R`xj#qhykNJup`GX;^20H!1XpGAwOwEkU#yl*{KUtpDSc?tW zg6-LjeK~}qIf*m5fXlg#Te*jad5RZ#gZKH2Z~28muLb&qVI;<60w!lV{>DF;pT+nW zEAemEWfQh$C-&q34(B*du;jX1y`G6Sp?!xR5Kjp4+&WM|hf- zc#{wKobULR!EOiogk@yLVnU{1dj8IwEWqL{!^-@J_1Khc*qOaJkRv#r(>Rw)xSE@| zlLvU5=XjNO_?WNwkv|ynPN35-jK;W3!qm*jY|O*L{FCKbjkVa2E!dvj*q1{%nv*z_ z3%H!?xRrZ&n5TG=H+Y}V_?BN7^lqR}7)D}DCSY==<8S$CSzh67KH^J$;CF_&7w8n8Q5lDcnTo$MD|53DOR^lRvL+j_ zIoq)-`*1KvaUy4MK9_MVw{SNP@gy(sI`8o*-|#bo+z<2#&4`S__)NyM%*-6j$D%CF zimbspY|K{d$R6y^VI0dToXtgC$qn4jeLTuDyv$pC$QOLiZw&q*&?y|FFg6o0B{MJ! zbFm;xuq>=mh%MQH-Pw;rIfj!tiwn7e>$#14d4#8Vi8uLx&-spD8SGJ@ zPgq7~EGA?Mrswa>$pS3SGOWyhSdUHFhMn1q137}@IgN9Lj$65hhk1$@ zd4u=)jBojcL7xQrgkdDcWCA8Rn&t@>QVIFO0^x zOv2R6$ZX8R!u*rvS&g;WkS*Ar-Po5yIGU3$sJBc$lYnkvDjs&-j*K81!|Z zPZ&mGOeSD*rsHq?gZWvEf3Xt(W?eR6Yj$E!4&ZQ(<5bS!Vy@yw?%;kN<5^zeZ9d{l ze&Bb8coXOpo>3WxiJ6MOGAnbl5KFQgtFk5=usPeYEBkOTM{y!&a6XrDEw^wt5Ah@~ z@H+4DDc|rjgS-v&3C)O%!T3zZw9L#L%*UcE&5EqSI&92V?8qMM&tV+PDV)tkT*(dG z&V4+}GrY`Oe8?Ak&u3)qcAoTF(orF3v;m`ORy}f@L$$vGqz{laLB%Op(AjLgP7EX+Sy zp4C{34cUV2*^PZUgrhl$Gr54vxsF@8hlhEJ7kPvC`HXM*g+V_B`h;O5#$*B}XFC4I zKbW7z_!lejZ`NfKwq_^xfE3+~;3$Y~2u_|k_0h_ZOyRr`la}+0X2Iq4b*K!MY^AJz+0v(kOv}v7!F(*r(yYiDti#4^#g6R3{v5`!oWj{$#FgB@?cB$sJj2Vp#fN;s z_x#4-Ujv=OF$!Zd5mPb)voIG6vINVr3jbw&He*|MVQ&uNNKW8%&f`+9;b!jQL7w1w zUgKRp;cI^4Ployy=oEp`8IMVshMAb1d0B*|Sb^19n~m6#9oU`yIFw^JnX|Z%E4ZH9 zxR*zGnwNN!5BQw#_?5xF2l|9%WX57breJ#h&YUd3;w;0;{D<|}lx^6Vy*Q8~IG)ou zmrJ;so4At)c%0{Wm3R1N{Db*fjDN8b|7Kk_ zVQY3`PY&R4j^k9$;bN}hM(*H#9^+YF;cY(ROMc*Yh6oZgNU(fCf`n&O#$jTn;;+og z+$_YBEXS&>$p&oBcI?VN9L!Oi$Qhi^Wn9ZG+|5Hg$qT&Bdwj|_{LCOh1ARg>B4aQ< zlQAtbGY9jrC`+>f@aezxrUp$iwAjv=Xs5H`Gl|e zi9Z=Cc%V}RMrS-GWg2E;cIIUfmSP1~XKglOOLky)_Tx~F;bhL@LayL?ZsT4a;b~st zO+MgrzT;O03lZoOmXR5Y37LZF`8#v60E@E>EAt=LV^g+aXZGSij^KDs<6JJ`YHs3A z9^i4F<5k|_W4_`?{$R+Eflj|L8sjnvQ!^v8F%Jv#PnKsj)?!1pV0(6BUk>4DPU1{1 z;Bv0xR_@_pp5jH`;C(*hTYh2CP=P*S7>O~NfXSJTzwr;|XEFZ8O8lF3*@Ugxi9I=h z!#R#qIfsk6iW|9u`+1CKd4;$6h%fnp-x(rwpi_88WgI4ED*no>%*{e9$#Sg9nry)4 zY{#zb!@(TIiJZatT*kHB!reT?lf1y|yvL_}!_N#7CeSA|BQgf#Ga1t|GjlK>i?TE; zvIgt0FxAU+_J@F?iTOr*MqI*i6Kf%)l(n z#eyusvaG^?S)a|=mR;DJgE*2CIGyvjlxw(|yLgZ%c%IjImrwYbpZJrZ!UZ}-V06Y~ zQl?=hW@la&VJTK%b=GDhwqyr(XFm?*7*6IaF60WX=Qi%;5uWBH-sA&5=R1C7u<(IC zVHugRn2;%$p1(6E3$QrLurmK)JvL<?Mq^wiVQOY%Hs)br{>k#J##(I17HrRM?8_k>%}Jce1zgT`+{!&X%u~F` z8@$hFe9JEk8X?dp3?nfn6EHc`@i+d#{4B=5Sc!kLE}O75JFzDRa5%?tD(7%9S8*eE za6ganEU)l3AMqtW@H<0940H<5sEotJOvPWBmAP4nC0UMDS(6ReobA|^eK?q-IFU0r zpUb$GTezEtc#;=*o%i^ZZ}^!(A_e+{W<^AmqERFpuc2#n5nOv*IO#O%z=A}qxU ztj^kO#Fp&9?(D~*9K*?+#f4nK_1wn2Ji^nw#G8D;=X}Sn3>G!eCoCf~785cB)AM)c zWC0du8CK>$tjDHo!_Mr*fgHi{oW{9a!qwcwojkzfJjbiN!^eEZkNm-q(E^=*VKl~N z5~gNGW@8=}=ASIjYOKYEY{B;I#=acFP(kc-F*@ThDbp|$vokM?uoNq>I%~5LLoz(0 zFcuRq8UO$5XLOyFxmbY3SepO;eN=N@ll9q@t=W;?*_VSklH)m*v$>GVxt5!`llys; zr+Jar`QPJz|6BL}?{SI$`QNe9|M}lBod5aXcIE&4Z+Z8B{x==|pa1=B_@DoM%>OeE z6EOwTF*CC>4-2s*%dskJvH_d39lNp*2XhoBat7yf8P{?Pck>WW@&d2(9-s0JKQl-$ zy%>=(7@x_QmYJD@`B;>tS&=nZhmF~a9od8ZIgDdDg|oScE4hK&xsOMAhL?GZ5BY-c z`HjJY2Remg6vk#Erep?YVJ;SA36^CQ{>%Do#6~KDFUN29+NT+Gch~!vItAD0;{t&8?hxjusi#4D93OzXK^7{a6Pwi zFOTpvFYzWH@HyY{D}()a!~ehi%dm{hSWL(iOwZq$lLc6uWmuX2upXPT4Lh?J2XX|* za~kJz30HFyck%#_^Bk}84j=OsKk^4d{x=~1U#DLfjd7WTshN@4n1_Y=C(E-MYq23) zusyr6FNbh6Cvheha5>j;EBEj)Pw^se@IIgMEx#~m=s=$^jKr8sz~oHF-}ndfvl#zk zCH~F2Y{J&;#GV|$;T*@QoWsRj#f{v-{XE9Ayu#aj#FzZQ?+g(p&?!8lG7b|n6@O(` z=4K(5WI0x4O*UY2wqsZJ;b4y9M9$!RF5_Bm;cgz{NnYS}-s4lg;b#U38|V|75gCK= znT%j;EBEj)Pw^se@IIgMEx#~m#6X`gjKr8sz~oHF-}ndfvl#zkCH~F2Y{J&; z#GV|$;T*@QoWsRj#f{v-{XE9Ayu#aj#FzZQ?+g(s&?!8lG7b|n6@O(`=4K(5WI0x4 zO*UY2wqsZJ;b4y9M9$!RF5_Bm;cgz{NnYS}-s4lg;b#Vk9Ox685gCK=nT%((HW0PnTDB|oq1V=rC5R0S(}a6k{#Hc{Wz3kIGMA!kSn;J+qjoUc$$}ZlMncu z@A#F$q6PYdWn{);LZ)DP{?42%z~U^!%KV4**pzM9nY}oWBRHPZIG0Pfnwz+j2Y8(4 zc$Ihfn6LPeKN#}A1^EBX{~3*OnS`mCk=dAsh50ATvl?r$AzQFLyRk2aa5N`zCKqry z*KsTN@GwvDB5&|MpYbifFldZGpD>KXm`uRrOvm5&2lKNS|6(Qn&AM#D*6hTd9Khim z$Elpd#azXW+`;`k#HmIbp&5}e7@x_QmYJD@`B;>t zS&=nZhmF~a9od8ZIgDdDg|oScE4hK&xsOMAhL?GZ5BY-c`HjJ22Remg6vk#Erep?Y zVJ;SA36^CQ{>%Do#7EPDFUN2 z9+NT+Gch~!vItAD0;{t&8?hxjusi#4D93OzXK^7{a6PwiFOTpvFYzWH@HyY{D}%)i z^a;zzjKzdZ!Swu{Iaz?kS%#JQ59_fh+psfxaUe%j;EBEj) zPw^se@IIgMEx#~m{6L>DjKr8sz~oHF-}ndfvl#zkCH~F2Y{J&;#GV|$;T*@QoWsRj z#f{v-{XE9Ayu#aj#FzZQ?+o$Z0gC_o9))LA#$jTn;;+og+$_YBEXS&>$p&oBcI?VN z9L!Oi$Qhi^Wn9ZG+|5Hg$qT&Bdwj|_{LCN;1ARg>B4aQf@aezxrUp$iwAjv=Xs5H`Gl|ei9Z=CaiCKKMrS-GWg2E; zcIIUfmSP1~XKglOOLky)_Tx~F;bhL@LayL?ZsT4a;b~stO+MgrzT;O0OA_c4mXR5Y z37LZF`8#v60E@E>EAt=LV^g+aXZGSij^KDs<6JJ`YHs3A9^i4F<5k|_W4_`?{$R+Y zflj|L8sjnvQ!^v8F%Jv#PnKsj)?!1pV0(6BUk>4DPU1{1;Bv0xR_@_pp5jH`;C(*h zTYh2CWPv_m7>O~NfXSJTzwr;|XEFZ8O8lF3*@Ugxi9I=h!#R#qIfsk6iW|9u`+1CK zd4;$6h%fnp-x(r#pi_88WgI4ED*no>%*{e9$#Sg9nry)4Y{#zb!@(TIiJZatT*kHB z!reT?lf1y|yvL_}!_N$oBG4x^BQgf#Ga1t|GjlK>i?TE;vIgt0FxAU+_J@F?h;Ar*MqI*i6Kf%)l(n#eyusvaG^?S)a|=mR;DJ zgE*2CIGyvjlxw(|yLgZ%c%IjImrwYbpZJrZQUy9iV06Y~Ql?=hW@la&VJTK%b=GDh zwqyr(XFm?*7*6IaF60WX=Qi%;5uWBH-sA&5=R1C7u+)J*VHugRn2;%$p1(6E3$QrL zurmK)JvL<X=>vU2Ga_R!K9eymGcyPCu_#NkB5SY?8?zNVvIqNf7{_u7XLAu(as#(>ACK}3 zFY^{3@&(`X8-r&EbPC5PjLk$$$qfImy}N*p;@TfLKEXW%cXtWFU4sM&5C{$hk`N#e zBMA`PA-KB*iWV*IRwz&??oNT?F2(u(?#}o2Y*TjI*LQke-}~=9ne*A%`R#A++?mYI z%#L6QERWT&HhN(*Y=iz7h~d}^2VxYC!>Kq27vgeUi(7Cv9>Ak`1~21HypPZD4SvRW zu4X$W#Z;IPb6|dS!_rs@YoI53V@veGP8fpSu`dq6Q8*E2U^FhlRk#7S<9GN2p1|{X z4S&W*_!8e^tRiOnB*f&H7PDY(EQH0e99BgSY=BMiD{PNlFbsR*0342EaSG1HukjoF z7B}NA{2qVA(|8Gg!h84>f5A@}*UfCFB$yI2V0O%hMX(fB#OhcV8(|AKcolEsLwten(5a}|J_*nn(_m)Ig$1z~mc=Sq3+rPO zY>j@{8M|U6_Qzp31}EbzT!71P4Q|4nxF3(;DZGd`@Gd^V*Z2|R6f@f?F{Z%um<{uy zE0)9x=#F);AvVXh*a3qu0(;{i9D(C;8qUQ^*8rDWHY=&*n9|JKQd*MKg!f`ki=iowIj%#rX z?#2Un6wlygyovYm8NR{K7_X$+PDwEpX2cwrAKkDtR>B(SiQX93;Qtw2P)xpc=&ymE=#4GW2RmU1cE`Rr1V^E*`6#E` zSn4f5Pg<12xE5u%*P?75Sd_)V;-8(L@rX}~sZf4Sx8#w->K65Q7VD2}7_u_QfGM3Mb+WjK(Fn3OC?({0@J>6L=o4;m`O8U*da|+kIN5S8n@dQEvZX zF)e06eZ71k`io;Ztco7k0Gr}h*dDuJ81}>gI2^~~6r7D;<2U#%ZpK~sJ^qNN@e=-o z_wXtHf}b#MEVEsbU`ot@*)bm$!BSWet7Bbkge|ZgcEn)phJA1_j>HK#9p~X zoQ$(@0WQNexCwXSemsJw@FL#8yZ8iO<424W$84v>m;%#dHq48zSQ0CsJJ!L5*c{tp z2Modp?2UtP1dhjPI2RY;3S5U3|_{Y zcpsnP8~lv%;+yT16jNbF%z^pQ4NGGstbv~BjV;j!J7EZR$G$iON8v=Afzh}GSK$WS zj^E)AcmmJkHT)SL;Y)mvu@ac=lMs_*TFipEu@Dx=a#$5TumLv3udqFK!7%KJ18_Kw z#VI%&zs7IyTilGh@O%6bPva&03Gd-k`~^Q@+=OO3CBc-K0kdO1EP|!5B38$`*a%x- zJM4(T*bV#OU>u1Pa5~Pz#kdmJ<2KxjhwwO_!>f23AL0vqhfayi_DO)wmOU~BZl&e#!WFmcmuGFTaFVm)k(tav$7lEkKV!UPW;-RtRG1NSV19JN(pU*=peK4`OZ34` z7=qogFAl*`I1y)HG%mqaxB<80clZOI!1H(wf5u1n65nGiXS010VscE2Sui&i!s1vC ztD*-sz^3>Ww#P0QhCOir4#%-L1!v>e_zixGn{gL@k3ZsRyo5jDJ$#D4;3tfm+-#>L zm=ZH!cFc!GuoPCr>R1;WVGC@B9WfZYVILffBXI&w$9cFISK@lyhI{c49>;Td6>sB1 ze1Y%KNe;-W^-%(J#x$52b74U&hGnq|*24PO1Y4sYcE+w4iT!aHj={+|3m4!rT!Wi% zC+^21cnUA#4ZMp_@HKwKI4R6_N{lHmJ!Zqa=!zw=0=i=zY>3UVEq1^ljKJPF2uI*} zoQ8985w5^>xE1%{K|F?M@e1C;2lyP{qLI>UpZJ&zQ)4E~i3PAImchzc6YF7PY=yoU zfT7p}`{7U=jgxRD&c~&=8aLt&+=qwpBwoPlcn2TjEBt`5%W&CT zuqYq1m;tk6J}iQzup(B+y4VO?U_0!H!PpJ^;9wky6L31t!^OA~*W)(ai-+(yp2Mqn z8z15ee1}dP*G+)VmOU~BZl&e#chY7XvU9 zdtg5tilcE7&cyk+6j$R$+=2V>FrLHpJG3u6f^kJYd? zdSNqcgZ>zZ;n)iYVib)W&JL@(H3QM!{T54U9~EouZ8u{8}<6XE&cx31-oJo)W3fYrhf#E!znlm=i?Gw zg^u4r&H4IAzk~j-FAsYAU>(baKA&P2{rmASo{Sv z2gi1>*$$5FV6z?mDciw%ef8h69p~7eH{>h1eT`upQB9D|clZ`UuNe;Ka9O}G>F_S+HqPvJ$pfp_r7a-FN_x z;u*Y*H}O6`!#DUD<8k~gDW<}Vm;>{p83sJ1EX;X zuEGtt9lygL@C2U6Yxpxh!k73SV{zOqAtuMPm<4lVAuNvNuqt|B18j<4VSDU?Vb~J~ z;BXv^Q*btZjo;w6xEXih_xK~8#!L7U-ovN(3x2}5vVvE?HzmQ8m;tk6J}iQzup(B+ zy4VO?U_0!H!PpJ^;9wky6L31t!^OA~*W)(ai-+(yp2Mqn8z15ee1}e)Z<+v|F%4$M zTv!l`VOgw#wXi-m!Pe-9ov|xMVt*WlV{kIg!Uebt*Wf1HiTm*gp2CZG1MlJ!e2pJ5 z4(FXF#uS(yvteFz#gbS7-LVcf#OBx*J75q-U~e3RBXB%U!@0N!SKvC_ihJ-N9>cSE z1#jU4e2#C?;C$2gm<&^6Cd`Qiuqc+n%2*TYVPkBCz8HX^*aQ3FP#leua3;>jrMMb5 z;tt%0hw&s{!0UJiALA?hfU!C6G!eRBI?RfBurQXu@>mUPqZc;AHt3Im7>>PgAV%Rh zoQiXBAuh+YxCM9P0X&Ll@G{=S`}hps;Af1-d8bJ+6=uX7m>=D+G*-eI=!xFg5`C}} zhG2K>i$ib}PQ)1)jZ1J9ZouvM9sYnP@H}3_pYajC#P=9W4z#H6wS<@)(_$9PjfJo{ zmcy#(feo-JeueF^3x;7&9Du`dEKb4M_%(im-{NN6h2P_kcp5L^Pk0ZX;xG6Ko z+xQS);5&4Z13RjH5}-4t!OWNo3t}-Wi&d}|*2gB;8vU>{cEw2SkHc^bPR3cd0GHt! z+=M%EKOVtTcoA>lU3`MC@gv6Jywk*(0@GtQ%!{sA5-XrP*1?9@9NS_C48jQPje~Fm zj>l;@7Z>3QT!&k64<5v0cowhVEqs8_@huvhZyFzyVQS2TIk5m1#WGkKYhpcYjIGcY z127bOU_Ts+qj3_>#QC@sSK~(9f&1_Q!e-b8{V@>3u@?@+C>)1VaSkrT<+v8N;BGvCNAV0^#+!H_pWz$)jPc||5Vc-P zin1AQ_TyhY4qb!Kd!jxs#Bn{m*}jhJ;mvk%Tn}%ygX4O5vmG4Q!<+5kxE|hY2gmjB zW;^^-uZNezo92EWrbNee1ZKN9t|Ktp!Eqgd*$)5f*AeLTfgBdHtQTar!s7qRdFCsb zo^|+V&nu4kJO52Se-EGFD}0ZR`)`@c&%b*AExjDd;Wx|j=lEVS+re>to7oPI>)XtB za9rPJw!`0jeVgOBn%T~eSRcQ%@ja*4+y5=w4M%{&H43$^_gRP+-wiW_PE&&j_q-?9scg^amW28%y#~} z?l)0dR`}|?f=XBeJ<%Imq7Qb$5bTb9aR`pWi8uqJaS5)%4Y(b@!yoVjp2utWGd{wX z_#R_%-f}`rj%hIq=Eg!;9Lr%<^uPw#6u-ju*agF|Cl0{jI2NbiZ2TI(!EbRh?!xc! zM?8&}@F%>7Pw^N0gmF24ISHo34457BVG%5a6|p+j#YWfy+hIox#%|aL2jfVbfYWgv zF2b}_6kfy|co(1GYy60DIBz*Iroi-=4fCQamc$C^j&-mh zHpjNu0fR6Cd*dJ+f#Y!+&c#Kz0@vYI+=B=47@ox|cncrkb9{>i=Pk#_WSAN=VNNW7 zMX?N4#+q0U8)GZ<#Q+S&9@r0u;%JKBjLmt= ziO>bpVOGq8g|P&d$7)y`y|5X!L4ORyaO{NxF$%}wRGfngaXGHVEw~#G;88q-^0j68 zUY1^qfA#md3Vhxj>tI7{j%~3624MvD#z8m&$Ky1di;Hjt>fhnE(!U1};xRmnj_YjA z`R=&R)@%pIb+%?ZIIgob+d*GvtJjl`<5gz6IF47D?clgCl-UlB`$C!R@K3ofl;i%W z=KT1p_eXUcuQJ>3pK`oPfB*iw`zhtw?yriqupWBjzk0vgetd2yj>bti6X)YUeR}@g z`|mo=i!}d#hI9X+u{Z_)=zhG8=aQQ3_n&$$>2h@(R{lvX$4BK@qviQgaxH0(r1E}B z!`P}!V;BY0b-3vbqna|4VOXBqlhrUbtNt8@VYyB=w_z-h&&J9ppHmhz49j(_u7+`6 z^%s@rSE}nTOBjab`7rWO1IMecKtnTPf3dnSRUtx@3Ca(EmXx(`~sAmwY~xx(}61zu_9*GbqBx zSBwZV?WA8t_(w(j_M1`F@{jQD8E*M(%`pG2U&t#F9`2rXZ4dR5p+)Tv zE@lpnIcBTLi8<&uQ}dgFHG+M71O45-y^Y^Cn)$w`ca7fbnZTZfxbR|T^OQfQH*x085R=c<>~1i(k;x--)zM8{=VHhwhajG z5F#_%^4iDOH_X4g^-!NMpWu%EECOawSa8R{fbfXlycgu-7baO$z0IJ&fM6Mm`C1k$ z!__Y&D9AsUMaF!;LzqvH1XXQR&($X)A}qkSTZ9@@$FPuYp|XJfxiUkRXLU?f7g^NR zBkPPM(shNB>cSFOKvzOHuSCR@dY*@=s`iVL?Bx56qe!cN>~tGI4<;`Uj^b+;3D+$yezow&4yx?M)tiCb?KH_}d=+HTPKM%jrwVih;qPTYB`xG{F( zZdt{RwG;Q$DsG&eIJJGFr(?XGxCHV&q2ngliA!Y_H_<9Cqr8?;8FG4srKsmDSr^@# zUEWl2u^AXMP7PBfuXG8d`=dBFiHSMhI68?8Q_G7gg``U;T@~q6sZ!n9@DSDaU}5Q0 zoEl$k>8$hRk_xDMAnKy?)sQ!=^F>L%r}Cc4S429U&tG0!=kt&cMe4>NPB46=v(6V; z!`V>ZnJS-buKt=&{V!YRQ@^jO&Uak$sp(Vsic6>KH%ney=kt_>V4u9F zi_W)0-ms2KF8d$pbdadyw#aMi@t(IDuiC8E8r#VCTH>tpJ+;bL&MKd}f3bDG0g|u1dV`|tr@jZQR0zgmcL*B&(BLfndD!KUbN4}h`TFsUs_IM$p=(ET_R-Ws%JdwqKAEw7uNMl zAoXh}|CeexQ2&d%e#v6wdo3%bL%LEDr}L@xj()AiwJVEZOjj=`dYIZDv>tCKPiM=% zt{Sh0bb7qSW8`Zl`><+zP8Xf8NQ`_>CEoxEQu)+53p!t|82JuMJ~a+qbUybO`9kH! zS!&u;K2Pa>myaBuvKxlF_n-XS+d5m;11g_-)}yWZ`AahE<=$4lH`C3Y6E8kej7h5NhIQ=r_{PpsY_LG4sUu!%0CP*Wz{ZCzNAKS-%8+GCyQlRQcN3$#=1s91D`+y4cF+<}d$m5~T9^N@uHnuO;7~ zSzf#(pIS~;zV>$VrIRo5_cB};TlI^Se0qL#kYHQ&OIbpW6C~H!Y`5Ri4zgX6!mM8> zJNa@|H;k;hQWB?M#+)C9JV-lK2CC^*%Y&`@xywp^TuPnAcD~SF&c@wxPL_OucJiHU z?qmeXa9wofnDuMEA-NGLL8^Yi(%GtC*E$PbE&(Pt6xw^*bXEoK??q&_%zD*?!qlxERS?Re#<1Ede)0Bw(>;>xERqAr}E8} zPUmYb%eelG%CY*5lcDZ)tBW4iSmLbr->L-3^h%J*7cHI6*PeWC@}4Rg6UH)1W|J95 zQTbFC5+lwlzq3(Y2N9#<`oyT;WQnUF@9Cn(tBN`nWL>}AQa?2!RlkMO>H4YXhf6br zs?Vr$yr8oon{2-pHBMEOR--ZE6mmAyJ-V05`#Ysm`BXEhaauLMQN66Q@$L)zgK8CP P9k)AJ=7-e?^mzXd4;HX+ literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.su new file mode 100644 index 0000000..9efe48e --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.su @@ -0,0 +1,16 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:219:19:HAL_RCC_DeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:312:19:HAL_RCC_OscConfig 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:766:19:HAL_RCC_ClockConfig 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:994:6:HAL_RCC_MCOConfig 56 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1063:10:HAL_RCC_GetSysClockFreq 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1118:10:HAL_RCC_GetHCLKFreq 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1129:10:HAL_RCC_GetPCLK1Freq 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1141:10:HAL_RCC_GetPCLK2Freq 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1154:6:HAL_RCC_GetOscConfig 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1248:6:HAL_RCC_GetClockConfig 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1283:6:HAL_RCC_EnableCSS 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1297:6:HAL_RCC_EnableLSECSS 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1308:6:HAL_RCC_DisableLSECSS 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1318:6:HAL_RCC_NMI_IRQHandler 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1335:13:HAL_RCC_CSSCallback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c:1359:17:RCC_GetSysClockFreqFromPLLSource 32 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.cyclo new file mode 100644 index 0000000..e3ca9d4 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.cyclo @@ -0,0 +1,19 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:123:19:HAL_RCCEx_PeriphCLKConfig 34 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:497:6:HAL_RCCEx_GetPeriphCLKConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:684:10:HAL_RCCEx_GetPeriphCLKFreq 114 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1334:6:HAL_RCCEx_EnableLSECSS 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1344:6:HAL_RCCEx_DisableLSECSS 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1357:6:HAL_RCCEx_EnableLSECSS_IT 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1374:6:HAL_RCCEx_LSECSS_IRQHandler 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1391:13:HAL_RCCEx_LSECSS_Callback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1406:6:HAL_RCCEx_EnableLSCO 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1453:6:HAL_RCCEx_DisableLSCO 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1561:6:HAL_RCCEx_CRSConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1603:6:HAL_RCCEx_CRSSoftwareSynchronizationGenerate 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1613:6:HAL_RCCEx_CRSGetSynchronizationInfo 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1646:10:HAL_RCCEx_CRSWaitSynchronization 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1729:6:HAL_RCCEx_CRS_IRQHandler 12 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1794:13:HAL_RCCEx_CRS_SyncOkCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1805:13:HAL_RCCEx_CRS_SyncWarnCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1816:13:HAL_RCCEx_CRS_ExpectedSyncCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1832:13:HAL_RCCEx_CRS_ErrorCallback 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.d new file mode 100644 index 0000000..aaad30e --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..5a516bb334048cad32e7f64988b6a4b5677dc359 GIT binary patch literal 1152608 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%0DG_M|24=S^`DQx;;ZgKZ{Abtidir> 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

      t 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

      j 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

      M*h%=|>XZmaNqIeMgwtUeNBm{YH@W`fjjLwq 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

      ;d0nYhZiBK!h2^*erX&tw!cs9!Gt$entjFr<4v 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.su new file mode 100644 index 0000000..9ebb074 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.su @@ -0,0 +1,19 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:123:19:HAL_RCCEx_PeriphCLKConfig 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:497:6:HAL_RCCEx_GetPeriphCLKConfig 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:684:10:HAL_RCCEx_GetPeriphCLKFreq 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1334:6:HAL_RCCEx_EnableLSECSS 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1344:6:HAL_RCCEx_DisableLSECSS 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1357:6:HAL_RCCEx_EnableLSECSS_IT 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1374:6:HAL_RCCEx_LSECSS_IRQHandler 8 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1391:13:HAL_RCCEx_LSECSS_Callback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1406:6:HAL_RCCEx_EnableLSCO 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1453:6:HAL_RCCEx_DisableLSCO 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1561:6:HAL_RCCEx_CRSConfig 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1603:6:HAL_RCCEx_CRSSoftwareSynchronizationGenerate 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1613:6:HAL_RCCEx_CRSGetSynchronizationInfo 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1646:10:HAL_RCCEx_CRSWaitSynchronization 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1729:6:HAL_RCCEx_CRS_IRQHandler 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1794:13:HAL_RCCEx_CRS_SyncOkCallback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1805:13:HAL_RCCEx_CRS_SyncWarnCallback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1816:13:HAL_RCCEx_CRS_ExpectedSyncCallback 4 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c:1832:13:HAL_RCCEx_CRS_ErrorCallback 16 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.cyclo new file mode 100644 index 0000000..089ea50 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.cyclo @@ -0,0 +1,121 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:281:19:HAL_TIM_Base_Init 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:341:19:HAL_TIM_Base_DeInit 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:384:13:HAL_TIM_Base_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:399:13:HAL_TIM_Base_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:415:19:HAL_TIM_Base_Start 10 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:454:19:HAL_TIM_Base_Stop 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:474:19:HAL_TIM_Base_Start_IT 10 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:516:19:HAL_TIM_Base_Stop_IT 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:541:19:HAL_TIM_Base_Start_DMA 14 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:610:19:HAL_TIM_Base_Stop_DMA 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:665:19:HAL_TIM_OC_Init 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:725:19:HAL_TIM_OC_DeInit 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:768:13:HAL_TIM_OC_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:783:13:HAL_TIM_OC_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:806:19:HAL_TIM_OC_Start 26 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:862:19:HAL_TIM_OC_Stop 16 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:897:19:HAL_TIM_OC_Start_IT 31 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:990:19:HAL_TIM_OC_Stop_IT 21 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1067:19:HAL_TIM_OC_Start_DMA 43 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1231:19:HAL_TIM_OC_Stop_DMA 21 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1334:19:HAL_TIM_PWM_Init 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1394:19:HAL_TIM_PWM_DeInit 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1437:13:HAL_TIM_PWM_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1452:13:HAL_TIM_PWM_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1475:19:HAL_TIM_PWM_Start 26 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1531:19:HAL_TIM_PWM_Stop 16 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1566:19:HAL_TIM_PWM_Start_IT 31 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1659:19:HAL_TIM_PWM_Stop_IT 21 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1736:19:HAL_TIM_PWM_Start_DMA 43 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:1899:19:HAL_TIM_PWM_Stop_DMA 21 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2002:19:HAL_TIM_IC_Init 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2062:19:HAL_TIM_IC_DeInit 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2105:13:HAL_TIM_IC_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2120:13:HAL_TIM_IC_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2141:19:HAL_TIM_IC_Start 27 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2193:19:HAL_TIM_IC_Stop 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2223:19:HAL_TIM_IC_Start_IT 32 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2315:19:HAL_TIM_IC_Stop_IT 16 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2387:19:HAL_TIM_IC_Start_DMA 39 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2546:19:HAL_TIM_IC_Stop_DMA 16 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2651:19:HAL_TIM_OnePulse_Init 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2720:19:HAL_TIM_OnePulse_DeInit 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2765:13:HAL_TIM_OnePulse_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2780:13:HAL_TIM_OnePulse_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2800:19:HAL_TIM_OnePulse_Start 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2857:19:HAL_TIM_OnePulse_Stop 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2900:19:HAL_TIM_OnePulse_Start_IT 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:2963:19:HAL_TIM_OnePulse_Stop_IT 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3042:19:HAL_TIM_Encoder_Init 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3157:19:HAL_TIM_Encoder_DeInit 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3202:13:HAL_TIM_Encoder_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3217:13:HAL_TIM_Encoder_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3237:19:HAL_TIM_Encoder_Start 13 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3331:19:HAL_TIM_Encoder_Stop 15 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3391:19:HAL_TIM_Encoder_Start_IT 13 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3491:19:HAL_TIM_Encoder_Stop_IT 15 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3556:19:HAL_TIM_Encoder_Start_DMA 32 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3769:19:HAL_TIM_Encoder_Stop_DMA 15 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:3846:6:HAL_TIM_IRQHandler 32 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4132:19:HAL_TIM_OC_ConfigChannel 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4231:19:HAL_TIM_IC_ConfigChannel 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4332:19:HAL_TIM_PWM_ConfigChannel 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4480:19:HAL_TIM_OnePulse_ConfigChannel 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4637:19:HAL_TIM_DMABurst_WriteStart 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4699:19:HAL_TIM_DMABurst_MultiWriteStart 25 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4883:19:HAL_TIM_DMABurst_WriteStop 14 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:4993:19:HAL_TIM_DMABurst_ReadStart 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5053:19:HAL_TIM_DMABurst_MultiReadStart 25 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5237:19:HAL_TIM_DMABurst_ReadStop 14 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5321:19:HAL_TIM_GenerateEvent 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5360:19:HAL_TIM_ConfigOCrefClear 46 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5562:19:HAL_TIM_ConfigClockSource 30 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5730:19:HAL_TIM_ConfigTI1Input 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5762:19:HAL_TIM_SlaveConfigSynchro 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5802:19:HAL_TIM_SlaveConfigSynchro_IT 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5845:10:HAL_TIM_ReadCapturedValue 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5933:13:HAL_TIM_PeriodElapsedCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5948:13:HAL_TIM_PeriodElapsedHalfCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5963:13:HAL_TIM_OC_DelayElapsedCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5978:13:HAL_TIM_IC_CaptureCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:5993:13:HAL_TIM_IC_CaptureHalfCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6008:13:HAL_TIM_PWM_PulseFinishedCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6023:13:HAL_TIM_PWM_PulseFinishedHalfCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6038:13:HAL_TIM_TriggerCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6053:13:HAL_TIM_TriggerHalfCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6068:13:HAL_TIM_ErrorCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6670:22:HAL_TIM_Base_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6680:22:HAL_TIM_OC_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6690:22:HAL_TIM_PWM_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6700:22:HAL_TIM_IC_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6710:22:HAL_TIM_OnePulse_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6720:22:HAL_TIM_Encoder_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6730:23:HAL_TIM_GetActiveChannel 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6748:29:HAL_TIM_GetChannelState 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6765:30:HAL_TIM_DMABurstState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6790:6:TIM_DMAError 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6833:13:TIM_DMADelayPulseCplt 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6892:6:TIM_DMADelayPulseHalfCplt 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6931:6:TIM_DMACaptureCplt 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:6994:6:TIM_DMACaptureHalfCplt 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7033:13:TIM_DMAPeriodElapsedCplt 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7054:13:TIM_DMAPeriodElapsedHalfCplt 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7070:13:TIM_DMATriggerCplt 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7091:13:TIM_DMATriggerHalfCplt 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7108:6:TIM_Base_SetConfig 20 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7163:13:TIM_OC1_SetConfig 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7239:6:TIM_OC2_SetConfig 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7315:13:TIM_OC3_SetConfig 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7390:13:TIM_OC4_SetConfig 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7468:13:TIM_OC5_SetConfig 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7522:13:TIM_OC6_SetConfig 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7577:26:TIM_SlaveTimer_SetConfig 27 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7726:6:TIM_TI1_SetConfig 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7773:13:TIM_TI1_ConfigInputStage 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7816:13:TIM_TI2_SetConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7856:13:TIM_TI2_ConfigInputStage 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7899:13:TIM_TI3_SetConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:7947:13:TIM_TI4_SetConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:8001:13:TIM_ITRx_SetConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:8031:6:TIM_ETR_SetConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c:8063:6:TIM_CCxChannelCmd 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.d new file mode 100644 index 0000000..2fd0de7 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o new file mode 100644 index 0000000000000000000000000000000000000000..37b33e2a49daa568952f2309010a09f562278122 GIT binary patch literal 1233976 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

      u2E@do=J@0k0Jg+VCwkZdz$vxmv_ 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⁢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≺ZPNJSEwq)`_+;_JC=zHrIs}|d2y*>!AR;Dt-ESiDAgYlKXUP3dF3$qty zpvI4V>7$6U_AI1uQi6OEXAG|9$Hzvac(WFb-H)4sD#<$%$ldBHBb0g=_`JQukLwhKJ!UZqGwLgblytl9r+g2Kz{zq%~fzFjeRBT8Zp!@msj!uUV(Kbm5moQ4)@|p(V>G` zwWnnH389|XGI|sS#R(XFau=afhOh#KJYc4~IwPGqh}4H6v_x45K(GvBOfxZD$xP!3 zH^#$4#{DD5HZ_bK*a$Y@4LUD@krvg6_4%qL5BHL~h%|#*&<>&hau1qR*sHKFK;xX2FJ|H_ABOrA z8Vkf&9)x-{hlen_!b(Es1a^_@IzA_E;;M^b&w;ttR~8-8F2+ufGaFw(HUU;oCV0b{ zidB>7O!a{8Q`h3qE0EKlZxBdJPIT^R@dim9i&TZePAX$b;n|Y(5>^u_;T0KZn8`7! zl@I9%IM7tm8uS(h%*{gbin*~0u9>Z&GUk22W%-Qe07!53(mE zBuVj1nirSP<)fYIZ0)((31fk@RLtm-2Z~vZHx#KWt%0S2M4x&HT2LK)K@Ul?k?H_e zywl8(pQay-w2P=YvNPbA`^HUdUpna6pGc0EnqZ&|t1_1b1GYLFZ;&L|YR`^$qf|sn zUiE=siDBj0SK(3!AO~11LgonI6o!eXX~gKUBLq&*5+tN?qqMz3Qbb6!a#*sAHEr5?gC(%w zgBqu>^ire+h)^LcQLI~|Y5GLm2Y<>PXj%t|Ru_ShvXw4sGcZ#bLlP!fFAjT)STUo) zAhDGP8>8x`;tAFs$XU^y#kzS+OE;E9fw^&8DkoP6hLRW;Ssh>-Bu>$n99i+K)gZ)$ z$V3UQCKsER1*Xzszqu3*%AJ_YRamefnFPjA_!SL}k?b@Hi^`CnN!u|-AXtvY1@QnQ zVUi}vuafh*DNZ&OMwg+B#J+jd4g6*D!Hj_KyPP0XO+8h4U2 zqeyxe;@lTSj13JA%(pHE#im_PS2n2d*i&Rd1Z2M-3(?jj+952K$oQdPU*eB_**Y$lg`FB_L@E-PSUUD`~xC-D(~i#?MidG+w|W4bvKbNna-|a_|SdmZq`f zS4xHfEO4JG1(7z!lMoxTZgN)Q5_n$7k`IRMl{4+HCO;&U>4v7JF+KlZeO~z<74)T(n7i1Z_HVdAPsv0Qi_0m&B${UN z6uD`ng^+_X*f%L|#gfIi$1KDcIB6g*h3OU!cv8P95+_(jHjc8IKqbsYOoYkUZ1~rF zVUA01%Y{oOGGDkRgo1H~fy&~Nc*6iby`^a}8=t$hKU)K7&vn6)-G@0aMN#fVl#jtr z$9&96Gm^5o64UHx92#r632KfJqGrso48(b!uhb09TN{+<>t){RQ58~$Pd@S#f1(@U=rex4eLRF-^cp-cHz4V@n z;H4_Y9gdSds-QktCnq73D@Zd#O_>Lwe$@!*jnq};JEMs}L#D#Y?Ssx=UFNT@fqBs% z$Y-V)wI(7An1l9G2~RxKV2&=3BW^QM5HBjMvP$AENa98ejZ|{vuI-j8YB2+WGbj!+RJgO)^@37!H+I0|LoFeNF%Zi7LW zUHVqYmh2?>2IT<;q$H9{_cV5C zpbnZnsl5>wwjI$7S~*a2>af4!x2chYjVf0(ENfoSUvDYwS4k<{0*@L6chQR*cB_P) zk(|#9)s%oJQ~-;Qm=?vK$Tldx64PQZGvab`#>lBo@|nRpjCE|LrdgVDRfQ^?Nhyr7 zDcG zADEfH1Tv0vs>WG%qdAuOfOu5eO$zUjPx*_nFxV)23aX1ahK^e^048TM)Cm0+S7dl& z!`LP=2Gft2K|&h@gA8+4#7$tBv7}vvU5aXX=xfaI5kpyHavzfvh-%2lY0x45Fk^Gb z7Yh-~U)qmkr(Du^&gcmyjmSlsZ+fE&m?eZyCf7|;7K1QBBu5b;jh#(~Bi`#TO>`TQ z(jA}6<6sO=iuhyasx%am(okGU))$u8SZj|<=0 z7o-o;mNM2hDPlB%Fa@#cDy8L$sfZEpow!P@dE88_XVI>}ijyjCsLKI3>`1g|A#R8^ zmDlU90eNwI3&_R76vm(j$+?UjaVVBqh+&0-QA?vSa7o!*iKr#^0~y!Jk>-xEKws39 zWl~`LiYYB=1B(O-%)=hjeNFOTV3L0_8PN}ImNcH|>uCCD$WG?-#6f%h5pp6oYr(F1>15ifdzk_#{(&G47=`2lDeIKN=*MANXAkSm8S z6oS-QJhZ7A(RbK{Ji;;!WK@cXQgEbT7d9HjJ0_V}$2>k%n>b%wfG{GFI7A($(SVaq zhfq+Y6Q<-bjf2mMhM}XP3{j%dlcY83x+8$_a-L;WLf8vv8_vBUdi{W^)m9@Mwj@_J z$zkLiL{8BsvbQktffzs=C^fntOW<)g1sgNoE#aHXuvqD*BOh?`8&H00fFy$t6OZq&F!7v>lR273^1oHFD#1w7|GbSu!Sv=WsOa!rB`(QDg%T;KE zASLqd!n2P>6iLeDDh92n@j#6-jeVx8KSoB$z(Brh>B6fF($NVDns+89@ZiyArA;dT zpcyPYtamePAJLew!N8~nv9HYM&UYFap?VM!nUq#t2WwBs(6J5Y4{rpAfv}g5B87(l z#dJdEBrTuB+C-6=d{tz+GW0#X5`u9Ij|L@0q4=SZ1{sh~B0!Pa>dGoQyc2@C*p+W; zyWlIx#JHQIwK`xmV6g=~fIY;~CUr1(}`f({f{6q_f~ zASy|2P2(Jw$w;$IMJ+=VFyn3GN5z5k)UFx@4)rCmLYM zqbMwJ(vY7Fbipuu%z%Z!81e@Zb^$Le4-}F_K^p8Kq8OWCEgx%xmhSb1LQym==g}~5 ziF?oz8;UI`gEeB5#hB~Z9^{$l{fjrl>|kv3n6cj&%XpH2Odd;Pakv={@e#;Ok`1ug zIx2UOfhq#`6iZ%``5orZ^nAfP14_!vwq zaj+sUCXiuJ4oO8MPavG9%$2aRt$Ey^#C^u@7HNV{wJf5_H=?>(K(ee0x3MlPiKZI4 zkHx~n5r`dDa}`LNFCAP9l(-5o?NmfYjJI^eqlFR_>18T}aP*P2wWhK*1RhvJ;koRW zjeWE?2@g31&9af2VjLBP`62}zna797_YbAZKA<4)0HNTNYm2y;Ct&xFOSgSM=?3#g z{G3qi9fE2(Nyg#1+-X4=QFC+gH)7cOou_qh(kBUIrpE58E~=xH6ao0i<1v?E>Cz;n~=5WcOqr zA=zzBERFr2n9KMPCYDSAU8DQ@_|`s8WbYe;EQtp;lYKAncLZ9gz|~ znVgWzZIJYl=-!4>1ioQ}fTk+IH4R%0$dKvKgI-4SQ(N9A0^eB=#V_z zPs};{xG7|Ao7IAGz@GkZXOFsh33%( zdk)Q!>3A!K<1In_O30P7N9O!~@Ml4uf}^V@+%Hm(I38N~9HngZA!g6)D%lf>y{0)c zDs9sG;<3gPHpZA&3T`Q2E~gs%5%Ox3gT_KJt=Wtnkr)=Tg1AS67yJZyxiIwfHvX`Jlv)tnCl2_kHX9LAAz>QtdY(2X!fV2FsDK!vx| z3|x$*FhTr0*SAB?Wt^Q2<%K>?@>bht#)aS{MPXXtNd$^Bv}ojF>9=7TM^Y_7F3 zo6aV;F=XykDk6*lP?)3oGJQy?pHxI}d0LNAsgTWf)&KzM*rRcx=tj9%aOMI+Ivh(B z&DIxj5PW`sgWGuh(7aO_tFZxxh!JsS>{3KU^STRosl$<)`YMoq>Z{49TvdoJxI}_8 zco&jL)JrG@9Ua`ta_2$p5(sFE2)u*-v%eBNQ$`q+d*q<_Feo>|+hSo*((=Shl?FlX zA`Xmik+#F~V!Flo^k|MbCm3Qk5QNKFzh`P?#vMhkE-*5AImb1{Cn`hrMj!@r z79)wfM9Uf~z8imH8^!91mw61=vUlQ~BLs!RhfCldHiPxel~cmOV)%ol5`Vb|8MSz> z=&+Sfp1&^%)K|+11mS~oK+05w`|@xBL~_1yG6EE+7$HP*IOGTS8g=N{sMTg=CdQ0b z9E(SmV^RztGYlU!a(lE4l+TuKp?Mw9z0g05lM3JT3VYFKfcu`Qe` z8?{Vv5}^;}AiF8UjA+MFXoR&uyn_Jt8AB{2tDmv{Wh_Dn!QR-07FjD*0bUYp5u`Iw zVQ0@k1GP(TfDpXwRCn+P9nIg(%!Q$XG#hApHD{ob9 zAr|T8j@nP-^?6G^BSGN=M%Z|&JGe+~Cze2A+r+(Tr}^ovC@BCXIiDLK#A&OMCgW`w z-PAm$aZp{u@a9ITti!WKr#OuDK(Z5WbWbT{H-A-EV*E8&4e^^7H}jZ091=>DpW~h9 z0Yekh4-%aN37K*T$T$>#PKwMIPDoagN6-Q*Z6YOXbmJgufz<~?cOZ+kwSWW}JrWlm z*MfLYgupmc$H&M_?g6b~6O9xKFM;aQK~ z=wk$tnm78mOj9W>a#MKiYFZ>Li9CP|EEY2t>?-A#SV~uxE6Bx^QtB!sZG&BZ5TW7Y zLL^OP*j;THtK?y4TGzCiC@cbGTLw+R@?aib#j#j69|vn|p!2b%C6t`-wYUMu^2Osuyp$Y!VRDy8B8HdW9Vv%b1jn%rPk;0~x*rRaa8vd*&2eFHB3?|< zg!qH&bSf*J38L?GP6Q(tbM1hh$Ge31laF)Z&9vwmoQPHu&MUzp53v)lq7D_Ae@0Jv z5m`rb-6z~jM$pQr_wqg*nAC%CR>4?9=f~lj@HySa39z{6tLni1gRiOsWJZ+SDuifq z60K?Av0~{V7kBI(S1iJ&P>P|B5!*0Wek|Nl($2(OgQAsH*McDgeH2X*$sN(qal}wM zCmNSbiB6salO(aK0Ck)AFRKsigAp?Fx* zpm{`TGKWq}y+cxEmz1w~H-o>^rXbnHxP+$*janR!v*z)rU^xH@+`Z=WRB(V^l=>O5 zqb9wJeL|f}RR!h%Ka@T59@6;BT2dA#aiE2pV_Ga9yLEB@=n(vZgT$v0v^r)V@IXGZ z+6RmjUW~L}z^@TH;u}e>ybv@LuV-Y#@KMntyVkt4(IpK{4G0Y~t}87E-2kbL1_>BT zI4PUwiR-$fBo=xQ4u)H2SB4E^xpAJc=D`_Y0E&er$1U{4Ecm*7NiKLJEvC&7V}Ye4 z&bUJymS&8NJ6?C3aR(nfREAw6A(lltiAm?jf5eK6VyQ0Ua7i;UFTnVJoH+*(Au20gJ>VB>6xnVhPBHS0XVE7MFlp<6!fu=T2>uCy zr74)J3?+%m6|u;Yt`t~eI7OfcwM4YhPGT;vNqAu~tKP!u8m3vXPwt&XEQ=bBtaF#T z40kimK0;o9_zB|eBSsQ86w?!2(R($3auI7035#XlWw~Kmz@X(Z>$#*^5D=p_M2r1A znhgUaHW}mzx^PL}G!~x#vBR7=S}eWJaIvd$6nOPwQ)Z*gIVhK|X18$@qk^wQx6>*Sf+1{PGx7n-lseJSp!1Lxx? z4=%Pgh>5h!gJC5XbfX|H-laMPc%>Rt+Mt`b{FmtnXmpshyCO1snlwj>sbExiNf@1! zMPi*cRkp%-%0XeH7-Mu3gH;f>wXJ$8flgf@ZQziGG0xNTd3*BBFFstB5Fgb>vk=W- zbXabQMK>S~#!k`zEP9U@Ctjr;*{V579f@)o7*l^EWCcfAWMo+!Q!tJjn6V+`d0`0- zM-WI9gC@u)Z83{{7mo}KjZ1H(80rv-=rI43lm}gI&~UtaUHIULoWw+i6Bh^QqXR*8XqHY(A}F1=kTHb&C>BMR zU0^`BWe=Flr`bYZRtWQ)o~-Lo&56RZI2kObM{Aq6!(pQ2UNAXb$`ZU8cyS|+ z4xGXVl@V#+owU7-lX`)A!)ZoWJ$fol8&X0tTU6+3RYWkuZ4gB0uM}IP9TB608zYMf zakz`_i{uL@TzOr(bt≺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⪻LzjhZJq{PqX<%hW;WF9V7HIbQUB&D{yIp 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

      MpX|HSbc6I-f8tPWBHk=V5}0ECgUY78L_ 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

      ?21Eh3eHmVIgFLWJMcJO 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%0DDVoSDXSN7&Wj^KDs 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�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

      0l{w6Z^y9k1 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%0A-kDqAoppS~=0Sfk4NzSkEP>KZRy+Wo2+ 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

      >`GR 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 OoyDTd)8->J-TwuZ%~$OJ literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.su new file mode 100644 index 0000000..07422f4 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.su @@ -0,0 +1,69 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:157:19:HAL_TIMEx_HallSensor_Init 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:259:19:HAL_TIMEx_HallSensor_DeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:304:13:HAL_TIMEx_HallSensor_MspInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:319:13:HAL_TIMEx_HallSensor_MspDeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:334:19:HAL_TIMEx_HallSensor_Start 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:388:19:HAL_TIMEx_HallSensor_Stop 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:416:19:HAL_TIMEx_HallSensor_Start_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:473:19:HAL_TIMEx_HallSensor_Stop_IT 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:506:19:HAL_TIMEx_HallSensor_Start_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:582:19:HAL_TIMEx_HallSensor_Stop_DMA 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:645:19:HAL_TIMEx_OCN_Start 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:697:19:HAL_TIMEx_OCN_Stop 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:730:19:HAL_TIMEx_OCN_Start_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:825:19:HAL_TIMEx_OCN_Stop_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:908:19:HAL_TIMEx_OCN_Start_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1068:19:HAL_TIMEx_OCN_Stop_DMA 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1167:19:HAL_TIMEx_PWMN_Start 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1218:19:HAL_TIMEx_PWMN_Stop 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1251:19:HAL_TIMEx_PWMN_Start_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1345:19:HAL_TIMEx_PWMN_Stop_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1428:19:HAL_TIMEx_PWMN_Start_DMA 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1588:19:HAL_TIMEx_PWMN_Stop_DMA 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1687:19:HAL_TIMEx_OnePulseN_Start 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1736:19:HAL_TIMEx_OnePulseN_Stop 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1775:19:HAL_TIMEx_OnePulseN_Start_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1830:19:HAL_TIMEx_OnePulseN_Stop_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:1924:19:HAL_TIMEx_ConfigCommutEvent 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2015:19:HAL_TIMEx_ConfigCommutEvent_IT 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2107:19:HAL_TIMEx_ConfigCommutEvent_DMA 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2180:19:HAL_TIMEx_MasterConfigSynchronization 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2253:19:HAL_TIMEx_ConfigBreakDeadTime 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2321:19:HAL_TIMEx_ConfigBreakInput 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2588:19:HAL_TIMEx_RemapConfig 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2762:20:HAL_TIMEx_TISelection 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2817:19:HAL_TIMEx_GroupChannel5 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2855:19:HAL_TIMEx_DisarmBreakInput 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2909:19:HAL_TIMEx_ReArmBreakInput 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:2992:19:HAL_TIMEx_DitheringEnable 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3016:19:HAL_TIMEx_DitheringDisable 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3034:19:HAL_TIMEx_OC_ConfigPulseOnCompare 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3079:19:HAL_TIMEx_ConfigSlaveModePreload 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3094:19:HAL_TIMEx_EnableSlaveModePreload 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3108:19:HAL_TIMEx_DisableSlaveModePreload 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3122:19:HAL_TIMEx_EnableDeadTimePreload 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3136:19:HAL_TIMEx_DisableDeadTimePreload 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3152:19:HAL_TIMEx_ConfigDeadTime 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3169:19:HAL_TIMEx_ConfigAsymmetricalDeadTime 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3184:19:HAL_TIMEx_EnableAsymmetricalDeadTime 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3198:19:HAL_TIMEx_DisableAsymmetricalDeadTime 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3216:19:HAL_TIMEx_ConfigEncoderIndex 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3255:19:HAL_TIMEx_EnableEncoderIndex 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3269:19:HAL_TIMEx_DisableEncoderIndex 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3283:19:HAL_TIMEx_EnableEncoderFirstIndex 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3297:19:HAL_TIMEx_DisableEncoderFirstIndex 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3331:13:HAL_TIMEx_CommutCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3345:13:HAL_TIMEx_CommutHalfCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3360:13:HAL_TIMEx_BreakCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3375:13:HAL_TIMEx_Break2Callback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3390:13:HAL_TIMEx_EncoderIndexCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3405:13:HAL_TIMEx_DirectionChangeCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3420:13:HAL_TIMEx_IndexErrorCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3435:13:HAL_TIMEx_TransitionErrorCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3469:22:HAL_TIMEx_HallSensor_GetState 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3485:29:HAL_TIMEx_GetChannelNState 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3514:6:TIMEx_DMACommutationCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3533:6:TIMEx_DMACommutationHalfCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3553:13:TIM_DMADelayPulseNCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3612:13:TIM_DMAErrorCCxN 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c:3663:13:TIM_CCxNChannelCmd 32 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.cyclo new file mode 100644 index 0000000..f737209 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.cyclo @@ -0,0 +1,70 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:307:19:HAL_UART_Init 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:382:19:HAL_HalfDuplex_Init 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:457:19:HAL_LIN_Init 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:556:19:HAL_MultiProcessor_Init 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:632:19:HAL_UART_DeInit 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:679:13:HAL_UART_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:694:13:HAL_UART_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1117:19:HAL_UART_Transmit 10 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1207:19:HAL_UART_Receive 15 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1291:19:HAL_UART_Transmit_IT 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1359:19:HAL_UART_Receive_IT 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1400:19:HAL_UART_Transmit_DMA 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1470:19:HAL_UART_Receive_DMA 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1506:19:HAL_UART_DMAPause 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1536:19:HAL_UART_DMAResume 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1567:19:HAL_UART_DMAStop 13 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1642:19:HAL_UART_Abort 16 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1745:19:HAL_UART_AbortTransmit 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1804:19:HAL_UART_AbortReceive 10 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1872:19:HAL_UART_Abort_IT 19 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2025:19:HAL_UART_AbortTransmit_IT 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2116:19:HAL_UART_AbortReceive_IT 9 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2209:6:HAL_UART_IRQHandler 61 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2561:13:HAL_UART_TxCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2576:13:HAL_UART_TxHalfCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2591:13:HAL_UART_RxCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2606:13:HAL_UART_RxHalfCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2621:13:HAL_UART_ErrorCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2636:13:HAL_UART_AbortCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2651:13:HAL_UART_AbortTransmitCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2666:13:HAL_UART_AbortReceiveCpltCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2683:13:HAL_UARTEx_RxEventCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2731:6:HAL_UART_ReceiverTimeout_Config 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2746:19:HAL_UART_EnableReceiverTimeout 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2784:19:HAL_UART_DisableReceiverTimeout 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2822:19:HAL_MultiProcessor_EnableMuteMode 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2842:19:HAL_MultiProcessor_DisableMuteMode 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2862:6:HAL_MultiProcessor_EnterMuteMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2872:19:HAL_HalfDuplex_EnableTransmitter 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2895:19:HAL_HalfDuplex_EnableReceiver 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2919:19:HAL_LIN_SendBreak 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2964:23:HAL_UART_GetState 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2980:10:HAL_UART_GetError 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3026:19:UART_SetConfig 60 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3243:6:UART_AdvFeatureConfig 10 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3317:19:UART_CheckIdleState 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3386:19:UART_WaitOnFlagUntilTimeout 10 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3454:19:UART_Start_Receive_IT 20 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3526:19:UART_Start_Receive_DMA 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3583:13:UART_EndTxTransfer 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3599:13:UART_EndRxTransfer 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3625:13:UART_DMATransmitCplt 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3659:13:UART_DMATxHalfCplt 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3677:13:UART_DMAReceiveCplt 8 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3738:13:UART_DMARxHalfCplt 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3776:13:UART_DMAError 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3816:13:UART_DMAAbortOnError 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3838:13:UART_DMATxAbortCallback 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3893:13:UART_DMARxAbortCallback 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3945:13:UART_DMATxOnlyAbortCallback 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3978:13:UART_DMARxOnlyAbortCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4011:13:UART_TxISR_8BIT 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4040:13:UART_TxISR_16BIT 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4072:13:UART_TxISR_8BIT_FIFOEN 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4112:13:UART_TxISR_16BIT_FIFOEN 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4153:13:UART_EndTransmit_IT 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4178:13:UART_RxISR_8BIT 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4269:13:UART_RxISR_16BIT 11 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4362:13:UART_RxISR_8BIT_FIFOEN 25 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4525:13:UART_RxISR_16BIT_FIFOEN 25 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.d new file mode 100644 index 0000000..e6f8ddf --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o new file mode 100644 index 0000000000000000000000000000000000000000..fe997921b40e67dca968ce7dec96c5feae238431 GIT binary patch literal 1211148 zcmdSC2YggT_cuOw@4dTs@1{Wlq#y)BlOTqo0uhOTp$Z77NDYLN&{b3<3JW42q7p&D z5ETUh73nphi6|CCLKhGMB2qO-fWV@@-!n6JOIUb({Qo}x-}^>)r=2<9Gv}NscV_l7 z?xFUnilQ*WT%%jhnsi>Ej54(hm!99g@zEr+KCx8|IiRX;k_xNl>sdt+(& z+JfW%oO}tlm9MIlPsrQ6$oMbhZH$%)jrIk`;mnnnSx3@ucckV}$u1?KE8_oiZMh5F ze7a`+g6mq?qIt1f+M-8BLQ%XzHJfCZEkvE$+hZd9r6kRjIwsBYlt;F)N1?~t66A5O zDdAq@kzV5gLTmCm<5ziEg1KpXH2Y} zQq%?t<1!M8Szn5cL0&A+6Zpcnh04jGGdhN;=jDcc?qSfv|?R*9fmUgOg>rnd8Kz|+e zgiNHX-Ux+`!laILgeiagU3OkcTKrw$^mkQ?)k16zY!K?zq*W4!l5w1-Jf~TC(cQXX3D%ZMFtvu~nT4f0t^_^~IW$MBUGS)bZK6?Sn*jjIUnY@0L427a{=QfrI` z`Tg<-cR9_PW%bJ%+@hGN`RO7*Z^)SRZ*pdfBDd<{JmL96lKWlndo8ocVB(qIHy^#?6nd17$J&+11sv8h>ugGuH=Z(X0^ z?bEz3)#7~#OE5P}xmm6$kZVvWxzcW9KN<2Rt6=Q&s5D)ygjFhUeysbuq zQaVtD4vYq41~=*FDP^5syw>ry+s`sLxBveVyR3Sb&lY0!;2B8aw4{85ap)5&Jkp(5 zvA{FDN@5JwaJ(1v&mYQrLI13w2`JCvw9v`$F$0nZG#)l)81DuBJwvG%SbS2{l*En& z`NOLww&!_S=~+X#-=`-JNho$doy@t!rX~+h?teY~+K?tgx!hlRpZ!l7AdOZ{>?&FT--6UYi{3@j`|F{_ztBUAf1!sK z|40u*eR^0u-A@mmbm=1qeLm8-z%!&u;=MsF1r2dp_{fmpmZIKV4*EDeB0AOTpP>Qi z_(UDNMSoQjS`}I=Bq0HL*Zl?gL#ie=mJ*bMuWT&H}|lg(cZ(umBeV?Zhvn|D2hji{X}{@%Eov@M)}xeYQ)!h1EQAY`H%Cc2=t>Z6qZ4Z|s)@DQJE47++J< z3XP-+=Y3SH4IEsuoJ`7ZUKC-==}R#yjg=|VV)hWB|LUCP7V-?Y^o*Ha&j_^B7S+?A zxWY4r-pWo!g8<85p3diW;1xrITgKNnE!zh63G_mT8UB4 zXmEW*-hiwD&kxJv>w)9}$-`J;pw9C#yHjnl9F11_apsucAjjbmgWBe#tI!6@`4}X|@-kjZvJ%Z6l-~=q8fZBUr}lBXOSUQtD+rQ{ ze1flVV#II0!g$i3cM-io23kyL+uw=Sb{`P&rkZ`Lx{z50J^1Wb|o{x>6FB)4Qd{3dXAtH<-_3>lNLdqhO)>{fUB zje0_>VuTagh`p)wKaGq&EsF7xZ)G$0>i;)KNxAy{FW2L;pL*A2HMkW5egA&x``i*G z?s&3AeW`648(|B+<`=X2?M6tU@u*wYC3{+$%V23lemz+$Zu_`WO zdr2XW%|Yx)(t(nb@hMlr)yS0XB?pl@h;?UN0dkYnqIf)gm)ms!^dhb!{|MslF7&*b zmC*wuAS+@oQEYU^>{i!Li2AH3VLT|~UuzecLc8tY5dSKVv!e1SA>Imjml3@2oPj+y z@Qce(_*!RA$@C;VN!YS7XdDpqHc3zTR9Dd3{OGj+dMzlu=0|S}pf^BYp>$j0dvd7- zmf=^|@UL6U(ph3zS=Wtt2yaWrV%CqIu0(6%Wet%gy$zh;({f~KWT|C`)UwJ$(y^$& zy<~5aHS_TK1oii#PA#;et30ppFHe;t&i0brqyzZSD8IdAHsZ6BXr$j>vWxRG8XPFu z6~Db?5kB)#IzQq7;`Cgwy<{%ZbKxC7f|nTit>+W$B4IQN><6?`qa6Q!5H6ojTrzZc zpPLxp`8aZ%Z9a5dVJsqE!I2LBFvj6&BBf}g^qL5?j}>JiMLsD~{l-&EBe-?M>`59) zDLUvD62xIAX<^Bxq_y}^?WM?HS<;iz@j1=iMGKLpxL9wK%yHl+JU*ppGD@k>OhN0X zNWD!&d}0#q6KpS8$MqJQdH}KQB{T6MkDU&^&6IkZ2I^@*J|u0BH7IKYpU(#+kD%wN z?Io+cx?csoyW>5Bu8qJ-hu6;^l#gC^T-FU(8F9NU^VVG!e|=znsg)6}aQw#!YKtde zl@tN|#ojh7PRbuJrqn8lR#!gTW@VtyVUC6dy&n_&mqstCCRFJOw^3`aa~xl6OviGv8<@Ty%srS!yVudml3dH!@7KX$=BYNAa>KL z%~~gxT2b+}`Sy}+UQKR`zj%YciGr}Lcfm)O6>En#3)cwKcKiAoAD$jYR!Sy zG(qh-d}O{y)=ELCQ`VxmD#wZ%5}#^Y~~rH#J_*ISG_E4M7_|H zM!gZ|32E0e@-re^M5jjiX~{yT^_oAAyUr}@IE}dA%y@E1?WC+s+?vRY%ZzQ2mDz)T zAI^+y;pvAw+ynR&E5m5jyp*AI6@F-Bg#Q$6*2b+ zpVVa~|1inll>F_IzfFdOQUNF_MT^|C&{`w0p|r$C8)JXs^Q8>GlOg5NXAeI7+`nIy z!jN`Z{VElTRBR!hOj>01E01~lQs&=3&>X@VDJd+%mcm*h-Ws3w_*BDftAwn6F`fs;8Dcrx`8I=}tny^K|Nr)Xu3rQd3gf@Y5RN5SdD2F6=PQ*h8VavbLKv z*<|pcw68ITQj501g5vhlpaP-UT3#QI!P7?-eD1`j89sN*kmB^Y4Eob0x<}K` z*Pa^xs6ACMdi59_>))C`g15yf+oGc_xT67?52e|p#95gN&OHXli!cKrUtQxnXV5Iz zDmpa@BlX79%ia+CPUM@`+7fHr!7AoRhMr8bB#pNWYqXpploB_;h=O(v{3z;WWgHqD zNI`oHJ_si43(UhIAZD3T%vvk%D;A3(uC5j#}KVNuY^ zJl5M5cNw5a3R)NT7)t(Z7FccFqM)sQ<%Hq(VsLFh&O=^`fHlnO*|>GZ?@00|aP9+q ze~O-f4b@1zyI@4o*cP}YHH=loxKYMhnX$yGT*827FyJQh+E}R!yZQOcx4yGhDr!PH zX81V#rxt0dme?i$&8_&*XkRTZBjCvmPkbKVNmcswQhVWqMmGckpU-f9={u5^XsyM4WruKDX6<%~@hv%HPb`g$ zwmtdSM^_5egbsxsuMSw^eY^5A+=&hGosw9O-+eiZrw+131l~elR`bYb z1SR24&I$C`lcJfY46h+}qO3a92D)V;)=O$aIInXk6Dy*Wyo{XYA)A#1mT-6l*67dY zG@rYRcFx63Lb~@f4=W+xeIC#c5VxEBZH3tM=56*^?ef1x z)v9fGem5%>A$Y>7vD|LSIA!AJDcEtL+Z1$;MVPc(gxG+*0qcid=jTyb1JJ*4jwK|b zGbXA>eX9j_TRp@TZNM2;|E&Jc56$BzQOW(2`JI+j*l!NM>*y~N?j3QN61+0SaGCN0 zZjIqAlk>(*J|Zihn zrQpn6~{Kx?9~#p|N91 zJlpL5borKi!ouhraEmHnbpD68sKhzB-w1uvO{%~%TThz*eJb2A=}+>*T0?LBoNS$$ z(D>bb5Zm0<>#J_>&7wJjJzNvkKJb0GPb5w(Jwv$lN}b8(qsLNy-jJJj4u3&iSjTUd zkZwF>@fwhH$jv*1rwVL^B|~VoV4JObJT#}!JPpax#7NFIi&5FVI@edmZx~ooKZ%=i zBsK1|4llLu3(w9UNV&18`NMDC^Mz-l40lWe&cqemEfe`;hL7o=T!qu6rBahnN{d_CRoAJeV);oB#lKu=M#ii)l1RaOCe5+B5YZiG)s$mY;$x_>4j}e z%joYZXdAzUAVyE@63cOP4(>1{LIUa2Jfxe?*61rv-mMvs&nviPb=Bl#<}N((=qeS$tzOq)OBv%i$3uNsWIX37wP*e7fcI@9?eGT4&wF&*DmVsVuIy z*Qn4s)ul6Be;z)`N@>K>hj+)2Jf{l3dushUpgv!%29Dv@O+`LR+~VGk{|HFqN-`g} zVsEii7)h(`VX>p}jo&O#ynDqg+)$@e7VCElS^Rekfnz+~cBft=X45Adj!=T)pTeiS=FJ0W%_q8C6w_tFR zXY%9VY_-L@2NTd5%!;Blw;J6^n*XjfRj4)i<&=0%qZ=Ln%qE^Ulw{9j&l@ape!<_r zvdy<{-vDp>dIo7h(FdH9$N&5l&#?J? z&PHDeIu8?euz6VI2cL(t_~)T<-{1Sid`-EqL(ut}%EedI_-+VLxwYR<QhR4DhbNJ}-&+L}(e;4{+-2%mv0oNCv41(MM{RO%Z zYa!C?Ke1atKZe~r@IR^dptD73yZQHOvRl5apFb@4>iK`tZj0rNBKq4W=x@Z`x{E+J zF6Q$*x}`K1F{?MeG@g1?2KwlGNi~jBE$W%M=$W~^XMXZu^h^u!0B%6gekx1sg0pRk zTep+uC#hH|TeppZ-%cWW>vqyyS@(9glZf8BofJqP>~<2hd^(X(ywV|d(>-dsB|-k0p7Q-l z2mZPpBQzmV3#TRBd{>=#{AZsHledt}!nN=z(zNga+NT{?ymN`r^um&<@Uf{VZ-ds6 z2O@?0L(O*+MydPo(4uvhnKU>t{^mRJ^c-6rdoxtqzaP^6O5lCxoBQI)0!Ja$3mg}h z@tI7Fi?r9`UcDrskFDUkqCO_>8&MwB~%&pzV) zjCv2>4Ws*8kecq)ku}H*b8-L6opk-C`&%ctC&EkoZ?=2;n&_wGDYJvz;rj3UTEGf} z_chU*Ny3@8xZzd0uhDvqT1kD5=7v)J^%i%l{?okf-`5t%zD9NueeGLsUwa)s_If~H zd)=?Em0GW$uT9|=APr6la(BzWulcW4L|>cewH|haZ`xl7-q+TZ>T9vB@d6U2;8cyV zYOnng!tR*ygq^uA>#R0q`Tdns?5`|0S?KuvDpM1qo1&d7glW-{^*|6i7hj>zJ)<$LT2wp4qnA@IeT7Ck@Ggy{r~#Bq z?;Z(lI?!a={ZZo(uMjavsfM%sh!!n6vrMH7y;FplkIpfeK3JqQ^V+-+rVkM*!<_wq zgXu#>Duk7vz0hR(FhxB{%#0BVT^xvL)1@Z&JDMXHYZ`)3gS zVUbEQU#EH4+8K&cgi|IW@YN)yGTli2fks4|KLU_GJy;0`faBIDfC>w1yp;Vek zy~DYyAM)$1qfO*HFHK^xLV*%b2{mGu{8)68+(A?E;5Ha(&RJaM2%%rw_$ zLlJ{SYPNao4TzZ`Qn{@Bj7YR0(}w#FaG|7V^@?zzdMs8IJ_LWN&*DTvL!tqzC=y0Q z^Uj^w9U>88?)w-hl|(AS9Pt}cl|?ElqVpr2S-eO@^PX2lBq~OjPPB1OvY+-d8jK>Sm@j$ zJG0MHRTPvnv^dQsNF6mh6X}v+s2e`%0fQ;wjuacSg{S<4k&%TK)WWrdI%-`Ian_Fd z&l3H*&z$(492-ikw>b^wxJT`cf=cm5-Af3K$s1kFND86;!;FjFG-fp53C);y0y+2b zgkk(;voWIyPlOmlUdHQ#n({=1v11Pyr0_(P@qLWSj21i*ZCt+*!i?5DQ4!Uqh%tda{EVkE(xzKAI@2T&m?_X~vU@4u}<1 zPG`o`aTI4p*MZ>tObj(gGd^ky(C1>P@zspT*Gy(SU+HdCuWr;Efs(A)B-E*8oDU6U z#*41zNYpXzN&?w9o=7tKCL%GOCmI?@8luiiJkiK_ZVwVK$I?)Gzj3_u2Y$_ulgiO zQp-7Tk^xC>yae(LPQi>P>nO}Qj3+cB#fG{gdBQLb9EHG7^F)ZT8yAb5&+$Zr5i=PK z#_&XxVLXh)i#!o+ByA00PB%|fGzzPL+ek}^)sLL>K!jLXQV(qg8A&2%1aiQdmW+WFHR6c--tJXVn` zrWuLNpycC~NNKf<;}5|wKi|;?WSxv2&!aWJRHUUySK|Y+#jh1NBJr4Uq#87E=8g^^ z>t^gkcXgiQWIc_G=U~4JoUFIetOD%vJ1=h}O)Whz0!fmi}YIy>z@5_Co1D2YC zwzV&J(i1wfiQHjUE*I7J#VVG&Bb0?yvYEuO%www!_E{Ok*ibZ3$z2(SY3PGCPGmMF z(bep2W7Sc^MzW=4LaEG_o#uR8Q`oXHq2y<_?5CVLp&DCmCHp(?suRLiSjmCTL5iKN zw2~d1WjdQ|Rhdx2wq=iU4#?8jYAZR^dF5dzTVo|N99=PXH38+M5D4;Y-=XYM8K-vKxa$HgB4RH$~!A#F~fjKqm2KT6nW9yy=A31cZdQ-@=P3 z>)MXAExQxP!}@`%6WJg8@Jhx?brz2m>P(Y(Ad`4*3vZ%@cVjH@_JXhx_@_eo+2E(>di#A*aG(j~|w)jyUfB! z_v{$UyGw}G14MTTwUVN{gjq?^UBazoXWm^RtPUZ%OBpLEx=UFrnc?Up{b^OW)IkT! zf77@Q9+Uor>{mb{^}WvWr&ZFQo&_1{0AyST=q0kZw3OQ3K;AS7WYk-#MM$*H7Mkds z)SF1-$iC`Bn{T1bm1rv@8px!^7hB%6%<`s1g!dZ=$+|NwymYJOqIVWcJY)|7iEQ0; z3vZgli;~_1GKn|a!ppVrW)fa~5E7mSn{tmDQAYL_(K{PS??v_jAKneiqe`Slb(44? zlXw#?yeSr*oA7pkkb27~3-9eRvbVJ7)}!7;`b2gskjVC(w(w3$ykdz5GKp7Yd2q4i z!RM*BnEt&b*TND#6W4G#7P43Ru=ZM5yChbU>@6UZSVt_ZLJR94^_DWLzO%E>pe4rE z!Awf-=}2puiKs6+%CvD}nu(Cp%t$fKM1(9yC0q8hVw#DNv(6|-2D0%8&)zF5&9gZ| zs%t1$*Km}Px{y5zBwSq>==fM>%Wf}*vZ){-R|gSqfGxY5boHLx)os~bVVN9IG{naR zp}8k)wV*OM)Q2b|C}bbEplFVf<0j@7J`HUG34wu3g0+-jttD6rz^;RW+LdL2?TL_X z*Pnyo!Ht6kpXr`_E3;WyLXj#?<6F)><%Jnik{LGY0?zk{OoRnlw3UnEGXe( zmfewk&idx_Q3&+JcGSkGE!7d~d09oY|oM4BDz39;0{2pM2@ zkV#XlvP^+-UYG*QqEcp`V3}RGm}PckFZW?#Eg`TlItG{>WD;wxg@sXGU|~%Jvsa1= zVU4-jA45{f9a3JJy>Y}nWOiG2PZt*WK0mx4JLX7Zg~)A+37h*ovQto1+O)s4X_^qH zHi*dMK_vA&RO)%8)H4kkF)gso9KmHdi=>h}zJin`B0?^BH;9p_Y(ylL*|JAEAFW`r zNXrGEb<{#d8V_Pn%>CjHOMk*Il2C?LF=YSl6Stcbx2q7hJqSo#5J_>$BDK;|!lVco8hr@{L=vXGgy|$mCRDl&fJKh?U$|W2G8C4d-LEExV<+ z*$F7)&0cBABRa0tY-C^a$&)6{(o>ivMalyrDNlwp%TQ^S{;+;Pv)5QKLc3P8k(~xf zq;}g&nAQTuYBq=@OjilhO~MdFne?|@Y$|VdTi)!=)a;6<9mu?&9>{IkL!I<|JT1I} z7`jHWGPK2<$?K%@I+v_EnSphN_|;h)VzPU99XGF2Gfv{%6W+)l=RUtWo31MCFB%Nl zG+w8NRp+m;fI7^t&a6QiJI(8mF_hdltU9N|?(xSt8|G`zq{}w8h1YTOI>)U#Tf*v! zI{mp0wtDM0AHfdIwy?_cFpSfPxfHu#Us}nbtjrOdljLxY4{(mN1d6%>Ru-NG7bVTq~WO_UK9veQAro5gn<0#^r1Ktf<3<6yK`!ux=l9k@E!2_jM> zZ`Y_WIh2Xj!CvGO7P5cvVcoPkC;|y#flOlEYIX4F4UM(qc7~c@=Xw}Sxt-eu`o_av zGqW=1|8lZBd7T_yr%`2D=T70(wEX72k?5_&eS?&^3;cP*8d^#ezEKBd)G%Z(07>vM znr2IC7Ko(1f=yN3K;hNjeHKihUm!aaQcIXpW3=TKAd)aarz-n8gN1W7>;R&Y`+hvs zK%-N5SVOU%UOdi$F3E-Y8fd)TWy6B5u8{qnPoPqBQ*AJzc7y2F?RGQ)MI(F~#7n41 z3reWCIm$@I$aaDxc-v_%Cnylzy6rB~kXOagfhu;Rj9`%cRJ?=h_yNXov-=SR1G!ifP}8d<$fkc4 z`hewO_NPawAnZWL3u^YFarW~^b)tvdCR??wDuq5DDo16Zo4F_>dm%d> zB*A;$1`v?YAd*4{>3NPFpdj6>wxEharLznDSfdxRU-dzi>V4MO1tJL*r1#K$S$^Ef_NYu=24qK#({3-fl)uKQQ6o~el!4b*3w3{c%!D+aw;cFZ=Lrnk5S*9>^qK z@LAIJ2ME2x-D(R<%>E@33)y`k4%efajlFm=`(t;JKd)OmpCFT1)2!JayQJcI9cK#A zc1V=Mns__@A!I4J#g?-*32h-4zV^?a(m~fnF0kxFl2s)8(;Ws|_6U2Eo;H>o+DMdU z*gYQ_NVXSAfSh>Q#x93gqYEAND7hnQN{_xAk}N!W{x~PCa<7K)Lt1PII39pFq={KI zq~`6GHbf6^i869vWDf(0^r})%-)SHqrvj05svu9_j>VuLC>zA$Mvk$dgj20R89^cY zpbx6l6F9A<2ns|JD##PK>nJG5e>qI71taWx3i$+s><1xkK;oCbq*{30PL|IF&_qQy)e;Se`jmtv9k85nV%QDbxSXIfbSxXvd zx9eU(*wVRVkk0nHq>21QYB(;J%ydYVhRjlFH*jB-vxa+Z}G$)Zy8@hsr- z4!&JEpRX-GgIs*yh+v~4-&a^iALSxWx$RD=vyQHZq|O}h7VcR+QN~UFs4HMiRtM!| za%9&BiFD#ptA*AeAkPAk^sHd3g@CnaHw#Ae6sX2hl%m`-2utVB3-XmJj9@ zZ3oe9+FrJ5oXYCDc!$DZ4=+1qwY#p14`k#WArT=C7VGU$BRS!-iBdtauC_u!JzbV_ zaOG67qz+ULvfH7mR8Fa_P|GnuB&80v6&jM(LuK|-^4Ot$ZZNy6O;CA4gUf^L!~anp z5Zy+esH~q%R%m+r*(k1{Buk(|vy~7C{cJO?pXHUN>~2x!nW+|K*$>v4>{DFt#UHJD zuxPTVJ~f+2D*LLo28i0yxPr|KR<=?*gJqd~!5_^lZL=z6nfF_jXpx&`wim}!PqDHC zF|-aAm7;j1vsR_SrZr=-vg@Ku*2AAF;x4K19%f6g)UV>wNqc{)do8N=UIAFyMiU*Z zsXtXui>j%~H*Cr4%6?E*XLbFlCRkK;O}=d8R7DqUtg=7VB8#fB=^fw7HX2ITYD3XH zCfc~uqKfe2_4h!HDgIQ&7M0@TRp(T9lPMn<+%yyLt>lJbuI0Y>fl-%Kp=Qq<%TK`P z8P@F2FO1B$k|X(rk&mq8P-mNjP`1!YW;n-RG1ww2+20X{RdaiYzQ3*A^tkY$jvWxW$?xZkRl;(HuW3a%YCn*jVi$ZD~^2hqXaG67Z;dq*Z zH31ocflPv(w7_u0F2Hahg|WI=jl!b1N?H z-ZF`oBJn^b@itg^TP(bFq~ZP`q$fFU%}*?>P8@5n#6tElAJ$w8D_3Gol~^E?Sc@#I z#TM3lQZNg7A5PfPuoj-Ve1&?pfgBrJ8YyyY@a=4Uh=GHP*2)N2MUl6X?U6kiBwXz{ z;^(HPqkV4q+5{3sghKYuKB!WU0{tWuh$K{y zM*#<|x4?qEXhA(}$lVh0)Zs=MwF=ptKq8&#rpJL?kWjloCKVq1aln-aqK5eJW_7i& z#G}Vn=uT7pO_JlLL569`5MIAcLwu%H5Mi|oxl zs8V}Iy{UEhfJj0G+cSDWLh%+|as=3QBFaeD$gTyANW0#2n{h5k2nb|S*FkSHvXDQp zs_Eoa^=QmmO74pLq^dhP=q}4R!Vs2*KriG*BH;C?h$Mz0;EO zrkgdSPm&TuQXRo=*0cl#Ez1S~k3&6fK?zrHk1~Qnb}~q$N^ZJYGZZ8Q1~LiOQg&hg zn>D0g>R07nSLSP`1`VW4y#u1Bwi`4KCbj}+$!NL<; zL{(8vc*u?hiEP|Ww`(2%8R3CU;sw85qMe&kHw7@Z0`bIHOj6N?8L zYm7#AMUcpTe2Xy}MAE>w8>5$7P!SeXU_VCoWFOQm#%K^psN0RvRnTPKs&baT1IK7& z7h6zj_ASR~kV$?2lQFuYg%vnPBRdV^NI$ye7!5Lsb*nLYY88_e*sU=-p4;{s21&j) zFR**}{k>-%RZ+;bu-6`Rj7D~eB^mDe$oW@Z{-_OqBcB72RQT=2=+`W$eHK)pZIPW0 z66r>_7^6WXq5k6-eb^p!j7Ihj3ns|E{#@B6kV#$NVvJr;$6$lKs*dGjbZS$n>cMut z$EIfA80%H_Yspg8!>slPb|Yk`gG9E!)V95)Y7oix2ivwsyZE4d&4Lf4Pn8Y7W?KS-o+-}Fdkt#v>q^?i$N`#kWX zG4e+XFU!IU>`TaA?8Ce1(aT!zfK1{AfAn%SLg(?0$!}R$V*F1*8MO`B^h0LZwwoTi ztlO0!lUTtYyI9B?JQh^;I+M6Gk@kRerpk8T9WJ`8QOhnbYmDNTHSV;MBOP_5j!GaD zx5?d>++u8__K@7j-f78w)2g}?2&h+sNSZ&$i0xVe3a@%vSunyBYfwfo$i4@SkRDxX zwB8K@f&r0)2{Kxap~r>lG~)YH0}vqE_88Oi2VMf9^m)C zSV^DX7eOj+`g3}~*iQ{2!IAwHNTfYV-6*&G9z@a}!PdQ_z=llU>p=;1(Si~>qG6Gs zklg?za%i||-TO93NJk)(V8PbCv|uIKzqi2tu)xGPM4gbpkUiH2cGJ4|TaXYK$fQAn zuX|mGK;$+4WeZEJLreGeAHBgGgE;=#G2UiYgoJm6jw3M`aK|s=i=yuX>Utnh)z0wNZw!|YFUk7&7<-vxKwxiz8 zU$-6g9+tELy6qQSx5$nGY;Mgp;{^!$2*r+&&LUab1=xwB)Yf(mM;~ zrf^qq>HSDtHG9)I$5=#Y0KW=>xIZN70mJenl#zy!{k>1-Qb%(if`Bv(A}MpQqdBsJ z*X^2EFv5`3iwFkU4bcdxno`G8S3p28Ad)b_j^;wzAJ^Gh&FUo6xn?d}npvyKvx5Fy zGi$Zh!jNfPGi$YO!jQfB0sdNTkT@mj=KSktjjh*01@S27cc)z}PYd|*PQE5jfd}(5 z{0*AiVi?LoraZ2(US5gBkUa{X!dEwZ(|GnskT^D3vK*1I6v9@8^7Eg zZL<_i9;D=+u?R=o?xS5TPN;sUusUACgPbs_m27t%TQf;$AKl&ox(;(eV9S2m{`*gq zOcM=-`sTcEvTqa%uaL9Ju-JT~SmN8W=Mh~?QEwy*8F(>-jrG=}aYV_@w(5;ld`Fc} zY{4ZyFX3EHNI#|J_GzHVUu}$HcYim~!E7tE$^@Za1V#KacwfT`tsZ5>Z$GLc-j4DU zO19bADvkfZm4)p=Y0__F@oVLAvM#3`rzLx7$7^B410w3IUZgD=nrJ8^YD1ml(l!OqCBBL?ouMLL@SjC>2+Lr3#jLCDO8KdjZi9dCA)}cBNsOL zff7iKGc8WSVTr^gs-qLuRhq?E)KwyD#>(b}LOycP=R z$KDZOjV9@$NyNKMUB$~Vv}O#6X|XHokLI$<#&D=eoe|@xQY4loLkY`&D2 zqVYE2~E7oOPF)nHt zspb9{{N}|H&hX_DaU~8;CJ@+_EjpfMuNiYcZ(_VKqfO`vFHVSrrXV$^iXcW+%PBQE zX@an!m$X_LrFvK-8Xgz+XoWILM1|)o;9Ve68wTFG0(%%_kD4$Mf?5iiLmcm{f=1qr zoZ6ftZ%&)YW{?Pjd_&eswAn>&T1QGPo9u76yIjhn6^LD3is0#pYt^fpc<#4Jr8Ch7 z=)xcV$DhW(>1(cxQ8%W)LjKJdjVkmDMdX8NPeefrClAszD4Uuk*%+cZ?n{~F0~RH<;JOj}_! znO;;X>?+f>Wf&_%y6HrJmi%-zjs9pxra!U;{k6B+C6a8140B{yQHGYj9*}9b3@y2) zmCDDw!T;LIaGead%CJy|XJz=94C$A(^k;?ilXUu{7du#g^vVHU`jC#-0V29g)r#!J zczx0exR%ClDB3plYn3^u%3Os9%S2Epf`cL$%ZsA?zH@CnFr0CT_u)a`{3{Kj4=6RS`j2}FSmn&f*5~7!%z1PLmJA^jXy^5(veOjO} zHO`@z4}BKz#JfXOS4ZfgUXBu`$N&0)gQ-=+RcC~5W_H8drb1NR-lN!wk+Y0m{%lLU zuBl>KPA@bezg4^*j|9}zuz-9$bl+MPxy^*}L>a^@r^mYI;$43C3PozNU|u+WLriRR zcf=c;@LE1~j#5Fd9KPRR{%lo`5~68pC1G<-tsHZcMC$ZdVNK8-RN{EK`i4yy2YE*n zL*$*)@9?jz7AloQT0N;$*2`^3#CruR$NQ0}Z#Ur zD&;j7-Y2tGd9xheI+mw2b>UrR`AWEgmyT^zMz+R4ut|Bj0{v6b81Qs9{~dCY@k{VJ zHWoe&FNkBADqdN~ij(lVHr6tW;>nHizCiX~d9Yyb=in7@?3qzi`h6zVy}t(KL^-H# ze@vA+`|dJvGx+zg85AE@hUhOGAkfQrYnRTh<6l$LS^YW?lEpNp_~c_mxo0Nc@W%H2 zOxzy8n~ik#{HtgIJKmDMKf_&PoejB0QbjpJ@xAnQ;*j$l)!Oqom41r70kmQ>#h;%^ z@t*BTs-5$Rrei0)$Tcvciq8#NntV~kHz@>Dy{ClqfIsAsJflCvI;qr&?jd2=|e_ME}SQ zlD3LYInO>#rFjiWlObEEUFLC$mwAUM2R9{@l|$%z2G{Vlw^Q64r~8 z==&-BJBvE&%`N!tQljy2J#=12h$G*loQ>S;%IHK{buUT2v>$zsZbjVor&IhWek_P< z$auRFJd=CZ#NJf*)3)^eC~wQ3ycHicBiz}~6aOw>QT+5-(quWV+poF*WIsSWhfbr? zr+I#@>0H|lh}$(R5TWxy^!)>m5Bh{kf8wpkD?@T##dERFe(gvoA9W@^_MJpCkzR1f zzTZIn4=p9Vl{-V<6Z(?}w#IAHbar+g#S8WmpYpF#eBi6ZZE%0$@W7pv|K<{+tR6w7 z-|wQFep9Km?Hyzt9q%>M*~{(7n$Pf7C*bvRI&-%r%1@ppbiFlwPsdXkJo68dvr-58 z&e}%uY{h^CdTu+HEXi=)3AlD*bgb#k<*v=BIlo9$A@e+9!`BT*NiG$wri4 zeL~-P^x9E&jE_-&$52lF+EnW^4@q+H4l2FjB6-T(AW81TvRh{hx$mXVrTDUEN&b6F zxXz~%rM)J#?t#k0;la5Suf#R5C5kjN3X>hY`aFGK;bTbAK;n~>Nqi(Yc zB+r#o#M!={N?Ur!f(xG}o=a=fcg$+yV>?3MPj4jp=njN?b}xNT`I_YUY!&f8e~{vl zUK&*;vSGyDP}{{1esZV!IK51lur_^Wpk zhfyPmJ};kIk+F%sf8jHZ?Gcjp`ZGkyFq2{i#J&(b`FFx{bflJc#tKAd=_b)!#&Qia zj+<(|Loe86Bk+DIpm!h%_uWS_oAgRk_Wny0Pj5o>3;Fz&h4;wEZL1z_bkW}IO zDJN_J@j1(LHhxK^!%k6YA8Z2YETJ3GjA=qVU*Pl3&s_;Iwg%BmeS&B{9Ys06A0w#_ z%q4D5;@??CKmCBXt-nO=oiTvgb&U7NkD3!@H@w~x-hw3n#<4ymZEdc}Y(6S(Do+|4 z{4CKN?nWqPI#C|jK`otml@N`##Q(V(#Q%HFC;M?idFu?x{L{TezvLOBfA(#nzchw& zp69b<&96v?4)N5k&#}jg{^Fs!)ALA@$;lMYf1YZ6JA~qGxkauFBFcxGl5F=>A>5^H zh{JPun$uYwytE0eo<;PZ@!8~BSK>D2VUi&QuO@}}zCt-;f1-Hz(-gm0i|9S?Qv7&1 zYH7I{#BJjol6KQMDjhzZP>#Mr@f+hqn4R6(fWAi_u;KfQi^R=M#3wcZ*|xOK*o4lfNQlo|`E zT@|=R;;@B?URIsBMVui0AHqu#F=7-Fhb4TLabRH!KmUes*KVSC^$2QFE&SvT^BP7Z zI~%lxYi2p=F!3$=PMSdZPi~}I-`67k&y`S4zfVZ2molj>ry3JV-NR@b8#|9$J!TEH zWz!_0|Eq+)b0=^sjHA+;d^I?x3ZYlVSZ8Mw=aRHP;;n@krK{8TRlM-n&c@6jIVWJI zu(M>$6n6IKAj*&BJf~ocwX?S2#Np2n(#&^!{jg{~ah{V!?fNa1w6P_hES0tjPqVbH ztx)nYq^bT5R?B+LFXo_~57x*+{pMGuBIlt=i%^<6=ugya^?4_>ytNaTb@eubXhdl1 zxD)cVYfQfT$mMTQ+PM)njPY`2JiF^%_tG5ys9pwoe5?ZASgSw&`T%h5_W5~mc;fEi z`0jqAI%s-??KIF5-KpEPSW{Y9du}`2syKgRd zj`{N(P+n55{E242uB>|!w6m4&G(EhpEXKa7K2OQ%kIcnN?;OytRj%Vj=lVKj_GHvs zubjPxRGxC=Z3OwsBDkEsK{?nCSUZ%-c&86naEohK^=)Ke3!0S_^ z76ecGjvTLV`y+hgf$3G7{)XJU+qK7c(y%YVxZcMPf}*}>Gq^NZ3AJ;s+S?5vko_AN zUw3p0MVZlU6LOrdSCX8n?8IZQUaQHY=yX$*r|5a$73JHS=uEFEpLOL8KBvNQ-%!*j z@SLtBeF&$Tr*y9dX7iP;V?Z+A)^j<;o^0zs1iap`r49z=EL){|knTg9dJ3rpHgh6U zi*22$-)*op`WK(OxxDT6#P0?`6R$6M5)&-U|?+Nmr(2gff~9$UyCoS1I9e*wdY*%;~Ui3iW2 zk##~a0^08yIv*oW-QW7)-N<*-JL>I8U5k)kFFps9^KhrX>h&Z2p@Nec~gbBlHO*RA!o&(DEoI=j&8^j;IvL6ebmH~2jH zMm9=EKZ%`AeY_Hp1Wip*BA0@8hSD|yY-cIEQc?Dy(hF~+)<08PRYm3+B|05KuT!|} z>lH41p2DTiSGf2a6fXZpg@m?mRd_qTP^ckXr)D1-mdZUa65labX!413 zz0pU|X3gukVx!-+{AqmGEBgs5Hh6@5rt!Ju$Z7h+FUV2in|b?|hVYX}ll#ZsiVI zBaT<@9s>nUP_n;2?Hd*sJ{T1t|9^ zOU{F2zcPLas-IGBq$BuMNus8lR-*4k>WUIQ0@bf7j~T!#Q9i;Pq))O1 z^>wxt1Ay?A?d)1)Znrt#M)eWd3ETSlC_80K#Hg>I zv-L_qYp>WMqTq*aH3NG@`pc?9- z{=5n<$*+$_&I2bDL$Ob#Ei9~E8? z-+c_QCnKD_k@__vjmdtoM9KLM8ab@Y!NjZoq%?P;HAj^#nGp53vau@oo>1zAq7gqU ziz*QQ=Z3^B+q|dSSY6=P7we4>Rp6}UmMxnx7 zTf}q7{J{488Ia7go!NgYbeCaNFfxLu#5PQ-kpPsTMWWG+&teGMT#R;!bNcB>cL0&kC6vIgzjr+&~0 zl>60@&5?OfEqoD_KdO!Lka<`g@;Ne(sC`sW9#x&sp!zX&>`4SC)R!NE3Vv26Y((l8 z_3`^r@02TK__nP0>y-1Hvm>UKzl?s_ml%^)#(6Hc|E0wXd3h*&A9)J7i{S z2Zn+2P0ceJvdq-h)278++A|BmY?j7y5zN+((lhiNZR#?la<%!m(xtzr9me|+^!K%= zdm#8gv!6os54F~`H};WMaRH=Wp!IDBMK01_q>ZtUwU2T@`Ki{dCN#KMn>QQ55-s|E zuwJUwN(ay7+I#&#vO@cfo}^Z33+P|MSgp;ZeZ+NI&z(rE*B%}S*7@4SFF?6L`;nf} zHfcSv39E0`Zs2%D|6KbFzbwO|a|6Y6QOO)-@+QlN+r9Dm!E70bA0|EDF9S);?d$ooQ!Fs<|{U-n&(83mg z%a2<94iNB=7DxN6N3v}->>vO=v3JvaTVUDypSC$-)a5S-GQ(k}6@ z+S+npc1BCX8xQrf+Sx(`7qnN$AoDkEGfousB5nRMWM0&^p9T6Q&AkY)#oCOkD7&KF zJso9NHP^!cx~65*GUU33AC5EqhSrN#aer!$%tzqXyQe|2@#yhr*h~6UTA@zVSK{9( z&?o7aM?#U4^qd(IJtaJ6TgTdupeaRrm`My56JcOT%MKdx# z)U)n}xbyT6NV^~Db7;G5f&MZrLO#~NAWeLtuc4==#rmaIVD_2r+zkPj>Q8+RF3a@a zpFzEq`nc_2y-FX~0FtfIqsxJEt^V4V5OBR7-wj;y^kUkT+@M#dF>9kfeln_W*5mA` zuto1pYq0}*T^*@|`qT7p{~Xq5JPFoE^vU$xepK(0kKmYo6)(QmkL&N$M{q)a3-6QH zPwEfV0MIY`f~!dVs=s&wZ9lEwbqp!D{o}m|#@idT0p3gYcW5O((f%<#b562n%mbIn z_9iq{ykh^AR!LLsSLiX|HTw(kAbH)MyBTfIwpXL6?oE4*zo4GC>|Z8;(f^CQRN>L6L*nD;4y zMUK9$5q#`8+X_N_>UjQr=w-3vr&rL-C64Boky`4Ao`l`y_r!CJhYc0ghcQhD|vWD%+TyU6h18!r+Rz;E zg=5sGAlc^VPS*U&(SbJdw>vUvb^nc{H$5tT>&U~;ob?@!^P%AKy<-dQJOAJq@E+8& z%h7B(B-`z1nhe-Ij?VPNyWeqOGExT|6Y--`{gC5OC`b-Fs?mASQOBR_!1|cu`QJf# z!chT7Q;r$5a{blObp=SyI{sV$C7*K`iGcmh@g{ZV-yL^-h2Wy&dKYB= z;b;*Kl48eZ+S0x3n5m=QRmYx+2ud8YaO$pKcYL}Wa(WyWX|M86$0P5e-d~Q?VMw`+ zKgco18-=*npuc3yAiGaArh5=fGM>k)P4&r!Nx@3v_amTOWh^{~V68FX83@15c%Sww z@{LbYK(fKOvIsmk8SaPCqRqwxdY1p($Z3kqt;Y6_$lPY+&=cR6#;&~xzBXz;0WRMd zt7)14o$)O_MC~vxYyUx689fzohUnC+}jn^e>C2w zPI<^!-2=f9V+%utpNwxmg-FK?zjgtEioG@M``~7U(U4*hWrZE@oUbw_E7oj&f}jVGuzptElA#UHot(>OlSQ$fPKqZDFT$U zoZFfsnC*OH5z2C$ZRY`Dj&uFJ(Am4rHM9(U&)N7YD$I4h{TDJnaPHgylKIZ$>EQX1 z^ZRe0f`!gLJ&;=D+;tWW+wKgf0peTd6&en|bGE(#S-yAHq3LX=Gmo}VcR3fY1+xO@ z@3c#?*I5&!HHW&NWW~=oe@6(@33iZlE2h)6QS;DjfZc^GAA~J?~s_FDhJcR?9&3-<@0W76!e@ zX{Xug59g9IV13E?!9b)gJD;eIvMbJdn_-6%XX-~}Bj=bksONG1mJBX8oLL%De>s~K z0_bn&Z*7q|-b|nqxe4ZTw1qg)jOmKZm(5~2yqaw8qFtyd=I68?oNvzRhs=-6$J#)^ zg=WK#5G*odhJe{8=7vj9>@)}b4Uz(LMh@!jHs79r zdV9?!Cn4uPGnWp+4wxZ!WF9n|eU0FdIcy!69X7Q$QT-=#nG^Mnns?D2SD}d;F_=)y z!9ODNXLG?=R5)o4!N0?#pE57n(Y{~J9@q}m&zeuYi{PAjbToi2nA^9Y!f)o?wC*V~ zSA7X)7tI!35L_~={e-e&v*U}9rNpd`*DvYU%x5P8J=^tr1F(M6<)pp1nXcbHM}@as zztD6&%hjqI@MgP|1<+@XE1#B(b6hLvpyXZG$F#Zho@?ACkj!=UqmkhQSBV3Z^IUab z2f}<;t7VX7fved*Fk9$4K##8q<$chUWv)N& z1M3y8W9PwhrE5}4WUg_!S0GsHIzn^fdRJTq%JN)i@Go=e8(qU+ftEJ8nm&Zo7S~Ht zQT=n*r=ub67p`iPfw0Z>@Jv+r%C+xxpl^5GIR)t7xGMaJvTt3pm!sYeS4l$z-@DRr z5mx`f)w?EAyIkfw;IiBG4Q=4;apj*tu+Mdfc2@Vh7NvpbLD$Zv!28iPdOcVlc71>w z!uk=HYc@!Zy4sMR9dlK#k9x;lUqmA~;hI5Qid{X9Lv=S?PfkMcO31E_sPKPSy6(6x ztM9KRefHjaf6UC%ELTHIv(&82GSe)xEOTXPrIp221d%PuRzN^e5gE#q4FZZRl_48c z1O!18(ck-gU%!92uY2z~?{m)mJkK5HocnNqoAwJ-^5piVL%J9Dk`Ic5+^?I_=*_)P z?$|@zX8dnd2OsWi{5L5FKknCmfZd;)xdM#=+@DY3XAI>2R1GD9xTB=YVQ!NXD1*5d zDSC2*du0$Rg>qMa1FgfjQ+!d26^CiY?^&M`Lu0xTDL^ zSIm{--kn1US4@c*rQErmsFiWkLLvP!m-{7(a_-@8U|$7yG1*Yb9i{MWJ$Lno=)2Ax zGGcepz+Kz|l3Uyv9e{4(j!?9`i#u>`$B^W^$(l?JwTJe=BmBQk??0m-459YpM%*Wncb+TpQDV z=mYR8YF}vgY9*o!4%5$5WNOCKZ-MaI0{kl%hnc%chu7nZK>5bry=l<#qw0UK4o;ti)MNX%;g2{{jcA@}(=Znuk&jnK{`u1-A4bZ&j{U%x#7T`ax zIV}2v;_u6P)}np&`gFAX^kN^7|L&&4vfIR`v=i`|7{ovkHgVQ8kio^-gyO`+TS^Sp zsfqLH_e+}CSpWYX%lnh$V~{&Iscbb=c`zyZRUi#d`jHek!uXG}8ICeyT~P~RY$Pvi zC_`Qah%m;i|D8k_r)b*|$*5Tjk|;(iQYo?BZ0Ez$XvPLQ4aYEc;Xgk)oM2p_GfN!9 zxB!&#jBkZK!9rfOLm^|{&yY~WFp=w^m{IouR4QS3tOI2!BV`?G zWeks*K)KA=N6x}>#uoA=S1>*>fbS}!=RC%Y z1$lLh?Q4UCs*8EIs2n!wk@NVpEeni=~(1LiHpQkq{| z7!i?RXl1-cze*e9EV&Na8OiQo?_gB9fT5G&(+kQTh9m}!w;6d^V86q7J^*6xGKz`4 zmk~4>g6=V1kAo6@3`akJ^)rUszB_}51 z12j4_vtEWg7v|pYVS_7k@&goZ%t9JZcP4)>!1ghRUV^;+%mCW{c`z%;hj@UgKM2h{ znV-}9;>A300}Kb5zijU&%Vz!H+XC8C-0F=*X-Y*Ac0dvh^s8q-d&P1(<8Abm5V&{wJ`3{}5dYBD# zdb`d1`AgL9Fu&~qUoTTYBXN%@xQbdIb4ES-`kAihF=hkI&F3+Y_n8bokPI>({s?(P z%v4HEc);v2!<1p>%j8KNVHPidW)GQP(-4d@gEeS;#N0uRW6a8}s6AnRl>_K;X1Nx{ zQ|8EDQ1==0Kk{%nvc5$+D2^aG#O}h{ybWSqS;xuQ>c$FDqHt$L{Q{JItlRYOkv&+? zg@f+^YY<=Aa`0rmNG@A1)?`XhI>tE>%Qqpym!qy!AtSQF{ASj`e2fo3(V(?6qD%j(>KqK@?)omJ~uXTE|G z*IB9rn0bSBm5zxwS-+Fdr-Ah??u0lrvidFptckVjIT+o{S`&vMxW$U_fS?xET(Y*6 zwP-&iw6VC0QM9u-*J?5*vok^B#&&%QXm@rng^l*HB@~_B&;DZ`NIcku zA%H%>zC8~p2icQp!u4j)BSDAQ?m5ufhdoGBf-n1H7Et`yrIXO;&tAO?wE*_tSD;HE z`_Ba^g4hWZgE-9IP7iG`dnvIWVc%X2%%kkGH=tk$d+&3g3}rv2sB0MeP4dHsv+Y}; zL-zA_#u^)Va+A;Ry2=ES$yv6Aau<@=#+|U?96PBP_MK;cPBUf- zTW$njDtmW3DAU;YwgN1jeK8ygUS#i}9LEgy*$WVx$^P2~m|5(teb6kMJu)4QIqZ|< zfX`)1On9d+vA2H;3Hj_QBftvS-U>7pviI-+R>YpR8I;BB*IquB(F$HS80& zK~l?p-U@~~cDNa}dUjU@l)u6Lm~x75vXdxnq=9`h7ZMuTo=#wIVqf|d);6>M*aIb6 z*iR_t(aQelUr29bPbGQn>}j-F=wK&*hrUjBz(TNhv6FuVLpS?q6i9m5GZ&!mHv1=9 zQ*p{{0Q+6`$8+&J^s=q5gXA8&n+aX|*tL}1(9d3g)FGTXF_qJqbIQLMi6Qn{IiMe~ z_iTi^!|X$Mpx_8wN(YjM?5*V}M%kMvO8tnfJdWC9_T?v_e8T3_;b@%gNI~GIY#p7j zoj4-$BRO-f(D~4XlUV~LTsixFA=Ztftw5hU$C)-R`#CYe==0z-tOEN1&YSdTcyi{< zhtXafAKI!MY3j6 zPKg-o!5ryJAUVRZ?Lp&Fj(7qZLpVDqP#4NsIS7@)ISz>aIz(^|RKl=G&I=pRcZ?H4 zFZyxLf15xO&DmK9Q(`!?$dM4siKvC36P!)7;fdqeXwHh~T%ugf1kNlr_fP;xliuYw_$vrG&<^Ef;4|DbW0zDL32 z0*-Scj4tHlUk5`GryN-!I8*b;byv!XqF<$qqoC->WlsMYNGRv{H-oZ*W2AMZlA|GK z&sC257r?CIB$hz>HBJF-1gklUctF>1s-8n%E$0@#Ug=QJF;Z0JI%oN(;Jd-8JcZg# z&e>v^*}z#zN61Fbmk%JXnRAjhC$~8BW<#YG&PWazS~*+spI&k7-cBd%cFuGeU=4(G^MiVFp zIQGv_+~>?*040VvckYAo0cQ`cn>h?~Zs(#l%3;w__Yuc@5`2$2WdaP(7$=f4#Gi0H zXmKU?4rYW)s*CauaAr=FL5{4tP>S*q?x`4{gm6!6hrCd(-`}W(alaw2 zU^q9LeDo3A>T9S)a;J|1>=?Jg1;ugh?-Zwv=Jx6#D2AKzCmLh9U6c}hf;&Pk+jwsO zw=gV$`~JJ=JIU2ZfO3jEEdhEaa=*<5-)U|=ot@5dXVWe{iOY)t-#M;@ye`Sy@s(&i z&)rKdzZC9@SwKnW4lD!71@1D+GrGuqo>r$!Ze|ilvbf{qi_Ye*p~F@V_c-|-bGdz# z!+eSBxdnas+<70Ov4Hyx?OzJH|9L=A33o50T$FO7Y2#AHoj3=L<=pl3!&PuYTreP& z+>V>*tK#O)#_w>A`(-Fds=2SUp|6%J%)#i^ac7V_x1O6v896t(-@E~98@Q8}g0hi& z>pa9ZahFa8Ni%mA9r|x^eaQ{n!u6qbvyHp^D^Rv`GxwnA;9jR)P$zf#W&8kLTtxsd zyScy5#xK^xHB14?ZEn_MG~VUb)q}m48{>xJ9(P_fiau^6J^KCJ4L?HA0C(#I*nXc| zuoakt+?6YU`G8wNbKNkvpZ1C)T-5+DA98=C6sAf0m_ap%(J>oGT-HZEh_6;&w4 zxm_E8@{~L9JVx*t_cjfWBhN#OniDTs4|ZqXX7Y=>@Uk*cbLE*ggJd7?{3OWR&zn!1 zHVmeA9@`h;D4&jZFUni93DZsdd@n$Xt zW;pL}dgdc|FKh=xB=6)~z&ysAKzYZwezrbURgYqKpFAAe&@Y;U|NhWXoMv!FlvI|k< z@H$$7lFQpe@B1a*a$1k_cxz~V$mf->21x;L8x@5-{UT5n^P(uwQ^J$`0<)Co6#^T| zc(Y#y!)0F78laT(I^RKK1#fjF7%F*pDb8?}*F%eG6|a-BY_9QM%!h*2ym!dgUc>94 zQ)DeKs2fEcPfp8HJx@Z%{~Nr;F97T&Z@CrF4LtruNN?oL`3xvcJXbl?ZRQ;f1K%xP z$vQB!@TTp6*mmB2KcIB*w$s6=lUGW!TNf`X6=2=GZ~sKChxf}p^xfudtOVE{-U=lK zxtCYl0+sIZet!wtKsygV{sbZV{P}n4!4SZIa0#_Qe#RsS3gS=T;Bh<5Pb);@5&j?F zq46mHpInSf2!AzYV&EU4{e-?S{(AB^hx6wTLiq^3BPFOs@*Pq^d5j;Fh}v;}1`lGR z`HyFUGKQZ5#AlPUe=B;QIG$WHOw(x7J|zw#ucpXRS( z1MCbxn3l-1{36e4}x0}$H!sj!9lFHBi9Smvwnn4(Sfq&*M`Y!Sp%>zRQ zzxI8QWb(b}{E)>D?L%WW|1ljga`~ea?7zgf-U4PG|0?Ay=ks@sqOpK~>Sa7jh5XY< zn0F}R`@N1@F~4;U6fEWQegjGwe`NzSyUb4`2WBNd{w4f4SNKOlP`k?C|29aj@mszJ zUp4>OO<>mW*_6Ri%XgQeua3WryoL3A@5x}e!CxMY#+&?hn#&vb@fJWg@?ThwqKUse z2ud{bKSw&h!!3U20BSA#3AC+f<5yBrS37@v9r!x<-%uc=o3B0(upa)|H!&`^`E&G; zaF^dpi9fyk1PS`?@q2Hh*2gd0jlO<Vh zN;oQr z=mA)WVD;xH!Ub-0c8U<#@ELW7NWtlRNH{K7!h}lEf=_7#V+5N;;ENN)w4gCwFpZv` z1i>}RmPr&G>4Ln|f@T>g&j{{*4U)5h6|bN#NuZewzH@>PSD`Oi5W@iUdBK*~Fmx$` zA4!Q+K^8g6(*z4B#Fj4b%0}M>!6%d!eNix=0Yiph`3E4$6xep4FH11@B~WGyrcQ@N zIf7)0<>d-kT!38?_|XwKPjK!p@D&PHQUI(-a3C19VnG8vL?r@0a=(=dGU@1CCa~T> z<7L5~m+{z?3%>pxwF<#Mbdjx6koXjsR|G8D0$dd=Jc8k=5)@F1=`}$##Z{^WogYKb z8o}eAQPc{)O$T3{;26zP^@1z6QM)eKv=aaq97Odr=@0Ngh z9D-T|KmG|pt%Av76m5cw{{gdI@JR_MI|Q#AQR@_VMx)jx7@@qcZo%yx!0Zv+YlfiP zf^R6b;f|o80DX4_Q55Uy6(l@@VfO@&=%Cprm`LaFe!*5V7zP9@W`N>+a z^HIAd%qGWtwQzz2f@*}jr=YK1=qv!{b)k}S7HQPEF3+C#u4ER+H{W!wRPxwB(zX+)??v>EXW%Z&f9|GiE!_J*f1_^B`5k*VUG)x za1_m=BnT(blQzh67RmK6%tfS11E#B}YAR6NL~kQE#lc;)g3cEEM499-*e~*>N6}Lx zxq(J6(Rzwo92AAof#ZZgke$=7^ARP#0(FN(HNATCq1n7k@kqOJ2FFI&`2;jUcKI!ac& zB;xphBv15RIG_teuhA)_Q1r!GfE9_}qouV(q=&22p;Yv#4Si*zSH1w{HPMC(7_(~8 zzvMZo5$z-INUdnmGW6Anr1V_Zi=H0<`*qP#x^H?zG*0O?H$@%aL6-*6a60%JMQ_p( zqe)~bLSM5ejBd`|5*`2FTrPT*&eN@;Hz@kiCOT073GJchC21=i(*B$KrqPdi~ zH6Z#+jp4a3nn*9gpy&ws)`mn|$yxkBbewi2!=ks3V01@BSzSPRDC(d*x=~SX2lRX- znpFZlAB(ccfjK71+=a#`qKI=)Vq7%thMJ>zBAvXQ#4!~0auz>(3x%8bUOFVWi}NUR ze4jX+0kMa~9?wwo5$oDP;wwIC2YZ0HmUb+GV(tywj67SgtU9!dfW;EuAryYm#x#Di}v0M@-(X*5%J`@B6 z^Ti@RkQ9g=$hA`_&K*Nzk$47uFQHhB$N(Npaa|w!O2ytE1G-GSc?udYi${M4U%A+o zl1eJXYqx`>QoN6j&R4{VZBXf|cn1Z|s>F{cqOV3QBl~K_42mk$iG`FQRxh4I3;T8P zx8&ryAr7EtsX@%7NxV@!Mo#o5acvk>Y8Kz7SotmSgm5U|BHow*=r*zUN%Xag+g}BA zhq&cu@O6sIRspO_yqYdC^@#tv50!3~X=8$+1Wq3Rgf7TE7VewiU#Eyt>{V#AN{)yZMqhgm3nDR(Ww+tK} zi#^7m%b0lCPVhYu7d-^ZxOlV>W?8K8_CKZ!O2HGhf57g`5MX3-fTQ1a1qU`9yvsStZil1~St;}QjJ zqM{`i0zerfQF@>+R^m+AJ0~P<-=T1f-Xst`#%EuoJ9E^#wA%Y{|&I8mmH>PCPgA9=UAGgm4%T{m+abt;({cm z1DF>jFM48FGbCF-279K&*&mo$l3*zqawP7BfX@ zhyAK#b08?IB=4QWU|o~kS_YMBBz|)MRx8;bHke+)q*lHXRKcqj=v1wBV4-~NieN0L1~knmWNCBV3hNjNtl z;fdsJ3RsLw#1x``D$&zK{Y=s^3}{E`WoPucNXu)$;3^$E4KO$9U+aP5E}ff;VxROm zPmt`F77yb$@|0fag;+0XFD3dNlrD`1pSN@p9fb}_H@pfxeWah!uFGGlG{LX{Y4i-# z0;NNLKzfjLyaHkmOW*cKU$FGOkAM;)jb-8C3zeSy8MQE}ln;_{X*r#zBc%J~XpEFD zR08F=RM8E2(b5VDiWsS)7?iQn)=#0?32AB`NaCcC?||W?)I#(8DQPZ+%oC+%%7Zv9 zox2rc&q!aIjpD2{dled!rS=a|J1>nQUqXs>cstlrrB}(}ohD5x1WLN}##RhLhEzm8 zolNO#d8lPcs|Y1qY9h~ijx?O|rE;aM7MPhY4bXw4K$`q2YK78fiqaHGXWm3nEFGtf zb&2$yVEhi3rAs=&S1zrn07`{)`xQv2l>U+gu~($?>0EVHIzSnB)za7KQzkXiO`oE% zR_c5gjdjxXe*?2#s-^hmb?FAWz|kP>CTC-#bcj;-o1|GkLYHQ#WEy_WThb;52H3l#d33qCTRKW}a*y;)1Nd%B{p~33 zO6TaHZm;xj9!TyO4R6vZEquJr-teJPuKm4njOU!cU0)SY7N52QZi zL?4!h-T~!^w8;Rm52Z&uP#cvN2~c|^ZCnoMC(?iCK*4e82mN4pDvhUA?U}SD3zUws ziQi*9on+sUBg9pvk$}=o_6-N@?y{fPq1Y$eOrezhGRHNr)@6rM0CHtck z#X(sYE$oM68)!G`BTJ&+&sX*w?Zo|M;s_K0vfqA#)`7B3{{SUO_C94+AC|2q*Z&dO z+Ye#bQCaB{)IwyuKfoR;%h(9MFj-$Lq=(DCmx3Wu_MQ@yQ8FocHIK=DrHE0q>|POU zh>=aCP-d*Gh5YmJvUNLAOOO@(2)>iDNZOyBmbHHgGtbCA_Xpou*%z;%F`c{J7r1dOjm+Y>X)7U z4z&SU4ju9D%Zh`+J|wH~1oQ)0GG*ot%RVuHazqwH`9u$8N9n*gDtoOOx;&EMk{+H& zxyKQ(JIh@H(C8vhr7?4r&tjp^O>TYxeeUumI>&j)v#nr1AQ!Jhqo=&j0!%M?1ZD6Y zl-H40%v&y_x!{nTVS#2oa>h2)eC5wRN8u;0pxktS`6CKq1;{tjyBQ?kM(GKM^)*kHAv#*M}G!iy!*BVQ@sO$bR zDK*RIMPQU}$yd{&*dqUzqQ|XrxA&l6n|#MA@U_dYi^0$#4}JuOPWc5opmxb8(Zk*? z_pO0uJ@V!Az+mTtW#* z_vLQ1-yM{%r$f__Tu8~s59ANWK{+gcWd}?dkvBd;?V0%csDO-Wl%I}3JxwJcipNUm5~_GK2P9#NZ+!tBu4pMj5uxySAJCDC zltzF>DWs!-KBnksfweJ;0s72Itm2bMD0o6Ky$_UeiigqQi&uEkTa}H{ZASWvJ--8mT6%I^G=(pHX)0ZzCg1i2#osiQTvSY>Q+bBsf(}Kd;;mU=$Wrvu*&zl_HotQP&ig zRspkGp_m8C8ik%xyK5Dx6=1JZTpWba^@@w_P~y6xm)5u&ip%72xvBV$q6!U)@`cd4 zQSrPUlue4SDP^o#!KHhsw-kxw?rTw`Q`oUpvF#B0+7!FK17*9S@IK7!P)ziP?VXC~ zl_}R9TQ5j7;aVMqY45;g@Tt)sR7v-=X z@20ErV>%_fDbLZZes|?ZOQFPml{H!D^HOem3`%ch7#&m& zDMx!z^HDaO0i~}pl3c5PN+)us1SnldP@r-leV{H#`I`|Vaabv(44YtOBh89Ol>@Yg z4pHtr0ePXy>%XBfLb-G**dvvnYy?=8^20(1idHWC8aBizKOyK?WfVOc@k$wOJQI{o zzr*O0$|u8+a9(LI1!ju!(K&#nD%2F zOyzSwfGy5f`2uBGJ&Ho*Z{^UeNcnp=7)q2s z7DJ^{rHaP7OgVWOlrL8X(Qd6mX{2vFRw}2a0_BR5{}%eLDwiIB*lWs6i$T z8f6Ua^=p-JvnYIRqIBy6bgQz3wxMmxY1LrwRDMGXbeHl)+81;y4^!x-M_KSQ#^tv1Z<^Nb zC`bPU^j+n~I8gQ~Kg$EjJ!Q8S82Xg2(=~{GW$AoS4k*370exSY^&I34D%~hAZ%8?D z8%Q1~&3|A#hm{l7gK|U}PtKf&%2(ncXjFOZZ9qR#2GjBQv2q(Fo{cGW42XTA^q~B+ zapgO-jy+Z0s6gX0<(hKvIjVM&gVsrPh5RdUp^gCsgOi4;`mkdkBWbtIkupYJ%z;O4K;13Z{#er&Iy-8zrg~UqGePs(+XO zOH%#g0={#qAKK8EtV*W^^StT@B1uuLItqqV)nZx$(o_fNP?4@m%7DC!s@!~xONPpo zd>5Ijn+E(;*(w$7N^(?TSs=+({Y0_BJk>dxO7d05DFwYi)kRs4g{tT2T2PTHk2Z8A zsvvrqOI1y@aVb-6W`N|f>aPGamaA@4c4mcYCi#pjRdx&buBeWZ(brTS6uzid{YDFW zjcV;8$g5QyyA93iRA(tCqh6JI0=4U^sC!!%v`WSH&n{Ux(@~nrS;#b@T~@E>&7E`npxBUr_X@);ND!31l2dWE{ z#Wt*}N(RY@YC|(>4^_St0T@-y(187sN=Yl%W7VF|A!tlhI|&2wMD-3iKF3wgDNyjK z>hD01JX3Z3@9j_zPk}{F>Y3!4b5>uS222-w ztGB|20Ch6W(1Ggul@J@G{{DT)JFND-jv`oHp8>;;s0S%W{;1mU2^d1uS=C?&Rd1#> zCrmws-m!4?;#%kup;qQXiAeP`E7+sdAr>$kQ+r$o^l`N+0VL7tZydo8qmCvAbgX(F zx%5t`M=1LyPW{eZu*a+S(#`e+bzmoolj_+NZ8@c`69F?(UAP3+o>o`?48Ak!E5D$2 zR=tG|nn~(f%6vbkj+_m#$?BJ_AUUrt*#K)()axloo~lmYgIbz8X(kxb)h<3T<$`+A zRcLlmeVvct$xydD12a=Sg_fQyHD8Tdw)%D&NOIJ;R){x8{oj44dr6%i2zB$+zs^UI zuhzDKvOv8%7|@04li#3Lq~1xNZ7Ej2_6A5w)MLBQSE^n}S%GD0N7|fRR!^scX1RKF zIr=KpD*6OTr8?$y)UK$#7r~;d>hc_rRH@JW4VA8`CsG=HwR+VjAgNJLlEbiCbx{li z)u{((L(h8k*z>4eS6k^0#|?D}?bdFpJN^V;gZi)kP-|3oQzCnly8j*+n$;7Y2iPsO z6Zvpk)N2JGX;s%MF_3L)0ppysG~vw?PuBd5vPpVVb1RQG{#4JHZ~IneK{Fiqwor zp;DCQvp`TD(-hHcdR)`+0v^+7jW<1RF&amF+0!9bvxYn%Cp6b7-8fG3ZX_t4_RHZ4yswhWW7ejD}0ORA)6S1Hq7_33v&5p3?+}gD+WQ z_yx7|nqs;dlcFi6l{rGYYY8J43j zOOy5?^vu?{UPF(?y%-??9tKNAw}Ym#07!=R>hBG`vCJ(N)LK;u0Om4-E`M%XZ-`L`E+4>dD6sEumm zJdixn{vyTEryTQ>`QKH4sN?R~Z1QRv%G>o^W}f9<;zQ3=rgL_y?0 z?Hvjt2Wd^yP&=&MLMjDoH&Key5iS0o5Z*ZLr+olA*ifw#O$lMz{?i}{*BWzC zi_iwmLoHHk35L;8S_WOeKBoQiL&!U>Rs01dqP2y~QN(Cx&xD?_TJC!wIia2N4dlgX z3*Ul8@!Gyk=u6N(UVvxfq_$)g>^r4hNS_u+)CTVh_(3wal{zf*WSLp$erKxb;XG!j|b zA5*}Pt*xp9dyY2aMOd4wT{j<%m$XO7eVV8BiHCjp+7E;AgBNJGUIcrgc1{c$i?k;w z^|@HvxEEk0+8wk@FV(tOu3>xMqfX? zs*P9=%qp#vz8-N+d#wSrYVG9hfUeQbq~xnwZ4jjc)@hwCL(h8cp@%@Zu8p8b_6_aP zAyD4bcHM)72Cd{KlyB7To(qyDEu#!z&DzUvg7TI&m!6&$ZB-e>wrbTBF>2E~t^{Sf zR!9qbhgLF-zD{i|<)wFNhsX=itu3Qhv`5=A0SvdbcWL3fqrF0zqIb0sacJz-)@=aF zJ?-pSVDHlgk$0qDn@4WK0qvP(Ai1xdaTUd&Hn9%HkhY&PHy>!-D9Adjbq|Jw5pDQ= z48cQf08MM7+Qqb1jcLE76s{-Qwe(JpYo7#w@~L(YrF%Tn`kjO>jynH+0CUpWX&2)D^vm z$;wN2isBsyb%%JUdF%e6`RtIciasLYqdWZx?DN%mzJO8k)4k(|n!m1|z5x@Ui>D7P z1nNGdoY^4V*9*XRShxBHieR1nA{dV7ex(`nsBStrphI-cE5RPBYo(}Vm@b*JCBt>6 z$#WT@`;*RwkveyB(M0KH(0<~Wj^zhaj_dMAKpCyuORmQlT{~^8V|6JBpgf^#Yk~AQ z-4a@$<8>U$iciq_wSfJkZre|QKBWuz47w!hCS^dg)4D^e!FNWtKfAkmZYmB zckMY{%K#dab!X{L(|O$mBN$S2`A#TObrZZ`N}7&Mr@?gHH!4tG(7EDU;SLvd(chsl zLwA7!+L=0+mCz+i_d_qV&enbSDs0Hn1^TwTE=)Gq0I`cTW$8NLN&p{|%5Sw*_W zU+^;)>!#E1P@)UnioR0advqKx(`j>{;ALIPT_{nmQ`6R=LiZ2lj#TOrXi>bP6Ffw5 zRaf&2U{$(>6ivFOE1(TlweF%0>elEEz6ZlEk#Xk>z>fj@{TUN1$=jPFHc6%t1EJV zVfS=5b5ZNljZ%(Fzpii%Bn;^AJ!QOOx zeYXS(KGdzWgJDz`MxN(KIw>1qk9B;1C^4p6YKIa}bek!)ZCv-n0{foo^2r7DOy^Cp zPe=W4bWh4jucy3UXT2&8lrH)syCKL`Kl3^Sx#V~J*fcOr{8uEeEapIo@n&Y zFEzoG1A1>4^m*!c2BFbQAKwkWL;4A{L-NrJK7lU2`Y$L=#83YpC6xH{ad)!(BtSD3z!+?nC} zD2k3p=>Itm%t(D@8ER4bK#Gt0YP zP9OIv_~P}e{2?zvUq^AnlX?@y`%mfrqsU~UzTqSqPwNkpJM4`9C;BGBS-o->_>%M% zite1#pDIQzS-+Ex>gV+fHIR^^U)~CoRK0W`h9FHZ9{_v0e&`-7x}Z;^W70+at1{Fw z^uag4kf~pC0t{LD4JD{$>krU=DMueij^tc@3Ef}0q!-ZhnWuN9B=>y1GhLx8&~GdQ zNumC&Cul6v_s}y@tnVh*PKmzrZ5Umu=hLrQrgyJI<7NG`S3pv(j}>BgD)etrN_eGy zNf-3IqIaer;HrKrWv*1|U3*~IHN78s>#OySD=_jk`ffVM)#_Ok^RCldDMWumf2IT^ zH}&Hc5Y(W5nKI@Z^&=6WY|^*W&68%m;X0(>(oZ(RuonFbOVHP4O|O0#MZ5k@ z%D3szPotZ zdwSt|Sk$LiQescP{%86y;ebANA1H_Pew5JlKtD>k*~9w9bg_6uFCZ_+Lw)U!P-#?u zf~M_9`bCAX=&`=z9rTUqT`xo46a6B(^E0kbpu_T0{i6z)`Aq-ELDU=#I=a&4WVo1# znzLbo2sIbOF&Z;hgC_-m+zib$d%GKcrbU0B!RJdTvEMK?9Vi|KrYnjAhMhqerGo~a zYasD9e0dJVA;aA^42X|G^DRhx4R3d%=4WVXhXjAaj6pyL81&>o2{bHS3d|tG(K`@( z*f5Lo>w*oHwC@Qq)OrIf)ZqU%8p90sUqKme=%fu+gkf7N*dqCG|ZQe6AILD3GeX@-C3mU+72M>SotO7)f-}7gi6;9`E(WahGFz$Fx)g8%YlRj!yze98Vyx+VfU7yt{S?u z7!EA}d#fRKKNRdR{7omfPQw8aYF&m+w5#kkB-x=$kKw8j@@^Yed;vjs3~T5j>|KK& zCAah%o^yuL_YCVP{i)AziNe(V1_mu>1BUs#A>qD3M-JgZgLEpC7&g31hvgB2njG^F z4g3EB!>A#p8O0;R9s!hiY&cGb`Z2@DG;2ID zHz3Hx_y2Pg-PO*Hp- z8z<7se8~8AI5hJy=CIJ{YrNBpnx8RyAqs!vhqQnN7^j>9bfB?;PNqS|-4qTwY|P$* zkq9=PmcG zW8OLlI%ae_0lwqL->Nal(MAh-Tw;u|vp^DSyh0hKCyY}lU=e5R@kTA)I5PkY3C5{5 zNIz*@G79KZ#&hHbO*GCYzy4|CWXg;?W7LMCcGlP?14)vRPbq)rjRUk>OEI!3FFn9%o|vFRT8t{FKI7>R1*JRSIIjO&{qq1Ko}lX0D~zyl=p#`WKW?+#Ls!R^yj6skRw^{t77V#?G}6+hM%*9{M_sV-%L_GQKe# zeceXZY{=^|uEMU=;kNO57l!AKu}uVZ?-}1ph0%S+>y+o%Z`@7!m;*-t`{288WRl-> z(D)8TNr#Ndw3t3HZlOnN*yvzGZNxb5F=`Kui)dFlYJB4i_#PQ!zenR^;{bW~#*EA= zX!gW-VIJ%oH%6Hu@2PQ(1+`~JXWFwnnilj!tdq%`?uR>@Bqp%Cmg{DUhx@c$x0fE$oA)<-Qm*A5-T> z$n!P%P;Q~0DfkT({w4`Y2ryly%&|bz-?T{#HtFdy{SlMtI4nA9I@k+AAtr?yD50hg zL(msydgm$xg_~~D+8<$h-vK0%rUIHgqD-ARM!;~~^iB>?qD@`hV2CljLlM+i z)3H{_J7HS&5-8(LWB>c8w22!E`w~obo5sj7f5sF@ z3-no2+9#k)GBH`GoilBq2{75z*9nsIriP7foH{0?sf^;Xy*C>1|3x$ue1AhJx9qt*=0Oj_I9$L6U1aOt;W3nHG~vFVFPB z7#j0U8)^YvVEVcnwL;TQTHK0Euk}J~u_>JRN=*Mu07m>@s~x6MVO+m^RiuCSM0=cH4C8TTtFHRgnAp zuE`LFqSrL50t0!^6hWKWK2tf($^E9cBoI4bT1?lW@0)x@U>`I|$3Qt`3X);SADC{G zLi(`j7P;a_Of`2v^3asM7-C0Fg6U{{WZFWfy2mCbIwFpl&c~v7Vj8D!k&l~hhXMMj zDS(nRpP8Ck(C28bafNgz^K(p~IGfAAg#;J#dJ76y^W6r3xtU|%f*^OZo-Re~Grv*< z%Kc_dI0n+gTu5nX2h7>*$nHOp>o<3$#Ef{>w z+b%<_pLyw5VDLA$P?}GG+0X^e0?mPm01Gm|xf2YB&3kAq4mO+iqVI_L4cet2HIH6J zEyR3b7r;WzGFs}w%x%OTZr;g6V}$vOF4z}ozW+BQM49)}EPTvdM$5!;a}VV*Mw?4a zfQ~V%+);})=bQz}33I_SNQg5R`Jyr2e1M#=r_67TqA$^G5y0rvX6y>_R+-=V1?=a{ z{jWi6vYCAa(5YtIC5TNkui1qn-JG!iU>WA;908VT4j_kcmU(*>z%H3*M}a-he3dc^ z^3Cs1E>)5Fb@C_`n^^;>m6)eeu)EBxp8<8wb$X zX6C#H8`{m6(gD_CHd3Brr};lx1G>!q2Vr}+`M@9=d(6wohjiQAA&2xk<_Nl{ao1cO z1j=6Xfp1Z}XAV6G34P`#bfoDwH&?;10dspjY`<^rvV&yM97$K3hRpBM6Eb4nLMz@w z^NtkgGHPb$p>NFGauCH6^BeckH*Q`-e(0y>e%h)$Gq0lGWAEW`&f3gpyq3tPrFe+i;B(<{+3H?AR)jqr4C92THag)z97pjfX03-lJBw8Za0amuo@0wjr+)OZwUEv`vuOtLHz z0_B`#3LUvqEQO?CswHR!Y)G>-ZHIjqEtUVFmSHi|KxSHaZ=o^EvVIdNvn?XJK$~M( zO!IuM<&R;IT(ZofoQyn+gBeA>CDa#v1(sJgqp#5N?0t+xiA6+P=~BxsTG-1h`PC>Y zEHBZ=Iw~zW|6t6nSPpx^=xY`(y_D6KBnq9@SiU6JN4-Ttsb<$LS91V%!}38c7#b}f zP=;HRC7!kw%@!+dYFaHDhXCDXc}%NeyJb50aJwwe(FEUZS#k^vJ(f7S_j1?bLutyr zmeuYcxn~JI1ol2l3Qhj~miBlI!GLAOdtkV4xiu5DL5q^&jYF2#T|oK3Vx5J?Vax6z zpp01L-$3j`i-tyG)Z+9MeUB{n%qX5%{(J&c#w|tkKtHtz^6*o+STjBcrK>gh4wQGZ zHeLnhLF;oJsCiqL%}3uM>mL+j@UgzM5kuf>b$ttce%3P^poG8mG~H?su)aPEV1d@1 z?&u4$uAr&%u+@{C#lhC8l$(9T`q38$@~n##r}nLlJAe5C*Ul)|NCd#93$7 zgCyQM(Ffz1VEvnHKWW`Y>)0vlqGXUHT0f?|gwxg+=utdl?Q;alS!+uT_>!z%n;`w1 zHJTCtldZLM95`>CQV$6!))LCXNVWdO2W6VIZW2f?T3@6sRfct)6tzt2bR&u^>u$Oj zo^73#00}wPcc(yXu5~Fz#4cIS(uOY2x-bcR`BpAv$`n|?X#{1V_28E%imV?|&U3Lf zPK8>Dbt$E+lv>Y|Bdg3BNr8^bR{0Wum0KnGP^rRtgI?xJtN06$T(NGXRF|vPyA-6W zvQ~ZpYp+=Ywt=MDnnQt(8teRXkX~!uO^1Uz>oR&b>#YS=2)b@vORv)n>m5oPzGi@tViUJ)8Qtj`vJq0=g-t2kZO zx6&Z5+bVnmjXl;Rx@&UVI)#mO?2ff614`Vro~QFeul2WoKyuHz^>@_ztOv+X)NfT$ z7Sw>Xk&+7UTYCjyAGA)cguEeZbS5YtSl=Ue^sv<}6~%~kS3Dl6ht{`f{v5Rq*MQ`a z)$;{3KDKTmujZI_%bPIliS-t}GUL|lDWH66O{VmxXV!{lh;_7m`WZ-^Y%fqokF(7` z5H%OuJaS;V+M23C;$|Dq1G~HJ207gJ*$jU|!hT!P2PiyjynO)kvTgbg(hu4;eF8pj z+fYA-?vSmz2{!oHN+?3*YrCe$@c7w$=D{L=Th}3g1=!x3i@reH{0=Y#*}~^S>%+Ez zhiDA8?S2C=@E4waMtYPO_an0_bzLF$(P`+YBC1>AY=rBE+WHJ|!n} zs!dae#x&a)O_k}k>RXU-!IqZ;c^7T}tpH_)jkgAUnKs!n2+FcOrjI9P+x{JagdAJ) z5ai|Bn#lou$@c3fP(IK0U@a)~ZS3i2EU>-45k;Y`m{JgmY!7G;R%{z3w@-;}*56RD z)b_3miZa`eSHXVSb}s@X<+hR=kWgVe5eD{3+tELOdByfD8wy^vRq0Sv*;Fq;&ug}I zcBoWs3#BxsI-5UbDAwB;*TH_>CZvdTgDv_IFdJ=$|Ap8l+pD)=d$Y}B0Ag?1`ac0m zi_LEx8ry9S6eaDjouk{8owohX5Y%N$qy?qh_SYb6=&`vx56ru^zwW{IUfW7a1iNRe zErh&2+gv;N`fZ=Tjbgx-{3RG3*uFRmhGE+?9|#(;z5WFl9@?g@grHH|m=E|K*~V$s zaJFxyZ-=?qmwgNpSG&*8kld`WC%}xb|4Z@kNc+Gb*rV(Z ze+T6;yQU88$L-qPfR47`p8}E?dr~p9j|`=(K%>4(gt<`%!@FtUaa-f|Be7-LUAK-Aazu^Y(o&f+WSh znm*~3YVV>Gdz$^@FMyeD-~KKdFW8sT>H4BQkR0q8_66im&a{hZYnx?vnt~$Rp7cA4 z9Q(D;ASl<~C5IB1?4A?^$+I7$(@Va+^9K3~>>qy#%tCuTd6$dq$rKtcw#T%=z7qQs zNLE53(jW%hUI6}@a<&PQXp{m4(KRoGK#{j0RUcMK#~?JrG4W0n01eUs~&J&%$x zs_n;VwyCi{ZvBJ+beh&lHW@pZft|PwkOkqVJh~b1(|W$*Z~ObDEq>;X~)idGu<# zOs>0+#{c8!y5q8}zIbY7nWd%K(#o>lz4zX~GHp+@Y-pKTnVD&p#gZX11=%1Q1ZAp# zEJ3!iw;%|}6mftu<@Y`Pbw2mrbH3-?`@GL{?>*<-`#LeQ--7rdMh9I%?9A9^hc*|+ zS_#@*8QwZ*cVh&;kJ4erpN_E1ozXxy0UTl6d;)DAjEs7eJQ)>~G~&hhCJx%Y8Tt3o z=ELwIkAyGd{)ffzQK&> z7C?tEPQ8p$C?jJD+QJx1*nkdajLktHg3*_Nr*fR(yB}bYjC5LGM={pZr#YH2N3&=Q zBZe|>V;QW)_?^Wu{znU}c*a-BAPJ1==fRT5u+q?-V7x)exk-!*^U#;fc#F1kCmDVO zc8YQ6EJzAt69Xuzj7Rd(hcw11^68{AR+G;ogTeF%N+x4h7*I|#9@~V~Y2*mop?=VNwNS=T)FoGIlsYdllnhn)@#@ zqH{qmG5SA7TQy@k2pVb_4F^DK8NqJ?vyO3*GM(xfN%Y@W4UBSHyEQV>$sf|hn4-XR zGs97ik!WG?XeH3fc!$=|ZH)ILfZ5L2O^%SujC3_vIv7v5pktj3^Q$0N7}N7m)WzTn zz|zfV{Ta4gW!#~&mOYGTw?bbp-(HaOlZ!li}4gzD0g=z@gWQO70RPHj;>57Vbj4<*LOfnw%3T;!2_bGZj&3HhH(hMV0g0@-4dlYP&WBg0U z-R?8CE5I_(DESbI?3nxB1E)RnN7|}8Ff%Ek#F6<0IX<13XO}?3A?Dj}pv{>%@-sMH zm>Y+|;>t`+0E-*5X9(mlvz^>2?#vIfVf7Jaj~6&Sm`mOOrzi6S?UuZl>Cx!BH*+WX z*?pJ~e1(zsWv(Ru*-_@V^z-&(_Pq!Je`c>2IFB)#{7?#Da>>IQ$V^B^We{`uAfSVp z-;+rp%sZQ*FO=C829_{p+bd`bXU?pFh6v_nO4d8hJWW$bB=goQ=yVkGXF8A-%X}{y z0&&bpT8G3lb3eobNMPKn8bGQTAs{CTFk33e7ScRv79%|S9Fy9t{rIV=;p>&0L&JECA%*8b6cQdU7c9pqu zJy?2}zimflFEgMPUFlvakl1h95E!?Hlu2lXfgu_kDn6wG>r-i{DfH0|+1S^IaQ z6vldd3ee%KW#6GPg7wOBs6EblxD(KktiLItB#O2AGnArPZC_#tVpy3!z`$76&onp2 zv6`O&bUf={3hN}WjIL0d$XXo>D*wNnX{WY(Is^p3I4iU4+swJH^*6xL64 zHCHO@0L{f|tj}nW(^=sxbUK5j^MZy<)}J{joo1C%^3EAncNi3%W%0RCl*I~v6N=8U zR=p1KTvqZzkUUnHKicwH8|qOiVBIc+qC!^I7qIg@YYpAmQN(()7?s7WFQ0+<1=i?o z7*WDXrz4l8tW}iNQpWoE4;Ww0I(!Z$Rj|%c_HZTZ*EoOEYVhVj(T8 zxlhosR#sp<#M@Y%XJBqS>q}Y$UuNB31=7L#h7EyE)*FvN;0kLq?J2uh%QAu4%{oa* z^;cPglz-O4x>W?y%M!0fH~U!be?i|h)~8>ixBaY%`%pB%+Dqq)2U%U?uxyBR`Z_Jp|v45w-px*4)w!$(W_FI$z z=F8ql3*@70-XPli*j4nR`?F8J19FTlY6D9EJC0W3f$TSFWfjCeq=I-bo3jsUL)dPO zD21{eB@ho|-`|3+gtH&if<&<6=tSdj_M0z(C6c{)3W}oGj+DEKTZMW6}Hzx2z0Rzn*rU;UT_|E zUS+q&!OkA`j`v|;FMHAnq>udtB`aKG`;h~zpZ&T4&;#r@jX)V>58F^0Vo%1vmSJ|^ z0bq`>?XE-Lb@nLb5|6T11_AR1yO!eNx7eFGDBWg1?u>!F!!9g^_&ED@%Bh)PPyGTT z?y~~6YhV4kZx>@#*G6>AEtDq7vjM=QV0}J&c+VNd2tNep~0I|MTsFkoT46R_vKvdMVmiIK}SxGan>ya zN&tt^gi;`7*`n{duM3&9e>SsRT09p}8e z9|IZ5dHpJ^j^dP$fhC&rEk&|pIO!=Mv7DDF^*N674rOG;bIQnblE7I&UfV=Y(ytId z!AXckTN1~aI+n~)E=J`^4)Zni=oBY@2Bj2^+Z+T^Irp3Zmc}WdFMB#?mgd_G&dOo1 zWO9C`P}pfs2qoy8;b`e6e3mnm3ArpzsvRuL=Je7?+=jKIpGmnFR zUc$`92@VEI0jJU(0)-rVJM{fLr)MoJE8--#L0>T^g%5KtaI$?NP{#40{ZTpRI6c1# z&iC~EDmh&gy{h6&_`sHnoZeB`a*5+Y&##)Znz~uTsi)^x%ZWY%4RxH39Wbe$6ZI{| ztby~}6xtd&LzKGE#L3--wr0+wPe8nl6W@W#c8=-;Kwst*kcX~=bNv&@b#f|bV!y(9 zmFAT$&fXRn(apI)TkflzPu9c09?r@Di1%_rtWev>;T52Cjq@hGPW_w?JqBceb8-l6 zgPbo)&^E%^_87pfb9R#JYLruy3a}d-k9{z3jH3?%xyjj1Gs!JZ-C?xd<}9H%?hfar zDu|DBF6n?d!O8GMAMSGUXis^Mql^U0BUbI9Wo#Qo|U z7!k~E=>um7_tQ^7Lb(sjfP`@`(at8E`%ONEAcFfF4ajkBY$&uxa?kt@uqf`6wNMnz z&3q0lG2AAa|6;i-BwE^ot~}b0$j3+~aJt zo#Z~Ig1{;6qqK8N;m*+)I+gqNZ5WZpeThC+>D-5CqRrqQxB{y)xdjuDJI(!oE>Sqc z-LMiYXSpv(fs)1b&4fwW+%DQs<#6j?fVtE7UMje< z<7lho2GeVCiTlTO7+B2>7=T<2_rbp)P|NlE90GORCvTyxo?Ad3f(EY10d0-k6BB4_ z;z}pc*39LRr?iC|x*A}u+-+u<;ecUGcYmjT)@ITSk&;4Q*>>S|YZNfXo z{p5X+A?`zz(KF1QqfOxm_xlgPd7V2ze#J5FYRbO3$^D7ETerBZ)iB~V_xbn0d57ym z3-WQU1FbbCxQ!HpzRNvFfunoerzl5ol6%JpGR0kd0&>&b6%?MC;l30H182D(Qs{e* zJ3+Ys_qj>5?49SXqz7lm3#Dy@J#SV3wGO=ck1$G(Jg2jOcH-@$?Z6@4Q?p=k=B>Pl zk_&IiV?c4`*~%d9#@l%kmL2B(Ofe02UdI%~kMLqCcILqwj|8VD@5CXDcIb-q3>(DB^{T z!H8m>g(j&BykzoVmGJh_keBj0n?TBV3(v#Aa^Ac2P%C&NFQ8P(yYyei3$Onm6kX(f zMP8#zysvwpy_)yH2FTU$8o!6WT3!q#HP!LP$=z4a`|BCBHSm7<9$<|;Hm#bQcwhd3 z%4S{*WxTZT!pY0n%G*ait2Q2+4g$6F?y-S#nWz5;^5l2%cG6u6-8?n9nXd94 zr#YvG_W?yvdwI(!kF1aP;)8&`#@kd3?Ss5+La+?+zNN_IFmL8K#$|-ZqutAOUPT8+ zca%3m4!#?_I!f&xP zcmqtj$9skxrjxw9H9(o-{Y9SVXIo^p!LGJVJltcSG?|pl; z+3_R)fChX1{b;l~@TIQM?#NH4XuK1@oA#oI_`dYhcjoWO2a5~8n09=weC~R%xbfrZ z^*zk5y^1z>{^c%!9pUe3gYh2xu;*a4C*Oy@3|{=zMPTvfe?sXAKKv^#5clO@rSHp8 zep59R`SC;PbLh|C`5-Wl@fT21ZvcOt9ZG@x<~fK5@eOo_Dwx0MZ*Ye2Z&jld%9rc{ zN*LdNC-jB$<=;a?1pk9rv_3W zDwE&(76eZ7jcN#-;qN4;#aaG8|D8PHr_i+t+5A(KN1elO9D(+8{D;Ybnae+X9)q06 zuSo@FKEHJq<`(d0$mLbYw?@Ih^ZbiVU@77kQy{LG@5Mpe1^ydKkP?3DmtZO7zqSdz zE#vPy1mny3ZIsVY!T)kS1SZg z?^*`VI{wLB=uti2N`CzY{--~{&PM(QIvU!o;opA|WEKQ0b9^ZW<8q(xM{9<8zSr{rvlGlx z`n|p2>ng}O2=>w%(@}6Z9r~OEukME2A;G`2#c&o#N5SbL_?&jat^yz0UbzXLnTNn( zK@m-g?gHkQAV&oDGf?Xxn4uMtry%Mzuy_f|-@tf!3$ixAP9K3I&HcUtyFv8tsGzY6 zB|pK&Ibiw=vM7*qOfXN5f&jr&^lw&yf)?7Z1PS6&&=xFMI}gqffsnSAp@J65vkDWO zc80!if%zV+ju3n<2Fr25hx;KHDR?viBucPQ2k~gZ-;~@EBbfDrK&;?4eK_L;opdH9 zUeNtHh9^PriX0v}Fi->rt60aNmZJI4k&0fyyjFIvrHY7F?zSbvc5vM1Y+WycP_( zT)|rUROSiVDOWRJu>CVs76=A@La9*j^bw5idBJD@t>gq;a`qPsCZ7WI1wrxwu#^a7 zb1<+}5c4)VT_$+G0*cB7DHMLH5PV1%%~T3*B*COA0pm$%zbH6K$wHR|oAv>$S|FnM zbdBKm&j3~{h&+YLIzc?`bLs`}AA@BLg4hvMHVTF-A>Jf-U4qJH!N&uDZV|MR&$wOi z>bo%FvY>7iNQWSiHldw@FGtXJMZowPr7ppk6()5HBHuveRl%YQ=va@SuNZ2t2`0(q z)h~GVXH*Ud_B@AA(4fHh7UYHmVO7vKEck%J_alNQFM;K{V2Dncj|#?z(c2pW{|sP` z2@Ld$yeU}z5_)?}kVL+&+k!6+pzV$zV;{7S3tZS>nGg)pTKKMDl6>3u1V4WX?UMp4 zy%tk~v-Edc(}FD;XqXXvO+m9+!Jm7ec24leLO|aa$bSc!7fjOZWG76&3SuwZ`3_hd zginy`!%_IV0&1OwPtcCfMJOXrl&i3LAvCxNm(!$iSm^u(h`TU{QfrO~2kC&fhwwUO z%6JMl&@$9Z_|i0t@D}Eg&%;MJK#mt*;S;|>-%+87Htv4He0y{yK&Wv82^5~7xhhDQ zNVmBL3rp;P5+ZzN9w?#0#gBs}OxRQdxp3i)U<^-$(6AMy<3a&xh!no~07_B9A@cJ@ z3%C6D<_Ldy5#q7JbMz}u5RUyfuLvKC0@w-R2J$B-312=0fn=eaoYNTLP&35yHDKe^CeA{(>R|snz(T7Umy9WVQ zB@Cy;kc&cjI7*j}GGz%YYfk`dGJS|vSg|E=EzD@W559YQDKY9g~okIOIdV58fN|Q~O@NJrp zx`j0~16>vB4nd$t_!jM}dWFg4Z0r-hv=BYICM*5a_kNWpBo3~pzwSeQzi;pH{Za6|YOtHirqGK*Ft>#L|DA#n8t63q z9br^1G>i+AC`(~N=7M8rY9E zf6=e>wK*m#qSr7$R6%REKv5N~Wd*vLaFL3_4vb$}NGw1yP2~sY) zwGw@=5T%@l_Da#KH6T@@M+VS#Q53or(3eExG}Tp$ERtRvs}d@njsSF+SnxhL!^JV{KqADe52Nz9_zBvNMT*m+ zAQvUxM5}}Zant)4oiG zRPj6HfKC%{e+DF7Tuokw46$e( zgXD^rQD`_%T=q6f`QpCo5GWAy$-Pl1uA7AM=fzu&VO)yDgR~bd7B>a~<%0MYWiyqC z-=tMgsW?XnwPoUW_raEOvF<3Wt`M`xBT*^#pp>dAaUK07+C_08ADEZK+=rl{TKwiB zkQ#9r9RaBoztxHntP>~F8Gw3m;j=KQK|I07GinrHl0m#hY_vjctGM%LC~6abK+e>5 z@eLESUlxz4z}X?LW`Lzr{4u#Ou80M+(d-gmr-N$U;)xZ&yejr)1FT2<2Tg;$;x!@Q z>=Va1q3xPjOW%-w@yQ)9Vn94hPJ}`6PMQse#K9Bb92Tz^L(zzMyElx#E|&VCZB+aO ztx;}>f1%{nG4Wcu66&USuoUE$cq_eex5W<}g}yuDD|>-CF18fGhzarY|H87n;mK_kdFMjbcV9twE$Z9)DP8J00CBNmMe>nOSU?I#7IOBKppT!UP?WW61^d9ODf!<{fuPM zyXgB_$!5wl%#!>e24=QoD@~X=l6CoLJ11%X4VAf)X8NM!N!)!=nJ;naN2x&4wia@Q zlBO(Jc3x6Ti3LTHfj&T&NIIF|ER}e^0kATO_G`42OA2$)Rw3C%A^J*5h(Fq@B-bNQ zx+rO(iT#qKi~fqMT9QqNOll;?c~sU)GH5+fC#kvsQZE^&G=m075#{hSN>bhcOOwRD z8_>;?&1E1hl56y_YL)CKZ$+Eruo(}oL-N@a^mR&_6H$3Z@)NBwyCmL!L%drON)zT) zi8I9;dn8r~#Cs+CXCcrhSxFv{YmzU&L?8MkPxC+qBr+#xAC#;oup!AuKS5wvl1=-# z5y^*?9d=#v-BPrTN>a(ub3>w{JhCy#_bO<(Dfz|(&RY^SWt`oXd_&Lnj${M*>&7LH zl$$monN0?{D@icmH*rt$_#-GyO0sFprX%MIO@8fAJhVrP(V%yrkdm2DGk-BEeDB^zDGZXJ=+Em@}6_%w)171d3 zs?>u%U1`$zL6CIm7wtgFkUl~8ab`-r$g7zpWl$PLw)81V@y(G=&|^F&eS#9Ya-}6k z7?CGExfMp_OHB?CFOae*23;s+{Q>dw(hLDuill3Hp;RnAPPxk$q|Ltrr9@g80b5F? zB1*X}lm1FWP%aIO0ZWB+i3Kc`(xQ0`U6u4#x=Q1sbf^m&E=kMjPReTO0$MuMNSBU6 zpjJB82vR3~fY!V9(&Q{aH%OnQ%}=9rr4e9F(tYGEYL@y;qem^$aq@1pO53twS(|iu zH7eVs&$`2i%hFRSDC&^*bfVNLeRwGb^+E=C1uR=qQbbS^| zz0%CR(9kDkM*#YoG>y_u`=z^M06iexLx(Vir9ZbqU_`p*9)|q7^i}$lj7q0Hz;Z+S zXD`%_N#8tywwqGFZh+mAKK3%?Zc87a@6sLVibW6~mwsXe%Y?LqHpF+OA7`NN_oU90 zC^acPK)2FONl#EXc3Nux9Z+VZwn7NZO80r9G$*}FfvWpbEkVyqb6$pkoy_@nbj)7n z;14+m8D|X?Im*nz5O9*6e;VYFY!~g-oMqR)M4OB3&UTbsWjX=C++^X;fE<z&~g`9_M3!Mw`l&z%^-_4Gg&tDJ~&UxW;-E%N>+Fn=BCJWkAtMjzNU3~nyls$NV@EmQIHJT zQ8FS^wvCK9E!#@jZ)ap&a=V_DwQL4UmTa^IEZMR@DS04Aw)!TtpObB-b!)CHHx@?Z z$#zquDPQ&g&0GbtlzM;_%3gaHmYtUc24EzLWLs!?UMx$05GWU9-@gaU64`=>U|Feb zj}!Ej$x2>;K)LMi_wYEXWD;7cT$DNLA$Li(hIU!ivN?*&)X1v;2eq}bf@Yx9$<$X- zs+T?f584`Jr|BlRM%lY`e6UFtMmZAAG9BeSx5!-Sd)6x3Ld)egS>akJYL`v*f#tGn zVGHc+kUg~sa-Fg$kd*lT`cgZ#^1!lMG7VWOD%JzQ(%X(zZ2f^7Z``Hd{eX_y( z=-4&c938#umqk1ZMFTS36i^0bJH1dElJ!#F_OR?Et?ox;@9qWIb=lucltyJ&=ofiI z_CW&##$^3;vgW2N!5x^lWL{f9Zp&nEg4~fEFrsZ-w!Z`BPRNq}JHIJ=k4{S5lYJMD zwn^E{M<7!&#=C%?mhrBjZBDk4;w$%MKm7tD=4IW5=)0Z#nK#g8FF(Quw1fO9N|JVz zv&eWSIWG_6a!9_ACO&8R{BtO|$XjUl;wn#|OfEP17hj=tSbmTGa>`x4jskH<6GNZ%{%mO#TvO%!kV_(pDitp7I

      U&j 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

        mLJtQ+Uw&$J7qA{xRV{BSVP{*26A9H+Ln%t;kDQ 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

        m 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

        J7y*;RMX8}cm3 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%0A7-;yc}_^}9{)G~IKFj0mg=-sT+ zRt$vvT`YP}3OW}2!$7W((1ZL^9bZgl2;A@O?lOPs0v%r(gY3DBe6s?5dv-%ey?o+g zy++gwb+kCmrmGF*U%GOQoQ66d7RtWPF}_>UhjDc|f!o^&DtR`PsD&*MW6WJ!=cMr0 zwrkz5WAjLyF6>hfMOu}0>OO&3gvuMwQ(Xz~5PGuCfprB7s0mdBo3S~Nfu-5TUsUv} z&t{|3!JD72Nue;B*mhr=sJ2>$AY{ear|x29!aXRq40t=AUq3h*45>{ z!xq3xt%;rpfk8_g@i?XoXD9`?vBiVd9sZJ3pTpmhuJszo*Z~!-$2EFPAPTY7DHX}P zk-$I@SwClA6|0TRRA7b6(&1piR8btX6=>cRWZTslyzP)RINXinIsppOM3GSXAIRz= z&G2nXNy6$8f&%S(7Ogs^xw2a~H3fvDwtRr5N8`~I3`0DHl)#XiAN*#ma3F@fTwcTf z4(1l)6KNAB*tZ-Pk3Q|U=tEqBqUAGI%xp2Et{O6PD-6hldz8i>yoj-8*CN zlwZw}wF{ZjzIkS93P?CUV2z_jnhpB;8w^-oE>qn>yJSLZxh$eqnm?`4vF-n3M+dp{ zaQ&gzj3I)&c`OA8n3@ouz($aJK&QLN zpUfhquH9BLMZQZ*fHyfc#;qogh<8>eal-y10wI_ul&SH^$APChBw=UurIP6Hl^5aw zOt)fO0Ax5s)WE27fA#ha%WE|jNIq5dfQ&WZ+`t4bm{dE1i}s7?opPfYVKv?e<_ zzk-yfmS2GoGNvDk)&F+Blq<<)7BUo;glR6P{ekK-^tTMBG5r7*hQT5zW3$=7TY8Oi z3BTN)>v10#$6=DWaKba3UO-_rQIZP-66GF~FG41D)Kmye9ge=1Eut8p_2EXLU=(0`Iw9+&sl8E&E>|U5@>ZxG zj1z@ZJM+q=3vB|ym*T2IKy?oAGtI!5uI@3K1en8%3yXS2*bjrA{{ZxQ!Q5hCdB>yG zWZNv$=L{o~j1?ogjC3;KS&G0V@SZc#SS2{U%;J0NQT_OVmd_dh=`gTsd`gU*7w`=cGRv!WYIq3k-(Z0&z2wBiR@j0Do1{tc69?elNOS+QRqa>))vV$MCyubQ!T*( z6zfJs(sG4JdcB)km+%0+TBEvFd7-ZYN|0_7XS-rL%vRZCMf%3ldQE7s<(1$ib~W`0 zT(A*UI;a8by=Z$d7@PCV^+TMf9VEGVH?6$HbybnM|(PmT9^m*i%g8|KJ$W`!^_fNsi^`w3A z`e0(C;%F0srHbYnc^KX5?8s=76tU=_)OY}aNMxQ#=e#ZI)mIOp$`5uu6*ThC1YFJF z7`nWeJ`ep@m}#*d*N*%EQI|~pA!w?6WT~lWC?tk~Kjro1h8!@@bRy#p;!HO-N_3+! zLc0~q4pe^`eiupsW(R^$8!l9VOW2eAy>|F^5ye1?v>XX!G~yv(RyzPhUme0&N(kZm ziS10>6oUTN>+K#hmQFw3&tBcV{^6_n`!(vg-O*hDzsE0L{w02&e)#dnyLar6lR|Zy zDhefy+XkD%^*|QNstw={{u?Tnz2YtPty0!iH!9t5x-CtpzD*Knb(=DPq}$55qxMmn zl_I~Z`%bynSXZ6h5o&k>ivdDPccvk18;Ek0#=}&$ekFO-bR3dqMyRqQWhp5$fHQD4 z6LfgdO5kc;@vX9hx$+9-AxcKFAcN=;tl{85VS@Ze2&CP3b&YhX#~IM2la_KBv|2PV zGfj87Ek%!B%b6f34Z*P&pbAZcK(kl3*gS-#%+BZ#FQKrsry{!O|1pO_IuT!g^HW$@ zC0tQyZ=$3g^uHT}S05i9?EysctrNjk)=Q*|p`%J^>27uEJH(tbUU!Ww*wpS+WTe?! zd^+(3&i(*`Mqx+jHla%Ht9ZaD8J~=&PMsuvt{E2Q6LIxJt6MYSrqe@%P8UG3#-A8& zX0s`{yg4j{2CraKt`Wh{l+vEC#fc2J1VfTn(h`NJu7Babled3+e8wb^95i4++2%Sgn5qlQB`l>?FoRdj0K;BM|h@>TxitHEe+-UAR zVSEO?fFchn)E1@(v=^OeB`xECvr6QJp;4P5Z+*8k+U$BX89x<4#3zA$f%;TRt5&P? zQ93ygdpkt(@~{9&RY#{RQ$Or|`KR802YEuY#nlx2`r}787qq2}&U&P;WeFYR2>N(ve74W= zKtib80M?gu*EF?nYCwT5DJ`gT+?n~Y(J5I1m_FJ0m4a@|tW%^)AygrrD{)?!1bWXw zq%7ouuiBuh6k~F>z4xzvdUN+fkF{EvKDn_XtHeEdOtL#6NBw$dqZ zji`?P4bc)SKq0dzDGdsT#L~t1EhE$!g-3(`gz|Xmpnl4vYc0H=|o`HMa z{j>KCf8%`zzwy4q-*{hm75=l|cl;aQcarW?92qxBg0PakV~4HqZ#a*nE8iOqwKn*A zo`>$axT`hpVmiYxybGc;Qr$w$G-_*q8=b;>0or6Ho197Ar{Uz&+~;vUlaVxC>0B7g zM)Zx!V+GFw0-y-+&xvy~0Vx|JC{N*OpbNW$oF2O8fe0s4c}erUgi~#$@6)v;V7T;( z>f$drIFpCystC>vWWg0#Fw4Urov!5R3|}N<5*g?8!G)i5*{7u?j6g%1tETn#lvhfL zasqYZr*?@PCBCdi^i6v_!UTWyZHLqp}y%{9Q%jBn;lMnD~D&ZiBnPE~dI_i!V8{K#p|@ApN; zBIBgz@YpY^z~wHz&TGSZQ4^5IDukD}0DhYwGRmA8y>{XZN(IX-$a><5JX6BGpK#bBNxr)snYG9~vWF5%eH^=r>M-JEe_2@awsi zoC;7mbX%X&M|9C+-U%Y!`yW=5Pb_q*eM&vKDxU%|dinv?L{05l3)ahItRb*3Pe@Wq zcee*Ogy8Sd;0n2qSPm}Kven6j?$faR^{;ua`(d>V5;DJ4o<)!ig1Uz1geXjYLxW zKvtLA@Be;(_wwzBH}^sw1EeW(2@t!yUBg_prgq*YyX_y)*=21y9&jYcXfC1D85CZo zC`;@0C#}uS)B+pVteSFFJG--34(3putB#(tZxOYrMMIt9Kjg z2w<8nmbNB53kk8WP$D_Z@8G;yFqtPIsb~?IbF*84>%Dr>4%f1FLGQj*^ac-8#4Ojo zgX}ZcK?hxFADJ>!0o>Fxfa~k1X%&&*pRN}6EzdLXaA9TYZcza-U#|;hXO!eH;Tf98 zwbslRfaXu)D-Zol-%sQpp`RxT{cI3_M0Awe{C2OFnOJNMRSOeZz^<>uMSjKK-t^Wj zpSWX)9viU3G%#0Fa62_rx4LzcXotI=4?I?QK<*VJgXc=|8rUeDlZWeOVsNA)iP5S+ zi}nZV#aO6C^M?MeiZuOWsFipW$H+&pg%cnMY|Av!?ACVz=^A3eolWy?-KXJ*tn(7? zJ>y|Scn5Hb*MgZ=utj?N^atmv;fbf$K#dpEt1~EE2Xc7?)TK~UB&Lmul8XGg9PS$# z_pKNjHIrr!DMpG~f;r16@|Ys*ZhPvfOm!6w45zkAvU}XFds;HT5TM&(n4E4v0M_5$ zW~}0P6M)PET;peORYAMxGN(cy2*t#LAy$b1%-4WjMGkrxTJ%y}(dJ?a4Y?{G-o3xS zxO?-{{a?2I;|+^z!`Ap-jCW(v&`n2Ct{Q<+l9`lqP{){(F4QsU3Tl=-EX>A9g|uUs zQBlBEJ|M_zu8$&`jqNNa9`o*;cFa0RHj{9XWWyl{W)+C7q}E2P#Y}$74l2>N+f?dZ z4t;xH??3M^hkev`&%cs`4bf>%Cd_Qa_DqVS=Nn`UcC;(S76K>m9n@dKF{ochkN zwd3>6eCG7mvIc8$0EoMtH+PKC0*=SnT)0yx{UZ4Gf~gbJCkfrMfE0`p^bh@^)D2>r_yjm>#AoBJ@N+Wi2Jz&`i9nbEuS|P{Uayhf= z55dIY)WpxEpe`G5b_nYE&eSRHcr(qV7g7%n;O^TX2c|nEj$LeqgXgd*(^+-!hr!@* z|9E(Ec!EEJ{r&5XyUio1Jx2jv3^s(5zD@?`O(>7b0w3nVw7GL1nJx3agUm~b&S(f_9LrGR ztt;p1E{zVeA2K@7&pLgzuJGAb)rAgbH!#h)ww7*C+cQ#P)PFFm1R|G{l&(lEu?hT@ zrT4mBYetg*o;{wTP>(GI9*vzy5?b(!^g)WGhh1gaJ!zu4^kG>&p?NikO5t}2B>Z6H zEN-{JSvTKFaVW-w%MUrtxhy6ZVnM>DEUrz;owi3R7tj2T?!yZwx@HrOD34Aihd#8I zzpS(0U?xI62L^lTQmf8W17|uJnF|`HW~XuT1ykBg2J2pW^7q`Zep=+sjesqds+&$` z@+8y|H7DSeCvX=7N68mQYDnpqf1=_MT@X!Y*B+rYOW>tS40TFZ$uIKIpmP*}(~uj( z>8YT#s&EEi!EoVYkzo!h1|p9GA_p3*nTT68LI)P~S?GTc`%MM#Ng!TH^NXt+=X`i7 zz=0tSc2|etQLh^aNzjxBeobFtGFvh<(U}JAHuuCQp(^y=Xm!^A3jd%)=idLzi2}C} zd)Hq9NZ8M!&-|-c=g}H*j$eFu|Kc8-{~!Bb_5K5{7XLB$0>tQxKfU{c4p6w2wCRgE zuJq`ydS6(Np3>8EFbMI`{B}nku+>9D3fnyp_2wE*C~y$4!a{32voPwjeROjM(+V93 zzH0U1LC?20%^tP#De7RwQ%mfUN@Fyh#6_1%jqSX^ggqsmvn6|bo>uWOi)dHV$TvUk z{fIZOiEXlnd@H3 zXj64hOeMu@nJ9;>5GxTnYK7q;a0*f*gCbN{LaMX?BscRiLjqjO`5F@+tT5(Mg)sr2 zmibn=5+1t5xkJymV^p#SxB5n}pxRL)4&oLZj9(Ee^p856auk-*@YCUxVELu`3BHWB z(ehVqHcAHJIA~-jj@VCqQUnlrK6$-He6i=3Ppivx2$Rj3KIPOe^aRA!o+J9&ti~tQ zJn|JIuoI!BexM#Rh9<|;PHlKOptF2?IiRzSdpV%9pnEys(3PJtbse~JK&PS|1Aqt2 zUv}45qyf9WA`RH}6=}e(uSf%SeMK5@1nn&kW?&*vrw4)*;W6tP4HgDfD z(GG#|Q*NpxAd!cs5*DL{ffY5^Pl2TP%i#m1Es3<7> ziu$XE{EE=4o8m!mS8K;PH9B>JYjF;@DR)Xv^6Oft{s3;k_&sKABNKw;b_49CqL;9e zSZgZikmEJ`9*J7E==|ZpaYgA6BVTgx#q(2$E}(j#4+=y}`pb0npKwutmh>9SDVb7E zj{FrEmk68?0`oX58_%Gufg3k)Y2lofyKKSaUOu^*A;CArruFTJ#`3j7WfK;TU?2D- zkn0;HEUYVikXUEr+ysjZEz!_K{(P-5flwK4jP$P!AZYe#el&teNjL0MP1h@+k(3~l zd7pE)OaG39WO#z9RZ2xcc9wCTw$Z6+<+;u+n;}|3Qn>y!|I0glJzb)(E%HPN*7>l< zk3PIHFT%(iLSq&5gDDQu;{hs{8}<5PP~mkBR@1Cfq?NEYY!Pv18#m~|=09Cq!e2Ns z!Ek`n1i!TMZz~o6((_65s!gK?*A?6E@c0?>sCx|e-f?9s> zqeA`O-@p6t^1g@En`-U-?lC$ZfBns`kVoZ`h3Ho#A%&`XeLj%??E1WH%J9Afv_s!k z)PmIMi!`LE27|j@H9EDYhLp~bvvPap!TMBkn?(hVbtoP_pTM4A_|hNL?A4R}-~&59 zJFLsxRXu4e*9jQDWkKiY+^69Lcl>`KWfgu%Yb9BdOMEiEDru zfmER|Fp%fYqLF_h?^Wfl4(Qh0Gkp(p3J)>gNWWe8isz;Lcx|=aw`06sKjhn??sR5x zgw8Ie5ZzFXkQ@W3qa3?r?a`^Aw->rFB&2pa?A>0kVFTe%ztX0Qg3|vJ?tE@Trj4Vb zKFaEyT+u>5-Z4aT%tS`bJ}SEvE`|7d2DVwEOiTKvz(Qfd_>U?eUCtli`ohtT4yLoSS2k zD`iNeq;wQwS{s&sqAM66fDML1DATDUFhyzrWaTvAqxXM*Gk*Qo`5S&x!8dn}$gpC$ z+@;0@Zz6+PsRV&**8|D7fJf*;;PEbgMIvy5W>=#o_D*Tkih0${pes^|Vw48AaHb== zk`&$SSb{%6mYn3gW~EpQl)>{!tKGPtt3vBSyWTjIseWNTr~Lyk2%*)(fuX(wr%Fma zsD8W-F?sQBWj_zw0~-FM*4zE)9na4CJbQe;u51Vn`M{;}5-u~m%ET(84PwFJQc!u; z(S%&|30icpfEjQ$`Uy?<kyDc7?LBb|O7x6f@{B4cdB^wm#guD#M?+A>*)aN%z1I z=&uKpkj9YU3(>>1r_uq%MwxRH((HgQIFmTbeXv%#TB1iTeTWV)s#KU z90-5NF?)1A%6;0wV2lV?p4P#A(PjI${47^(D`VxoQ+O>cmp34*2Eo0wYDDqQy8Iq z_>QOB!7ogg`2{<1g7DtO_$j(~fpccE}uWY zx*xOJdjVIAOVn?XCRa>>L42dpzUE>&MK0*g>bvbNs*_d$1h8`86+eIY=*mlG3Hk8; z@&y)xxEg(x|LIVZ+39~e3{TE=bL$*2lW~Y(G$@CVK&y9XB3OmtaDku>=$m|nDg-C0 zK<8r2JyRQONedx0d$k#qDQGqXhYn|-_<=4{<2!e`3nOwI@$xVTb9b zsP~W5(5Y8*;L=9Ej-v;&d7xK!1dgGS%-L%y4jI5YTawYEV=Iax@;ioBqWhycO(C47 zDH9ZaQ|e7~;ye@CDingRq3a8^@;2vIINc2enP2;ya*9w{V|PisHvFv@JORlja? zP7U7#Xe}>v0__A)eXJ^oyxl35OJh}6q1;qRLXGwBgwVyiLm>2$S_|1+5xCMeON zusd_odvprx*euN4!7N^U3d?GOI#bXQ=-2(0z99D?A= zfvPXVn|pJvE{=NI-|XFal(I;{RCYUoD3~mK(V)-f>0~9I@%R9CLLvrPA7L8Y(8J=A z9_fWzk~YKCp?QRp)1eyYg^|t}&9X^TO9~M=jrEm# zPcentzPUzvit$iNHMf*=@xw=qQgv%88Te^o1;?9pyRH@Q%FP5HajC^!!i!7hG>}r9 zKF^$z0kG?o!LeS_MN@&i5WoByCxS@!5OCI=3Z|piyjhczsMF-oA{FS4MSbXqlRp#u zLJIb@Dn1WVH0_`cxnzIQcx~`gx-GbNs9Xkvs`Y7619GZL>(L?RrT)rJ97+ z8%w)5y#UjNY!*Zy`C1@FhKX=+HNtGMI3R-zTLdXkyt$RYP_AcMj+|E`vGW z&SQ!`va1L&Wci)NG#X}xvQrRagdD+wlkvGzb-U0CSnb$psRilf?d9vLJ{<%qlo=I) zRb@yX_oi;LwQZz*Y?$@+oJdD+t)AdU%kGQj9e(i z2gqjDJA#1@8ix(uo6mmB@ujoh-U z=_6e`2!&ITzV$a}#Iw7LDD*{2@sXNSUmr&FRU%A}qTTEe%{G$S#LKa%{m`Z)Uj?YsN& zi`TEefAR9K1?@3>ikuA(=uUwofVx9>>Q}@W^xH>IsBo;@N=3m63kY2WY~ zt}#wCK@aB?(FQ7fwKap6`O@VJupB-7 zE7SdMC^EGLQHtp?hB#7&X)3)2nkBl0t4|*Ssw2PLln8!@`!py7a(6U?b(|S^V7zS` z*bAE2DB8@Vok>@Q*geu^hA@SjjZsz%w@Zy6VT4V@N;Vq{Lvxp1&s?t$as>`@f=F7t z)heIXNEd>OdStsO(khr}2DNsXR>8A9C;_@^X>P0PDV`YJW2lruiRqQrf98A(7F&!b zd+_s5Sf?hj06`KizD z?#FL`{ssAt9gTSNbmN{P(ho%riNS*zCeW*?CF!M+_oUXCgl)JnNKa@2T`T)|(kYGCIe}`l3MjS8A(&dYP7&?{^lu`oo{cyZfG|yftFhqMt5xCL zj!iZYBgS*VAYxTN)0xqgUKdQdnP~A;aOvdcM5^4A%Ji2af+l7*IyDy}R&E-ssSsEy zb55g6!wU%Z6k>We4bsjtK!`*kTc&GkHfZ9;7|(YKa|HNCZ&DCK(Lj@_vQ_n;HnLSQ z#Lzr!;7GSQUtCO*T0XfCH2d{QIRX&oG(27()Th6l$=uilCJkvEG)d^*RjdrZo^?a? z5NZiBpGtM4nn@$c+DV@)R$xhX7Z7N#j+IbntfUjML2;x6kM23MRp6Aq>7I?`$}*qEiFQR zP)va0^##5f!K3x1j!43a2as(FjgEjv;%XC#ncj!X=@09hCc5eEx?=axAz~n z$QAn{vw)Gd5FpQaKqeGvDwJu}!nQi~V4Fj7?*^KW(3$Sk!U{$8u7eaV!)Je6@UAUc zw0nR z5Ma>R4b_|C?1ytN&7zAXLT7513nF9h(Sn64Y|40C*HjbD6K*k=#K`6v5<3(Dsm26U z0fLj&e4(s;mvH#GzN99HI(-nO?LN;Y>MenPpI`A?d+%WbdiApR>dos{Z|UUKen)U)qv^}ue_Jd%j7I=} zWFn+(w+KqFu9wK2Alt76&On5OZt2S}0f~%dsowRac^FiW)m<88`D>ha|L1Nszop-F zE7uOOlQ!Yjd{a#Ru223?erNv3t5d{X4hJ7pAVSTuH?qPtX6GUP0(Xr34~={bJ)6)V zoNKtPD|5ao{2!Gm1eA8j(+%&;A^@AMevAtZgZU^2yHI#7<8TPl1(JOjB$ z$Hmzym?`Hs{ldxP)Uj1EUK`Y7;Jb$OsC8k>DKmY!4CA zmHM~P>71RfuP=z|lPh#h**H}qdW?kRf-)QRTT2NdFBt2!hH{MHpos4TH(SvF-;D_WWVd!nE+$VN zTp28S$AH4Lx_S-`1JE?^%CR&-CoTJGF(khhxilWw5WKcyfFZ1g$3RABgv0DT)!+YK z_%OGyHaIqto9(;jkTB_G-m0V5++PeADF)77tUFIjrGso^Qk-y5=li?D@O7X=q- ztIHhSxEiA8`ce>mQX54=B1bAH-{G|&R7J#wX1e=^mv%K=3a3=TNoQUaguSXA@58Gg z=TUy(rpm+RwvNIn+BGj+(_|4f8jyLxa|unOQiCfmQgMD2y`eb2;N$Sn-hv@E4fu{L*VHX#KuDNj|y zQePLfe+tKm3YN{ZjXa`V%K!b(0NowVWP)985d{DhJTBcQs}6mIPYTn>P-TRZ)y3Lz z0#Pk2i96i#e{1l7QV~4wpI*;^*0;}5-18c>OW}qdkQL`-_dtCaGqkdp-PvZ%63uqE z8={+ix*-Wg4J}X=gSKmso)Cu+XW<5CUN;u8YZl_6E)Cy~P^0kzKK0V~Wr5xNK~JyO z$awucnQsS>l(~P3)t5oV?IGsup9`CStV;O@zvImnLeq+l|cAkqVA7)j%xw7K>)K)ZTr4|`*ABSsz4)QHxqJbGOV{uq94R>lKrqd;HlF53M9A1aKY4W2IKmuFW~zjVxprwY~0 zBbF&QXnsxw6|rE+*jW0dm$@o6+IDQ71FoU}xgzCWBJiHRGd*lPFNJBMiU2O8e zF^fqg%eD*k@rUk^k_PCCX&mrRUb^S-?VY}R_x4@VON)-W zBfW9-S?7dPd36Pz!`nmsO^w)Qn*50dDVRO058YkO6Zz@W%1*%&*I!Zbg(AJ;+x)#? z5q8D{NJu&Q?JOJ|bBdq=iYS?>^JE_f4<`FSuRf-w0I@Y^3N-&Fi^s!>olGalz@l|W zN!QUB=-25JuFKK ze1RDP#|OJG1rv0+1PQQ~3FPoGvkUZq>gE0T$&sRAk}hwrkxUvh= zE(+{&{R*j!hqdY!l;wq?&66w-a!H88#>(u;W1Wh3;HR#LO%8`h!xR;KI?fy1=*Rsf zG=u(f7a>~RdO2~~`HR;-GH@cHGr~Rjjhi2Sc=dL0`4%-0-@Ze}j%VjD-u&?T?wwR% z7yt#?t|7r^Hget{MK~};3rrMj>hknRIq!LvDb+ELHNvFLK4mz%M6Wp|6Z?>Sc#Xw@ zFM`Gt`h=1TZ}#cSxgM5=o^Gh9Gd@KIY3Ghj@Ik``z!s6qmqvu@Xvg2C6#&ZMl;nyguWbgqqnNtL=hd}1QPJpGOK)eI@H!ifEf`SIInADLd-9t2m zil`bzKPJ4kReHz2osx=fYC8$ZmKvZ`hcvo0u|g<3Clo+NeL6L3J4GAAE?f*+@W`sd zXM8c5z&r!S1a5|wEHAawqSUUVoQuJZAdVx$CuR9r5x-K zwLefUwpi%!6^LGa@<+P*AhzEToU0+DRYRoH@|4S+1)@@)h9m#9B4sQBOd0rS9ijBtiUiAiP`t*SW2v*cdA z&N;;sqb0Q#0r_hQMBsw^;c|~W+X=4FPW{+G!~}~x9uF3lMLRBZl;r3QL%bOrp!D${ zcs89fXXN}(cBu#MVosHvnv#o27^Sb&W{NA_jFnmu z;;{7H0VG}B=1as9Ho)gdnJgz$fJ-f>P^ea&o8};W7xxa6E6bSlhbba5lrm$Opo?vu zj}OStl$emuF&OYpJza+tgiyZILpNq97sV-3vY~l9%ypPO5nnO(Yv=?Qia z1VcB>B7_{eIB3j%NQMGzmspaq<{C1I#fwUJ~ z!s)B~s}Dba4_Sny#@j%P%~d(1k0fObDPkC*fLWsa_5)xQJ0HrN19n_%I1?mj0bYYGva>=%NCU7v0R9*CwjMIf3&b%`?=9#!Z?F#`Ap;;A`? zL08n9p%t3{7E&trxZSHY=WFYdk&Z)xQ)%_zn^A~(OD&y<%(H{~su z9ilGx@^JfqO{CqcK`!naRFk0pJ5-o(c!vpsM_+pc77n=Wa@ZNnlsh#;9Ru?xFOu4f ze)#ppo0oS#kX=m@B#1bTVI{SZTmY8byYxi21u<>I?9af}xR#=aPW-)xIvaS&g7P=d zXGq*+yiCSR)`!>Gf&d$m*P`p3tx3_KrwZf4>^zJL3R z`k-196VXZnNaP(NV#f$gy%7-!#uTdcNh?sY45j2$GV5q8H4*o}OFgA0{s#S2zV87A zl@oat4)%oO9!=KDJC1ctP9Vs2Fb51IdtFx?Y@8F|PoxQfprmvD_UE79 zzA0Vw%0cd`Cs~sWHs(mHY6c&C2J~963nf|4z^F^`2-8N>AkAl(;NcEw?%+UEaB8v^9;sF)IVDZsaw;S7#<9AnB4v&k?>M_&0P3bQe|+d4X5D0d&_Toj<_=3iu6d3TQz1G!=oA2D5$ zIYy@5IqU#3llPCd_lRB|GPW_!Ge^$cb(Z8d`81y)$xL`7*xm(6!tjoC5b4Ir*;K-< z<;#QE=eY`T3f#Y4R99X~(d%#=B+?L!gUD{+=+;>WPKff!f@u$KDdW36Vr=vL`f6gd z0>G*(5efpjfB$qMKHV)Vu_&Ql11Y5DO~&nHg)#3oPj(^8Qd6Js^P%GO7d>FMSIk@Fsupp~^d z#H5ohGmc^n8|=K13JH$3^+2k$wmG+tZf!qLBC~PBc*mJ*yu(V_rLpk@QbGs}hs4u* zWHjj8>GXwoxa}#*c8^}Z)aSsbO3SFze7Qcu?u?7`?Jc?;K7*;^z_6c1hyXdFN#Z1X zH)8Q%-xIIbKj^_>-8GM6nli@gQP0p;Tak2irawLICO}X+Ae}*`O-9?Yp**U|nR`#j;(xLAzf>+Sm->V0t?> zy^;ezTc1AP{GJ~=V4{&}W_|#{6Qlmk7zucz;5~AHIO9QNWDbrO(iiw|1Zg5{Aqh58 z+24*}OEm30e_8-ZeGS7BAIN>+Et3mb6S5EiDP{U3AyZvBz@^nik>3J^{IhGz8s9KW z2NmaJl)g=b3P{q4re@jE;fq348nE43?Mi~dNJ-$`0RsLEn^6+ARrxC-cxa}Vizc#) zvj)9PlLg6evf+40J~b-$W+=$6<@0$%Z!i^tGn@e#4%NJKS|>w5b)N$j*Iv+e1GTPB zo&!$idceF?-_23GW4Y*t3C<55t%YkV6P=|GbFRO0kY**R`xGv9r>G|3u0?j)w_Ng@ zHNw`BM@{LUN4cMdD}e-Dl{>Y0Ow$xxXyNSaOGNn-aPO^aG_h%zKQPp4N0D!W=-`}*g-3IaOJl2%FXP1ErWMM_BEeB3BLI3UU#b0~d?Th>Scdx$xaDTVm?(MNHd1$Q;L8%Tw zJM^IgnhChH6sk8sLZEJ5X)ZfISs$rQIMwmPX_q2xk-2F zqL>pY3*uabCbD%FutVC$PB)R1`lvh(SeIaf0^(B87|ejPr?!SwaQPRFGs-hE)^4{r zcTuvCMR=q(8xEj0a}}C??|m5$K~VMY(bIYqYlZITS`wtQMAmO38|2P0j3w|VJJLJt2i%IrD@GLk?rk#0zJ{TccQ@r z7J1QOC6Sy1tWZ_&Qi}0N+Tr>RBU3A2ty{dUDHEuWM06I%n}h}_$g_&XWC+Kn(Wx7> zMNu;c=>?1H{-Jnzg$HG~RO)R2_Lek7tgzf1dVQcazy|yYnXaXfOC1RSVtC@XlRL-Y z{uqPuG*pLLnH626^rbjwkWnA5v4T4W)K00yO7r&Y^CT!QlTwy!ccJO!RulbUd%;Px z*tu4>?}f*1HPWe69A#pB8-w%&E>`$}!_D&Mq_@XQ=?ut7pb2E-A7Uk{M!4!0xG^z5 z&V5#0dXcbW1gG|$&F+(E3Ldh#;<&QdwmS8&yotcyt~IJG&y{#=XbA+9qJP1z>QV-k zV^a!nF>*i(%&%;AK8Ds;JH=97_i++Ui@lmGoxx~#2nmtI;1J{N7KPS$g;N~sM2{|2 z?G}B}RY71liazD=NW>Ia4g!9|z~|xksVK9c2%rZ=&)46C%cn?QK`Zdkl&z-!`0;;H zcWIB`jQgyMo5{-OKXH%?gZ`VInC3WW%yIB9&+*^(#5BiYV~)drd5-_KC#E?bH0F5l zFVFGc_QW*D!^RvB|K&M$J+T1zBiE6cUPVfs%Ehcu$f(nBr;?$=v@~h^fo|5;u7O0} zmJZ-{v>BgI7H3Ky3SzC0(=yzzl^4Rp?cLQWykT6ALtQw9HB~0Mq?)A=Va(V}*#?=8 z%L`!^&S?Wt4Hbhj(JyRb(Weh60=iOK-7=|7YSg2#t`A2sK^schkSLYY;1uBuV;qkC zw&#$011q7ROqs|_V~m16bFbzpYC-KX+#&ey0JNmhhNglCxTSRY8%?;px6pLpDgNOy zzy$wdj%?7J7&~K^LfFlwZ1(}UFws4__6UnEG_vQn^9pC z8nR-BXmMg&WBZ+SH#)Vhv~)7y2^^n$MW?I0Q{YA6ESf@ab)jCY41?m=*QXR_nC8$K zwmmdi3m2rg_)n|J?ydm)`!f{f(>|KOitTmDwL69j8%(|c=%i_UDOkiEBOc|vdQ2%r+4?OHC1qgVoioSU+M%k+83Ry(-j;n!YG^_ z4uSLp#wVc6((3O2ez<#oe|86#Kvr4`Z(d>;+9UWEKFo0ZNg_R0Itrg55LhnC&WREk z{0?{me&1Nn2g66y`v zylaR(-;z?m3T6=$dy1nF&GBDQe(5wtdis6OJh7v@|M(yOz%K0Q9Xx#V@WGo89=`eT z!JCgBzWEs7QFuE{7?)GU@iscOc!n1|`gT^O(rI*QIF2aya1hS)Jz}(Gqth;{fj~`2 zl(#pnNPk$LjG;~jL}b)2i<5CcieBKXVKU!3l+}Hjn?T;Jww^`7uAV6Hjl2`|7d_%6 z|1HqtHJ)aH@XRT>oTFr2t8uaJ%e@!38mX7kA>@Bkyjh1P1C)^1dvGdDjvBIJ>7!W< ztJ0z}%%wZViQn1i6}e&D6+_NW?3nYEI~z>2e~D;dC})TOxVD_ne1?x1Z^rYPV}_h} z8g^1XsxS|7!SR1+A2zU+39&zw@iknRltd`iV#Ne!`?vjBBZbKnPilHfC&iLHP|fsK=K}1aL6~Hp79RSCH|M(p|)cm5L+hx`_i&f6Byk$ zQqRI#S&s%2|BV$~ITHU1#Zl%>njM;r9HoG{@fl#%{(t7)wY!bv$`aL2!S#n;tm`Td z0q~`nZqEWifP@7Q5CD>rzhJ3Uw5?^8R9B*G^^CiJ``vq=bK;SipjgwsYu#G5h>VEL zjEp#O-VberY!`HU$FnV%u)NS>aoL#$Wev|!-NP>qHo`PIgog{MZtCN{Z&aQ?Y=WZ; zxFy1KpuSaKSM=%@tU}Uv96t)ud6?@Gf!k%PggZYv zbrrAUD)C(Fr7f|p%lrokLg*kl<$JmmJ%v5V21u1Jbgo4PbF zVdm@=P@yn!#jgh8Z#DQvD#5OSdIv1v5SPhdn6jC2)7ee7nE(T=?>~R}`MzmcAA-jy z@Us7p zpjr{oCE6!Vks%)B7rZcMLEnMKGB<;sTHX3EA-gbzojqm=8=zDCfxn3^MsQykc3S#! zr{2O^<)|KXv)E0k1=#iAoog)Rb_sBW++d#}&t;qj!Z0kD*9>>KVFa%J8n!;W=|Ra; zw7Djz7=->lV$^|ZsM%2pwfA2>|7HDk`tDC3d)|grF4NrV@mEnb!k3#Alcxa5QxO9{ zf@OK`^0Xu&?GRWePe^L;z&6!Bl z$}Xf%y$>f-yqY_;%WiB;vsR_4lk-}nwQtEuh&Ud4ix@PS#|Q8Wv`m&M0$^a(xkfXx zdFT`)2#u)C)JYQ~+}a~FUBHj9HJqtl;CMeN+Fc2Rppnq3WnPE(68b#I-AB3h5(lwL zCbPRm8p!>c820|t)i3fL0e6}7oWAcFb>n=t`>Q+`bWb{T3pH65S>vUu!wQaHxZ^CL zQ`Z9W?5(}IS*@1qZ7(p&2^Sw$WS!PCg>oIjxaDzF%{#6fxj zv|R8PE{`2#@$zzj!zUHDDQ<4AJ)5i4GMK{zd4wx7uz60wLEIyKzweChO`bqdJg}bI7i_a+v*o=25u$wYdVb9eHyOs1(v=tES+oKxX9M-w-X?r zIbe%hWg)S%%G8Y5!_8#2=@q{dO3*Qb10iyb%O`#vR4S~@@I{Ioh=!1>Yd<0}qW@j* ze*y@&MV6fCyKISO`ZJ)P-oN}??>~7`b%i%G*%^zW^0s(RK77#vb}r?zin9u(k@z^v5tl9vOLLmXshtM;kQ$CXN#cCVm8TKiP@*O6D5 zpdWkC>P`w2asjRlsUvToetd$9u<7wL4^BCVcNT^-!oA52$Y}+cV7`Uh)J`yH33F&` zf~cS<*6DmZ9K1r<=w`-(R=eKdcZ0#<(b37_(euIa;jlmK-~Z4*nGOeEpKbpA^Y-1_ zzcQmFc#>-*%<@wjG^C?nE9M)};i8Kjf&`az|NBSSv0{2O&R)4Pkh~2~2X9TM7s5SG zBM>6p&e;reNCaw>@&E!gdTnvS!#9EeF}l-)dQ%BN8$pCihn)elAZ&m;v-aMb;K7s0 z1kPaCK`YD7uaT^rv{$kfb={7PnO>85%4`v6{G~YzA}geiJ(@j|qDHUrSU76T#R@v( zBsj1G@?tf{0}jMSIq)RYmh#>NqCNoG#8{wUhEEFJmIRarqtR9t|g6`tZ!2Q99I#8AiPXIy!r9{ zy$$~O;o<(n!}^~8zWeyWz9(Dv8S0)@lA2N3sd-W@i=rMtt-Gt6N||5xXt14z#7F>a z;YDd&L$90H(2&GX2R*3f#e+@)mpb(->PC$14OeFdi$U;QO)f^)C@5aYeX8D+L`Bfq zNAC5sOf_T4XJd9|X0+fxU#5 zN8Hx~v|Tbjs-ULTnNLGhTrwYKLZ*`$-Ba}HmSFZsUOo8AMQ#heYA8^8jcX$>MnjP7 zDM*O<7!H$1pP-l-*h$2du$PfQBks0cyD=Q&{i>d^})rC6h-jKA$ke* zG3QwI9UL{r$Zc==ldBekXgNX8<}juJoqGUvTxx_^EGw_nT5*7A+4D@9$yPHYC4;p^ ze=r&59^rJxTnVHwID+B#b@Ik`KI2a!XUhlD#&X3&mNWL6MzLPRLi}SUPsJT>~{h&yOpzRxR zdW@64<^lY=K!Pb%IC#@(2M zDF5wvHZJuJ`Vrmh$b`*?Vsj3rc0*1y>K+#ms<#3wK`C~HW58Kgai$D*Xf;Mrv+5yr zQ8N)jMj-c-T3f$#W=RKyl5j$3Y3lFvt@tUh%%S1YteNu;*cE~tXef*$nLteC$3Y#i z63!0Eba)s#+1u11$aB`^)MPGhfzXOhhNqLgG*#l*24mq#vgS}6UJ6vKRy zDq$5rB)Y@}q1U>pgbwx_2?b!nu659LpC+%PpsoPQ97WHnIO>w0!_UN!G{ZU z7`bBg!`J0B`Dkt zl-7W~`bsuVu0bIuYYKbjaa~%_WVyQ}RmHjFW4rKt=wt_Dh%8XFNgF>KXi0?%)xSv!F%;&b_BV)wwlC zF?Ztf3+;}b*mKreD2l>D(h{KI#319!c7iG2Y76a3w!is4O-?QQmId!Z3R@-2u!o^|U_e?oC4 zU_qv5SFNz>Dor2HI{)(N^TYi9!=E4ivOC_g=sYT7eAd^n_XfCjKDoX`tmJV@Q;l6! zB9d-T>}HqN0vyDOyc#lNg==1agh0)RE;DflftO5J`HJ2cuQtmSKvH5*yIr3U=!YI= zfGt}=D#$Q%Sl&>HkXpb4(mY5YP&!(}Z#f0Z<*3R+oUHh~KfH|GXA}lSbig%{=$L~w zel<3tdyKZjgUx3bJaEXoe9M9!eo7Ng>Kvro_2fkI09c$y++PSanf}EX-R^phWEgDb zWoY;7HnW(nUjio2U#wsHa$+%JnaQ)j_qWD2jZQr&+GwrGLb|SaxA52GZ_rL{K7RT1 z_8xRVRkJL8r?Z}DD-Qzbx61s)!Qi!?C6wt-fJeRRO8t;`u#$U%2AW;Z3ad0om!1am zG-aRJc3(E@R-d3piH8C87RgYr8TYsD*Rp|Pm<@3@WsNRaV5!lHAM!)a7tm*E!(cFy zlX1Hz{EOQ?FxYh51D$br6<4=-v00d1#ASg>92m!W`TpaNZ{8QRysh6|^|W}E=SS~= zrgq_FSEuffYOTEPAK8I~PE|?Gi_9k}i=EenZvkTQoHaVNqD|o)1tYJQV`?J|iucI) z#V|ca*5bV|#570+CKPm2#ze|KJ42*{+;U$?kidp`Wyv&)qP~4C!*Ysj`x}_jo33v} zT1BVk2n;|ENVrVB7{Este$HsN0$OmkfPvTxTcVgbtUm`o)Qut=KlB=wBney)$p{kQmzMFdncyKI}`yi0Uk%|BI8Q`qLqm;lBr;sP-f#ND-wl7)N5+J~(cww|=r=(Iu_o(RN_eMT z^rgv6%K&Uh41?38e@O^iseF(SSA{pUjHFCb$r`w5NbA zLHX;l_M$E|f^0EVG7vvTb1+Ex9O28rf*^$kjIpdE-s5JH5)f(*_>VA{{lJ8yYd7*` zZ1-HRR`v>auCh>+`XWZ-9sqWKoF-6-~fD-(}WJJvdZ56i~ehEuBmd>`X z!#F0^Zg#!8K}4;rfz1I)rjmOZg)9AV64sWf>S3Cn5N5&ax0JhLyOJni-DL$}2|9!0 zlNaZeyxk83l{ASF5mGeh+m(y~VBW%=MTe$JFjNo`)YJ&n>ANHcZqgg{I7&H_)$zJ_ zz+Yl3#YKJvH;@1Nh#VwX?ZRA9#MyBd%)c22s=UyHiRmJ06`e=Wt{nAFAtC5-O&2lH zHBVDrOXF;BdVFGKM1l)fTZt0F0I2CX*j;Qdllx5sGiZXT(>HUvrs$h}2VkOE{m?&# z<8QWB30WyD%Wz0nmmDx50Pj?9AQK2@NGof0hg=9*f&93Og?{DsKy-vip0vBmRqSTj zq-7`k!Irw5-_TKb*B=1RT;WwWm(mz=88s;)x6ed1b^3aN@&or#Q-NyXz?8jk;^T&p zHQ?W-J7CV_;gU@4HX;wjqz3<{ufcwmvOUO@zCgnyEy1ec@e6Qd^`+JeWd3D%>%y7V zxHOtfxB!kBTzR9T9bH-wfwBqT>#(QW<%u4I_a*-}X+N#R3!=mksX-svhPn}F+D)6w zv6LBr&e^RUF7t_6j{A$nR-(?`Ye)7@v*5JlL(XgG~DDP;tJqIBdE&9 zmn%WQ8|Qmys7dGW6Q0O$dOBbO_`hsWUu<5uCoI`v9yk`TUEN`6poc`jnraCY?Rq<} zJ?{1>S%7P80YK0_j#Tr48v);9cq#jzUaLiWOUGN!xORSS=&x*XOk_cL%WY%^NC@}P zQja5WZT)IW$ps{D9zs5{(ce5f|Ah2!7jQ>->xzcb%^fD_F*X^85USOrhAqstd4Sdd zJcbP8U^KwWijggwG9xQZF4h(GTB+0JFMX~^B^Ue(6^xlFrwEBznkvH8 z;oysom70?QNxol_I_%Xu5qg8T8 z?jyhuxTKHF{Z)Kz)unAhE_2vx5W=2#ruM7%jF9@q6SL2ByyL=GA6UUMKC~a%?9#J{ zGMVzV2oK$iKTs~1!I^blq;+VqmV3uE8KgmzmuMAdc!)0_?!c{aWGH9RnR8gWvK<- z1~eCjU|#W1v%qs%^n#nXId=yZ3U)eb9<^Mhng$&NB`AsP4i%Qi;~Zw%bRriQ>UuwH zHWNp{I|ttbq$g37bd`>HY^r%xAUUP;?ha-U#BnwXY|Y+BD?9LTOiG&8snHB-?VVcr3iULV=#5U@fJLVNJ^loEB1t4U_A}RLg<4iyLVtIlSuKi+*E6t) z{y=hj2M5S%0_r7|*JrVZOO10zhrZeM&GKdgyHKl5Nq8)J=ds>0Pd%S$)3KLvcMvV3 z_4MC)@!bpbR!OK4J=^dF^>zoT>>FtKn%LA?J*{HZuZ1-2;QH0&6gY6A5PC>i& zS}*BxC_5W?Bi6?POK}KawZ-m7l!18r@ymyYID9^feWNs&cq8nk3vdp8Y#XH1JM9M0 zQmAbyv)w|33S-6LMbsK_wY^78Fqsi3R1{6H&Tqv^D0>p~W6*py5&4ti7l6=_*qyKg zZ6C^|D48j6^_8}@(WdP!4?;8KukO>wY6C~pV@AbMugj<}k3BiY+@KK#eY%}aM%x>B zEKtOoT|;~2Hl?&SD3;+OoVzkdl+y4poGz0wVt7cs5NH)cqjX51oVev$kZ z7l_~^7PXr^DU-`X2v#9U4kU~3VAkIv-$ADwY0d;mkaXVy-YhwiPxB9|ige)250rJJ z)yi)odXUcnjU%2Rzn37P!zA$8fyUgF3o@Y z0JhlOo?yU$FX?d5Gc@WpdgK%pOr%SJ5b+;{oCVa^eq4|qp|11l-GU*p&*q4T>MI*m zkPb&jTHrP7O~E z;)^-RCCm|;>|-tm{0_$iM~(?drqimqqOog;-WWSA5*cD5<;OzQQtXILg&YNMp|*lC zB)&P0a?2h)ojG-|>XYk%FFVaOpWprY!~IXaw|{x_NszhE-G-=H{`dBUbn}6S|8zDN z834~gK;kPSz+GS)7uxs=T9E&xajh{?$_>V3<0>`^^~}h_ILEqMPzta+fAjesw&}i} z%xgxH;2LIjWRC~2g`39$6+@NqwYb)ssWVjO5%9;3Wj#fk`}&GKXw^3`Fmf2`9-_t1 zUw~~$5lP=v5$$sd<;dc-7T_H8)K09l^!7)EyM?xXL(nN{kYxVdJ)*%N5D32Ts7N(N=({At#kuHDTzx15>Gms2)k zeLxZcyrQVKaN`%$0yP`7?3#ef?wuk;>hmoJ$f4Boay@2VCAx*?)oyl4D^wJ9IC?bo z1bY1y!Rk1d{eQ^o=x#AP=_q7v_#w36I#vQKd(=+-l1T+;E^~H z-f9qmmM?@6K^yD}xtmSj#we33=thBx>7tFuJ7h_U!sM!V+!&$H*BMROuun}@ov*cN zO}w;y1*X+?R^~Gy{zlC>=VWrp@669HlrgY4Ta8Z5K;H*^PaYoY=K}bU(v3?7bSg;| zk;yVbr4}hI6avj1)Fi#A=cnzvpYK0@dGIPs!ad3ii~NMIc87FmLunoa@!+>*C?`LL zGNE{95IU&t#{)CynhKnkS`OoycY8xFJteNbKz6$Z1KkASio3Q$jD&eY{Mhp-x@$*O z1r#Nj)seM%fsfOJ#NNfdxk+IP`Aq0+-N~F6MN*fPc4L<6mU5 zoFPnZZFtvX>(*DU6v?r6XTJMu`fwxbLrC-4@WR!-ynlcZ_0#?5w{PB~+`1iTbs)2N z5%#U6P=$A7>TIf(#J%7UjMb-4Aj`D5$|**I!wO4Wv)^vI1F&w9ePp_v!>tUiA<6vW z^gv-UjS;#v@T_OrjA9M}S6m2tH6vv*Nc7`1m{ei`l zhhew9Q}WA;$$a#BcQk$tOU}k|8urSX!>^r!hP40}iZ0Y9*d%S2x{>CPV$y*po21oL zgM~@~^cR8u&~}p$V-mc9%qH}KI{o-;=#`mEkBkv;GGVjIr5A3yRij(bq=<8=QkCd* zH_`Wc=w7PS^IeW`p8SNRYoQmOUb(XK-&0sXh{sLrX>{r1tE~i=7l+;MX!aT$jyH)J zoB)mR|8(6XTY+dWsQy8rYPK39l)4Y6g=xoS<4r&Om8O*D98tyT$cj3}baEtbqhAv; zuD}>Lx8x~_43A!VOZtIZs3R5S3PuF{4Vz7}5l-BGrOFFBn8_a|lu-p4Y#5o$)=hPlRw zw3m(C_c+_mgfRf#gynSf=*zD;R4v+0Y!gp44wu}yfvaJ&d)&2@`|HZ77#&V*|G#ys zs~O`4Y<5@?yG<=(j0-y=(qBO!g`?ZeHH_4~FCXCCg@aI)H~Zzy+rQrb^nLHmducol zP!_}(VX}gXT>yJFFsWJq+tKa^kBZo^61i+vrX1<&HfofGo*D@YS(TmT5t5d>)`(GI z4x9>QdDzWeZ|-1ENOFJ@j|%q;on0zDBV`Scad}x~uwnihktk}G5PX6nThNNuEy8^; zmP_LdtNCQjLPlVA(gC2!q-y}wS(H71N~e?YD4FRp2CBOa2iaM!V$^bYUBmZ;4C+x= zs2hW2h!U#D)S+%7`DAoilFJdDa|>0MW>usxJYT}?g8V;NX0Sv-^$~1@jUv&PR;tQ> zdKiojFa@-Pmh}S>I#@PL5c}hZBz67MGi;H4CCjt`&I=+*!JF_y?81CkeVNi5+6j1% z)X4z{g%Wvnc?lClEMDY{%1UPM*9wY?l`+{kwt*usgR&>wZgJLMZ~h3WOMlHX1R_|~ zs)LHp3ZIGX(tl-r^kgxBLj?{D58u^e#_H|?E<`hrn+ypIZ8d(eY_f@9nHjqdHz}wc zprdilVo(QP$>LOKJ-e+UG;C(0h|HY4k(_2;Itj(Y;-ef*bwARuUw)`#Lwks{j5_Rz zXq{BbEgq<%%eOT)5u0F+3uX9o!8v2e9xrPx+-!6dCxZ!Cy$D>bA+*A9Pzv(JSFHBD zxf%@yN4x2}5AQzzMYgG{(dMddHqkh2D{%zKmbz()yciV^{ELESV{*=5T=Abm)w$uM z6WRu#tq@N`GtWp%D)Ud%X)qp3a$f4wl9{S#hOe9UUC5;Z*VfNGGLD?ZR$KOOMTRJ{ z+D;VUizJ=2tE6+Q-U8Z`4B%!6kC{1=>lmOL!$ynchao^@$8*onE*sxUr#_2=Q=KD)RzcgaWf`n1BNBRJ<7zkug(o zT#v7Sq;I!9q^=T}3mb!{2lfrjTNgQ1+=!!V^%zmH`vy35MPGR+P50qEPk9`=d`#dz zrDN!)GA>P_qB9weCKgr*EskttyPgWte)-^r9ag4w&_ZIGIt$PQf)7357!R@8(MOv=d(ZjDrny3#4t=_3~_&&?h( zL<=Mnoiyl+Vn{(fqg9W9rjowHqgR}Cx`3~S&BXC9WSVB0tn@)Ehi1LVC9-jOtO5a+(WQ3PO9h zjgUS#$Z)4q$`ext!QrQu%uZo42#KuF$H1LDXKsvfWj4oXiyS4@yK2ErpKiKbXsTSP z+npA}O$uCEep64NrzQ)SA;xmzQ(oV#?bpiREAZ0B2;a3Dv(EfEHW860`$gNoaeJ)&!n zV8J&`^ml@41IW=WaoDnY>)PRfWw0o66mQRpIozi`H(yuMj^8StXB%B>3}q(^Mjx9}ATM~jNl!w^W#LjlKp(6nsG zum!$ZzWq!laW{Se*o?&Jl!J*%!1!h|dc7p=ket_Ozn++k1m!8%5LmaERDgSQ323Az z>3TVb#U-5zfZhUS(Px)9=2W<59VUJi7Q{o;M8G7mKB#z?5u#lXA@nB3`tWJg)R$_5UOuYLF75AfGoC@40rR5x zXBLjh9IIpyvUQL04BZ3tbaVa#h^b(bBkNM1G@h++puJy95!x@>;!%C%I=d^S7SXxD zTJSlA^35In`^g0jnz_j>9Q_RBbmpOqGcgf3@Tup0#ThJgk&x=;4L59DwM7 z$}`G}!_LwJ>@cE8h@JTV$R(%CGdIO?ec_UxyNytldFCjIRJQ95g#}nd*z}9Y5?%p& zW8L6pnpfpwaK+9HSiZn^fx#Px7&2FKaC?^>D{}ONRRq!fA0bAI%slZ70vcf&!l){jzt*nA$ z>|lvWA>)d4qnIvcr)RR2Txq0^+adDdgvKV8NGn z4ANVOc_3e;P}Ch$(ycF-+3Z%ai1=RbPx>*ct2z{9$-7nX>>kf2Wf6(;E1r6ttV=}>j??lbdIHyoVwG;R<$lsobDxC{PxBrLYain96uY+K5| zWS2M(nu$R-`YkhYqf=AK7-X~0frmjGr2`KcV>*Omn;DNPrtjpa&OmU;xi(SuKrUKn zCH&y_mni1k!0PQGh8X1OhR?blp^UQ_yV8TgIO3{XA15(5xxJO%++b3u$U51>)wDZ( z;a6iM)$C(|?FZcDB8_23kEY&WEmvzeqi63l>ac;|$x2go)_eEiJs3f!)`}1dLF&lv za-g!q-x#28E^_%OD<9zU8qwU)D7ed*KjE=)1!NF2;XIxNW&D=X6kL9(G>uC=qtcmX zV-)lpuoyS4ZS72br(``~swvf{ zgnI;vk&+D10J(w}F|DtNtFv=rvbF1Bv&7_duhF}GR;;lyCnI6f)kvu>Iduz-Ms(UE z!?Y8~nTq(Q_3i^LoGA?-i*fq2IAN&UOs)B-ovFig#T(6Z#e+Q}d?N4{Os9!cp-M*~ zQh41sW+Wy7iWz{^=+D&-IeVI(y2Iq7=y7Be^9oO1^y~A$bIG@-2%)0$*7*oQ;Gkn* zK+4Oc@o6?f>+{%Su#J*?lMd+D-fui1*z9g>V_CZlOr(pwT^te5&D^CnTt1Nl5y8_r z6pllF_&t%-;QJnL)IHLpukZ*Lj;SaauhN408J64}U0O>*!fZ@24i-_6j)f80!!Sj) zx^@HYJ$>q!p zlPE?W2vI^_cY`IRgMP}H>ubpFbyNM!l52O5C$sCP7jkjIyiq{Q} z!NOn3UDHdFgqHa3&F9bepB{F z@q$*jy~e8faAn4jGWnOOCbBaOxk2X@ru2TAZpiRg8Wc^n=+uKn;+R+dsBP7jjIP3} zIIeiQQyFMbmT=~(6b4n79=t=XDr#70+1MOGlk%!y@vT7zDfmmE^snSFJ;l-rNf}s+ zg4Th^JPtm)n#n|ghbAOI)-j<(jZqgRUtcXdyB+9OiSmzsCMFO6R$TZS)Jt5XxP zR%s4UXRInso5cMQd9_yuuCthYy?^`t=D`ZC9_~MX zzxnbbs6V>=w(mE{7e#gCLHVHXdJu!8Q{YQp$pZ#frm6|+58j=3Hs4y`4R=<4QhB#| zxK?-PDRSgNdiQqnN}&CZ{BCnXEgE2^1Mn9O=WGDVv*|TIxt`vJdDI&7V_W__TcL76 zg1N0eN{#uh^aTb*J|kcv`1!&P8tQ4Hj-Iy>LzL|Tc&or1l@VEuStzhhGLm$WDPo~a zK_ZOp{8;!Fko9wBtZL#sT`hOBf`Xf85MCQtAsm0QEl$$|O&}SA(Q)_if{<^C?8A(m z+ksKqjUmIDstgAQZWGEE0{QBy#+QDwssTDI72yVt2JzY0%=j{E)2E4+O;`ZO}Lkvz);sB8`W zLb3K_XS~XXySdZO6OQiw1!J$dwqIXx8}RMl;z4b>D^M zZ4yejXfWLyc&PE>qDOC{eCbql`)YzfaKz`9}P45BB{U% z&aWHR+1ZY$F=E`5=1+Jf-I=qbskUAT87of(=#r^v2A%F#viIIWnwaRQ_#4^0d->-x z>a>4hT}3M8T*~WHYwoELD5XW+;#B zqR4QnQh0!ZWj!Ry0Sg*!z^b4CMFacECIClts=61ot~(W6l~*co0pZ1e3*OQ(LTW`@ zetx`=@OXDOdNH|y^TB!vUl7DU2SP3q+WW{7UFTjf#oPs^$1T$N6f#{$Z&*6u#|YjZ z-ySI#zB5x1W=BMXb9Xa=jRD`o&`E$t?+iLeOh=NGCE~!kL4i9vhpLX&fGO-=073VD z>+a$5AAUWZa)oX7(@-ym_}!R)t3UIi=Sx2jCLplB2NDz`jZanO!(KD_#%o&rr3Tlv z>2x>7J3KOFuQELi6Qpvz0IkVpHrycqfvM%19dJ{*^*$jNpj#l84r7_2n;geO#{`6P zy9mOyC@GHzuhUPo+*qE!BY2DVKnm#UR{P3wlU#4u?9)f#N$|-qzxaq>R$Jj0Z>}?i z+y;i3diGzhQR{R|MFNS(^l6XX^N2Q$n_`|8`0fd^9-HG0lP@^w2<<|n|GQ^jKEL_& z@YB1$r3ik;1M^Uw;NS>bhJOZ9c@)?EfjL3Bcn1GOhiWRe0{ycxNR?oah<%Fe$;h#X zMRh-8s1(GFv^tn1&?+WComNC~BTUH7yO{SyJ*zynART07~pTb zI_PbvNW;$67nGP*J?vbVI8XvGf-)3uub^$eLIwqRyAOJyQv&XKHAV8W%N^a=i+m!*{*c{_KyZuH_NqLb&s18o&#t50~4kTzeRBQ?CM*z8IR;3^o%BxB`B5hzf< z$o~M6BEL{YOx7#_yc#22Vcm2A=WbM}7KElFa7ugrtENUmsNp4qhRsVk*@w5&7NQIO z?~CMDnjIHNs2IG_4a$>;kYC~FK@zB(pp?iPor#EOyRc~EB5kZ&*K~wvwTy1v1nTT4 z*DSZ~1@G)9HP}Vk@XhA+0x=axdbGM*SP7!k^?FfsMaY(L#(I2Yx?o)?K=0Y|Z}*=z zZ+`v-M(#iB6%5xzIRWK_<|~!S)^fN!+kSn88e3zgveecP?+_07=gP8xV}m0RI6uE0 zq3`EI>r5{sYY}H(cj^Yy(Zgj0m4~>21#ez;X|N>jp%%eUnUDSTLlcYwoQS- z(!1edcn@IJ-2Ek)7%vSO;hOo^AV%N=J30)na^LCVnv$jFiz-WMM{}7TmE8tx{8p^p z1b*azZ2KWKhn6qI{_as};enbw2x(oU2%V-n-Owk^gMA}!;?#A0|K=wsjlfw3Gc0E| z9!>C->&fVX2BE6^hu>QUSkM_A9obKz-qi&+2ATl<#*NJL0g`V#`@h}4pMAiwet5>xu2w2|$5W8J&cOLp3zjHJTH9wcgwNt;R2klRkpeud zXk6c18~3C`0g9L^9%P9#c9?;LsK4lb-&PsHiNFR}dSQ{1Tl=jANbXqcujDkG+X!eB z`uam@u;zu6J}vkyLiDuEj$G+l|6O7IU>}0}7o8S<_?>0;SnD(lDaB7dp4H6k?uw=y zFD%zWySs?eG6u8u5^}DyZqzbpv^fM90c1p=0MYTdzjTK;3KwjR(wgR=m#*|I3#5jZ z+{NXnS6-+$=_*Z=8a2d=W%h{-CIZbcTQ(yU;@CRBJ`h96WgxbMshd zdAFBmTsO-zIuZ59)T7cjZ5HQHgKgfw`P=>Ir=LCrZ>^8AzOos%9%aY}5}1pTVg4@8 zCHYEq4$#}2cvOicu+Avw%UVHF8dpZ!2!^T}BaKz{l&&Zz`C@y7tci3AFc-7wvPWIO z1f>Z^@Ro+8K>61(MVYgtt6Rh!@K-om4M~8>*?J{r=X;6~S`9JTgFWtzT$Zw{z(D8% zeE2LYma*F?}c?|*C<_z2tGI{QDbyy$zqv}c!tK^VaD|QR96=Z zISJY8^V-foy>^p;xOuV-nv$n;t6Pt!s8?vehP#_p@8sA$xxv|)GYMrK{Y)HRqdiTa zEAOg4E~R|pJX)iCC(#FOQPP_9GQDW@P&LPemOJ*&^Z{U#TrnV>Ty^Pzk~UoNW59(p zv6c5!gN!77YZPoaaNPUWC{!PM!VrYZetXp5Nu!4U#8F32de-riMx8uq6yNAaTrm$F1>NvoY-8*v6D`p|(phm9!n`q?qq2 zKks`+u9zB(q*rqj&Q;`;r^v+&MQ9MEhaVx-q5KEO7Ka;LQe`~J0i*riz78P_lT+aS zf&kEMGXrI#(=mj!Fqkm(8c_cQ`VJ!VWCqf1Cj;qNn^;NC1!f~1(ne|osGvU00h$xh zP!1ArAl*i%e*{`Vtey0P)SGc#SGOrmx#r8wx|b9|xX?;^WZ1cvBBVasv_i=&CLudPS=2ZEi{PjG@u+b7k zl&~G*1ybT5pyS2lwPtbFe?Axu&%?J{AbNF2$sF;k*x{6n8dy5Qcj>A1zo9^cQIh)g z2~xxWqKU`Th&sF2@cSf%A&)Kc$--T$Ir`nh@2>tnegE#B zb|3}J4{~Hmcf$+W7HMROR5$p_Bxb=NnWX&T7#1W&)M16kNMNy89Y>5^(V~6m5KB#2 z(d75)ys+jzQGOTddyHZ7()t*}__mk5XYSHH(h}K2U`g9-z>VVAxIc;1BGKkfCgR5# z>zgQv%$_@xU`@86ocSBACMnA}?j9^D^~Cvddqv5@llqMj-~l0ja1EwsDsHVH}H=Rh8G1b*KjKBYk!;F9r*0V`sAc>0nO!nB~g70pKc z?nbv0m>{6O605JsZqh!sqr|vJ?8^(s3V8E?TcBG;{PGkb`)eo9HX8GZVnT6r_GD{< zxk-{pksgo9J){7Em!94jRyI3ApHT-7L``gF&Zyw;2+&lQq=lj3?rf^Iq zXNLM16*GpoPwHF6gka9o`R&{|62DL{k2ZJc(VUb#&RmSq#rooPl_Dgy=wVy~cvt{$ zjNs}LC?S;8b+7L(PA8bS##t)1xU)YSB(HF?%hE;El-oh&oTW)wzmPJ`e~V5tAOiNE z{t=Y2P#eB`xc>6YFNbjA;yfp5LfHv zHOj`3HfR?bZOZrX3}0KO;=}1rt7u6AI|led&M(dp;eax#Nb*jLFDlbh0j@Z`thi3( z5sp|!JEq8?ZOpVee*pKThP0{j`YB1g;XDBPws8+ikY&{+M#e_&g!J5VJc?}8!2tmfj0rTU(ALmB7kdrb#F09vHc%>I zT1${)9Ds;Y(QrQePhP5!53j#7hWOE7;cWUTGa04qvM}W6Oi<*)hSEY2+B+FUy)9)z zDaJh^ZIN-{6GbbnzkFDI{QLcCX09X-Mg7YQ>TiyB3IV;KFg^BXvNf;X2Hvd?s)#lEv0 ze5h1hGUoTN{={))H79GJA-R4r3?(x2;Pm~e@gH1K%aP%oQjD|&iDAv~@@NXZCo-U@ zxqh|0o&zsew&6ynV+q%dcUQV;cS>P!akV~!KRDQ=aUZ{J2Sb}s<*;o!4Un^H4A4BB zBsPi;4*IR4g9CF9VnigyUIyiuj>Rhh#nuEg=1~#HZ0P$jFM^g}BkXFcGO7&b7K|-(>=`y`qHVQ-;&H<5QzpiL>vr^pIH4zG;v)%ioCVZ!jZhY zn=t$ch7v~<1$K9{LiLeICcBy--|g(N*P@opP5Z!V@TVnlMh7%y3pP5BjQ)u9Co|A8)f=n;_2XuV#*8LmdG zt!_uHvw}Z=`|-o)hhz$c=gxE}f=gSdu7tRRCYE%cLr#q?JeunlwYv49udLyGYeSve z@+NhI<&*2eT`xH--1(01#*6s`i3_zsajB`~#Rdf{G`6M0*KKbzA-70BE~$_52%jUl zFH|+g*Hr0%j;eG(6RbWr2ue_e>kpnMezlJ}z9RIw=1DVwcB@+p!slTkHq9!dr&!1C zF0F~fF*v+C=UOak**>G2gtq#OO}>RR#N>b1O!c01Q~g(M23`rrcpwBLAW=SK2;{}~j zT1w+!%O1VPpvsDDL)+l^kzpb@u&H81*y9uY6I23}p$1KWTt|8p%>rR(Wx-`95)ETI zxMRSU_XX+hpFY7Eg`OvSd{La|Szql&QwHrERz6$pUM)tKi$oH#p7);UBN1X&PR$hGUpb4n@@+LDMa=!3G_>@8*R`fV zyuy@eAga>R0np1>B1@WPSdm%RfNIKqA{-Z311<(}priIY^$odGACaX#rTjZb;UPp& zxjNOV{&d=nr8bGNYbWST)X#XGX1Dys5>adp@gVVj4i}1gXS*t(kenX+1oL zb*UvH$OW;0lt}ma9&&^}Lz;6&6|P^7QH{v*ks`765pwnY36nY59QS&8sRS+%YMvEBIh0kzh5t~tb`H|*%_TEip6sp}40`pL+Fg@ij?88F zB6owsp^zxj@M-TGj=(vm`W`y)sf{Wc1ee-RMyUAX5Ew%$Yfg-C&cO9l%BHUt%LhV( z&%r@;9jm}BbqN~4iNcc*HHzR3@EV-s1SO22YobU=7sKd4ljevIAT;2MG{fSM13Ljy z#L>W7soc{}79CQ=hqDVF>E2_*^k8#$qKr;^wooQ1uWG4Vqr(2M0ziS3W-t*)qJanH z{ZaPo19_G~lLq+b*ywE}q^o-TXmI{~&MEOFqc0foK}V9hr73K!Y2fGy;<5zBw$3Q- z!HYVGTe)#L8_%9PM5tMPsom$IK$T%3*HBf!Fv-o0&u?_Y5YMCQVomb;Eskxo>)Gyl za))T@gcYt7PRMlJGoP80R)!OH^nX$#BZw=h}P zB(dz!&Xe`lUKM8fKmjI!ca6}kI!!2w9hn~?wct0BXi&dx7)drJULJem{H`u#qCrt_ zMsK|PaQ@{_oBtIc>oUU@({2pV4EUYUS%|B^U&I^5jebZv2IxlfdtDT7q#7t>e%TRMJA~v^iLK{cXStxF?Ia>tvTZ#+CY=?W@rAK+w?q zOz%^+YumXYTOj56b|6&eztzVRZr~0980PeJF}}j_K!g=cig+o5g;g3mNnhIIWcxb4|kD{>vio@Y=V;589T9g)xdu5f5HYUb&S;iTBqbV=nvj)zIj zAk>hShovv+or~De+-JZKe5BG4fMR6H0`?O67olW1RRm7M!2!iH!cK0DTt8~J+<2ZF znXe%%1}5Os!sNNz!3stecR20?f6b<^fiEr(G!njotaWa86)Ilk*30*aaV+ZCOjodY zval2sYUDPq5WG7ZODPJRm(o-0kUWDy0m-M0jsT3P<1sZO8@rQdTBO(6>zP&#&{Bev zm#b8Z(JW}=o)Hc8x{0W!-62waAvw2Hq!*9u9$=boPtr6Pnm#FA3aY?&6Id?S%bV5s z>KL1|9MfUlVk*kZe*x_FlkcV+sl8k!K`sJIX_;8RLiQi51{~g~kA&~hb}<}W9)0~P z7LGIor{=1Mo;jl6Dq2x|Q>!m@5)3wHItG3~A&|JnBK2xNtPz3zFY%$%>D(0=xk0NC zkj^3%IstG4U}%i{b@5OsTc5;biprZ?LNvb-xx9jTm8}8ZQ|T`FI=Ao*NifEsvY<2) z%Becv5Qm)h$PJYZnp=@XyP2tl?;o07U&>{EvMs zJK}NvwAu5-N*oE3LDL@B=oFaxF$8Epf#Y5`RKDiRWOr{iMi^5$7Q`$CwLE3~tK}LT z$@%PB?yNY>5X%{ty*r0@({;}z5{sZcF+%Sb+QP@#$0pzXtuh~0H50S`}HN_s(STtz%zVyrS^$b=`>JgNh-CmhO%QOL8`D*)U8w6C4Ry*C+ zHP9l_k{@ZqZv}~S+@U2UZAJDR2Q~9S#!={>0MaDG0s!k)eU6p{$9DUQK8aJ(L2zdj;4ofrt_YU2)UJlDV=OI?2`38c%v>a<#SVxU!g7+!!>z_ZeSXfJ}?_` zrYXLV%F6wJd90mXCR|RSdv7kTxJH@g)vNCzx<@n>gm3VhcdYYFx=8oZPJdqYl4x=Y zmXB`?iQVp^3$kfJBys?+A*q%t*_PLrOX_cd#+d=hMEu7_h&Q5p66Up7Ni|78DRQn9 zo%$5MwDRg4Uj<6fo}P%KqMWPGj%*AbbT6V{^Ox?<-0pek!0j>XMeVr>IORs-z$({liIvZcAWGTP}z7vn@WQvl9ReL+L40?_>w@vd1?e* zXe98+`Rc&`7Z-N?0}IFKz#s5tQaEa}9Ue)Y?eHq>9UZT zx4%aeHjJb=rYMMn1`ZR{@VU`U zClmQ!-h95N@VFL-g&#@?!v-4Q9knxGh#BiLQwUa)qTFN!Dehvsyfj%WHIab)!>_=S zu{R?mM9PehqYeUdEkg4JfuErUmGgOSPMV=)|DvC@MI6D>M^s~MQYtB7xJJePlI1|^ ziqcY2_vomItwD+wAgc-NDmCG0bm|6suX!-6*GL*#-_q*VO@^Am+$yA~x)Mwk^(Rr~ zw=6)3v6cq#`~}Jh43i$wy+2yrdY$Vy_lYRda#o$9mn2!PMK{&6$duGG=%R`4PzZiI z61x?Y$&eM14c?zN485S8=z)4cv4&K%nWM5GO`|2M}n6;Op~_- zHO)YtZaH#dTl8ukdUmF1^fj)yjCQ|n!`W!0nJYMxMyGC2xB*I7;(z6=istm(utVdx z_TkWP#Eni4S&^ST!Ew^rp_}!IQ6c8Ju>pShT&R`Gv1<@}sAh<1^QFM8PWJoCvPIen zlDh-!bF^~6)-k<-vI(zrp_q8Z6ig#iL$N+n@}*Itu-p+yH`$W`A7`B^v}!~k{mN|z zlErKYJGpWteflwkB$r_OtKuC)?; z1kTw-LSTBggq@NQFUz*_oztyg0<{$q#6ZoN;+R}sb%uz{>;6H~N0Osh-zaPY8K)Q{ z6Na)%J(=h@AE`1(%~y69Mj<3fB6a~eE_uJCV|>CT1!IfWW>V(Mopy(cUHIyO-s7Wb zX^7*>x=ZofLZl#-TW(&vRKQ8I>G!NiW4Vo+UC6*Y1YLB*W(Rrgf?r%|D=UK3z+ZKr zZKVk!G9iY{LG(*shdI_6fXJAsUGMPKX#_a?-_;Mp{`^H!2|zP8^-KyVIck!1HtRu~ z&@%PW(#LIL@ehP3!Jn!|w{@SU%P-jAStzu%>`SebuJrZPN{N3qb?1wM!*FjK6En$uy=K9EhrD{Hq$L- z;ctd?**K5rih~N766d@My=-)8isJu5N=k&TOG=W18KOUNwwbE{izk%td*#aaX0P5s z)jPHpd(q0wSaoSICyDhia*vR@^a zNobcLSv+}x^Qt2(_F28y0p{yBA~7GoSi@fOA|WBi$Kqgfr*_TuLUinwG1*i?dAb5< zIPa9kkuo}4p!jNf_*v0u41`foiA|$faqV=*?;IPT6a2UmfdJ|W6 zRI_dYh>jum4NJ%`F=;t6{O~Xg4{>LQ1@A zpnd2sAM4y9gQ@XWCFxVd)c zJCHR+iUGp7bUipb*q+`&R{e5DV!;|*Q-?*XD*}(V7GZ3JPucWf?~H?Jf^yj-2;qyF z=|>1#jK>9k=J|>2l5=$$r}Nx@FFndspTYY8czpO-{ln7<}6i+ zp{HZe7?K%hqhEWupx5MIR8_pE4Q#h-PMMDKOk#V$8XKHoi=SMl6&nRqmL)afH9ZfT zzrRlF<99t$S;D#X#R(=Uz-Qxt>dN;3!UI!=xH`HOC%Kf zFq%Z6EVFDvRipddY#u)Ta`)!1_cyI!Gdwv`;=yiqWmm?+AFiYzd%fZO-~q{`GsoWo?L^y8 z$O0h9feu{uTk_{{I*o&)&{E~_*)sKbjhmbt5pk(Efz8bfss_|-=;W(}dEng;{yxB6 z;D6ju0BbdfU<-c$pCSRz0SN;DVwoVpxbWpvCiCgxYq%r1RH3B;C=+*L|205 zO{DVf*^0}#Rgw)kCgMMQ+2qrwkDsJujf-IE z=!nF8DYPp(;oBWCXNn(C*WQP9(l4O`Ab=#RTJW%r$=xrKyP3?|N0rH?(WNgAT)nS; zH5h)LOUuFGVG$c>0F-v4xYkBZS2w%qiV!nGiZ4s-*>DwAD#ll=LhJ4L@4nlRv^zh8XW@ZZ&0-Rj1ilg~P z!3%mmdOf+o-1_(p-?`_#G#bp?Xa^H)40`M~TMqy=q$r$OXcKkdiv~@Rjo?F*A1Q1o zz`7}{hpsAJ7LZ~9u=y5j4ZaasKRw5eGeK2{z=dxVVUUM41Tu;T#PO! z@Ox}|H~}w9Ajgtpqb|WQani+mTHShqV{7=>p*&G|u9G}UzcRYGolc;zgd&H;YOks# zDA4o}V(TGD0-g=4IOP_ISH5r{&R8QT_a(aK3n&kL1U~M}m4)5iaAtzc%F$s2rj7|a z&_{YrB=2=@0)^YD{%zj?q!#{o1n$= z&hi5A&lQ46Nv2>ncT+}6GKH94Xupnj$Gel=Z2j^BQquF1Kb^(kr*S6JQj_1I@Y^R~ zASF|96cq$_gnri%xrk;V0!|e+qIj?X$cb;=S&tu~I%x7dpvA^mlXQ#q>mI|nM1=iA zhS*#odJDKlscwZI+sy@XN2M1yUbwb{*xnlQmKGJgJucssHQM2-SJQFWBX4sgKx}~4 zQRd;HzG&B4^vERi=yAe(pacUTs5xS!c@PFX2u8Pro~M7bv*{S1?$J|14jhukH+hRj zr*1IrdWhU8Hwcc=TPbom??WpJGVK-ivP||c1QNvmp>Ry6myJa%Ja5hJ~N!?!7Qi)EFZeXnYc3qdw>>Aa5FBjD%xB5#~gD{tdo4|U#gg7$U!f`YbU39mb6@+vR90LDU@V<~^Ze$xtx3~bhSs<|D`f_^(8g4%l z70;KT<7v3Jo}MRi{^+=~Cysl5PVx^)4Rrc7ytm_*Hp*a=I#JYXsMoCO(wc>odJb-T ziX+^()&ueVPBXgPR8ucF*6=^gj;k&u&#>VL(?#4g=bny1)pTth_@4x+@C)suu!$TU&Lu`is1bPcAX$vKsX>NpL1TcXu2&U~CU61u6eqcnZ30tr z)f?q-C#a??%}N~V9T5s>v;G10m zLnAgmYJ7X$r_bgl!f8F?^k54Oiv>}ctVWQ^7SR8~9jw>5*7u5uhPo2Sgt{^$NwpuP z{bAo2O@TWihciqMSiXrDTiv?J_?+MjFnu`sgJVnrduowXfipP(D-ERqSllHy2!1ie{_{DrarF?~>yW9Ztiuky4I61(2jbH0kf_meA)=L1JS-f0{r$ zXu~X;5~B;p6VxUtef;O&JWw@dAKUa+qz4ORYf_OCkhyD_&TJ+B4taHrA$GCuAC>+QSqEE z_h&?9j1ZU`iiBm9^sh@ds>jIlD6)+jmNW&6qfEQdYT$+3M%9UEb5nrc%vyQu;6E!S zC^Sy-)`%_YBVBN3uu%VGU&kpODwz8k8Jdu%68{ebk`y9!cRmLo&{8FtmnrGBU21XQ zs|<`r8yFzN>O9f3&P&3z`xFKwpx|}j2*5Iu69&?BH0ID{eRjAj%V~lcS5E+s7nV~8 z7@ZD?ezao9Gr-PE*`lc%=S>GL9o^E^yV0eY2%nk{75%G*XBKN;w&<~@s|TK(+_|!m zQWL+73TWUd{XzaN1OvEUFvl&_L-byF(5@gV7BXjnsheG z07)Vxmd6-F0?k%mp@~co#xsGtMqvbMIZ!-_i3ve0TWMnx9rRP(An(ee6$Vb>EU4zp z{WRBn6hF^8P$tO{mgL3;gWnIoXX*%udgYiX@C4Zc>>K0w3%V1W>U>4IL~aNmITo56ON9kC?HJzv$Kzq}e56?r;>{BaM*S{_Ht+ned9|s2+Uf?L zT%+~)3U$WDQuO0I$XQZo%>AcM7Cu>Xr#g{|6kG3!3n#113{eVn+yB~^pZ+@dkDNwx z$dlMm#lnWqa$mXE{7VS9D6K)y%@z(TL`LV;&oYI4gAg+!UcxP&VoF2zfGqM0xY z(v6Ktj5f%W3(r`dg23`b3C{3)F~L$Xm!fvUzgi{;iB-`eq*NWq;2{e)wG?vEup&5N zuOuYV6Y{ol08nm9!q@@j1YxeMcA_ke1#`mF>J+M`M*@{RbV#@xt*=85fTtx&^%WH0 zl3b`>q=4!4FlHwTPr;si`>`8{cZT9l)Tb^FAAaWX?Ahw-PR6I4+ly+q(PES7tWg@D z%wsp`dq}iQgqrt?-%cA0{+S zDwc%bN?rM#)J@zkh{{M}#E5~-&5BX}lZ#-;S)xmj31F4OHobA+(G5jA;kWYb9%>+h zs6f@mN7n(wRvYRLMtY5R&}K%L--6_ z+RtAj&jrk-oGyF=+Pao=6Jkv90$`E?=6qnQ&PB&6A|dF+Q4j%cjze5UV}yV&ggO*68o^9m zUut!U-IimP;py})qcLo8JH;a3PQgFF`}~%75i2Ud_?y>=#Ouj3nvQw28 zo2FrB*n~aQz~+g(VN%#O#<-_+F~;p4OfJ4WlShnKCV69B3*|gX!H-0 z%c<$pdHN3MLPJorq~A(F&}&?$Ev8L`iOYx63a4`pMVEF?sM!b!P=r&IqX^)uDGZv0 zO;R=Z8ZPJEGg_7L%>*~$hzurHLKYsYryFd5ZO~lBkjw=IE@>`5U;HQ9seCpHtjM1lq{W*#x z`0&EV1jy9;@}d{k@L?6$pe?C-?H%|`Imsa{XS~8gMtJ;ESAIitTeGpL-d7o%GC{jQ zWJGl(xJvH;?kFY6vR$u6x&inVQG?OO#El*SbnKH}IRLTkL5o?4HjJMHFh5Nx62AS( zF7B@WdPrL(VqDq|S&OvjQ2|=QEd2|wwtevh{#y%Sz?tH*P7s#mep7{;>bpQG7oA>vh^ubaf0%y`U9h0#PKm6K;CVU91fq!wU$Izg& z8^}+g=TMbw>$`zx)OnC^Vl*BcC>-Isz}x|$MS**&*aou+!#mE)t(_N(=!{-6CzqqN zlnF559nuM~;Wfh5?koZvS!E1wii7H}O2H?uOHaT8tIGdp;Ddph&^@XbenucSJZavHEHaVQ9I zT!8p;4c(HDpU|B7`|=(2Amk7zQ{i+!3Ax^$G7Jf7F6TL|PWQ8iNuB8|fnoMzMIVWsNBMniA}~Pggr(8t$eo^=z-TKK0GIB&va(Jj1Yx=I>jvDwg6+6;$2Luyi;Ryz4DU4NuaZFEH9YW|T3J9_jc z3NR7{kq~?;;&3#A8z*%TTrnykKs~rW)X5~9(PI1p`o1%{Y86l6Gjnm9=#nN{QJFHsvWw}-HGxVw1w zw|DR<4-UdeU#nYdR@tiHk_egTd66s~#!&)FLxg1RCLIVXyI=%?YyjRU5Z*wXz;4f1 zuJED4-`N*NHi2iWu5=$?y$c65FUOrOHNuI%_zoORWM&f(6?`)fENy=3)%TJ29wG2` zd1=HqIb7}O06eB#7Fg)JaGg+npzvDXetPrv{`|{lW-T{)_cU02cX%&GXc|&#pp*)r zzzmyxIk9c3CVgbJAtqZweUVFipxB~s2tHDV*WqDeg!&W9zH8oOoA+=2cE7Wn{g5-| zMPxnZnv{AZz3_|x%84XGO-GIkDj!r~J^0EvuJl`G`YWW_;huT8FAA^$h~+@Ts1!uk z0dS+#r3TiS9W+#I8xQBTEr|WpLO?FK0^*?8@ve7f{)^Ksmv9Q_0G$SEr7&gbW50a* z{4l@&@aKoW?2fSdA3nqD>a*AgY-8!$kX;+>vneFL0*>>YbZ8=YNPc9OwouFyp0)nE z{P6zYM?Zf2lqw{o2d!USPkM1HFZ3m%Fxlg%<$`pmQF!#8&?hdipL2OoRamLzn)zf+ z304jf|1zN(F+c-EyKcK$tIswBiM65IShzOUE`0YWn5?2aiL=H5Dki8nEtK9V2D*wQ z#gj8SoD0fm#7j8q+Qw@c3c|KRi7=|^uicwT)Gjq@LZRKFsW#chcm{ z{l$Z=K@TNHf-TI2My}B*F}!eNM|(999I|Ovy6H;&M#Y)D(<+{UKA`$H)qbWQ#anPr ziETZJ-jGSJ{JWS4~@`EE9F&O+5K;@hbN^cd!(>`!rxu0SO|;Mu-lx&lT$ zAA_8;M4S}>5UHR%16gK>ldM0=jmjA+N0gDG_83i*U*@SBRvR7NbfuNyt8?AUoCvKV z1N#Q)4K77>D;sbC&AHx*I~X{i?Zh4#WR~1fM{h93GuZx_>SS_@l!XSfLfc?jq?AHk z0e%wKCCFFVrO9$#XlfG zkY`iM3sO*+%dJHV5BO0S7&sOtkh>ktZ=jFv4+dwbnx)h-1bx^Cp|WP8$-WEn+43as zkrXcLS9*4620T{uz>V$D~wy#o4SO#KJELtut#t;k;6HBE=aZ#{)QflZ6Mc@Lz zA#aF1*g^<_b%SmS+zaf~po-SqJ4l<{SVu1a>J!>M?_S5}+~&qQJ}1fbb>s(c;V3-c zCP$OdMwML&TqDZrFc}kwZjHWyj*5gXuP3DGVuK*p_lkBAd*hEnZGuI_nMajI`qIp< zZkB!CEyyiw4a}Bn4_o++o=(;DhOq#v^NdGep1b zbmFIs%r%7^O)rIh6ScVQvDK;la@wVQ{xX~JJq?^>MmzN_xjaGSM9 zz4w>l!k-)T>3{@h@y%%j>LK?Y2?bHUg!ZQz3(MzqR@po<4#HGYcRV`G)S*CZAeST< z70<$VH@ixZZ3c7qkK57Q0akD0|S<%8;v zTNvPhwc(os9fw`Z?3*tDwdGyF&TG_~ULEQP{xAb?%P@_;8lIpJQ4SZZ& z-xy0E)~3=K7m6tmnyO0>m#Tp`eJ8XN@PWkgjr-y(ef>gM^BO$qQtQXNa)yyBMAR+s znqeK?V+0zB%k!)%nHlUGR2AXHX>22ZZk0b~-ypqBpNNCVPaJ3mc`S9MkAZcvS(jdL2UOSCAAi-~u4QPbjXa0mmYdC_1=H{@Mrty%ZJbJ{`}$oryisZjDxibmST(D?*H!e`RU2?VSjjZ zb}|_Dk5BJ^J3Ks_o*V_~J%sebM9^7eVae*cQj@3`>NM$ZVO2eT)aEKYj7ND20PrU8 zbY!i-Dfp|-Rsjxudd6FD1YjQ4h3<&G3626hXGjq{BzNh~W`6Pnr^v_BnG>YMpwmSi z^);EY19`dEuY#pM91JZ2h~B^QwZX@o>|2X!gq9)*1#KIh8W<1}>(g+tD~utxG=wc{ zN4vjTaQbJ`d1aV%fOOGR3pMCewRxm{5ttKGq|{RAJU}hSi<$6O8D-%IjuYwZwCeWa6K4FLPetB8su(eP4@t4 zr=%h}1mK#oNWbtIz$S?X@>D9|j%g2l8`(z2F}34ibS|WmhdH^&1}e$9@zkv$S}#Hb zF@|I~JXiIr;_lG*bdJ&Oi5F4TOGqD#hqK>8i8*DQUWCY4y~r#V_$kSVQA~BSD2_>D zN-{_A*SeUcRwML4M^Xp#yeGz*B?CT}?Dg}OQA$e10slG`L0Vc9fCJ!jP1aqzgNXa~4kS>#m z3rbvq7LNej1s(z3bLL5uqYe7M>pveHJ|CPtKR!M@J?jsS?|(R*(jjEFz8Jx~AZvwS zLdmVAPKZZT7#yx4h-)wgL4L3-i`MAXQDU255LOB~M`=`)f}IEz@*GfAomF}=SHic| z{cgu7FP+?Or?8yE?H2JAEcI|VyMWPahXM?ez#x3z-5?IgOrboig~wgdndU}#SuEh; z)Kuc94h>Zd{y+rC!Nidkp$OktbtTr7il#MGV!_I~;%R7r>%PlP3x3EtfY=Ev!L;BL ztVo#_Z%`Wi({6MB|9rXs@bK=<``!Bf?fpC07y$;dF4m*U?%<+~Er7HN{FtmcM9fCr z%;C!|WbQ{`>cfN-Pl?&(>5bhdywZL@6 zs02f8*{TnT$`D$*(kGdP)q3=SYSO<@!X_P^#T4j$}! z{94Da8if=kMoQCY5Yl=?_zUeH5e`E8M}!yG{t*#cwSPn?Gxm>&=*;~iPQUrJK^XQw zqfgDQ0zc;Pk%N!^WIDQ;Z!^P=$aXSx z5ay9tTSeyFie#+N&D?{+W@IZ75eBptG(^&C!Fz!$nZHWK22c#hA%PMKcq4OJxIuyn zd}>31x2Ub>Un^#joHvC}#SOdCqEo4m`V#IG-eb}r+P8o|iR&xdXZX!mjh^8rG1IX4 z1j=N`^{Ka zxc0N5^5tg(w32n8489k(wyeLg_vA1J*e_Vab%%N*3E^3sC^yskzAHU{Sz@#I4;39L zZ*UYmn!=|Vf^e-Sfm+FR_z*?!E^KuU=#7-J#<>TDv$sXFQ!oOST;*UtR@Vl$OPv3w1`}pB~?_d6{ z_n!x?TmGZ>_rJV*e=jkiFyWj-s|yw{*mo!B9Rm_zR)uoKL8lW5%A*yNUTZU1p-dWN zZEmrLXi-;CCgOOWlmY&XJ`xxxnv3>UP@EToSu2GS_OI&I%xuQ1ix-pE13YUwnx0R` z(~AV)U{4ma@%4Ej6p&)UBzcD-)#9~W7gIFr$wC>_V&A{{>EFk1-oO75F%#tmh&N!x zEseN%^YA8(Du;dFBb6SagkcX3JU@N>c{up--9y%G!uA|W0IfUzQ1YR(wDpYH$kj#|>b@ISWxlEMG_X0q`3 zowz#l5-XUxExo6He)mvub!pVD?AFs`QmB9PYb>b5eEhh|s@l;8gdJio=!>yT-AX4< z5hXx3-jXXaovkN#TGvkXNLP1ByV@#tq$x=A2EdTnKPu<#ZDHQi_jy|+{2@_H52njp zkZ$`{@UNh}Zk?o0qbJ^Pw%0hhS7T@@RD<)sve@lxs&#k8cE13!RD<=KdaFjKZqRxd zTro|y?Q6c)+0whRpEWp=mhUxPuQLY%{SO=ntGKRS?j?`!8lq~5T_Nk;lvX2PF#Mr^^DZb2q4ljw@|=USv44eS^+ zJ;OG3w?DA`v6TBBEN{`x%;Ex`P{~{z+!=|kYidU#29=5nTG*S$++eq&SL;qtrZ1t& zW5o{vcwFRef;T>gkO;2CrHDd^z(!$_&qDFlcGv6ZEjCy3jw{Xl>3gh4`(>W68*%4| zftKfUY?vQ57|z^-ES(N{Ux}D-+vGBDQW{Rf!2wvp`FB)o3A_4D82FVcv0TDK`ts8L zyttiI!3|}8EW|e0&g6Kx`9+GCBgjx`l`o;!)5 zF~BO&G{-%o+7)_6C}H{U5;=8SE$JkPj1nJ%tJ|FkA4d~g;751%3`qpcyx_V%cxW}6 z%p@ZZkRhB`ed1sqQ%VUSGIAyWtl<~wH!Yu%(z+qdo1H%5P2J10M|-Lpi~8mvOS1vl zEV+Xl;K!xDha38b3vBowm?%K|n=ds&t}~=z{DH7+-x%j7o4vjxa&jaTbw^2ebsGvX zf1HdcojVYEi9WqUu{4;LVriPQYILRpF7pNT!ekG`F^mKULm+{_;a3$MPtGV-fZer~~dl)OI-J6iC17aD>riW2eEO zQj*x9AAS!b{CctaKHLE8Qf1;usAVbFzgL@`9yV5h`HH2ThJ-ybiHHMsu!t{~d zvMGN@yT02}^j6O6zFk}q+eHGmqiC_V#nP_mgj_k%Hy3%#GD==f>(kyS_y& zU=+t82flUhcc?7zpl-i~oCc6udXAZ}}uUGVKyec9x zQkytGy1_wJ08XhH#+`e7*~rscErawc_*;r-5R*Y0k;;XcXgQ7%CRzAHH%_pb8**F% zeBe>P?T-_CyE`rt$%LAbmX%{}Fma$`^tvwtGo73_cl78K!W7CvlAN}u5i+hm?{qeb z4nY({QUQ7UAf?^;j2lh>vchzrzcQeOMpfBnaQvlxBZ(WgvTf9T`ZC9!JaqDsLN33Y ze$f}CdyH;3Oaj!8WLld`!1Oo;tYKkvu!6%He1pR}c`Apcr$QA5QzgKGzW^HJ9efGJj${;A~h+=r4&E^Z`;@_{-EZ#vMndj$fJDyaOV z4yw}!A{u4v!$|CG>78I3PEj-y4FEk*QR7-)rYI4yMIcb&!$gC2aiVZ6R?QOkt!_=7 zZ-BeDQpLNGI=HsFOQTDccyMS!t#il&v*KbY{6&Ou@;|Hj4Ln1a*Hc6vp_dlqvMZb@ zaP+2!9=lE^yCt#rS}j@*LqBV}W}^-S%4Z8zrR%(8Rd)CDrhlYXwK+uJOi~G78}s$S z=0V^Sx6x?Ri?n1RucK;1K>!+E1~*s>oTIubnT!7+Ol~KO6%t-;@O_s1pYbuSP_~9* z1cW0N0!Xm1xr6A%B2`TtpYKu8uL+sjOo1&Q&X>z=(@@v$&tSprQ3#{au%j|%4^D6+ z_jbidV~OE(I8~JQWE}{a;r(^>pm^c=HEYW-=ShFcp9kLz+k`zSkM-QTT$3#9tq_9yxwiE zl>c?LS)sJv4L?x+Xw%6B{Zg1H^lA!9>^VpDsGzBhz64}MbO;Q;Xen)Y8jDWdK)GtN zIz&D{{2-oov@6JX;e`V|j|sRS@ne&JEtEt- zFIgZ4+hN)xxyDgpq#u|hBt)PH@d?1?lqwngKe!%R4#K)kFWe!x80UD4wB$H*%uxW# zDeTtBRj|I9Am9;}lycIA&nPKfs=?~g0Nc23(e46L@GPVAsxqMX7`16Gi~FBxA{)Jj zqx;WrwDGhbxEUu;;fnf1W$-BHgz(Dx(v}iaQ9V_h^$2kpbda+3DHvA4c_wdY3Yt4+ znoevlHN@cQ#aSb9z5GdwA*_7_sG?btdyBXP_VAiy~Ow6-q z+J?(ib+Yx`eR`r+GArUwDp{n}nQw`ZYcP_hwjCB_cM4vJPX3QMA$RsaQ{8Q72S$tCODn?d z7Y_Ka81DY`=JP`%;~vo^T z`GRvccy1|#MznAObSrBk|XGqhhaF0lL&zjIEfHAf#3*H z5EzLO7_nd&iI4<=VHkmv2uY9_alY?6=RWJN?ip&42*_Y}rtUrWzyJO3+l1$WvQ- zINKUpeW+bVwqxuzewlAI6M{rzl34T}&;8hoo;&AjdA@k(496h+usy4?HfKV3%6^Vp zX*@&L878;I*TLJ=69Q=FU9x8%k%{?c(>_GJQuk7bF+|?z@g9~{talN5iXjo5B1{FB>4a9xBA3Z6p;q{-StkOf?=u8Q))N@_twsSqBd^Y zc`IPP`$#>4i3QF(P(VPP@-{pVF$?YiH`s)m-gG#8BjbV~7UgndhZ*W2!Ek&78E2v4 z10ScYfRnI?1}0`4PH@Jl;{vgrn>4S98m#CF(8JEoBtisLM##FyuKN;&l0IHnKhb6< z6Qtv(_*#8^1xU0pUDdC#lZ^2SM5)0vVa8WL3_-uZyrB2TD+Kz}1=_Cy&Ko7vGtlPc@Q(;cZOg$gWwq!}nXp2J+a+WcX zjg8dz@$t!%cVH&cG4*J)aBv^`RJMg?qMX~^%>x)BZsCW>0GlZiMGyxWK?4Wh*)7eA z7L{_MMD0{SkX=;QOkV>9vUzLzTD5a(sE>NIij=qIPrs$#l~Bw z0CX*A7HHmLXInNjU=tw?R>F(StS^9|hA>sXTYI=HF3G1d>2na&NnV-kG3d5CL>6BA zbh4!?#~n;}&XOLk=8W6Cp^>JJG>RxI>26E63=z3mzAbSgKxf#1jH_22Y3_vtROkL; zldX{sp=|6h*5Z*eovqz6P;kw=%S_HUQi^wrE3^87q+52W7y^u)VtvV2S4MsiVqqc4& zn(tm-T_xNu-tMP9rN#${3p++UB}^(Eq?6;2vcKHP)U=Pd7~HR~He<6bqB>B(Uh3qiM{(%E%zAmp|E1-9@$L5gp~t z*PEMfuz55pm!<>8sH5>3tUC4}Yl2iM1(0;?O5Mj|8_l>2b@$-lflYIO1*eK~h9zet zh#uTNBE29e90`CY&Emed3q$Y8?(lZA0wT-BM6&=Q(BSP-=q3aSPA-d(;M-C{&{^17<|62%SX2ZS*jwYl+=W zqwgh#1vQI^w?Z;E+aO8oa0Su6qU6Ims-)x>pliqLP=e{e1PxND6);s~5ES?JM-=mv zsJ#Me@_~{hDfaZ4u43Z~JiZIzXXhF$|DQ%V(KZl2#3E7a>iZ&yks{c4Mc@fA?VxVr z3I=@N=*eU^VB%K&Mr0SZhT-~zC)FWb45E}ij74MzahZcP7H*^}C=<-ih{_@5plx46 z13k!qz`PMHA@%X*5C~SH|Jn9oR*;_L;5s8BSv5yuT z1{rr$8mD|wPE>$gMh>D%``p+{-|lovpsMT!SauRmU@|U z6Jv-Y^m0*Dhh}jV(}Y(`Rzo$rT1Q9{7{tXb=!2SC>BwjFX|6gVEt>(uDzSP7H)}XH z4t7S!Lk;A=)7u4#Vy)_;ePmICWy_uw`x=cOn;Pc5S&}WkA6C`3bm4ofxOv(KB0;B&gIen}NRvRyhe`=7o6`WaSlrsfQS z?lc>0lwp92yy_viFh{h1fLlM>r9u*eRxm6_j1u^mVX+4YBM4nKL;me@@T>#TG~P91 zL<&8E)5oi?;tFbNK>(kFqz;QaL`am}38j6djZJx3Cghk7A%kWwga&BPtz%ARM=?37 zZ*teIJ51}Qxx#%$fpV6&(280&308t{hU+_HF|~-|$gZhGQ(0|rD;DO4iQof0xHa6b z1>G07*YJ66GPTTpDco6r>KW5jK+J-7z>xxVuyJ7)6Mbn4?Vji02F^d)kyD4U0vX@P zm|sGZsSZ`G9+p)O_b!1RwH^H?|)uQ(cRXWhv^m=vACfz zjeN4nkGJqs_IAOKSBJstn6=RkR`#;ex3^Y2AYR82gx}n3G+7cuxU7x7lyq7qx<~A` z{&uH*1IBcL$_O5e$i2uz?US|$RdDiNKch1`LybVl*R}K2vNB8ftq=yjV;FU{d*W1Fi~afP+WtXmZ7P8q5X03)dUGy^Yp#{mLR-of8`cXJXHLrc|~Z z2wy~Pw!Nhrt(HwBlf3Qh+-sEsNPV*pMmvLJQh#Gq--|U=kI?8?LK++}gvNy|{-OYE zaAwyP5^hI@{PH<*`2$uOrsPPXP?a-Wz)K5=JjSxSFzQ?o8bx`VOBL7&KOlykGujP9 zaNEaZQREdG1@9G2Ac&IV%nni!eb${Eqv<3_8|c~;FNfm)FSPI9t1@Kn(iQ?-BzG;J zAVc_t_LI}IXHOogl7Uev*FSym^c0Z1$1AVe)7isp`6b1bF+$b_tekUld;AwZr3fMh znV|il3^dH8%}=6R62olEA&MnQe(|I@Fu)s@DjV~qf+k1)Sd;0_n5vhp=@^O_ z27vL`!L(6ZiQ8;vRvUsBptvg)KW_lnUImyB@#WbzLaZ&c8AyQwEywcFLb^skLu{Bb%qic7Oi{^-$FCO}qclEc`nFHD&*?uB;!@3(TAJ+Ct&c3qeK>_E zYews6`ByvLI$D0;GgHkmub8P3tU0lWH+&5_Rmi{UAk9@EjVPq?LrA>j6onFrFogiG z^^B^qD)TK9g@#EPceJ`2eYZl$&8G1xvqIqO7=7UAVAMpUMUcjZJ5<7YV6<7`1ML_A z^}Cw`M|8C0Y*NVKn>Wnh<6NjFI45_L$y=b1WVd6qFo3qxxN4YB#8Nb4UsF5Vi3yvS zK($W824d58G-BFzj1MpKfxXtOee90j$aRk>O7n=H+bshLk4AL2FT9!QH&4TXniIG>6pVzgusU&w~aTKOXm z=MyBX7x@JFwS?HP9h6O1R@SiWbQPZC8y7p5Z?x!|FHI)Q2P6||=QU85%-kHbap}d}nLh<<`wjx)(QDzqrZ9 z#Z9hW+ypM4Rh>3vc9%v80X8@A z3mEGK`M`OyfI`Sn^8L2+IRsM$217F!M!$HR8GAegZz>XP`kppc|$}6cR-ePpGx(?1QG|MO}C?=NoIefuW z;BhD6#9h#Dy#VG?--oj!^GDSC5PsUUYSQ{H#tSATb{#@&{&5luDyR*QkjkYu#0W=w zQQYEKs|K1r0u~iWkw9An8D(zOLLN*Yi}UnOVEuMREo5Mz+W!98{c0+h) zN|I2ohB^pLIXJyd1C_xrCDsihPP9gBk6cp6Pqte1kuV3w-_7Wu#14J64jk<8T%QK) z%m%-Y_}Dov4G`!tB~Qv497=(mIX1opoA@Nc5d_aW#iq>f$zR=`5g%DXj`wMuw4$%ufPAN9J)auYqiWTp9ywBZ{zgQgoze zCGuxtyONM1dx@Rj@6re?|GovFzA`2Snv4-;1vYPbN0F9ii!w%4ui_k)#-xp=!@-^(Mg&6U=3S>$5Xve>ISo8*-z}l@ z7B8SXrb+b@MX{t?RP5mLm~W(yH`HE3HNjlj5L{Q;OiAvRHKH9Th&V(99BlXF@v}3C zHfE;}P9d)*z^AVXu0^LK51c&UqyUe7JLX(&tMXy|AIY6ZM=-7`P*vtwDww|vi<%qVEwFEm z@NmWK%sqrG@BD=;M!F)g`3JBi!>r?#?NvrX)H)*076hJqNJ^%9xs;MM10s`9lmWT- zl%Sc*C!v~6A79qgN?+tBw+mc#W05WZqB4lu${iIr{fPVulxI+_yXX;80~FPQdj>IKnEldadW;6(S0_~brAZ*a1yl+33;vJp z9uh*CZF$*3ALbIEb1mdNdvuh4=OMjz@V#OhF;@O|J=6U5CO!xM`Fe!l+De=ffnfyZ z7_+tOo;K9afG^jD?*#xq$rtKHf2A;tF4bnoi<7=GN{I*9hVfZ zA>2t`qt^$y9<|e%TrUsVwZx+hON;n2>4LG7WMfT<>24I}LYj;msIkfjeE9J0JVbWh znJe|@yhzExrt&aCVXe)qo*=xiA+z85*aM{4GTB`}1T+uc{6UgR z%?%O+s5$R%*YY-)YA1+3f;-)A$}w)r&>e41mDM5Njd*V$swR{1bPnfQxHJtI4&$)j zn}e=LPwn-CQsq%o1X|gk4~YZ;aXKf42s+tLXs*gCU{DNWSz3`Aq`Ls8Ym@oP##585 zu#7kvEVsn`Kr52WY%o4!XZt${-y)3(&U1{^&~Qf0T%o@EmY?a+Uh~e6mY$oJtWV*p zSS;Zl(`q(&vN>mM8a$wz#JgPVwAIW#kKI z(Q-y`;e?NFW+)16TocIL7?~oYfEEmTaQ!;BMTo`=hZ?+_z3E@%3j}Kj{r&mxmw8lJ za7k$w@jKQiI67fl$jixeqqVBko|m$eM4Pm|-&;tk5@1LKtQr6R(A4B!XPJj%!AKHOyPKWf|oSXyNP3z zz)K$FAtZkABcqr!sWP!ablbW!b8RY7!qhw8?0!fIzmjqrOM6OAb*OIaZLM9lbk=bPBb&NSk zQi8jGXLeOoX(;G!2oxKWfI>%tjRIbshU^?ZwJL}i)6RbDAx;vaV|Kz0wWJNqmuQzK zVA?-ltZU%)SP^X@23aEGEN=r&IS=8o@Xml$LDZrt9>lXlq%jX4W0>;-^PVy73y0gc2K@j4>1`Z4X3$rNP892 z=!rx_!^-w#2R3gf5AU4%w^&pV2q$-A_MuE7okNApJhtx6!@H-?6MqF;VQBAc7gOvg ziVJ~oNW>l>_-GYJ!ac+e5Fo^pf+2{7%g90stZs}Q>HOLvTmzD7lLtojR#$T+fldKs zqy5>eZ`5okX*!Ll8*I)ITLG3VThT_r1s;oVy)h8!7W)CmoUs$L`w9-tIL3Q0;bEGK z;k37l8+B)+%@GHzr^BkfKX3048%)6tBv z@e~RY5vhkpvq9mpkglPNv-hcG4oq@2SBp-q`f%0}~cKbWnh=_F!m90~&l;1y|KHq$H z@80C>iOdY7#F_4nC4>$IeRUN7!%V?tgULqTg@fxgRj9+4fcgZ(PM9)yv{dTjP@@-y z3zcSu9=MAG=Ilc*D4#2nnC8;82+^xBPp}NLaLI^&>_O03D{3gvU_lsSZn zO#@GjOD5IfE@oh_lc!HlpPU^(K6!HT4)2|&=Xv?$4_-#Nf<)BW6IWj4g^3Ugbz9iX zdA2+bQMlpi64foQ#scPuMZzOZe+tRreCoR$k;A%u!GIi1ja|YlB)#EzLx?y)U)mQ8 zx9Af9#%SZ2Z2%BakTBBYG0;?A)Xw4Y@GQg@{B9(vaN)jUI=kZsrzcO(pyJMw+TpSQQE@!)%V3VS z=yMo%_`c%lbvuiKR&L-~AWo4eKJwNsgSW>4%IpZ>X?FW~El8-uGxMW^kFJNWfqB#J z4sHd_F_D2TgkY9!u`_vX=;Dp$+NoaaFZ?6vo-_I2Jk_D}#(||kUVuV#oYf1p5Dgi* zi)5Q{8!IQghUyXRWdw!<$p#ac@_`bj<{T#ob+-wNQh~1V;q*l9O`;*aldi;>0isT@ z2S-y1Q(_WYu5R#h;U*_qY8g%fBDtSL*o~HY5D-h z3S)ppEGJfr&U796-#=d36j_0k;Q0M=c0|bg!88)-?smx8$)WKPEW0VBsK{Yd>pJM;uf74*VHu4RjCK%(L*JcA9eGf1n&HKSG0#8r(j*GaTNF1`e3RUju zlm6q6?;ul&{(U-o`{c>#$(s*OFSn~lRw>5$Vmmx@`SQoxJE=LY%~kIObJT{uzp8=3 z3ic&vArYZFa6iA@)=$={nBg=#3RnYTYbT&z+;mJ&Q}%?9=Wh44T#&7ab;48|3l&*= z1=B;xr+wiuA5UD_`1rC1?3NX8pp#YDcD2(jv$CEwNUf>LLYnNmXu*^~N? zMRn(Qn4=~NL>e$wsLlrfVq*vr6GrPsfrPT!@c80?U~fnxa2-i(x31J7G`3JZWoAsI zs&-i&_&M7mr1@c~{~9fdwuWYy5{rz!i4aFXA(Sod-$J+e*^|WB-Ck%t=5j0OrPqX0 zOh;{^UYe198bOgUm*sWH`!fR;Gf5u~sBX&#!n`_A59qAdc?FP>JgW~@dYvx57zq7* zF1oov9yv1TR`&L|VKqd*nHv-^)<{D&h4n_JpUMs?mnR1qH#ePvFatY>gj`T^ImP5J z6Nytc@Yhi0z_}7@0w+1+e;uqWw3n4)T)Q59IWPS;!4jP55 zu2R5fA|GB0P#Hi5jiaEM1IXIxm4UWlR&nf?d6bsY}iSKe>C7}Ex$C=@Eh0{88guBF5OE7sCE0^>66}@kDi=`q~Vd1*qa+Ng$jOz?`x22ab7^J8X zqnEM=2tlI3!@=Mfkt7cw$zMnCdcCa`}++*ZLlWH~81Q z%DqPIL@~k1nMzO~gU+>Z3CZF-97mD@8%A(>crG#BahG%vMF(r_w~C|*K(|U~KHHwu zo@B(e38s%qajcfun32LHJCTE1IN;KwZS9Qeo1_5wD-L#d5xpF#U6Zdl+?6NDXa~qG z8Sw{GE?LF{+hLJwba5j{-4nt=EfQn9bBenasAK2h{j<@NNAL9Ro;*G~ zz1x5E&O0X$@z2A1_un#~c(euOc5!Q;(bA_A8ywRatYZvzQ5awz3UkGk({>Mp(~Q?3 za1E^T2{m61nAD};nr=f}Oq~Q^P}w^#*usd}cUEJLHt^dTY(9D)e4J66~BF7B7% zVa#1fq7H^3OY|!d>PIW+-@xT`auzn52HR811ettLVoV_ ziXO>lu+wolnS-o?U!=p6Yj>c9_NPo*jNFi*LHqq4&dKaRDRFdoLzP?>0>tn*ICJ>p zPe@Nx)HAMTQ!-r7_isC4EUAD)hUP81Fk@4K@ zI0^cVgXZd`8_ztEFyfdCL1U|x(K76K&^R83&br^}4}Ca{@`w-~l~;cNX$M7PTqUeZ z$=VfXm$POcExP-d8o z9kxpAHdtE)+g5)FPdqQhtC(tP6wH?ni4ymbT`$)_EdVu@10 zLR*87KkIdDt|8o}pyWgra9iU_S(a1%TH*?>fr)Yljxp<`nwqYmdL%6xoC*eeOD_>Y zYim57#o0D)sW}iF2EPpsUn~zj^it1QNt28ed!bo*$rYz|zS^$rLYpBS4cPkBU#N-U zu@Ow)_k4o+Fn)tZCrNa|Oxp~=4$(=;-ZeH+U!q+YaE&~J=`rb?#!`QKLyB9A$F=~o zThgs~Ay+Kls4Fx9vvtvyhp!5)KV+|mN%k0*#6V1XMU57lCCG9AUOPLgQ;J3>l>XgZ((suJNa!J3#c!+TYailk?|4yD7WiI9vaYOLjEBht?XD8jms9e#|69?a)~1dZ9$|y6>FD z1{wo<2XPUF-p3%rZ;#H&0%cGQFH1urf7bjG zsbPA6n8*@{G~uWKQB$K1rnk37%&Hn?WWGW*RF70RotzwTy4@LFexv3i*ettnBNjD5 zPW}N+fL=wfkgw5@z3Lj@k@YOMS!`L#YKWt5?I~Ud(l0CIV?-gfF0vfMsT8Z(@SbwcFQ6lPlM^r{aMX z(`be`VHy&SZOO08L3#GOgOT} z9zE*?TW>OYD;%G|4rryKXLOAPYpC{YzK=JIyY($^vTwnIu%(lSBjudn|1SOlfeh22 z4T-5jxZEyr9F^pVl_+sE!WV;fYa_xbp9Isdq>6e5cLr3uh-?F7z`#Pa=Vf+Q8{sX` zkHhKVaIhAC!9LvU;Ir$$)=iW?!sh71Krv7bsjU4MT3^Mb<;nEKfV(fO5R0L0@Ai6p z!HxLqrmsa2`p1KOmo{%}dZ}BpQ4XijZXqjjtWYb`2;8wE6@dXtelYFm2-gxjLzkH; zW%C)6l)GLp`IB$IUO9nB?{Y!ZwMZgxu&}LW0zJ)*MSG$ui*|)a@a@QN6e9!zM4g!Y zXEuar6k7DL6JF{|(NY3d3Cf$RzzQV~($qp-bEi>cyo1;*c5epL?*gK>Iv$eYc<86e zq`jJz!J0>a8x%k(%pk2!1ZY!`5GJ{z%u3{O4w)(1;?5|B66G<8{k2q-ywLq#;iuGa z4X>sTajh_(Q+G{NB4k32=nA10&!;zVITaLJ6mQmwq+AfHbtK8=yI&EzihSuDFE3+8 z?E-=%H6GXwXBEb<-66-yZ2+1My3v#^3x4G{(rp4e(zvlG6-_}56iEsTZBb9Kibv6s zm*kd&i@+Siqn%8|Wc!PL2oMAB#8{1?tYgISQsLa+fqAy}8L2S4Ubrv(D8LN!IfJhN z+d~GUAjR}pPBxDh*g!%LO*_f-G-9F$mogagGs;l=qu<;9Gkj&VVjICH4@QxADtnRN zC!q#$5MR3E?u&E`tIZ2K?iM4)_U|JI@5LiV^u?F%7%{dl?ihg^FX(u^7%|ep^{=Lm z!@4f4%;Hnm@RXD4h57iVX!Qns)X*y7ncB#Vp=|7aE^Z7|`@W2*U*~>)+&h?$$$>)p zF@rWV2{fDG-V3n{I2ZFB&Z*&=j!MGT1!)$a=Qlg&Nv#?=%nq2<3N4HAEZ`B7!5!my z5=3ND2mmOkOX5&|xSTf{Dk&UUXsN&vCQUUojq`7z{Usierz$K9t8d`z zBPgvO?*%igaYiqz5RM`CB<6>><#znhZmd;%;eB51@Jt2;5Jur1oi$VgG0tXjEwkGl zpN{ly3!IJXmq^=DhQ)v3FEt8i{VGs95TZ!G6hH?o5?%|Im1bJLDzK9oftiKjFBl$> z)QpR6TxL^)rsXfHPc3%$g;&)VpSa zS`{G`g&7olOniD`VohAG3sqd8WU)To>`hmvr*FZl?&Ay{(?i~j)29eQfh(dYf3z*V zH=1ixs29on?O~dw#|GHjv~%E#*d*4+M76+2fvEH0NOdEm)W?)KTl-uFBTN6mejyCr;5S(FGY; z2umTLqmLv{zll5s66rQUY_CcV2n4N->jk|BoDoBWFH6O>2(q!p4>nCJTOIFg`)&1RaZD;(bTU7NiJ%WNUZ%DCB;G~ z2yXy#xMD~bqReWIHBG@|?_bOLl@Od+GrP`uNn-T2PY0NIsc_IErzfOb!Md8H7G z0NEz>8C)vmveB;f-A)001x^Sl&;OUp*K{Z6Kt1Ae0$JF>hQ2%-6;KZdl|rD}r6ZR| zK#E1pf>ZC7P8ug)iW#I8g+OM|4~UsGw=4=xuZvR%)b1YOV4cSYQ#cU>qoP!F&2HY@ z?7*Xh;rzA?{!mi+*auWDC{h#B6j8OUjVG@Tts}i-yl? zRM&?9<8?h#ijuqX6b^og(lRAOq9IBo%${$D?X(z8Qc%atXqR@D3>DUq{X_cjfTq>4F6`b$9P(pJOCBF0O$$IxD-AsV% z{ySH(8oqgIMj6?l7;R5t!NOdG4lmr@MP)E7DS9bwNDN8A;iZGyUjG1rfgi@K;y{y@ zp(ct7?_g~kGb*|Jad#7jT58@6$w#oJQAH$D|9F1m0ttY_Q&dhmXs%1{B#O-lHf1kf(U*QXtFwBb87Y6 zo4-T8AEH^viWq22N1;tUa$ccp7rHl+riGXx$T-0B_br4^_W2c1pU*3sgrEHTkYyp# zp4+6*K?ZcAYMeQCyKQv>UARg@>)bccsIK#t=0Dr6jHIJ-B9zM(_HI|~z@}r{j3HgQ z0ogSvB6jSd3%aFbtAMC4QW};rZF{DReZgL}5iU6`rWtX9)?qoF_ASka4&nTSC{Kv@ z1gm*Ud5WrV#)8BGK2#=dci{;Ld=D(^28gMimN5&J5FL+phPwmb!!drad)}t9<_4&V zlK{-8JU!GzA}y!Can)Wd(mecp^?PaQ&LCUzoDJ1TAi8>k)h=025uk3s3l7WxMZvDKM<= zgCt9rj>qBmAjXXLsKMdZ;qZu^D2bH(8N0ocHvfc0%`^7Fu)hNzT`WE`#dNNx?&%~B zK_8|PF8UDb;kWq14fc*dc!Bu_;p->cJyG-IMOjeiJWJHs9&WlT0#z}=m}0bh2;~9? z>}GHUz&E`T8Uim3fM-t5&Ys+V6Q0Bv=IZLngZpniJiW`HZ(Lk)9~>kpdrDJuwnc<$ zNVf)HN1at@2mr+PL#u`Q%~DMrSV^#|q+vKf_DFK8RKu1y3b54l5O*5qYKM z;}>cEHThuhF_{5d(NDD#ahFOOA-S*aoVjYmURL3oj2CQ?#nzDYh*P*`0&}NjTgx!|Q#z?i9ti|ZzfHCQ*>3;s8 z_Egew<3+L%iou5&E`C_B*wtzl(!*fw*65{u&snZZL6fU> z4$qbax}?&6*+$T0z8rKEF60kIs-x(vATfUkW6Wa=LKT-X_pOWFVFxi&ycSrLL;=fe zehWfdqZeak@CL)_#&&CetW7a8PJ+~UFXmdvrhZ#vMXAcUwh&K2cXt|t!60HGe$W`VbPYjPcqIyA=9&kX-^Ob~eVA3bB{<+fo( zRl=H81lVw@Jpq%>$|I;0E%DGTw$YerT1J7H*_QcZnQK9UskyF?kYBx9?fnX<2Q0x4 z@*3>O;1+bhA^;yBPP*-7u${4jBrq#+xK{7^p93f5cE`-FgTE=zm8EP}qbUq(02(-9 zS1F4F)dF5t8?B3_X3A0w@hV`;Xco%L#E*9g(-(%rO)t>I%BiH6@R5M8v3S?v7}36Y zV9M#+9eBu)KL#;RUm5x)T42&9h`J-oHJo&(?N$C#sNIi|T@A6EZ%{yFRurJNJus4T z)ZoyFHiv!$?DV)dkiRixW%@VD|6&Q(hPgH}x=oKJ^TP3Z9(z;4%C@65|cGK5li&R;VuCU=&5OhH^6}MHm5A!7kjJ zbwhZOQ~}56ur%b{-Cy1<&aY}NAs?O&CUoqB&Cwd(-RpTg5pWa-;Q!bvTYV0Ql)XUq z-7t1T6-gz<3oF~p{W*i`k)S<^hO>t76tT59s6d<@9_wll&27}R4xo$Ny1t{kF6VUR>~o{x-u_7G-ak*(gHrJ6Z<2JS(RzMFR(+!`P0F&(C{`a=}%E zb3CX2b5bB{qqs+Dbn9EPpPHKKlZ7G^MSs&+NY~0O0QCqb51RLN3!7-WyGzQc*q+9C zgw3jT33v-;eAC@YEY+%fI>o7K!pT|CBQ-rwf@yvClQujfGV1cc~pc@(zIlkE=&W;5tlG^=eUS_hbzT@p-t#<5har_ znGm#C6V%rh3x0BhH=5urm`m-=fWqj<0VgyU@q9F-}Ln9=^0FYVI6Si5W)cRF0E5vNg3T9BA08VqtKei*(f^YB7Y0GvG~W-l}mSrbhwlSpxUApkZo zvLQD5Rqbx}`nP6G1C#Lmc0&V;0}1Mks}+iyz!MQT_)ktE2O{8*U6FRW#a zd>?SQ#1%lCx%HFVGc*b)B!|dNg2?+~qq7UMb~AA`&Le@&5x$5rfAip4_B(!n1=mV%c7j&6<0eXrB3%JHu^FNjL<)oRFs) zv|9Qiaz`3!O7YE2dC}TkG%Pr$7k)2 z{BZ-fV$zBEbQf$;{}!XiiOzC1zp;U)foIrFm1}`V0ZNS_-RupNQNdmj#baupLG=iU zD3Co+Rcvk=%brz$0{06n=!Ew-;eQ&8#DsiISB(0Ef$}Pd7H;C2p+P^8aZ)bZ164Q- z7{-{IzVv|t?lB^+q;=Mmu&e4awuQ+7d9NVTW*4i79kh#tVD&IyB2W#aDK1A_jtl?q ze*|vW#*e7Kg5d^vqrdRiL_>Pm5}jvAZv+rjjP7maKm?i#4nlCMysk;W z5X=hmc0uTHj(|Y|YG7j|TB}3;79c+y;*T(i#omU}+w!~|%TgiWXtfD7v?LDCsSfsk zAa*5wBI5R&Shi~d8VoYP};0kK!y8t)5A&r9SIP}4uz!gI^SAVh0 ze+aOxp|^;Sk@DAYttjdb*Ajd zxMr!ZZr2v(B~0CfJP2gaLu}0M)oXiYa7<{az{O>L6B9_ypjQjnD3BNpE%cU35Gg@X zCAO5H0fvcPSSNaNZ!hRrat>fluI-I~_l&clD%hz9Tn!M%kSJlEJ@F+H-h>)5ytJI? zD^SvSbd&0cqQZ}VCJRE>;L;%KK~Bo%>P&bBz8c$#@E`N{)4Q3OX-hghT(iMi8 z!#)lv5Wb{o{r+<|)h#$iOk&iP20t%~`Wu4KLy;e}`_S#Bxq&ce&e$=ow4|_{6A_}x#YmWO#K!w84% zV8#R55HBrI!n2t)iFPcaG3eAXJ4DzL4FK93ybc@d+D4HPi}ycpvFwkL3gZ^3Hpg(h z#;q!1c`&=OZ?bQqjbVW+Oj`ou-slJp7H6Y z?KFt&M$S4@XM#*Ch{iDAmZ}q{+6>6i!V^H~CM^TbsHw@if}AZg&_=}ExdppWdTdM> zqM@hs*sE98*RD&Rd7%NVBL}J8sCLHm!G0vvn)UNw6Cq+IvmL~Mk;(7fN6(lrsQZa- zcWqc~=o!pkw5_k<>PvY{WG-$ooJ{6&8Ue-4qVWq{6mIS1<*J50yZt>@fc z3--4QU_BIuAn7;uO*8|utw~!DD5yq5T&D3FiD6BF;9(8qE24sSRyvLzk~UbUEw@WE z5icU)YCK*F5p8)YzuU4VWk+fT??aq%S^9T*zF?OYsc-_QN(jt_=nqy>#Y42gI1jdL zWckY)h%3zGIrnvfgNa)gk~{$m27V?ZF04YIpVM2=Z`H)y0$A%{mz+{Dj0V9JM;b8_ ztH>_TJ&&JYU|ut$v$9Tawj+wfwm|Ij?oHFZg;+jaiJ^@qK!XEl0Ptqm^6|z+Uds{U z3&ZwekCd3Un-hmMEN&a(S`m|xqYV0JLNwz91DYXdAR+qeXI22s+8NxCxpGEDlJy(- z6$Fq{i<$8#7;Tt~VkKjMhqmp)tPLs6B09&%&5$rdx=2p2w0^2^ zLMCG&RLcZB(LG1cbM=Pnc|iYTQ)6%0n7Hpugu`U(JJDAIzcmn{A4~3xUAeOdOXLL_ zy19);Wh+y1|T=!zahk&VFmC#0ZKe zVQ~v2@u55gmu3>E6b)>DW8HD2bms_cC*#hUEuvWab%VPOjvv5r;lT=XC5=0rl=B`?K4; zKRcs0h^c%#(*lVVVUL0>h7Y@0ABokaO*6^=3-e2PL#fKamm%I-@|4(5L6hV;AqLhh zY$+6)!ZyIBpV-BX=nFNCqepI8F>nPi!`Ix;-r$Azv$aqA`O^cqb%6@DBgh>s10c_q z!yS(eQaiZ@?_9s}3%6UGeFKAhMEI>fRVVxKcpEW!D0dwU3!M2?F4aB^4%Ycz_us?w zBz3S#I|OObRfif-KmoJ5tTum|%=H9AkWj{;V(3m{Emve~)_Kj=wK zr{M?bd|rd-FAUW8GG{Wu(pS;bEm|4TG0bA(P!>$5E7~5ZHr#2o`RLVfttIo(tJxOO zB?E4iHe44`cv%P*De?JiM&6|v(;mY5Shqze?q(B#W``5&#@repb>wN_N!m!4Vz)Ma z0G{vD_`xaBD&(b|Drx3R9w8WP^A*%3h_k1>aJGFgXP|t0lGK(S%zaC9q2U5h>*(SG zNUP`DL2{siHri|tG8)=D!NkdscUXw_QV_8M$X@7oXu*Ble)jOG`AFVDvQ-;mW^vZw z5LQ4nNW-Nf{E+YfbYC9S&}uYXk%wl`f7F}qLx!|aqjtQ(aI@{fC3;B|T!ZN4#cJHL z+bytnx6~bvN8kO9uk(^Me!;HPgr2AjM0np949MR{evi0SNTtfo8K%uZ@nHv*)f$T# z1dX;_{lKGxuP|afPrFU=RhD;~J!*cV-E_pJYd5*`)F4G0R7}o%cQwH^ed*)@-NDkY zHptBGKJ;PIGx3a(WlIO8bJYx}QlC!zDt!(AU$RePEQ{*u&+4`Zf@=M4;rB6xupDQru;zcaNBpZkajvDkBsa>w02rbGE@yM zLeN|@O!ix@3Q>dQG5{C+qYy`P_C`bcCMzp)W*2OJ`FVQ^0I~+j5N>a{*Tw%f%h8|# z1R|wi#{sIj6^=-FYkJMlM5?)_1Ef#H0r0_s(+3I9lV=Bu6F?r2vW14~m>QQbz7Ye7 z8FPF-8+hK}is$Dk6s-q4Pfqk|dyPjf{^EtwByA_n-C;;h5#MfYR;w*anC1vKE(x9i z#NPOqNyfuZv*IYr?rNmX6J)TqL%v!bUrz&Layx?F*mLoI9=kBxjZ0dP__KHk!118S z7w&ji`|;HBN&xehqT0bJprKA^fc2u_$!4-3j)F|5Y%*Cw!oHwO;j*Md!)-7O#EkEO zCNc)Ao>UT6&;}T0f@$lO1IXjkXheAhLZr;a8RHNHpBDuoO8({UdteBFl0M04DHVg9 zc6fV2IqH>8_bLGM<0D+1(__;qdEV9Tf{al+hyMBfK7ra$94YVE+*XAwfDDms8I-TX zI1o3OO;d-*b4VbbU>JgzAy<=b1ElM`j4pfioI`|f1mssS=bPD_qZjT=F__caJQE1b zk2IbNDw35zVrK1v6-ly>3{O?I)sT?>)#S&gqwB$bLK?a|kOa4~r{7gQ6wk z5H?p10m(}AOT%+XF|%QL3>z116aej-_$8g>W83KfpCfXEqbOHeL>>mq5`V{~DQYn7 z{OI~YF+XvUUi68e(5l{g&O1WHuor)VvBV0IV$=)`0^tWPnuH&aCG$XfbXc6+?pmkQ z>6#kCE-tD{?cT!ibCxmPUjb^Dz;w`qW5JM$PqQk9%h7&sa~E3Wou#noa0H@aR7-h+ zGm^pd7H91(1Rg_6k^F-zExg(HKh1xQK<70sC=9fHGDrizv?@hA!?a^{My}|TAAQ{|v0ut(l8qERUl$__n9c;8=CteLu;UQ%N z2m-i<>|u|EfFFkQc4pilIE6_DUx?d_VAviC+vbA2^1;wB5~H_Ijx1_c2${u0>-GAo zx9`4l^5l6w$1s_J3IIu)0C$T7%{}T-gVO;F!wV?WJG9dsvj}WyQ*cS7Ut+Ho3nt@9 z;Rxgl8xs8_el<7=apck>MIDK0P=$wN(T{6&e}A}J!7<`MPMLI=;~4F1VRl0~(x)%N zJ=sGz{mPEj(1lASXdHes2USHw%N$dC8@92(uwq??T%hUGVVv2G-S9s%V#J zW{qA=P8Qc}6Pm6y`TR|fh%8p0TyB5lV^2QP#*YQu0Jr`dL=V1;gL|1m?OB8>9yPy# zxKIhAU8Y^f9nfFj(t1&>&4NyhRu%yYP_uzBL|o@k5}a4s?1(eLW6ggzJ5rU_mDbug zwnBRBtE3pH+JHz2XUhbBWL3P({PT}b2dDQK@Wx0?vW;#!0UQbamFMAxdPV|JgrT!r zI|v|(Ci-j;fqOuRQJ9yVlM+xQ3O$6%FIQINNkj=#*J3yP_KnV~k*n*P(;5-!V!#n* zNKASJD(0M&p(z=$7mUl?#av8TW^)GnuHdkXrGVuK6d)x=Ht{XFc7tlLO%`?=b@FN2 z*G1na$fRMXHa>ts0Dt*A7Q=d0?R?g`fJnL;S;YlPxVb^T?Li&%`@8vdXf@hm+A!t? zHa)&+oUavcY65A90Omvd254VDHTXW0W+FCpN7x}w9f`jRrcbdKnWY>p*8E*&ymm9g z+M`-Eo^D2fvcAyCcmTGfxJI+@5i6WwFsv`|7-A0Qm#NybK0@^dN>-5~aRB!|{J*!3 z>8ooreMEf5U(H_A6|Z|bQz9my`VAo@XrYTV78V=?cbk{hXSj8PC_M8?m&cpD*iEyl zUA8;fBlC}c;3?y*4;0nnec0xG_(g-&nkSc=u<{AK}K_Nb=bS6Zc5=UkV1}l?I z+>rbv*pLL8ql?&skWrUKtqXUx=FX&9rO}i2`~(5SmbMV_0Fzh*Qh2T7)L|&8|7t5< zKX0E(k;&^5-@%OE%@oWc(9ao3tHBWB^Kf{4$A+(Vs8$3##02K2L_v#kzZ&EeiW}79 z{p*c!<}!E-jm)_l9PW$!J=aE|xP;D2P=m0WRMfyUXCyMZxE#V7+As=`9VyZrV3zji8*YYKsi^J(^-mKq zqz{G(l~82JvbP9Uzno2^sbIv{EH0=guAn~A$YstJ6^i-}@=Pk}y*R}%g#uq^5xU!6 z&aGALc9)X@0@f^vY;9S%JH2N-5wL(-@8X_?)w4;fI&0kxN(aP`Wd8Eg+wgS(>8yXF zXdsq?G^TzcoPsDCxcG@E$szp%^%@ODj`D{S1k_(l;yU}NXJPZERRU<8j2tzTD zG-z-o8`+&;-_Y8bBRBGG1g3%{2eF?g^Ve}(xHU8cWmkK>tNb4qhN7|2w*KfClaBDJ zF4f8E^-lO@9!+waj8mP+JVWKTPY(l3od1C^qQ*P>Q!*zM6XNz`=O>JrGT-3RN>E_ z1VdtBrjp4$7`)s{tA!zw_{|o~Yr+wUvctK{7(qp5GDa(f-HNkHD$_A_+@q*&Y!`PX zCr>&=JV_f#JFR4Oy+WfYq)x%S4RK_+M`XQ03A)j~mh}cNjXxYuU5D(_xeaXR2#r6q z3^>M9L^_bnneyhfPh6equjnB{p%CYde5Y=6XE@`Bpq_HA^W3Y7KFU}vyzD(zzl9nL z10(1}aJ?hkVr;={QhJ4N%Yk7Rtk{05Ay(#!94=f_cCP43gjGOTU5u z=k|NByIw|xECM4owu{w;i18lCoD%9x4I)q)Jq!d1(${dKNP{RyW4;DSwET<|kGO?0 zu4HZ}=z=!z7c(3|$Jw0WsA!-i$C?Nu!8{k&*B0qQTs9%Jg2=>hit9=o=KN8kDJfm+ z!T#WjG(}kKsPUQ2gWb)Sdm`}R6mU()knCP=n*>e)O}kMbwT<+t!hIn}!Nh|Py$*x4 zNAEm-h8#plgVcZg;H-c0;K7?GcRu40h+tUqd|4AwXnhhpFs$CV0b%BXGKmPfZs90{ zR|JU*X!xn(6lMk~`0UBkv)$8&Z=Jn;+_^D-a`N!$Jp@ED#9b*mZbU^#X4QSTM?8Xe zv{%i~gl8+F8D(E!-1}LdbGEa8Fg}K@hoviyvQSNz5PcZ9q?1v z=T*wBvIy6`>6QZelq7yb1AU~JqfHs|)_Rr#lx75WoS8QRuu2fpGs7jNp~*5sF%IwF zTOzxsrAENbUuZx5-2JmVZ>u|tz!dF8p&C(oqE*Bk_(J;*a->NvXOCjq{e2Vs?7~NQ zVHB=O&Bvy;pKQPR{jO};+q<){WuJeL*EO&y%Z_buv}{~k2fnMTyU^$FbA1>3dskL?q1XS9 z*Z2!BM(AWWH?Qo^y^X+OiZ&uzn4!{?;kCDk6m7UlC8Op$RMJqAseDr z*>d)EUFIk$AK83xwJvnbt0Yyjrzt#!Y%ebeN)|lRq)(^;D7c=c23i>tgMp`?k74;* zZoU$x=F2il98T8U$$Bvp#m;yw=iMjd-Tg(bwM?;J4h8jXidDU~RED((lw=6ZY!Q}g zaB)~JWpWI$!n4?CIE}f(Sj=Z@GY&bq?DOIH(%Z98S6NwYq6R_vnq_dnUsyg5!dlkb zGvt(E1rBNJY-c2@=+G=jk{)isoqYftrFCiYL&*-KhmUt=UCD7mK?8Hq zI`E;(SNfwMT+i#u34lq=;WT`|5=`f=dj#vojh16FF&{6hP9wWPGL&uuxTX-kHa=Z)G#PkIUL-~_&T`g zBUKFQcpsA7sOw-xoe3)y<9^MP4`%h+HfbXwxi<$Sqo<(LBS}KKgD^GMDp>j~AOp{% zbsdAq0HGe$x>%LdmIF<;n4&IU1MZP59-0|??L*?R-D-hDOUjpEO>F3mX~J$sT1h1x*pf5K zral~{E*0T>*CW~PWj(xqh;*2YwuiWbuelzw-MQug@u1Y`D0zabsB{TXM+Vvj8Mwy# z60paTdK6ZlOpk935gLUE+vAges*LjC(flGtr`e0hY|QTrrm5 zGT;v8jLX~BU(wYZ7Af&|qrYt@;BB(A9IktRBLS4(pE7|Kre(k}dcdzYM%T}vS~gLb zWSk+UkhZaJlT}pNjA2G$3TxJcK&wnq%B#k9jy&jMmNs})1*VCl5{v4Cn?Mut>DMq% z{-k->28xg7%J|>4Aknx#RW(@kJ11ryqFzuZ)4t65^M?zMQE~S6vv=Oazb8-by#2i=Pu}_L_0ucweC*!i_LaBR+gHYG?JG~u?tbrE51-+M zSMJ?=_V5m^A+9_<)xS?sclYG%BriWbgNekIXHQSwItBF3=kGjt1Y^+qcdp!lHN}I| z=l9P(-*R_b26L4PuWiA75QUPST>bs%{1v^*Xtn;lfNSq^CTU#?1fYK`f|7)ZJRKqk z=;U`T-et6Ox+b*D4KUdSk2gFt%c#6Uh)$39V7?9G&hF{+GpsCwGq^kMRdA7JOOLnr zZy{o1u&obebwbi^d$hj?JA7E*;)7-F5U4j=O$G;dNHUr62unSLOHxZ26pWj~7eIbR zdL3yKTS$CpEq(hl>_c7GvJ07#ui56Un(?oIaVkMmLG}6CP0K|e$YxG*gs811CK@qx zJoJ24p)beXz_Vghq?G9UgIySgKqqf?MwxlD^{x|)IitNqOAn>HaYjt8kZk3%cU-RA z@jh;cp622^^X=sOtPb#88qllcxI%!2RIN||v~8frGBS^fW_y_j@z{_L+LQGg+c41z z_?&zz&U0DJHzZs?FtLF-FE(Z0nZ>Xc;JeV3t(W{vI(a-7SNJ5&GW-EqWAwyHylCiOEmSQ16 z&md+o9`csTxXkT2hFSacU>^`jzaqi!zp+)U4R}yS8dj!=y;%rrV2B0_WB`u^D`wm&y| z@aS{>vj^=jx{-?bQ$Fy?LXVP%*r@~gIA?pi~hk`K**{mY`Z zqhC~7j8D@bcn@9(oN7|(p+fg1b_a5(>I}M#ac5^JCM5=lW&b_wD7)=>+2^VXGrB@X z-Yys_;#~;F9z449nPbm2ylPcZR)$N_IHo|6j^|t3xoD;o{(!Qhco~gALNAz2WpQQb zxZgoonUWHdJHO=E0WLJD6YR3)%+WJp-}&u8Uay{GAdz@xkE$$83^$mL`{5sK7;^gFaWNZIg3)&+P15u zEWmh;Viwk$0s~(_3ZSr24;312PC@J;qUQi|0(?J17YU8fqm`i>R{57AU)T>|j{wT; z6q|rMIJvTFT?9f;)!W}f_A$JxA;Lf;WX}QWxPV&&bpbYyo)^k^7`({IofJ?lZd96p zX}Nv8mZf`LJGMXa9VCvUl8@BMT@}9dX{fNH&hEpTmaQ8UZ!nngpb$eU z4LmWKLzpoFYKFtqF^J_5t6caHhvw)2W}p%pCs{1v<4o-8#=$%e1vm{J5^}{40xy{}EQlY(hhRY= zPiSiYgW#u=R0$q8bTaD~AI?vVK}8AF>$nprWFj_Ln%mBSai*-Balh;7QsT>X3w6US z#3Atp%^Xof1a4idrH`tEe4df_emWe!fuK}OnToNKqiUS-#+H#3r`XOD)>D%U!gFVz zZes94+C~H!cvWMkIpURKD^ys;)BNhX>B9$Q&)Sy0ep1RP(HRxwREW`*nYYZf7 z@> z-5_K$!QDO`b!zWuzbzc5^$&jINV}Yz##s=OA|-=8D}p8yo~Uf16P>@_=qA^+3XgSj zLFyf&=DDVVyFU{wYWs0fcl!g;e1V@%(xeI^T9(@v(xCo2#lxmV%e;Ius6M#7fHxt@ zeuFfh^SZi~tx^-J3^UFV^i2KGsF(q-==cB+>$X zG#Eg_UQ(_LU|S`54L+%f|d%Czg$< z>(W;keLWi=hNzAqHU>rsg6P(83WlcoIxKh&)kthAb%&ATMFUF_ZlYt9w93w=tV0Bj z8OJ){bRjy5i@@Ouc09WO;Oz7XiJMMaWyKX2wbKcRR(1`D{xjQ*oK2TP_F_3>9AH=F zg9lGC4eZ$^$$T&@;P03_0$dn8J|_L?c+$aG?FU!_qqZax6KiGxd5$3t41&fWiSAq@ z4G2NN9Ha}xQblS`8=K9qN!H^cBk)?CJH3Qy+WGP-O*xK_(@UV#Az9`5gxj@WqCBbc z)ki>Qhja>1ZU<%-cE0-VX=}zCqMi(_ad5|zOJmyiE;NM@!%hz-@Sc}K20Bi`5+Dfq zLI{lw+(@P=4oR-cfEs}7J*1tm_bhKnE`=`uYFgX?=8bwYNKwd1$x{;lT8fM8vuOQh zsFR4u&B7MpdI@*2(IwEJ>rO?gH}PvA!+N{g<-rFIkgynG%7M5%OelS6xk@CZzQ~2q z40{da(>PiFh7a$-WdJgUo>b3XdVtOpw$WV;!h~D)+IR}&0zz^sJAc?h z3JflOk~0G&(}{M;U~YW-Mt4cMA&}W|_NHi$BMg_3$d06E8yj;E?cOr>Gk;NIW1veg zqVal0;y;^O3qvJyD^OR)#P7^7S^PX^P%5M*feKSQ#}6J%ga%n|;bdX`$D;-JV&DiR zy2Eb4!~v|O;yf3As(#p_v-Ls)Jyy}>)6Rm$RcGBK79lgaD`SO@!H2S2d=VhSe8dA_TO5ncl7Wi%&a3 zqrXi5cGZ9Ks1{f>^@_=&RlhwE_AVER}!vBaP zgcL86gSn$k8XrO?K;;ep97GO}%9c8wh7cQ~A{b1a8jd4xJcJEuNoAHWHD5sfhRh4C zpRP_a&meT5@C4~o7@#eH)p0Z~?@fC{5554JlqEio+xEa??2dTZ9kyC1u$D|?KDMEIlu31Vfhe0$ zdw}U{Nu+b!z3J}QZYUb4+8mI|0LdPbNrj@uE?F<&F6WhA_IWDD?+aUJb}J4hNLNG+ z+MXlSRy9q@cqoF=C&+vNF!{5=4syhw!@V^(z>`5wA@j8^%n;l~(M340i#)qraRm!W z1gNH_1s<~iH_(*4VtdZ9Qjld*IlUIjF=6Tx>JOn~cRo;H+(!@`A)Q_8$I* z7%sQO)Tb0s4Z#xhG4dJml_cqZ;XGn@K; z#o}c0j)~Z)yh0PK*F$)Ee6%xwR7)r$V1wyxiur9)%s4FQ+qf;L9iMC`3-zmg?5PlU zp0S!KR3fQ8rL6b3(}l#w89rLt#9GnIw3C3^3yLALgjKX%**QoVzkTFiM^?GGTo46GrT5Q29a;>u~;aMy(U6gktj+!6=3t4f-t9DZF`hzt@E#d2)CaX!tHBX=g~Y0UT5@JT1yk3w0N%by%{%=_01kt z_Ie=zW~X!!W0wh}Nzmn=>*+LeAqd?9RL?|-AoENgL%A(Mp<$03Le@gp!gv%!b%K=tgkD$W=-= zTzME$QDqk45@kcpxGb6$wsH+k5{V&v2u+&|EG*O)=!Tf2t=@r7L1b`!CQl6I&Wxi; z@m3_k>GbL%h?r-wBmFpqmplhCn*1`jR?&7FUqjN3jw+B4l_G>7U=1RKtc?4NkA@mB zMzm;SpAF_ukjJBeISYg*On8*{0dDX7KG5KzJ|G1+zYjFHs1NYt=l6jI7xi)VqCU{T z`dBt$*Kp(8{Q;uM?vE(=D=&}*c(_5RRfb_XVq(GO0s?hpi7>NZs#IWy0XRr7UIYtn zv}PiTaHJqa`?u&{jKt}%;|$qh(%nd2Gu@3UmAH|f+SpzQzpY=6DHg+TSM3ZH&-d25 zTN}@xi_NgRVY_W7+u|&B?Y5@QHDSPY7?`NEVAn%u34F%YXRr|nDJrF~%5CX81G zt!^_ts&G#*QA9X#3=(W*csHnV2Vl^x_#5Yfehal1m^1pMYNUb?bqm=F zh=?G0bz+AtX{1)=t#1&%a%yOBGTz(;%~>0))ldzF^dnsNk<>qoWhInZ9~ibSR`S#J~hlI2%PFDq_4$aSl-+BjFC za9YPbrR~OH6T_i%Ns1K0f<9v?b$ zxrgK3c@LrNKx*Rej;l7xa_G0amB=E)B zCzS`V#GEYTG@+oaIpgTdB-wRn&MUE7GaH_U?JbFHC~LkR3TFZH!* zR!W#=MR$#IOX8cDvQ=UzOWNf%`X(Vp+15baGBdI`7S)0>Qlh}&Kw@N^Wjgv!NRsW( zbE28{6Szoys6h(Z6@xd4MfI62Bm6L7X;2A%vFPWp2{=r{-rg*uV1$TXM{IJOw&T~2 z@xzSl19jo##j<9aF~cw6By0OnTiq0wwF&6*0FZfGa4`kRN-@@~y=ruys)294_KSW~ zsoE@j)EtCeOxn{Oy+PYKIh|aE91QW6Y%@rU5Nw%Ta*;FdW*_D93+x=C8N3=A{c77} z0L=iYfDok!`vSb@cDH>MHYpXwhv$SleLOTy4J{=J)Twa~(oXd{}>oJ*k&*BvGsZeWR1^`~_LETYr`H+K$hu z$JpruU(X@@@J+Mso2CS6qPR)Wl$P#7HzZY9fVnZxQ*ureY3u!D5Ou;sOSAI+(ZR@r zgoly_rJabHJuXWw1}p$+Jo}%97r=0EyfqykOrpqFC7f6TX6h#dQbuY&$!;mx%J!Ds z^sqp~*k)4~3524CmK_y0Y?_bZRoLG_h-svN08+>pWmx)oz~jcYMPs+`#+wngr!TUU z!(hQ*yvu}NOc?jt!45XlK1{-xGY&fd{&;e8hb`a?VUCVLfUm;v9Xa5@+lODE>Ci4~ zf)fcLg-f!%`C=nVv#nuLboBd^T6@SPraz-VS{a+EMsw>WM%as)q4$c+&^IaT=Zj{$ zaG8)v(H0yS!5yoTe8UVG;>jx(6)Djn@AE!llJj49m0+ChRUT7k6t0nKSzmCxgqd3S zJO)nk;~iri!NeRkU1?0t?nl871gXa3MhRNUQplLGrCTT9%e@fGPJaJch&P%S=J7i##=yf&kJc; z!`{Jsyvc+xbe&!D(!JT{Xos2?!X*zfsqJKr81IexkVbeUd>CsZyYk65W3O|mOJ{)s zpiOYfh<^7ToV@i^8wmR&S`G;@G9tQ#PcK4`o4hFo)dRU~`_IuBJZi#D0=jeOUF5>! zj^cKT7fzSTg|(nuFtr5Qupw_wCw(>{0*G2FXDdpWz9lF1JXVNjk}x~P@CYRZvs<;e zwuY)p;7*=wnJL;q!IrlJ6Zqm-a-P`QngAqPp)@!04TTLLy8J=vZK0C3*Lq#E_l{zMhK`Q==Phy^sxb%w937bnY^=BidBD~ zJ7%}_^5CUS+LQukx*YJ|yaUyH4>(M?3En<=`0(_B-i2%2i}@o(Gk=srH@eYI;bd!; z6O1UL-nbg`>P3{sA!gKPkHUAn%n2NtMn5s(ahYDz1ASy1^io=r`T8E(L0n)^vGeQ{?LZbMzj z;MS09zTa_cQackQjhE?w7GSQZgj{?E(XC%pW~^@U(pol)#L#bPK-m1jp$Uh`(`l?P_=Z z%G%Afwaax>j#jJn4fy|`;?FCsOJDrpH+-PgMmhZX%lOgz;QPOP>0fxI_rVYKKJdOv zw?6p(-UmL=4h`_{uP?NjEwuUFg*KmAX!ARHn-B9{Z!NU>GkF`1=SS6~^(Rmt{(KXD z^gj5WFZ+o5AAAo6y!qQ7B>bys_nog~bFkL?hWD*r`Wbs`+225M?=bOHqjVW*U{xtT-Z1<(C zT{{dM|9(6lm%j4nG_Jg_Z@-j%-%r1S?pEIaiceVHS3B?PHsAWQ3*Y#|c^i%F*B9RR zJb&L;^uG0`_YLyC^uAwNc;CO2x6%84d*OXQ@!stF{;}TosTH*<_szS#U;qEs--of^ zvhzO7wq$YMZ#A z_oJ~R)aUK~R%#~#bwJC#MJm*LnqXZtH8V53lUC z-ur>~?S1W~uY2z|zUP}>`Q}%?b>+jaeA_GE{>pc}@|~}I*Ly#L(U*Vniubhs=YN_* zS6akY>CZ~*W2t~&E3J=L)l zjS7CPf?uoPH!3)9!}MpRb+dxsOhEivX?;%x|DFo|sS5t73jS&Ze^vAO;kZbzwupyV zC>TtpvocmDY9z-){XC)N_14f&VYHKHvKHyv)1gQtLlOTs z3jRg~|NaX8{T2KNDmYJH`m@sd(-r(rCm?>Uw0^LH|6m0_uHeTN{D&&|4^{A!3Vx#b zCl0YcC*gm)_|pphtb#wY{T;vWS?hJjAEc`;wSKkr zBVHywcB%Ett)KQXX}C+RUu^wyQT~PMeV?n|_c^^U;nUBx{!M?Lyuqc`kG1|IFOv_r zq}wrdxq|zK^O^p9KK;b672H21yuOdVP{F@YJ^!T&{-p~3V-@_zD)^6A@E@<>KUu+l zvVt2vPnAEFe&W{(?yvIuzFfh7rh?b^+s{_;`u_S06}-Nm{$d5M>7}n!@UK+k`?(7K za~1sOEBMb>@V`{S>-+5&D)=vGzx{RWDf?6J&tI(C|6uoc~`|`yYt- z;FqiRzgo5bRki0?vOm8Xe(2wo*1uep|JADem#gw$smgz~DwA4Ce^y%mXDZ;=O6y;* z%9Q4$KP#<&D;4l-rS)r7`QNF^zh0I9-KzZ8tMb2Jl}UxCKP#>OFct7?rS&(e@_$^F zf3qt8&8qxcRrx=y%IPK{V5Rk+SMa}8mH&&X{I{#}e^r(LPF4P|tMczu<-b>z|9(~e zZ>sX|R^|V$D*q2v`G2g+|DY=W!>as`s`CF-mH%;7{$Hx{?^Wghtt$VM*58h2m7rHz z|9ers)Y^!572zwbw~O+7TK`H>{+ia`Ez0k0eO)|zeExl{eo=mZ>se9$+Sb2Ol)tX^ zJ4N~HTOW#dJNx^FR=+5Jp!K<;{K3}0U6lV&>%T3^A8LI|qz%~LA8y?$%HP=f=Zf+l zY5fO9`I}n*Yf=8@*4lg7Px$jKtw%-qTU)9(*bXx@Gs6xuGcz+YGc(`S z(tomd^5uhf@2ywwRqfO{=XaK*mefnFo^eYfW&SPB@>`tsw>aBxarWQh9KXdme~WWz zKRDznGl{i)S^_!bs#VUC|N6@KVp?LA`OKPK%SWvKM)H-vKS~m->n6VP_g4*Kb*;l! z{{9FdR-g2~G9KB5_@*A4w1LFxlgw8}-)0i`&||B%g4o!8khYsxT|4%b@xikad;h7{ zb(8t(lh9WS*S->~>*T&#AuYZ%VfnwBx*qPU711&iPtun!rdf&A^%Y+&QmaI)3i--- zol|1(KefH^U&@!#1`(_4F1}hvZ6>j?zh$&l#Oj*1uZ*YdC02jW_{#X%If=dh)cWuI z7QbbAbsgJRMunovDJVs?jC%P>T54i-ZQ57H!~BWWb!cC$npWZ;r>t6kP39ZRPm~j9=~jWqz=BpIBXo_LcFe&%exXq$QRvLhY|=Z<)2GTHb$j z8ESvZ{1$tDi~CaE*x!2E)L-KI+J;}^2HJ^V;)dE2V!Le1S954_rHfMg6QRdWE%z_6 zORGTKR-f%=FcoYb%Kt>TwJ0)Gu*M?FDfyeSRy=M=GthpIeVZwIsx< zC-Rl?j%+F^{8Rte`deJ_x7hVttc6FkHk+EMU%57Sga$`C+DG`gw5)C|YlLxwTCGm% zZoUAkdN7iDY-i~z|D10B^JIPT-Ce+^b*dT`+WF7(YWx@T z^b%FWe%nPVCO=F7#I}jFuR;KkJ;w7xjaFEHn-gx6r`!eem(N8Hen%t&HYSfKdapnXmI^d5 zoc}Ci4(QZLm9qG`oFVp*K(`~v<&Z^9PD`NOYPVZM%ub6r#O^V6GdRrCF|>s?tbs0PP>9LoaR-K&%x-_X$?3A$jUvHrPlzKjG$J^nb6dS&K%k#I+1V55a+~}E zWGiNi#Uy(jXz{lM_}g8UAakI;tzdb>QFvrq*;IhPpT+K!Tsf_FbC7?a%i?x8EP>WQ zhdt2Y@iTdg5hiyR`G z$v8;Hrkc52QpRNUv)ScfxI7^NCV#6(j(>>F8EEyFgBs#;Sc0q$WB2~vOn}Ye7vgfe z-By!ZYGN`6*aA(GksyyV$Y~95JKP~2y-e%2k-_>4w`4o2I{ua*SyGZ^3o^Mao`67e zptOQOY3Tk|SBQ(e={+3H&T0zu3vxT{PP4;mF$YPGoeqoHW0oc;8?}X)g3QJN`gwY& zLlkKDlcQ+1_ z@c7%!4tGGHv{zY)oF6ua$6^cmc{;kK^{ILV`T4tDa$lrXPQO5#)XOa=h{xixt0OFJ z&gN|o|LnPqvVk@^#QqMKDImmO$~fH~sg&Dhl5%oZIzl8vfA8ndUcbG5+ycyjl2f}& z9qAyGoFgHQAg9UZ4)j>%*f@iN8*@Nt=`*8Zp zL9{rWoX|fLtLLd%+ZJt9VYw$%PA`9}J;-fy1UlS7a`64FA%P}YN1$ZE@{a`n+;LTy zjhp=Be*8d>&E>LrT&lduX?59c()C#bZ5~HZp#2Z~?r!ZcwjE@3y4)clmY@LDtw__e zx&5VA@wipb6cG4ZpQrD*lx5Qae$t8pLOg+1tIZx1WOGQuZPG>9to}BCIYIsZls042 zc7HjS-FCaj5omK-&8Cn*yQ;1=M0Emzc8AOE{?mRN@2fL%9w3{ug*dHFONh&A3$oj7 zE~mdE$nNiPSS${kajyNH^U%;>hg&~Q1N;J9L4g7G5SPD0QWfa7gh&Go(VLkqM6&kF z>BAQUqpZae;AfNW%qmUHW3!p$R5#hIaz=#sJ1lmG+wKVZQ=O&o&y+c=Hg%3#q`A1H zT{`UnL3W$TX$~<5x#ev6)6tgSG_^1emrdHT%PpS}c8lF#x-qNSVzv8Q1LdT$NEiEi zoz*uR`Ta(+gn;bpZw&EvPvf- zol>BGkkun?CdA)kcX}KyNn?QhPbXO0j_qk@&Hzi0C&1$JmrqKmxyPe=o1{Z^Ih}4fojopjU6WHj=+(iN9^LE?`BU+T7OjmJ|IlQetK@W<%JCrfLS(KEoOf8xj-^}E7(EkieHutz% zm3N1FYDPFBjPN;9^BHR9{P_0g7T7LOMtCZ>aU1RQ zwp4 z=}qzH2@@Qw-}M+A8R~A)p>-R#UPwJMK$g&-w_m2cr` zl(LSGj1Y?TeDwRz;>gVkFI6n+>zC>AWbj4BDa9xv~CZZB1? zv5z)H8SJCI6{AQcJ}PCH^{Y~bS9^(Z9PF>hM^odNaYB5w2}+aP3!;?iF=V}JdU~Z< z)1oP5dQzsV`zBO8g?K;Z)D=KgE)Mh6{;If3FP3B8I+AG6-w57OE#*0;aS{dP^<%}UpV=1SM^wHeP4nA_nlql`R>qd#A zbkg)IyULx!dohvPPnoXrsML?Es2^8RKdz#FTtzhwtd>*buS$QkpdAaLo+nvO-4mpi zpN6yWFIurL6zEQr55T zU5Zl4M^nR+>O8b4<$RliYMfI|4^c|Hnu6-OZIn@(W>?B>ABB|Cc@$HQHO6bzd8i)` zx$Q!YS4Wv7?MEr+;Rv;!j%>G+aek}zrjCD{&OZ8htBU26)Z%pUkt+kD1Wnj}gi_jb zO4QF|IiK3ASk(I!Id9~Y($5oV>iYJEsrAcx$FZH?W2>4j>m4NZP|J-{%KkJ}$5rZ8 zfcg4#nXlTJn%`W_m-@$&?L;}KX)>&?MLDL%hz-@1FBPkNMv+c1v+}5>_p?!sXmVx8 zm@ie-mn(*4QT5ZRd;@f#IxcFu%7;?j0j2DPD$gpOhO==s%C743FX3m5CG}M0l4CY3 zi_&%L^QG##>b@_v{B}HsxA7&)4@&jrGD_am@_wkdABigv*TWFh`$w7Ihgjubl~?x% zDE0GL+)R8B&*NQujdC$iFP8w*Vs5l!8LWj)Y>Pc`7*4^3xE}Z7X}pQgQSUco|KrGc zsp^vr%~%45;$&3kwOalICRFFM#Az`%7QkXy1}kArY>92LBMwD%9Z{`+9Lk@f_a9ml#bt4t;y5?z2#F9<*a=tbxH8ik)#Fj>WaO8F%7-Jc_6B z65hl27*lRZQ2UhxGh#k0fMrqL-=UUwU>J7AK{y`g;0oM|hwwb!!I$_Q_2W=c?sXV=lB~S*5I}8IHhpcn-g!y8fz`FO8u%9@pVjj4rpdsO7U^C5*(; zxDjtFWq%(kw@W`uoLoNG)%0v=QOf*U*coTy4!n=?k{HY9#hTa+C*cl!q?GNwP;Sw* z@5Bj`8q?EZUZu>hgza!5Zoq38Rc_Hy%V)s~7>*-xJ>FExe%x1X(zJKP(c}w`iZfzq z3{}eV?UfretvB&3T*34c_!d*ktwCyeD>lS|N?G4<{tSu z;RvOyZ=7zS%trD=Q93@k-o@`<2Ty?Huu4e2brzOEfKZ8e@GaF(>*d7in5y;!4;EoyrB8){eLr zj=~AbdGbAgcrEV1(|8*nD(A}iLmWf?mRI#mj%k&%<@1iXAXZ>{OB{*o@Em@@Ofoj0 z)>9mt<7ixlXYspI_9I$)QEtypqLer@n$WJCF8v^JT?}FR09=Bn@EQ8b7=QKrL1SR za-2NRg?J~P#GA}lf6%DqvSCGRg`;pip2km@Ig7Eqe9GbS_at#8Y=oiAABL;&0)D`B zS&j9SL>CUhHFyR;W0q`2xuO_?qm+`5DaxUmwupEm9>DW>58vSr6NiPPQs0N4Ws5Tmd}7?u&q+|ucLCHrVSvTfU}gHG;Ia(c07hx@d?JxX{;|L=0vly zgFJ(QxGp-C5z=1}_rj4l6BjGnYuYB_LwHu%R_>=GeogF~%b0G%#@HEW;6A0)|D-ZZ z({2zyCr*&tm~O`U7>QGGmr~YqP#LOe7l{NBpu^1Y9E zCh-=$i81pU>+@B5G%XWx02Wd@HLW6XLv$*GCGW(&a1>5dHkST?cpdJ;qsoSwc7^x} zzE;+kd*AYjl8?lgQdw8iauD0Fh_be{W8%i>R@RjJFp2x(5M^~un@qe2S1PN@_etUt zcwSjq)9w+!!*9y6a;LtZcufB8#XML5%VRxkrj&96aXDU49+vx5m9oAUOi!5KSl)`k z*c0dD34DRc{f%-(u@UygWlGuJYNc#%7t?QHtN^2Y09MCNI2*U&T})^))|X0IQpQn< z?Zox4JI=*D_z)AAjq-k28++gs+=Wk+Qjd4aqVl#R92&0F$}>0xD3zZdrW6D%9TMU4#qV~*{^L%yQUo_ zzDoQRGs!$PzbrPxVYnJk<0s4t~?qsFx>q6p<#24`!W|5q!J|UdH#BuCP(AtWvgL zT`A{CQ{uMR6Gt$AIiA5!n5>9Vz5qIuvffaoobz3YhY~NrllUH!OPf~97eoj4#)Wta zpJCEsM!6zN*=~8I^tttjn`1{D!2J1m1Ycp|;zoHpHo+b^50B$xOkBb!S5PVYQCcaV znYD;r*dBW`e>(2QN6detRNuj*&r$13j2SV%GK+kUVOyN2l;vkDGs^c(;vIM#uPJ5z zCrn?;h~??}diiR~RGJn{9ERO-IP;g`Y5a&uOB>~bu&Gk^tEDo9rgbJBgcET-uEV`} z25;kQ{Hjc*X>rRK>raij(2ixX4tg*WyD5`s+EC)DI7gXS(^e7h!XwIr@(e5D$M{wm zUw$JapNXozzL*IEu%I%ojMEd>#}*i_j4k8z#A9%pGNz_2A>M+=@Dkp`4;a0iu|J71 zh9>a=O}}2H)|XPnvOQ@M`hLmRM!g==HR$z}?o-c0F{R{5R-@;=no^EuJ*Bjlrpk<( z)?ArIlV8q=avpS2%6ZvKDd+hhrL26EQu@P5O6gB$DP>~|mC|RfRLZ%&Q7LV8r&8*4 zP+3{Nrz)#z+C^n``M#m7DdSAa+M0eHTz${_sN(waKR#kZxxS=qEcI6gbN$pQ^;fZn z>!r=PPAcC^_3NXdGR~mphjIO_t)^8|aeJx1GD7OF>>%}5c9Qxl2TJ{wgQfn;p;CY4 zaH+p?oYY@AS?aHxD)m=Rm-;JbO8u3yrT)sfQh((aScP^;a&F`YTsR z{gta!668N?r2fivQh((JslRfQre#!ak@_pQOZ}C*r2fjiT#u9dr&X&G^C)9#`t?QC zeu7ji?YfvUzI;9_^0EtOxV^g~K%KZ%vneo`o<{iIV$`^ln| zO6FEd`w37=`>`pd{S;P8`zfiE_ESMQP(G)XgK1~de&mv{-hSkk2)+HZR!)}dm&&Q~ zxvP}+(?==E(c9Z>xvryPX+PtY(tf5X7iiiX* zwEA>8lvaDyY-$#{KHBDBjm%D-Yl-D%viSjz_LuN)% z^}b1eb4$i8RD7FuaYx3-RD4&?Bc-gws=P1bT1shrrIpf|$*n(Hlt*&iS}FVGR6eGk zk&U)f@l&a<@|lcVD4)~6$nsNFEY4QGkk1e0OR1;wmHeHkd`-V1jr@#?-^w#zlMD`QQp zkKXp-A#R23up@TIz9^@fzF#A8JbK&9Y+^Ze^yQYJoEmy8r-JSd+=oX{nzBA$nxL*U z9bIV>x^k#>XU>3NxVhz5~6TNuKq7N7VZrQSWy|z26bbQ%-Mp z64xefhz@LqdjBKKg%f-4XXr`XABW;-oQTtLE_&~SSV6oFx8N>3fZqEg^mZ%zaf#_S zQ16dqy54@pS4{ta-!LleH8y(NaWdjGmX~!fo(7nyJBw~ zh{JI#PR5xy50~I7+<@C~4<5o3cn+`NEqs8_@C|;#9~eEV(SGA%VoZVQFbn3w{1}J@ zu{f5+%2*TYV=#KK6}H2U*d6=gU>u3#aVpNn1-J~?;3nLG`|t>!!V7o}@8BbRf$#7O z`b0DG8584U5=?~|(0dljSQ^!HOVs+SV_j^FE^L8qFcQ0BZybojaV$>8ndrUGXbJHu+<@C~4<5o3cn+`N zEqs8_P(5cw)$bGj!07S^r<(rX-M5s5<#J(u^xnr*kl1@aQ(5B5SQG1GFnX{Rw!@Ct z9sA;7^xg+Go_H$G#s#*2aeDz-HJQ!?82=#Qr!GN8?1Cj&pGluE2HZy$@^`@c}%BXYdl< zztbVcVGC@7k=PY`qxb%_ z;l$qi)Fu1#jU4e1>oE6aK*Hu{r-SF{Z$Dm<4lTehkEd zSRB3g$5ke-iS;oUJ=hA{VMpwaeQ_|3MDKldQ;BEe0$he`a1-vpeRu><;RU>gckmIu zz<2lsed2KbV|+}4sW1a(!#o&(HY|)Ku{>7A+Sm{s*bG}^ICjRK*dK@DXq<@CaV{>x z6}S$!;4W0prBa_O$M6iw$ByxNga7`$Y2@So^zY4B{GF5#lVdu}ir&97O~gT149j8_ z^!|O>i1>f^`29aE_di|!_vL(PSE(=~=0HF6j$0HWE{PSeI@Uw)ctr?tYmC6I*arvW z@B8;ZZSUT3HXG}a%W?X7QyMG%Z?6CUYvVT4sK;DfjH_@XddF+_6HC{k=fgYRcZK*i z$`G19{{w!<|J~#9e>-pgr~6^0K83LqR>T_U9dBz&+zi7o61!nv9D<{963)c=xD40g z7Tk@8@FaTsIT?!8kIy}nAyPe-Ax_=T=p9e{f2)6U(a*I+ef(A$TPI@gxS2kVE7ONF zUH#rlecpM;bMU46$4?(2vtCe2CuhTp2>w=f}YK zm=x1sX7uLif7)Mr$H5y=-hs`r4R%29_;)|zp*RL7<1Ac&%W)lU#XWc!PvJ$pf%owl zzQr%7Uq6w&#-^Pn!W5Vuz2nCvMY`xy_Dpn86y>My+G z)%tZ^iSskviiNQhddI125ZA}1*bKwaJ3ifwxGxUD(Krdc=V^kJ{Bg#dr&7FvQ;s6|u7ro=euZcgQCLeHW{V_2CddG*ozZcEIbnov*1BmVD9T)cg zezY>vYhgolqIW#__urHDV19obhTd`DDa5l;J&!=`{|a1>-tphP#79s)w?Hj_32&lz z-1j;0JN$}K<%3O?i-X?Zsiq{(fY~u0TF^VrTY|VeR>Qj31ij#0T&=p2Mr?9mny|ywnd0b zVjes6!99G3T=pBD`6Su~;x{`PU zZpVFi6usl1mx*uTLwten@f${qYvd;``eG`~h&j*?1F;aQ=cTLuzXDdrdKirAx#?=T z));}_-+T8V9*o}KeNQBwf%9-FuEEW?3lHK6JdfA#E_#1A{+jp`su#Me{f&tUFd3%B zESMVuQ2)KTlrKtL1}kGNY>4VP>}q>0uq}4P9@rm;;aHr4vvDD=!1cHd)pOd__Kx6b zyo5LL0Y1lf_!ZUj+SPjEU}8*(88AEMLkkwf5?CIqVO?y39t_2B?1H^fJ?CBR*GQaz z)A27<&wp3Tt;S8b6A$2VJcn2D4nD?L_z{0#j0DDZ;$u=wgPAcG`lAhtU}>y`HL(FY zusOED4%i+0;ZPidlW`U#oX zUNmC?ERN-{D%Qcq=*Cvq9y?<%9EkdJ6=eU$6HmjrxENRAM%;n>@fe=PD|j0p;Y<90 z-!Xb3BTw;AzJ}|0lWt4*e|kM2Kg)ZsTNETNj%BejddHc(ITe2E|M=XgHjEb%Z2rbhWXuje^F z{yUCmL^3hkwWMj6D21j%VcI|L@~?>OGli{4+IX z!km~N)%!Bla)q%Js`qB9={2xEHpONbhLP9}`{EEBjgxRD&c|iA7PsJTJcK9l0$#^^ z_!QsZXY`SQOjVy)m=Kd=I?RfB(1bx)49j8_tc{J(g)OlicEX-G0Ego^oQiXB5w64y zxE=T5Q9Of}@fPaO(Um;BAbyYEFq+(;uJRNYeK8eg#2n~{fmjGjVg;;@^)MJiur)?t zSL}m>aTHF(88{D@;u_qHyYL{M!1H(w@8T1Djh|3UV&o?#CctEv7PDY(3_v>;#WGkK zYhgolVhe1G9kB=Y$6+`Yr{HW{h%0bCZo|EJ1W)57yonF+IljZM7*z(cRXd7jK;A-52JMjP>$8&fU@8Dy6g&*+; z#zDwi`H78*Fa@T^Y?v3#SOAM-Ijo9xura!^73$B;mi_BY+zSWd z2po^oa4s&!Rk#s%;C?)YXYmT&#z*)PKj3$ap2EmeJWPW6bG&8$GZE*+{HQ*bKuk61!nv9D<{963)c=xD3~#{v2`HuieCl@FZTq>v#{J;v4*oJ}Hg- z#KMG_9MfS|%!4Kj!eUq!t6*(xgf47}?XVN}!~r-Q_2-~Vy{8h-!9}Mhez=Y zUdCJa5MSVX{D#p|8F`9}zL*L#Vh;4fKrDnMu>w}ddKio$*cv0SEB3*`I0`4?44j8c zaSd+9U3d^r;CZ};ckv0n#!skTAf!ImVqyYJhG{Vi=EeZDV^J)Fm9Z8!L?^buw%8GS zV1M*JzkV$76!bpFej)J+T#wsuFCM|ucnNRf1ALC}@GC}5W8^6gCPwdb@G}r+$9!nP zf>;8}V>PUcP0)j(7>-@AHx9y)s6R(vj^}jZzirioC$Mc zezam?EQJ-Z2G+->*bKuk61!nv9D<{963)c=xD40g7Tk@8@FZTq>v#{J;v4*oJ{gSs z#KMG_9MfS|%!4NMzBi&6aar`fKcY5qBXnU)Y=@n&Cl0{jI1Z=c99)DeaRYA0eRvel z;AOmp5Ag-Q$8Q)dqmie$=!>Z^Bj!Lq48%fM5-VVJtcSrEf~_$EyJ8<4jH7TO&cJ!N z6xZNp+=U161fIuhco(1GYy5;-CL=#FF##sSw3r2RV*uK*D3-y>SPL7X6I)tj=FhG7_q-LNkX!O=JgXX1QZhHG&P z?#4rS5-;F&yoXQm4Sq(S>_&cKVM0uf=`btiK@$dHF)WK!ur@YA7q-N9*a>^$0343v za4OEhMYs|-;C9@HNAV0^##{IhU*LQEhS72ud5Vj^mps< z8Y8eP_QAn83Mb+WoQF$s4Q|F=co0wEdAx>q(fb~z*TkPt%W32%CMLjSm=?2OZVW&> z7R54H8EaufbYcr^iyg5C_Qzp37N_8BT!<@hJ#NFjcmz-5CA^6b@HxK2uNXC#k*7GA z7*k>f%#Qicf(5Yzmd9#X7n`65Lopn?U~e3RBXI&w$G>n1uEtHc6A$2VJcn2D4nD?L z_z{0#jNC?^;$u=wgPAcG`lAhtU}>y`HL(FYusOED4%i+0;ZPidlW`UM@-uId1B+idkER3bl`<}BJ#PzW$ zHp4KC#BSIZhu~1EQ?jJHa0>Rw#0VW347uI9FF5~D$c=Q-p_VSp3}ti?YIw*;u*Y*x9}mp!1t)X z$L*NBXUfmWQ(W}LRG1NSpdSWeAuNd%usV9*{}xOff~_$EyJ8<4jH7TO&cJ!N6xZNp z+=U161fIuhco(1GYy5jKp!dCin}~Pf0X&Z9@G9QH$M_0A;tz}wVB{%2CdD+E8FQgO z+OPbu?{vyH@3p|*cp4_KpcVNaT@CHbCmvcG4U$gh&ymU9>cSE z1#jace2E|MJ4QDfd5VWgFg0evoR}Z2SQtxTMXZ7Ku_-pgFpR`**cXT3Xq<#IaXv1? zwYUX$;~_kW7w|gX!>9NLKckPu$WJUxh{-V>X2m>c!XPY$Ww8p@#zyGEme>wEq5j@Y zX&(cKhvPV$igR!guEY(v9rxi;JcF0<7Cyum_#VGuv_Kei(>_uq0N% z>R1nhF$7y<1a`$fI2cFaM4W;1a4D|A&A1B>;t4#D*YGYr!Plt2zf_KwW;OB?6BA%E zOp94CHwK^`i((n9jJ2>KIi@)QRXV@k|`*)bnluppMe@>mV)ViWXWD28Jf?2UtPBu>ET_!ln0)wl_F;sHF4 z=TLv&thAFm#EF}SKiaSemc~k06C0odn`0a7fZeel4#hDz z8E4@FT#oB-EAGL=cnUA#4ZM%f@GXA9C_zSkVq+pqf$1?D=0!6Wz~WdAt708&jBad& z?XffV!htvf$Ky1di;Hm;>hA@X_OXL_KOV!gcm;3cBYcS;@H<8?VB{$tCc)I033Fn8 zv|?c_g%z;|*2kvU48t%IyJ24(f}?Q~&cyk+4AM9uBwoPlcn_cA8}zlVdu}ih0n4L0AmSVil~7jnIWHu^o28o;U!9<2am(b8r!^#0|I|_u)}IgO~9Z zKExOJ9=~C>m$I2#w@3S5uda4#Og(|8GQ;sbn+@9--|En?&;4kpHwm;tk6KD1y#EP>^*8rH=o z=t2Gc;nKf`6L-PhI0#4L1e}h4q5i&cSMSMd%$##i_ee_)KFMxNqh zQcQ!HF&Fxy4U1rDtb{eO0Xncbw!seA9sA)>9D|c_7B0Z$xDL1C9z2Zt``0C(7m07+ zebnE}F7w|Kf59lljQqsLM3@58V>Zl-W-Nfku^d*#I@lQ9*b3WYXY7RoaRiRXX*d@b z<0{;UJ8(Z9!?Sn=Z{s6;i68JgMlWvUDIO-l)R+l#Vt%w@VJw9eu?E)1rq~R_FcQ0A zUmSv?aT3nN`M3<%;uhSEhwvm`!0UJqpW++*j6Nld{KUe9m>kn#R?LGY48meq7OP-w zY=kasiS4ix_QU}=9LM2QoP&#SC2qj&xDSuw8N7_Q@FBjy_xKH?l{E4c7kx1mX2cxm zhk;lKOJW7Aj`c7YL$EbQU{~yegK-p2#2Gjbm*N`SjJxn4p1|{X4e#O;e2t$_D`n&- zCMLjSm=?2OZVW&>7R54H8EaufbYcr^iyg5C_Qzp37N_8BT!<@hJ#NFjcmz-5CA^6b z@HxK2uNbwok*7GA7*k>f%#Qicf(5Yzmd9#X7n`65Lopn?U~e3RBXI&w$G>n1uEtHc z6A$2VJcn2D4nD?L_z{0#j50=^;$u=wgPAcG`lAhtU}>y`HL(FYusOED4%i+0;ZPid zlW`UuwVG>M@nJ_2jM=KV_ zQdkjdV0~zQNDvQ{Ko=EKG>W zF&$>bJZQooEQV#V3f9I(=)#uR4m)8_9Du`d98SeKxCmF`2HcMO@F1054}&oTTVn)v#XdL~N8v=Af%9-FuEEW?3lHK6 zJdfA#E~q<2(F{Q7ajFii3$UC1$|vm=7&j5KCZrtcG>533@OT!?6qY z#z8m|C*XAa3zy((+=M&v03OG4copy9V|;}l@dw7JY~(3ECdD+E8FQgO+OPcSE1#jace2E|MJ4UZ+ z#QC@k*Wwo3jfe0gUcl>k z51-;2{ER-;jQqsHgqR%DVOGq8CJe%2SQe{bZES=tY>Dl#6ZXUbI2^~}RGfp0a3yZQ z?YIw*;u*Y*x9}mp!1wqKqg6NZ6c>Fl6=uX7=!bz=2uorGtd8|C7(=i%MqpR$gM)Dt zPQ)2F50~N^+>E>MAfCYUcn$C36MT)IP^)3&CnhGqWSADSU~UXRI~K(OSS2lmHdI2NbiY+Q&da6N9ry?6vq<0ZU_5AZp@!><^%rje&Om>5%H2F#B6(1HcA z1eV8YSQne12SYI&yI^k|gd=eRPRGA+39iOXxDyZHaXg1t@eV%5SNIWsV2oNup5kLt zOoN#*7y6?Oi(qN2gf+1NII?iBv!!c zSPz3S1Y2VScEvt87)RkmoPqOjDXziIxC;;B2|SP2@Gd^V*Z2vw`bK_YVggKtX)z1t z#sIWqQ7nU%u@*K&C$_-0*b#eRe;kHmaSG1Hg}4IO<2KxjNANUW!khR2pW{3HicuRF zd5VLHF(qce?3fQNSP)BKd8~$Yu?c!G6vMF#_QpXt5+~qv{0o=hYTSf7@cF}SKiaSemc~k06C0odn`0a7fZeel4#hDz8E4@FT#oB- zEAGL=cnUA#4ZM%f@GXA9D2eBl7~R+k+hb?!g#&Q} zj>l;@7Z>9y+=x4HKOV!gcm;3cBYcS;@H<9tY~(2(Cc)I033Fn8v|?c_g%z;|*2kvU z48t%IyJ24(f}?Q~&cyk+4AM9uBwoPlcn_cA8~ltuO^p1+!i1O{(_vQ3gC-2Z zVptZdU~O!KE^LYIuoL#g0XQ7T;Z&T1i*O}w!0osXkK!4;jJNP1zQFhR4Wk7cd5Vj^ zmps<8Y8eP_QAn83Mb+WoQF$s4Q|F=co0wEdAx>q@d>`h zPpCCD@)HviU@}aLSui&SpdE{18LW)8upv6J1-8YG*aQ3HFdU0ha5gT)6}TR^;a)s~ zr|}Zr#0U5s-{Dt`>M-&Y2NPpT%z)W3A6l>=mca5@4eMeP^k684V;Ag=gK#8H!0GrG zF2U8f33uWFJdWq^D&E1z_zFMb4~*e7@)RGFVj9ehxzHbNSOiOBC9H`J(1Fdd4R*lp z*bj%|7@Ul=Z~-pIb+{Gx;9)$47x4z($7lE!zhD%Xk)PO@2vcBs%!YZ!wT!kBP2kysXcowhVZG40;@dJLx=x!rV@h}Od#!Q$K z^P?3DV=1hNHLyN5#by|Wk=PCU;t(8-lW-=^$7Q${x8QC(geUO=UdMa*6yM-y^zj(^ ziG>L9iX2wm6`+hHf{i34yrj>D-q2N&T=+<@D0A0EXsco}cu zLwten@f$`9G4d1_eK8eg#2n~{fmjGjVg;;@^)MJiur)?tSL}m>aTHF(88{D@;u_qH zyYL{M!1H(w@8T1Djh|3!X5=R(CctEv7PDY(3_v>;#WGkKYhgolVhe1G9kB=Y$6+`Y zr{HW{h%0bCZo|EJ1W)57yonF+IljZM7`3^Pr#P4xQ(^|pj``4n1+fH{$7)y?o1h0n zF&w*KZybapaRN@qzi}bu>m@;Ikv$L*d6=fP#lAkaTYGX<+u*F;vPJVr|=@)!29?N-{KdH($dIJY)phH zFg<3&ylBP(SRBh?Rjh-J(T%OJJ$A-kI1oqRc$|iFaWSsKjkp8%<1svoSMWAI!k72~ zzhm@PMxNqf5=@PmFem0mD;CC5SP^SreQb)&FbpHH8}`K^I2tG6Oq`F)a4l}Z-FOI3 z;sv~p_wXsc!O!RuYUC#tCdA~J4zpq&G+_`H!?IWfYhxpHVM}a>ov&ejhFByKEUVr4!>g5Hb$P}U}8*(88AEM zLkkwf5?CIqVO?y39t_2B?1H^<5RSwNI354OCAbqI^2qT@Gzdji+BU? z<1>7VUoc8LBR{b*5vIWOm<{uy84F->EQeLG4mL(Nw!-$<8GGSC9D(C;8qUSVxC%Go z4&0B&@GM@z+xQ4y;s^YW(c2q&iib%sHD;cJ7)xPAtbz5hDK^6}jKpr(7l+_z zoP;xRJ}$$xxCM9PAv}o}@H*bZr}zdxqffYzpIDd>lVdu}ih0n4L0AmSVil~7jnIWH zu^o28o;U!9<2am(b8r!^#0|I|_u)}IgO~9ZKExOJ9=~C<2qRB%(HB!;M$CbJ7>I?i zBv!!cSPz3S1Y2VScEvt87)RkmoPqOjDXziIxC;;B2|SP2@Gd^V*Z2vwNFzTnF##sS zw3r2RV*uK*D3-y>SPL7X6I)tj=FhG7_q-LNkX!O=JgXX1QZhHG&P?#4rS5-;F&yoXQm4Sq(SE=GQ0VM0uf=`bti zK@$dHF)WK!ur@YA7q-N9*a>^$0343va4OEhMYs|-;C9@HNAV0^##{IhU*LQEhS9nj zd5Vj^mps<8Y8eP_QAn83Mb+WoQF$s4Q|F=co0wEdAx>q z@d>`hPpEY>@)HviU@}aLSui&SpdE{18LW)8upv6J1-8YG*aQ3HFdU0ha5gT)6}TR^ z;a)s~r|}Zr#0U5s-{Dt`+TF-g988QUF#~4Dd}zUfSOUvqHLQzG(1W2Ej$N=f4#JT* z0jJ|%xCB?@Cftb!@Hn2st9S<=<174#KQKlQBTw-$DW<{9m<#>UhDES6R>GRt03FyI z+h7Omj{R^bj={+|3m4#WT!&k64<5!-coA>leSC&*@e4-jY2+t1Cc+e$9vRDOcVb*zWM7=o=a0=r@#9E_uIBF?~h zxD?mmX557b@dTd7Yj_u*;A{MZT3;hSF);xq!?c(Mb7KJ7u_%_o%2*2v0?I#UpqcFX2smfY0$Ae#NN$j6B7`#F!E@V0O%h7A%M*usl}7 zy4VCg7>eQ81$*Nl9ElTfI{t-Aa5Zkiop=C`<2k&FcknU3!jJd^WAr!j6d#jf8qAEj z&>wAB1WRKjtceZKfz7cEcEIk~4~OCyoQ$(@0WQaNxE1%{VLXKw@dn<aMfh3&C3_QHWU0>|StoQsQb6>h{GxF3(a-=50hYO%!D~HKU%Rcmcoiy1M6c`Y=&VNiQTX-4#Ckl31{MbT!w3L z3+~24coHw*b-ag9@eO`PpFu``Vqro|j_EKf=0Ot%VKFR=Rj@WTLKn8gcGwAf;s6|u z<8Ug@!9}Mhez=YUdCJa5MSVX{D#p68+nS0zL*L#Vh;4fKrDnMu>w}ddKio$ z*cv0SEB3*`I0`4?44j8caSd+9U3d^r;CZ};ckv0n#!sjXG4c}=6JRn-i&-!?2A~~_ zVi~NAwXh*Nu?4opj`+XWyUSpyt_D!kxVvj`cPGJu2MroDXmAf2G-z;lcXxMpcLKrP z-F5irCx51D>dxG%TVvm^r&hs%K5y^Sd+oJ$_vy~Q9L!Oi$Qhi^Wn9ZG+|5Hg$@9F* zJABMn{K(*g0-eG!D&sH_Q!)dyGY<=~1k14sYq0^Fvn@NbC;M|4$8rj1a}if^1GjS@ zkMayJ@&@no8Q<~?Lk$jeipUs@&!kMl%*@67EXvZX$m*=i#%#q7?8ZJE#F3o9>72)< zT*J-W#e+P-zj=kX`G_z1fx(6Z`h;Z^#^!fS!Su|=A6Sq-@n`k40FD6Lj$65hhk1$@c#U`Ygs=IDA%+J!g=aLzWn!jcM&@8% z7G_D7XI0i_L$+W$c403L;Bb!PRL$CSzh8zKHzh{V~`PnKA{pW@jE2VhNUG71m+{HfLLQW>5C#FplLE&gLSn#z}9vOT-9HwSVA$8#Fz zatT*+6L<0ekMkTa^A;cS1>ZC1*g&5!jLcX}$mC4Nto)uovN+4KGHbFvo3af%u?PEc z2uE`gXL13Ta~-#G4-fMcFYp@g@(Ew_6GMy(bPCUCjLXDK#f;3sye!O;EYGT}&4z5j zcI?7l9Khim$Elpd#azXW+`;`k#5@Rv}lQAu`FgFXZ7|XB{ zYp@=hur)ifJNt4lM{y!&a6XrDEw^wt5Ah_=^D6J~F<FVe`Il%Wo6c6eKutqc480q;}DMKB+ldlF6TOK zigLzq)C0U+TS(^>ng6-Iay*PlwIgV2~ zhl{z28@Yq~d5mXyi8uLx&-so)rUm+hW+cXB0w!ZxW?^m?U@?|qCDvd)HeqXaWOw%E zV2Hmj^qSR=R7Xu8gAw;9^?uB%`3dkM|{Z-3^p^+CoH2dHos#Ere`+( zz=HgVKl2y<%HPp?!xR5Kjp4+&WM|hh5@H+4DDc|rjL(U3xioocM z$0SV6Ow7rAEW%Q(z-p|+Mr_IU?8@F8$PpaRX`IU?T+L0~$pbvjbG*!3e8?Ak&!Dpd zeZnv@V=*Cyu-(Q#g7a=FVHC*qcRQ?F(orFJM*v*ORyZPuofGzIoq-`d$K==aV)2B zHWzUvH*h=m@hH#mB5&|MpYbifFx31&r-+Qf_)N+)%*4R_?|%*1^R?xWX57bCTBWk z<@fxN#aWh>S(EkIlx^6FJ=l*!IGU3$sJBc$lYnf!BDKPxzXj7-DgtQ+P&W zTqb5JW@HZLWnq?Nc~)g@He?I7V;A<~01oFkPURdf<|=OF4({hMp5-Opit=W;?*_VSkiW515^SO*`xrMuVh$nfTS9ynz z`HCMId}*LlI7Ve0CSpovV0PwVA(mh{R$(nRU~{%*XZB=&4&zu(;cPDAN^anG?&DFO z;YHryeLmw`eqpF(fld(_gYlV^X_%S0n4d*iniW}{b=jD$*n!>Hhl4nh6F8moxRh(S znY(z9C-^t7@HQXuB|k9O@<5-kjKbLbjwzU)+4uts@+bbxU-&D3V>ABFKlmsA;!uv^ zWX|G3uHbrZ<6a)&Y5v3OyvL_}!_N%4BG4%Uqca|pFf}tVC-bogOR)m0u?`!tCEK$r zdvhR1a6G4RE|+jMH*qHq@Ho%$GH>xAU+_JHt_<`E!^n)qgiOwK%*yZiBa5>vE3+o+ zvnkuK6ML{9hj26}aV8gVIoEM3_wX=J@dB^$E}!r=W!|5a5H!DAW!gbUg2#% z;!A#DuyuhxVHt(7`5jX*J+tu#7UWO-nZNK?{>EnfoqzC8{>7mj!^xb*gFR%0DDVoSDXSN7&Wj^KDs<6JJ` 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.su new file mode 100644 index 0000000..dc2215a --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.su @@ -0,0 +1,70 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:307:19:HAL_UART_Init 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:382:19:HAL_HalfDuplex_Init 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:457:19:HAL_LIN_Init 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:556:19:HAL_MultiProcessor_Init 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:632:19:HAL_UART_DeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:679:13:HAL_UART_MspInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:694:13:HAL_UART_MspDeInit 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1117:19:HAL_UART_Transmit 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1207:19:HAL_UART_Receive 48 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1291:19:HAL_UART_Transmit_IT 72 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1359:19:HAL_UART_Receive_IT 48 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1400:19:HAL_UART_Transmit_DMA 48 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1470:19:HAL_UART_Receive_DMA 48 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1506:19:HAL_UART_DMAPause 120 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1536:19:HAL_UART_DMAResume 112 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1567:19:HAL_UART_DMAStop 72 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1642:19:HAL_UART_Abort 136 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1745:19:HAL_UART_AbortTransmit 88 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1804:19:HAL_UART_AbortReceive 112 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:1872:19:HAL_UART_Abort_IT 144 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2025:19:HAL_UART_AbortTransmit_IT 88 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2116:19:HAL_UART_AbortReceive_IT 112 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2209:6:HAL_UART_IRQHandler 240 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2561:13:HAL_UART_TxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2576:13:HAL_UART_TxHalfCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2591:13:HAL_UART_RxCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2606:13:HAL_UART_RxHalfCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2621:13:HAL_UART_ErrorCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2636:13:HAL_UART_AbortCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2651:13:HAL_UART_AbortTransmitCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2666:13:HAL_UART_AbortReceiveCpltCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2683:13:HAL_UARTEx_RxEventCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2731:6:HAL_UART_ReceiverTimeout_Config 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2746:19:HAL_UART_EnableReceiverTimeout 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2784:19:HAL_UART_DisableReceiverTimeout 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2822:19:HAL_MultiProcessor_EnableMuteMode 40 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2842:19:HAL_MultiProcessor_DisableMuteMode 40 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2862:6:HAL_MultiProcessor_EnterMuteMode 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2872:19:HAL_HalfDuplex_EnableTransmitter 64 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2895:19:HAL_HalfDuplex_EnableReceiver 64 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2919:19:HAL_LIN_SendBreak 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2964:23:HAL_UART_GetState 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:2980:10:HAL_UART_GetError 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3026:19:UART_SetConfig 80 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3243:6:UART_AdvFeatureConfig 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3317:19:UART_CheckIdleState 104 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3386:19:UART_WaitOnFlagUntilTimeout 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3454:19:UART_Start_Receive_IT 144 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3526:19:UART_Start_Receive_DMA 96 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3583:13:UART_EndTxTransfer 64 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3599:13:UART_EndRxTransfer 88 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3625:13:UART_DMATransmitCplt 72 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3659:13:UART_DMATxHalfCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3677:13:UART_DMAReceiveCplt 120 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3738:13:UART_DMARxHalfCplt 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3776:13:UART_DMAError 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3816:13:UART_DMAAbortOnError 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3838:13:UART_DMATxAbortCallback 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3893:13:UART_DMARxAbortCallback 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3945:13:UART_DMATxOnlyAbortCallback 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:3978:13:UART_DMARxOnlyAbortCallback 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4011:13:UART_TxISR_8BIT 64 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4040:13:UART_TxISR_16BIT 72 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4072:13:UART_TxISR_8BIT_FIFOEN 72 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4112:13:UART_TxISR_16BIT_FIFOEN 72 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4153:13:UART_EndTransmit_IT 40 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4178:13:UART_RxISR_8BIT 120 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4269:13:UART_RxISR_16BIT 120 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4362:13:UART_RxISR_8BIT_FIFOEN 184 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c:4525:13:UART_RxISR_16BIT_FIFOEN 192 static,ignoring_inline_asm diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.cyclo new file mode 100644 index 0000000..9f48b35 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.cyclo @@ -0,0 +1,18 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:166:19:HAL_RS485Ex_Init 5 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:274:13:HAL_UARTEx_WakeupCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:289:13:HAL_UARTEx_RxFifoFullCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:304:13:HAL_UARTEx_TxFifoEmptyCallback 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:389:19:HAL_MultiProcessorEx_AddressLength_Set 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:427:19:HAL_UARTEx_StopModeWakeUpSourceConfig 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:482:19:HAL_UARTEx_EnableStopMode 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:501:19:HAL_UARTEx_DisableStopMode 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:520:19:HAL_UARTEx_EnableFifoMode 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:561:19:HAL_UARTEx_DisableFifoMode 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:607:19:HAL_UARTEx_SetTxFifoThreshold 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:656:19:HAL_UARTEx_SetRxFifoThreshold 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:713:19:HAL_UARTEx_ReceiveToIdle 20 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:836:19:HAL_UARTEx_ReceiveToIdle_IT 6 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:893:19:HAL_UARTEx_ReceiveToIdle_DMA 7 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:961:29:HAL_UARTEx_GetRxEventType 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:985:13:UARTEx_Wakeup_AddressConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:1003:13:UARTEx_SetNbDataToProcess 2 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.d new file mode 100644 index 0000000..bee4a5f --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..36ad160414ed2922ed11ca331830ba522a797002 GIT binary patch literal 1149944 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�! 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

        y0O;q=<>_F}C)+i83Zf13OQ614^q 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%0DD;v3FBCszrvP`oz zi#G!! zg78Kp`WO3)gKzF5i>c`aX6D zH;AU$)t!q8Ry$@FR0zqq|CVMO*XyTc;VM&#G_l@CN$Y_xnemvBxC6COw*TECD2G7+0-W!ok90pbPy=fP94mF*w@*}xC_Rb1iUd#EHg_6K*VJgqR1!pj zEF8J*=b_az*LLH(`#jsj)RLZDSYDo+XZ!!K+>6>1=Gjh!Rb1{rp&FQx97-UUeqi1} zCU8>Jm*g2{eg4aOq)i)|K<7Tb`9JsDPXh^sDR2Pa2(4~&%=w{h4__zn9(3>NPhQmp zisevQ=gaF#e5OlBwCm9~i;E2sNboe{-vehen^wbk;zkubpCt!gild;i39JNi^4JW~ zOkWo|pDZ@0az1$i-xD0O(>I^4KL6#9_aDTQdm9)X!;qSMu@VSNx!Vp4hjOo6Cq5!r z39vzJ7D(xVjmzr@XxL08L`M@cHA;KUkl-4210-Lvd{iE@z~k9=(CnG)2LJ2%`mkNi z8m8_^djb&*8VA7!1vDRWkzkKH1b6 zWn2LhS~vhP6@K6kP<%rcRjXdcZ6J%~CD_37LQr9HS^#FqL!mwATdo3V^9Vbn?2FQv?JuCUG8tSkfqaG7J3zZ7 zCBuLgQEb1z#cfRS7SNXLNLA8Z2B9*uvMDAk!Uq(uFAxA-v3`gF;5{5BUH`S4-2C2p zj@B@Zm*)fj;S@2dhj|foWa^T1t~9|bX6w!J%t=;U+P8`6!{=amCJt4!Ev?vgHBf*1g;@SUxyWRIExx8+6R+4MUfg%%RBvM)%^EpBWGkW{em{ zx+*F;&Ff`{W(P1>8GNG*J;Ig$m!VVWV`kR9)g8&Ph;E%a)TU+@I> zfjGk`@*_*?Ysi$z0lsHhAE`4&19^!AB_V4F7n+iT>zNkV@{4KlE4f|3%!O$&)XGz` zzW+3S`~FY=HhJ^cHy^QWv77lSfnYLG4QW_a;3mAdGQ$eKl^zjhQ^6oTx~w^NSdK`t z3q9^ZUy28B`id__n>+bHTuYH(pzWa94GfHpzBmnsAjpfV8B2QSg`mvwQI) zWFlB{>H#(sFul`g7xN;pB0ZYm?}Qf;A4`J4Hix_!i~#wjBLPDh83{Jk<0dO9y}j5A zd>plSh1~LscKuZQ!3KrAFmRzxb-{HxJTN&dl(qITBYuq}9n_G5!sBweoa58SxVO{l z<=dXfog1i8vL!P?=}|hum|dm<=ri@SAbk4w*t7ke8%U2CMN2_7j93QOzQOihWA_HA zB~@E00?|_17OGopR@a)x#w;O%Aozk#=1|DP2s?tqR{?bMO;T z@09BjmAd#ZOx{_C4lldQ<+F+n7Osudfl|_Xh8L&{h$+E3-LCM%7oHS?c*A%{+&olD z?9zbT1J=+?(h@-!EA3@@QwNwQJ&07BmnBw76wGsq6v}A0W`lz(=}`x$ci34~uKZWi z6F3rx?@ZTPDTw-3TD2=i*|y2af9+wUFSn=)b@X(FvCMXNj){fBPGN zT^LfD1L{0+piQ&HnDqyDeMXT)1yCyQIg4u{f&i0rIo@8af4)aPVi#rx(YTx?9%GQ2ZSNUmqMUxFT}*E>t2<0N7*(h$15&7wvtlq4n&FKZnvn7Kd=9M?h6aK$J$VUX?0ORd z-{QhNnCTayImQ(4<3-pjN^nUtj?|m9#xmoj5tud+&@%{Mh9Kpb0}QFZXcnbJ;1<~X z<+xWZpJ3WuA{U_DGTJxWv4*KT6%FGH9QK#j%fX%!Y9p52uAOd#{o8dp=~9PI=#LyR z64{66O{HG(946QuWDbC(^mo!tmlUA*t5n7`Ww>*>jDTREJrP74G^Y-`y6GcDrJ)%s zjis9HQ)2==`?6gfXr-}!r$r%(;nC)yN)!M?;kllHzmSVmQ@gK3{ak|vY-0q53NgkG z3CU1=rRnK8+1)<69Y}>jBb0!synr1Gc3>F6u@12jm;7jkkjM{QM_n6}u7 zFkI7^i?XH^ONM#P49Nt8B71Vm8V`8?U~fdKke4M&mtZ*Jg$T4Du)VOze9UuwG@0DCown083FWaik(GX5-XEY zDuKD4c%6gEeD97_}rgIWucB&yV(m5Y>lI!N6NN16? zlgjzvc^s7uM|cBrwRn8FU?ui|sCQ4#FJ)$>vm+P~W z(@h;E9Bq2MMw~5JLpR+hV~}UEE7h}bRF#JRa{clfSV>f`!Nl=kS_Xf8{q~=&3BM4j z0F~_p3dG#qGW@IzfB41tPiayhz7l^K(%N>TU?zjfB-$G7_9kU@1nPwa0Hg|@EH7|?L2v-Mw7pF ziOe{7YNICo`SqXv?f!>v2Cv_~`SZK`ANG*8gGAr5>wr)K%l2j05kCYJ3p5J_F?b{U ztykr2L8I9pm7i8XsyMDJ-NL9%lzG+w0T0$C0_b~tdgsAxU(vtc0si@dc}*7(&arv;=E=N z^=st30^`3$a{t(ykQ}i$t9sMVEV6uM9^LvQ2hFmjQDxDVf3k8y*7(A|Ss92t!vK*LAlETGu zkaxpy_6M8|-wy`WgR{p~5eCjVH}^8`YjU73o* zUN4Viw3GBG!Kc}f%uIm!L}34q_P+~Dc3ycvH1&0Bi_25p1S z4LLBPChAsTA-mozZckABu-hbdir(oAk%7@)uH}`_kSX7Dz`njkuZ6k%Y`TI(BgG0W zR0x+P1nK?iR;(5{ztK*SwhK&UfspY63CAucTg2|YVO__M;sqg&1_|VGUe1qp$i6Me zEm^=hbb4KGZm!p>P8^4~dtau?yrAp<_?1iUMT;if^++p8`IrwdOUj3x8f?cP7z18_ zToatEWmEMN4eF(X?HaBT7_!Pl*#NZ`6^@2b3mlF7oC!rk)}|&Rvrf}^#(PQbL zc4#}`&M-6Z(57UUZjbD927(bK+X3t%;#gC?fpbRcoV@+>`}O@>vjS3n8e%EfesQ({ zoiqn&wVON4$>e4R^m7gU7Wee&$@OH#0Q<$&{@u|LT-{+M4oo%Lo}8}8YCUnr3QW#9 zWfgKk7XKr|2DcG(&7V4)lrvK21tXOfIYMB0@i^>4q~&J$8iyp z)7C#8LwOL6Y2lQ%{1#%}%iaWo3Qmz04qFjC1D{i(O_SS<0+rcbB>I)~peq<^Z-e_H z-#|_-mrWsSYBjLo&0ulN=@O!Q_XcQ%z>OqF`FwMKZyu@y0yO?upIs()pKDkKL)`)C=%qYn7;gl4zh@p?J9}Q>AMoH(4NY zEl<%PoV10ke`RLgD#z_0KA&aHnThFj9hb?F4ZF=Dzbw@F*MU&EH7>*sI#8@8KWUP zGm6}Se74lA*s++Bo(@`YcQtr!mL2G-+l2Mf>lmtAoZy=lCnE~y`>8n(QN$+`!3M=LJLU^)i?ZP!-2L^iKDqyvEoEKE+&d5Wk3nYJ8=Ij-Km8pi9&$Q z0r&;>AcZK%EwZ0c2nN--0v}mw@w2FG&WPfy#-O{#ZNkn3R}gYrYy(!Jf@+s(qXUy} z((|D~3DTNnsktnnnp@&l?$9XL^7i$|pO)|c{rHQ}7JggL;;<`)-1eoPL3^X2)ibK=y^gVcdNTcH*6@I6>HQBDRYrJTFdJNVku zBe2t0&QK3U{Sx zEmBHVjgj4;YGh!2=k~~XP`$9uNX7M`CF&fCJX;*C%_+*O+MI7?XB3|?XM-IPS_it$-`J7}ADbctO+RGAqaR$4(wh-8 z+m`wzE=D$B_hIwV^KlQl7(IB?11?6c6M#3(Y>2Xs^<^eu>r`jsJEYT&6fqJ8QDIGQ#U=!Ug`SVU^4%wH&DUkOdT@+ zDt*xj9H{qx^YP>BPlJEh|7P$Ha3K4K(QlBI^*8_e;WyMZp4XB%7XuhA-^ctFe~7KG*MS}siaQY+8VB;2a;B6M?w1hU)& z_CKNx^5$}?7(rG=A*ZAuh1!;u6T>3($>`}Yw4pN-Jy*YpVS^=#?8W8|$|C$j2Lq83 z9&RCL_xw;a0f*&mObxToB`&~dqy@)AA-?k?i<|fzZ4cd=XqM-RuWxIix<%;767Hc$ zqxiyHvr&`F9`s{Ec*uA-vo6JT?t>nf)?6W-7lP{ig;&X_v?OU^27;DYVmQU~QAA!Dj-*W> z(5JZK7XBo|sq3fNqS5s9Yii6!ml3Mv(ZeIEpe^b%fvA{G6mw;nZL}qz-GMC)qy;In zb{ON^E}CqA;26>gqOJ8zempm{w7dwND1K{6T}6<%sgWX-NUgCFWTjep?-4iHSWGXM z6WjOqc!ueR^jx5V!)g6ivGQ|U;^&CPl@e+!8gcIX7iUvYj5+M-HbumvR@ z;ekr62ubr>vx><}q3XePPz*#XO53+Jn~``1<%r_xN0p1G#)hc!Ixd&Uno%0OAJWVQ87EC>Bnv`k z-SG@K;2KGIU*c^xTBj*ps771Q0WF6~OGso!?p)q9%rfG>@%wbZ!+{EGO-jY%UUj5y z^syw{bc^_*cG60a#!#AF_?pV>5)JK|BBO1+7|ogkZp)z!zPURE9iCZrD7dMRr?G=! zqu*(6D!_VN^3YNMY_JYvh!O@qI^wLr4P?B-F39fN=d>jv<&J zesBrJ417~v5K-$8s)YpB)}T&?iEb7*h7Hr@O!6w2&sUoYxsc#lYu=HF^S_3wiHHU4 z&s;nog&o)%);<|zh;Akm9)aM$3Xb1O@810I1K_T{Vx9spzP0*le;;1bPoG$@>E-;2 zGD^B&*jQ$h3~y#GY4_AaeiX@Rxgj!U_QwN=2 zLex=?sgk<#rF2Wc*vK)l7#|^xN+iu%jGyr;!qWD{cL1TwfAj#F*Q$Z~*{XrM*{T6< zgW5MJM}9@msDBzhKRSGIcyP3TJQ|ITpC8?S3x{b#oZ($>pF**bkBSuK@O-E*wJ8e* z72#(@prY51^b%jYKAW9fUm%66p8JoePv?25R19NrweYD6wGIiRQk28*@z6==&dy2@P{~+!;H>IY(%Hg1YT8nMFtowRg6kf0ERO_p5L-@RH6uoW?h=liL>56u zGA3ytMu%?~YjA@wzMoB|tf)L3hKINlryeKr=wpYmDvHy5H|Ma1>$^db$CuRY(YFOQ zmfqp+>Y{TI{*s5Zo@j2&+ZeJ}n_s2lOy73Uka)Vxn&83RVIM64>PaOJSkonNHddyM zE@+{;MQ93ShDkkU*#JX@Hj$NS(56she|Y!$t=!1RO!;*G!R$#Ah*PI7+%N^~7UR)8 zRl3)O_5}AgaB`#8gOEuS*ss&WM;q7%2s)Nci|YvR4Ps(yQrpUl0CC^_85^R7M4Sr^9O^gGzLryHE_7 z@Ki7J;3R=*=peW-{z}1f%$`l z>cAD9zS4gA!<0eJoknewmNY}8qV?G(oyWTE;0K6vr&AB+bzxN=O-%2^wCn)8unC6i zatiZXO*UMo;xN6EawIw{QeHx3TnIV2jV6*LdU{i{Uzf|AELson$h#JY&H=2=M~2=A zW|3K?&UPdk8ikmN6j)RdAI17!{3E>xeNL13ngLG-zyJLJLN{LpXVd>Zpwry9zhAG0 zaA`#TLY@Zt6326XJ2-$Z76PzPbJu&0zS0vXyz+QzEnY2D3(yFe{kbi&kO_ENw^V3t z4yypf0if(*rR$TDAgZyIo%9IqGbUzMk_mC$+@zids{!hU;%H;u(PIcnL%zK@+Sw@< zXTK+HnYv?y@KEB;k@3o{BCFCHJ`z?yH1;Hwndb5T+(YDL};`-T?77*Y;{Lc}M}cK|)I6ysXs+&8Xb}!6v|A7^euzb@M|I zVW|XJ=%7mktsE34;+iG4QnpD5#4{<^L3eYGJGpSQ03=ZDKE*v)q`MqQeaB4n=3MSY z(T|@XHN$p&typX^$GWymx!#;MJCr^sfnBQXW1|~Hdq;viaLYAJ^7Aw5nc<)cp5x$J z+kuDKJpxbv?fU1{eGg0SfDRen!Wz%o4q?=S3 zs?E#6AcF}zFYo_@DI2%zpWc7?gbU0z>=CNif_%=T@nA&Yx`K-*CrtC<6-&bF z)tWTNFgyEpQ!a>Ra>kzbtMyU$FM97+>!a?UPx{`k*2mp{*Ly!&mF3(G$4DGJ;@%=M@a3e2J*5$r z9+g}xlv}GQObl0GsH+Tp+wHseAMQVW{s5OTJeqrS1CiqbCxVA-k62IyCX{l$D$ESj zHcBYsc4EF&!WX#EIWQ&_CmCvHFsVgEq&KJ+Q9J|lH2C=yVlWpBTyLWSiHXC4nWS0T3Z#i9(ld6wWzS#k(Orz^|{!~v)wbOoeGg(j%V z$>*?g@F^^2U}BTAW}zY`SpeBKuW*_>_?T~huOeCf(v#j35df(+n{V6(s6pEo17+Q= zFda^qsgvM7{ceJd`knmZ{0Pu=n;GN+u7@?O=rQ*K%Txt#s&xHjr2@E5REBv`QY&Hr zke*59Iz@CjGp_B(sNeyQfVuikf$Eo0(SfP%$)YaC$$6MrbJ!H|8q28b2OK9d z&@2B1j+ec$MUcyf)kMnskRVIxNZi@{aku=E&LjDxlMdT)>#BP?FvD3XEZl=n^0m%B zXFbvgH%F}k+3qQwXSnHZWRvlo=LsY#51ZUc4-kG*SO8ImnQJnm7w#K=I$CvIc{mjI zZTODWEum<@%3PgM;ZTzTzOn65o`fFTES@zzxm+K{*?6Ffrcmx`Juc}$)gj$sDtkKU z6aaKAmuDPjI7XvZkyNCWKFn=RRU2$9V%Jr|YR;dB57e+q9nvyjQq15FW{PpVSvKea z=sOJ&qK?E3ko7Yi1|Iw61^l?DH_ya@QXqkDc>U@9&-4wsef@9u*FUe{fBx{Ndk=|}Np-d}%^3k?TB`zp9aqlQ{pt}nq}6kOJvz~vI8W}!wNc_N zlz2l2OmN-k8}%W-%2dMCy)I3nYqOL=lish%MY|kVlsXJ0WjYnC z2&<`&YX!=KwutRsoL7OslH|18Fwcwe-wxisfA?qm=QAP$m|lco0ZC9{Y_D$u`V$oM zM}JAMCSs);7fEdg*nTJ>B11s>TYL{BQuDec<|2#2ze6Y$F)i*uf20Yi1q3koAxO|p zi8S%Z*8?@@FdRf6NFcQW>ay~jnARItD8y%#xtMAJQB!o?Ed~R{Ob6@}JUK;An4~RX z$KJQY{SmN>sljQbIwyNp_><~dC;^%~&#niQ5Jev3_Ug^s11!l7ESLggYFClnK48S6 zX8s_{fh$mJ$k*eGb34J*H3)TB66NEXbEzQuav_GQ?vPj=cR}nzb(67UWpae)x9hZ? z`}>UD6r~D63xbUs;V~&AK5-A1j7VsRBuYX?MT4fbSXXqZt^_A0HkP+lj+GD%S4cZm zDbPR^zYc#l@>`3`QwSB4gC*qU>GBp89^o}`g3L8VQf?>$qgCQ0Zj3ndw*44f3ZLtt z4*J0AGJPI2w}(tXj4y*RKNS1R6H+*Sdr*nWD3I*w zMw`Cf+-Om!keHUY%hh^p>ZHhN%5N-S8e6czMWz69=^2~25Jgd^)J^qv&=aNIgMq3p zyLCW^{Cqe8x4K(@>$c$(`z}TnIW8N54U~ zFTX0LT)tsNd~csAlgwH2=`dD}x1pIL7M7F=&if4`U7+R@3Ma&4LNj!jnaAmM@~?tp z?6gx{F%E(QHNl*E@C1>)p&+qDKm4I9!J9cwGD=z8H_vv6DPcTE8O_$( zOd(l@b-}bJxbG+k*eV!Jqiq3sil!km6^yW&fx-$Me=7gkGBSxS1F-O??E6P|$NK*Z0?>Go^2;VcCrtlR`(MRXe%BF@$i5EC4EqORrx5C~0ot z^}7TT=U-)(jHD_7fBL^@wNjU-gMS>*W;OV|{C~Z>Y+aF!>8absz+rxRTD;}y?}pFx zpm@jcWDKhx`|W^-l@>7=Hsn8`+yUWjLN0+DfHoz$py7a)R)H3#$V`i$%4)iK4m}yQ6|fn95XB}&(_eUU(lonm3nH^k)vcyj!dy}5+~c&yZGI7(nyfg z9(lj{R%A6RXbQd%CNZbtrJqcn&tME75py4p9wKJZvo~tIDRK>5`z2&p9IC^(H+78&i3~2svCspeLi?6pQa?>XM_|df~K*~CNjh^=vd;ddsJz($GsZ#{& zd_2S^7m~3MR%;N(bRz5PLJV`tbs6kv*F8XO$gIx#;oR=&$^(uNq!0FgoMcDWcUm-3 z0%|2ngyx?1B9(KKg)H9(#0dG%Y;P|2T}WyG^M!d}GUVgBG7j^6S*za1DFJFE&qNxS z*b}E4!Qafi0m}k!jml|0xwss}sj&)L#bQR`!W>|F$L&oI(kDvbx z+DbW)X-GCual`#V&t;UGCLVTS9$SnTi*IXDHE9`afe~mGlDA8(^5em0KCItJ#_(*F z`PvP3

        jax%ej+o{=CfH7=@yWlcW4Kt?|-UryW`E$Wwi$PokC77i9pB|&AyKdb=o zjVT|H0uLcf3_yXk4@t@qP|zn6MWaL_-6^kU5-0Mq8zgKjwGY%cXfx&*ee!3WMA&R| z?-R+Wn*D+?h|Z1KfcTDLO&DlKN6RjgyQ2u;vQ9p#z>Zkpo5>|6pCUvne>j z=oG_wUZJl5YB;A8$|InVRxe7&G_?h-#yNyZ;HTH`-rc`FGHGp3Z4%tz;*V4fNAQ_4 z$viA9foI5WbhIhH*}{<2fopIfZX!FubRDjbcp4Agbcs`m0zOC=RcZiLRsbb%2!t1q z^(0HDq|cJyBC%G#VguQEk#tKARQ5TA5N-$BaSbQGfN8+|j4Dsnq1+SdCaq?C+5vHS zYk_QldbF4_4+cH#mNbYsQTY?P)aZ#TydF|q>Ge*??xr)OLr0Ca=30G(OLBDcsNxYj zK>Pl+`3s5GT%f2+KVqwuJ^I>Sb&nv(xFS=2g$)HcfGWs&8EkhTRAkPHE$@re0c)6B z7VwlwIjBxXQw>DAreHWmVPE8y<~PzfF^9G?{g}Eq+2n24xHvyT~y3( zOLN@bl8KNRTzC>MmY3ids9JKJkD(4y$RkS8l~NP>q?#hNP%R}9Wlp$v_&~zF!^bAv zL%~BGHmFZ8+&c6X+faZ#-`n}?cR#$n_xi3h(qvDOwyH`4)F%byWM0;AIUqM+|Urt;aJ{3&f`J7@=3MpikycY$7S+cB#_3 zKpE`tjbO@hiNUxYpCg4mYa1aio9k7{PhKJ8k(>BUN!X+nX}5)2Hd2lePbuI=Jfi;O zVV4re927D0*j6N+kr0g&K`RQ|A|G1W7U|Hc2iLB9HuDMyS>YMQr59pw+av?89BeUI zqpY$5BLHT8JY<>WL@S+)C%snLDXlEjiBOD5?Tx%w#>gmC3Caf?mIiSYc%=s_x}6;_ zM9lJ~HcH8`7d;dA$F<-saongZwhBzj}_*zqb zaHpN|r+qTLU_ecfJv&XeQIWDKsk9L>eiEE#SaU{ti8gRy#OhCif^^f2MX}`dd~ui@ zEyqsSN{S8F-$BTirwbk~NTq)G)zlcy@(`7V2WN67yBi!p9M!yFvGpNE-EFmdG)Id4HQ#H-&!flhs z9;LHi?$FG~$x4l-(yMVyZ!U8saD~*FYf*&tc^Ztkd3yrvv4x z`w-b$5OVlEjDNE;uX2}zq`6%SG~+B!*C{6!0(sSaDSZDB&RCVQFCQgWCqeqdCbm zOJP1>21#Zq8IiHXLc`~`GdRxuU*_Wb_Pqvk1AtD@0C^NEC|k8s=OPt(W31MNAm& z2uJ;`yz#cuT+s7$Ws-4guWf+(0&%n8TZczqVO-fE&0Mz4LPJLX9myW`bdeCs!Mb=XM#Y zPs_}#QxvzndvegJQ#}Re&Ys6fveuP$1S9oMQ05n50*Eg`uv;X7q3)BDz)h)#+)zlx z<}-&H3&edoK%#Nv79$5A8xwhP*k4_>YY~)ExoJ+Oa388pgKZ|N)Ctp)DoqCVu8dP- zXn029c%Vd64B?j93i(jalp@m}7^Z*@To2XZa<>uaYRbz)OZrU}6>^e-KYsD-#67iK z=M7sw9s+rqdfPnW+iPY^1V`;&%{4@?&0YyObJr+)9x{W}dSj{XPhv{yl!oLQql2D> zWyYtoq8F{sDBO%BLslqA4q1EO?%xe@0AI#m$^Pck1Wn-haye3>lDb7ZK?~*?DG%HR zEnUWX{0_SWlCS;PQuZDE4w=)&DEmRDJ42nOEu!S$$1xh*w=icbqsK3lXB0wQ2_qq; z?x3&Lxp#Xn6@ySp)H|oAgKkvp?1U!@CR3*#2}JP9h-?Ju<)zn(Mru zocfI9Uxp&+K?PQdEiF-r=jxmEk_Rw3^Ym`0qJ7f zHq_zqrH#JB<0x4>ji64KE$cI=0ZQDlb!&xVmSdbr&>m&yMesB7_OhyFNqUfs6{JT* zitbaSBjLFDHw<|20*Z#nyb@Fl9ly}T>Zb}?S&FX^-7BZO!5(KgnT*e0g`cQ2mu8@Y zC+={)oeg1n^26kw8Xd4^o~#Po^ie~8vO=|!&;m{rcG3e-o3oj1-qPV3Ru>0p{)nQA$n#YwR`r>3 zBivw%oUIlpXwOfno3d>Zr!epZb+Xj>D(9#24(9a4fgk-`@9L(ZL6-#;iAAOuO&Zvg za?C9#kSJ{1Fe_oCza$FGlMdDxH>a3iqLL0mMq})z<|G0l4s)PJEZ-z}@gXk`(i04o z!vtO8T8O8>Ae-Yc71{N3yKp@kVXFw;JON3<w}dJYmL{p5~4uL9J*OCUn$v+=(&1 zV{t@dJkzCyNsLR=|J-v9kRbX&tUzfKfj7ZEf-E5o)p$O`)aZKVo1{(}3~r6C4aOH8 zq-a|+>GpNii}Y&qEQ0d`leR`(v8%G^U@Ga}~n3ptco6rNyamgI*mTL|~JMh|hqut}PY&06-$m zogM6OV<4>0Bf3-_Z3k$ov=@2SaWau72w|q9nC>*&eSLH@S!BA{fjLG#&w7K_u+*I@ zcdMhG_;@d?j@v~FFgki3*i=wqPR>&qCY0Gdj25}|6Uw%PiMfx2iZT%+?INR0r=zXz zUiv6OBp;cQX6_)PI|wUh4BtW1si&wXznzOB_ms%4XYawTn#`Kc%~JST<=_-l5@6lr z(F=5ah=($EKlu11w^;BTCXl|P;08V5LB#2_Jly` znNExPv1HKY_6lL>kP(csI{W3PgG!D#P?+0prQ`;v@8*HQh@cur-N}pjshuM$y9LT< z9&7GZpDqyLzQ?;NKW3(6>NIL{b)1nc#cVLovIz#!>J%`{!{gbQ_Lo4cNGGtk0j#<9 znULLq=|&^|_SlNARZT!usFZ1W4!b@)E$GR~4}YEAzef6vdl{8|L*Q^^-vHpYV_Y#m zCC62jKx1%pr|}Ub&?J0A)@STav5@5O!%_)KiIaLKCkW24){$v%vI)bsRTFJ%Tq!Mv zhzy-hD5-c1g|}r{?grZc=2W-5r?f=IaGzXVfs2QeQXir?`1L44oVF3HDp=DGyeF^f z>7bpfJuv?1{!jllhbPUNxUS+ik?62wKM|rtJeq}d3n7@nN7ntIboO}-2=)$pa&eF- ze-0cTJII@J=20Zd2mA>%CX*3P$li}{?%)3K4Qdj9MlKYO(0~^%A~d}1w*z$<{LlY6 z;EZGB%fu18~gcARPJ1Am{_m5Us7mI zeJo8MdkdtL<>Yd5@oJ0zE)P-AyKT|5(B8}yVpd_Qj<}daY!|0U&IH8|a(FfO(Y*$& znMd1pp?baCpP8HlNdq^hl{LKqsk@LCsGKUZSK@CCQRmE()5IEf{GTwYyQK0Otnm_rU^egA3v{x3hj{&4R+sT!g6q|gkmUyM|!XPWI7 z4ilFW#7wVs3a)HxF69#;*|I@f&JDnYT_1GQ@`puuSGschZ_(FePvlWcwz7vhLo_26 z4@cPIJv~qM&fy#TaAz#&bn>V%pywm|J?_o(&1(Nq4@Aeuy%`-J{py3qzWV5~9iKh6 zS+K^09f}Bg zrh6qZd4-gfR3&Aub}~iPH(~SrRKE!d5UDu@6RuEX#(a!)=^M-rp98TnJ)Wi$h;5Qk z@o?d52=XyN?1|Ma1ZDPGL-ff`}=KCa)?1*XE2+Ca!Y~8+IE` zSb#KHY@iZINx(JhRDN;qQTG8db@MDcQ^5z=WVs{cQ!2XdxvwK8 z3jEGD&>%k@C{Qzkga_a{|Jj=G3&n)sDg>+A-7O=Hk>51+``y#uBJJxLLV}^B=5tU- zcJS{%y?J{NE*4H~SZmybXMD5k#_+mJH|~Mx+i8XrcDb(jrm|ftbq(c$Ip@JB0}adb zqZjhXvn8LLZcr2&yQQA^2B-&x?g%l9NCpQX%8`W%uqkaCIMAez#U~??nzt0Jl7~Qm zy5}I+9ef!54jV5-ySw9vm=fHjli^!8#tas742734ke!3leQhcZ1TEQlZ7R$~bmm5+CpE?==1Fl_dg={ z;}0-|l(^r~v|(x2XRDH)G~4_&NYtus*O-Y00MCLhaDryQav-7o@L2XGXX?NzLZ;}t zx>~!2%o86~0Q~QZib3z~;9rX^i}dgP?kF9YnUGS3v0-GYii}{eKVmDpp$VFdQ#g0m zds{=Xnkq`K(aHV}Ijj6w_0Q%=N@1+8teoa{u&AJ7YJ%l?R=ga56$r0-+lBCOL{%M0 zaz{wAo#PEIEZ$)BV7x)uN$=-|Kw@sFerIi-$qJM@YwzA%PWyUin7UKcLs$r_kKw~B z+q zv>$p1HqJI8;Yg!}AdnZP7Ua*x*gSrbQsRA6IF!O`UdIyoL`g0+w?Z3Ww}~x{xDrFItd)S-3=U4z+l02 z&w8+DPf)AHtNpFi)SwIo)LJW0tD>JJC#~D8P+Q%`gpuvN$S~1qLw>$ao2!WG2P(9% zZh}th1~)4T5T=GbxD?5`VsihZ{43~T#B=FuZQ(ur)nO7$yPiu1&0LX~<=EUUnAc8~ zAi6ztW3VaU+)gD(R`{a})lKb2!n^o*1e1a(E)3h%Mmp}@NLCyN^ySWUk#4-QF*iWH zn@j?b5@%_K zf@|8HIYo-`&8(j_b&wv%;Xwl7I!bTM0`1UP)jH^o#FrFw=~e5`n8sI0LnkA%fJ`ge~3yZ6l-?CJcu7vN>1PPqdSZEc5?ZVKZrnf(751 z&u4%HKI{~Ue$u_aQxc!S|8h=Fa2M~d>zlx{SNVTHVTg}lcRlA1OY6I zj%7v$R~lMMluC6-Wx%(;r+1n0!BP%X*%%lWYL09tcTBW%_Z%$#^4sUO$#O94Qj8!WqQ?A}=*5u36d8HM+XMlao=h)B?dZ3G{0G%%Wx)xNVm@ z8bU+lfkAo4+Z$O{aT-%nZ@1y^?55qIlfV>G^!>0HwPb6dMai1Vc_z7^;Zr+OdY{a( zOGMN|OhokfC;9C1EGV%akW0?=7%lp0&P$P#nt0UFXbsWVE#BRqzWKC%{gIToK z@dX(*l<$J;*0f1X0{@8IK`v=HHlsq_+Vv=7J=>aT`yfRH1Z=2!z&B&4VrdxyFaxs1h#rycBo5RzkZzC=wKhYO` zG5$if3|KC_zgS?|y%v%hK3|8r+*`n`qlQp%cjY^#)DDBcS?rcBSVC|H*#PB)a8vP~ z=DA?=f9Z2ak9jV%)?axpJhJk55$ioZc+7JVPWMZnd-#~=LV5m`=fZrR$4hj4l%E?* z+F6v&P0w&st#T6kRG>04Y*a<%jeasamT`zII*F|NA0pwTIKdTsDVZ^YGV$W2ip-KA z+2#Mo-n%fjkzDD5`YBjXgo7HpJp@3J)Xumkh!+V9ARqvI$Qv67S1S zVN`81JwfP9tWQ%T1p$iRVRUTai3 zbmd?%EP#_0!c}2nHA$?K1Z|Z1?tsI8D|6K z5%&4w9u$rXC*2aP>)k6?eK3c*-!BWsZ?Shlgq#YIquWHEW=DNwIKgmXcuspSppr7; zwt0aV^B0*l^UrK_rtb`hevyF@j|!N`e(>Eell%2Rmx?>;5T8b=VxBz-Ybs%!@`O-o zPz$(JQZemVQ+p)_I;HMz;)`Z)`b1SVhFu>1Yhd++zsUSWi?C6}xgzqW2_^0R^!Ql8 zLem7eH1!MiR63B@Ro{$8ryj+xmiNx)UfC6)Z#Mmf0W!`vXHNHmRQR4(t816A&3A7z z>ql0;++bfQT_59(P)lV)nG>(|(1vW`;Vf{>W_uWSv{m>53Ig8pP|DaSfbv178G!UA4BuNo7G zsPWEfOdzGl#$=QC;df64&VW)0tQglLYK}4@Q>n5q}7IZ(pI9JDY1DeUWg+i@23pH;De}RNp|;Em{R7dV0$Ot$dS&(F;jXSDA ztkhL}n%3C#M1_K=ps9ipOP(%<<$q=gj zOf@VfaI~7wb})B7ItUu`-d8>NtJ=fpiji`WmMKH+G0N@&k_0Uc(7y}^sS0XUN22Z$ z(NfcPv7$Q^{@wnz(iFCP3rdGVBGcba75RAvo9E?neB&k(563G9)Y>^;MtP*laeqU9 z{$BnmJZlyWm^z?E*sa(^Dg+ZD{^#xi66(_kO-`x`?8;^W27#>TFuRCcbKG8GDofSnv8bd_<}|&$DqW8I zd4+nDF=73tBVMCZ-K zPiTZtpetY##|;)wMY2;FXqVcMqF}4@jee#GqiHX^D{Oc0aL11Kj_6a#HK<%*)I<9{ zCr`hbx1Szp_V2|t{b+FQ`cs(e@ij;m(K3>#nu@vvUSXe*y8TeHBJb1A7;t}wK|2$VNV(GaVUwT6<4YU?6-%r9?=-ybhAW~F(w+5tEDOq&G2r#=j<6Q zCo=$s)$W$**6k^E>oZ0WFRVh+$QGq&$WEHjt79r-IcaKkimBil(;GW@4FumN~{$UvgYHKP0`NB3~e{PTzJzIlFcXANrg<;4w>n4k!@ zeK->d6s|p~g6WXcQWZ0P9rqqv56l?#ynCl7RU|3W+tkEG=+<*7S?(M2rkM}6BG5<{ zfYhE6mFgy)`)W!wKSX+o`XvX4;p6HPPBVXX#Mxl7q2hind1AaeK{#-Y*F@BmyO;SGbJ0^LJjy6Dd5Z#k2^Q33 zXy3hJc%yOqO2;LLkC-8gZeVUayVQtUmyvVjXqO|u$Du*`HWd(Fp=8o(90kwZt9Uyd z_u)dm^3Et4O+H|`Uc$)c*|$@JX2fr?tHd`&Spk(GJQWo{qxU!4CfOD(`L7(BBbvb-8WaBPOr%DK1etcK9$R%Tjwbh zwa7)q6Zc;L;c|#Yq_sbw)raw1P*SG$=tfUgY#~L>{eA?B3Bd&)1icsMM)DK>8*uKH zlB`&YR=4fS-A?@>1BA1_)P~x5!@uw{F~4+cAtuqa zdzsLp86^RVIh*X1I`vYAN^JSf8eS>&rCv(wJ!sEC<9(sDgW(WEL*o!yJxTXy4>d`% zot1aQc7(Sg`I2Gw^pYA92M^rd^w<;C5Mp~=wEi={XfH{il>eq`Y z*(48MaPIY~Z1(CFqpT2)L8o>|2;aEYeDaxsbAPc!;p$J2V^Vzt4x)&HzqIhC%zb*L zoj>u0<5zICc7%k@j29t*w>kN$OOFYqhR08!4QK!l@#Bs2L826=-7ob$Etd;rq0HQQ zQes$=!>yN`i7P#W->l3DonIV1nkZlA{43ou2`=jeL^`00A#usR)v6;7giKH6ElOwb zW%*L?kMn@+&dZmv<_;fqpXR_ss&JnI3cQ*zpA%OLbv_6ZKo-ft0_oY{ma&_Qfi~w( z3BJd^HI~C8MOry5G+H%3+b@0sLfw3vU)lWKO%6Illu}3N6UgRz_l81G`0U%64{K9V zWkBC&oFcMT>&hnH<`hRi0II03M7j&Q+|qF(309QmGBvG|j1<@{Xlm8pa=vM7fra80 zt~lBSF1LBEKqbQqd6}bysgcU-VZ-mY2*R%2xSAF(BT;S9(VZTp+{D#X zZWs@Iq+ka{Jo+zCetPA#M!EvNa})tPKNC!VVXfIEGR8pX0WJ=bs3!>a{J@z#BJUtQGO`N604g}gTDv_ZMM`&9IP3>v3H@$`F_oTvV3j3jN^-kU3d<{u0 zX*^5GBwC9ph(@N+Ur&xp?o$B*@`#^I!S5{P4{zYZGY2s)^jNax7T13ISZH*#>e*Sd z3kPhX+|aL7xf!cK9gHxwYbO+f`xOw{<9GKXxaJ}aWE}KJ$fYz3xi_72#bb@yGCody z>e67XPZlLSw6$o^Hwg>5gFcX6C@!KUahKW!D-M?ePCFl{6)B8rPNCVWdBV~I z`Hw~kuYAflw5mnq#Hhx6JYa-Xsaha@t2)zC$xYDHw~fat3bvm@$BEyU!8Ln;1mH`* z8WRo>BttDAv_X19Qf5-Agj!(Y1A`X&MU1qH8T zE*Zox3e?Au4xIQ>8n=3Em7|7&P2qizaVt0iXfP!O{fB!sa=m~ za;vgfwR;UZh}>t39rzaF`SndgZq3Zx$cj}08#yM`d6I#R_^`5Z^j!)jiX>dp(*z=b z6`7`(F(dz-c8rdaDQk$p&lDj<`*9t zV&@kJX1nqiUJX-zi+a?;fl(93;yhajewyB|am0q_&Ms1pV$FauqBt0N>+usxd@T$I ziHy>Y?8nG+t%ZYbylQOPJP?#o89l&{IEJb%9B7BC4xCnrOVL=`J(yKA3CYtffrE_G zfTcyjN)4N0NxNTPBygr}bU7{vyv!c1Wak$nTF=5q8=4#u*=C>MlwoDF`2-0bYMm88 zICW_PA}U25)s#M>6kMx*-KKnQUd`I={~0W17*Z`DW=pDIHKJXNTKdw{0kUXe2nxoh;sT%(i|eQEc`^s8v_p@ zWUSJ@Gf0WM$}Ct{yMYd-{}vT>DGG%S?l21LWD-7ap;&+{8!i5-?$gp{s!2sTaCxCS z?G7j=zvR|?%K*usaON)pdNvywkFVl=Tpfng>8uT7vO(`)PtA`b>y5ri!CEDBzkC$B zUuN?PvpV7QF|89$QI+k@IPv|s9-;+t>;&rOSqL1&hYsVde%&R0TCsg#`nF*1GgtCHOZ876{%JW%a!GZ@o%UF?M7CC{^T@lEFQE|LLK3_%Wk5>x=F73y;DeJnMqet77`AO3LVUH-8zTOUhOK~ zqQlldzJm2XpATUMszB8Q^+lYD-E=-P+W?P`uJn5K%liXI3a&#uU+GdK3S{GkfpD)# zIhN^<0!(7lkPirxxet(~`pX%r|LLEK6xIAZppcxQ8mKe-Dk_r&5HWnr!J?tMY|WUW z$7Kcfq1wb2dx>2rl_~`TmFbpTM1o0dt1!l_CS~+WKh33N1}elv#1e^CDLZ&!s4K_St;5+%LF-@7_Ip`lM5VNOViy zjkC9hcA7px#UEvQbLn?j;IL%QU4Byg5ff@kqpv63VeEw-cCoaeCyx^}dJ^x4}3Hs3V9PANmX!S z9RpK(;Y5QsDSbhek;_lC>KH(B=)+6{AQKOZ^dSIU{G$)%i3{F#oPsM??jl zO;HaNtYUt6iO@{o;@XMaZ(y5AE1f)u51?4 zuQd^<2xuo-f_p2joiS_OozzEd z2K$YIS(z7CT)(QdF@>>QSEfru0$*ICU=r^}@&jSELMQT~(kQlj^>IX{Qcohb#FA40 zlWJ@v=?Ns6ul0r01(4I(+%rj0MSQC+y+sd9Hk4DBuiOU}t4Xw*B%;mza(fBKffldU zHA0W)s^-+X@Dl2IOQhCCll-P8NRdF7;N{!@_TeLoDaFiPa-?rndyL+Zc3Zh^vpyW1 z*jr;7h#$>-Z={;8s7M-#dUnn{)SbIz9H7=ej2;FIs+(nmW8gl($eHM*B)4eg!lYWK zU^#1LU^%mmwJfym1LhZcj?j{_z=I&&%}+WpQ`N7P5mhKWWl$LwfZOtvNzFEk>~(V1 zhSRcB??~rqGdsR^ivIa|ci(xzTD(lfj{m|J^>pV4U7J;DA_3na(q$J9hIAVDR++T>=aPLK~I zXC{&BW->bFA~n$Fc=<0ly5YA$6G#C9le33b2C}Lrh@nQzAHvK_T zEnICz#v(RbwcI`(sGSn#gj@ae5>%{#pPy0&5RU<*;jjwPGNg|!ssdd_2Ds7TF65ynw9{V+3KirFwNp*m*Y_H4;)dxnX^i9r(v=H; zTQXSa>J*#BT(Q)r8L8PQ=?ajy?)X4~UX}P*p0Xqdz!rmJG*K zvj&+Z01I$>BDKX`q_r+JWd)p{l2Ru((k^hSgu%x#lHqt9YF5^8h6>`L(us;$X9q=l z#vaTTtBc+KZUuit{D+0!_n;2duf=?a&_XbBlR2!+d!uI{Dl{IrX|=^;i;xsdv#`E5 z>Jt)9Cd+(jC36CqxRl#9B<&zNX^RCqhIRFV2d9*nh<=ZcUl`{sL!RVm3J^seLGT%& zZ-P(#RhzMOk9zdzy`isS%GAPuAR>(QfSnwn9!7=Jr9M{1SCV05Y;d)z0)x`qsmvm~ z2aOlres9^S?0#^SoKu}o0TGQq&q zu%Up>_{(f4@Dx&65n@c1#!)pJn5N4p&=W48OkU?85!5=g{oyGgHhM)OaNbps18xAP zcDf0cLnQY7*H63e-u-tP8u#Oy4cNG3@31TyfJ+nfU@ipJN!3GKok}GvpJ9P#XlN}8)(d2&??&4~UiIIS-) zFL1K4V^DT>! zlJl8}MbsS}O-SS&Nme=R+Lz*Q9~mN|5{m;B)pG6mx?K=!bU7*{wh#%st!-&iXn<7- z2MKcVQCNfHExoLi0PEXHzy=d}%#o44XP^?7ni`J^Rb|vnL2W_beOFD9ruZZe4ANvn zRSbR|BG2{3_6`-X`RL;Q?lHx;3h2o3<2)+2_4KvaNbx?o4L}`u6eIzTMo&mW5aFd+ zYa*>6X^Nsv(>_zVhRA%^Ul8hOb-P8=-6Yv9BtthROI4683MX_&pacxdlKmEkFr3YFAYd~sO6V+BcXb6F zG!!fCo9Fb?v1ON+V3!PKH|3t^Qp0BMw@ zy9sZ*)1A%8nyMn1P0$rCGODp=W48b4O3)kl2lg2x;21oD)1fM4%mC;LNN!W4?&Xu& z)t!86@ESz?26~8MIi8T)JM)UWMH==FEx7bvg;2M zwhm34V(Z~VTaVxMNDK=%@f*?w}m*LR_W`D z@vE6AK)TX=fJqS^3HI0nzsAdnuxYcgQue{S)*zZ>CcenkD)L!&C(%ZiJ|{$5IujK( zpHRX;uTwIkP&_2R(MMcFU7dP|)I=A1a71xJjW3S?fz~KZNPHWm5o6$J1os+-*5l$v zQdDj3p{#%(f2q96ZCcbBTq%_CfjFAXH)_32lzR)Qpn3;-?Y+t!gUQIOP|U^54A`jJ zYUa3{2aw|2js`ktRJA*zsmTQkPH-vnU=VgIUI$kS_GvM=W2>=wwyZ9Z_|en!W|(x- zgEVPyH6#$j@<3q>MY9)fgwq7T6O(lq&j5bl1je^>qy`X!5btmGY7PzxRdymTJ3&Xb z8s#7J?cyi`+dATe#AdK5Qy=5?kuVeyI+O4MAae$ya64hJpi<`@@@{N*N;6f|?tqSV zeAVxrLC+)jh6F75PV%rpJCS_G<*OZXJ>4wmTH7Jqmm~>s+87MZV}EdXtuG(+v?QTE z9|$VdRQLi5NNAfRj3BGW1U2&T-?G1uW~pk)5Agh>f-x?}S4hosyXzsOt5@%tKd;n5*(k933e|H`V6$?hyr%H2PCqvyDuznLUA}2 zM7kH(@M{SfmSH`Ttx^s^h+NGafTx%j)f;tHozV>J&#i?SGh@RQwst;F+R#zfNA^NT zS+ogkkif3@=MUe%{mf$R?>@Z$^tq6=kt}b6RfaCD64|mao(5=jiI9{`XEWU~V-5&k z6C*Xcb(_0EK@GfwBPJ9;{8hcMYlOYgs&n%2k=Ns2Xmnw*km4BoC_X%61ssx;d*?8N z*Cnj*&Vs)S=!CBeqFfh1l!Zv!>U7wfNz>Cu#k)n&9*SFt%gI)VVl2nx{1l7KMq)Jfk*UUsyoCcg#6hTUJY+OJDVq;GP{cx6su99&&z%aX( zHptxReksbSr@J}`e#!ncsYgLyv-%{-8KGFh5NIN!3S(Lb&p80%EJe6zHG{n_)*wUD z*42^>ttnXS6*R5{O&*2u%>q-0#dHP`rQ0{F-p)jq!f={;p0jjq?tP9-*uwk>G8e>^xbT{AUPS5V2@Z zx)GbdBrGQea|CrUldJ-S{X_-V-!;U)im-We?b*GdIvjLn|E@;ZLE(!2#ti;+F!RuR zCOgk^S@i2&WPR}85dRG2*)bH$6P_JInE*_b!pXb=+%?Dx?k9W09zC!CqOj6b77%d7 zg{mQ*=0a@Qqo;BEP}O;j#pS=w+7u0ZfVi7N+b4|*EQoa3TfSw#ho(>=WOi1Aw%~hO z-Fmm9VJilxuXgdE>PV|d%qx=*cq*>yXad|Obli6}4Fz0)LzAO3jYjI!0}UBlab`2B z#!7{VA`z(?pc@SbnZ+AH&_T=Ti6du^mxn!Pt1eIW17b8D?8ewhbBMqKMuS#fzI+>` z?v`=c^EdzS{?m8AfB*1J4{F7{*|#2vr_^cM*9$0xu~Kj`fkzQM7aE2#?3y$LRH`Kf zqi`FPSLL_TARwi1LxSUJK*re5mMdeu)k>c4SXw0u~ zRyVmSOwsmi`Qe)f9VS0=1ATh!Of}$<8~B6CbZhP;AZ5f)Fbj^cIPUJ^)fB9Wed;wc zOI3HIdZ7#eau8mC+n6Ck+!b{3306+QPUTMqV+93D8&!5|s@*lXVdRCG1W&1KyqqxD zIHD>@_QXK?Z03o`8;TbZXTA@4N;v>59ZloBW&S1$}<%Fg!L*R)L{18Ulw^9aj6`R01u=}qDohqeZ-%@ z1G`f07frTM79LP3zzS!?DH2!iZ=rEhn1kVxz-HO4u`x=E6>0;BW7B5rX5E*D<6vDf z8K3!?3=pP5tb`fACZRt`fOd?$fEm!}h1=pFn*|~;#yH4?*m!6KDJI=}&Rf68@DbW; z&jgz;H9|TpQZW^0KXu6y69>P;3cF_0Sog{c-AH)^3kz%{Gn3RAg)r0V))I+_+2-Ia zLp)rf}Wb*Y&YORxdQR9rHu!lb9yjI!z$pETZsD+|9K zo>CdRl-0ME`G@>aCYIv=uu`OXAaF3E8#blE#gqGwkA8d(L{(f_CTe=KX~|Do5k%UO zs$Xm8Mza*)P!uP|`%xqX8#3R#eoqQ~reDFa(LoQ)J=h5^4P$CHG$W0K&E66w9%uLj zA~cp3E=zY4=%Pp^q`lPi__YX@r2&{Rv*}VB!lj$8;d_0=U)g@8;AO_WF+dK&B;W_k z*Zqu@O?s^sJ&G=McsMFNH@UB}N9&W16BYo}1%})tgFM;R0UZjR)iM&7>lz>UsIlV< zw>@I*AnZfCfs+IqCS;j9zeuaszmx{ChM$a6L*CKRTL*)}xfs|RsifABavYt|xR^~R zGHB=U7w$!IxZ}V!M`?CCu#y;Y|J@woTkavR&! z>Q1|)xM}izeer9)yKZ>pf;0x`M&e&cGW3v)U;6amX6b=+(yOjwX_N$u?oCWvfQP|> zNBK#)ucSbulmn{oaG)*sF1R2Cl4E;n zg>I)k6pki{zc%^iZnN&gCagc05z?t9;IRYcRpn@)h#6al)7p0bGu3T?a0|Dn1<0wr zsLsgajGaHjOkIQn2q^qhaKkp_tFJ|me;J&$QD-;@fdR(C!yJ=ssQLmTYGF~S;f8=J zT|uy^3wd~G*6|PSXZIQisrG6ljKVRJ&DwZE90M1moW!;%pG%FtJBR3IBl|>mK+e;} zlO&rLZ4G!9a>R}K$)JQu^3YPe>5vq?X)0pgj$27o$O9S4qs;~@xdoIPo(--}9kQB0 ziXR-q9rzc6ux5eJg>NoYkFv)>tCAXYHeI0s+_M{xF2UFs%+aFfHkdVzs^-jmG9>z{ zOSDJ2SM4Um9uZ9t|!8h>go&CQfV=?niYl z&J%T#MJRM`j96%X4O!js3y2Z*nX9_=PUFodqaExqld(rZ#-%=9d^y2WeEO29kQ&&J zK;~MVBBZ-TDD}G0AI>q5cJPxGsa@n*-b;ORz>!DVkGsXlWdSvUvfuUV1 z5>zrg;uxCriVf`;V7o`US)hb6GDs(@=u0<1MrYFK+eQW_?zgOu^eqN=SY2wN`9w;u z`Cy&$r!BXfaoo0L;S2>E9Y!x%z%-E`nPB_3x)ml!5*zup9V%3^T0etj4k^bPz?B;V zxH!oxJLAwoq(xZ60)dDlXeJE5F&iLM@2^`jsg$xsuV(8M4)I&Wp&+x+7FWfZG-1)28#Dan%r8Q|X+fH!2lN49TH|i?Ylp(4jpkQ`93%5r+j>nslG@|NJRHM4m z-ce@8iX+_-BVT~ZEBI>m>Z6^XQN9=kn$r>$DTWXqx4L1T|1dk{OXpO!kX-7UP%a0i zlbo&iDYppwD$R^Z(GankAwnTet4kAS@E#l!ilbgEX|v1ti*QdJJQ{e8UIT}49hzU? zS|Aac>BH*&MmO8bFbA>Y7c#tc!_cq=Lqj8)QyqDcKO1Q7mwog?%C zhEx$tehl&Q_;McL;G#{dTQ`Y_Pb&qb@)yDzSq1>c;V{ETQw$D~#QO9oHc=%qy}McW z$_srNh(IF%7#u^6Uab1`IHwwb|BdOUXe2aKqS7tV$zwXoYwCz{{ z3NYin11J>&hdQ(pr7`Mm{0da1u@)Tz^g5bGup;!vmLWQjzm)x|_v*dM9lM24Lsc9% zohwckxRulsCnF0NDw8~0$!DbSMr;uYqZ>Gzp?%?e+GyXx{R(LB4%xD3NkMWZcoeb) zkj%#Z9!5Ljm8-k3_O%MSs9$7j!xU42g*MY#&txWpl;elH5+(z4MIhig6-;7X!~_Z| zl@7%16s-}mG>bUXnTchb7%qtA?;$%~sTqg1n3#y6O(cE57h(_a_qwfbt9lJ|_ij7+L~ROsw0ldNC^nyCsyRggjNIt11*9Av!V9t%=7Yx+8>EGh{NQN*x}P&9xPqYW)T;^4j;ouMlvqtven(XY z8qF@BoCCItTajQUIWl(vv>3kWsO1IFFf)+t9c!6Lo6Nh{*o3CtOuA_yt`0Xo!MCbH zHJt!~*?^zGNe;u(=TcBvd#$Vc*%nzNP#^*!({#LY{Q*2#yPA!7VFMO8;ovn~EF5xU zc;@NxDviRi<9$HvVoNQET=2;0Y4)+C9opwB`QGm z&*eIZk~?r0lMcR5Wv>flJGc?=cZ1_GdDa@wyYqE9K(HXfLaQ1W;^McqQt(+sLvHU- zg3gV}fhZ7^fmSCAWa7`5QUHg@5_}7m>ZU*|4OSE4oWo?|HTy$B-42kw*f|lRl%L{z zr|a!}0dmbECH?hR4DpQ<*%5OGUKp-Xfj_8rbWDjg&h3nf@$hDD2K@4}n!-(ut!}Mk zAr^s4b@>Py^GNPpi&SXmR3Rb)?<*q#9^!f3wC=Ry!K*zZE93xW23#a-kRp!f8gK-6 zDLRADI?uG$4kp2~=F6{tjfca16p@Tb=v|FO4kc<~(H8<-P8;LWXl^jTa7)}_L!5|q zxJN@etbwuFtM#*0C5Jy*-Cb9;QLRC*CX6a+v#3cTBcN*FRN<-$Z$l1&>vLD1!>Jup zuwa@U%L+SZ&q@>vY@&`EGGO@Hvo(wCJGf4=Ya4p9@3Es?yR~ zH2Sp$fly(+2mOeIO%~lu)N)lj6%^mt(c4lsM?$2meI~Kw2S-*?-`*iU!@bzbUQN*< z3dC#&0+f_`juo4|_EluJ#09T5Q3;bSVz~0NSPP97ELG^Otoy645j_cq+n^Biqy_z$ zZbS^saS6f2i`6CkVdyowy8?rEwOS~ftLNhZ(lex)67ssn(1o}N^<6GbwOn8b@jrKz1VDG{-H7MPE^-IgJ|Lvsi^qRPA(t~4A224Q$B zeTtA3tieST4o8+UEHq5U10%p4+$}O%3l8Dp2+~O0Y}lt5qY>EsG~}1Pq8CrFD7+tM zWTIxs55fakjWG+;=nwSj$$n*4;mXySUhayId(^A!(VHIeDYF?1 zdtr6u4vheEBD1)3%q?I{F+d^HC;%uIx#9Kz0V79W+l`0;K!nh+m3AjlgAYa|QNs*` zr|AemO)QQdNsY;#`NAngjAAhnqYY4B0Ip3QEr%QSug8-=u<;gfs#xgj)%cC#PU~aI zfYiEQFz-@3NRBy`3*zN8P(~0!V~;g*zasW3gU9ya^XP{LB+m8^gB zENUKioT_4sbT33#dAS^;_P)JKpjq*ROdq(CkgNvbXl z4pe_RgZ5+t^J4w{R<~~Aabxl-O3v%!D%QBsrQuX<%3;MLjEmn|pqyq$XgK@GAj-Ym z?{=>q&oin#1nZ?t*#289D*l5fpNX zCKKsN)O5DnUL_s9iYP}}Z7ka7k3YQoJb(Y)=h?>(f4u$fn}-kM5AVPI?)UO5;ShwZ z9vmbyHlpMK+v8VBLC0vQE!;nsu+*Y5(HaiRy9>mrwAxTVu~dt~F(rGdNKtAnS~o4V zg&x4CsJJ?j22#Qt&TNaKbNh?V1TEk)hnTkhKxrH2!n2U@u6jh;Sl+bQjNmY9e1tC2 z)=C#cvmdl$+}h$=W2)m(<`5Cg0CTtfUs65`L;kpAdKH2gf9a`~(x}y7f?SXz9CcNvK05m5!w(2~e%}Ap*~_!jm&5+> z0cR(G%YTAeKc;O0OqJUG!LX&>KP6QVSLLBWo#xTh zCqOD<7o}MqGy`CZWW7W1jHjR*xDi@lvb=(R(>7#1_PHI3S_yFu?0~3P2ttV3XAR;@ zXyOqR>zm7ip^zygjr9Qv?n;^nDHU3#0$Owc(ayC^&n%(#>;1^+w^FjP%$bT0I(ecISkd|q`D4QjF1 zDl7)o75D^%fi)ZSPlnqr}?a&0u% zXug6s&mu-gZ|3jltu-*+3E4ee3IJf)91bo|e*94pnPQQk>6ZQoV1Zca#T?m~8`rv% zuq|J7*C(P{)2YaW1q7XHtHg}Fu>60yrVy=E^jXcRPr?HoMyUPu+w1)w5%L+k*Kj?r zhG-9kuafnr8T8uh)h$jFbHw5vWuVNBmSRF|0o6A~SO>_zr8|W#EKm*%6q+25`SD7I zKqS>bN?^2-!>6vKAV*v}FKN$!(~560d?Icg{+#NP_8G37hAYK#vnWGtKe8339h!?xn5}xL; zj9yygHY4zRgQlp`islJ~C#Gva-Y}&3@x&=- zMp}vnL9?lEum+PU(wP&n&|@Qvpp3@U#%Jz%F1h(eS6&J(|m#9KNoz9SfxuOUUYh{AJk-;%%0Rc6$L?GZYLun=~ zp}M~?>hBCfFoV?c49=^lKR`DvS?o2U(dH}94;DQG`rAOe~1rbyR zb+PWz51mp+x2UbQ1g14Icc`94{dt5u)Wx$vgf+^Lp48T(SBQMgD9;u5FlSR9ZG1z4gwj4Vo}E*taaX>{c`5;}kU_~GLi1iANX3DUgX z3@>!yPL(jEPd5qU4ppwX+f z*P7y8ztQnB=d^-BZ*}V?@d2d=fMw3BJOJDt8}$iZHQ>PDb^Hp(lJP4AYCvBB6&0p} z;QGekqC@Ymn8!xGiofXSe73??XO)o!(Hr2H*GNNCfh0rFTyP0&KS9LC<4Lx=@j|_v1=RkaaWkY=+d=qm zp0=(LT0vv8XbYJx2hBtejZWPlZh&avUg!;NmQGsy2aXdB_?F--MM8$H8NjH@cv5&x z#>=^04G;zk{BfPoAQk}%hVful>0}#S z+T~y$;7JJ$8(k~#%h#0Y*<45D-pQ=kVOnWiB5MbL`v&vl~J_B*vIwt$ax^U(DOJKuwF#= z+1&^7oku-_BY~H|&{+_240gZ~k$E|Ofn*Eyr5?#9s`-%A*ZI`~J9>xqivyM6Z1id{ z*&@dzTEUh?MNxW;DBdiyD|!7~q{;3zKgEa)zPKYfi9PaBL-H4Ie8iY6>P~eN)F^%E zPhxF~Pytypyjv@@-@ku&_$HTC$XX=TrLL3dfMtLkPxe38M+C5u?--QNC%2K|?0aNk+xu?;Ne~oDE}@TWnjYYNXt^WYWFEGOz}6rva@Lk{oDxuh z$E)XB^`VT?B`$RjhGR7GM?tf`Jh&iUj|@fhbL+8f2ep-6L#>O|6Z{3v?csWfcC!?c8;IA+)w*( z?91N<>=@(}I4F2TLTBJC94(a0Is|3-(0?x|d)kS1D0|w@{B1zl(?0xf2Feb?4n&!M zFW7k+IQ$pHP)~-Pr>)R`TIzQG|HIBxiPn>;+g~4co=gV+Lph^97`DGU;`uK|TAqv^ zp1j3R=8}IB^Xmq~>=y*RZ@(uUcWz@6gg;H*etv6S6c(=TIqoAZRh5{k93dIF(i^)f z*7B#)yZ~f4A3FY!x&l&q6ELag!5Zcy+E{ z#r3O5jd9ecH!N>7#Sv6d&bKeN^PW@_T4w8IAp3Exu}j|WNn?jua@pu=GD9fx0sZ`Rfmu2xuC$Ko~xCEjWvEeE6l4zTi2oizf2D{Q z{T5&+i}V`4CkQ)~2FzWMn|%W5BDM9q=e>8mzx%u1&0 z^@+v9JKBqfM(J}s;!+u{;MR@&qjbA5)viT0p%5OEU^bc%TWK$3RPhFtLi`nRsgjg^vr^&-^F@Q zt~M~UVKW!=%j+q;b#^l6RLyMF{s#q&a2VjB@lBbC1N+X@t~K}>ZkEp4`vu6d65))y zm1xI`l2kVP&8k{y@Ox;a9wXqUwiIT2{0r-ru?tS7THU${UZGoN=IE}?+v+PYhv4|j z)u%kAt7Fng@M<>;f9z%5VM(zY!Xf=LR!C%5Sbkc4X7?v6!Eg{`LE=g~%2Ox2%q&~H zz-hzJaDmLudoL<9qa`XkwM4w%EzrYjJJ4p29?HzG$taWU_Vv(RJ>1blN0>Qo*`sIC zPj$AQFy40JP6BS~se3e-w-YgdI~wXE<3it9Ag)MNKp#v*VPW4{nHqUos@!mKUF;!0 zc=9Ov2OT8(&xDXyBKQ;EJ%@wta5)p_DG^hB+GB&f zQ(FqENmzu3t9>(Lx@9Q!5}`$9g+%{53|D3yVhkSshev$=asTai-+tJC^YEw7f3PoN z(aF^$%D2RoV1vG$9yU3#=$Uj?^&^;hYf%L3*Om2?^$Wg0!89FJj_HuXX5A5=$Ry|q zFFD}XeOe`*!#a4Q>2z7hODXEEM08cZ9X;_IDw8(3c#}a+FAMi5q;+asYyL*%%xR4= zDsq=;HU_Vn5<)dS$z8H2`qME7;`6j0=fBfY&kg(Yk?klD)0Gu(d|6dz(}c@TJ(ZiB zvd1E!dv&Rg!s%Kg$9%UlBIs*HMgfiHZZ)~NSorAx;oi>aew;!S%omwMC@{ixlno)( z8IvFu!B$^(Ys`Y2Ki3AffAAknfX^1@j1_Jby~H_YJe;IWqI$d5cYqIEpq?z#M z+V_S7yU(T4Q?gOLR4AAz^3puDaJG+*VE;r|ug6RTUB?|i*11r?LkO3^zZ4E$sle!P z=D5D<)D9Gk@pk%}W!0}En74llaR4PWZBmv6oyj>8!C*0t>XLanieB)Mdk7RjCOZ_L zp3&LYxEe_72+64tQQ4!J8J0EpRq;H_oGx zKF(8HfXNGJh};aoQ2DXB5pJe}Ym0J}Yjf|2;-g_zu+HM2^D$0~vwfX0OyMcu6k6^+ zCWJ!d6=>n_>xvB^^i`d{XxPBgL!}*E+C4xFqr5g&EI)*Y!AYD+V2qnaq6^eSoX%z` z9N69CTiu!lxe*JboZOptVxb~wbo#uRi0YboV)xl`X8`GA=*wy;;)$?dl)ON}fwlVR zf#%DE)Q+r%39G;UCJ(f91v?$wV8VP?HbZppYKCWhS2Jj(pTS5D>@}IvrO-jp69#Sr zo!6Hd;Rn-{T>D$Om18{)X}NsBUtQP5^@9dQ;x$4Jaje3}k17o!Y;ao0UeFB7uvYCY z*$Jgc111n$k)O!oBf9{lWRlDBc+J*uT^h)BX~2Z-H3D(hrlQ{=E3^oT?*d2=g1kR%g&I1S9v7!0H>id^b@`hN4SCvWYMbghpq4h#wx1fA&B1#)iNgMFF`re#!8hvS|glad6B!Xe9AHh%$|NH>|V71!*|{ZttCvK z(#bTQ@yH$7XZWe_$mXA?-7(z%)OVcy=B*F(fLbup7Zxt+Z1rd+ zKTwEd8sk6RXNOk$+Q%?Y_W~{lK6!@y$sX!Oyr7`Sa(8KfYpH;fuu)Zbo8Jenv z88D{1^>%*@W{u_eppS-pj9lSz{dL7W!!K}nq|w4@rtaF*Ua%v0jDRDT&LM(WlAkD) zH2&i^NALdljTD3Y`|DrZyr2KGgf+(tUT}Uhoxv#>XX*beJ15_LQaSqQ4OW#5FM`~I zI*WJXs|E8W6jrKk;cS+7Xs3fttf_OR3g_<{rteGA&Tn3Wj5W@0qf<8^{mH^o( zpAHc$X5^=llf5iW#Zr;7TwsrouY%Re8%;R>dP?N)PTv#t&zuccOu9&OgJny?x^J$; zreNS)N#-8)$Pus}RE&Amp$``B#r81&0QOra1woUVMWn!~lTS9feA$AL0jWj$2kIX| zRv`ibL_!cUV(R=_=3M|55QlIZ1tR0G<8%71v`|vqtPR3oL;$2Jl)MzyPYNH8gDYa< zl5!kI9~>IeO{;VV!-(a1e?H#<)q4`7^#(XrP~c2CDPhRL|9E+Ng22A?falNu;fNS^{qf<` zyB!hp|AoHRqyF#b&;Ne#0wUutdO5O$5vca|=l=j~{Ji%M#AV*{+$k6qpvq=*9Hz^Z zs~*{fVIhMkv1j}}2-K|y1QsH9t6QrQ~n|5|ulcEoop$ z??_|t;)^{bE98PWG&tlKB1R$<{!P`Zsz%!~a1$^@qBbXU35*B$9mdJBO=A;Q1%`(i zFcI8RJI;>i*4hO-g9K-rA7?Nn%zpU(`|;cFzyICacL-xk#0ti78Rtu#M7y_ySFOR` zlJYqxDKK~gaU2TJ9@M8+*+l zU+s95dyatLzuzA#k<3Uj9L`uHXFAi}%E&GzHs}Bxp^#$_Yep>0-$~v}S0TAw-0W6D zsD5vf^I9XBsKb1&zBrTxE-hg2i$gc}(p=9LH^^D=#nHR2(NvXT%aMjB3seT8g=Ew{ zz*uRR*m5-)16P8F;2W@-wLCRj(C*iPF@3?9=y0?_)L4B}vsbqeQ;;?RMj%jDR{|Hk ziFQ_;ze$vcM|r=*#IyYBkmSRwdGQ8m%DpP9vagK4e|YK7!b_mT`!~CIg`a_8qV9%85dOTVz-2pK?Eij7}cgPy&2=Kt43E zpg>%OHAzPX$IuT`-LB;oouxI3;s;Gv%?6D!HRctIUQLiA4UFA*Hb-UVWe?S^yflfn z4jO3WO9EoXZY}8a07k@Q8Gyvaq%*5P^k@|UtLEu&8hb7DN#stVZ2!?fr(K&n1}vkIO%a#f=MaxFV!XrKdKR@Dhi6aG+F%UmkXeQWZJ${NU3(@8XxA2dpM3 zCx=8Gd?vI>BNUubouMi6%*`(m3-IMPq}w!g`%Fj3miIm^2EY zK1?b>BYe#UJ{VL0XZH1 zpxKj5Mn7lo-M0t=Rj50n#T@#~y_sGrx2wetwW;a3}xU;Cj%SrNX zvCBj~AY+|CW6fo(sVNUr(W!4NB%Dx452>0)CkQv*2?E3WShEp@JgM`N3qSB@(PT+M znoYo^ywy$v6x1vRn9xmqw-43w0Y5%vY&^DkkJ&AEOuBiGV$`qBHwq?Z!ek+R8 zb}Ar|S+->3J2a4ydzQN+{};pwY~JkeX7d_ml;|jg5>6sCVo;{Q41_GWQj`@Zo`a}r zDSG`TB8#h06}(g2*X%NRX+6K*Uwr?)Ps%N^j4wz?7)!cudMggw&WiYur1+-V4LY7( zuso6X6(qQy4f5No`HXpt!_O7a1B|HxNiY@Uae|{p1DrEyBgl6=M^%{jpFY2R|L)wus`Hn1yMfeFibR>Rmu2$YP1RVrZfu ziv=pD=NK09eQt4s5A1$$BBTWa+a8xlI=%tn zQXmp6g6Jwt$SGTRQbZZ0VuWtxDa@n*_!Q_$hq2ix>WMsblO@tW7Crz4R&Dh;f2F8` zH?009LL#okSqBJ%P%)pj=s>t%p?3;vw@k}&0kdmOreek{nIV)G;{wf)n3)p$F_kB0 z(CRl$31{ggbQnv5V$IoYZ8L4T*EKq|z!fotcBZkTt!~>;GfOA7ruPjVeh{3m_UJk;ptY~#>rO2K!P)cDy@k46qxX9hq zL5Q-%7nOWV)uBgA#Y^=pfAoWXljY-TENNg-H01scu36j&PM4hMAF18lPMDX}GX$7S%V%W6)^ozmNc^*a^gfPKugT zy3{JDM9&@5@8>M~O+1t(H11OQlIgh%B2=?xh*b;Wt`-EE*JEsmw8d>n_*Jijg;e6tL=Z*#6|2;!;L= z{ZFhKN&mhEr2)+0F+h&hiIZ_?;^EKa|q)}@;iBpnKfa;{}aH|0M;# z15ke`cdYc1{#ES;IkhYJYlMu0ZL3;S-q=^EtI*}D}=Za+Kq*3xRX0=>WA91bC5n? z4#rq6s39>co06FMiW4_}un+Iv!l6%I6<(nPTEzWsa6D$omv)mDCNVN6Egv0YBgl<= zK5FIR2V;X6QXnt#o;eSH-JGyEbT4rHI*7(ox4xSDQMmrT4&|%mj3VkJRL#jGz5vy1 zH0X1PLj?hhz(q)B;8ZdseU$QaKNaXvm&5F+VwZY=@Cmgy;IhYL{xCE5{z4Tsh`_=k z1ce{ofBNqC?;pMqOz^hfOrW#_yV3-wxl@+l&gNPT%)>dZ(eNROao^| zD9Ub@qXyfV;M+b=YXT=8a-V|X2-tvp+9Z=oM{b4HS0JxSx%3!lCI>RYCf2#YhCp}< z#xNw^JA(79oKbPU`2tuzkO<1f1m4PN(n?3(l7FsHy500==g#c6M`+zmhyYocN9ruc z8c@+UJUoE(L)%IPexo<2_jUw#nOHT^Lma%)9$oph~Z5u78r;KKREV3poBn~O3nk1lm%Py=AldpJrY>fqNJqeJ3F zJ6MsU4!{w8o~h-6Bx9wl!M4Jr;&mk9(u1=EY=w&})km?KX& z=)v4Y{0DpuvywT|a~lMWXfkj&ZWssUcA0$cT&GlZ>4^qUMmcGjR$wX&B0o8R9wHU| zB)%L#ALGgZdY^>6mHB-yJHs2yn_2w;O&$X-hwN~x8wPBFnMpcs;I87T(ym{_oujKn z8lE;VA8D)%PA-l#35gr(kQxFuxB5`Ex?}hE+OpA+7|azS+$H1`r3@!$L4> zR&|75u^n$WJcEnSGzXM*xDd2@uJ6pS6Y;1;yQXGo#}*q_7^G|J1f@GV+B8jl90}NR zyrOkLqP8?0Xux$hYjQ5KL`2C96o(lT9cP@Vc3m6madMJaIviG~p!nP%hADf9j;80W zXm#q#<)#CPoc5@sQ*-iJ_t|i4Jk_bLA;G!fFD*g4S<5BFM)?{32TB^*JF1$zT8Jm# ziGiu&qyaS7obyL~#*<^utt4Oa@be0NdWuv!QFM-sC%pVG=>#qHm#uBH*|9iK@$@dC zkC31&!<}_$o%D&G&k=6N_3>zQ>W2KC%oG5cQ{?G_%BmUaoubpSQvvqhXaSWt*VDGb z-L!bonReeJu&fOAdW7Py(9zV5tF4!tkOnA~cnJk*S4Gi|EK2avXl*aHlY6U)_mh?Y zD9R=LFm&Zh*gHDzP%Kimk9=`B+5E+;WO@1Gc(_zPeK6w5B7sGKfJerqOC1ejA^eA^ zA*Wh$W~iu^CAa~=Bvqn$9YE-SiWVBvF0TVTligQPL{oD^M_yW%;hit#O>wPh80e7) zld_r`Zy4++a|XR^dk5O}+=SHVq=8BgwqC}zVLX+uJ zI5#B@z)2x%;iub``^{cGDdYtP?@i$&R3n6DuWrd00m5o>6>@&_sX5YkEB%>qYDl-a z6S6(s+phR;tzMT}np@*xG=u|DIV@D^oK?1k8&;*-uHCR=k62o}S>&|t(;{F3viV4> z8Khlt+1#7?V2gAN_?J3DU(%5MTm5>TcG)vKMV7d9sb%2yS;#FGOCh(VMA`1OX;M^% z=A++tFbTN_(i!}7UV{V-CG!-%Q@Klz`1FSlA3safrT%DiGn1R~^tzSKq1CP1^TZ67 zVvCG1$!_YA(b$ zRNUBg=v$Lvv$hsIU6LV9bPsj0Xtk&C`IkJB&WV?j?>Ej&cMlL7m8@s~9i+&st3bHHI zX+z2`a0>2d_yFb%V${b)W?CWdKSL_$sAHB-` zU4ZaH4<9WcK#I2olDxg?6~EKwg0}=RN#VwGfTCT`u(Z@u*PL;&AMH*-J4kC8``sTj zW516_I2jr`9{)(CB;$xXqh?0XS>9B~k({zyGb4DLwjdA#N@d7VeM9pi&l&k#4DRT% zS)u^gezLo8*;Sh8%*>-~drBV-{(+ZTu;Q%rtHaVCsNW7E0hM{@N>KE5D`2>@Hgb|O z!TyBP02E;EiBjghGB<}}JAi50{g2>G*XNvZ;u4ijP4_tC)PC#M^;Rsqtu{-chfkl=V@x0WZ(_UDWHP5UAD@_w(_E-|sS)uE0O=GHt}ivh6r*P$q#IC7YN+Tpy9=UIQ|(NQ zjKqn>VFH4TAL2@H*Kx?Es`IufpzKUL7ud|H9TBQN%`L-C;l1ulPYK_>6GoK6G~Tlu z2-Fin>D`CY8_7HhMBQ|~?Z^`vcv=%giG*-g;yPfrz*9a|83I8|3Y!$f<;oB}rB;R% z#{!NZ84r$}0$EP|ZQz@9nPG^&t|@en;f&-Ydjv1pBz&P-BdS9O5G~JOUx!ebl7cLh zBP&EC;<)K=7tU6mLL5mP@l9B{cqC=hq9c@yT*E+WI<88Aw1y~-G$+&X0yj>2ICfwH zfIhq31Y3PUz*S-c@&BQop$CT$F~Uq|*X|?eZrR6YV5PvpdB*77;&u@x{~0gx(t=2! zkg>&y(QFt>cb#4D6hs>4H>aY@htFdM%sqVcgXqoEol??FH_xatHdGG`0&@%U?0BkH zp%`4EUDHR3FK}=4e^!7*e1MhSAY4)jh)`O@2Qv8jkW^m}(Tw>C2uP-(xlv#nCTDeG zH|KEq1edCVp3QoR)plimtJ{}kw%82^=Bx(kKm65($7eiPw7pF)MspdL{RuFk%$HEy zHiJQcqX89A8)8PVrbOy(mm2zb8duaU$(|Epf45m9OWqKyxz&j|IOsSJGC!lS>7|># zMvhFN4+5XZ^oa;W!F(A^1-%eyo;jtVos4o|lWKe|o70AG#U-}45R;H=*^KolW9wE0 zI(DynO_b?dF=mE{=10Oe+CkY@8sDDvzo`Tszn2P{0Fy#XV4X%%+Gup4ShygOx8 zd116}cPA@loq}27Zhqobsmm6pMmSO@fh0q5;)j3}?do4$)Y_u;w!z{OblUSoHyP?q>8g1wbNgz@I;S|Mv5D-#_$@ ze)cclKK$(Yv$se^Vk~$>ryfhTO2Mk8=yKQsLg`CB-`xwL#D#Wn`sauDpSK@=`1tOD z7Bf3zw}|d=T`1ZdkW+#!Ko_WYm*`Xv;g@rLp$Db03AwgHjqAT%hs!JE=T3^%j^67O z(IF?gBueoMQ%s4lRChy{{m2BW%XTwI7t<`t{cZOLOo!aQttuVIWIh`7Co^R5g$qiU1AGFQ)h{ zO&Q6XCBe%$q)s`ELsFw0i0M^MVx#tv$D;p*bjRu!sURiRUH7c9gr?pRF&sg<@Sb5b z86j5v)RExu=LBq9U}RQFb7>}G7dnRMl@2kMt)2mWH!K#FlTM{2!K%d`h(0}%xQkiWeZ|5_82$G_3|~Y%3G;ON z9A=~;%G*FG2@@bI)-B=}kpy|gVtQ8OX_z=&@T7rF0qn?VC|5gx7B7TNwSTr*P2sBQ zDi%$vc?&lLNd<;y!}=KE8Iit|LkaBK#4@2ahaJGNbDZxRWp++3BbKyf>vOe zpl_hqIz{RjWS0j!*j<8dj_8fNPtbZ%Sp~kEYC<=-0z$GaRFRnZ5>z{l1_7Av65;M1 zW83tFL8gcP!l2bS2g!B63nO4P`Ql>+PZ>0P%Ak`k4{~vaTm!fm!&+6oLmda=47VJ1 z4$&zfv4rdezdAUgR-zXI0I>7imtaQ6D3le~(r!g1GsVbbp-^&*{nYOC5iH=@Ou@EX z5+x!6nWuY&2nEPD3S6aPyf;wxAZVG8ozzoZeV5 zuB>?fDIPuDn_e1O!DMvzRqY<5A(gtMJN=O>DI@)n`6t8R$AXQPQVFJh>16h|z|)WQ z&sRvu?_80Uo|HgAg6)+k!8r)+<6E&R;5K zqUsO8F3JZ!eQ2p~OCoZLv`TqOsiSit`2=9a=a)w9$U;)Kg)oiDW#PLPrg;KJ7dsrH zHw@d}V5M2&K-LBJF)rtJG<6wEM_blDZ z5dNp)idpapv+GDRXAADeF2Ej)1;&~=Kka;4IUsRV(jqF*RT{*6-W3Xnw7yWB&6n8! z3D{q_>7S9r)QS-5LDooF5ac(QrVYc(eCFzDXfo zSe7!!y28G!4IiJ~$~LoOkmuy^t4mGD<%$j)2($?Rm!^f{%i|M9BhIeyw)CTLWH<(H zBws;X&Js)jQ)Fbh2mm%1Dq5tJK)w+y?Q90t0H#l~`Zn71K}*y|+>CIhQ6ea0BTz&_T7Y1I+2!SCk1yP#|u?$osgf+8JNpsY#wrzGPO-NW!IK_gIFO4f)lkD9@ z!KHj9xw2G;)r}Wrrj~ori_Jv5dqqJI2zUtCr zSZxu+ZH&At^-%Ay4{}cdI{t=lnn+ybn|AD+^m@Emt^3>s{y?Hsqjg8B)I++->`$Sr zclJ#>UJ=d654GMpDkNE_TISZ0zypQyNqo}g20>4znqmHuq%g+NvR_&jKquX?pfTwE zGjU2ht5R6OSpp?1p8706!K2R_@L31nG=%mC%CY_pJ(GR%((Jcp|8uMUf|XG9cie~K zn=T6cGwUbdJ$7j^uNRZs+0-Hi)7m=;Y%e;te=-8)Xi^XaeqHUaAlJNl_*Vwd?iU~4 z{~o`Q71=xXucmJlKDGeUfZve_kraDiwS%ysNc)4sVw*}BYpV1BXy1J3{aX)Pw(3RF z`rhY1{^{ex@Bgt;9Kx*}$(~jjG~n!ScOiicbFfn5W}5D>jvT!2<{I>Sa%8vTIUWqa zVtSxP#uYLe;Q~c4ij04a?0=^6vA`Q*N2Mo*U@OikUlRfNdboV;`43#ao>Ci(RjCDQ zddqpz1NQI5c_5@BvL4X;IHmlsWhW6S(AS+3jJjJtgEi#omI}z1?sn~7olM|w@SQ-M zo*P=P5vjtyf)<$dEsMG+6at4HpaG;-C>^V@*P%h|=#{_|!Rp=VQsEL3=~6|dJd7P# zqH5&Y=+s9PSZbpJwFS|s`!w7&4K&|0ZO11?+9tF4n1ICnj%z>=Kb1{Z8fWywx8FW| z+#jr_1BBu?AXR*KH61(*eeGg8d`YnFmWK#gQGEX7n7s`|1|mgD?U~JZ)H?>mP{de_ z#>vUn`Gkx<)TtHX(_q%!jZn-8RlXQeG~T5!gc4{lTRQ&-fDH*& z0eek7Rijg{uhSUiqvmV6-gv@Y#O-UCMYiOB}GKlaDOaTCX`}y<7 z?|%2g=ZF0sbm!BC<;jmf zhRqB0X%*bWIx4&S8-x+SfEtBWyuk?%pABZT%ek`ICGjGih%+YVHC;RnpY#bV>--|g z%oFSUO4?zG_OZo0w}L~VvxWm}(Jy%Arn}Zy{u0t7TZ7h{*RjB?f(&kHey#pYlAwL1 zWPxW-nfL;$R9|Y10?n|RcC*HG-KTkx*Cq_yY__K1v)_6Y`z)x(lEZg7&4^iLHj*+U z36hee|1A~(c`|9s3s8QO@m~x<+ufAcINYM-k)P?%pp5VeUnv~hoC-+Tu;?_LA#WYz z4HzH2d)|B3`@6sE-Eej~kkjSGTB48RQ0FJogt zf6CAej)#WnTlAsezg-mtRtXlX4Tc5i0HA&rr8Z6}$Y;LB~DpWCiKimP~ z_wqV>%KEBReR_C_B3kiIjZWQ==@~*<3m+a_WsN+26VSkr8%Vq@XC43m%!k}1Eeu9N zUmx0fLI+v^AGAP1zO0`N`wivP^mMQ?LeV@w{4uy*K{wi}n9@B)Uqp0(1FxD8(3Zg$ zpP9-)>yCR&7bH-@L=0q#3Z2$K4K4!z3e`8B)jE2?y+IgJuU?F^ql0b{*p`1B3xQHn zV8l8ExI&sUJ6l-1VziV7cw_`QHrpfRW3xRHJT}`|wKVTH{rmAB=tuZ%>8fLc(aw!E z5!Nqst8Hl92EP(Hrw|azQKmv`oUp|Dmxi!>0OiLVvn81Cz-V60FRxNESslbyYt6$$ z6To9EOR0UhW+65`vQq>2bluRm!;)gjV9U-dp`ZpPiZxM>TE<(4h?08+7((}jVua+# z3C`+zb1x6fUcMLH-!y#(UB}J0zrg%)kiFBOkClpn?{?cYi|W1o{=smpuWuC7EV^|Y zA$fBT`xhl^n!&VUVm1w&;d>2|8=zFcEYwEP8i0y2J(k$C)xrGzCGtf+DW*2^uP$Q} zd3?2C$XECIA=0Pmiz9KD?`j}tnA#>-PQ%Q8A+#*iEpuk7RF|dFMhQC<7>aku+1-oF z%kcx`Qs7WJXQ%ATl^2CwX4dx=By>{m_W2$lF0$STqfn&DS2u(=0T=YfKto7mEe?X zlo6B(!2X(Ygw$=!z+lK1v;Y)wyPCDgP`h8V*Ycz2H*`=8LE3S$*P#7x=$|(c0x|ej5vsGbQPZpq8iEvy3FDZArsZ=c2i&?dWl1F z9vt_6Ve#5<>L{|^yfiL|5qL`ez}2irXeNb%CmAafzJV~Uoxu{L{!$%*+v(<8H9kS& z<8XQyIop%lq!G}EMC*r82J#yl@MIp7JXy}HbHO6#h~3ibw2O2h}o%-rn- zyoxa<1s^eC$p~%)<%OoJ1R*mb%h?7V`xo>5k8x$6qf)f+0;E?vM2=fJ1lq&-Jr*nj z0jBA;*vqJaXSZWS0&<}v54`Ww?B%C^;~79KUA+^%%%@x@zeY}k`$!oe5-<*d1|*D< zTVo?xJzBh5jgVe=vrgY=(zdKLItAvG1L4X79UW+l>k~YV0AU2&jQshYJ+fFL6V(c( zG+tp&hLQ)MndUpGXSeG}K*=jU`CG{d(KCLJLlgM#3 zhlE)pysArsWne`R3eY>H)(`qH3fFEM!CIijje!(n#)BR$w9XRpu9F)6N|LMnG{x+WtOUrZ7{81yW+ZqkS1uNsdx;V&O13Z&T!-Zf>E(4P?uO zZFjfHbSO0^P~06P(6D9wxgVwL zskSgtZ=62w2Onh4Poul-u6anSE*(-Aj~0u`>JEMT8 zxZL9r!qT)U8yT?V?c}bwl8vNDz5Mcy-arvNm&A?ydlJaEY77|QE+pS811Ug<3iuz0rlaq;k83P}k#pyPA#aMaCJs%SFCEoU|0C%BIx9`dKAXb95EH! zSNQwW-iccwxTg{~m=n!!4BL^9NaICt;$S5lSWruG$C<>$Bbw1~6W&y8C$I{kIxsf9!l3vTmpDu_!xeTug-){ zObuVPgPMlB4w!@eHDI7-Y1;jo55H9sB9c2Mp2>~Hb)SX@mngB1I%J4==zxz1ajXI% z!GOt<2iL%Rdc07Q^apnJ>#@dSBLnJuGG8^Fu^OGa0m}%Vm6pL}k@gNcm~qRUAU4)J z^(3CgsCjl0>TI`^$|wRFhkZ<`QL(!8MeQ*vN-&FsF1%fZ>Ft@c|#949_sOO zR4Y(_iR=ZEjk`{GSIkO;%tF~fJx|Wb(qLO~5-FPoq)X84Rab&BfC*#n4*JGQ(eU^P zJ%>7$qf&2w=;wWupi zrc6CKLyZW4=j=dc%ILC41C!~*HVp@_P|GnnBH{$Wj$wQyinT;gdj#+!iiDp7+&UgZ zaAQ3eRHXRT@y*q%kot5OL1(czi(5Oxpx@Du&^B;y&aT^V*0DY<9X+^cswSNeA6lB; z+{Fz}YUAa4^{VV5*M{WCxCt4Ohvr_BF12ok=ldudpyXb?Bl-yQY_r2$m}cL<{q%?R zhktqaIQj4|@8#iy&g9`#cZ+kHg7S|p1@-n*uQL0P)`Yo3p|y7_Bi6(lBD#v0EL7ly zlDtb}en4UV*E0DWQpo=YmF!J>emw&ja7`G=t-vx+IxKVLb^ln$WxPSeU7rdOyN}#r zTm3D_C-R_eFElL@mB!1__6>KA(o|4!Q_63P0fJ3o8BZhW6*(CG3vPs1g4>BxLgo}+ zRX~QA6EL!-7Nj9AfWQ3~yF=}PCQ`84qobkzgU%eN2)yV2fOWKZRp-;s_oqHO=?wzm z!x=%uICQ9ysmAp&shQ3-%{EK`r6(3B&Q1jqwcb+ALsM9y7z9^xld&jt6@&Q+XSQW7 z?HZwVx2Q&VJ0X`A^xe?r7}YM@HBj)ORRdqr*bqi(_ietAYGl?6oluuFT_%1BgM7 z+$U)O)zAL8@Jl>)Wi3^OR@*@8A4+&@uzmVDn0;WfQJ8%xi@W&Be}9f`BT#RLmAjobt4xn>{i#a zL@q#z05X}G0LXgwERCvyN_<^K*5jgK&uH}9-#O>r>q|r=K$gaAMy4V%+&v;Z+^^q# zS;8IbatvGHg)a?pl{_NkxF)xWK(_3mm;j|M|8sO`j+~Lsu^gZ`HK02QSKYRH)h>Yc z75=AEHCHUjRn3wp>yos*ILD}ELq7jxfNV1aUjjNHZ(zISP+E0pcEHLTE5JYVoR0Vn*vVo4Qu$?#8rP#a595uH;koo2kHh8I@di7YF%knx&2Ju8 zi^C8H5qT$R__!2@t9Hskd)QYm(*Q(}?8321Uv!T?OSBHmr&1Us{yHTz5ObcaDUei9 zTZ1~P03Cl}NYm2m6{GYDr^BXnb5GNx0(Avs_ZZ#oTTU&UTLUGcQ{hOIH-oLe_$@>i z1e|V@g^`btjpZ!UK|X6`gJdczIsO-sT$qO?e%4Vi*SSIm$b(Hnx4s@b$SP&rUr<7jQ|vXL5`j)$LbK^pL3F)3OI{UZe0Z1Or*J!r z>#s^4W;cOyD2YkOBPi%1QwEqJFa}iESKh&#M@MhUoKE|k@PSloB9`DxmaC?!sq7I% zX<3530a6=+yU~g#p2r)7!m{lXN6F1rbd16krXLH&YzR&50~oA>R@50)c*!&_eI9Qu z62oh{N;jYoN3igH7$(`erRP_Fjw~y9F)?elakLh$s~dMI@m?da@0pM+xs%zN;AVj5 zR->L+{?5L{Su>YJR-WieE9dBBc?;TaW&k=0vg8zz9}Uc~l;1*nE3MPsRO<4*33?GD z!GKFE_H`&ARV%+%jVttAiVM`|i{5Fu`=_odj^dB5bb3MB> zvf{%w>n(gx5hST8F)d|Bx(n3w!c^h%?&TsO01RBe zQB{!~;B#`EJE)q~@Jof;e)!Al_reFV>xWx-X08v%1;Q|^Ad~XR3>Fx=W-*$B($Pwp z1BVn>oU<*lyYk?Re=!9kw*r@DvuiHV_5HrtwtlE~6g zjlzy8PX;)W$-!r4y(BjAD~lro%_CNs%x<^N{>#tJfePy9qyac4=z$~guF!fN!}uV~ z@2Y{XOu{9}pHBRWZ9-L@{5$CgEKQ+S#*>h^3UdwBF}MSMrln}?PDjD%6+OX0nI^8o-Z%WX;LxVTw`;iE`uxqH^C8g4-oez z>+o!H_6oUmuu5)VQhw))&CMk|K%11fcy1xvcMioD#uRwejGi=gU1Z;l3zMS;2GY%q z$b(|(Yb26o!D(?_Y+#@Z8$y#!3PPI+|3b~uEJ;f!f(8nFi!!jlD_d}1HwhMHzP_N^ z`wE$$;NihUzrvnQY&!>(kd;Db=W7^Q&)2I!`s-d=M#69!};LQSm*0B=kf~O+`dBMveP3IDcP)E1r!zfqsR=X-)WQiLdMDcmpU0jdnvkr#>n#&lcI%V~P>o)(zXBuA_7PbKrAm-@ z1}w;2d>x=hbdw>&9Nd(=IiP9dL07;Jf&z|v)s;RLAs379XD}hiO=h~hfy)Yxz-coi zuLrR~{y!0fN1AJF8Ewgvqm?aCg4DV%gI4BG*6!7kTSijgx~`IjdFsnnmp3?_uzIb| zp7r>*>Of;_O_ss`2C`!#7Gg-ndY&_B9MF%_#Fmr`9P`2TKzVN8%~cNujR?-b~7SF}{WT3xzT% zt~hO{Q;{i*DgD)HIaetf2_j(s_w4eN5wG!)IO%_V_vXjmKR*Saai#0>gIfH$N#D0) zVYY5ztL^{|$IBtzWj-LbC{y=6BXXuk00I{RRt%j57#!eNyQRn8_+(OK%fJzPJX=O% z5S|!;RcbHSgX%5rDc z)UGYyJ(=ZkSfIB;EX%jZVk z$!0@&ji!R(OuCAaCvNhd*@%<$fVNdK*SO;`Sy=PHS>M0@aq{k$Uthn!my=A<`uf+8 zpWfg9c>DV2Pxk>iU}RqO-Dfn4k~rvim%dHk3#wC9r-w&#<>2QkW<T-m2 z4lFu?Bh-lZX(o{a3;qw{fS3bo{c^dUqK-6bb>Z917m1jYlpU#iP?LNM-RHHZ;VT&L z)&MOX-zBtd5s(q{g%2(`hV9I&)GJ@TrWT0ZEiTHM$U4Uf_ic#q!7J;YM| z5gEiJOfZ`mFBV910hyARbpS@i+-e$j4oPH)|2Kv;Eve@ z$~Wi}5TB}24QP_#FZ_RsYj@JYy~#eP2kf9~VwRAkY5R(M!XJzalwSPMi;#=r>)tc? z4ReDIr%2QNMKc@zhSv;#%WEc+NRRM^YsR;H<(iFt!^a%|hI>wa!#!qj{yG>4BXzi) zebJ6WQvcd@LmjiA`_5^=Nmu8vfxA zytqRp(Nr=|c1-}J%W{YlLpQ7{{M54vJQMK`IP!*Z9=W8jyo^$(67gCId~Dgt6!0ai zolZ{_SG3z2dXfWpy^&TE5UDsM6TqNa<88?3ng9;y@Fcq~k>>_U0@eL+B)9wJ(ZkuJ z)EOhgdk25#6{62{37-N`ek?C}j#gMr-KXWv{D634H?kTpu*ba0K%mSFL|BkaUM4w%!!UhbwBk(8fQ9Phj(aJ1z7HU~=Jl z-#hr$SfA8}lx#azYQjR8+tZXa6Z}N`=`4G+2*Me2Y_;iw!4-vvU9(E zWY{Uo@aAsAOcKeU!or4*#;9VUDr`DS2EG!7mEHR4q-k_po3BpMtYOaeg*jPBhg_dc zE*t8RL&8{m69>rU!P!5lZVb?Lb{-rETm&ZwTKgBMzi@nbbo5M$TxJhIIq~)3Zu1wE zf8YJ}{)dn6-hYU#bun?@D18Ynh&&pzYjgYc--18!^ZWRGwWmkmOhfy2Geu|;pO`Q8 zpld{d5(YpBB@XhM%6zE4yty}p+d%0B5x4nC3r(?c)FXz2oQ9y z*`Y5GFKCJT6aY{y5wst3Z%9<>q=1%Xt#Z_6DD0@XAp8m}zmxjA^-90>rwE{wsabSs}882?eQxFw@j;~M0088SQQ~SB;zDoCp zY=1>g*4= z;7+7;tdQ~HFKya#s@H)MNlcK#WB|c?00rrAMNYA9X#xz8E^IbwJ^=<@ap{H)oeBbJ zn~INUdukG~sTy*g05?zM27ft4cF;0+2l_zN)=N%7Q05pL;Rbo6M+%cuv=AIX6iE(6 z`VK#zAP1@G#oe{3nK4`7p8B+J+;P`xo?1XjWFxM6G&X(NA^2z%;>cg-4f-;t8uXfw z@sR~?g|f&hnW#Y3&&?{7KGbnG86!T4+Zrk#87>MoN%N6*h58=;7_f4o-UGF=3j<}T z4G?w(W|UDGRV;#0{@UHR)1}0nkEJZ)CU`uc>&s4U->8I?fpTMPfJiuv|C5W-9YFTq zy5Y-R2CDmBTve9^0@JCGjj<09Exv&_G*jk-`Qg zOwOyxAbPm$2UW!aHCpgcF7FL=k#o~U9*=MxE(APsw2SH7`ibr0TaB^G2R67YXt}r}(2Q$6`3Rt!VjT!d=}qhs>0E_@LCBi3QD3irH#F7q)_okOiZa z;X+YYWkrO#M++{&iEc>}sq0WDIsel%>jZ=l2Dl>3K>-a%;q%|)H&goZw|vBTE$BJW zuO|^1hN7g7gh+|BsGdY(hrCwhHFH|gsRbV}JsX=+AksjW9SK}y0WFHYk$=nb2qQAw zNtH>|z=PU6hzkvVh|i;L$o1K7ixgi*O2FI{?NHCcqrw93isoW?b9}tOIs66>69qDI zh8H_bFxG~3pem8!;gKW}<2BqX=35=p$C|rn8(F-m_$Im?Hud+|0dIytGBccIi6=kt(HET-ZAD4a)$6l|#C^2T}lu=@Mwz(!G$sA|AMRW`o)t4 z5`JIH;Q2KaSNu^#1Q7L(7_1KeViv|y)bwGmyn+zx z!VLtUHH>QbBZWuEgpFoxc&YYH#>zZ{$@UN$0*~+yLY98TRKvz>J4c)}%+zYMN^{;V39{ zBw&w<5}H&N=e;B3w;{*R;Hrjy}Hs{i6M3F4!W?$iJys@RXV#AD^`PE=MceNAYn$wHvOdP zJ`FcG!@o%CxZ2X^%Rvvj?hPqSdNQ6|Agm5qpRe!6NZ+OHvd=+!iUOfbpXqG3h}+Go zcLMj=m-u@hnte>23wM;PIFTZ zktvn64IW(ZY;VN(lwrBYt+3o9GJ*O!h^UNuC~OouBt>v(GaS0z?`Q-t)#Nn_3f0l8 zQ=2v1&fTNlj2l*1^k#CcN|crlxMj4(XS7Vi(wesq#H`lrT>agMler=<>F(3A-EA`{M z1R%F?sR5EW;6D;<><4CAcEbRMxI?7LQ&N@gArO*G?f=-Q$Sv|k4+~A{gAbKx@g;A! zfnPF#@{wr{*g6j{OUiNVUQ6{&`LL@Qi%MXq%hyEZiZ8w)`?IuP-1&y=nel};MCPL} zp3NB7MV68xAet6KwD2s)N~Oxu6*qXxU8CY2A6^9Y(7SgC!l6= z1)WTCqem{{FzCSYg{)%Zx37PG_tX5%&mZsK?aNnG+b29a29B| z(LB-#U{FRBOkl<*Hf16p#Iz~>HPYf(RAJ{3r+VN4hNC^J-s*Fzq(g3^)N~ErL1o2( z5yA(KJoo=dg+j}YG8Z7^uHPHJ@VcFqa0b>nyeuDoK$movd2dOf#($M&pu;<8tc&P_ zmWg?N62Xil2*zHb$!wc+Mz{zuG1yr$E{xMcI-Tsq3ME5BfJqe7rA)bD!j$hEEA+Tc zITu!`W3x>8Ea7JZ%@y^5OgWY92U5J1o!Vx9zeNXv8DPMaznk2OsHa;?`bJCRN=HGu z$|7~oX;WC3L|FW8eNI5!px!&6aH#e5yj>2c)c{S7yga1OhP_N@E=vEFc)XXd(L=G=2uxMbQ>F>dP zg(HgGZy*Fsr+p7yP^Ifa1G+gW^`RRDo|)?n9(HvDUon_*YtCAZIYn>UMOjxEI^W}- zrYmg|*?BMU8|hZ)jRbUcc{#VJKC_>_4By=NyZZJRxri@W*Ih#T;9+GA<@k;v$+iU< z0~IjblEn*64*&pF9wfY(Ck!vZw(ir{BH7LL4VHR615P{m<@Nvj`(NI?B?spnJJzQr z4g6itTOg{!5nl#2jX2=FTngZDq~4$Ie*O6V$2Wie^X?-GRJvLM?x&Np z^KC4h0#LZ5t~~a{dop#IrK=Ku(Oojv=B7{Obm;xyTtL_T<>WbAp?uCN1Z*V~5>ZJD zA6SnJnF_i!W*dr>h?aQ>84)>2>Irc0^ar+VQ}j#A|Bx*k;jRn@-m5w2=*1ecx(yxh zi@LBn!&a*Ws719}%yFb{6C4z=6N)!6z~o9#>~4`40iG8bUb0*hIt zs}+%Pef+z}=yMwgeh3l;?C+TeTAjMZF>gm!T=!T|Hvc_wi7`Z5SI-OBbM)BUV~i$Z zsya*SPNO4uuU>T}{A<(Y*5v|yL!>+h9OBwe>>dg;_Jja|Q#+z3D!=6&Eptb&KVanj4@{z=rgnsuY` zIl05Yrt-p=Q|7iu(y_qM7|lo9NvUR&m8UgWvMUHW(aKqTRWNa^B5`>(o;=^M z$_M?mh_OK~pErwF)_vMu)$e9(_jW?xsr$Dd8(`frKsRDbNr}(kK7-6Zi%SGY012M0 zpWAQq&uTRM0jh@2zzU8WBNE%AH0^SvRTGi4GLyDi$jj4G>#tkJY{I(ZWd7vaC?hC>3s`!_g#A1NnBQl&5@hAU#BMq#|2 z9BY_mm<4GqCRXX8$=V|CZB>X0^8vcR=Lf;fwLGwIsgj3VAjlUoE}DPg1ky|~kdGd{ zP5oRxphD{MPr#j(cY*}HZu>*COPed!RsIQPk*t5 zl#(-3bBYCY+TQ5Z9YhP*mQou$7&Xe<=>Z1?23WP_59 zHo7!CJ9Ob;G~58m)-UNAk>2F4XGcb_QM)JMi`1jBcBGY83zCVdNQ1_@t)ST~uoR-2 ztwG*-Zh)7EA$x-V^K}Vv&Lbl|xq;`zRamiEKVYM4H|i}$%fKA3=l$!MJH*AMM%0X$ zC6Hm}0G4ssn_=eY3z)C3OD@B`qf#EqovYP}q2~fS7hPKKh$am#8a6ql#R+=|A1B_j zY<4pRg)Q(fFl`D>)1{V!E6KcP^$x03LT4TsffQ~-Z_)PMU(-koM{T4Qob;dRtGAydreZw zv*gCEXR|1PBJ-PSce7@96EyBSdOxE zcNio2-42RvpukoUQ9x{4>n^fl8uKn-=00D@L`70uE)^JA_TQI)% z1>&kVcVY?}cX=oeGW#gip+Aj0ZiNcy?_kGpcXpalJxr!Eh$$V5%Wlx*Fr~pC5;fssVt$q zAZ1mTzJ$o3u5@81oc?{8v#&?!M(*qEuTYI_-hF!i!~Jgi{>@K6-M=Sx+sP#F*wTG+ zU8Rl;YwMTWi^c+*hCTZ9c%1<#d(45n-jBLZ!vU(ObbSZL72NV2Wqd9*%~55>PKP!uIsSTxl5RJW%ELcjOwSLn0L&vyXCVf9itHG=i1a4Y&_8Oge z1;Zr|N$Tq**ZLN{x+RHNCw0!JxHXBxE{QdU=@|qUR2{+wP5ReetXk2j8;EeNt{x(5 zQQ8)$BE2tk>+K=Bbq|8X$I^#7<>W|vt(^I;gegXK`@*wfcM1LGRlD3SaP;GId!;hkTi*RFmo zsLff&@s?#>c?eUjSxjJCKsr0W{Z6wQbfg#pHMgP=52h<6;I;=m`S9`e$4?(DKovoI z57KjHEo;*AXp`Z~mw%rRYFBr~1wdSYg~e7^E_B(CZGfZeUTmlGVoRXw*5R}BtI3V{ ziPlIhc!~Kkr{lixjZWRb<3+X8r}rN|qGs+-AO8ZY+xGqIw;%p||NeuJHM?&h4P4Hy z&w-iI4Uu&-M^X;yRs%QUNzCj6H{TI*z!|FwaB+{%#)q`JH5s9u!h3}&mK!FYsyE*R z<{55(SlC(`f@`myNh#C38W8T)Xc>rHvcw%ib|J74=&5QT9x1fqFNzJ*6KZ=G)Z4mK zXUM(|=b5TaS7`Ya*P%716P%{Ttk7h`vWJ7uylBwFAP@_q@Ef7e2!YxPb;K3a7=Jf8 zamXSV2k8!~Y}PMTCIce46zNIp5jQhdg&KBqU1IfHWZ8fhp_fY>{mZk_;qlS&=;(CR zAB>KVM)%(i2cyg2H>uI6c=M9qtg_Sv!&x;3$5}N7%ULykL6SRSDtBYp+?>r(LZ{K7 zC6(TTI<5tO4M8`9g4i)^_X`rCZGyH2nSheErh{ke9#OCiQis>?%lw2o^)it;&Jk2j zj<=0Dw)=IPz$}AMO62O4vDK}cSa1;8NiLz}TCL|r1uaJ`?S9=RbRV_DVasn^YpG3U zqUmkbT;-}u4!Q7b;0A<`u!LF@PjzI;Hvio0aj7DIK(h&FjGlmaOaFsx?^b*g` z$iwHw5`Iw~HbX!Nz9Uyww)h0C7P+d{4*q2@I66ETo*tdz&)~36G|XD$6ks^3-Np9E z)KaMaM|(-ZT3bSeV6=zgvy(%n)C?n^9!2d?bb#K!oB=yR1%fQyc7B_Eq<85+HPX6@ zx`%;i-yp$*@RC?A4c7YO=_)?^&)N> zVU_<=@FVlEGqwaJGEo?Vk#@}%9gGqris*84tLYY!i2RD4N45>qmQWQD z<8_yo$)G89te@}xc&WGR5xO+4(T_^EqRNDR1@Yv#C#0pG9Kj3Jkir#gfV$Rl`tAsc zF#lOu2-~ln;ZLz>i1clG_9D z1Riu)JMzJ8%7f+5>xQAyOt!~5BuGux30I}qQ`nUvsk>@9@;2SCRPvH-mI^kY5=}hH~f6_TAhK-${RI6LS+_`=gx492b#scrS5b%Cs2lJ z>u94un#SuMTgY-n!`vieBT>lKRH`I!35^8UWJp$Imbd@)>;3fp&qzit-kFZvBnYJ~ zz0Sm-3@tpsq&i$I#U8>X4rLVJ#6Rt2ODX2W%)kry*kJZOWXFr-GGr*s7r`(c5uMmc z_jDLUNE&k^q}hmn^U^i;J0TP+UBi=v$0V}?tV6d_Tzgzmw|yakj*@`JJdo>)ET2VQ zNEhL<%!-=UoI&ZsSaxd50LKVSW~StwMQLxRXRi)qfmT$P|AMrJVR-~l;%xRk0>2d3 zwQmrDbs@#kqm4OsSg3@Vn7P;o141&PNKADpg%l8$`!rXsU#aP$H2}#oOykLO+E$v` zH_|k^Mil${vZqh5-$FLQg|digp{6ZiHnNW&gnQeB&VUzKvgxaIE?hPt>ZrOk0TPIZ zq7eGZjg?q6m0cm`=Z~I984w)lbTn$}Ts>yPTrjtPh0CiR%|Or_)eW3R4XBunr_*3W z-=bhA$auMz=R?_9oXv1-=;94a7!vJr8s5Z-7i=nW#*t5iA(U?CiFqxfSX86uoB!zj z9RqBvK~hzEz%4Sy`hWx~Ix?rkVh*f|+wi)$qrhfe>_!@+g~K<5byS(a;!fZ1R<~}- zY?x>6DMX7x2Z^<}EEU|^q-?j1wj0HO31sgU*dY940326>10IVGgMQ{DbJkjz^KEXf z1WfU-^lsvQG4)`@CfdNq;$U^V#lecRS&w$NXX}l^s+eev7n*Bc8N6)po7q#|thI5= z84`rgu>DOlL9e65-Y?v2z8*G%H86pT@uWWorXgD_mj%QF0 zB2&MyYH_6nz&((Akhum7&*;jJE%FArs;BPN6m)b$uW?$dHQ=xcfrt6-bJ0m8#)8Qn zx6;!XHC7@06K!H*$iuZ>UPAoTCFveH;52=x69669%F;v>8jHMf-2*~_iK4X#96U`A z?SrZk7x*!(sEL?Sxr+I#-&ng%|e?7&u=l`zf>~ z#-Z!#$mL0LB;b+vtAW(19WV)wNMGzpuW_wC$V#)-xzr-1#iG?|umxHHKaJ@c5mUPh z2q5~T@S2*gZ%H4IBY3SNNsEP{7#YP-q`iRsl_J;B@;*fVTh^@tD`3eUszz8C1d!&z z(#*C{b!o~O3POM>8Q>ObOLAIbe?xA=?P7k5%^1T?ol8lU#gBt8Gh?+zAWxF;V6YnSD|cA8~e@wAset+U_q@IXOlIyeZ!o8=1rGhlsK z>d>a`$kE z=Nszai@#c+?hBNvn2MRs^A3sJP_VJh1KcSW4UpHe7wNrwAAkAv{ryil+SRBnKoYD@ zk!*oia_)sF_V0dE??1Am(-+-#a}5r9dSI_C17uAVSu*{*EeI_tQl#xGIa-nw>rS2m zXPyRIwMOz1V5J`?pUyQlSPR~2j78@CReNB|5jnSB`Py=1SRxQ#_`mK^%D)D_E7i+XbNd7!U>5iDxD!eQ$^$9o=G=_ zKD%YO({V)b+*vc1cgFz1{pPM>6%&sgU3Q=4I4Y#a>*8$a-e}k^ymYuJ}4_rT#=X`2RYwY1tJx7 zYq%4L?75rXXbbG8R;t2V$2Hy(jVseM!4!pnZ@6_3SWDklxB&1K@aVv{j4zwcAa$P> zn<$P}hXMb^{*)|0vrjh|ePbRkRCe1sUlEu36ed!{XagYJzBPcFX@{G(fAj!^A3~bEtQ&7 z+@*ds_++HDb3b_zLuWZ^UOJD_i@`D=lOfbdf1AjAa$RrF}A^9c&9a4w(^T~t@FZh!OzAtH>$+Y_IQ z72x}oEEb0zV#o6Gh89BwMzKq3p*Z5xJpnSrvr~;)$R<#I z9l_^AWMgxdiH01oDx$$5G!}@)0|N0S?WQ)$II2;Gg%Xwo$nqvpr$urkZGr^9lFldP zp5-=rP{mgb$@!yc32U04IE@uJN9)s`mrchKxnqDKJAN`;OH495%nLNOH7vYN@aUwQ z<5S&jQ_u9@TCHRT*}hz$NSWPbj-=rLk24C`en{^D8LrTK_!SwT{*ky7#y;XmDUi|U zg|lN6N1vR0yo?JpH_t)_AsP7gyM0+=f!>8jR8JmB*pQ_{SSLA}HhQ(x30W!!u&llM zrDfv+aILL6FyOtWCeuRn@-?dy-+Mf>`r_S3$8WF_($w!RHh```U-d*_B_`9F4U*pmNa z=Z3sh|GVdAW{Q3A_z%EqANT&FAGa6am}2Fzhws1ny2+Hz$DAa6rO+}j(L5`I46bqU~R2*pg?j_naL`#z= zXH(|X++Kn6WqOBvzPhqx=sp}TNg1>VTx|E}(6T zH+BYAAS#Y_QQK#QQxeIpCez*YevAzNf4yJd|MKqR{oU*Ty#MrTuhIGXW7VxsBB7w* zg#ANsD}FVm$M0&7(F`TGA=(5A@A>+ivGi_k@srl-*Ihwonds;w$(OnkNJT%S%n6hY z@l0E+MyDRAkE9%n9Kx*pw^+Zpc>NaMZtv~;@7AC*?M~*as>xKP;sgcdyR@KFfL2i0p_u_2xB!^D^TBn>Xl_Q=f*D4iLQ{5l}M*vg*>{ zjMn(1e;DQBA(fw5emt~O0F?R-;lk0)pzOiw_8@x;mY*CUBO768gwNa#}~EEVy6eOKY;Yuzah40mpU>uQ)Qd$gj>d_nWo#Oi1uD_&j>;8~p3 zCVeXu3OHGEgfJhz#HhJTpKjM0WSy#5=gc@`GVtm*Malef0iS}(KNmVN9t|Ggj$U_8 z!`I@>LkHP2Z-sQ7mXpbqZkekOjsWJbS+!^!C+j%?sseXR3XuF zAapX8INMi*9O@>GG`xb*a4%veCC7$Ia%g7xi$q;kTgq!pje=z)L%Bf?JAf)(8g@s_ zX#(XvK}qn&4la7c@}x#mdW|xGgPtCNv^DIsx&=TugfgD)cPc9$BRIvO{Ap(Xs7tCd-53rnn+?<>Bi9Q$LpR8>C}fO z1D{giS0?pU_|nDv8r4~@#|B}(BJEzSi_9lXgpU-m;OP3N!#Potp#diW0U7xVy1ES> zynZ&*^+j4!OWlXGrb&qjOEVH&v!oe+!CvD6f8DNC6GinWgf|6a&tYF2!;PxY^A<>~ z*`<9c4P@Fdrh()pF{9}PWJfhhpcNhmVBrviQAG*11hgQq)Pcjvs=m~8`8);615Hp7 zZ^(hC5f0>q%Pvglz5@D{0Ei_uBl90Ula%*Q5^$9ikj<_0*PS^uthRpMv89~0mK7oj zg+-_iSPIU6ilr$pzsX#U$-Rh^%qCL?E?^y9sBXqUA~S+yxvtuOhezjt5=1WC>jWgt5geIqYx-5tYu&hNAS-l?>T=FPwnIXOD#kxPhdla-Y zL-fQ}NhhmjwkkcPwL;K>&ToJV!@~-5FxiCEsWnJ%BU4VM2{pk6tP>{0pz@Lq&&dnp z(2}uxF7|eBF?p^6`7SHJY1kax`Et45n+cG?_IpFdjRfq_Xw|@I~ z?9JBVY`~r%D8pcC8Xg7kq`U$aDYOVc1@xrsaUac~=PibM+9v@~A}Pz_l)AMX%$7VwJRfNMZu99+1j4k8SVQyLC_TEy zJ;HC*!W)cuWi22ObY(aYGAO(C_6uef9{>E)yUqR2R^kyU0>*>E2)YmUT%IohWJu!3 zy|SJf%X)l5k|`dDVF=*@CLUrlB#k6}+Fq=|7@GhL&pHC$70Rz5FVW@rmPsAle+z5| zj)lBAyhQ`#&;hk^YuwWuzQF{G#1Kz=|5rIO?k@*&9IU?o_UO24IBGq`?npP_2iiR~ z;!3+xX&#=hmR2z#X&%_3ag^yYn0?l?~72=Tux%TgDTPqSAm|Mdvd4 zclvF9In5UAo882aKYH@J@~m-Vb69v3JTfdC2Ob%A3Z0yNBSjMJH$xiSg~ps^l;h)k zwssQ1fp_EQGkB?KykQlu>=k$JNSO*WgcYok9(AaCOw*c$K2yB%M*LE_QH9Q3OAU*Z zD6Wl1JQss6zzyv@=*l5At_)NZO$?aWGP0Uli&pAmX-;ToEQbgPtOuU27kD?cJym#e zZqtjzf29-vJebm1v9GX5?Hi@n0n;Wotnm!${+n&@8Qtw^K32Jjuw4XdVabUG3S6He z45876CTvOVg=)L!TPx~SIk8%|D6=da;7~lfoB0jvj>!T!Pt{G;fE5>Fg$p<(gRk44 zRjTZ_h4wNg5PLU}k?9Xf7tNK-0+_mV91l3ycJ@0I@~ovQ@d=^s5FRHcTTZhX(e4Ti zi`-S~-Z$v;fmTX9Uy>OA^6B%$k^*i#BbCn{im$uzDt(My3R1)qczDvVGecqoFR|Cw zhbuxG2gDXIOo+CLMZ$Aw`mjPOe|)jLotuwVAx5ax4b#*Q_EBe;bHE);U6ELu$t_8}BMUf5qE3OF8O*O4Q$Q4<^*}}5DjPL&|7X%pT4JERW=RFo zvhrH*5j4WyvNJ2~-1x_$L8Ejk$c+Lx@o%yzxD!IFTT9QC!ha+DV}U;-EnXGkGXSV5 zn{Ky`rrBj&A%)GWjY+kVJaLhynR%MSO3ZGYY+0&J_(NuD;4nC7GDD#jplZ>hGefyK zd!Ay#0SLVG5#VDG!v>qn-8J}yNHPAD+7Bf5FwPAxnqPSpE@ky)R0~fm)w2DjWFob0 z(W`YO3xO9S-AH6;#7|8ja3tw~v^Qh?(g&g1IAz-0s_{ujzqvj~r%%f?XQAr{H8Clx za?uAdYFe=Ohg0zpW_mEXNjNlB!*ju;|9-;uiTedxBKaYmcyp*|S7%X!42!ay3la*t z;Y_$2$fUq?ALk4xFsHUKKbj;oDs4F;Ebp3m|H*Y1o!T1vK5hg3Lo4%1$BOx$BpJeX z2zO$qJh99WfMlRoxIn03=splyG`g37jWWi~D%XS=lYubxEpM{RH}6(5`H;Q%bG|a~nV} z4}Y?}V)Wwryt!QBjPPG{IscJ`*Y*(2ChdSFYpL0mMrXPKTD2Rbd@%JJawr$>NYcoi z29rr(;-&zFHpzG=NSWq8!IWLv6YLCXMmQ=}s#e+l5u^d#BXYJK{P48*gK#ZLjmqrd zE)fzOMzt|R_iT&IGnN{;*=EThQBY+$N8&%61^u(@ol5rwBna7eH84*-ccT+05*=D6 za&?P222WT#?zq>uw*5>@!}=xS9bI%GW(~zVT>+rg!V^7b85aP|Z#&V2@$S`Lq+EU0 zXSRTpyK7hx7(Tb?(kF<#@^o(QYNc=0p`nG#8D!wu<^s-g8%5q?@$QT(AvM3)M#4W{ zU2fs6CRRQS(9Z&JUCq$w)Vs(R-)>PY4J9a$pd#I2Q9GupX^zp2lw=quBRmj4z*2Rz zYJ0Q^u;4+aY`HGfeQCMq9YRRO$ARzWFWWn6mq1BGEMbtmh;{^q8yPpWnAvR*bmL~k zY+J8!+kjTZa3N_re=?Z^7&_!O6bXWR4dUPDsIs};>t0h1(98|<(=Ei-8@5=4uoHYB z1}1dtqhMP}BOMdhQlOxNvtkLV=_}-RYPD#2339bJkO*qsq>=V!2Hb0YlvrIjZ zrccy`8V=hpuS$dJH|RJgL=C#db}VwrUEq4Z3ZIw5464YaOH@F{e0QrSh6)(e zWJw3hAa_jLCik*TmI~;8yG#{atqSiV$f$*Q`y*oB#r0ylVA#(JO9J`ihyUEZ`_-bX zF)`&jWcg0a-lBiCs4hPDn_fnZPJOZv=6)7_Ffmp?t4UIUw8f;Zk5*oLc{D>)cx}RQ zaC=4WpNITjnb#Spq*=kqso9C|W3yY|5{M704j#6<_)hfc2C?Ezw+hxsDmuW+$-x56 zPYfjJx&ghF5)zm8vvzOs5-QQ~sBKhWbJH^$(g{jPd$b>)kGR*_6BDjdk*9{}hbth* zXZi_UMU`Fp3MoCx^Y!le?3F=Ft!oAtlu7GNchIHjF^rg1J&qxHKYzlw3N1XYm?Fiz z423dUt)l8>%6S3>?%OHp@1%cjmJ$yuO<_k)qh%>ceOi$~$>Zxe4x{vZ6jHPVHb;6L&wupdHUeKFl0B4X`Kyv(f2cG{&VF4V=o;NdAMrm#82 z*1VErvhy1#0UTRA#UA+?d7d(eK{{`mUi>(f8I`S{^U zC>J0F-Y`3odzCqV2cyLlq0Go8C3Y_^g-r0h;0sM}Xd-a$Ky9L>zmtX=dB+j`pIord zF5!X4d_oGLbWGOn)gluUiXCJ@=z8a>E)8w~xCi-IZZh&~tf+cJC?vCGsZO22+SB`l ze%3d?Cfi#pZvCW+TSw>w&JJwDG{BC}XPd%NqG%0Ui;HV%cjJc+U%oKwNtjle?O{u4 zwntQEvptL|&30N*gi+m7%7T_xaizUB^o@;}T`o%%DX!GtEKrY1n$3)qXGWXPwcYx6 zvYbKS!TuRm=dMy|44{JjyrTb&E^WExfFA8}DZ?FL{t8uQR`Q;eUw{jJ0KvdAgUXG8 z`J_a(8*MZ}@I<%We+zKx9?&3x^Hl#M__-jl9nn$j6)eQn9F5Kf%7Bofv6zP#g9=}%>sl$OYp&4 zR8)*Mzrm?JL{c@fc%lsxvgFV3j6$V{*~=A`LWidy7Os=M!$G{Nm9mOSsSUORKf(hm zOmqGcB^=KdyIYiZfV~?It^Ly{U5QYS`h(~2Dk>;85{prcxOwqn=e{3@VJD|z4BRm4 zOxO6uot1L8wt_mR)s&UqCeLTr{a)i*V3f$!2s;TIN2Y4-|3l@RGR{6NbBieV=%_LA zL!21f-jsb0P(37TgK8T+>vD#s8WE!NFpJJ1ixy3qug*OpD~588qz0df3M{u0b;VhP z=bBtT*O^E@Eeugp0Q z$r^uYnsnAHg-1oFBML%#feL)-0-TE;tTzu~(Nd0WIIucvfz)BpU-o?g{Yr~VM}%<3 z=Mh0^JezLHTjpB-=+tye<~C<(pw`B+G`Mn#d1he$u>zkAy7K>#-Ws-s-z%duU-jxs zO>GB_;RW*j(W^D-GL7~ZU%Yor(6QAGq?+Y5Q9AsA!eRi9Bg_L~m@KZ{B_LXYT2=Qn z#*D;lTDf$Iy-*!2tccTS(e%;84HT zMsYT16u}TQ;cU^Qx0*~waA>Ug1cUz6X*1QvSGIux3lfSsora#w<(Te( ztAbp@1BYwITj~4@HiA0d_~yax5?R3PRHXE3<2kIX;9u%gbBC4D7tgCgmpZh7S>sUbDI4USv*JsOPCtYAd|Enku7w~?fbLeGsa%_eh{J9} z1ezfTyd}F2HUnuF0Urw0Em?!k0r^y_<>On{1boGHsZNGWl)>aSU^`OFqy>at+sVfX3^(DI5>>+|EDEN@jX zR%e7(1h!Tq!)E>0S*_fTa$E^t_=fjgz{ICrn7*b={Q!ul259Yh;GtoC zm2z>u5!31d9$OPOvq-)b&G7MUmWhm>V#D~Y|UZ$ zrNgmMIh}EqQnnxP`6AOTX^<>Gk@UEjIFznyq;I;MLMFuBsH+j*r+}IM zW4Y5i2GC)U$lAUu>Zrztxf8ZrsVnaop0{tmql?7edaBYOSt&;a*!BPAJyhhior2uH!UH&Ofyb!^%^~0BYhVLs@UgY>roxV%AGnAxe6x_ z-ft#Ml4d;caz$NcA2{6nrXhZ~19b@Y`4Yso>lWntK#JyMEqr{uDVo0G2B;vuVl-S) zpiSUWE~NND6W_G^wR2SYA!rF`?Pkk#{L%rI4Z@D1C{Y2Z8EVw%)MItH3*+7BLF1j< zzqQz4bD<68Pujc{w^eGK?#8zs#Uh)UvD$^w$@?`4Y&pIf|52&8T|As^(g#l_UBh}V z!n)BgUH!o*iHpQXwhbnZO&1Vg95K=9HN-+5*=Dt{y3ghg>l7wWi#xeLSHDB2Mqtn z17Xy^t4j;xY8)e^$IXlBIE6S3I`V>m=X1`!v zSSEW~ha;v+L%Y=mk%du2d53gxg;me;4sh;;F9dBu;ODOBA-3IIxh*d{Jrgg{iU1Ca z>@}!|T?ILz!wHzZ#rzdyqH{}cDC2@rrpnIndzts$13poa8dHSA4jLrU`fOB?n&d1{ z484JbGm(-}(FUVas!OC0OKE*O251>=!v_8;+JZv0ldhvb14VtWrfD0gZYR@S0ZD^50C(*kpewYB1HKF>> zKc{QW%|UpWSRhq}X&Sg;Syve_?B#Ex-Xd!bD12+O~k9(Bd! zqxlI6rtYq8=j%h1PTk#q{^9=D-N*N@fBp5%+n==auz`pYvAnDkwQH0xgQ2TB+dLpZ zdQ{WV>AvcNRvbE1Fxfc2y#nU~W3?1@8UI>uvG(MuZcD4mkI0wd@x0(+vP?yynI-vMYHo(jC_DGG^C07Es$BP#28hFzE=Ktz&qK z0IqWvkSBUbgq*M9oNVq8c1%~XXT1YII=P9*+U=x_?!hckv#Vmg;2&-$*r;?e|B=U{ zt#N&`f{@_5_2$n9Ov6xheB&Goj7i9vHHl0az5mgpj~uY(fu4-I2vA%8-UstHhc9N> zkN?^0e(u5FZBFsz{g38@J0{k8fL`W&3&?>5pZL~s4xF>m@$#2+E`n46S<$5Cz)gx{;$FY-i69NbYv-?~e!={`{|ew-WC zJi?tGXEUS##dLw*-HYzB54&N*jgDcT;Cl#5pwAau#@Syi=Gz_Y1x~zK;nmtSVh3;b zJbCO4JQ_?HX$Ym8PPPqhypuH2Ji~22J=e;h>4u{X&7BT1z)f=HMr}$s(n7t#lDvth zRQfiYF(|mcpBV%q!d3sn2h$EzrQ-lx6z5ME9og z2Dm|ee#>eF%?5oIAcR0#G4v5a0xAbw_U36c!aC24cN_)a7&N;kV& zpMnq$6d1lqvI<0lJ|n}uIF#R{|3Z8uxx@y~i03`1|9beY2iP3R2WB8DRC$?cxjdUX zbTaQ>0ZkUBMxG8Ul~RpKZUnQ!?~h7Q@Yxl3Tk>I$5^1xL3ihHWJPHCt51Ly*BJZ4*G54g$Tp#el{s?0R-JULljxa{Y>0 zf$i){XdEcNV1#Y#x8Gsh`fBz2;1BFld6{VL+}Do$_dw8&j1Y&6;LKfbkPTPsmx5{P z8XEW|S+B|=`i6$gyoUOrm2!b?ONa;=*0Uy_#RO7@ zx$aS#18EfSNMw?O#+GrXKyy$Fpgt;>*-Aq?4oR0eBiOg!asR#8hk*icYLe8*gu|_a zmKv7-eV}=3#Q{D=Z53+*+=?Co4PQzbX5=wl3I%Hcfeo>=V5fkF@IyF)+*;Y_ z2;0vcZ534tl#;u2_PaSG7dU@8U(A;XCRif(MvCqaWCqv#8#kaanHIi;@j?3ZUfpn1u#So)8DCD2NCT;7@g>Xg)NCJ_%yLZ8!w?l4|3r85 z7*LD=(XXRQ(4gsru4h#-S9yibHuAm$<*Ye8tyb=|#V49$#LXETE&{pw`mbL=aSYeJ7j|+a zz#x$?t2CKq!sF!xL1nL=%*k2s;!P!@mF+gr z&efldPOXkXFNgq?WT1v85h;@z1ZQ{;y{7R0v>6GXq%J)#n-9k8HL}Xb4ZcIIZr$W~ zbz{Nt!J_!3Ccvo^v9GUTT%htd`J&YcbCO~>_lJau9fI;fC-B zqONrGxT+)%(-ah{?9K!|J8%LY8A*(F#agVH%Cc|-cL443lW^~5v8`U5tZ^$r!$I|*;Uv#AQLB&R0KxoiZ`(B zmA4|ZNFl()VL>Zzlm^+&m|>>4uxT1-QWa1ZG#TzIXi_m`6oG*n<;wtcbH+^cOOGCK zo5FH!(pa%#tp(FWkRp(p8n_bzodS1j?J2+jGvVKGKrdT#9}hol%uuSjfXYKEvTsBm z>7=h)$g171y>*niK4<#q^XoH+DCRE}vSHT%-Kp6Y9uN;^B{WIcwF!6=fM;KLw|z!iR?!3k5=KOc4KpNsyqoj0K0UQ2zL z68Bg9tWB8JyyO-M{XXDQQUJ5=3nO+8(V97Jh^!WFBC;afMU7~{f)Kn?f-WYbdF8^^ z=+c8Feam$O4p>*K;T6=K6uGM=t(&$Db`UXgn0JGPYub2#%K%&zvGqcv&OkM~G#l<8 zLM|kA@Z^#$?r76|gj`$*8)ST*LVK>47$HiCNB0KD$m;B=?vOGJN?FJ+BprJQt-?@_Z4L zJvqwH4Zf&ifVdB>n~rf)!$%Ef!o$xn1L#x}XiD!jATwZZW)=L*{2}>5SwO%eBiG0K zHy`hJn_pkQzaPK9f32*PT^+mAKS@92NdYIQhDp{nk_7TvXQglEyAS#LsifWEqAA@wenAqiSJHD=aU25RyxUQn%SbMnlEB~wyl;+C{P zOGhfwi~&$mZfM%h;tJ)%;<9)iMT4x+G8EroG&F%T@2$j9rnZ&%Sv*h7cnHyt<(Gn* zO%Ez87T{SvEe$j}1y6c%I6=E8kS>L$%yDXZ zwq3y|>yLNt3Ye}n#`U6>=MZ2_RHXEd_!esv3$&yLOR3eACoMQJ7+XTKC_fcvN!*-K z@G!zINqYsQ(qvh)JW#DtvkqPpSx6dRUv$_>B1Z*dOuy0`D5aNCh}^I7G^NUUn4ZNO zAXxDF4LfS1Tek@-k1yxcLPF7_zn;M-kVN+o-JLm{D`eww#n0{r4ujXz1rxI&(Th{{q-Ps1r0a!oy&g`(BK-^VGY_Xor zuJGraKnvIz*oPN+pMwL;wv*ij{b{Ds+Ho^EXmYeDvi{>jQ;QSNErD6GzSM|du07MV zOK>^!G&KQS8;E1Dd+T7+0T;g!Rev*wWeap+clPGv^`~F{gyO@w33r%xY15H3>Hgfo z$7PuCGZkEznv%tQG686Vr)_*|gh7m(l9jkWDH|+nJeeK~zjc#PhWKU|$UODZR9f83 zHdo0WV3)T4%s^Tn?n4TGg3P(Y!TIR(XT69MfW@2WP(Ib5AeO(Q zi4E&s!LPPDB{%i#Ciz;+DNdp={6QX+j-Q#Z_&=QI{Kc3|TKUH*dc`SJv8!Sg!biu+ zIkks)II$yh!`HO5dyL_XLRp&549+Ni1DY&V4-q41V@IYQAU{)q8J%!$=$5ly<|_#Q ze&|Xy^5||ON?@=>btAc0DUNAz+aOw|^y+JM>XnVp88lq;>yJUNZi0XOx zTreil`*dq&>?7R*QDiIG!eRfDDKkWekn@M`HO2tRNq4U}cZ(dodpjxX5j_M3r(RBe zCOaxZii##xIt1VZ^fIhLlUKC*ZoVCPEsK1urFBdLwu^}n%6chuX#t4)fY6+kBiw-{ zx)#_G)SLnUiw)5k-Q&c!Ifsvn5gREOlA=NBw7Dr|O`wJ{LcSv*W10Qhm)coLGC(T2 z1hqVN5lU4OB|9eB4cxjc+{V4gn5iyT2-lSsNsgBEd0$sHyK$f+0$Jv12&E@RT!}AzP zKLk7876zgEDXhQhws_8uG!&7w*K&&)vsmB?VJkO;B=cdJJ!5Qxm@uf1EJN<(=XXE+ zCx%*q2We3(=1Ea3?65Bnefeom3z06h_*~C04+))wDW~i(@G!|2i@R6&^*#+(v*y6ZA&rwyz~=JSFm=)3 z`wZBD6}XG=H+q^>e6^ljG|4#I^ju>#uc@lK#(6&mC^?fGK3tCD%O6L(I@JNzR;xRcH zAal6GV$J{;$6STt3vM&&p}i0Ki3p-EM$`r*s#*1kFhAf%3&x8lJbm(cg>9|1ecq&n z$kHfRqf}Y%7sFwYkT$ugwbm0Pj2ip0fWc)kMex2(YFr7D1aAPh@zgwoF_+$fB^a1r zE)Wz`gxWY0&Sh=&DSm@hJ&`5vZi_N+N0cpK3O8J#&?1`*WhJyf- z;LA7WBTUyuUg=%VIfL&!H+Ho0%CcIaz(bavpJ>i>b!|d_bp<*f!9MHTn_lr-Z}RoV zyCFyQ5ntB9+tT8&&jZN%v`KDHqZjl1du%YScZs=k3_v8`2S#%~uMB*{en@*P?=Xm@ zX&wlk4u26gKo=}%MI)A(&}!8Vaz?_Tll{WAW%6o5-(WnoH#jmhry52QN0>c+l&Be< zdqKJqXD!VwQbkazp*~CKx2UqrXIkn8_L3ZJkncDB%%{{6&fu8BX~<70zD490YFz~T zUk#h5w9%ANX7buG^OIWo3cD;%z!eUi^oa|1V_JH zF_O(joLQ}e18k^xGE8^$;-1idOTMh{1=h{>XP|DR<%KH~BGVG($wc2G~`K z)0;{j&#hV`DnqBUTc{7NAp5CHD*-&n}%o$YXUSsla$4g+E5bn@q)R4R?rTu zmyu*V6t(Sct&J26066dp@MRq%AC;?0$e`Hk2q&OrS7sl+b~RO_)fR*(13}FLIs-AP zIe0bJSKbXH*qm_8>TCQ<^E;xSjd?sWs{tu;k=Sn7ROz?-^(ih}osw8VI_*RHItziT zYD{zWRKLe7o9G1UqRHe~uk$ebN*m5;rpk3<=X19KTH?-8{&C|E0ylDWoHV>pi0=RljEJM+pG{F9x;OS=FPlMx*7MuR`~mJA<#HoP+cYFg2L+H5hP`UgBc;G2!fU z6t5FI1VK;pul4Wggq5Gr9HN;8aIo&ORNn#>U1?SA;U1(1K{_gT;wRDwr!sC#MAJV^ zyX`zD?7p!250s{cy?P^P?pnvNW-^L{+u3iQ8S!pz_D+|YE1qipsAtcooAs5Dy!=z` zT4StA1>n}pRTRb6y@gzZ9X^0Cjbvvx^ErZ(&%hj4zTwJ|le~MJv&$SsqsREiDBV05 zm^vq4Yj#8;B|isC$h2n-_!l{`a9spvp51Ju8=zkl*0u+(35!bW_Y52eG(1RWaUj=L zfKmKF&M$i+vjf4YD2Z!EkH**6^m~Nbpv$xbgTOZ?tieHw1Ami23At!f&NHAKcods? zPrz1o3Sf9_!8=WIats|C=@5($wKWS1e%+>ZbxcdMi3)eZ?t1nr@NeCk_5mkDfuA&C z)7qko$pv_$+pSa~j&R&zZ>VK~!ydd;lfxe5tNCJyh9V<>0qE^c2`+RHzNzeKBKg$; zVP$t24Fbi>8J;W|B>81KDE=5L{{c-E)QfOE_=oaKwO&ti;{U1)Q>};p<{VSD5g?Sw z(&5_ZqQiFx`Mtcf-0>(eQs)0Bg23b&?hXiQYlWQw46kMgD@J)Ph-H*^?NYEI3gRZR z6GKFCrG5vu&SEYA!zkq<%1i;}Zt@&TnO1;RyWc;^EmU&^tH3;UlBkGmlktviH<$ia0|S1-m$F z`oz|K`og5=RkF&uOrOPCgC+5*ge1Vsq_9QSGiM6$LhgXVt*^F{Z~eD+hci^dS=i8X zT5Br&in)vU#di=Ygj)+Prmle9?$w7R-PwA6h{P`Sr6vO_0o;2!tx$D`CWrOju!<5M z4!MbPEZIS3prUr9Uty}cr=65Phh6Q-SfHT_ahlp1OR)6%B2CsaU&nzm{T3vtyL-T>93nM*i(14y@l zkPp-h12Tf2!^_Qb^-^xDcH-nD2515CT|RGNmS(T-9v#(CrUMRDL&ztV=ImpDn7~zDNMw0VKT9}rY>E> zfC`sftHuxtJM9Uy8>{iF&G%3`*7x5Z#VcSiiojIY;=HqqN-X2Jp zSGx-+7(zJuU5}=hny8=Gyk~_L6G1O*d>)1-#VhsWd>)Uz7iuq0y^cN;{qgVw@&1R41Q=$^V3g$=d#{biCCnl{UAq~;A-|zK z7S9oE^lu^tmbU!dZxGeKNdd8gue?c7siUvF>6js>$6tBVDQ`Oc%A5L!ybCs*uUiUu zU-P!FU5vgytpBxNHq_gOU;DOWt^M)WE)!4;yzidv!~pMjM(m9BzA6Po5XB3|~L=NdI&xTm_2BPJAqMIfx+OagP##tq!-e zNnr;8K}Z0&rZH<1UR#4Sq2R8z@?{dSl*=oqCxU*gUbxFYr=6P#Giu7Ds1Pe-?;$E! zp~_VF%`f$l6ad_EG78`3Y%NM@EK{WFEka(6Vz&Dh%OU1jRz#UhXRZuizdWBqX|SG$ zOpqHi4;K`$AIqgP`}9N=?M%+iBCQ4g-t5&ndgYMmY_hnbh8?+q;30crkAlz&;&?Ue zOn#a>4MMOqVKY}f1qosu26c7n7K&!>=^?tw1Q#$(jyxYF_mhx=lVjd=MT1s>8Y)Dp zgZ803vDcC;rll~E#5W&u-U5zBp&z_uHG*h%UHKChQriZ zyPS8N7XMElcCHPT4cd(Ln#hh0s>=QTg->i4cpR}cAYLDxj{F~}p?&Ffnf z6W-i^T)ltu4oL(4>-_z@Pt0rI+wJysS?GYkDDhm!P}i|WrMRg^m$9_2$du>p*=$|- zrvNMV;TeH|Sc%83Yz`H8=$`A-Yx;X|Qt9v_T^zrs)(M!Ouet2?jTuuQrCC{JBe_`j z2g#6fkyPssroS|4VKYSp8mdS9%CraEK=2p6Xk@N{XmmJ$7wKPKzkPfEGXx>ecNZ-I z5xswYN;{J2Kz*?MIE0ldlduw4*DX2?JF#p~b|f86OJ&YwZVzx}i2Iv3xp8Hg=}Agg z6ykXt^_Pl*?r;t*JVgO%7#hXn!j)7Ih<1?pzx@ph(rk~4^38V8_RjI3-JR`yRwxr- z6{XpZDrvsm>nMUX87z?nmD7Z6cyKD3Xmf|4mOf$#untb2;K}RpK5)HK+z+h*`S*7? zaG(2ts}n(A@0)MXokqf3;Jxrpyup-B#Q;(L66MQgw?l~qwDLrQ?>4=gO5Z&k+z?`$ zU53qbb|}TDn_*o#L{M@odDFmujZQ;oTxI1`9Z>zIz7&ZW4yQ$fR>pRPitq(=Qm(s?ON|I$gA;m*awGHuueT+! zb(Go>?ocK_I?9cDPgc08(8Lq-efu55L%OmdpdhSq4)ShdcBRr}(CE@KBm#f7Y^+_` zQw)V#?hthCkX~r~5TZmm07EOp2C(2l$L^ePVopOW4jk#2Q;(i17BD#ogwGk743bp> zn0$j}r9S4*@HuU^YsE9dohApB@J|62&W*l55zdSpEBcz0HUc_gI%>*`p?5$P_VoVs zhY$DfKfZbQcKhZRc-7hT!Y3A*ta5gZX1z{e6~xE0r21v#NOgcs3Px<%aV1IHfX5V! zyv>~t{E3yO1>Gl}$fQ!dK0H?2#jgezgv8vt(W$nAuIbFv4el3Ogq-yO3Js@q;kelD z)*}tjEQiL~Iy)j&PW`!C_r%FkCK;YA{(#!Ve0!=^Ej>X$C6h<4n3Q_M5*ACzu8c4f z<02aU{diwPkF#*Akxqhf@ z!wiX(eFwASO8*Gp6O~#D;2F%nFa1__xkTi?LrOm@q; zHTeijna0LaWdto^L;D$D_f_goKBi(frDG(Y&1x1(94o|=n>9^J1T@ybxIVytWQoda z!Hi4hE;gcKAMnBX3@IYLBbDJ9JQHWbLOsuCi3Ek83^|+V(z^+Zc%P>+Xk{@_5(6s0 z!Ss{ySKQa18~j%0wV6iFt%_(~KxG?`MG z79@~SH@)PRgeVD|pWc7?czOT!r;mTx^-s6&U%&nE=lk~`geTcuB$Grp>?#|0)@)eL z3aMMJ;XM8d!DLp^s%!|Dp+SiWN>M@V+E;xypmk=`JCKUS%uq-j0J^LCO5y}sNQzS~ z(dt7(1^jx!|eYTlHkx$EGd&(MS5x8guz;OB1V>`)SV|yIEEJkUi_It^lxAi)zNV7Kw$xdMePgsBiPyW#&d31} zZQ;5cWb4U57?j;(?f{nPhR+p>fWeH3+^mZ&Ql$bgr*L4Tnrbi{J=uPKi6gLi^WQC? z;tT{C{@=*u)Ia{@TsLlovt;IAjOP^&GQVf^>D}2cqf}nyRt1Ev2 zJ-~g(QmlA5j6qg(A2JBcI0*_hy0~+(w%xV4W5NqLVMC`3&jI9DtPfnHQ`5G#?F?Gh z%QMs`Y+MUELYlK+z51DTpB@Q94K9-jn9sy=7T3=AP>8ynP8V>C7lt(Vp4mClF#+A3 zpFcn{hNz5xDrGsAnn0L^0Nt!sAGht#l+}LP_ns0 zO+`pwKsiv+#{3Z#ad{#7)$*xW-`zM%O%DrP=|h~q z0ppr@n$vD)%F}<)m$J!F9@=tKv@W;dR2mwXec`CHnm{WIgEm1z#dVMB#GAq^A$9K? zq-BVgyAKuhAr(<=_uFk%9xRH5vzJVTC6sFZw(=+JbhqVZ;G8DMb?^hozL~t!;UDjd zUwNM7e)5Qy(15+XBd#Nn-5Wz*tNkz(6+o1VV%(+9EBeoX{3_Bm!JImmhH;FP44oq= zRvT&`q*hzrTyKx40y5TshgK>$=}C;!VW~&C9KqO^6eYRKRvhxP6{ib#;WCsMC&jTb z)OlNQW5AiD*|Zu_GDOxcU{+)*n7;Yx&Bxb2&)@v~@&5g8^6u@Q-~43pXEDOss&OIE zcH~m=SU`~ObkH3Ef>DH?dH2XY`nF8cs=TDekayW1-~fZDts);OuPpwUwg)dTxPJzo zBxcaq(J#0`^L3^a$O_Ca!cnP6wDl(IMDSK{E2ztaA^oL{)#}s(N%g=ez@UeH1J;~K z<5{)nyyt~NA7ZKj{#kPAUZ^704cauuy6M(pnao24sL!)8Ih4B`+3eMP120iY)~dA7 z=+q4&%kVLUKRR?%^*O5hG~8HZ%!ogZvmw~8wH5~NC`t@x&Epu#q zjf~d~YJA{>GTtM%Js{%|7D$MY+d3U%xuQ8b;&P?fKG2FOMId68L$cPeP%(=<-Feq9 zuV=7nHme7la8QKm<5L(D@J77OYopO& zr;x>pRvrxCQZcg@$_X!a&DSIW+iUFNM7s;EbqyZvem&5%^iY2+ryc@F?JX&hY_+JC z;9insXH5SC6Yia3VaHKLyB=!iE9qawl0Q`77X!@b;gw2{djjUTawzOfMAbF;N+e``RioqLaD zLolnJ?jQ`_hhh4SI~tw3LAk9U*gRmxCXBWRD98a_GhjH8QvNV$MaD3oDs;q>Mgs4FfSo3Ic$e|(>yavcb^wft-_Ej z%m^=Xx?*FIHsK1X>~YivlIED7_FUS*;#w$V4{*BMLoj_5|Jq>g+mvOlEz0f6^_6dd zhzgWnBht)Hx$6+Kmh=xHH>{wNIrw&Xh`3oSw!ne>7nWCSSU7CP1(Y3W3^*KEf1LBr z3Bo>_`JaQsaqdtBnRqW zaN|iY#^jKtN;J9)1kU7Q+(c&p-PCCKJNh(yKPArcs4C4oDuK$b36Hb&6c#5cLFT9^ z05`MhTIh-BmfCg|ZB!9AsLB~4LY5B*U7TMLhpcOhLKaI8C;&@8nM1=V0qfC4GRHAw6DtnZG8aY?wDZlyjC%#!o6RH5Dds^IHG5UT3`3X*R=lx@I zR&Tfaq0p8=D`^B8$P^7EjyoifV>ki-8cQPtOF00+IUk=wtIXf7Mn~t&@R*F zad(k`5X1(Vn#HCS4H{*l67J-pPO!Fvz%k;NL;=P8+)M!mfJ88%)UYHDdb}R*<*wBy z=rtBbqRSe3pW<>9)$V4b#1Tmt0d|S7!iU-UN1p{zAPGGEJcyR43`vne{Iuf8?jNVg zX$`P2k*&t$$D%&fG@U1LCU9aMKVqi^#ZoLn-%QTE}c+ghU|h;a7viHyIB?A z;#?GT4@lN#)nF}sRA8w>uLlT>*6{iJ|G9hj<~FV*dr%(*+rO9&s$1?RK#HQ~H{%Hq z4-ytZzySDA|AUZa+E$D#^-7dmv(vMmea|_Wc^_2;O18Wa8|#@CQTN`ex^*9U^Kmk> zlR#oY--F@X0q%oeK{x8}3D%@keF)sQU0<%3b6?hwYbYI)PxC=ojAr9=3;=T;GYqh{ z8rkvLx~~Dy0^qqdFcmNSfT>t1(;3K31sSpt3}A7IjFG+KD5D1pt3a4k7iL!2-nR02 zgF;oriveS@LC&JJb0r#VCRjL#GBqY@F5c0s(TOLLf^;4M~ zg0x*p%b}?O=_El&2ts5T>ywHi^{pu3v8@XPYS78x%CIio1u~!zXKuzW0?)l5?Yz-w z2DFLqa7L-5)}t;{TWaD8NM}>s*{asZ=aq%d-=9ki)J6*;f?rZG$7FW3V&B> zo460E%Es%t=Ba_PA#dY?m^jnktQ4AP3V|Bi5(s6ILIaVk&lbp8qL`|LMfC>BqJ)SF zbDWSRM3QfFV;QT`S^&_)(xhP<0Y`}ALyNvysxkK!HISN>NNgUDKKF>M1Ii}cJB-c? zq_}#%RUolF{VP1L|AI_XwX=9*aHfgjbVx3-6#FnfNxM(Urzk2R3t|AiCVCpEEj@E464szMS&Jla}#FgxFM@P+TqH zmw^|e8swP|rG?J~bMQ&ZA(3vShSS3tW6vf9*LH&tm?Ic$+)PCp$}gr-i_?zUGhlJ^ zD=jsBaRyga`ut=z+OI5mkdocPSC?x@5-bsms?gPqi^IXBg0K?=#!lZ2ATF?2-{QQ| zBsH9}yh?pTbocH2YP#A-ocAsKH{N^?2afH}$P4&hLpeBxD-AZYkbans4Pw?PlDdvM z%p!vYl&4Y?{DVDZ=pR3(`rGWMj&AZYoYDOf$ROtt7NZ-evGDy22px<-!4dol_8|5| zJSEtP*apq=-{2~+gPXXQ&EUQvPbzg`b3>&H%~Y)C5mff+q*tm4V*zB%#(1VW2jW?I zn>(=bA{0(3L)-bImG|qRbKUk4d*p90tQ0riV_In(ZN;9!>5^l@fVdmPy2HlE?M<=Y zP?2&Pya2&7-BUwu70#m3Bu$g!;2%p8i3@FO6K+AO%s~g%!_W8T*>`Uqmq@s3B26Ix zlelogfzN<)b5}s4j@pW884R4)A+wVQ6=E)zN)aTfdss1ErR`RiN-l+8hGxO4#yQ-Q zrFcH4Dvcy1XFmWuFDYD)-n@AI_Q&-lKlyWHSb^nTx4J^KS*II#)}6h0^Zo1F@YD;IaKNavM>e{2JK*<8SG0mW zx>O{`&4S`YaYj)GVUwUU68tuv4=es1`~pqRt%}U=U9@_01M^^3!`=Wcbu+z~;%U?I z68aFP@KXL|$0;aA8C>6$Q(nQz-D`JiBntcjQa@f|z!& ztro${@xH#&CN*J5>&0|)4a--t`NSZ~L`^}9Kl+iPJ{PQ0&K60H+aa|()X^abfE~eC9*zw23>d;>a?y-vw_W-7+C{eDZ^FfW-HJYUc(Gm;AUgn zDMDG(=etp$Mz7G5pfgn^+M0B@?bl}^56`F+b%o;3|Ll|b;P~AH^*EX?UrGY%;nm&NN6cS zGhlVT5_yP`6d9jt0SZA-aE?l`4I?=Ee7QszJIUZY*sQWjj)DUV6RZ^70^P27zEQwqa=9ep7!;a&&VBu34)o5u*i?ZB~sIzAx3}`NN77 z!_rAPbER(ZW5?r@t)=e3A-|bj5hP?4N%4RqJ~5b z?nf6)#$cRpqtHGn8%d1a=UUeyEzBpmM&D7Sw!qt^?5X#8M+42J0ZpFn@Sx{*ujy2KvO)Rj=EmuDj-^ za^v!EUwD7}oys&k+7Hg59fjkcma4vm3>BE(h%#7~5dmg2i&6twCjNDbB40fUOA)?B zZ>HEG*$Ur-&3cK9M=xKzHd89} zTCvD^7gu>>tXtI@y2Q$!K&^!j8X-yT^Cyb|pN*U#cG9n8K(&T(l2%-O=ZS0vQ1=#s+r}?63fjSzOaNQUvkF8W z`YKg$**p0SW8hM+KHFKkTjPu8{RVY!+;xwxH)g(utNK0;Wl(n`O_6KeK~C-1!_e`! zhAw0b$-<$7qC&$r1~xKcQP(u1s?r+*8wR8Wj^zr=+o*~)gEOdD7;T=}IN;{8mS^)v zdIX#UCNM$%Av++-65kh;lXRpB588fLw~L8GPO=r4%a6>M1x1k=h1Aw?Ok^3aloGr& zy*BIg$xcW{&RIB)AzcQe;i{Wx)e&Ie33*A6FQ9dAM?(|fT~(LgfZ} zwrt|0)7woCq2)*03rM(7hydt7YaODf8ZkOXpn0!sR1}ie_;hnpaRXWOQkA{23Ob1J z^%l)aV+<7dIYD0dlSJ;g2sG}+f+b0#(yZq7Wro&vRgV|f7dY8;eoBvhJ~=Mh{R$rr1>p;vL@~Pp5(V#mdl~<`b$q&@M}J@wEipL)>ePgx>PtG)8eTu zIdgcFHzCoxngt?SxQ+a1EUk{GB|LOUwj2$dMEz2Jgf6GW3P3c;Y5WYU!rM@sIJ?y; zkHS;LHmZ&qKLU$dO@r)KO60_}k~5|eyM*W&=ci5gjz)SwCwl>3LC@b?XE9=VX!}h? zE)DsTtAJ{97yfw$3*xzjwB%rL5N9aB7oIYiP)RA52B9zp+fgWt0VqWf8}}(9FB9M` zb9ulEgyh0!O1#7x0tjg|T=L^1DijD;s0W!{*^iyj92VD@V=aDf0jlsH5dQMrm2#2s zUVDH1_ul_4QP!is_8BS1HV{@E+^H^>4%D(=Bb9A57*D6+;-$>Ip7xB=hYAGX?S(_m+QChzPF$^3|^{d z5qWq%xi|%v{`BNw@4tIHZe6}$Y}0hx61mR+?ILiHHg)Ln$dZi4xDWTL%ijO) z{ZH@q_50g<+U-X>Z@Hrr_xJz!_wRq|*Qfdq4XwWOOZxxh|AqcXzdqIfgS!8_XOw_3 zPU!#i{_)eR*SEr$i4Y15YC1)%y#f*lIH+lF!x<0$M<98n)1~XjIvU&~v_oTdI=S#r z5(64_jq!pP6{x9t5J+W2whhSz^ly3US}FY|!51Y&95kKaeFF1A;0@>s8{ZNpPpN^| zM-b+3irl4EVA980A(CL(#oy}qF&?_C&8J70xt{ja_jIXF1t<+i<8php#6Rp6zO)2* zt}msCaZD!?cc#x#Wd6muZB##_MQNpSav~lSKaOQ7se`~nk9uzurXJi^J}(NB__4`bT`v`$jMO2$Or_+bKqy=Q@h*fb|&T6z-6S$VZI}E z`4suJhzf!wcLTO=!@wk2qQSCKlO_qaWQ)`T$I6srqu zQFnvFEQqkFkUo3a7-$80Z%C0QoTs-theZfI`s9@w3VVte>;QL zlngZ(s2R*{RLMFVmn5R{V72p|s;^1D~e|Gja2IeZ%tq2(h>{GKKK1hKT zi`aGdhpsCk*Oij@ai|qq_6yh%*uk(@ym|56>)U(bW)p9c(PreBEs6`C!Y@rZAMu@{ zauJWb(+-&{wGy~rBYir(dK_2?HNs>H>v`-ITdj>sy>^b2Gp`U%Q0KsOHeGm(`t#fO@B80=c<~N# zXr>=tzm`r)^>CDdIszUu>;AXo!X_(h#PbLAX)dI3=`xPz$dpkWrwBisKpmJW%$3nd znd_0_W%7lJ@(|jaNZ=6Eo8=*#H_PvFL;}IN=Jr7d(=pxi5$3(;D+30M6Kv^v%x%$l zl|~%c5C$ThTn~G)b@AdF3@IXuTVy8F-GZ=*AsL9Y)hq`Ial0}mA8z)Dupc2;W`3zn z2zdzhfbP6&jT*fFa-32kLIobmSdcpat)3*^yo+d6e*qEX2NCoAn?`)*u z7f(Sg`Wf^r*g(l)lLH{_j`CL=Sng+8W+2Y10*oGURyY$6J{X7%5O6S*h@vGlNkkCU zl8zd^RQo+aZ_*a%M5`#CIu9+z`+NQ4+x6}1+m{Ssjx%UT?4i}1pE4(}CyKWkw`4?s zKxm`Qeo;mZ><_NjP7=sEZN{Ukw0SB$cdFF~m}L}RlV@VbxyHS9S)-7O{=6IuDjtFwUI3y1V%B z^LMxJdUgqCO;eOU81n0i==aEL0(OTiG6s1z-Sp~9>kYshgY7qqD<&|iEX(R^QLABK zAr_1|a}GNEG<)IS$rU7Qen^#xke3W>vfb5c!~~0J8FEZ;%|=Ch@o02l=4sBKFFsHl zW~j9)^_(Rj>%?w?9$}FsF0lUu5$l8u1Q$MCZPo6J_>owIzjF<)MGsLJH^cMVbt3)It47otUO*>(SK&4xq zK3-<#!yShqMy9H=BYrqNAl>diuDF_gFrKC)P!F!)V5Yrb^GGyf)(ErWtFJ+nx)Ma- zIUKj_+Da;Y{!D{eIJa79kZ{b>>6Xd|!WDFGq!JKg?--d&^6c>AIz>LN@=Avu&Cq`2 z*-s5px&&$P0*urWQG;>NL05k{+Qgx@-M+ZHd-v+Q4|liQ?cUzsU%dR! z+wULsUc6SS(>(;?s1ArCQslq=o2J804n+e8HumjnDI13gvgXNdM-8=h}gG^1c2d}k7N%y^h`fQ@Y2Ns zs{Y0jkZ_zU^(0USXBA~6P+)*P{VR^ae}P6gPwONgm)pLsE%scD-&(I|@PSkx5r;T^q`-^;K-c zo+z#d?&|GD=n0Gg`u-bm?!LAHGK82@dalG|%hZPVO<&L6EZ@ETv0N&(k3?Z*lqsRY zs~rr|K?uKFqx}pGw-^TxVi)>Ghf5ou-(t)8@Ukin62w5ziibYAK1`-q_mFs$ss%0x z!*c|2Zx;A_sqNr=(i5LVzc6IL@}*M)NHKN8V$R$u-(nA(5Tc6dImEAj_BIn6y}??x}|1Pu^#JFvQ@2{TonUO z6tP6=8>%Wb7QLWG90V9~#(;^yk3%CPAj~M=Diaw;%Yt#i)emlL;{_b%FXvDOV1!di zFl%K2sBykIRRm6=zPYUMt-hj4FaRiS5Hk^`cMhyP;gdZ$YcKr4O6q#G(DtY!4m0b)Duem_!9zsqh=VQHq#c@Fy#&V^fV$*Xij2(f9NK>W#~tjVd)aMv1+I;D=zq zmBds>KQz=&O8diO;r{!C5<-5Td*9(UMSnPr!fq0Fg#>j3IDE$de3OXaM2KsSblRRU zZ{Gb)u{Okp&<{7OE3xNF-=n&wF$@H|I74jK70?7)4;h|5<;T#hqM^($RfD(}Y8G>m ze!@5JH7n11&ed@_0t50|xZ5G0J|N|^i}QVEc5E&u=}d4HUrRs&eUh4?KjN#WYR27JKv zEk4|JjfR@1r>jq(1Yp?qEU$XG+U2#x4FDG&cm6g(&Q?&$mPx@SXMr*+a? zK~yyP_=3UCO>io90qef{n$q$k@rM$ukSFQ_Y(MVJXIbf@>psYUHjJ}1sdO2dbgSLpK;iqj^ zX~aXuIi+xdTQKd|sw6dG+rL_zZ;%NwTT(fYF7biSsb#GhtT!*-yu4LT4m<^8MU~ES zJcmTT#sB90Rdt57Ys-Fn)>kx=&w=Uvk^(1+HQ@YGalf>6L)r$_RCoc5GPE^KKR%oQ zRAi|}FD#Zc!_ZOBrQnKK6?=6$KLy^iRckT$u=)>=vAaM|?9ez{&T*u|3C9MM8g34# zdPl{D7=X}XxJgZX7X=Qeqe_dERPn}@d98I9I$N1K*T_l+xQmcSeo68v*<9ah}wxDiO>AD^YpMi3H&&a1%c5Jv9ahb2ZznO>yDBHS4y;WDQ4X z`r_)S9@kT#iK=y1jjL+aQJX;0x>1lzn5#lEQp%C2RQn8v(=RB<(Q}OuXI+Xeba!<# zU*nS;hExV%F@?|MdExZS#+KoJRH?pmVd15EBW*)-ntJ#r*?Qu_ z)dAL0h5puUxHaS(+ief5ho9B<=vTDu|C&w=4u8dy51lpmtS&$Ob=~+ik3Krw&%JJk ze5j{bJ1tqIrTc^~%@T5wl~IoN#j@8f()y#FeZ0V$$B$7TzfNKaC1_zs6D_1j55Q>G zW5i(G_8uRIyqc<5p64R4#kJnKIDr@Kas;jpm{msBI(ZI=j0)T)alT?$^TpK);hqIg z`iP{~xkyjpB8Ch{X3GEc55ziJ%=yT|SvOI~L&hZwP$`*>9?L15>|1Zo3i!L$Pe!_Q zdaz?-7~A4*GCUlZ_fX~V;NP4U{#(65?Ly`R5Jx;5fg_e1#66!*fj!#x4#k!XXDd<@ z<-!CaOSBAOHbd#i%Ga0mMq`aAe4+U}gbeSeFpo4+bp8dmm1CCfAGv@;tTv~xh_{1F zb8fLoSI~ns;>NEv*ZESN@FSul37dO$!@2cSj^C13i!&bv=MEmjI&xGy>DO&Ed2Jp+Ln7cD5YZ3&<)KrGQ$w z74%UU2N>bNgV(^TqF9Tk$)KKBmb`YYZo&q;Lb4nx*CAgpz`)ygx8vLIKKuyLj8QAD zFsO6#{bgYs|#?L7^WS)l4=#&kyu2f}b&EfFX@V~%m90nS?j@d^WfibYAy z4q|WLfPY(@Hk<@R%@6}>r46`(EqTTq(#4fMS{%{p=5z|9%xb#s+1khjHp2wsNQM$& z7A{AZF{5o|JHue0OQg1<8_xZN(pmmfhdL|PTguEl}|Kd^;M0x~S6blH3F1LS%$_7c2$x9vpf5El|n@2iT zRBGYtNlaJ{T;B$EW-jkNvcjs61U*3LIbFHlrHPR1AAc}aG(jKoET=fO%TC{Fqiz_U zho%px(bNaz$i{MxT?i_hey0Qzxx}(~n3)=zHQ;{8<vGM`*>~@)RP=f)>kg_K60L zG!p6khDcYFY6-e@%*X-F0l@Ge-RX%8Kz&18!PQp(VYf*?u?vJPZYoq}`_i&8)v*+6 z4S0%pN!cw*o|8FswK!6j8tpWzTsh+nsL>eM8Q(L(KI3%|REBn*NAhId;1zm;_FbLe z8s*sB_`<+TnB@ewGC5o#;Lx7Bu7#@k8ON|DpvLE?O1+K~YjX$Sn6i1)kvgpitRNIv z2(elqQ`jrK5iaL9%e{{e!8r8(*Z=y6{~@feM%!cP`e4UZLB7aiPlgje#QjS3klr~k zX4($BX2XyuRbbQ==2+d7%Fh>(fxb47y6v`Zd^S5hgI2BbI(!U1pz=CYL0*`LwlGhS z4-COCq)J0-mROU_DmQ_5?{fJ3d@&sN_`6YtM*(63xnqEg_Q31+8rK>Ss%V9%VI+Yy zcoWm94nTL)dXyK`^=-$Yu)-Grkri-jzKNS?zk7 zz6Esk3ZmXReM}VS^@#-^u2*{=S9|jD_T{7D%a?H50T%7&SMLcGctp8m^6_r^>h|^b zk7n=JKfQQ&OSdTe9=&+^Q~W;p@WT(c?^JPN5a2rhC@aFM(6@KLYTnVx#{0J7u|w8vbP_-up*6JDrQF~0o)>k*sbxU`@Z z^VF?OJs1k<4xp9TtmC7m1q#pd7ND5!xOOFut7`_ZyHWX8F0V4PEdXq zyX!hVMZ^)QCmCS@Y~tc-su3NRMJwqsJov%mmQFxS0eUhTp-vB_mcIx}y(EGZ1QM!8 zH&t~t(4FECXno`qAQ!Diw=G<=En5q!(S*WAIC1^|D!GKMMy?)${7$h}xQGy*7<-U) zg<-_Qcf3$BjNd{^CA%J(1grc0J13V9^*U!F_7+^DyGX zS4AS``IINRH)$H~*D-V?E79E$4??{_TE>vECxg?Z7{+hC)0JsZ#t>?91#2()PV8r| z2wWX&0MeDf;lMfwj5M+WVPVBkt8Kqw%vX436h$miSbai~zyU*LF<00f|6O*Y12N&2 zoF-xd_y`limGK_&S}ej{N12{am}TV!eH6~|P!76dw8FxfNJY;7632BV5bN8cMu$no z4-cnw2LSc7AIYGVFH7b&TFJ#Ec`M!D_GD(d5*RIpG&A#PJ%|6@_8jp`C%@dj8NGP@ z`a3w1=!C6m?xLzxb>U2ps2()r27?P%4~sZoW9(4{G%;c4_yttx zzY=mD?M!BjlrZDUsSiwDFAFbkvjwN63kFRmowjfHJ3jNH`D#rjX<&h5qre%Eq0^hC2Sn^G zFqI#{a1tz{k*JEysUqx~P%A~8RB4z70+!4MYw1Vu7XdcGb(aO2x3p$~`-Ht6AzNsE zLS!*4KRVbsv_1efOu1XcdEp9EU^|xc0-JVmekt>nfuHvxDes?(+wiUdn!|$mRc}`V zOgb6}ql55<4C%GUO%spf_K8yfzT*JFSx0gQ*rIr6?kZ#~+go*SANBls`4QXx01=*$ zHMn~$fM)({uXqJMs~EF~<;V3JpC4bRr>AeKp9L|15p=$4yut$OfL1VTak@4AYP{&P z$C-JJ>-T#EAA@Yii+qgO(iaMY{UD141t_{W;MfrrQM6tRoc^ZsCS8H#aS*_SKi6-yF?ez3hlaGUw7_b)~9abhN`O(eNSn(tZ_+torn^F3*7 zvU!@ow6!ZG)!?^t$~$;xvU=oU5k(MzbGGZ-|MSD`o4Z#pUT;^oFK=J{a?3MNM|It* ztS)T%lj$_nyI{z1rGu(C0FT0(R43$-S&%QjTYVhAxO=gA3m-^o1T6t9c;(?}K+{q^ zm{OVN$~42S=RxeLx_$9_i%aF^Oba46J%P`E&3wt&S=Q2w~tCL1Q-V-j)lrkhP6rn1WbH zmHg_)fB1TH2aH{<^5?jq`($Tmuo7j$FYiN!4j_WKLN5c(#7L(t2=Q~H;phyQb3xCG zBSDVFfLU{LYDtKEsESq{ zkyu;|F$?4ARHB628&8e4+9x2^5+TvaGu74bjmoqDFvHFx9-^W33vp zJZ)EqEIFM>(g0*&u_PDb>n(}){VgIh%pa%7yHi!_QMFmSu?n$UQL9^k zXIkCIr?e`ALMzONbP3cZITu(J7AF=GS_8p_FjHZWC9wf8=8Reex$PhhVJNf+8?!RC z0NmD>7o}@NL-OV2S9%K%GEf+tDa*cL5{}L0Tvh0UwX9)Nr2*SK50~*0@C53AG892Wi@tAlxU?lY?Ikpit>L&~*u5P1GX-EP1)`L$=0jZT9p~dTQ z6t^B()-Rtnu%2p~!JccJg9v8WU{*NMQKJ`dinZ%3t^iUiJck}F5u5?|SBV}TL;s06 zj>VPM89x)&WDF3}D*4MomG`!q+- zNZ1?03>LJ2gtV+puclj((tg0O-Qs^@;)({k5pqRCx3edlGgT1w1Hx;g#TMEhmq>Ru zIXe7glm37qu@xO^=VJgU{bZZRQe52soc^;Hs>8>hZqh&cben_E=nXNs zpXv_A_|uIr$e(V6QT}wJ{``|Y8hpCR;isD*?&v2!{pize4nCtdN1xFh4D+X7hGG76 zBMkGW8}&~=`SpWOH#tNTk1@alSAZ2exv6T;*ut~*_VOI+)U4s?<+F+)8Uhg8jSK-h zrS}36uv2s3$k!sYQly#-`YxOePNI$m;oH)Hv5URh0dZHI-bxZWxfoFwBttvw9n1wx zkqh2?bZAbe1wp@l7J}cCrop*UG4nVgMZpu38h$#4d<;}52Ncla3(B}+<4moxxIk1T z6D_25&-MGJ@HRB6^HXHxMaB`tTUt1>bh}R9RvS@!1@Q(p0Pfa^IFm$F8so~~0hVU3f_>WGwPt!}AUBac!VUNuBf zr(8%(lyp6WX)5?=H=3jd9hDj_zM)8lI}r=3lUT`cCz{(h|+&sYFDy)uO!KFJ+s?Im6|u*CIQPjF#!J_$y7cMx$0b3Uma+_&MyT| zAz`m@BW4kYGG$%$HpBtQi>y*_b9Zo40b*^bxbUe^aD~f8j{M-qi#e~WC#J{1R;Rn6 zTOnfdI6GF)NSooqyge>-8>~1sQcIl{&R%X4M*q{ddc+|r<$lB6`!^83 z>23C#?tT2&?zO|j^fme1vqR91zR_$+H%)wHpF--s!55@4mI>!$P(`C;I_Oh4k>Zr8 zD@>&3$uq2%MIs&^+Bf!R;8a`nzJjaB^jzeKZ?6A!@9(049#Hs;Fs6JN!J$#5=7ofN zvG6ec5P=IYDip`Gl`=&G%yFJtxh{d>*ELwl7qhpg?AC_X*C7CRw+T}(>Tfa?rz@;7 zek_|>SruQI_wt@rs~pI0_mgq}zuj#BMikc+R2?Cj?dX(CTbU=^LLft{1RzN0v2>0$ z4%l+!8&w*4v4sw$9yq@Y6-~APS&rA_km4y{u?kvgNz5kYAzfQ3O7ylklg}r^)fsb= zB9_SMBW-s@zT$*qdhdF_ymoDpb&0O+aRpC0~^j{rL2kH{Ry z2c<}3SU<4!ZgdwO@@Utc2K%_oH|}ArnN$F7hcSlTPhd}-C(gLn^l_1q{kv+ zW49WMwKha#kcQ_-*1^Pk_Sa1b;#IRF7B?1daj!Q{Zr05MTJ$aWJPe45O9;NVHv31= zcqzOhE7s)_0uv+Y990oFqyWqTcBIF3*G1RY4f>V(4l9T&!;LPpxdLfS#t0q71d0^! zP7qE7IoikD$>i$jxR+YOygJ;%A;jW9?Y<>Dc3ND5mSmJ1KU2MimH2iMS%`iW_K6&W zOeW9*E)GOI4<~RN02LrqbTm2?KD1zVt13ObF-|ME+_?*09z2$b^H(64>yB`dsY1^* z{2(KjtTqdJTFMJ2U2B}Jj4DhT(q;3^4y8~#-o>$>dCy+gUN$2S(Py&454Fa z6Wre0qYhi6%ooouF|$~R)yi(w>a`^NOnYG7g!-kIg)tA7R_X*;#?eM{I`O~FYCVf{ zfd3uCsRIiKct#l=NxK;`jlLerAadXvIr2C>E-Z!3FeRiHan$ut4!mVeKCc?bfQ}v zt!B-4&@}+3{R0333Bb1BdUHaxIgW?OXOnqOSBuLf2xeRpa;LI%Vx}vcg>FBzBG8~q zL`-rRUGWH#XnuS=vkNs1ea;ThwD9RgCz`L7Rd6#I|F-wugVxrI%c1z3@7VFYZcGbA z&MYyIl#r0)gam98@W2USSxsM9M-63(A>oX`7Fx<%*xf)Alv`%Y$SxIInBQldXvj=~ zZ^A1ZQNF0?gYm-OXcx}L7J?Gzmx4XTUwY(QCgDgg*sNtD9+}X+!GoY@G{y!QXpk~h zX&Z>>)@gK~v`?>QgM4cy%}Ew=6Jmp$OaJE>+!H7hhzQZ{Mi`jJKq9uiLD9ZI_|zcC z(Lc$bSoc^K-_*;ZU_3f%MbeUJ2@BnDu4gue)d{`F709hLOb|B*;cj%~`Gi$QNU<^r z@9!Uth^+2HUWhywaVsh~MW{`x!q321sJ~c!TJNOx_|fYs6oE51fx^$hW#Gmw+UZ(t zG}#`&v4&^$=IEo-B~|6TcxHi?i%`IW$oC{}ugWc=90@ zodSq#ZccFSQ(YJ9i<(PDjr7humE%}y{Gm%oxEs-*q?oiKR%U=vNL7ETpKlU{iFd>iSw_Kh0~!E(Q`EX(~e02t%#duN|G%3L%~iPbJf9+6uZCXHHOGQ7~Y z;dc=z&Dh1xHhMuQsaH2x?B#`K%rKOc1pp~2qe@p5dXNc+*q(@3)OU{3uk zhO^X0)13&JFG50VZ;wbKA+sTGc8lU%pH*E7`M_{j{z;UD87g07_XW z3XCG^zxtZW8Y3T4+nkKibK9@5mjS?n*vNcNTmT=eEd;6ubUhMg)f5{&XCzjuQdd|q zqDCr0+sz#6O10Ktx*P-rXky^tRFT6*RVQuGo$8Jn%~);G$0p^+c2>ChfH<*X1aZUs zWaAn_pTs=Dzr0I_i7zW_Y@H%CFx>UGn==gg*#cXLo@T)rGR(?!19G|TCvFiu%JK|T z7qTg7?>A$pxxW#-)Q2}4BO3KS-IiW?vRu#3u|>AM!CwZ0{lmkf{llk&$NLBUgZ}MT z{UfGU=KXM2K*R_H9GPqqJUUrBS`GAyLdUsW!A*a)*j}y{wU!fJvL!!~7*l70>pDG^ z)TxLjJh(R;8)|h^@tjpt;;id@aAX+ln!&ol+2PBJ9K7LiCwZz`_+8o~1A+|}7tAjz@6Uww`6`#AU6ir2}N2S!MZflgUd1aO#`vdOe!sQV8o9x#=}<`s9W&(r83@9%KW0F3soYKQ^Mtmkz?n>~41h z>k(=6jD0(VOA9qYMS+HogWL*&{M2ILrs?i*O!p={l7roB_;)hzFpgcwplfXF!t;;i z!>d!cuE5W@;qS>hD8O&FSIrug@+qqLT|7sVOCw!Bt1fa>bdG@h-0z*4J|AItG0;f9 zjgHC>9*@9bmYr4kB#Y)&Ic_#zU5)@O9QmH6LuS?CdQ92$&xP-1)wCE$x>IVGVZmAW z>o_;F<)4eu>U>MUSc_cs=d<~2)5Ge#gU9{(tDj%p#e#!~fQ5DdE+kf5F423$vYIWGtAbzFdtJ%coS_GZYj0)1=3d3#{rK|@@ zuy!32?x&i`Pz`Pmv}66u&UF|BrS6=spFIM5Wsx=Rw+>>*evWxC9*e#7&)!}<`}Z*z z`Z}zH@W(qMh-iI1{tO{}hZMl4KPwA9Zz5_0%`g9V6%HWuK zpXqFJJ~kc(Us!l99Al>yuKpmD=dg)X;&Z!ND~gA8s0<7VQ7DUAmAb{`Zb3EQP&!nU z*qSx#Y@(aVUZR#z*$G3#A>t`aGICr+tS81PhZhLe1>2#81;x6AdZpl%G$2jeShdx(`Pk{XsN6((gPz3aeiAtnG%g>d9Jv+SyEF!$GLS+fTuxP&n4uL_{FRd^XEsdz;FFOf|6R5P|E_(zZx-X{_8V zBo6;^vWCi4G14uPdo9y1+O-xEj3s=oR&PIPqe0EH#3!C8U&8FyaR&gj=g%?*=abFx zfeGdH$;Qy&e12mfF#+M>T!V%%#(s@$tSU5!nRk!<^J&|kvKOUuRae2xNcE)M^DWr@ zS{YCj>(x|9j5g4#Qyl>h0Z0=z>8@?)s@IK~!I;gL=Mz}LAs&hlFdR?yMbOPOq?M-j zEWr%&2N~)B<6%}X2g%|MXU|6?$j+v`#Q;Zv7L$5~!u95vSv|FY{aad<`j8+R^m0$U zkl#_)skwGFj16aIi3meaf;Ic@dmOvZ_9P`*SNB))y_Z2z%HWd-ip;5)zy1DJBbijP zF#I#d!TY<@+c$WL*7ve+ zu=*1F3k=RFqU53)#)>}v$N1jC3Uz`zWFMU$ME z0(nsyj@AaF1zqG8&MjmgMiD6AAOC1kzKT0CLLv&?`jefCXiYsIuwwNgSDH2MC~+eO9MrM>8!}Bc<9y zdcR9sAQl)bmZ-C~I_d&UO}7ahqmjAJ1n`{i$0^4> zLsUEh2aXP)_itQl?Kk+T^=hQ^yI`?Uq?Wu}uHNgnAKoEo{0QC_D!an*;)gWKY}Xf& z$of?%vi`stcpd?#eQ~81nRLHF#}Pzegu}~4`l2LtXfe7dBX#>Hk_{jAFP0A?@$M;7 zv5})EJpl;UVSYfS5u#ZNL*$$pu0s`?VjapzjSAQ5`SQ4e&^D^n+>v!)6W8X@M^ZLc z7zHu&LVaSHmZ(p0+nI@^bp;>YEYLU0K@F)%ut4T;6oH@9wztm*2RBbd2@tW69_Ei|LTQnj|DLN9LwAQM_@5_t>Dhqk@h4Y z?wm#mLe8IJwPL^F--Lei-{`C_aJckc$a8?&!**?nBJZfZD0Y*gE{5hPc}7{#Ba12q zt=q*I;kgyKvo4|#2BG#_#Ij(Fx)G!?J8%ZQCy@3i1A*zo`Vg^FKzR5b*XpP-s2AbF z2y$)P&a`?!l<%PEnHzz~Ql6_Xx*O?!YzC-auyBYbY-b$)H^jcq^;@Le#7S8c;Owgl7*oA2 z(J@#T2{=XDcU=tiD-*OQf5icv8W92%f?Y?FgXt0!^5oUs#fP82yM5QQOHd?3<=8pK zQ*5>#t%(O-(Sj<09yCqsqCPtbnTfWklfDd77H)%X;>I zSPnGKlIvUToTWIyccuU{=+*&Fla4ZNCl}0Dr^Irdf`4rcdAmN(tRjAb7rjo_GNsfa zTVW~FHX|l4Xk6>Hc65LbY8uU!edn;-b+biZ2O2Glqi0+O_Q`$jXAXqW5qMi1p5z>K zsaLXv;hJj5URjU=FR%s8VAdblg&4czFEmx6eB8eQ5DUwP0jmNpcw$jPoVf zz^b0LP2waN#7{Un@(e+ktRO&lJ1H-{5 zOOSOhUZ61!0*q|w5*%!T22{Xs0b)6*6ELYXk!-DMy_KbvPuxLi18LRj9?mD3Bh%|C zTv@XGifJk;1VdOr5&(?rbbCD;Lszry0k)NW$f3AlSSLbFy9)K$SY+S{Tc!+`gCzFs z_oZzsBK890LY@upd;inhcXvH_Gtyf+R@3_W-t}b5X}Vej5`!<oy>-Y0=BBsk6k$P6ev53ZdHvC}I=_Ypmvx1l4%VJKp#H9nlg zOnP2$HpFZtS1QFjr=A?(QKqwlw7lNXGzrD8pJyH@U}vM)#pnnG^_z>NGE13j9=TWq za1{OvjaoSNN}tA>)CwC~4|DBZm>PD~hYo62{ehEQK5lXRU-;Sva`~PU)`bbEw z&h7dx>PscmLd307^})p!lD;y^W`!S{cm?5q^*b!?x+@iTKiDAT*aO7C2qqalKAoI5pqefib}l;MAUgABGb#9;_YPp64z^j?_Eg>)!U zt*&&z2n(Bht6DeNqvV7I-FfMgg-e~iB(;ERf#AE-I1r`TmL9=Qu3!A;?d9J+F}Rsv z+9yW8QorsvG32Xj$5rMs&L>lZfDMrg%m;SQ?DPT%&?(UUE`uU}vcc7xDC%~-zMTpS zglf}L=b45K^@z{94#gz|=M>J(-8Iy-XcEvm$8sWXJRXd5RYu4T{T?GY;3Mi43FRn8fcitgcM-}=PtTXS zHCO`0$26g+Dd9wEysB^=drX0(yjB~S%Pa&G)ifjc2|lhN#xzDGZ6h(qVTwpw4y=Rd zKw%JHag(CFSjw?0zHKtV^`=3!ZUQ$*Mh-$2RDRX6mXVq{OfMEAkNc5|0>Fb>PWYc? zWO6S;u8|SMdj36zsYwjAv^9|Y4T>$I$Q|?H?~wpWQFd95BsXm04(J=phD)pc57q@OwHb`_bSu2SpJj4`rHQ=wDWrRGkXAcR1}xw!6$ydbXO-NU^- z-eN?d|8M`si)%QYB_o;wPJ;<_+JQBTYIhg#wYa{$+kBk9`r+;7r+2rIqh5a>p%A%8 zuZOFPFhKA`H%&Q4hLM4A>Ki$vbjnX%lXF-AG}0Kfx-NZ}Hqq?5ImGr!)J~#Gjj6-r zbX)-c><~D*DZqS&H?~z(J!gBsMRYevUwF-LY;;yM3WAW;>HXC~Hbc6CkdIL7E)zz4 zsvPS$CP)v$^^v0LXnO_jYcqkI1Scy7gThxeE3^i65Jl9Nq$4dAf4Ne9^rMqu#$A3a z=#q?unZFs*9dgrJhD*IAYENzBdB*JsI~}Ae+XlwjeipOs4n1X#yZ2 zTQR@f2fC}?KAkc(T$xGrs3GHz#v66UHk;^X=T^XrO#6xR^EcLY_N_t?_~GMtZW?^H z``ZI(`7MzH&=H38W(DLHBDi0?N5=TO?cZO#d-3xg6eIN`*l;;KozR3@-TM%+nV?1E z39)CleD(GEdbwgqr@A4q-2eFL)$3b^a3cM#vI@!Hy1?6ZHLyweulJi*FaML?C$p37 z`q|`KR0W!e@cX`*?jzmsKCnc!oM3|mmN2UIykw?Q?9D1kJh#M?k)74pn&p`@5L(kr zNdgEYvp&ct@{=7w+fUeXc@HoIA8S8-NKlDHE}=sKg{;qyX03Y6^)2M=d||kbxZurH zX=!gVikCS?OlRjHzL<{L$bOooyuOBokUk2@(B&9~fxZAU1p`a~7mP;9fJ7oSx!Mfw zNl{cZQSUnh_x_U|?8}ocWM6m^RH12~*a;M%K$!^{iYt9v!9vI;m?|)>oJ$lIBasW+ zsW{LQ+1+Ez5FigRi69R0|4TW!DAw@UVdQ(y?BWwp4_a9ZaAs^YS;vtn+)#VE+M+ou zO3smYm1EIqwgA*OYR21l=cxcg05di?sx`QZM zO);%vr_B;OonUX%j~1uu_#9ekeq+**cpJ7Tn>;d}J3S#WuN3CPWfJcLmmwyLnj1`x zAw!%MO7R1EIxit3Bj91vmDzZzqT0W~*jYP6qPvP>W<|yn;IS~)A4Kpi8pwQonkZzL zwga3d70VF{^DgHY@F7r%HO(e2R(1eFqP@B;#tDI0m&51lzac`a{dGEfP#KY1t@Hpc zPT2hqC?xRDnZ;8h!%;-uty}2E)#+%3#R}(ju-|Y?*#eY2K@^xRQVAYBdFTKcm}o#6 zHYYs;#>8b1bFG;oM-IMvak09Q4h?IAY+5KD{WnyO9XI*WpYC;KZ+gOxyPP}Bx0RLy z(gub}0a@(C`nOmv!!m-U)5DvF&tM{&T z+jJ{?Jz^5coZ&o;S#p#g{pCOcRKC*fb>*r+6s)aFnZ*$e?`E+fjy1vI#h?s>3G@L3=^5ILHyU)}xX>>tzD zZ~rm6d)@ovza!pk>z4oNx%h!u74PHl=tFGB#^j75F~LjN=U z?l|0QYDczXiA&A0?A&InhkHkWjbMtT{U~P|JGbDNAZXsbxVuFJVh$niHg$=CJ~Sq? z(GtnyF$5Ns2LdVPXg2DzbRQ5!CZID*O(J9+g}%C78atm%s5HBVrz#wDLZp6}q+m5` zXU7(>QF6M3+g6yQ=-L8lP;C zAP3|LekgWe6(#HnmJzxJhw$z^8m&4zIXhhb!=zN656kn*rXsaEB2=$$v}KHc=~*`f zBk57naO~T4>r(}1V24rLvwKfrJkuM8-;4kHO<8_Suq~ja=0(% zq9|Fc`wzaqee?F`S8tSrrNIYb$h6E|!Pl;KT(tl;LpaB8vBA<7S#T{J9j-+=IdPSGE)ZWK zDv;SLo-s@_Xe!i12)u#%B|a0-GzfFkoiJLj)D7t=Mr;yS7vzP@G9JnZYsi^WU;4r& zh0U-`1TZRso)w_Xx`G%ejVz7ukod$@aW*uA?)VeT7Pa479Ph|ww3=;*t&gzePMUjm zO5D>zBwq`g)&>zVOgVo~A1rU*z54r4Obk7I{p!azKO?cFK3rX)dF#0P@MH8vZdjGa zZ*&2~v|agN_3;J{iR)MY*KMBN@P-hB+L&0?X_oxU@K|;SODqAB{o8*<3=cg)B93|i zeLGoHnBF+De&LgP38e}}Qzg5~@scjjjUBdZ7&syi$@yyb2>qnSgoyF=3Ec5Dr7T4l z+?yL&CuSFj5C=CGa5+FN&n^gifumB9bO6f&S*YOz2X+zNx+Nx)Oz#q4)>t&u zA}Bcy04Ff%G6vlYYLkiu<#A>Q{9@DxhERRW26e7Qqvz(L7m63Sa$*>;MlP3|(2Pdi z!-^3_N}hkhk)m$@@PXij8f*6+b4M7N2QJJP#taHn&=C@Hz8H?(t+y=F=i7Q*Gj_-t zc3m4_?hVL)cB;Uc3Oxp^gHZhiR;vM(Q(I{DjFOSOjpnWb>gPeB*ugiB!WZr( zy<)B*{*x4Q4dZ`@_~%d)Q>}2UqeWWM5;Z$&OPU3~ z)OX&1JI_XW^)1ej`N}*gmD-~@p;=YTFHzNybHTL1 z<@KPFL7R1&5p3l)w05WCJzOB0z8C#a=F8ne`e-A02AF0Hnx-;H%eSnKo*1fT1CLn$ zssX+#yv|_@?vvrrvQfSPkvGOC1RJ;+?3?d$zSb(RtpY<1eZj7Bs1oQKF|*kX48Lw* z2ZMuzgZN2Gb0OM-vdQ=kDj#TTWG~Fejc<3Oh!q($B{Qvh=nbTBV1g`gV?irTj;`g- z1uU#a_ZgiFwpK1_ik{61OH+a9ayXx+C*YK7=~K?MWv#~BdM*y-YHpyKAnFAUtFV-C zxWD>Zi5DN~fYI$pxehiBEh%!4bm-K z;Fn?HwX-Tg99$ww*LrGmX(S&MESrKvm?qN^3}8?-h3PW&kK;oSTSbPVK&^Zhc85uH zsgz2e$@%d47VAUn&@;0Z?mA)eXT*x4R*O_*J-pyI5MJs7tyQg?ia9#{^_RbkuZ)6je1hkk-o4Y!hwDUqnVrm{OC{D_6%b+3-IpMat(gbDUuxb ztwd8`!Y5or`&i6CxX>pw4Nzp2>274h^bxF#5jG$?+@Ayd{O$L>mp{FDS4kWt>^FoO z$wp0`OQTXR;usmK5o6@;mWpIltxS{X+r!w)WCaroElP8o-S7{#6HsVaPNl-K?@nck zu7X7kjjOK+I%q%_1l7@I1Sj)QuKL?r4ev`0~e;jnfZ|rfEYtqO(DjadrkK6Qzn2%(?;N1LGXjw}`sSeFrr)e~V78&k-0(I&P2|g@J+UfsF)LBi<-% z=c$1Gty-X`+J}YNZhZ~)>g)osI1^!mw=VAj+X{vJ_$EeD?#3L-lMy{^#uL!j+Fqf& zxGn9hd78VMd8<|ffKw~norF7}j%=3$U23qkc+qYztbCqwo7E*3)#UB{?JTMmjUbB*CgS9*E7S|E{jI&uKrwXOWO_5eQe61QLRz zOA^ub&Cf+loY6E`cHotLs|dUXL#4(QkGz7geD_n@oZu0fKp$;pmQ9R^%@~2>fKsZ zX+R4(WCLfmQV!v@29-m~WskYM1VkgGJ}r4n4q|@#Tb#afv0J%b!7)R=ZXlNs0KaZo zRW<7j#h{o$SS$J)3P8o#51PVgM%994ch-3S2%)%ufvZQPQK>$-9F&eY zrV{7(*O)~|Hx{ir@|GH1sBIVoVq{f!X};h~AVHoniL|^83`h{-G3PuN`-tRo3|=%2 zk;!E!YVJd5knXb;S7ld)Nf4g&L;YlxNaVQ6~lfsX#bO&n6ch zSw;#W*clki+!P9-e)XNCDR0-3h%uEW9NwP|5OlcT+y?D>&ATxG=!1@bIF+lM@$o4|8y_t-2a%^u*-z02e8yNOBZCLsAwuCG_c(5rkWrixc72 zm3F2EfKX!u4}#jm4Gt8HRU-kxq%?}09c6lo6b7MV^K?1sQZ2He1i1nrlTxSKZF?b> z-%leb#(71NgicO8*{-KE+y(}AJ@5VU_VtT9;NE+CfB44_ul|rIoW&Ay4=%_|3U~bt z4rJe+$vFN69?Y<^xJ8|&2fVSb_~coJBhvu>7y>0oY9CQ?pBW;LgiE;c#TtH~)s+U! zRyb8I%hOY2x2=@6tx8*c{+7XZc(Rg&Rc_PhL$1|LjWgD*tgd}&RqB>tVB&MxU%_{b zCbg<{6TgtgqX7^R2SSGwx3nsC3x!c`Xn2TXr_YBQgkEVCX|U8!a~eD9l^4GDHaMXR z_NUnVjhet{mrDmd?utJ3rLKP(CXp*mRTJY`2Zae{E~O3vV}=A*5xl1(2U=&#QhKB1 zf`)du06`408O&&1aJ{)U|H?}yso$EBaW(u!t!|+)7six58Fk%jx%Vfec4fK8-q4Nt z;8`L3M(Z?UnQ@pLMWTYOc(Q)}@ISl|NH3HkaHO??If6DigqEN+)*tcELNpdO-3_$*kCYWHXC69(VO?=axEP;2^lK>+zU|$H=qd4V#sym`O6ge zNN0)c2M5>_y4n?ocJjel7}y~hmU@L_RIA9ZF;e}5Cimh5B8wGAA`)>>5~Gn-E4orW z*9+8$klxqxX|K9cJ$3q6;8N`u3tZQX{tt%e8f-2cXzd>k2Gl8>Z5NsQa09L>X`@oB zv@mp|nxVTi-hJXslNv_gnab75_6aO!`VVdMfvkf8slFC~P2-S+K-{IaVwk=f`x|vo=2HX2^IRp0;SliWKfjH_tUCa zFcs9d7CeS7?RL||f^!_g$(NhnM3&-v8a2gumMIf`G};_aciKdo6yh+n?mwlQV8afj zM5j7K1V=l0GkI*%4I|geWPuz+Bd*OG2=MziL`W^a>OZCxU<>JW`wuGqw|Cp0dU{AW zt&&I`Z4pWI_yB2G5gZdM8He@7DOSoR&=;vdo5UeM9MCF9bUCg#5sJxkeqAqCs4ghP zd(>UUg+KSwzF|tB5ws9TnvXS;>U4t#&W6p(pxBiO@#t_r+ZcIb6D|(H7$U*G^wiC= z$l_eKgSJ}J=@zxYQ`@p~AtDi%DjVc;q5z}Y%>s-m*`3i@VaTWC#GN6J0gS5ed-C{B z^6ao^Dx7M!O2Y}8EGpnTm}0}wfsNf`y1CDEtK@f^L2~`=p$@lnr5Q18^FTi04XRdE zX^Ts2!rFmi6xerzIi^cJuEo42mO8Vupq*wFz!KPuxWtbT-5v{p3l)Qt)nCPOYt`9k zCjJFC)-<_hZ%lt+V_ap$gcFmP@4$L-~bju zX=A=i7^3>IxmXV)`4b2k>L*BZlGloB4dwF1yH|JrrTu}WS0t-E{$#SsRWW+KhF*HdTsEt49#ZTg ztOk&_)wjN8(zS*o_7n^h%el^V*TF88GRMb>0}HAHQJ_{MfUvhwTvVhc$+gU=9pN`c z4P1U7Ja%dz(<8K~u=#J#wmlu@)b2}35I^tV;ue_o`5%sBfxmkn$+Pw=w~<%k`%k<{#NR*3B5p2 zgB`p;Y^3egJYs925S+4=HUe-m$fnU3x?!wtV7bS!3bDPbQ11cI5`ev30%NPr9FNJ~ zUI~g=h_zu}6vmT+|)UIRj`J-RzqNWk{Tztw)*1Tzg5NrDeoJ=z1S659{h(EO zTlRzs7q?_~KtqZ1oD>BL4INk+-7F)e@##21CyS-~Enu#20hu*iZ9$kZ=NHh)$l_y$ zC-8#KK`Jk-5gxea@*oG{QHqEZtR0LeSq}WFD&05{!61aqyJz6-M(u_EAjEjg9g-v>YfCp|y z#c9_UU80^*`3P#nLefF1PVHTZ0CSJIg^dstj251Bl~_)?Gh7(PJ#3UfK5{8>FfqqS z{?b45b!6~o4%u`k1Kv^VkT!GbIY9`0GcBcSTlgO9jNzTvFfnp@^O#X?K^CZ$jlS>z zbJ*a0{#~otsMJVk>E-y(u469>{IRYUL#SIEt-pX>q+^SB5V_8{AB9ll#)FKr=7vNh=JL0hVo6EvOJur7TWSEBGBZfRq$RyW3UHSkx6Vx_*? zmtYk9liY}3f1qXfcHVwxg71!cnYc#8#PuaTnt?wqec_(d#~8f(47R?b{l|}=>fl0w zHWB^H0I|^zdF7=dqz%VhXeo>(FAFb6J>JB{24cB zk7Y5%Q1o_QQPNyXA`_q<`fPX;#U5SFucrB2g&Y8PipH_v0pP4o?{RFy;$k{GrE(Xt z)x~!7_RSBkek>!3m(ARmK{=6{tew6@g<}yGh!||2r*J(|KyFqU5z~r>ueGbQP7M1uG3;{o`&6SpWD7!$)y$geHS%;|O4KNaxQq zYlbsxR$;}Fr~sgHj}mc5i(<7-mg^Z^sG#ut*!Shi?%4Y&0vsLM+M!+d4D6(p6*x&q zlMa+5^Uz1!K15V8A+-U@CV6*cOS`_YpdmH1&Es;|Br9RQB5Xqi{G)v8b1xcj39hm_ zT*7ytF6}=%`_iW zfgD3t$Udp84b3{+_nsIA>M`fIXkO7_mc>z^W&9+|WlVwGluGKDChc0iQP0kYdf`ro z86gw}`JJ8-iPH4BZ&jx+CLei)l$4okq_S9sx#cBYx1k&Z#24**!84l2@CtF1dg_pS z5Gx5Dj!(B<+H7#eQC2|d2#gl=w$+tpnFfma9Fx3?mD*=W6YXQml00e=C??@3yBZh_tYLH*|Ylo9PVAzvW!1S&Vq_Y4~LPpFW5V(Ip zGAJeEW}OCwlGWKcV6WM%=VuKgRJ;I8F- zm~|y>x!8XoaJAM1Lm8g~<-rH~Z!IG;E>UNMOjGkwnX%Uj)JiKhB$k%%ezR6zNItzZ zXVIEI(VB><6$Z2%m(u>A7U48Qyw_T3ZV+4dRm zMuhnN@cItN5{WcBKg)qyp?T^X%y7gWC(gg{CE8x+dPzo0vzsw1iu^7v|Ct1I6vTcY@FsYv>TKerI!X{t3Q0u z%;J+tQ+CZnJS_LWfAWL<$BsfdDzB4b##ri82DWzm?RI9?#Qg`_)=K=zK@q|6U27rU z$t)vg&B-NLm#UZOWKzk2P*MRWxIr=g{CtvDtMl>adJuOc4!YqE85qWHXH&5+XWJ*SP93aE_7ST<3TKa`{VljskcUTY@5lpdm zzV_mBv0@@${wV}4y8uU=8V(EbrCl4Tg7SmPdq?-)JHEG82~9DZ-A|t0d+#au?@y{Y zK3iD=98X4(|0y&qH1p6b^sx6Q<*ovWV9Z`=U>^4V+RN_;dk;@xQ^#aA48JU%MG9rw znjI>ZN1+nP_hUz5@PqR^M;Psk(Q_O^ra)#8v{ZJz7I~*4#lpj^&#xL(NHnsl*G}Lb zFy}R`DPf;bVGa|vj6fT>mpMWy;M^fd0~VVM>#(Jd5jTAT7}Me!LYX3`;oJRJT6@Jc zmXO_=0D($Jl%yb(~xbp^^kkK`WtlTMDoS$)GwSnzdVW}LX8a-M; ztVW1%;2uk@tCirLvG^u*FEE#dfai%$6dIokZT4!~hKe;R_15k62#X((fitr$rv3tnSqIxoHM-B4SWSTpVkm`K zk6Qge$${RF;M7oGs+U3gX=|NM!~adDXrCi$#FLvl#%cihA?As*j-^0$HmSplvVGT? zSC7z=a%tBUoeUzq{x&01YuUo;^r>!;;R25wB4G`aw29S5LHV4#$W7W-cB#+xsY4S2 zpiF9_-+(UrHeLv2NEgk%4Od*1bDA^hxHL1%C2HqGmwk5ng9r?W;TbT}$||qzT!h7) zMFE@+NfuNt1Wq)qP{t#m|NSHW_0vk`YE`EGF0UZ*(d7Tcy9^1!0z*H6o;6$pJi}x?_^oO^ zH0wVx=top+XJ*}>lY`>~QxTjgzqVB`V_<1| zP3~HC*tNQeKBZ`l~5#{UrA~di{S-Y5?s_-dvd5iq*Z}hVS87K zYT(wO(I#h()kF!=gZ0RLi4iG^xG6#tlm&WX*!LN~KP@enxazvJN*u|F2!4lYWivs{ zVQdu=WQYQY4z@gbx}8G1T(1@1G3{o01?4;t3AwNd=M)#}uW@ZeqTry~+xt^yr~uQ? zmBB=wB1h|Fg@lG+l`JqYyla6B$GO5_K-8uXO#qm9ei*$V?|;}I<5>nmVLVU@C>h40}3R=5t0FL)^>$daUOIK5J5ZEWHmo&j;WCthP_;p zy>VVa1a<|Y>j~%bbupM^f#J3fq)B6*GKcKdX$eF~>-}_8(8bmiBs8M}9MgY)M|~+m zv)Lus6GmU`Lm0wr2`6lMK-F`ABe!<5TSsYjOAF2>603I z@5T4uzkBq{i`Rg@{qpwJ_sDv*xA*?;-G`TVy-n2;ldTr~%bOk|+S@N!GPnv^2J%*USpr{=Nqa(dt1G z7BI*z!eD>cHC{>2YQ=dH=sywsx0q7o>C1f^0T*sj%Mr7)K%;1a8*F`e_L`IF#I{{5x=86r{oF zXmX&4L?lKB6oRG|8JVW|)tJogHa;#q$xW!p`>>n@JItFcbhAz~Z10uCa0($P#+m?e zGS+^H<+!|Q4pm*JC%GyS=UHu_I;57rVSN}R8>k08Z`bRY#f$_p(Lz#Ak??CbkI+$z zy%Zb-9(r8xEzVl{Df&68;+sarT z%_jP4&b0xwNNg}e5GPFqFXJ~p1)uPgHn9m~HOmOytG=&MY4j+|b;25mo8} z$z<1Gi&PR@yq&Yj7&C4U$cBLT^<-4UsEsx>9B`9=NB*IZrUJrBObXY18@2nXn*WX;b zu$Hd%3{hIl#Cpoy-Mb(|QL9hdK+GJDq>7DfwkW527zg*B(DjIRw4;SZuAgnfpj1P7 z4gXB?4-A`h7Sq5zy-0?T3(@GjB2EA1$S{hNO0GAEmTK4dR2yYG&`ya$E+9?Uu zfF()vQyE$#jO6n*5)W}RO7mCa)TyXDEXat7KcFIXo}vQ<<^!?fldO}7NF-p_1B{G_ zxTluf-A^PB>%GM1tCIoTPrKK*S))=jTL{BYkNOAD3`>gYfo2j`$lyKXd|>ZcUc&!J zzUz&8X{(Thf@A7`pb8*ef-S;WZyqLf3w6eL2ta!m1($>ImCn#;s2Oh#m+FN3B_4_= ze!#u42HTCOjtg^;Ojla>Mrs)`4nQxssRYU^O2BD#tn-jy0!M(ugx|k__l1A{nz~vy zZU^1i6RZOAXl5c;p(*i2>$>bwB6o*1krsD-Wh_ zTa)wVUu5?{0RkuN{o%v=7k9mX*?-jg7x;Gm%is?X*#7YE@BTm^B-}{(?GH0t={1jf zf3O-oqo=2!5wZ@#0xGXPP(3VMEKK2<1e~;M^&8F)1`Pq-Jg56zfeX2Qz-5AvG&wCo7Ej%ck{b@L6_GdVIJ=Tx8l;Pon*Ar_5KKd=jwi{L$I^# zKT4x5ZJLOfV=r5knssX(P9jQ?&Cz zz){8QpxBa}lB%(DH)WFaJ#D+4Ez3Y;Y?@N?6eb?6pr*Ffj^9{c@=(p%euj%_-k^>m z2AI`pp>sWAAD&!-@A2rUgCpdZy;x5t(AL^U>OUpSr75AwK;)bbFp4lxxKf9>k|e4b zC&cZ@h_#`-{HsPkFUD&dIl zm{6adSpGHl+Bx;*gr)%fh(n6uQILMXXvg3kg%3)U3id$Blia1>;3d=;Gz+wDS!fXc zYq}eck(dR+R!$M3OA`XZj|STL)UqP7P53P6$t+`VI1RM<%^;JF*+BfVpF1+V+>Fnk zH%2r+-)c3Y(o~+!z(3Qg1Wc#qhoUf7n4*GCHp`@1b~&!D(}R@C{sj9CPPCq@1TygM zQyoSwS}(b~u#P1`%aX|DBJsI$yI}-J^^96!n{4)hu{gkErNd}9iibx{)K-ZQNJ=d9 zMv42;afMszGDPq|0Mmc%ff`Q~842+=%$*-54WL{9vVVED5}F$-TM_M6yi?1j0`lt$ z{q(_no&UF)J&y_w-}Eg`_9LJ&T6eySsob`4Qp1yv}AyG z6HQ~WzE(~2OkJnu1sp||1bIPu*w$v9Zm_x2+2hhfF)v~WI%f$wCj!i~h2|1LK8)xj zp4Xjw`xG9QBZU;k8kx{eCK_%<1Oq~T_8N2kf{NR`zbyBU(s(qBt`~ILK#&|*#u)}4fv)*PYD}fQz9VdsTE*G*4+nQ9l z2#w;$G(V$J0~DZOeh}B5%Z}2x*6@%(L?E9&85=)fTmjUo*81d1;npzBD5$^MDZWY_wRjh($`~)nX&yD*j-Qr}>=fHB5h^NeASj(LIRu60 zb+8bz+6U`u@efR%nZADUBl8}9c#rK5v3!TEsZnDu2Odh+1MK~swu7pLX3DJXr-c@) zP1m^!J6fQNt_hUe$r2K} zq7O@i(mzyDnWxgrJr`SHfEPJ(C0x^itgh3`ji%0-@u%O;_~ZJf3iE178sV4%#wYzw z%uiL~nx*dBfhLEK{xuM{|NN)eh+lQqm&o5YgqRc!bfS05+R`5~hS1 zOsYCo-1JvfXdInwwi6$c&_R<6uriS{j5#$95k7U$w5qr3^$IBM=4;HzDNa{LHUqWa zd-u>aQtu4^h%&ki5dpbfU1M0O>+-1Qgb%h2g$G@RLMd;3?FCL1D$8tU&4oa(mMgKJ zqr(Z+Wl!=WDF@h96keKBL&OnCi}F#97wSdQ#{_s|H!HKFMczQrrvd2e8%QiCR8Pok zeRz+FuCrcj0#K*eF)%k3*%?qq2p+eT#4ubBxTJo9;b;5$?VBGD28aO8l|sE`a_Ymb z?6EKm0+EIyk~k5zjFE?il3^`C3Q~bqlQy*wT@deeL1Ku0=(h|B{}em>!SuQj!~+ny z5Q+Pv$e>I`Aw{$e0l@%_ASbKonT8htY56V>{VA{wg(#47)tM-kQQ3GX!o>ab;?0}e z*Zqfxs>rwK@ta9sAei6qM4UUn^Al4ap#iV@IQZf|{%%i9eLQIN@!*U5_`5wZ^$~uy z)i@r0aUXxTC#F6=ZuIf-7x%I2iN%6HLI@ge;|;XC(BRMtN`)7soq_G|jtcE_W3&|? zfi@%y)DFMeqCATGeObI2Tn3hJNbTYppjb?jEI`uO&NXw=sPr?3oF=K0SQlgVN@4QX zm=Yz}nk~_k3MBp(3`A*fq=hT4=^;<{_L70}on3|0-#Y+YOXr5$z4}O_cb^Mm@9F2p z?TZ*-kNub+OH4JH)B;GwtHaetErQIq>NRi%4mw{=Nv@IE4K%eL?T!YzvHUP-<-!*M zQXXX3H5{mRH;A*-hox~hjv_6U@M3*xE5|OMDme~LE-GIHR^|_Auc`Z$Sz5|HYW5W* z4Byj^>B9&CjTSZ*0j)d7qKy+cf$CZza48y5myF&(y@ow9I!A(r7(N%AI~wR+(A}6i zj@@>{R74DdAa3!^@D1z55^=;1yV+?hDEsiNyR2|W?#6LX7K34{d=Iy042o;oG&()U>^dco4Vs3#A}80pby zhiyVE?dS}a2~HgGXkkOpmkuKAG1eDE)tGCC4!92{D>TQXpJ<40np_ysOjo?qmN|`Q zWB~FZZh^kbN^(PEy(^Ecp7evKetAqFgW3kN^`Xm4acw_|pclUH<>D_b$wF z9aowle@bmkgoE0)9H_#R)7#ppCjb#Z6{`vW>4}aCT7qrH(3FRwy45?L{_XR9-#I5= z_Z9%j8ynNR>uwQsGxOe?H}m9qKeQZ@7Q*E}e7P|(bNN4dQ7ED1R19q%rfW(73%l(X z|EoTXzxBi`NzwnBjd0!adPTQa3}5N>l6qv6paxmz);lW+fn?X*iK0OtNhD1lA*}87 zikaG>%J-dXx}MlLkUuzMAB8%nClREN&}%zE8Mb(xtOkjMIX3MK(5wiYCItX%n^*&e z0>2kn$v1S#;PUNDRop+o5L!3`4_~>IqJp&0M#+w92iQIR)>k=exu-QeHVMqEsXmosVdU$qxhCic&;nBm_h?ECCB17T+9CDn7opFYUP~aadIGjKB z_S>f@B~$uDx)bm_kHkP(ke`lp>d5M7c^fl)W5Q?H=|+sB3{0X)EPBuk3J^`a7_s@O za$AEF>*GJeyUCc;s3sJi`n&@IV9uyMFm{lO-01_T;dP^fN2K)Le%!|$VKT-yx0hhQ zZjhXa6}TwgYR+bZG%iSHNy@seF91OSoOkqhwmGR&3sX3;neTFGW$$$A7U5B3eVnfm z&VqCaXNou>^XV>fI7FIAl|#BRxgvIKPIEf*f%_>&+6+X1x(hl$scxFBRjN#MI zK#HfwpE1%i9+~LjKi9Oy_@hA$kVaap%Mh4VV1Q?#_%mY)3zZAwXhF$Oeri;1BT-po zUd`!B%)A_$WYpz2FNn0B?%_O{ClvHrJr@{>tE)tO0HcV20h?G$9TFa*OOO#NX~mxoVZra%1j z376}KA0NKR1eC^fx{Wuei$Ybasqbz2^==&ODoY&W0r@``8h9=J>J;Vu?k26s&X12C zJxBst zywD6-r}-H#e$PS~KAh|{8<<<&-5*gC)>ZU9;+mzU?&%QR8^#CB*Le)(x_|=<61kxj zDD&80bqfT2kIK7cd@ir`+#vq4<^#H++qc7bm?SiuQN$izkDQ-Lm%1M_68@!gn_QPI z42J9paA;;#0`FEWfi=_3xtBp~$qtg6@tDVN0_Js-%P+X;=-1qIMmZAF8j2#J;-M#+?%D!n$hocYR1lBrU>>nysg`>+Y)bv*zUKxgTkZWz@yTDHb-=LpeDgX z&=jANnY}8p!M;Iy8$`y(BYsQQY_lm*7#%^1b~`rh@uFVtM_3diR-Ww0kPQ_N`Iz4w z9SldW&W=uw4o634!_(oz*GI>Tz&f6n17_PK9%J!|!(~T89D|i@JWY;~t)=OdSPx${ zDoJ?(C~a5m&rfh@;4pjlI~>lY*Oz;E+O~_@8&3Y2*)K6Pj(L^J678k0KClzf3@ng_ zoaC%mO6(W1RGNs8Q$qIZ~{z%PvJW(!hK?9w2g{r}+hPGhhQzvl}!fe#3xQaYds#qLm99T#>j?^C^`?nMno6 zj@7Miq;<6mS%h|(+%>@ zT%v9p_U~qVJ%_j|D*`@qb@6Wf7K*~=TK5}Mi?|JBcW_yV8kR(`ki41{Z~_G!SWRQ= zLHOh-iv=i*&CGm->#!7;>4mCco@l75Kf+*E@Z^;)RI8lj64M6oEU#}pRqJ?q5e1wJ z{#OIR{!U>Ju$!3u;1XVL#R2oMoXhR{Si24H0sc0$5DaCnM^En5t`?RW7218=RFjA3 zX7O0?Dgwfu_PRTzK6@8%7qZIF3Cugopx(=7_eM@bb4E?H4xHIDvtcvo?CaQL>g`$O z2v`BuhCbn?(}(eu4b$#(S)kXkmPs&DAfz&47{cdvnLw;$uaos+P+tms0a@go*5^~& z{+38hE3lCk5y~1mJWgo%twF*3SFu30dOUymcQ zuId!nGTP}2HQ3-(2oDDktmhW?Ee6LWyqDP)qP}*J-co`)P%_#8lr%v4F81i#&E`g3 zXnPo+caPqS&E?ZHFk#5h%c837s6(8uEzHb;q z2n!!a;_!mA=WA_8w=i&|Wp!z+?bUbXv&K_x9+~@(8Z1QlsM&>7v(WQ|?uTGN0p5a` z_dm*=?bER}M?BpbSe9zyUl9zLkN9>vIZr%s(wP$j5+7KvR)LewHbiO+U`-@)D1?aq zF}hv+?HeS}-n>D&wYbeW@Ve6%or^u)BYkxG#6J8Cq9Jc+=0jx8rhF|dCM6!e3Qn1R zDlDbN6nbQNA=d0&-Pp(7H6x6=^dbt7PlOBBxjb>r9L5xH1nI; z<@jd4ac!t?U0;8Gbi}bcCXePeua4!fobSgJu8bmuWN;3 zUfAu|TZ141!XQBCafGra_Kj6}u(+%FjFNI_kW*M2W^-|Ag%m_3kRodZ^2Ow7^z>9B zTGs*up0^ArG{Y%zm(_ReYjhtrl&pLMwd&%{>e559iWaR*CPiFHm^7aZs8VX9L_sXk zk?sX*3O1F7SwQF(S#`B#sTAsoBvmOuK&3qGRB?g`w`H$Z+a3Y?-4a>)Z11qxEWRRk zUt;tkq?ZpFd50RkU(1QcD?xg^X`uy{`kZ0`-i`N`Lhe5f-U7ZK+D!ykV76SV5r_@X;#y;xMwShrVUqtg=KF(U?ZEjTZ28DJ|p znB8B00|sdH+X3%Ea#pAkW%5RP8>mXz$b`VsG|VP=lE&3dIxZQE&E~gHHfVG3K zB>bnI8PY8#z+}ej%?eMWeh;}*W&;9j>d5T|b~xfxX}H6uG-a%@v%H$o_DfT79*n_9F_L@ta*2WuZXwL;9xJ$fiV z4Kl+J`WIJPkv)JRE!Z$(C4#z=e!$|_;a5v)Za^M2axM+oeK`gF{rHM{961s!aqmdI72vQURhp-rt;V! zoF+Zpj~fzI`L^I3bYN1SWAA*ACgsI|C1dRz!7YM3FuVe)!zdiBi7 zp$<-^pV8)&-Ld5+gINM8Zg_dEP2-WEqzpA^aEDw(!W<2n0534K2bKD_?bEx2nriho z0u$ok7Gh&(OtqJke5pjyMf3uDE)GV3dq^sKeWdA?nrAbJ7G3s zz?qy2Zgvdhw}agu4z8%Xju-%x*_swX&!i~Ph*w4Ivz0be^v?v&s`>}8Kh;D z6Dt(VI274xQF7S?q_+FTm~uTTg7}_?2GCpeV6I%K8dFR^RcTr*lQ~Gt#IlL=gi4L^ zEBvEV2>vB8Fu7fJZr-GE_b}4J(Gu5Re*>(-RC(zMN@HI33~#9hV{B-=<2M7Qn?(wA zJCmNHsPGgaoP?4^K`A@(NAQopLkcFj9s)lnr3Nd;AWx9{p(Zy}O|`x8A36VcaC;N{ zPJj7La5VkpHy!?(n~r|XO~-q0DsrIV^jBU#IeaABJWfM1_o!t=S%fX`3K+4)bY6tL zyoz#)t~zW}rwQ$)K0iGnjIyLospp2=(yjif*d12?G@U9~oE&y!6$f-UR3?1?H}jOI zY{;1z-m^kBTC?qu#x780Da0`b*f0B; zLfg@CHQh79z3^oi*szQmLgH%j4Ac@iGGl;V>ij%v^1|v;i)LrC>J=6(cQ<13(xQe& z%2KDWM-yO4S196}T5h{+O1jr|-gi;dT{^tDz*_FD@UDTyQ?a+yrM8dF)yM3~`MP>| z0K42HYuX1=U*S;!JltO^x7)&Y5kCg9J%u@*`1C#_=E%_eSZE$W=xI za0q#Z!x9@7@9XqA6Hi}jrrChW#N*M7xwm#L7*8{mDv0IePZ#2kF6RkUfnr?3`QLJba#8# z6&6`-F)3d2EUBp&0@BhQeJWH~)~996pA)z%#o`&3#V3W52@`?$5lE-vH2sU>5=w#f z3|Y_MnGw1xTUmJWiP6prUr}53efbIeds#MK5Y0jPcZelUG{{ZmtPn0&a3^%a;MLh^utx<6lH$dhoE3?tV;Y7+xq6A$D zdi9~9MaVYy!jzFaH4Vc_@VgwsnMZ#hWEM&TyK~PdJ;C@K=xFhPQ!^%6Ob@DFQJ)8O z4K@Z715#nQ`rDCt%XQoH7f5k9f;rkYPO<8+N$M(Pf*CR_DWh%_hYFWru3vLJLxN=& zksqUe0MkegfI`D%kw-Y7J5i+zr7k09r zdT}PzbfP@mUVtiIK*4J{^8tWCfMrX2V$2KFTwhD7b^LeOQGIbHMW?=@pt0B|B&jne zMd8~NX3Asc(aDXv3oOU$B*c=X6S+m}E2!j2ehd0+uozdq{vOqnCENlLcKWaggtf_DlG)Rnz*hB-LDzY}L%AaB zDz;Ubc*U_Xw9Fec!(=JDyt(G8me{84)6zJfekvB$6>r5ik;$(5@J%2Pm4{(5yzMfQ zj5WNn1R?2bgnxmb7z9&TEO0;AFecBlKT3gLHs~Yyagh<~$%{!`#M zLP#`I!mP*Wa-)xqAw@__yTBbXEeCZ~^W~J>7#&y?zk>ih8do5@kTWYPqO#RJmC3Ur zeCiDRHGWnhRb`uPW~eA9ujz|j<6^QW?qtGFeOS>3PoPojcw*`5#0%>4souVKT@IaG zZLz1c8BI6i=6y}4-e+wWt82JtA$tqj>`XIn24dvF{Z22Jw;QsIVYD0+eYfbdRQY~D z#Yw4N>1CQ1-GAa#Q4mOaR2S^)K257&U@n9jVO*WuvNB$=oup-CNmHF5Y@2zlGA2RU z)2Ix?>p_M&xNvDjRUun&KbyQmic2U?6%w$a4ZuT_kvRn7;7xYJQH|dS1D9@RIFqb!Tiuozw0ln;@Ca7xT=E ziKvh?xb;ryg#No&Be*S{(2OiI?Kh81zl2b!Q06IcqV0 zw-Y3+>uuE+5ZtlSDX-KHDWy=)Vwu<%BEMjZC0eVStIuM3YK198RpDE5APO!5u$0 zm^~9Pimga9jwt|V%9X_w_a-SP-&w!Z${OY%)ig*>mLOjv_P9Q{8Gyv?&~4y^-&;x< zzLXL*p(e5r`rngEuhct0%O*ArkKDc`?`B+Ey3}-U?vVH7{NaoHUaa3>nw>TgbRl9S z@ii_sF!RlFja=_0Nzq;N4yjxcGS!u@3euT(R7KDgISZr=y)Z#@aN%;$_Ufa?DB;S& z-8{aqZsI@NAPUY|GNl)kCFnsMj%6s)yn5QR!VYL`IY??cUTO9P+mOyg3V7`)8K1n9 zDHdUuiARGvOLp?MXOxkz$e_80)da{j@0k*kwFMeJ_yqPAgr2(ij?D!_(NIssn}j`jW;3&bAF&c2)uufeWZvf-i$Ngg>rFy=T= z$b|@_g@{GjAmGvRx>H=M@2dMWr~RvI>BqwT-`wnhO;~TC^0+RLabI_Mm=pUbasYoD zQelN{<^SVE9$G%u#cVdnNPP5Z`o_bmTq6F7s%hz3E8?;~yrW7-@nYJ7hq~ABd~u$t z6bnM=MW?3XZZYnZDn=6K9_@A*^5VjsTzsfnu_(!Y_vo;QLC=rwf7-LgSpYcBTk@~j zz5UfUKI;S0i(qtW@ZDo%Dr(&Co`G;~A(c0m4c|uZCgs9-`!|w{3 za!1AtyZGN>=OD+rSezbD$CyD1?dakxyw$bm!608vl!X*&I%vXn2`MpMUCwgP2)VN7 zz`|r5%trRYNGr=2NhnYdaOyrgOHZ#bA-NZ@_Q3Ji@PLh?B9Ln#P7$4wy#%&Bg1Oc4 zD`?9#R1r+!C4B4G;aN)B!+yxH;&9A>w`p-`-DgOMIPskqQhC=?zrD zO8D^UJ4`SG%wOJ&UsHZisi`Rv1Nv`E9USsHrHu`$tAI}nhyUFvH8dON=HKA^t^_Ii zUb}<{O1J?)LZAe>1}D}=J%LK|csCln$)K-MJ7>JK#~#7-bvUpV{9MisO;(k!;)toy z4ppGg*mQC8kwnC$a|U!}-3V)AkGEC>uI6<5$CMlYs1uO8S11pSall4~y9pBH|+~5k8>@F8bIaDd#>mGq!p}7pB^8F`m0w|T4T=xvo z?FNNziMqXsWObwIC=fsef;RBUv~|3FqqKEooXNaiQJ2joXNyIcffHz~1VVrnpNO5u zuw=E{;N7}UAD~lj0i^34YL6Ay!z0kh@Nh6zwaBoF@2Z^vph1uTlieF?dB$L$)Kg-= zd-YNuCw&09T6WNl*R&l8+ZSF{c|w$LWxucoVLFYwMJHQ2M?*sOLuk|uGBXSw$ax&v^B0Y3_by?2d8*}PB0^~ zAT4H4Th_bjToUa|>ec7*IVIYXik&TB{#Z!UbtSa7C0z-6&0}SFO#TwfYUiO{}#|MB7T-TRL}J&0-KSwlytctmVoi0{GT!O8=Z>A-{sx^(dp|156i zSw8}dV1)5gU(dxLftw z?Axx&gcc$HqVMtYpFaQicd-^*SBLn0ioEFt6Owk@mM?bmIFCYk~(j20_8z;9^)njH)h z8Nm`9F^_5Im{%kGF5&j@U2EzdSMXO2v>t>}T){8_-w@F4Oh0oid1A+)hIQq6E^0C| z1$zrL04l%T9Tlvt@GU!-J+e{~Mq_9R(@3HQ9Vv#mtS%RauC-GDQR(n$Ze^jsj<5|q z=i4`J;)&Q`L@;_7dH+#of*3md_8oNX%=7~4M={t-%nv_cHDAI5%#lmVz0oryLr2&| zD%jT+!JC5drB3{)0Z23V($08_tLsUnuYUOMzwV}g`Tpg1fB9Z)EC2q}Ke>d0U<(ck zkzWyrb_@N25uOSH`k%`oUXZdGleQZ5Q^xP0D@*AsAcdmpIK2=iFuDz14v_Q+>IltQ z`j)ZCJ_yc9uIOQ!n4%{KHA&8MC)Odiln4Qg9~3fn`f0_)1*Gm^Yv{{pfe^OCy`fLQxRZBLFf^hP%D$P*=Tr6qj8PrsN_p z6^PX!t7Zy#i*joncH}Ta%>aKKUL#b`cAG2V5ZRkd&*VswGN$2^LRVW54XS;Ibk4B7 zLjrxf0wewM>*44a+!@Y4Ms=-+sa>BlLy)ss&6f;a!j1&I8@Jr;*KNkQg*F=rf9Qh` zFUQ^O4WR?jN6WJHBO>TEBZ81FZ~TvL+{TXNG&?zp?3YawlVJL$(1`)r7K?*{w>L^cMw_PHOu>h(Ti%-@zLPoDRC>Ypr5D63*1%!AnhcKEyDtI@%$(b=nG6iYb+mV5a6 zbaBX}vP}0E+QP{K`$Eepk`j`+yFfV9b3)gqRIzcr%|YF0|f_TcCIGlDHL|l zG_+oMgkLlh#@xWKgbqiKxd5aQS~#9`h<+e`Z;pC}LhI33(erDNwB6<->w#Wb!v5FDPj{6RS?Ac@GPlj35etFC= zYvAm%s~wX*uD2YZ51D|7*uT>r99tF_xrHnZK`<>rzJ`-fpCfu93(Dh&xU z6N+{D%|XRck&Ul&6fVqMH~EqU%7&Z{B|Vs72ulf%myMc;tivhYWS&o^W0+DqNHgOq z(;{<9=`Q{7@98GAsfXzaX|;fsChsKq73_Z7t6NBP;Ze7gB*e^J1Ce3u#tJ*3y%F<` zDq~zM+ymVd-AWkyw?$Eq8BP_#uN|Ku=S^>WV(dtHJd7G!t}8(&CkNfB)EKp+9*M|C zvfuUmT2zESwIDHCnS%A}9i)#04Inpwlg|u2%Qe(X{!83-aRtRNM=}9*YDEfL*9)hn z6aam-yk9Nv!HC8KIoLU0Q~R9Ox);X^R0zo;!stTJ!X!n2t+29UVAe)%fr6))OPntuNmfq{=$TZ>tY|i@7GMqxI zWw*f|;$o=wJ%<@rF)?u=u+QYbQOEmv0;iI#9ylYWZx*Lg1fSWpH2&gM%7|6@5mh)f zLc+j|S*PYHcG=zj;bUB1+7V45aP#xuf~Vx!0o;GZ+)TVo)?zLMKm}E) zR0=;wpk#kzg_%mC1*N)A`$Hy^zC19lOb-|G#y2YgsVsJa{e{7Ztzj?%T|pkJ^$syk zi)#!`X%?|9a6-mh#QjXjG%f-dT53j2 z7uJ|;VdF0x+qS`hRN2J$sD(RyCRs^8sMNYhf(c@qPe!XnnBI5@fTix&%5Z-`2ar=3 z3uC*VSTm);LvRsG^x1Dc92tt-XD*|fGL+_Nxya%|yV! zy{o~&jllb0-YF*5=}vHI5eGN~^WA9r4k&bYES9a)zS$k8lPEPp1CenOtuH@6Wnezk zG8d_%a1J1cGdZ(H%g2PM76!59>((8u?bR)AZg9!fw0=!Gm^MT?xce|$^7x-Tsc;^i z;64+zx}^~Ph=5bsLN^!n$AN$BT4$ixfaznq!%lsgnTN2S(j%hD3%Z#83=dzx*SHL> zsyg%ta*7nmoaku^5_jxSD55u=3Z*lnnp%FOFsqaa&r-X-g=j|c>#U0i6a2x?p0l~? z@D0M^AlLF9U%+msG@j7pc_kZZJ@cib6Urt0I6E21ohdl$9;F4Mv|)V9A=|XX`P~dd z2Qy3LP7s!52_YEAvivZFff<{w?-n4ui`DLrKmGXdJ-A-vM=)n*SNH50q(vazzJcO! zjS>>@9KT`pw3(=R+gfJ%Z}vTH2$TuQq=jETjg(()-#E?0ppZdb_`;6Tv+Xq?$~-1? zjU~Vp+$VZ8SU3RE3S%HWK0L0pb@wP}2dy*+?EU4Syl6I-EM=959a~x(-XXZt(w=tI z(hTc9w9^nt$lnWi-A*czj1K@Y#?xC@Lls7$Pc_{QWuDR-a@jp3O2L5#i-VQGStUG~ zLLDx&>&1ZwlCYT+3eF#8P+Cdd@B*ViDbBzFn_77NrvJ4^O;Pw0$~deZ73*MkHp zx+8Fd}LHEl` zub30H0NPX<65(>E-WR8z7CbC|EhRRcx*?s9?dINT68FmaFCd-_*ADo^IeK;Oi8LVK zsK7l(3HFl#tn&H!%Scj9fA*yXe&{)o{_bE%$SnZ`rHDHOJDNtswY8OW1Wx3c(kN>@N!4 zfL&_Ng)_~1R=LsOQX>itheZb$G8bgCJ;A}$OLt;}^M*~Y%i2Y_vh73O49id~P8z%5 zmonTX9U`#MJCkj|i9lkdBGF;r2~6qoFg&g_95%vyj26EyE5VKyzgHbtY$MP=DN?f2 zO_typEypUB84({+4<>8B_gLfK2EJk(I7j-C?IpM_^>rLNp=RWV6Suo~>Pkx6R(Vq! zgMf@&V50Ec>eO?OV}yuQDwIj zA6T-Oh6^3N(5jE(gYkd<=^0LG59Z=o>hBdscQfg&2dignFS6V*FGA>m(WiEeEtu zz2^AiUvGd1CN8Y>q%|_h7i7gNi499q6Kw*HOzCZ}B^u$7fFDzX0>>kip=yD|mUsb; zl5WeeE|aY0Cwm9I6pcUQ^ObFtxm6#3sPWj?Ik04k&#WI^b$4Ho=V1Az#bW|iVZ~@Z z7fD?Uzs51LEf-t?FGW6ej*GDV73lD=BBjDl1qb=6WguS}%Qr?!WjQyyj?)r<9UMy* zU?vmlPS=U$cXl7^Q1uCj$=6YJh*S!5ciW=c5PI#`fH=s7ZZZRLpy))=faznnS`;hJ zv9hHjo)izu?KuaP5>7cr7z$5FrVMja-5!F7W;d(KNflE^?**7_+Y}x~KWG4gq_nn7 z4Dx(uE!P9mL5~i(k)bCrhoznY+D*1+qd37y z#`3tkpzeL6sz*@8q6b6{1xukIAnGSYZCA}pGf)iuuP0DlM!t~v7T?I$ z^ojI#o6V<}h~EdGBSrPVkG?T1?$Jae6DevEHn7A_KXOxIA4yVJY}>mShyw>N-Y;Ua z9`T5cZ*B-}q{Rhwa33zo;Sl8~OO$?+3!DcK;kfuO9HMf7<7_vW?iu4-2P6t62o;HT zx7)=IT3s@kw%hv1rswbA*5J8Y#uX*Q)N) zi4ZVmtellH{lz-W-K+`_pb&#c5r=~L#(cnw(91wH(0_}dcF*sO+TX#Rb|=C-%X`?v zwhQZtFuwhYwQgtjjJN=gE$;dloPMYw=KLfR)Yos%7l5T3p#B|1l%A{DEl;AkjVIvxZa%{_c|!JOU0_f69c z1qkgU9$Cng$!^{8*v~^cmC!a6*SkgiY+i;W9od1ow z@BKWC^q7KEsDk|3M4}XGY73VxwQ$CAd3>C2jO%x+F1?Z>1__0^%M~)|`r*5W5AdLK z*STuUE_c45*Pv|Lz?(pys%$hIoxPq^yra+}nLFCW;qhsHS^Oc6uG6Xy5mxdLx|BMI zy4`&px{C|eWM)*3>x5EFW+T>xLq#tuut;>$c;fyI1v6)9_UVF!nWX36_qPZi{D^v9%CVpFP< z%De!W15DsNS4lCiyfN9TC(bH@-u4aBr$81dJZE*4-DYbS)9Dgv2dCmMh)YfD)}y@{ zgw}^@0Y{dEM#glFujW|p8u`?Hnw79iXrqUxc4+c-0vp#o3~kd6Jchx~aPfL3mc@H7 z-hcZ3s#LoyK!p}BO9Zz;R42rT5i$#JL4%k1>JZTz z1d5b)BWU-*)KE1EE+xhx(?1AzLm)(UhtY1-QSu>*(AWDBB_H&bJxV??VuXoQ2+A+C zETv!vE04+x+FB2C7YL~4N8b;|e$k%vg3%jSn_E_}^FI!7QhUMB1Ct9y-1S?mY)CUa zXiy(mik`<5;`@f+Zl~&w%#dLj@s2s)a?Z328qYP$4OSZg?06pSCM$B{RioFCY487P z@Xa^26VlP*(RH3QIvCy#sF$#>hoHHh-r$^ZttE$%~ zXT@9V!Pb}F>vad*P#0H%N5WZHRac3lb#|iZ)T%|88n{Oycj7cCRFK}%j@uyx-^4HW zq>Lc53MWD#dyaHicP&c3dX%h%tplrW}mp!ul+6sg4VoR z_h~q>ADw++;JCPz;FqovyupYB865u@7LF_R?{+(w19m@t_`e=@Uv_^URD!>3^b=^d z8YW7}l8kr)kz!Bv5>#;O>$9pwJ=o{Z`uE8g`_oo2bl3m=Kr=PTK7)u&bP z)4oP{A<6KeQ9gGn>vZat!b?HlF=!jKJR%q#H` z-BtL1p}s_L)$#`$sqCzL!;=4#(Mj|BM%u{fM?}}AuzaVY-V0YIfknjTJ7Y|qZN8ke z8)?guIuktK-@@4z|77KcO@T8F=j--FR%TEPgbg%ma3pUab9t*uayTr_nd%O)F!iPO z#+sBbVZ3PrsGClGfz4H0HNIK^w!vJ%CIu>P``0vzFOT#AS`j1=csm%S!on_9=a8S% z!tJRr_zvlGRGNI%5Julq3G8O0rJEDvDXNK)%{I!}72&i}+_^?!c(&h6G(7wDD$6}~ zBIqq}eu!`#dL6*D_jQk{ynya#@4G)Utyj8q>_(Ki&(E;aN8-pAL6*n{6_7^PH-si7 zUxLDQ#>3482AD+Io)}E>e)ak*rA;bd)ca(3N{A}OnU}8|=A7x1`x*g4niMeEI-^2-m6}g{fk!63h}^jJS8j7m=)yTm=pZ-DeiWH*5YU* zi}Ll+?gC{QZ;<+YI#7OGA_#i$+>h5cEea|9f305=6WRu4k;0jDWw;2xpY7WTYdlX2 zM@QF^*kLaF^(+rR2X5uBlQv04r&~86f#3H00-3b>t?Lk*Xw9kzU!O{+&`t13pgI1_p zD4{Lx4dTHIzM-}csVIS62v%SX`ci!s-fo2~u0Y&FN2J8sx*sNX#Qk;*%s6+H;ZA zM1DM`R8O(k^88?xQaEKMGyH z>`_N&k35W>zuiR{G+PhvrPoQ&zC;GoBdq)6Hl<6(|wEZBSs9XkHryqzo z3MJL)9q=M$S%BXCHFKiid6s*jj))~Bvg;oPjNc`G1z|#HM@y5+9!*W;dVW1d?f|G@ znO2ZLrWdD5oDJfLuDV^U4F$Ogvz?QQ!RfiwEr!@v_Um1hx*#V5LZt`O7dRR*&p0gZ ze7Wj){5PF?F5>;hk1lRscW7ZkE`vWvAYpB;!~!6ct2<+j^R>7)jv?{S)jIql^%4~! z0ON9gHQTrbQ7veHm{Qk?A&maEq)0cUD|9>!LTm1NW1CO4csZ|7(u^4J;aF$N2KqF6e;e(C1VlLD-oRMO;-`747PyA48kEURV^U4`)?=I zXUXZ8-Io=!zwExFB&q$f`_6FObaL8aJ6JtLmylNzfGk*1Zh^?*g_-Q~wSXb30o{&J z1j~kHfy}d5C4`qF4iH{?K@CmYUiWGDoCaOa-g@z{QJN598x%kr#vaC2nC^?XcD#mR z*FFL5j9**8LWSI4iwLJh1ciOK@*@{6L%Y=$wN9bx*zN|2*{8o3vZxf!CaJ{_1M8#8 zu>tEpMNSe}ll6WQ*`N|YAPA$nx@$hX)2(k$?6ksovpLhgit9jIA(iQ!!q-KI9%aF3 zP)5zp+hS`~mj-h-+xw+LWMM_Jv~Wj?o&_Fs$;C32aTxqPt0Cm=uT~@j`w(4EZDnLx}#*{GDJz^z%)`c>(HNekxSZ~w&P1>~+s4HHYaR}EndVbxs%x90#} z3et}ZUVr%fFnjpJPk-7$(Tno}YR4qWge??tDicSnd0^^;8p=!F=f^2%_I5eFLktoG zFQN|usp}#UnKWOtffRM0R?zYCR2kM_;k=p7AF-`rr32B1jZ1tz+KJe*W)}3f3})e_ z)Mm$`z$!bviPJK*B=+dCRRVhvbh0z_qlS-uN)aMdZu#C5t zd$@0QXrNdJM_rA-;I|2y{t)ZZ^l@j=^)m`%|J%2p~uSwCdXuR$=(Yd}E^`_f|gV2s*$pe8iTn7DIw3#X3D>($j9-kWe23iJ|zIFe*LgLDj> z{Fr8ccP9(F0zk0;jZ)1!pP|~v)4(`l<4F3XYGaGyJtQS~80Dc-Ie7Fl&g1>+8q9oV zR=b-1eM1~E5xuOpOC-NBM3t_EWVpVK0)}Y@UH*k4?e;~KJ6nDJ@Wba1U;b^7E1*S_ z@g8ohfg(zl92de%7oq5izfzV32BoQ0>Ai&MLTv#5C{)N8FX;RW{|cxO%rOP!q=?og zOyN0sjSl&s$iD^>!W=q4b8{ykLsN=OP~EH(e1JLgs0>R$Na0{m_6jtNo3lKU%WY8( z457{!x7QPR$cs3vjyM(Isrh&NYDJm6-+zs3@mE!si4j{v!& zn2M1@N^LG}4Y9Qe?n5OQo^R~Zi(D5d=r~NL66ZAVxV%luOIHFmcRXdwX@|Qt$24ls zcsvzd&mL^nA09P|*l@fEPLp^HeoMFX(gH{&UX%7@mPEyH8v);hmT zBFqb95jJsv&K_mH7uoCKBo7XK{jY*cOyzL6 z`^^AtYUUA<8GiiJ7jR-9e|S%Y2&uLh0(eRxAvEkrSIhBCDmnmanHhaJ)K?&M6A08lDcr47HM|K4?z@+BHyGCCh*Ygqb)wOb?gSg~SIG)SzGaWWKp_ zKPf~nSdHBU8ByVf@d8Q|FpZ}^#ACw{IwedGm+sMSevPPjyw)-+>66fk5HJ)8R`ZaQ z3_D^0DNxt}opb^$y?7Tbdx8;~{%D0Lzq8Y+k0l6rZNJ`rzOi|Jg^@K`FHH!HY zP_t-mg<{+m<4fJ?)fDh?plpAB|LN1iNBA_V42@p~L=8|TtQwZQj?al<;bS02aKO&$ z7LM&iy-I?yhM^mZR7bZ=HgQEpt?bhjOna+h5jVomq%!5=^$yUjzSC0IuCF|uaL!gd za@iUmQCJsyb@5Nhx)$Mfl{1r1cA5oO@ z{-x9P_xW5K?1cy;W$(+_i{Js|=i;JC-kGVK&BrLA>uz2UX>lo_%7O%sjMaXw48pzc zNKe^=UtIj_;^PnhI{ordqzh^{~-Xf8G-J&kIt4_|(lcAsjj06M#&NSg`5J30#&S=dznNGi+%P%3Q((rL65}&Tp zQ|VP?Vky!J;)k>&U_Cm$(r?`D7SSgS$t*N5Ud2RjDQXqI0vhuoSx!cDL;@qrfEfGD-9O05P-#P@jDraQLDqa- z-KSRrLz7%ZzA@Ma^k{riXrF(ruG*yMcuMH7hsRF6IvpqbI!-~A!m9#BD%Vwwc@dxp zTlI7?N|cE;SeY7Ug4%u1t07=!5(pYlW{iF&PStTYuz(Ddfypj(8z_@>E|IZeDps{b zQamtquNE8cRMxXv3{m*72_}ssQVn)tqzLUqs*bze`hIu2Ue??b3awU7n=@pSyP1t| zwgY2dDo=2lc8?@|F*Klbb2u{15)$v|2n&zoL)>ZBF)q+7l}DT3n|#S!62uo0puj|2 zA$K;Vd@>f9pduBnLNrUed$(6hX~7YHeE;JYip0C`AO85^6I?Kc#-=Ekn-mU3VNF0O zTQt$tbiG_L-i#sc8(OxQ$3U%$@l4GH%z&Mm!rezOCr4P`jVCidP2eGRq7IOv$qf%_ zxV#$eeghtq9iZ$yG)1%IX*6N|xgSVhYfL20;dBbmR(vyLcUg+9rkECzRk3h%$Fp}{ zfXLR@i)C3)1oY_!DuGRgx5B=~@#e!5nG7HBGcq{e-_yg_{x%|u3YCtGK< zD1mAXL9MWWoM=h{eh0UF3c1i`MZ}MEJJgnrZeLU`Q5HdU5MRPo<7@d>><;#U)a~LC zH?rRTzPCX4fvh90X2M+XnI1ru=80bCQ=&&-BH)uFJjm(%4p=g9tg~WupN7+VjO~;a z0=Dw`9QlNlIcboI-kuS00?i8qCn&-hM_glWG)kITpl5Hv^@9T>HdPv*2#5h)1&N7M zr8$|NFVh%h0Tmh0FQ*~hjJ3@;eJjD1nYUK=wNj>N*EnY`feJdcrjHqUym6;7uQhF6 zeXc^nvlydWY@eMLu%vEbxk0u0Y&ngipv4GjfBw3@Ka8Al5&vi~PgEVs+$ z3?vpZl)d@#{>#IEIrwKwryn=OgDr1Weqr~~@Q!)>(ZgT;=)98OmWBht<@)(f;tR47w zI1tlaG>E>C1pqM|CL0Is$Aiomu#ag@4tjIg0QgLp7`SXgPq37`IQ8mH&cX$n3dSn& zZGd;Y$Rn%`)>B_%%TVhA#V!cq)mZ2icn-ixLPv-ElTkb6(P1ex_>obg#VY%S?Rh2m zk*K_~_eqxsmdg5&@-y?)G3Lp4VGNFooTMLnS8%V7jR{8fu`#F5co*C~d{k$<@Hzis zx9i{;pZ*_nyPgK0;c)++0{s48y{FGPrvHJCASmGf=eO%Q$Mk;@jEP{H|9`ulfq9>E z0{DcS7Kl#jLI3y#NwHA+(lFNxrOjtD>akH zEqWwcS_9o%_KfweQVxYtGA9oN#|!7v3z$G?7qL(ad=t6#2qLP+*U1L$^-4=H-Jq@o z6(ZE5fK7*jiM73vP7`H*=p6(+k zUQ3ssDYJ^?4=TJByf)ly()v~RkI~9Y6k@(drJ2++(YM1D15i$7=^Kjf`8lK$?+YOt zWtBVm5-l%p=jkdb^8gc)M?3%noPCMJ7Zbvt<{po;~iz=19(%?w>;;I=$Nlh+qSS9=Z8d_Y+ zj)hMTWAd6N#@sbcz!>~K2xL3dN|w6Pf9o4;#o;4`$|7{j@52VU*A{2`i4M336NRS^ z@Yyv&Ka}elXA>@FG+Ap!r46P^3iXQLrQLwClDk28&AA#B70Lh$iS#|~nk$v{T-qHR zNtKNe(@``6A0~|~Tn7n2U)iD}+q6Gzi<{IuHY6J`X5tEq~k)Abo%QONem zD#m&qlNv7s5CbiAE*Q?F^W&;)po(LnvSY59WwK+Th3bwOh8Li-HJpJLPPbl2t zRupeWqAS|Q=WArB5f!JE1}>X00+*K#FyXBP!rl}2P_eoA8l|r4_Z8y8zcWJS zX0{D|iP16Hyfehgtr6lDjkPF|tIKm)w9KpDLt^QR`b>b_8&Y4tv3H1WCefBtQgT}Y&*4mB>$W7DIJdjU*=Mh>&+{^OX~!*sAInr+ z4K17{N@|?1m$xg7NQNtxJVV7f)R+{?o=!cPYw{Xzd-c@@7ly4mc0__j*`=LE@j^sr zERcY2i^zY&|0;El(WJN|a8dvb<>TZ7fCylC-KwAnOvFFG{o})D9kv%pr9%7KdW#Ri z$T<%dLaN0evHT&^PQi+Qxmc+~3v2-{t84J@ik(0?*Q5{QnBCNbP z`>O5iOY4)4W@OPJ*pQ>VD7Z`f7D`|r&k3@7gZ4D}zO6;$%z&!6>m--Yj6YwV(N`Vj+Y=-0ncXJ@J zTQ7pmHFO$_uxs#8H4+vaMt%TA53f z!LN>gU2S2`66(NuYl7M~VSMtbbZeemE{uDqy*5!xqC%cCtQ~OS& z85v2CLtJ0&HK^(?jZRseJgJl5D#D}~Ov~KnIpLG}QWDdyPzx5=kXnd*=`ezX=rhFU z^d|M|^u17e#MPJ_l0ux#Wy!uBcOV4^a0?T0Fd~h?L;S6v(29m>W{*Iw zrdM*GM$`pobd`kmn71P|HFl8Sg5MQU?e*nm10n*#0>ZXlBaSeWSROu5 zpypr|4sCeWBYdxJH^$e*5qiVkB6F3;A;zV)NyJrLr^1t+5utK4L`7v8@Sx;WxyR|T z(v0BqaM)OgML|kTnX-L*y*VFGm?OVlp1u)U9!}cR zhV`)_5Z?f=1eV48>hjvaH(lzB42YrZ8Y3;KppLh~ zn-luT)PAV5Nvn7(do)ysljj2Npr9W(DxDU6UV5KELsG4N;UU1VfQNjD z0SuUVnbNgKbdB7?$va*F*JRyql_)i=w*t=S_@u3Xqu6zeXJ=Vw z4{gU!t$r)w8ZGz4vjAG{wE?zHi@b)TM3bg%pn#Qs*LJYQ-p#6{P#f|t5; z5bPb0939sm=!Iv3{fbmg{&(N5<(EM`Q0WJtU(M&Crzr zt{d-D1NcNTmQzF_Z!RJV#b$$ffGl!-yf?$3duW%#W6h<&di5taeJa z$w+D$4a^VYCEx%9kTwWH{hhm{tKxJ-2Pyl5n}aPt4_V)?U}<5nV=i7=byyx;-U=4b zWNx#Js(Kttp5Cu75xjtd49n97agI|&O=-OGh)jA!Z_wtc{~j}{AFHUShmSu#?0InW zATNNL!l<|uB#0E5B8W;XUeXF|runFfmz@GA9`u3ClH$;# zcND-&02&Pt!@%*81ETL7=RQ4%=UCbRmcHc$8M^5av;hop+HOF7W|qwMCDBKHHZXp8 zOlG?PO6rSjGq8P76WMR^ityT{dn^kq0f8LBMR<1j5H&aadwRa#;d9{I4dG}BumGN!WqG@?16wtT zdq>_Ch^E)$<=whgHBsuv77{?N!A;?)A=e91prFW@4`d+YSNYouX+RdcD&Kez>eFd@ zDjaT|wfiG{6GGlkQI&kw{fB)t3K!A%hONfNso;M-9gxcJdjuR%ZfjZ5A+I|Z+ z2$!Q+!Rmt2E$uEx8PLvB^butYXuNO6oBO-jEW(fKRy|MY3rDk>&o0&#q`vKSVB$=I z369itaa|-P>m;S?WHz&#!2Bt-Sx-3fC6u+FJEA#!&zm!6*vGB$c+| zp(BqOX_Y02d0XU7CKD(XH=j}aK#A4J7R>dTDOhvMnKO=Hm=HalrBz&Lt^F&2%&1dY zE~fRqun~mfFffkno8XV`EK6x81VSEG(OSej$lt$h52vZNJ-nsb_Q+G)wnzT zy)PbyV`b+KhQLajfqei{hJod3JGx1vD`X558luQtj?gLLa=AOhfBWhE=ZD?rAAb0v zBa4tiz$lq|ui>5*LC#_o0RGr8DL-)n6tXG`Df9rd6D&l0izp~m5Z4>fs2gl7G<}z| zLD8IBvsOeQW)pa{{Jv$_laN#n(bu{w)C|Fj`0siI1wS#F%dy>F-Bbk_lU3T2)?ER} z-me=y`eyR_@&?T04TPk>E59eH1@myqNkVat1r}~P^?oQ?w%3OvRFZ?q7n5Q3F=px| z$q~(*fWb#oP&otGdNQVa;H0g_>QF(ac12&@<$S!alCu zJt8*kh97C>M&8P}B&%MLv$1O*hrTZ8{@fU)h>EnZ3q`IDMsUJ@GcYTW^uDxiS4XVm7e zK_UfpyS@ct2g=6sU6tmUkW_a>rgeh;^=kP#Z1S{DaI^s%c?{Gu!?idfxh}IQsdH%A zD>BN;yN{wRe=tEveOx=;S|V{zW{d{yI+ECKJbqXt*EW>X>D{Kv_uj>u)H(aVXtRV=#rKtiyN12kMiX2-VZ0Eu3tX zN8J9@vAfLC(y4HwQd&;jVGEl)rV`ORJvN;BT>oK76_K* zw^8bJ-rH<20ObxDEz*ggx}fA?2c9A^<`m8+s$`=SBhjEw6{xs+h)*&53e1DNfPpZG z47@7NJ!S)3iLUbf6c^2i(HcGU__A9csn+QwXo%fT(|l5J|^iNFh(PDZNne5#DXhy9&CvCW7y1FXh7 z*B&WZNNoWHN6!L#7!9fp&=m6~wFwmdm;hA$RNGT*L|_0^{c*LP7pjRoF{ z&dTA~EQTFFr>0Y@m8~IwQoulSEnqP;#@SsXlc38(Kz}L0KMUofAC4vIaLj_lXDGbf2*A^~_i;zi=(G@>ktt%21x@e%P;GWLYcMM zGCCv`7fPP$ePgtifh*jx+u)1J1_^iYKG@AZ{P_M4A0L=<$0WY8@$(OVm6=3`@*K%c z1DnB?BTNV5gWC|WjIIE!=_v6=->7POw6u7hGN3YDX`6ZcQ^IBe=FJjin~QK9@>8K0 z6pDf?u?s3j^!i1VZuThIx4sI|#5rin2BE4!I^IP(P6x-Nds4~+J1tQ0kFJ1F>c&-? ze%KLUqW_tB&CJ(Rx=lT8xX}6JSMX~)wNTEUu7%=5xD2=3H@gMi!VI`x2ofHqhwfnt zTku8K2dEvOoyiymHHg8AHrM(*F+*0UeN$vW&-tBq$mR>_-dWzFU9YfnZ5EK#`B>1` zw3+|ecmWm|iZEwLJP#=>F+92gO{nRSrne_d!X=@x-=bG;PWsm3N@!?E*R6@rNCGHmyAuNE0VeYIGtq9ux)?gj^_regnFeSHYc z(K<0i3|l=N1j^HumR%A)Qix)A*V_XV_|v6E2qG+;@1%P`JkU>-C4$*S_SJCA2D6LL zuRXJkQdVtM;c*qZy}hEe_lT_Jx<6FB?H#IxrZ*tY_w@K$@SiXBVMZqdG3Iv##ViwP zVwAketm3yDX^~rxIvW7&T7_rLXu=W=%%FL!)lOG>rC67o3wFBQB;*171J$+mi<@zO z3tx8ZF(3d(Abbaz-iHq=;G*ghP*AS4YIWdv(htAuG||QWVd)9k!^4>-d3%_8jab>3 zCazvGvYYBO%zTIB)d)N~r#u_?W0`{EC$%GFK+0?P1BqLx3=KdhTL($G^cHf7jgt@# zZn{ek-9oq($jdNy1P!aMU@q$|*Zb4w|Gzv)%M)u*=mP0)J;y1^I#$So6(PrrKcGrgHOp}-GH=%0O5JzP9` z?W=` zX#fmqRP||LG3aG$YepW9qGp;urp(-*7 zh$sPyw{Tx46JgG}iF-qwQq`|ng9}??hxFIzOnHUX@4p57P1=HV@BYz8zi9N?FB*+N zq+c?X!(TS@lV3Js2muc(1p}oC~czh?$f-Epc>#r%N9*kyI|30!6ojhI0=KN@_(G18&34NKnmC z&C3fK?%{#Wh4$~|gk8Zvp0>-)O2JTcxvF^m_Iv^UdA;z7lSJ}!mYdCGN8i9koy_KZehO!H%Ek< z#~o(MAtkQeu+D898v+6U!wVqh{Zo^r?h576o)>yWej!j@IP-tF+#Q@=T>HRDbz>l{hE7<6wf;nJ2{ zfQktY=3_rS0`rM?0iRQ?oiqjOt0ljtpk-B;W+#H;xuTCeQ@7d_DEJRjTpcOhlYd93 zqVal^FIrwR$kTD1=&Lljp^?tMoE+a+y$%D=-E!89PGmf3fTR*;9}nS&A=_^?Aq zwFoVGSr^dg_$hKU_79v(ehS_u=P*aUWrCJH>T^l^t%}GW!@h)y8;pZwL2z3qChSVx zo*VxesPGZdn+sETJ}FyNC?J&{2#^D~N5yBWb?ii8a zpt(bR+b5_hxE+v)$$Z_2vA{Y)6y(4l$nsy{|E6h(+|vXBytt!^DLVARypMcHGJib1 zi~Z?R^pI)~33?!v^YzX6N?xUw&jl)8c(wQjleQ&~)7(!e1H_G_)#y@ywo91244a*I zzMi~QJ3`CgGLmqOxLddavfOX4<6kt&cM0EzO_6fs0y^m}fE1c*_}q4zgdvH2@E>F8 zp=XB&-B65w$c~;n+&JMI29_eDOt57PRuS9bk>gS~6j-Y63p9lTV`aa9tI2-AxO2;N zJ@Ur5xUW>~4J56R>!xWM9_eG@eo+>P2y_`W68Z7%kOtlYZ)BB~p}L+B<$k4di7||c zy+Zt#b`R@n>FQ)eaIZbBbGAo|EYURp$3%ZFj1vPME`!bL5ydwUu%(1szm~Amm*+Pw0lzs?xQ>bIj!;nvi7N~?eg$T-oYu7-!Ou43eU?737^Atr> ze_hFkrye|d&V%8h{=|%tF|(L4IMV6ia~|AR?xCJ>_rXWcc`#hzpP2DsHDei}@`L*o zqBK@@?mEF;jupc!H*&69+GZWoRE_SeI*e^!ak@zt+X|5u$iE-i80U$Ac zMi^K^q1{Xpro&Q;rh`m&dwLz}Q`tI1pu(eVa(+F%^&8tQ- z=VE(e;)_I*K*BA|k$tGnf(=lyzDM$_iR)l2nz*}28wTag{pAcR1lN-jz`qBXWZt05 z{_PvW@1UkLWy7(pBAI~`)O>us@wi}$!lHGS;?0dIv?B`h^JGkKQ<@y-+N&-d49!FA zYmuyRWXT$ti18VP+r!92-=)F~W2f+HO^**aVl#t*HkT7OsF5coau#`HIyH)%pvt*5^m?;;&6H2>R z2OeQIp#tgaZZL9lE^2g5*fM`exuOM=?l!v3czY`=*-fY(Wf@S~M)YxpRIt%y<#v#M zX}ct;LPO1y!Gke8#;;~7{bMwv3f`>P9`GCVCI)UNrfDYs1NjE-ICrp_n%M%-e6B{W z9$#E;K(TUdS6Ve#-|vy|Sx_ZIg1ybHh< zmYdkIL)Y>esa~8{WArt)*cKhrC3b>@EUgB1 z4(f=cnD#WSHIpp2L-=Jk=}ooUa%d`4I-B_$m`#vA#TdlhSx*5#cY%TM3?rso!1X@6 zgtFF->gvw(1vNaK2xr?T66ksB$D4Q8sQk7DLPO?yDATZzAnPvFT_>;fqAA?aizXNt zT{BLVxqU0}B{@oS9|PMJKL)+6I@4r;p*d&P-B2MF6~N$Y9<5R=VQ4rnwC&-d(6-YN z0WaZB(*q`vE=bBbLd}Z7wE=6@cn^w7=Jk9tO#Pjw)4SxkL%~)*cPPj$K1U4NB{1aW zECHsoVpW$woJ%ji60zuyrCA_(g7SUm)(IfN9b>PNRRB?CXU52Fpk*d7(tRES*bhu$ zE?Z?=7#Yg8gP6K`IImAkjTTo4#e>vi^}r-@RpUavwcO|!p|oh1f@5?CIYB^ZUqFoq zskl*xSdF1As$?MYg9%iPX_}cw15`4p7<&rNgtPCC(VlPxDXxgl=;+XbB=O3M>4IEb z!oI04F?pFfLyOqWp9m%(#6!IHkral!TdHW&&Vo&ZdY|MCj2C4jR8Vz}l3vjY`8(t{ zdFYvTB=w|k5vJN8>1M)HxX?lcYN6b4=;lYhLIxW=`K4KIJSdoXC9TIJruUHsObHKx zmo@XKAvL>pDqqU{qq(Tc1q;}eRW3+j86J?nhB@0&url+V6nLDoT0`E-b98~+Y1$+uXcDxnAdsyt7f0S#G5(> zvda_E{0d=dxpI!RvafiUdCd|Z`|}JnpGbKCRRU~1RsosfHmAxq0bk*QxGETCG2Acfr!dJ!hUiI#b&}2vhZ$u|9@DvTgn7M;XLpM^S^c?OwI^dp z>Sg`$B;vshCZBQ$uB;D)j~u+D5Ut(1n!ZNp<@7ZWVvS+jUagIIM)<`ir(a+Ej6pHU zZakCQiBu~(p7_4| zTSW6ZFUQ}yr4Y<0k+1?qtQga>IkxQ^rS%Y+Da@0e_1lBnyS=(eE)&fBa}BjI%yx6+ z;8H3I$k50#S8rI^qq`ecaMX@)t zbu{n{=*Y?W^u_y++Iast29k;sv|(Sqy$VnM8JwHozwK3(zU5eehq<=3*Aq$Y)^eLcW@d7eA2znV3%nQM2hVV_{o_{1FTn{~E)Va*sVo{CNS@NTo;Ps5l++-xmp#O6^-80TnJ9J4TOfN$G5kuyH)alf`lK4h1g~mxz z#~9^@^gk{EmZr+H{gcsWA`O zZ#KWjgzRtH1H+#%Mbop6|BkQVFH(MF{|J34=uYA31BhWJcV>4QZ-Is;ILt4}X^9Tm z50Ihaj+-Tl-c3=*-i7JDF{n;+w_D#oJz{seUOqAkCu#r# zr9^UQ!%YH3sHDIA^y6;v)5ni0+ez?r80Vo%OXFTKSR6UkIixcH$iV<8>YS;Vs;nk{ z?T8izg0#au9%WYhh6(6sWAwwsvqb)ZN+9H`LAH$QN(*S%5i5Pa2AV1|m)W((1S~KD z&J{VN0OA(pqG*naE-~hollVTW-@-eGA*y>k-Tw}M@;#33n&Of$4{Wr3WlFkyt*;a7 zz$(ZP%(u{v8y=#4Jxp(_d9u0T@PG`vFS@z!A!s=?PCcuF@KZf-B-<^q(*nm~`}xD4 zESI1BQ%s zbO)E!fG**rM{ zg~OhDh|D|B88mu&(9=_%-ekMSp4C}xrcb>IS-GDYvVMArp_Y4kHz7Mc^(s6kQs-tU zY5`}u&X{D+htn(R>36~R@99Bn_#G+*?_(2+Y`lBNKneTQV~|zmsUh;{ergcYUOzPk z{LxcGmTMe*%0Q9KmA0)KskObrQ9Ig0P^Xe4rB(+LYj*lVk&9|amv_h6ar_v$Sy&+w zYyuRhC{k2hh#msnC{-N>z`Cz`XN4-N?KO<6iP5WOwO+tg!sWEwpa+}Ek6r_GRVh-# z$#aFIm`a%7Esp6_xVW5O&CJ&Ud`IE^eQeCKoa9h`dV(y*#DT@NUgf}$UbyDqXm>Y3MyVPE_(+^b>(U~V z43Lf9&S6-Qc0FB{`?fy+8T+t7)l002?^fBSvF^Lgy?{JCwT#_90arWq4sk#Xj~t{` zbsIu!=);rE%}3i!ak+@AwB#!hA(yhSP+@>I6A+BA7EA;LL0x}0FkwJtapZx`{X;Z4 z6Xcnw22%bSs2n!_@Y(bhtpFe4=E30V$i&z79~$S9NSAdcw4LDyvrHbA`WE6I3-)di z`k^H(b;C`6v3`P?J7_P(v-*MF>#{uhtu)&jE0^UJZguIJuGY}4!MR#zfW*?T)0Zl2 z88^4O9W5j+iQeZ+=$1OL_slYw<6qNOc>x6Dr7jUlMR~)%KIeF{YCO@YM;GU@bvQXJ z98RL%&k&kI3|=6XuRXDfMjA`oeKhvh8&=HmdB|B{h%TkXMN`WVM7118N8yS!C|sqNV{? z2_8kA4qFb<9e5qV5=uD?D8}K_N*NSA7Bq&#%&JvxlS%(#8?rof9&XYwd-T!NvIN;GWx+P<;r|rItF!FS3J6BfNzlTwZN7O z`b*OhdI9~9!F9oOXc+v9SV7Bf$;@XsCc1G1H~|*>zO60?yddgOwdfHlu`5u~(yJu1 zXynO2l8)gK&^DPq@-HG-hoiTEug&hw?Ij{x;IhtO3FG>y4PW6jz_YttU=fp|Pb+K~ zeJbaSs54ByvT__7jlD$TRT$#3C6$G=|{)#5nfD}-3Rv>X6_&sQk5HF){&FVn4G zq2+HV65$V^*onOvUqbIduTjO@BAQd6i}+2UhS2^4Kw$~!d|v+;ed6pM{Q7oHSeVZ5 zAO(5|ePRfE2IxkiZgQ94z~Qwb;yoTeLxZ?Mhe{tf@y)5AK$TvQC$UL*FJ@6GO-bta^HCoV2}k zuRBPy5p6>l>kTa52yU|&Zc`74S;q$qL3_X$>lkC=W7HD|5NYZ$1seLLnz=*TE0gt; zM=Dh?Lxkm!_}U2@?P#-RUdg^jE$`kaAZHi);)4>a&sTHaNKZ1B=7 zQ|1Xdbej(t#^ucXcs+6i2n|7es8J&js@#a=7DyMPVt`)jygra;mKSqAi(>mRY0Axg zW!S>Syn0A2LyDz^az7^m2a720o*?5AQsjvV`kJDtf!&L%DjWTJ__u$u;0RC<90i~y zZY(AtCoUx;Jxsz3=Vnc&k5Zx-xRPu}Ob=s#>b||!B;ZqF7Q~OC00uymiQX%dXJAr}I=ZY~i!Xuy>zbb@#j>&w_pfcm|&Y zlRUhr+Ajv9V|c=igq{T>uC$EuzdhcGegSB}6vcM}!Qs(WS9onf`9eVo_H$L-dKDEA zQw^?Hkzi#wx|*fb@Q!g!8ql*r=dwIrMuznC_N3=4Tq?k*dD^4p3dE5fbOxw|Ejh;y zg$)=ohX%M+)&+TqDat+_tyHlTP>rMWb~P(VzBLr&_dZ8jyQ@yj;1G_EqUgkJ%wx7^ zx$7RIi&0KaMd;2c#Tseswrf8H1DWq14NY_@TQn|II!@m$+a1akH0_}cocg%BRJ2k4 z)r{qP5pat%KONbv>eQkZqCi%%mm**90NpB%gd`m3bV~he>8sZ1)GdZFfvJ!N5CvF* z>XSRs4N{OL-#7UpfGar}q)sKiGLHpz7!bXoBK-|0wdReu=Td(1E{7mNGJ(9zN7bIO zwx79;ZZ|mGpEmc1Vn)(_ldtK8DQ61P?O5DXkDpz1hY>J2*F{HI>^dD`q3m=V8J7>r z`seqbK0SOy>MOZyHJ-hU2?Dd9hq(_I`K6k~IyRsO4`TaPsAkx%La|D{{jT=`-*XTB znNvy+`6MP+$!d0KE1Z7Z-%ekPz#BR7OUH$j*?ox+QB3R`db7HgqWD5c9V&8e82QoL zOi1}h|DgV%UV70Vjl3Ya1P)*bx*f#2GPn;_Cz9gU?-AWpkDt?aK<#)!whc=XdKrGS zDTg976*NqYr;*9x>Nl=MQZHC!P_XrSxrPs?7jH+#oRoi0&;0ru4pZI}f21Nq^D{*? z+k0pxD~EuH7MESWEJzk&D9H%`72#iq6_K3|0yd>?esMV7rIfA5DG3Crk|>B#bkt@D zmK$FQC|LkXGk7$yycCuRE?<9xv}RzhxWfV;H%dY9)TTq6r}J8`YhLOTwCZkGlaG#S z{gd?IM%i;ltM#cZL2fx!xRn>z{qX5eA0Kvq{rvFVhaW%uV18LhRM2xQOEICRTeHiA zZ3f>_!IBKSR39MKv#gt7PNJANXss6$XNCx_qDd6oxYLk@~+X$EvZ)3SvmHS&bW`C7-Eh(M`u!H-T_AA_b-U#qQieE_n_ z)t7oC{hEm}AyHgi!Wn4;uP57}A`s!IB3FXfs#ouF`fJ?0%iajp>*MB!$RuTSDidc@ zi8VDDun$d3s?v~by`rQC?%Ph{mwGfU*WXNKLN~UZ+xPpvb51_03KH#cbc?9W ztg5Wcljr^L1d)Esgod3Uwojm0jL0u+=GWkY5Dsbu(=l+bcbZX^)ly?m(WghqNhI7dU7I@|Sh1hwj@cs-fs>ef1T z-chy}m}Is>iS7??z6C7u z?suDeBzS-G@cPw{@JfF5=KW8vAK+0USg!_^y`c7qbNBOHu%pc`mF>A4ttXcE{rU=l zf}{yj{9n#+?RtNACkD1+R-C^12z)jhfxc0r^mPpxtq+RLWeph(;n%LKb*%5?0qu}* zgB0Y(@Opr9JUOgIO`78>4HTs&e7c-3U`c0+fRbBibZM@{VxFa?(Eg$YvLBf1+ks=) zHMn^GKTvyw`PueHuYLZCFCrFZIhCIIRL7-2-kkvUY8SBU@ZqR*4-H|P>WwmzfoR#a z^Aq@}W&A@(<8(kEr|;gqeJ55tF2XKeQgh}O+Y=mc`Urad>$2bzEVwe5z(A}*TxgkG zn+O%sc;dB%t*at_NR=UM+^?jv$T@r>#91SxX1w>~B=HNtlAVhdFr{Dbq#+1oE! z7-Tk|yzpDoweBS;YE?Fy?tXIr zw-4Wg9+DT?qO`jU4NRL|C8P4>XYgo5++IR%1QB7-I(gf1bwoM`Xl}MlG=6SVC0v?+ zIOi#{S{q?QZkX#^JMP>{bbzA@3*%yQ^JxoX9-vp64;k(8;Kj%Uyp%Z}In}8kD$6wj}#kK zMfk%8fK4k>q|^xjbeE%8(M?Nr5l2Z^pblICt6tc>I#nOWj}iL6FJnNf&!oj$D!BMb zr1J1=oLUAuGBVJ#fxZu=ur98(Kw3n&Ukq{J0=$W$$- zIl0b60%Z@~Ozl4arKNzt^DkenUxYQ8)Ip@*Q+pRBQN`Ec(5VJP0~$;ZV_jN%=z5H= zc|kndr1#BU-QucWW~?ylu*>c|PB+tlO3Oq?ODI6E=U`YhYW+fG$SNGO!{t>%e9@p$ zx;^<7VWyHl?5VBhbO()uI9I+42>8KlR=NqT9bINxg&trxz6RY1Z3Q{cf~Un1D;219 zj}{2&NUfFy>@RfdgA|~o2HRy+b%%b11qeoP+g)Bn<8Ftv)P#Hujti(umx~)F1~sP_ zcX@oGLXTvQRJxWS%KUB6I1p0R+ju3zF1|>1Js`u8w{|3I((}eOJIx4fa@{nq8U^5h#}txAzVxx9Y*}ci{HKxDsUf(It=DbY<`N3tx7r zmljH1$Ybr75SfDyN|6e&6fSeN`_tNsT93ykqH6$o{G3y5>vOUyJkkuYZL;fPG^LHcTM1S=@3R>5leapLieL(_F8YZiO*D z5^BIMfx^S?&!_Nb_ivEX3cR~_3O5(Gk6n=KL*1o~WyCt!ZrfRsZc}e-e}(x9%XZUr z&VEyM>*Q#-+tmw=2&{>^BaKHA#QS!e|dL)Bij)K~# z9KoFjpbpLc=Im3RPqRzVLs!&`X*+;GC$BTIAU}{0Hfc!T9hy?}S9G1GU5Mv~^J3Cz z@_c3e7#soJn84TBV*6^i-UH72O;l$K!U#;VkCDj23n z%bXB;D0y6C#pUR|eX(*zJT7%=sUg5jF|p}&lYy)I?5yI1VYo#eHqJLsU+&ZJ47CtD z5Y1vLBR{lVrNOKqW75R4R3mNM(9b9BKG&9tt{Zc{4mmWn`isFb4-S!P9Pb2504>8O z0@%URU5}?ln%!p3T?`JZe~i|v(H{8@n(h4vIc{}CoN=q;6uhaR4GI?3m9{-2BjXcR zkbrE`pmq5o@ym4+*k*oZ(RjXwZ+8Sj!#?~>&*JT!V+WYf_!_au#?)tj7t|ILeJWc7 zIb#HuN{7Nor&+JQ)Ckus0?mR~g9^6+FRgChx$*iX6!R&}sF#7L(IXKK5J!QXLi}!J zDb(vGO@)}Qjp04S=94(y$7BPvQk<9()3qoTyJqBVH3AmBMpFL+yJmWQ*`+>0_*d>K zNOb?RhvL6Cy+3!4lAb`LkW!1IPH>ckJG9;mf@$h)1lu_L)~9tO9G9%J2WTZNQoCQb z@pLJVKNSjhT}*q~t6R9X;6LTI<2KrcA=JAxTEOHQ4%oFjM8@2y8^C{}iVC83=XBcM z^$vML_)f3}RY7Z7OmJ3YI0^1DE&%ggw}9nDx%(S1eH@t1%V+L_41IHz?s3#Tnw^?8 z0tT6~>insRCYejaM*-s}ZD&xVa4xhcwPTVBD3-9JbO!?Z(&kPTYC(}|Gre72!$SZw zr*hC)ECyoKy;?$N2WdT>{VOCAT<^Hi^6RU2;FCl3Fs>suv0-^bvR)5}b!nj@{{lAk zyVAftGhkAwUoYs$oqAy?B_Zrhi#VL5Z&TcNGn&{JWZxh?m>3gD%_Qh_9FL+;!^M39 zWHa~KV)po*?E#RbLPJS*U8cY* zZ7ThR_+wbseD((6XYvkSnSgl&{SqpV9WG6wlCDIp*1?&&;`0^SA<&UCC|UoiNh6&U04e0q3P=Ih zUxP$?Ul`rZfttR5LM3ip=UGyaV&Q+a$AT-DERhcvu06mlBKc6#^Csjk1)M{qMTJ&B zy{aIE22I-zIty#frr>PrON|g>B$og=g#VsFdDv(}lSF+|@0%4AW|l@nRi|$zQy0yE zWaNMs7{lCn{77c!yeup*Gohz~kw9s2NEKxVbeqD>f3!R5x4QMTWLTXo7ZbOv63kGP(La9$k`WG&rbDA8>S&LKwbfS%&D9Aoy}xDl zIQ)3}o&A^WZpeGF9fKq^Rw&GJsav0cH8Q~}c?Dn2FD^~qg1`h_^r{J1Mbx7eyMqht z?M<)v?SQs7C5n5-6a6y=)tSr;a!=dp>atT4FHaI60=_F!%rHy?G%S^2`cIrj6k0_A z7ieZZ3xylbv$ZF7+|qr6YHZ{DY{ZQK#mhPi5NG7O)b}M&d*w7us@h z3r;k^A(&$19EISaW;&DV0EfRWPDG6Xn!TDp0&gh@+_HKObwPzW$@Edi1_!dasa!JZ z9zBxi;3JK$S4d-wh}IS>)iFRf3i{+sxV*(OmCjL(E)6&Aonj>pJq1cMGud3mob+R9 z)(;95jP>c6p)XoYk@SVZ0uj%>U$PWvrSZOk(BgKKwj`)*2Dc9;q#b53u zpB+Idj~kt{^%0{K8l%>;8Q4p`5ndtg|9p+GP6I~81&dQ)yb+TR4d|}MY&d4n8$uZZ zfUR)GQ0OON7p1;2B@aN4p^vQArTYu5ADX>S`^N>w|CI}OAdPp1W3V?`e~Q5H)T$3h z*;790jH!OWn!|6EINumxG%*SUK@w0eLa+fNV8x?)Xpn$ZHcEg&jZP&BMx{y^{_A&h zq3V9kAfra{Aj#*h429~}qPjD8Qlz$>yOR-McLyE};u+kUyS%g@_%*$>^0c@fk8|6m zCO6GSYF*u1>UGIO;?SQj*O2Z!m-3)Yvb!~hmXvANuZ4FZ3?my#w=m4w$+-uj1~M<3 zN@=><%u#xaTBVQu)mKooEf#CnwSy}L?gFmXk2TyIoX4yE)7Y;4C6gUVp9Y!bW)tPu z#0^T>elGR_h{~??2|6vz;|I4E=JB(GM7D@tw)A0gcD}yUy(XzMgo48Q8d2reBH8_@ zNYHUR9i!gJOS(4b`EcVd+*Sdi@a!=f#!NT5)(c3-p|Jo2_mSJ9NyyK5lsRMueLV_T z)cuOOd-BDPZ{K|1(?1{Hynp>YbAv-k@0=jrB9VThPmkz|#$gJ?&Z=P8J7CEtB{0C` zAO^!XqCQA=l(@`&}1#lq<2wF)s+@P`Sb)Vxd><>h-F$1D8frodmzj*+RSk}b83UD`` z(&*G<#Ii(HcT4R6Z70Ev_!|Eo;-7)gbDi^iK>U2@FQlDfbN(z6v{NtT+!Z4~aJHEF zqlTn*zviQ3h3v2p|AG5X{l%5Wca)O0leeTaN_{EEGeKxLo0BY}nX`=QF%sFmEsDof zkEl~XZ~8Kv z^dX7v5uF=7;SCXUG3`r{sn93hKW&6NU|z+GKiRoM$yDw%wLe=EtacQfcaS4-gij!F z>I^T(*R^0>I(*r>^7zi_@m3$vMyIw5v!ft||I>plUjcbnG86d2`eCI&Wyy98M}Vr4 zcQ9AeevfFunkpYuH_+$cQCK!G9~gRQ+ovI&u4w?U$@1oW5xE|Thdj^au;5S}P1~!0 zFU!7K!mG?7fmyjyEr}}t6zVtY)@pHos0ct_%W!@nSxwfhq_%}P2EV8k2U{{28x*Ql zRBoAr$&$S0F_5m?wGO>ZmVg{^WwymeqsLqs@tK@&;c5dEiCW3ASrH{Cg?2eWuW-(E zdNo2=6|80s#zE|@n>}j|Y4!^onT{JT?Q|i`eR^AH0v4O|*&K|M?KnABdyzmYxs$kd z!vo+7a$P>38gak4lUN`yF5~lywr(U&YVOzEz?>qf#cI3;#aT~Q2PzSv>QMd* zyl6Rqi3X8ffGQAk1KBgohL}4%_7B4JDCG*$g?6M+@*p2Xsh6pHG}THN*(x2EDXmPf zP|5?ux0x6m@f8zia;I2kJKFJ)&G=psa*=X4pcdqZ(J}7}da}>Fc zFqvs=9r}VLVaw=di_lvLMdXwPNlvq&%n{Z>jSw>M7hfn%FRemI#=AYQ_P5bxUsdFO zM{k%haUh`xrx1~7v3a6$ zD2L%7A(#`zD=`o`7MYv!{Pn~2hoAlidCx9$u0x&(;yy4mRK~fbT}xV&@w0UX2lca8}!^bS5JHw$ZEaCp&0Sncy@~R&Rg{6max30C8vcC_Ny~ zFBKy#7n(+=ZgB2Feps$#b%!m}u{QRpMQzP4YVOyE-JB{m3jUUbnvGCyS>~7HzMZ#x zsg)aj`z;g$?-%!PzJK_^1oGtM0klf4L}-ZCP4Xm&zqVH0Ey1jj1kiY_NpF82@GU0x zR1>Y)LMQH3muOI~q%@QOBlIa&h=Bwe;z2I6BCLRX66@MeIc=1;KW@2EN&=w*S+j)# zjOl^5mtfP#&Omxezmw*vY5~FTyc3Qj;i=kq#wYH`O8>{cBby)|cgGN!PQxMfad({l z>hCzi9Y*aanMc7zq_ZeJ@*tOTuOpWT6CHqEOOU22h1MoGgJ%lVw;>+EfT2aN+Z1L9 zHy4@Bo zVp6Q7yky%`_NA^O3(Mwze|Yuo9+_C)K5(T-vO=Kvk*jel2Cx@#aa`Hk#j;?n@_XBYpTN0^Orc@0LVgU@e`6O1}b1VjjV4zeE6e`c+r zCj$?@8gF(e#KHXX9qNnvt2+kxf>9^2-aOF^g(qDQBINTG1_9zCo~MlnJU zH~Ip52MDNpqS01DQYYRXcobTfYH#a4Jtg_5Ale6IeLz6s9v;Rr?rFYW_-m-r5g8fo z;oG&a1xqh>P@X>|_Hhs?Hj7Fm^|sT9e62MK?@`Vk3}1)es2FOTX2g=i1F+tkx=-J% zWx()}QgOhKp>a#QU$=3u3VG|fBcHlSGd8@F?DAlolo_p7LAr^=vfeW>TiMDOzmJ$2)hQK zs#!lCGINLTOOzpY_6SB@>(*N|We*5-W z=xuevfd(=~ssccr4?OyqRFFHWpS%w;#+9-L?s*2BgIeQF1SrW2a+tzA*lIDbAm6*B z@f}QWAHQNrQc-&GywwP;iY3~Z;#+ry?wNI=e|B=x-whQJke4TtpGv}!iLXQBh5Q29 z9Bmgs>`3m#tk*iM^KsHipD(wU)YeI26t;D>VrvA^CR7)w4|Z9rX$MUTuVWu>I_T9` zQj>sFiHPLeT3)O=G}M%<^s2^_C>*x*yM8gIBVsSP#+rd1obt;bb0uEGlSJow|i5iSf2`S`Nw! zK@~L%tM&4NSi-dHci2idVt04ys|v4Hyu~EYYyoB}1XP7di5wz_g8n9cJY8i&aOaJO ziSvEz9T9_u)UG(t;f3S)uJav?;3D2)m11PybUV7dHxrSA!AZ_K{9wcuH4~H#p%T+l zkTfy*;DS`*n{Obb*->={wb7+bN}SIjnImBH<;^v8fBY@L$iD1A4wg`DJ1wkpm<_%a zoE|EKz~XO`T+a@6vsp*fBR7t~@)@cXD}YNuMWSISRuGZn*keW&clp8UxL_cphTdoT z4d?)pBIpPKXG}wNsSyArwyy5riwOP{xH-J3RQNY805}}B9IFAN^TzKTk|nS1A=u(` zaKg|IeExCe*v~x|mCLSxe__*q%#-WUgii5Hw3%n*>>Es^gk`Av%nyg32tt8>vpb`c zP!Y?jUyvBY2e1nt?;?wi>79s4w$mtO=U3XY3M)gssk0ywPmrY%68TTOnQrzP&nV#C z^lErw@_oA06Ej`1ck|25dCPSV9mEOB4#{#wl1sbZ=^6Yjt07Lx@t&omcvSV3j?(Kh z^9?dhEnL^ZmxPh$3e$%#-wfI)EO_{~)UEzu8>GGji;G~ym%9a&s|y6?X_=CFy&2rs z?A2!RoRW@-7sW|xT*u4curx(-knPoQaB=hkMX-9t=r;>`>V6>1Mww53qTxnt-|ZFZ zHda@9i*{2MHRL>--vO>w3h$(B92{o z%>=)jw;$epa}VLh99=4f_SmxX(|>NN3Ag${bB3 ziGxIb1<4OG(%d2(f=CdPM^41Kd+BgBi5DPWzzQta(eMm_Hd>^M8neyAtA`KochjGK ze)xyfEoy{&8!84&uU6ZadNf2kWPsZ0o&H;!PH@9kH-i~ZFv*K$(zsU|V$9UKBW52W z*ZKM>AIBAQ5-HqdAy{%vL!_D8qTxHGBsdEQsK-UBoM5(JGbBh^Jl*8dqNE zKtj9P{fyAyygBD^G=LQvO@Zkbsd|w;6@&pec=`-RE4}ghPD&(LQ7FCj5;#_1b8X(raT~G?r7nIj;AYNLk2DO zX${Q6jEAG%N?SkD?A0xmUcr1Gz(>piBVxg+YAW=!SfSF4T=(daJeuG{4h|e%>0*iOu*70;$3YPxVl4(ZP>1G~@?762-y-eSi zR9~^qg=<0T({K^V#4FP$k6_G0Qc&SNgY*F5N&p4ikjBGt2$AW!I*@dfI8NtLSL!#$ zDpLAJ65w=Qi~(}r&Zg6FYOpKyXBmOk%^E_wAzil64C<9>)TNThp)oM#HC^hBJXSdO zyQ^34Q7~fHmEIfZTiz=5u$0&ZNtGiN^eK>QV0V}V3u2$a_t7q@nGk(eSO8b^KgSE=M|Wp$fgYR}0$zW`=0 z7Kz>jV?u&7msJ#k(3g8OINV6+v1hc7+GQP!Ldb2UneUqk-#`&jO?Q(>HEkE#a#yT| zzrk{S-fK5$Bqz3^v+8ua5&?xvoeUoErDd2RSb^ynh22mF-Q!Yd-Pt4jg2svUqQ0|3fWUEE15=HFlf1FoA(!!L$Fs zfg6jE0?AG)r<9BzF~Ea5oeRHArVv*#Y<=6-1lJI_4yqQT#?+Xg+=*raTZ$&+)oX+mZRR&geW$7Ob0zZH@}aU?8<; z>F*?(;_Z5>5jBs?+P1Q`X`OMo`*mRwfz|2B3Y zV@h=CLBuvp*l-Sr8M^|3jsjZ$>@~dhT)(+xV5}*aZdAA$ohBNuD{YUsaA#es0HnnG z9TnMI?6>%>tnua}!bQmHAEhh3!eI}Z4!B-Q%*UtLmHL4^z;T=96ik~`Flx)v6_Se) z?HTnG4o7SptXQ;y!+x-)ZLr81?2hrwAdEpUP6E1^Lzs8smik`V7^}LmvJ-}P{q6~} z33t5mv$yFf@p?R?$Q)b=U|uf(a>G~)D~VUR1H|9KfJYXHx+U6?@jEmn&2}xO9Z3u7 z^x)1xb%;9$IJmM8kY?JI4qV*X@A@|&3pf(VP1(;zxSYt*wdnSjf#QN;*=)~tk-2&} zFo+(_pn`%xLGRTSy%RbZc_I=>3b;) zQ!){W>1a{OWCyOHD$SB!g%=Y_kUljJ(ljaTj^=B;kU_X(INFc5^c6#=CASU66>>no z^ellCz!S;5y#V;V5gWV>!2jfnSMT3L=G^`K>fNiK4(>nx{ElG)zr20@?UT^sV)0>4 z#s8fm+2yHam#gG)Py?G_iW3Iq?L%(V9|Dc*nZ>GEL1(D(y|l9tUJ>d}%ee)^P&?%R z(Fn+8;4VwNq?Q@!ZqHv@WC_q1x@blr>Js9@Ukf@>%MG}7Gtcr!z=7%EiBMnpNRA;o zizhu1A~Gy!Km956P;1WTvp4%>kcOJ*c)7ipmAY8R8U9$}uRSA74H-THLkaxEetrxj zo)o=;F!&!_A_jYja8|?O#cLWpQnb=fYDv{vKJku{c;t&-J7%bpB25z&=;=qGGTvy6 z5tcRQOc;#0Df?_vQM8Qu}U26zPS2&V^q?8aM4I=CiCgx z!IHiZ>oS`!rPFE&sf`|N8R1V>a+dQgwh0#-gI=eL4ktL4oNuG!-XAPCt%`>QxMf{|AAI_jLK=Y%557N;2=A}{; z*-!0&xEs$I*I3i4%N7#^68AC=%`;uCLH>|SUcc+`8MdL{Lnt8oL#M^P}@(i1~}vlEZ9ZGr(# zz8D(Zl%LW~^)Ndg!1Y8MtMLT>G7qnRxnJM^^!DNY?$y8FfB0F#YwCLSP<0yYIX^zk zq!8?ha8Ggu^(;?)qLE510k;+sU&>^jsS8>%H?u?oNl~Ctr$=o{)IFfAeN4QJqX^i5 zR)`bnIM1m#ZxlH!^&H8Tf;tX@Zb&)LY26*faZFU>*gJE=6BL_v*i-Dc~I94JOxZC@a+__3F`-RewIy5)kYrxtdylqbd<;d0#0aXW73 zIGITXa_Bv-iVI7>k(_-M2y6$el|y`}DiND>;5y1g_z(jNkNU{<)}8hfNOGSRil0SY z;|hUt@UX!T9y{t8Er1eKVg2H2g9AAUm4`I7g(41O1PD2}aPz@a{&A@li4sG8zjk~G zCQPhyt}Rq(31V=vaZN+<{r@`rH?JGyZ;2!POx*Jf_%d=O&V+7GezM}5y?Mcr@LvZS6zJqHTVu7_CjW1rBqu6V*@R~19M*3_CGH3xIU z?O4+2c+^u6bl0^O*8Hd^fNph6LamRwU&ONG3EuvwXMh{)c!F9Vbw5-v9rvsCQTKxe z_PYSW+aL7|P_?c(pw-A};CKWvN4le)(nHlb4Em5aGkb@M)st zb&TZ9z0;?WkocM@XRbG2-#M|Rn-AGyx}3`r8wW>dbhcp&$iA1Ag{tDSVvNYGOa>xGj7va3lF07i8uHT z@6>cf0g%nm(hXXKk=Jf=?)v=vbY{6UA>f~Xc=!Ing1C1lTNVia?*83-eIR>pFheBG zxY%Bz7X)oHL$V=!Eb<7A$Dn169E?Mx4tORG8tO?D`DwaUS*zx0N*0=Z82njf>b3@b zzPLl!Z^#|CoWX6sm14+UGl~}7E}__5PntTos>^5O5uyrwIAk4h#EHuGZ~P_IoDkka zUc=N!lg)NzyX+TwZ77hSnd7w>ao!uS2BHDxkiB{_froK zK&(WrU^=SC-Ki*!Ggh&}YU1T%=Jd<>~-1DN|Z4xIf0$|5y zR8F`_BtS7^SGiesq6G~eSE%bTeX)Yks60x}x$c@cIbggFom zO5q71p)@3+Gv_I zj9{e68levP+g{Xk_~VVi^#Vke&CDy5vZ7u4MKA={Z8^l`hDV)Lah4Sv`~ixzUyYwF5jtVgZ(Qq43wXnOWB?EIg2+f74}E^8*KzK2NW-K` z&0|Z!(b?bhCt8C7db*Fo$p~$6Lg<`{^Vgh`pNG_&RudnRyy-pDD895_R;rOG{TKbF z4Wj6(ZNIfldm?-(GmW{>oAlH#qfJ6w-8cefMZenJ_u#~PH8 z`nm$l^38|TMuT{ndcGmT&fmO$c=hI+`>*~=w{4cyWhv6~4upU}(qhIn)=~o}UWt%RRCI z1Oeof*Ndx0v1k;3=AA^)xZC5~!9dX~-Mm-m$*n6vs8AOI$NGr30XeC6tH{=;_h$`0#8n7@VCR-+whco52M`mOy=&{6l#Oy*6urnvt;4^~E3m_@~J`*aY6a z|C2|sef+2mverLs-hK0@_YXe}2j3r|cS*_JSA~pk- zZ#WJ6=@JEQbqZ>dx4Y-l7e}i6URt^Ely}}T@RBNAEg@($8?>$#`+h!y6F3aeS4c0e z%w^ZeQgAz!N6PH=k8n3;c-EnuQY>LU^5&x<&|#{Knk~|H`u&|nzd*^f(ok@+c$K+Q z$Z1r@80b%Lzy0?0+rib_H?JSwzT2S^)8(r--!c=n514-3JA_j*Z%$@Y#oNqP#mFGNElTh1+q@MJUkt z?U)~o$D5lOPGPv2xyPA;cnDh59+?WAe9*j)j2adJ*y@l7bzQ6j{D^uiJ*gC`>63yL6_1cwyz%L~0X z3b&)sFV9|Rt6|g8oHo0PLnB|vnE}w5-fZ@D|eN)M3yQ-?bwp@a4+0IeaSr*3_9Y~KpG=?mjp(X3(oGMvft zxs`agpIUtMR3vd_m`O=u2y`V_mY&JYJ_Co+H0xfLFm@%l90D)_mtZ+48sblxwuh}k z5+?jmt^uS*qp$)_TCT(z9 zvl>CKCi#Q8;BU`IP@i!2bl&0>SViX&z?$ugKEn;o-hxk;CK8=a+PJvSw zS1%~R@F}w36@H9HALPoYlC*yaUr_1{QjJ>O%$ytmG5C;-nXwL~PZcPLpLl5xZW8=l z(@AZf+Xkg80T=0lvu7NdFP%+xj*w0tgum5-k>iR^0jyQ6kbAy;+xw5ozY=(?;{oKa z8@JL+I@~zz4j2e2q{`*6IT+s1fB)h2kM{?MW;e#?q99{(!r^ay9F@~bwIc2G`9k%k zyBamRYlpBoN56V!coVdB+!={ko=jqQ(km}dv^PMa82h~N)^P!iyOBEuLO_I7E-(Py zfwcu=Qlg;NXvasgk7I3_rw?PoV+G|cbrzUjdg>vJSDPaDKp(jWYVn1Dj-^M=1xrid zW(%4}zealDrD5NJqJbf}nTSRX>xeR1&3Z_!t|FOffWDdUP!RYz=zDpgElUmK@e!D; z_VjeCb?R{dNMA8kBMO>%5InY1^=WD*GcN1lD=hMzgC}1WBaxlzxwgVzrFhA-?dz7+oU##gv=hM z`c>BqJg>K@*{glhs*kp#-IVF8t{{o5-o5=EF57y6eCyDLjN>C45ZyXcD#b>n?G^0r z^c7e`D1dTO$pL|TvZQY#={t@>>Q-LbZ%e63%JEqjK>r0MiQ_3HH5or6b_|A_3?Qvq z#kG^0vIXJS8$^>V$~Gj{%6vO%KK7~T#}!U)*)UyB{@T&&abi8=R)g^UB_&>jW`eG7DYfw~@(b)&l%a;?>ab z+8(5qhdDwc5{Qi9!YoZUFH_&RMGX9{PX{azNG-DSI>zkw8$c^$S^p zr(4UqU$*Ei#t{geK~o6YLH+yZ>{Ti3KHGU{rlLf@-n0x>TxN#THB~yXA=al^2ZEBx z6bZyoP90vIL%1htr32~ghFL4g4NUaFWv_U$_1V5eF#%M>jv#!*I4_o31!?R;h1u`b zmm0xGW{1L~wnO2OhpbAoGDR9WVQ?}JxB#b#BMc6xJ2s=$$KYL>bj@}Q9KQq@tf!bP zQE*r1GoE2TU3pxG87E z1!cx`ws62AqO%4qNUZZ3X{8&Js=D&} zF|nMg9bb)bBwC8|ko5I(d4+x3aCExTCjj!VZ<&73q6id^jrcI>i&p-F{B8dI|3Zy(&U*6&klrzY$PuI6d+>zDJmJO(O4?6P9 z4FkfVNMXdF6h&AO{)rqQBk-r!&jv_&JRP00{8UFXXrEiXz@TjaDpbtzm^=vnD^@x+p^-;(qm1$D%|$#>9+edWh@$B&S;9T z3PWadg}HfOmzNOfo5Q{8j|<g(h*(i1aURPh-C2th}kT}S$K0qcPvwJjddy?0H0yF{ui=ya^Oz^3x5XI zsUF#Q1pH+``3S@%eC`qOp#J0|5PtBvN5CijlaD|k!si}w{Fz4_=@I+a>iFLv?=prM zTmr;%w+4BHLDgYrlErf1J2AjNLwC|7TmVo}p$)-Ume?Cs`5_8+fBHpKyI%m1eVL^RO3u^ItoEHR3k!#tG-s0Q+F8}nP@ zn`Zvox=-H?qq%%wXS5$FR{>vV8olKe)O{F*NIMz_J?A$7FtUFaWG zBT?}|e=X&TGu#MaZUmK?WR@|sD&zG_`gp=?5m(0U3kyiAf-XP}GLjP+ zsnw8ruD;X=ZIGvJ8$>Nx^7-6c3#PrE!v-J#v7-Vj5G3Uy2d24PWVO&Pj+2mHoz#gER4H5Z3ZJ`UPIayMo9IW=qM&J-oLVyrQj;|MeYzBS}8 zD%a*u`a4$-sS8l^oJ(x6xIO3U2^I<3jtG*KdwB3C19rTpI1{$f=e3)U6>=Jwq zH%Mr(yPa?5s3+VT9QON8Maf-U*WU2Fw9^kSUcP!Ydb#;m{II{ygCJj#dzW{P(h?e^ zZeN@OkY>-bYr5Uo?A0w`UWzIVR9=`UUNjOEXw`;288W6~BZ^DS+@Ovcv;HBGB}LBZ zW+Sy()l#y)$_SRkAy*Q>QU^)j_C`H8^#+d@Y0U4<*rvjO;B zgt=fm$eENi(#M&mWIBVhv~_U``5)5*(9}G*GOO2KE^pAni`@si~Sba$%*O& zYtJ!pnCm@Y$$9pwN7MFWNcM|?>xScMuzdtLDeF%{2EEQ-rK0hp)54OBnw)CYrDY&qMtV;OGx*0jV@u17cSo~UWyu6*Q=e_b8eqxrr!{8hVqWyqU%gL0`#`fca z;5CesjU^#=;2;)gKcadsUuoM*V#F*rZlSP*H%CorVhCwM5Y;D0(UDsw{PQ)loYb(~ z=+yR!NzX|%P`<_<#+a-$wdovuP5rF8FFz{MG&fbRr7+NU?*>AKF;Zq}hUU#pPFho3 zqTSSYZrD1k>{{l;Xm-N^@B*Ej>si))nq}1X7(qb0Su9x9gQv%K5hqG#NqdM39o+;i zHSB1wxTHg&avV%#K5609fhD!no@NFNG`3Zsm;p=qv;a)cYG=332r}hg$+8K^A>hig zv8a#>N#+8X7z{b#;C)WxmIvd$`F_P%HEs&E7#?k|nEO2Ry1KQ#EMa~=fJvuH*1~fd zJsG?_IK}LA1zRWZ%ALA_PsoYNw0ZebyQj+5^vIh%Y#!eJ{PX>{f_|v%c`rbmv{5Wk z!skd&A{mZ~beW4W5+b3UnqZ>XhHZe53h+46o5Q<7mDCSSi3obQx|LX5y7ihqr!q1X3zH-{nxps@keyVa%)Ne-k7-yxsu2upH-FWr39JPu zHMvam+9Rk%e9va!-5TuhlD%C$RH2ZDwUqV z<9u(*VUi=>U~~Q5U;c}?()y~(I)|L{IEqafx`Z=WKI% zb^Tl@fBn1x!^YXb2 zYCu*j6dN!O@hHOq3U!SDWz%a!1W~^!?I}yA%MLI(2mCq2(AEU|5!1*WB4Tg}_oMl> z6Ew>wx4Ba%T_b4rqR$-j9xUOl%jr_FP_*Afy9iXQGt@lcV&cn;7%JOk2(RPuiHoQM zLNJgr3o;Z6F6?12WX&#v_uB57z_4^vY!1=J@TrJ3#7f`2`sMz+x9@%$zy0tA(NeHH zynB#CU`Mw)#RwOn|BxC>^+a2y)C+wT3@1|eK~TB5UR)s$=X7(nJ3(Bnb{W8euG%Ay z9(#C+bIur{2C&U+&p9Ebf`_n-RIDjfMLZvQx5Tm@8Fs03AQ37RyZgyHCXhsowLGDlVkx0gKg!0Wb0@VCs8KzVQO!4q35S5YB)FF>_& zwMvO(+{{AwDmwLoh+!B&g~>=+%+_2ufs2baZGVP&q)EQq+$@-1BQcBqodr^$+QAbl zcaQzz2Sy-+L4)E5YUIt$W>spDd9CwLblTxR@7oMMuj!8gaCyW%T7YK7h+eZnpRRqN ze+t%Qd*mW+zAl#M=Gqetz=%KrLmE`p>uV(>=p2dt{QEaQyn45L0DKy?&mt)_geB3{ zxvqNkMR}XB3@~*=;o97!Uy~h%4>4z3oPbb0Z8uPQAZ-#%9jU4|^-j^QiQvsVx9<5U z=OEhI5BQHxmi@qEHH-sLasJ{OY1p?IpwwUchJclsu>kjHhN(t39YS0$3vq8tzs1J2 z_K(~VCIY}=X{6^nDrdOw$IyObTgI^9t*5spWm5d4oA~*&)et2{(@#A}_>Z&DSdr;fS1-cq>sK+q zGPtuJ1`}?sBK`UOOfAxp-kr%{s?J){*18U(h-k>)(Wj*0j;7cb4-gVx+Z|iI82b zb0TE~Ziv0v$m{cFb5WHUgaV691mq#G!n?jD3C9(V(4s$JGT@8;>XZz)W3fa4wYr0Z0C>DVam= zN~2|^(m!Z2z;ursoUv8fcsKr3U3vzV2T}!?vGdmt*B^fR8?q_*8hSH$OVhUlXnA%? zMzn9nw8G-w%N?bcN$U5LhI}#e?InQLRwOP3tpW~$6380^pyt;S`S4<}-q-Mpt=nll zOU(HG?yul-3g0*Q$XCy29yj}TFhPuGz^;xDdt%JuO0x=S;7UeXh^3f}euw*6Ty)3* z?2_Q^1UtzBkGUtw148y70Wdz7B&ldlfDmQg8pn={ow_ubFi;oeZE3VSM(9?O!f9}T z9d3bX|%eva|QJ6AQ4w)mn&kN%#x#k82m52B@a%hd#Y5Vtv*EE4X|VYT>bIg^LYu_v-O% zra6V-62k|q;mepjA?``Qa09Bi?54QSa#{<%N1EJ23Y9V zM^MfBEOZPoXu2RB-XdTGhI}Nbb`4eKmxHf4lRIa@T;Occ1Q5z;aUWRbOh=xT7*`T>-aY_E2(BiAwOegZ6ZHjbIL>YQZHQ!xl>MLNiso@8YdT z6KfahU|;rC*1N&e%6vDFjZpd0EbZVDN$%>Eru{DWX_1Wqg+O@-FRVkieac}XP#u;E zZVTAf)%hu6J5~XdT-T~Y3qj_aF8$oQ%U+rIO-a%bV-1oHDJLjRm>& zO=O`bJ^#aUI?1}ciSKfbB)99E#Cu4uKxqobZ8tX|hnwPXfa1-`mg3}2~B@i zUoqz_lFo8l@qZ*jfgzBDD;ci%B*H=DgYn7IJQ=(~?$WHd`8WiCp_>U7uHKnOr*5bp zZ;=JH?*+n5o+DARMt7=p%`w8f$CyuobjZH> zhj_gl5h_s$ujlC`B(*z}hzj;|iWEy&2Ap>~ssZr1YrRy%e; zxFrZ!;`d_Rz%znPEXPD9_R5yj7!%p+KQ#ss0utgsH3lI7pBg=EM=_8(V_J}c0 zA2FtX_?STm^!V(T^^ahG)2Kc6(AXPniOh7^`Tc9aMCzY^QlF?Z105#CAAOjON^NM5hInqhO?lv_kHF{%|WKxaAW2A*q%`40A1_lo^B?N*m6 zl|IRjSEAZzZ51C5QFTTA6aQrpXrm2HU!X+TWOoP11+NIbX4Ye@U$hFLH9GYg0O#fk zUb1j_Ls9u_Skn>AjZ|{>L(0T_0ZfJcjpNsBk2BJ2$FXpG0<2F6d%h0USzH?S2e*T= zqVlx9diDRkeaG+^A#2baV)tv{<=y)J72H%_eSa^TYTdLu`&hwJG zSTm+MU*7D~4IuqhDe< zPfU7yIvf)l7B=*|THa09^qG&FtHZ95IPOfFV|P)q@;fIUzmm)O!Ex2W3=ran3*%>u z*1)%c%RqY(41mez@G^A%;hpyDGXjo_=4lFFT zhSU%zIoF7ruRSoN6-0BtPs4MVH)Qbr-_r7ci}P!HpAy2%eS0E`e&iD zb{-8OY$5Z5+QS>nB>By=_3qi!Hj}Jg-&FKY;u?UngW8Gy@F$Z6rnqaCz*Zt zVc2nyqAXR4f>r|)P=-HKwm1D+lnL;674wM6lLUejv1Ureba~F%n4(2lROQ8ja8jvE43|dh#lk{au_xhrWSL3($W9{R&J^s1iZP42U#$ zumVpHUVZ!RyFdK$>PJu*RW?RBvV->z?>>C<(A!ockp(~__?I_5L0+q0z`Wr;+}&7E zlUJT{NwLu#DSe;*_N699ur6fjjUXe5rxu`R4`!E z_+u!yUZ5ANP6O%a1)a@l#d^`}Y}MH_g`9==wU9m!R@qe|eHIkJY>_OP*h{#kc6mCh zzOr+GzLq4`oQbw@p>BryHhXo8L?z%bx`4LB7w96V9*rgXi$A^l&|JWqRXCwYv4dVu2tr`%*sb70uE5)M65FVg*Z5A+#f| zU4alvJ!;qSp56g{)=K~zo|?WXqOw&0g6ENzE+AXzTAY6NGB-e-cGVY3oScrwT^?MC zV*$0`r@Aw2pkN&`Y;@)Z#XecDmbSv4mS7nlIu7K?3=R0cJW+ZeHx$;wD?ItB$ht*e z{sELDbVYcE(P`rLBKZfyfg7~IQGO_a8@+jJog1RG8J4mZdGcE`m7!!eK%>MVuWwe{9@>QG z8|}$Mr|-0fxS0lBMN^^OiU!PBcqgDrwj!!#t7?eNSfe!kWt;L4904_H%rKSSFO z3TS*gl3q~rWjSYSw%sM1{%!$h(K%FH#$(VE9Bj1}eRJW<%aS!)GycL+SIyhf9G!4j zbP84r2SFmJ(qWL-{xw7s3>46})6vl=K0vPn z!6d0h5G6%+riil^GCFj)!=HYfE{h(s)7bq%m4}=AZj}t6bi+%=9D_b0XVjCFn;q+6 zdFiRKEeg!(lB#2AYzcvpmcX4q4?XKh-KB36cBd@u_D0cYC#QhP9wK?S9?H^+O_F6wa6-weuF9p_dNU z{;sY8y3;YLMYSl9$q^}3w?J0Nfwx)QW=Jpp@&OEpoBr&R#8Wghq8ZI&;gdgpN}hch>EHcO=&yG9~i!y`vlZum62Jn}vg z!J8E|{Ys#WkS{3I23U)u@$uwj%5t-II4F6s?ACR!ajoqzj%NR?_ z!4S8pC*O%Op8m-Np|5y`*zIY_ayrEQ* ziAZBo^$0Cdy%TP~Q(8W)ES&Ag9guxF!;h}TZw}F8c@(yH%aDO5taO0#9Ll@>nrj=Fu({nFYmZc4;@M`d9Y3^g}bJt{z9pNrdqNA>US#ax_ZlEr)}HQ~)z( zEf}3n5TU(=sK-bFZ$Zi`_ySIEPtJO2Ft#6Agptbb^LI5t1}u>#FWs)AiWjrzP(;A& zW?ckK%m}6Nh^0_UCC-Sml69XBNda}U)-HQBz2ITIO0XXrO4d4Oh??I$ErUNz2@-r2?a?R*jO6mR zKB;b;g|`yJ)HIzaD)(sy2H{i|p|CPBgxiNmN6-pCR#U&B_9lAC!qT$bX)kE>1an~q z44+6HhhkltN3nR}N>oP*OIpMS!+K3qd;MX&JNM~lIJElb*%^+*z zM7x(^S%LZxVYXbFHV4iti;Euwd6x32ii?lF1^0ZO6P6Y(T{{O)zM=~al#fodtG(6oF-r`JU?v+3c3e5Q><-629o@Rk3Kz|EY+B}5 zu4LIIBO72@2Pm^C0l4Zz zDkE+wVa&Xwpa{QFCDu6{tH+o9-U;%clQk)FRt!IxvjV-oCd4pKSv{5)r;ucoYCKHw zpdhNBC@aXDoUYPQ3LaGUe;x}G3~dTF3p*C^pNqwFsd2T5bvqCo0RoMI2n#b~)#1E> z5fph6DgCD3hRbgCyyds^-)XkG2;eB%|U-!!#T-_0fzmbp6U%^ z1)%B4wKAqwmJ`|fqgn?2i(Jy>H^%|VA1z6@=n_5zyREvmDfHbB03j^*X`f{>U>Nh= zB;4>Q85etR3}0FV~vi%0;dJPwQG@OhQs5;)u6n*eiIU^`No5)#E7C)BJ#UoI?k8a(I0F6h?x6 zW=4>(qDV!7m~_0>NM!aL>$g3}pz3ARI)EdkBMp?9+O^E&s@CLcrpg-}zcsxEni;GW z2UsAU0b~#4@G$=}K7`qzTv(-|n+QkPev7n}EIs;CZb5Z3bv5h~_mZpFmWY@nDEDaI z4vt_MnUK`!I5{m|YF0skK~1h!0P>~*gw#3u9OASa45F(y!<1J8JQ}P4*h~VBoC^iI zR?BIogyROWLFoZKv(mQvmT2Wv=QZIIw(CTx&)U6!{G6-iGvDO2w%DE zv04N?pC5V;KmGjf{`*`+8K=(FC(wK*!YMnWFS17~!P(GCf%d7U=L2f-0ETN4^IrwpPx zAWWB8i}DrMtup>(ee%j z;BukE1B3(xyTb9{DD3J_#0jkL-@pCw!^7*hZ}vrZfe`TJh3gS&FwRkOqml$oOk-~S zg8whA_XPW9w-i#GIaG=3>D9>ima;*sX;7tEc&gEw)s7wlb)*>e5y8+f5*wxnXK(CE z&lXK^)5EPylu$(Y@&Ml`YSY^jbEsTHYfn_W&&B{Xw>ZUenD$1R9@kTi zCc9bDalds)tnan&haP>(fP<0Q${)eo9ZI&TN+7U)0 z-YoEWP?eZ#syMUHj7gFn5dPIrQg6X@hZyLc`qFYuJ0)-53n|jwmo(=yKQVu>qCuO; z6DU?;J3SFLq)10UJ10sEJ?Dq55c+}umZ#xcOrvk45O~Vm0urxq;%2YjKhRHe_2Y;4 zmIfvKF&dqJ_~xf?6;i0b;PQ--e)2yR&4Vlxwvcc`n^0xi<#`ZEukS# zqlh{WVyLhzJjY_dS=AEa0vYX8+fm2LW!QGFwoA~*r8AQlH5=`ElxPE3A-|biEiz2D zgo=Gbm}l1_{RY(F!}(ZmPM8;H2pNWZFajyiNye~E>_xg<9ecP zBjyBT6vcBr!zZ?Y7xSr86j}?BRxkwhxYU8*`IqGZND&hjIVr9+hM&uzEv9m$C&R_= z#9Ze#Kk1T& ztb?l&N5TF26PGMGOBC+peK0%TbLyf^1tGN zpczt4706Ntwd~WX4r1d0xd1V(X~hZ=Ob(hms?Ah+;>auPFIG8;EuDjYRs}dg};>to{Z{`Z{K|1(?1Y@r3)>J z{?!~BS+Sy1pUJf@QBbLjZ1(8}Zj3wBOXXAiR$Y|P3t?PWoeuez^1%@)yhAxn9Gsig zYPm)>CvJvv%Avj=7 zV2P${#E;6^WjkPvWt0LG^4KweEPk+U?vS;)oX<+ZQtaBEK7K5MAhnF0 zbxo9+2&y!z!W9D{QWuNflg@1n!s-R3gdXHq>iA+ZL+riqMR%7uOBd+)s!j@Pn?m1{|B^4J}m(X%|H$j!phF-L= z=V6TbV(Xj~&e(RX`*m!RjR~SitK5#bVA!9mPaqc2?#A;}SHe4lo~%Y-&A|d{Lc73b zkG`cI8lo+#ebr|(+(Nw5!JD72Nug+(*mhr=sKi>v7i3-7=k8+F!UO2440t=AUq3h* z{ixOw4$?7VWeupiL%q*Stw{(ITE+;uG5t2SmMjMgrb_0Ztw8gp^FsXqgz_WlaJUP{bpjM5 zfTGU8|3LH>X@*x)N)A?!5EN+NvuM>R&6VA{sVN|wwB-XdeK8(g!`8!7NC^!2{K0S5 z`U7IftJMws>HxXMC(^DfMzraWc=CCFL?7Z3B;B*=grra8l)-QShf`2|ll|?7>b^Q>!RpTM3UAfCBaMq2!ZE8yC-DW%IBJ z&^k3C6oHMPcs1kfv{Xg(>Vc*cP)bPDI(0>r@+$IOS^~Vu2{&#v(M4>wI*C3GzaYGV z&q5U(=n=#uiAypbpjmYCpv5eh8pap~h#kC27MYaqcgtBUN@S#k(X zwQ3;xs2V`I48o$6?8Q7j)#ZRzw_Z$9jpZX5!YZ$TxX=gsDQ{$GMfMx-NMb_&DUQ7y zhgS#)faVvzV>mNnJGb-OX-%PWN(G1vjC2Fkn#4u76)Pj|EG$=&%PhPpgbKr4PVxgS zXJ~F2Ib*5>EDYmCP$g%(g~K!wbJBnq>ilR6gAA)X{nf{a zKsD@wDf?xquV{_YuIOtc)Ze{(g+($@(QCvhy^;FhCHZP7CO;9=hag8<=w15qEBUv< z!iprs0xa{_9aQeRIMLjxkIdEYp%t#k^QHop6+SBa0|P*@9k*89963en))F()uw)-a zl*xIR?VoAX;QHWvP%*#$^%Q^y1_hS;2K!uK&dz@Nd4uhNeUo}NSjW!y*Hp1?y2ZF{ zzAmQX-Kg$`0g0fG$u1$qIw~~;Rt_Itb4)D;XyLens67QZo=(V-X=-m&?aMWcmdh0i zUSm+*pwb1ihJj}s zkJgi2v*Mrgkw_m_jOa4Q$y8@K0aw6r&Rb)Z;NCKes0^vpzkZH%gmgcafXTqL)FS4L zElB0f5sgnH>sI#aql$W+uq_}Wp1KQw5l~NYPzs1?^_3Qp@VD2A1Z-*j_a^7TOs!8d zF&89IH}|z6eiIHRHIVYMR8iDDdVsXUI8TJN(Kg`}KZng;`+5m+7YrVGwu5I2Jagf- zTn1UWmFziaSTuhx^*@6vJ5F1xHqhCU`No&Ajea#cWks8GGccocT{t<8{mz>8QGu{g42;H)}oZv*v*a`cT>?%rsFl z?(+haw-xm91tgtVM#l=yHM_ja+Utx`)v#E<0?yXfA z+6)B3OipB$U}U$h^i37eSVpNqk&cfsqZx$_c4HLZv;#oQMteU`5Ey!eofCjqJIRmJ zzHT6A(n69p%AyF-+9834NL_Jl1{=6~V%?}$TCEWvuXj@!6TY6;8`SJ7FZ5MBneIkh zaU*8JZ1O05&42ZOOW&kO%#J4o{2ZYn>jEs3b@^uku4ZrnT`i_BLjM)kTdc>8lLYE?p z_xXqKzPo?N4*4!rx2e=nQp9bsIb07UnXK9X?%= zX=a4-J8s?t=WlstV?Vt9C2%#9a#*Rwg4m&2M9E0jJ%Tl%ttiIhMK#hTKf-}7owSs? zpw%J?-7MB!-b~S>*K#I^H$$}R0#u=CCusKS7H9aVvNrRhL%f8-(#(p$q5ojYf^;Ij z`s?>$c$IL)N0=z72mMQ9@cQGYM|*6LJm^HQiGY{|hTbh@2z{$l-y!Cl0k|7fv7{!a zA|uV-;?s#QaP|ifGz#-Vw`H|UmCAbyO{!BTiJu!refdOOFVX7OOt|TE+@LQ8kgV}1 zhMU=J$}DdVd}X`^*pwRt>@!)k=V5Uo!!5y(NFZgu1FIie0;x!L;Vz8k zB8d1TurE-RNuBC?EUU9z5fdG1V6;zhr~ zd!?49@*nq+6E;?wVNFm99-Xz9SFCo~uN4;VZD`i$LPmRgk$}B5!a#yZVwCEU&ELF! z@Qm9ugrx`(9QOlU@5Vp8dh_P~$6b+?yBa1mZ=mV%9+L7+Jqdl|2)cJ@e0DGJKtiZI z05(_j;xrX+YCz>KDJ{T)>?wYU`x~8-C4lLZ`Cn=0c1$KksuV&MBDdrlfRRKr=)DAy zvfv8V+1#Ss6j*s2!1u4ee{=tBj}>5f+^kIJ68O&YvXN) z>D3Bl?KbedgIfz8K&@7GY5r$03n=A?%(JJ*Bh(oJX)Q&Tr~~aXi)Gpm;v4FF=eCs} zfonYd<^IjX=Iw`f-`wwRe*X5=!+lT92zKAPaRQ|xpm9vEVz|_4l8$tx&l7xKZ!uy1 z5=GBKuB2%qIl@UncBpw2I>qLrR%j|3ntkF3A~=k7Ln_)O_!@HyB^hf z&%mAWe(in3-+15AZ@lmLH{KV{hQIdvPJiS3&eDB~7~>{M5LPaC?68#+4xf^A<$J@S z)&>{Q%g{X+ceTbXrZWt~yC6Cvl`Ygvqqg?9(J8DKXNt^ZlQXING@N{zJlf~m%}fT- zbft5_{w-4hfe)2@&s=ia}jVREA5i$TR+e)ic3~QXE)3&=1#m!K@D}b-I$LG<=zmO=O(& z2p4|RWuKOgzywupR@wFrn0Uvg2yc!)bj2plC)&IM34TkS4a_{SMXSLe3-HBXD20D7Na*O~pR4h@w*IM)D6GrpZOApw=C zY_`POQ2(UV+wA&1+z_99;Y8{8haz{8j?(jZ92V8%a+hAmFg0;!x0qWcFV#IZH(5#- zO91ut`38S0hQjQqWv_0sPo%gb{r=vL0 zML72o5;&(K$ouG%*(K1c2?#}1jyyWQ)D{(0{yH3a#HbGkFPJxuq3?e@eR_KGbl4vr zot+GZ{o~X7-wzMZX2Zcp@#$h~rrTMy?1aPAq3M8hLX!rOY+{KTQ zzDA`e@FDXtWUCRXbi8zbHZd7;UG!7m=r^{7v>)mx{(FMO5igtD(BuYFyzg=aLpPSm z4nBoW+RuTNq`VN{WbAI$rF9i&P4N{8X34uXu7wo{3PmO~u^7d*#<+O~Z(Vd}-A39; zcIl;A;2VAO@cI|AE0mBL`^X-Iss-^sHKdnFx4RA$Jb7534M&NPEd zX13g1;;77Czj^)s2L(bX^1NuI=z%TgvJ{*>FUjPQH#Qq7LgJVWx_?|-SFGwAY;Atx zz1l;iOiyDpGeZU@)q&b0ilEh^1=mIq>X3D)2->0yS>>7!V^WQBI)~`}S}i$P^r1M? z6+sU|h<@WVxXaq;1HYbI$*BNQL&fzuwL}-S<(-96LY#D}h)Q+2>Y)PdxrDAtsi|FS zK}yBILf}@OkffXLZZ~Eg{;$e?P#0Q)Nf!$hnrP8?Xf=RW3k!5KAOSF#E2TveFQ;s` z8{!JnYfNCw`Q!jiq{#Xqxq^N~)4Q7$GK;!*0Eh;%vz~Ec#ZhkdYV#r!)FE)u)$VWq zc)0)O?T0rH!VLrD8FD!fo4DJ+D7B#u-X^>2AJHtlF-;EG3FIo5=;_=AFH^*%^?C>c z+_zKE5cW{oWC$>HoQIVZ-?o}FQAFeOI)~^RrE@i$yjnxw zwqDjK`B;t@$rcYI72g|XSgM6&biFcyL*s{`3DTURSMPG=?VN(cRic>r2~Wm6uC)^WSu|Y|$#^tp`YK}Vh~_*~ zG-rci_dD#%nVzFpi$@u212qZLPQWIwBSR*`-`;eY5lrH8Jq629!)mKr zHwEFObKbzie+ORZm#0N>7T732|EG&wVsIo3iP6fJiS|#_a|Wtp)N%kncP*G{^jh??PZw{l z8lHH51BADjUSB|2I*@B3pe{v^(vqGy8m|5D&}gqa77mR@Nh^m$AVrx!`+ONAP_UpADilOAZ!vVfw&?Q z5&7O>{m@HsMMH=s5aj26c=!HcasTG~haYzR)9t%gZ{EWI_+D&qV>QrCPfacdwPTWk zq%nhz#58B2BS}}#edJ+b%T0QnJ;RLX0bnxZBe%FdiVG6^R8BnR-8t=;bs#k6z#@f( zmkw+l5D`gSjkb!l`i4!$~k(O(VwsK1_nC9fCa$(+!a8G-GY6#Xu@ z$lB`!UfL!EIp8~{yQ9-jBtdXuIm6bDFSqlVlS`g*F2cond9xZ{9=8jTvUfbj_Q8um z2@Sy~CxtEmn93!|yI}llWK;I&KoR`NWD5)nE?e!+XNT^I-e86+!Ak`A(HC621n;=O zFM(mJRfmA!%AT;w!@iJ47i}6_0{#>(1cDEWb#{{0FD_=|-2$PwjceU(^ma8~FIRma z7yBU<47w-yO|L*nAKa`0MdQblH7eBt1=fK_kc(Wzi?R>%Dk*0Nk-}WZH zNXH_F9MtJzTAhLyofePqbGLD#HE=G&!Nt+Xj}qGqK;dF>*`t@Spbuq1RygZ$u0teL zU3u8wMBO06IVoE;NCga2gf+%5(5;c-3xYkGxM9c|h+l@7Oh!yf1d6Y`Kvn_Mn?X@2 zi)M;IuuGk%5I?betXm$Jlt$w>CZM10gw^-V;C)LC?nFB*ShU&Nji~nozG!PUqe8@L z_G)Q0(HTvRj0zcYcqqi`E{zVu8d53HlR160uJGAb4uvjUw=jOWnv;%3y9<(4XwXdW zkC5Rc04wgvjn!+bS(>iGhz$=eaqrNjQ3I=bnI2 zUHY&r`Dg+mR*xnsTr5;yv-i5%B;`!pve#6ESc>A;wF! zdfad7R?h;*N|Ih)-#Qz^Qvr4g0jT>r3}t#vKFDi5tyWQ^kDQY%G;~)%yUm?Uj|#e? zw8_C}ebN5|{y~w;ga61$_jV9YH-7+-u%A_v`By>4BUJQ0`0~U1R}a|ye>(g_@1Nkz z@K1v;L3h6V%eyb>VuV{shQ6HRN{{|S?@Q~^Q+j$11|bkR88c*IcSfWm@RR2HVed2j zf=Vt{=}m0O9_dYNJy;3rMn~4D=D@5bVhor^o;@a!a_N)Dk&DW|P^OQB9|bys97UE} z=_&ndHR*~5P1R6}G}yfZc$;`gB_#7qVVJt{7$hcQ#FyifeANh>3m1wMHU~`>AQI{s zQ6@x&+H>iEu|N)z1y`ctX2~@&#F63@{$5pHUad|oNYG$%tSR8Zbxn1jh6AGD@UR=c z`*tTd2XONe9@x4pDgu}FFu+ejn^W`G&f!qOR#eWgk$ROuOWT$LV)ol?DZ``;ClV(( znJ+p-ACx9#oiR)51vTpEmJSVhNZGO5{h{p2cY`6NoK)PF`^pE1yO_jc^cBBj4#XcPh{Mls#lv~+I=2la}fYs zPIqULCoNua;|754Aq-XAgxL3gxqH**IFc(}lRqV=%|^y*NqvzCaH%^zY6B99MZ{K_ z0LkhvFscgbrZq)siln;kHBJBadEWON_i&F4fGo8>O_>#u;qDRP;ePz=3mCug6?u|A z2ZM-6zuZD@2M?lw`~^$hP(LQJXvkyqgCBDrmTA7ezQnV7d3w&qUmURhr9I^IzF|vk zS7JTP(^={eahv_i>@lF&J!|V$EC2_xkHHLnGyC1|f)?bQ&`)GHFG!pRR+|a=^5l|1 z^_xI}DD3e+@85^-1l|*ZmMse>7|nE|fO_x^%3uXZ9iDnaJe#SGVzZNmb)IPgEyWIu z+Dr}*g=rHLCro8kTbu1fWL4$h61Ad0E;xmhwNQla%1Bk3+>Bm7xoKn9am~slZ)>hujM{6D#^SuKXdtEs%0FL2uA_fkb> zf}s{>6Yg+DLiFO%DvaXi4bgR_SaaLr^T&Y`@{r$xJ%8~GJv~?x1$TJ?eQ?-NReRN| zejXJ6vY z>Wb>3MD-ii^{{Uqm8_X1r-RsT)JipKExorp&j|PCVn}&%0;?J33eif`)VIV(#l|ft z$g#hoyqnH4fd{znE!W>)HP@`4vX5}kMw*S;aLlI%aOVw&0KbLe67n>ledJ}{r=#)W zZH@5P2vEo6f4z)0#rZ~s7qQf%oXGavM$5I>@gYR@zYPAfA};bf1+Dw|M(3Z-~9G>e?f(0&lzGB$s~z}b91t=6XWKj zZ5rS`Ggvf*`h5CIn#r0QKfPl{onD1NO2;G~ygf$yEijU9G!*anKT+QK^w3H#o#cGb zxVNq+ryK12-IKoFSfYgJsbjTH;QK9`sYVZd9>*Lm zM%;~m#R}`37DiH$z(d&(U-|x`;hYE^Kt9q8s;ih3KP5i1Yb=f>UE@yL?qy07;7X-% z+edQh>9p3M2FY|DF*t_>f2^c|=5H64RGAmT@m9j1T@e7)^=4y{z4_lBJo&q>Rwx08 zw;|oY=}TvC)LRzH`YRDI{glw{y$*G(f8|yxh{#;?edD~NUi1uQX!Q4iC4@D}dch2{ zW?WRLdE)IZ?1}d}nUhB_&&v}fAuBVfl#E23&oI#KxexTcsOEKuRdZZAz;sR4rQIzbne?YMf4SK_WX*TC*Y2mE zZ~yrAj~{M7{rgXML}$JGvD$cdZ(rSPW&?Y}l{eKCGTpB1hB13AeRxM*oO-#s3>BZD zi6NfDKqUM&t=7fS=`k!zxvtr-kdyHODGAy5VuEy)2rJy!{WEW3b*;mgc*Jl_<+ndb zf4=fJ20I%WE|f{8dL$nZ|-5pM9g{uyIkxKH&@rT`4L!b}IbM7cuqBa0kLmub-kN@la z^4))&zSrkAJoD5Df0~d-(gCY5;Y)0Iscbx;jU&$k`IEpQvN~tLL0*XfsOWL3P%CRU zuJY6~f~iCmz&np=Q;%Qg@fes{Zrfq6>t($l@hp z^au6Ry^p@<*@ONs9zR@nZ-^Ra39V@$R=zmp;}2K|E!%Ol&G>1{pKS>Q0b|te+_Dre z(DWJj3KHTN&MQXJg||i7>j5($O3@Za=u z7r7GeV48vZ$fPQtCYXR}y!3XM!Xs>5=efD#)!DGGNViD!(GW2<~ z3Ogkb%FzAvM2^sXyE1jDNS;RZDT4snfRf*msu$y)P7&O>KIa~f$rwNe1v7(#f;1GT zjeF!T^O!6gijTsWQ5|*q!$(*_(VhU2gz0+@EVh6qBviBiYP`@s{GO-B@t=Iby_mrm z^KAJ7@51E^JK;5SX4L6#Hg8QjCQ*sGFsbN;aXCo6Z}qv?_;j9o?qOy%X;E-Dyyo-Z zq6V+g^bl?u{2aj@)^BL{YUyk_lD3h;T>3Ak23l&Yw*lc?y*#{}X=}@c zdxQQ&w#n-ib;f)0yVdQ5@oqxwHF3diq4x>g4L2abj^5rHd`^`Pt9m^)fcvsoQwY4#*!v<{hZ0b_(hDi=d5P;r@Yz5Gp?`#?ij{Vm)x?)AD$=#X6z79P)% z@`J9>^Cx@SA-D$l2{(0p;W7e{VkJIWAM;U`hS2YXh$F9&w%2noam$j8PajOqK(Fs8 z=tNqymAFBrBlAYt5fY$cHhb@q(^vf<^ zr`vOXQe5l08ttb;)1IWk$?@-=Ur3JWXD*p%pmf+y2><^ZQa0#D=WHNERGRmKBf zvnj1}&D&7!+L9es#vegWHv07i+b5=xI`6hfQ;!aLZE{HlZwx;hlS`c@2 zg?m5N{z!J#Hh8H!IvW+>=IBxGqqFnH-<`x7tQ2aq`EKw^Pwhe1H^5tZ39iqc&b+^a z*Wgn}a>)LNE$!7IvSc*@mIi;ePN(XvESGy25``FSo-AS9=kjG1)k|iy#&N5|^U$W8 ze}4Dr?bS~oez^Pi@xxDuefvNDh%o*!eZV(&pVH={jMVbm+`Phg7p!F4|;9lx0ICk;H%r$a=s;Z+J{rN5rJMMZ45s zIaO?tgU;}oum?3(FG{pL@SQL!{>~;dOI$mlRrjgjAe?_*X#FyK#tA<=sbZK!B=`RM z)s9)z)lPk-pVCdj>&?<$9-P5!k&{4pW4Ja*1z%1wzI|qEAa__A6u@!BQQyEBdu78N zxA_s3kVoz_)skAS`gCNY>}3Bk8{LB+!EXp#{|#WGzj96(k62`{MgUAh$`gwZF?9vh z>5Qzdpy`L#m$;=3SyR4|ZOZl*aML>Fv8a3%rf8d_hjC*;5R6Xcn${?{N0F9AYN>I)hY}OTWA>@DYqaHzUND&);#G=S8JbEx znow$r3&(tx5wi*G-MC~zVz`YJ0Us|Z+$y)i`D{dj=03WfBh{E{=CSy#4Yk-Gna4!) z5&IXMNdGyJYYjuBWlfHIdq^B)7q1cJJ3BZ$tNNz6^iGtsBfK){te9FatL+Od(c5IQ zvGk=M&4!wN?8w=)$=RZDV)ZH$>t;I2dxRze4-=~YfIb%FqQ?z1LRaO^d>-h6@S)+9 z7aRTniua7*+b&kG@ID~Qe=o{eDnZHVS0^YDGazzzxjsCVC)PbKM4fX^3=Ss>`z5)$ zR1e7F*oHpuH?Ps&fCU7yoNqkgT@C3r3~1q-H(bD~v61B!3{Ge0PSz`+j zkSE?8C|^y~Vt;A)uPBcMAg>!Wk0GPfShVM>;gIX|!qGYHoGPJ%Brl~GP%E>QUMpzS4Nm6JFjbr{ca1@Q%N}-{t#}-x>B=hphx8Bx* z0r%(&hW;>qlSAmzx!KNFho?8^Qux@eME!~#Rz~?FVAoGC^l`I~Scu;KFnjy{-P`wf z-AC>pg4^m>`YJRYRevV?-=2^_pgLKD3^*CYxd?u=T=}EnHK)>SX= zALuNAB@(^S(2g-= zGy$WqvmMFMv`5|EH+!Fa`{2s3=o14PQ|$UR>j7N=(>xQ4yYqa@9@`8VUQ14g2R4M) zP7Dax895US2u_eWxL3`0{$LC_w5Vb<8>!9C-AhO~oDKZfL~jUG=(8?QH`TD31fPkT z(QsEi43M6K#p&1>tg)ph7Xm()BqaJL@|WUFUh;J0-?KB@(i~Ny;uTHaV_zE1lK>Vs z9dpvVVxrLIu2g(@q*jQ`W-;O`G_O2&BDsxT7)^|rjD0`k(W>%&GH{EZr|N- zYn*BUAD?*_i_M~Dx{p_7WQjJ_&M&X}u%4#f^YR?_j{qW=3!ac-OvVn3dwq*3gZ1wC z0lYe$PDau7`!-Kl-?(|T*+K*M@ll6|3ay4)WF&AeK}Ls0xKllxA65qLI=MoP=EtUGl2wMBYzE%S6CHOuWUF6Cev=Zg-$!#qyX$tg?1&R2l*J-%m# zXKkAV2iLo89V@#Ie?>8$0XtP1UW}#TeHgEtJ@XwvGU%`>Q*B2rluA=oo)WzLT|*h1 z7~%E&;N}Q;xFyjsze1c(uq=n{{(%8M9}3X#d+9RKoOT9~Q^$Mm_A zuF5X8`$O#J`R3s06mt;h3U8q_v585lZwxh&1=~_)D}5og6-bEo3xmegyOqIADh=SD z`DrbCrC8q==U{M?7iqA;#g*5odUkz_R_G=Z+}zhIYm)Hx!TvQH^gZO1EHbd@kIN57 z@eLQ4Yo>-53X@XUm&XTdjr7y9Xy{rY=wtqI;`|h8soMOugr`AQwAoy)s-{R6d1$}W za!#wM#$7sD3bZ5e>%~GM{OHB{##qto*MKGp zVEqYpN$S=(HnxIEBNOH@rK)W@N;}OZ-h_D_&6Der2TCkdL_9h+%#|a$5XU(HBM+-B zC`r61G(6cKVs=5iI)8?lnQrJp7v1c2iOGW;E)Po<<+yOKZdA(B5RI)QksUpBmwl&` zAz3GMp(GLfGc4U}vY4)Z`su?@%Qx@d{o&0IDWj*4eQ@-H7K(#)aRFw}_M-omQtWzF z9g!9_I)2bLrk`7uUGS&1orWc?zr*YsO?t_qi~}#Gd}`>>3_DO+0}_l!1ZE z{2+S|W)Gp)AG4(ri8WV#uKXs&n88D=&}|%&(#1jq6+QQtV9@-#Dbc~#uMd`}8JAQQ z9`>%f)?Tf~Sr)o3&qwqe7(n-|z>)86G4Y!Ak+uNSlJKyM5*#0PVFfWgzar;rv>YOb zTkkSsl)WXtIMQUu(&eig@)0wGh)0YW3|8kYgWl8PtyT@q+e0e+E37QkRzb}5J5JO@ zN4-m!Od8l%u-YEoG+bClw8V?%A25r|J61vLgp;PiYX_>qYCSbJ2#Nx+`07$WXjRd; zH9m>D((*sW3+Vo8KVP`*fr391*znmDigcKtv7vagQeRc;*GOPGtX;REY*-i>J;k+< zoWe{pEA!YM?zmH{6vb4CsD{HhD(8is&UwQre>uO}fa*F+`&PGKE?jo<=G`Bce}4C= zqO)Z4Mk&vqme^o1{k#M&@#^5IQ=aP_N~lt{W3-E5e+vBSBRYg1HR+p3V7uYN(vjdm z-U+x65YSsJj-oGPH9^ZCkNf;V`pigBF1J*wN3TdwoF5d@3JqsKBN5K$q^c8D+Eznu zciR4JZ7Y>_2E1fi1bE5i2%kbcHT1I_s8Mr0PPUIk0T1|eDQyBfqp_V)UX~9Bqw3M> zig9|S_c&W+Jpo6h25xv&K(6kqT z9ce2Fd(i%t3$Lf4U_=8B`+$_`A)Z1Yn}W1k&Wt+bN!&Lgl0oXf+z6 zE>Elx*G>clNRKa8VMUkFad0R}=HTt8i_d@h!`)8?mTbcjC{9_TT&9DsyvpF8t#`J!f|M=n0~KY+ z^I}%`iZF-ZhQ?y49uhX8jOS40q~$e16=ca?FRxyNJfPw_B81dhM4!A*c6sY-hf9BJ zV-7pNm@do>22_{#P>A&ka%gqLkW4Br{lNPeQ>RUq)DqG~>nL@-;>tI(QfomROFtcT zGSwZ9M5=%S(kGX%Jxl?YUPh5X?J_CjLH;i79g}OTV9a-G^kmVgEHOwo+kCp*6ED-E zOFbuGAUpl^0RYevED8V=yV5o*rBK`nUQ##9qdd1=o_wal2UI$Kf%Ksz6ib)pg6;nL zshT2{l9x|NFPd!N&dy+E@F!%y@7Z=F>v7z6zi*Q&O(C7^XT)~;N10`%z0<>*l{3`6 zR1zb!dK^t9UlgCh%Duu-!tuJcod5QBghNiaf1qQOM8xKtZ=g8REkY{%x8`cAS1hkb zlBJoNA4(5vC2#7Oq6AEH^F70JcVT`#=}d;O=(BS#76yAU0dhXc6zrBAn`@6L6bJ3< z3W*K2tMnOkJ1t8+A?{cb%>}k61O>msgW|r5H_txTAYEWc zu({d{Zn@?M3rCo-yv;B#h#5tT!VX~FO-=V)s_t4%!IdX+sqG(MmaeFFg-AfX@D)9u zlx+i_)QAU`Yj!2n1Zlwz(SG|Lc*vj@9xQO_zJgm-mKxdI`F7X_ROuq1=kg)El|Ybl zQm!aT5^`q~S4SvvD$t`=fe^dsr}SZsqLVWy4z7xUXusMNGu-2d-L!Z+0`?fHk08KBC&Q7;jxN&cSd-+WJgcMZW)9Qvj66#8y5D?53 zn{=2y5cY__rZ9rT&-2R1+Is}k2W~sxolM9xbb5w92H}3*|rg%8g=;{X%5l@kNy?x&9xOpiUOED)H%Xbkp$rS^%0q-f*%^NSoHC_SR(MF z_%(Uo#VR!oeyV8zCSn*kd3|zYW=AR=;z7nNb>HW23)VD}L#&QS4&f)+%U2qF1<)LQ zy7=&38Ft)+hwJ z@)Q3CmDF(G13Ias)UFYmNy{_xEZsH(+er1sx>mmr(qSBKUW(`T!A@#4(H&c8ckZn+ z(s8fTtlHx@Y^~eF{ES3&>*FQCD9cLQaoHPIz6i1#A zq#qx=4}bd8hxe@)UOOng@hm`!Yi0(rbPmA5Bq0hd-U%T2B|c_)Mo1IsVU|t@GXE{o z@6QFYgH?=M)d(^O_MTnLW(G+Zon%{rcwOFz_+(=PM&) z!ES!i>d@SAT0hEn7F`+S#`;5e5{UnVMvIk%L)lho5l8yvVBZH^&RjYwSo$~<(wIa& zskZge;p*V#nB2R{&2fH?61A{HE_qn!hkTHpRpYy_ybdC}C{<7olLSO|)&xGe9B7S@ zNW(cTk;|ZO?0OTmC~KC)-s`6%*KnosNl(8N>Pf|{i1m1*lLY|#nvj$w*3sL(6Ah_V z`HEa<2bW4;LJpGWza$k}y^BM9bPiBHpi-Lb4=E|NUyG-~yVgrDwwWgal2fU3o!XrM z&+T^KQ`qNVccBG1ZXB-wuIw0ci9WSpU+n0+Qa1_TK1QS2S)_|_@_fqF;()*r6TRi^ z23l!&Y`VSu0yU-J#=xeTTf9pRV%z1h;@2}6T8<~J=df3(k^voup&~rYUrYWLfZC8-1!I)jjk%bpg zkq!!6RWPsISuYF~!{u0q7x$a)+KwTenw*Npp2Gz{N1s1Ge3KtKU?zKYW{LJ;V##;8 zB28XbQx?}GJT$TFLlxG>zEH+-vE)O}s2XI>T^%&8>0h3^UkH|q2aDZ$uDLUE(| zUehBT?$Qvv?7-NJb8q;;ZMPpC4AO;4p%aq7B7x-?;X18$JHYoP?^hkHhG=3ra_*mR z#$@CxZt#QUN2R)P>0EWOj2v-oi^1AUDp^L4=*LyIR6svxJD zKYewm5;(&K{GWGk{$qA~ z`{vW9pWgoA^QXJp+sBX9R^6l4PatJaATIvUg|zNkT6wQsgQXyUSvPL*UWz`EqvF{X z-j30}xTn4Ggd^bi;P`xbBjxdAX+~DOx_^#h>Yj8F0jBv|BfN;A^;Sw&nM-vg?lqx1 zt&Y=U;`XG(xFK9`*E}h7y7c-M<)BuyicaOp>A%iK*WRiDIRSxtMU9rs)075n+9<1= z8>6g@B(BMKzLu0mswT zptLHwXfT43CRQw+zQOpS)UhG8UvoWwA{7dN z8hJ>}-P+DSn}dvi9sKlcy?jUrzIRLmdz6PkAD?AVd{NVcaxxG*AFhGI9SbRnTmof$ z``{*IxNMU@ww!dMbk(U9!UB0i`?nadt?pd+j8+*J6NhGJpthmy*U)h>%*&L z3AQ_oRYVjJMzK&gh0b(Et+TRDa)NTzY*PeZCGHZ|*C@GQ!Ph@=@ppe>o#W!0evXU( z_8k9iPpos?9nEp~zdgsl+Y{>?_eOKv`)|+j@Akwx$0wsXKKXCYaq5W;z&}m3SEx#? zr|EpG8Xb!}19x&BuQynE4!2z=OS=b}k*B8N*dMe<+0OkLYN(7*+$20rBTR8 z^z`*9?jWg}k>G3ZI|Xl?OLNi)9bw89yGe$X_QIG&b5aoy%IpjTKJ_$hpFg09f2!$g z+pI9P(T`?bWsj&b=~mDW3Ql2v*Pmb-nj*d*mL2nVJV)#pY=dJMZGdj=B94(9dOc55 z3n`3oCD6a}W*@cD)bIeWBoC$y{UOc7ltZTOZFCbnB|qG@kix%&$2+=?U}xge2z%W0 zJ7v_4gh%5p3do|XfwQi9Dbw=arfr1>VZ;6pz(~r$R$yR(lv||ORY3~V;>w4X?N8D@ z>h!wG=qM0_yGuvndNu46d?((LHDc8l?qy{Z2EMsDkociQ2t^-HQ?zJ7nu~vqn&@e0 z-`P1j>a1{VZ_1j}Ay1Fw{%C#x-^byHfDRsg$YqBsz0|}dr)HWMX59dB%bAli`-2Y; zhqDz)wn`MAB;_#Aq;>GyzQd7D zC5-y~4B^R*`z{VO)g@LdtsRgIglZKxSM<9k30;d<#3+5FZQ^mJDV{{tY7HKYpfEP} zJ{QK?>*s484Iwhs30b!7@g@dlgrKdK2j5?>9AqK$NnZPLqEwV1f4)9+Ir4?dk&k5R zsUh+FNU4C4N~K{|XOI1_=|}#;1KsDNq;%iOyb1So&%gQWUqQC_^e!I0dH2Da_a46a z$%8jPefZ{Q5WmKW;1DfGE@9E(T0d@w19f`w;-qKb=~0&mX4K{397FBlqIibSLOAXl zLtM?Y9@1cxQt_e9nD6$mzH6$BxJ#+80_%H4`JGs3cWixXFcf{Bn?XK}s+m9_uD&&$ zKiS`$T>U%MqDo3X5q~w_wyh2kn>h7`yzn>R5T{ zqi<%a*a1fn+xK}T#T#Jd#@axDTjy-3cy&HSGjpIe98`R|xDGEkq6_4)yrWq80&TSe z%9fe6K92;=g3WX)^ib9+dOX-@*`bE}<|CuXbdn`!EWRB&D!mli<}>C=No`1w12@l( z(7N`*i=~fKLXb5sm%KPOFLg4R8bI)HXst|t`tKVx%pU{Y{vpnP*!lZg{dG-mS)Z!P zc=8}f55p3q6L_B6s>Q=WCs-@(?9gQ&xu@tl`>Gj{m+r)I72$@1O2_UvL%folb94pz zuj64=W0ZnK6Q4FWP7a;VzH;E=YX|Or?ZCaS9r)yH2R{AUfzQ5n;PY8p=p5R8gEOxo zQwXQPT;W!ggrf(osSyURRtG%k^p&0#)*FXZ0pQ;6cw$a?)ZLUL#N}Lx&ONz8E^DpA z?DV`sWDq<7h8*5&(rSx<0ygHLueu>0JAzTT1;Y zTO1;Sb+_p&P%h&sR^^r`NgYO;;LamglMr35K-cBz7$Faq`3`fL+kL$#PEllUdN3W{ z)Ih%jD>MSI*o;sgOCEY&Jn^&=S|yfO>+p-Mk=)xDBh&6)jN!YmDh;0B?)Chtf}!<| zp(kzcgG`CnOqt-evK`zXdm|#iNR>xye4W-c?f$OFS2+!qU0ZS?S|mPPWE+-RvycP8 zXrIPmKU>}YFeAxg348vKA#6dX`HFm#9EtEj*qyZI4V`|A%7KU1&5`s5w=;ZagKfRO zWOETel4{GZm~HlspPgMOzTn1%hxIqG{PUX`dLJ;q`)Et$(9od%Ig#F=DDitvLiX`}hSqj=N@8unW<;wJ(0S~%I z9n1CJ?W-a%t5HiG5doOcFvAl%L2!f>DTk5%I#}VX6V+(7sESSa;pNQ*AvFB*d-OzB z%Cm!IWj(~W+IHQVC~EVsLgQDniO&?-(k2rh3?t{8Dkg!d6Q0 z>N_Gm`ldiF%?b`a-(4K<{rvOo$;^u}NU--C_Cn@O2dbjm5b)n1WAtPt4XW8^xC_e^ zyc75Z{xN+|=2B~=n`hA>C zX(}8(1)Z?jIQTWMO33Denl7t<_9FY!A}M7!YVprs;Qbfr9IJo+A_`pXpNc)C(+ng^ z(wJ!?bOnrUkMMMXAESFbqF!*kzbXRUxq47lc-00TN%tn-)jTp$H3zZR*1RMa;{7Tb z^?pU5%RR|x@6pTH0R*nJx`5}t52%~-x!vDoi;$1ej+u|B7vqp3>+o2?<%@KW6?FRA zKtA|nZ*H!xF4xzyf>EAo@i8p7c|S3@2u*;iYq0n&wVZ*ls_&F$OA$pH=5bO%LRweTJO;R++1WzQ)_pa!-{0O9kB}cC%jBD*7Y}&@vT)kR1cH0;bwKZnJKV4e;Xxyy8F|gi|TVJeI!R-Cypq%a`?Me-()p$E#+GHmtIG_)m;U8 zQJ0j?`*;gf4qxFv8j9nAClp_ z(1mS|7B~OdWUJqhh)pqlA!LS#igc`lEZ>lY;>$Oj$w6J5O*o4T=m&IPINZ*Z@Jl%T zBpDsAFFKuvoUc7q7O7YS*%@V+L4<;v?Zk_2Mnv$^5&xjZ2_e}ihUxG>2vA3g%yKG015zoBKhOeNL|HQ)`fDp z#VQL;LpWX+wmcTM#EkRoVoab3ldg$2}b)Rzj& zzu6og?cbbH;YZLYL1wV6Obzm9kCEYCkc$R=+C4gfQ`o_^wG^*P(k)juS*>5zkSVPq zgJ7sv@8A64-CYd+@cz@?`%mjT{rmRA`}m&02(5VMLA~Y~wVj@)RE${){p6<8Q};a{ z94Dy~H$Wc8zMy2YY5M0OmB~YxS?340B!546XOSH%WA*iSCPx-(PebeVYPYzKJC8|4hWfD}HJ{S|2|32K(OH1M zJSnLnbgbYRg%s*BI2ne>2D5*?I=U!mq{>JVEy!ro>t}g!s%NDsbxj;%#h^g)snhD> zd%@>%1| zRKlmqU+g_fS~~C~d@jNV=OPvYA>kKf{@o5+(&Jz|AIkgtz)cTiSV6d3g>tZCof7YB zsVDpS(!h7aCpNc?yMlt%$_2M2*j>mH*5Uejvv7w;o5RY^O)&iKugrTHP&g}LN5b(n zZ}=?x8bk641w^#4Lz|ieXpf!ILj+nKQRwxWOrZzg&!!p;-Yq+{!M&oRcUzq!fCx+6 z7OI@$QIQ?3jc$@Z$F-t0fD{k)pC5G`EU9b4b8X=E z?Ww*zsa0p}9WL*6+Tee!g(V*!+Pb5?>SCD3dek`_W-Rd7uwcBhUf_C@F9eH&&(4Zy zq02%4p({XZ=q#qbQOnhEowmTf;mRq}B8nFi#v!=ql3c3r%Y@4)g$P~C!*NHYjxY+V z%o752^pycoXsT6o*y(eq3pq#!%2Zu79FZ0cR8=F`s!FFw$kasf2DTUzkIGmYmK%z zMVj^e*5ArcgRT@aeY0n-J5a9|lH;M+2nHf_)SxIUKu5;0P7B1-LIvbEt!JTx4`dor*7~rOvRpSK=cRSDubEfWzbs)XC!y;el^+(X%7wr@x}kA) z=8(`pm_4TAq*TSUkCinCCYao9h>BT|8b=<;E$lOZi<@bI_ZAjT3FLec<5p>gH-M$xvST1L5hs ztSK!cEBVq9abdm~wNNg#yw7@Hjyk-Ub(M1^%_=dSfz`?&>$4hjX>t9$J+~^(e$xDGS&?=513a5v?_cg zGca)!?<07Af(hOuyg*)IZy)k!mIly5CK)%lhF4a4Oyz}lC(h}C>H^G*@VFz{&w$1` zA^XVnifS38B;0QDBeW6_D}02GZb|D`7lyWlk=og&BxAb82s*q4wmDwE5Bvx9N1TW? zljc+4pAJik3mR?jxYyf@ev1TBNMo5f>W_b<2oOk8slZ)Us=KPw=UE4zfBN|8?C$-) zefsy?C)Yo{dH<2h3m^S8>b(K;k@Mu3fWjv=B{I9}q#TU{^K97YahKNuCge)&9@(9W zAKZLD^AUk*lpFE2JRDwcF0TMY%U|2=o_N75^4bETV%?eEAb*%f&6 zrAkiZ*+g5FzF1+L=m+`so(=*|nn$_6eS4)%WsGl6eM>c(jS~-S_xrZ6Ca%8&5)WRi zzsu!hF{JI1RupyD@!hBO&#S+n;F5n~Wq4$=7}Np2s*vT;n-8CV`r!^V@8V055;B=n z+FCe=db?UofqPy1S;mOzLAN*SuH27A#B#K*^bI7AyB;;BS-#Fs!$vFV==A!&G{;+g z1`}tT1*jtcphv*k$iCkz4M7M)nyBh2w8kp5^20v8!vzX7@60?kWZON(S9iN-ck&*# zvUuorw`9%I;$SPqR`8q0?>_wD&AZ}J`j6iP-$^A%j@OoN1Ya0#^hUd>zr7_JSbII+ zi<5``$Jwss;~fCEsEO9H;P`xR1o_Q#)^sN9;#h#0XZ@NW%uXMdYMinDfZBo=mrE%` z;^}#+9vJ5L*rs|fkSQflg9%NYC8m;gEkI(PZPdvypvuEVng# z5H1g*?|Sh>#?$5)-ZR1l3Kc$=3|D%3FxnBX;_<(HNc8L}aHoCpfY3g9JZPUh9kf5c z=lSy|_jMF!_A-C_lklXu+}P2XLsrCa-Om1DzWYzR|1>9ez+!Lb>3r`WLh%SZ8>p4E z%?B%&W?)(#i*pgmh`(Tqq0gm8t^HfSKH4G7Xy=&ZN;;o%TVxv2zb=58%P(f$O20Sp(OIPI`v7zPOL|1*Ehnruz7TEBQ67h^1ym#9B(zx?aKD92n+{J^VCWDYROf`r%u}?3(aZ)vPGZmM>dAWc zSij71n!)@z;xFff=n1TD&z3K6fn2_5;?}ea;ZDp6YcKp@fD0paM2ph7hc;$!_6(81 zj~jbdK?yURaxa6ceaQDpMpxN04>GB%uk2=rKKH;Ffm)J_+r#VQn!Ka1tDax&%)LBX zOB5bFBXFv{`tAJ5`cY#~bH+)>LH-&v%M@))?zA({Pl$$OaS(G}l{CSs$IWyU zsl4ilFR#k}wM|}VK^%@`muEL}$-SK~4yu{HZ*B!LGWU#$qBbm~HFxF`LHxmXQdUq~ z8V${?c)N+|6nCJ%W52l}3r31Hy&p_!vh>_~kcvv3wc1XocAsK89u%r$5U;3F#7ba_Dxydi(Di;+JrpZY<(uR4NRKZ*_h zB~mr+Igvtsq>$tkr@i%ZX?+F&dHOPrlkC{!M_$g)Z+9N;OHG>mQ=-pos)t=Al_g7# zm134NYoCXQuq5mN77UuY&>l5uMOVkaL5D5MhNlrOyZ`s>zaFar7I3igpKo5I%cxv5 zb;eXH_39N%gRcMqVkW3fyWg(sj2YXjX6asG00^eBbuNim8-Ww9@)^gU*;b49RvxOE zU+mx@5MJAoxThF^N>qJCu{)7Ln>a@}4oNogi$Z~yn*?I+l{!A<29@9&qV7@K?`1aP(~9AHCm$R*f1(4o`O zWizPSBwb7Xa=q>FJL>e;H^4L~2{Q1x?~CD}SfpWxRs%+J%955do2MeR58a4ZXD2qe z%_UNi$#9_czvkfb7nsDTKtqDQCl@u*pJDQiF${HY{*0`UShxpa38uK z{Qs)OOc!ASZ2}~W<01o;0B&dT*{9CU)dFQ-H+!JRtCd0gvHsDQ$KQX>E!EZS#eq0{ zeN+^d&N(JPX_2@3VhJLgv&(d-eFQClYUbpp53i@PTWy!OiHzOUp+4Lu4b7|X8DWJ^ zrXN4`=`R<#`XCL&S!mAo*NnUTEMZjqEsmP-%+2z>6zZpVTp-q6OAEe1QCmJsTyfCZ zOi5HCM~xg)*F7*N1AeSsxd>4uLWZVFBDZ+Wd&dM7972E=V_I+6==%NI=150|NdU3y; z;ZAc3GX?w@#$VW|s{le=s%j@l8hlebD*P!~#NZvB$EJ|95&I@FWNJImU^_{oHn^4o?hHs z-fXZRZM8+E9UGG#>LoQ}eXgDv(+TcCyF=`W2juTz@zYy13b7NzI`U%8_5`fKt1+;) zU?KTIuVUBlg$y<0`t|VDFQ=P(v|ct->^JL3jWIS?;V?j(3PA|}MrR}M%4TT|+rAi0x z67#dWQ`|+X`C@lR>LMtX0*!n~P-2oq3!BR0`b$K(xgZ`+xHN9ctVby{5&F>@BRQ>6 z_o4HnniM$i6QcBpFh(}4Vpo@fqrY%Qkge7d`)3aZPPYGMP+M~aMRz zkd(m<@y+1M)H74Q+z%>xW~Qzb22~=dZUX6Og+T;o*xkh}uxVQH$B9Bwqi_V)3%&R8LmmqHjzkE1i4a7y>#C(1 za%za*Sa#Z!vWS!xb%%NeCdx4tu@|~Unhgcef#r2PI1b}t3F)&&C)445eV#ZqT5V{mWD0U^DWoc z0HlPX=^{Mz6irtz(6`z}rk7|H=P| z537E976~NINENMplYV?rypjB)FcZ}WV0u_?jcBVjJK6OOr~P1Ea{lC%C#wCk-}k{G zs!t>M;j)e}pLv4r1g#BdrpS-nJM{R?T2%gz#3ds51Lk8p29Oc_=7!zw-&|jwlar2z zDayMMH8pC~TkdL}MW(zy4_@;GEz))-Js<0$u|r*8Je5ki)D|SOf(l#!hYZuQD_E`@ zQS7}uEH)>H4^#vghIo~{-9zp~+Mt=hwn=U*>GB1%wZvJAmv@6V#8XR2e^S(_eF+Qz zBSn8N*Hn~u&~vjs<1XuvntBL(4<>w|H(ybt&*aA2__%3)NDBBy{PbmY+pH1Ltqy$$ z)w&OyL5?0NZ}Tv@NTAai!f*7kgljnx3(Ac$*(gM%%NLQ08r<$Hk|>*_;K?L2MbQeT zme)9OiR3gYC9++4cQj(y&YG6`S?IloYj4^ZZC$^HxlIk%tSB}K@lbPBbS`es4h~Zd zSWn$B*qxq%zYp{;UZ15*aeY@(P)ZQ;VyTsQ#Z#hyD~Ti=c&w9>Srec|J92=dtPTEs z{Ek%MV#ug=$uo^Qtsp;LF2VpD`f^?RbAx*x(zlL7QZx6gXK2R=Rg{=c-(?W(I^+0~ z&CYlq=d@B8HV&z44VVfjIRv}!wPzR+wL(YMB{%2SiQu8$+fDuyp>l&9r&c=f!ZJ3@ zPuuPNNbKPN>-9;hNrs5Q=efgcxrLKYp-A?FrA8}^!xVPbpYA^X@aEm!PkCtFK^kv* zibBK7;dXc?PT$ZwnuMFl^`Z3gtJhbL^%oDtZ)Wy1ksc62ca5jq5{oo0 zlweV9c(@pW3;_JG2cP*LJopky*T;%N*IRM5>rysP4e%6$lBHPAo;;fjo^1LHrgDaZ z+v``(PI_Efyh=*G9J=Qy5PbwVGU(r zqh0`E{`PlE^xwjqOhPw^-$X-b48Uizoyu+}wg|i{*zB^~6<6P`F->k(%B5)ON^ZUz zu9m89NnJr`SI7HEDtR>Pbv>7MdY2RYGi)Nl)d7k+vQ3vizS~N8yb~E$G45b^+&!k)YO{e?+;0PxRkbJ&uy)LKve zOOaS1yg9%#4t`5nm=7;sT@b3<1I1RiZ_@ceuor)@Fu%-&^mj@e^78Kej~{-z%}fqi zDzNCRyekS>{bGu{b_sM zXhhx1{XW|~2Rykg#qx(@pdK;>0eB8wi?@?)($VJp*$@2xul{&F2RwpJuFV(I<^unc+2{8-fpHMJ5@3IR^TU7K{rH>Nn|E*j?fu=4kLN0%Bq$Z> zlSs`G=crq{Ho#7_=fRU^wiu66JUeX8-Bfpwq`~Q=$Hc~1ZD)IgtoH78W7435Skayr zJ9{e96YK>^2~cKMPsuo=vn%x{p`4`aC{Z!>a;RP+YBrz!%5=)O?sQE)H1wl=%OfMQ zmmmeXPAZ?eN(aI5)B_;d9V7eJ09+ALFLSh7QpLW(LV?7f4})xv_AeD-j~Q? zU8@f&pH*Bbt}pY~pqXBsFYvSA!07W%90anu9YUuMgxV+2GiI!#Y9+U#od#s z5B&m4oMbN+ebkmsP>uF;S|u=n4t1m0%|UTw=@$o}YM4(nHT}rIe$~;hV8eJw*j;pL zD$#n{>9@!Q|(sS|B!HdLm5@fm~=qM*cc~P^(TCXIGvTNuC z_2LuNRoH*p+GHTJ$D-Kg?{b%(w1ctM)SNptVp%Xgg>yG9r=}M6s>ld}7_L9$b+u#RF zqAc;-NfgksSvQ@k>7mtcDYjQ7b-%bV^+@9{mj+g=c%&nLoi?L5VQq`Y2}dxIHfn9Y zQ^VE@zW7!iX#-rMWF)iE7FafizNjLnhIwy!rz6jlAx(LJ%k}aET>J8RMxis4CL>i? zbC763pnW}0(YCH9XhYn$;P50y)?Mw{3I#~AE-h3~>+z=n+Yj;4DsChZR)|){Mz7nM zYp;HO|Iyrvi?AkykSgc$5RNNX_z1FkC`VAQ-laWJ9s;6a30lw@HAuSEdwe zt;&w>>^u#N0iSS;x?Fi4X95NwO0TiMh7<$}P|`E>Q}fT-l$-F6j!2uGf7-cONB$J)V7xaED`DCpJ|FrJuSX%< zd-}GHY)gW{P0*9ikkVY#28^c%giIU(`jD)?sE}1EXb$}!Ctt+GD0smtO-3MV?CvtZFd$;qejq94w0`j93p-S0Rx|l@Zuy-}_BUGIrUow=imQ&-r3&l=dL$~Y485V%O^LqmN>W$YwEZ&~ z`Cx|OHZtKM47bvGg^XAlT^&|b(}PtiRu_#DKfR2GA>YjY(ba^d3L+s{p{bQt><7e2V6ZYW4X> z*(gup{nwgwy+GzLR#9T38@%|hzK^%pOW#|bYWk06KeUv(QuoNLRz= z;%t~u`B`P4wgE9mC?M{t9cP!Xsy|3=WS6E#D{&jLrJj>ZTL^ls!5RMetWoz#76VIH zprdipv>-lBfQQZWX_rCJST3$9Bx?T;jAdeE5;Q`idUykLNWj>fs$mvJAc+9#sOcn2 z1MHNvUveSQ87bZ)qAK}VJ*(PhLlcDiPd;~0yi{?lwE+}qtZl1PXzneEPr7&YQkz#U zw7ICMQms3kF(Zu%+8KS*%<$}uG8$kQ(uP9*JwvPvLGOFB z*&;DD$e@%P7GFgL0Pw)^B2Zu7TxFf?rt_OtErA9ygFO0M^a{tUm14}hMH&qc z1+c_oY}>GTOH4CJ44!zPuossiD@Jak_KTJI%33wfW;JcZF(4=B(e>pShLy&yiom3P zP=QpcgO-wCjj?b?L7g15i|eO*4bqGYAf_U7w`vswv*A3ByS%@bo8>9`3ap4`tyQsQU}i0zh~s;Z zotPfrr-!2-jDaf^O=ygkr&pZX?DtX>{g%w?l>NZ2u+?H(SWpvgrl{A_!+&1g%}}j5 zyf8q{2OD);2!bGr@2hKVD)uG&MZ0IA6DeUwzFg$)Kt;GPY};6)&eqp!r-Y9P1?m5i zsm_GSn^E4C5^~agMFWEZS<1k-c6xwTt>m!`AuJi^(M{uS zqZ_f0payUxp*@iYwqQ;N1PzF^!Ih3pU<>u?W@ZLybnE4!$eI9O(6#N3iQ z72M3F7;o{duyX#XnG7A@%zo!$8nySE*}p`UQTrTpL;nZ&)p4>_Qj=ozf)z0nRakhFk99RW*BsBs;oH0twsLHcSf;TZM6#=nwH znCJ=oFAWNGK%O8X2ldiGB{~$C#BWoz`$BtL?Xz*oFv3%5TvH>3Udf$>vuxp}&AGF2 z&$dYV)CfOT0PB-}c{ui#=(;>O*iz+K0?(5B>igUI&MS<*)yr@nMnJE^3TSqZznLJh zd}iY5mG`YP@`9GmFI4Kd^yA-uNuej*8oCi_|4};QEmJtBRDek-Hq7Ctt220r&RG7`Lc3lXxv=q7A_w97AOG;b z&OiKk7jF2G>1e7yn3nI9-sC&#EOp|n7L)`N*;UtAI|O(9%8Wg&ND?ACvB{363{Sm5 zY?jeL50jA?nlj%q5|29lssX!f?(^YM3`gt3BhFZk;q0>l$$iA1?&0#*`W@$R;f}^g;Z#v~s8+-@!;GwZ}bvC7R*CdvRBu z;=mB20bZ9T|Bn;?0e}}oiKDe>0(ps|dT3k&J;Es*+UJF`en}sTC}7P(HFjjRLp`HY z#}3gE=u)sLkFI0wLNmBf9w3-$Ag=2el{FM*Y4SU1=#z|L8zK%?=Ua*QAwhvT zPef^PprDGVXockCE1cW#OQDS&5`G8)JhhR7Se0~h)O-D?S!3sgCS}vfzH?`4>i1@b zZiaa$$ks~8)cW?lY@jv6pQ>o)v@~Hfd7&}Q*-fy0sbQ*H6Z$6I7{)Cf{(ZqG5yLR8 zA&xCmOHTz+JW>;V3fq8&7SJRAIk_br(Aa5rw^G;)J(F^;aq6Ytp9jxo*T^R7N|kKp%c@lxH=-+g=rP4(yXu*K>HWb|!lqASq{tW+U}81z%kw>3wbHw`c!xR> zL}Q;59{cU@gvb`Zu?M&jn^p8zJR(*V$3QmssxD}&EiGMMOF_cvQeq%BQ^?DCC@^-4 zv1+T^cNv@1JZGua$?N%(N2;g86Zx~v-LzeG2Jjb7kQgP>t#2n>ZloZYnPkDGtuB|X z%efs&J3qQOS8*ccZ5m+Hq+8fuADdD!0Z6H6W#~#yu87n+IztgNx;EyBHkVo6-;~se z+#7qSl{7mGR*0=<(|$oFbsw(LQR8`>w1-luKXlgvxzyuRU<$Bpme^Ct{)VMm*DowQ z_0o%A=9bMhUPo|$jf1k5k?f(jx8H#q9x?(<_S=Z46A;YO!GGNRd42b9=Avk=1xKpG=K?gs--+D9jkC)@ZyNJrazKq^~1qDLE$g zoH8{|qtDpWQlv9{8F4>|8tQ@OtIzzn*WV+;#VNprWy`;@>nejQ1tc@xyr+q7@wcTa z;yjDf$Xp(Jory@%S+fvmekMi)KavQcPlJd?4TY`_3x^)97kZ1lAnEK`#I*I4!qE)i zgc8uOO-t%FI~>P^9V>$)8DPKv(-BF_MP2r{5mW&Uj&a-!FZhC_R1Q#BVgTzcLOzqEW&Z6Uc_Tb-Ur zv|77BQMIl%Y*h*Di&uO7`0(vV6%1SbeD}j|_J8={?&HU+yPy8__M;L*X2brcPd~l= z!{<+TAAhs?{0FE%U3uGYHYA#|VzqtHH!~zs>mBrx*LJSK6xB89T;iERZLaZK`@3;? z)hD%ghYxIb_b^3`d|cmsy?X7P{_F7Wa8qp>u;l^#O~Zj2KzT8}@hA7w+bBQVXntxN zJ}*|NU68`ub{|#Luld&c1p!4lBQO!MEDQcm^|nyQEZc-3+II6|Q3AP?kW@KjqrgX9 z#*wP9tT7F3J`!W>txs5*y2U zf-J=3BnMEC3TYmK>K7sQNvZu3zG%ZZv6O6|S%hJ5k$8h39G9FKM?0LL6|$~k@M65-`Q~qFoekJ!PAzNjW(~N3Fk@~16Su|SzK9S ztgRd3AfWk$1g z;+<6RdGNZ=3%@DBA=P!5_kvmhNS#Q0wO6q8ku|6CuFf$77U<&4)pnvZmPs{|}%#;oEv*G8X z_1zD5e^$lHn$thCzGcP+sRSygBj<}Iu6Wlwkf!zf26+N4SB(wpUXGhSkN0uRJfw-F z%o}c;C06p%txHA14%d>Ak0}>7Bll0!2G)l{H4W;QJ0T{4Np<~sudl~pw>V2-g9m*G z#O$0KOo{=^C-16gL9|{b63g3H`!7~EI9IGMacCh_yATWlVA*;Mrr!iPL6&LA$xP2)^Z-?& zEE-1`?||C$0G#g8^6&gi(LGi;W`9)F-$gyp&?n7*t3MAO-sT6Fd4@uOQE3y>XOfbr zD{vC8!E@(cCt|&3tH0GSr?y|-)Vw2OYx1BsisU=1?HWXt zgGd+En^K8uiZ`XAJU9{HkHKR$F68{h zy(g}!ximMR@+@*g6LN(Idb;!E$+slk#l5^#VO=XM1heAuXg1O2hwx$YY&NaekKtzd zMlA8jU$l2OjlP{}-Q$S^Lgm$kW)_`lF^tWl`%X!r4mp4I)W(hw8_AegBdjQ%9MzEL>j4=%Vg}i~03HZQ?4lj-2L(a7|GwX2CrDUCGZga7!JD^VA z%G#}PQ)lDihZQ7VzM?Rg9#t0}9F>t#>n0!RQ7vbVChDv(R^l3x?yc|M{D`^QLvk>;CQUBHb*cz-P#oR}{m(5XD0);NRS+L?RHwXP?cc2#FSXG=qF3 z02j2kfD3I(ruD9F(do}kA#6olA?U;VSun43r=TDpV=TE@%4&M+!euE8g8ZM0`7Iv9~H19o^GP|RY5(WEi z&vX6r)!X-HcYnEicl!P>*cKkC9Bq_9zSSwHPHpfU-D)Pbl)63F_EF}jrh4*imQCPc zP2>9JBKQ`s2&A#rV2D$qQZZ$R72QZtNaP54oJXyOqy}Wt=LiKEh~HiS;c64W_0QrS zl7lGFXgv0N%-cSJ;!$+LN!4v$@R!65dYKc;%5(pl#%`iMJoL{eeFJc78yHuw({7O; z^5pZZugmukcQ>J9!Rqz?MYE|!FM~V66}gFO69VO%(Ul<|8Lo>UTIzj<|6jfGvm!{F z9AbyZ`?L1Ky;aK@I@nTMy=gXtd4VZ!jNjY(=cBhrAHw{+JjDE5+sZb9`)e#JoY_=n zfIW1?CYPxiR4qhBtpYBUivFJGV7_mg)Ur9Yf0u~neG>3ipP4GA`s&Sp+WfBtlP_~z4_+coFzr;p*)NEdI}?z9jl zc%=k~m4m=lTzC_PTy9O2AO1lO_j#zZy*rCWuE&)nlfdR<`cd_pHs=TEyEgCM{N+xI zvwZXJ-5*Fl;$4ouwiyeO6ZV53&WN!%-6%Df=2AVdCI|R!Nm#ms7OXQ>hgHkS%H_@! zJed}wH7a+KK6E@)*D)Jt$*4yPH7&F~!EZxK zhlNUU-I}!SGJ`f_xI@>#lQP`3_jH4TTzzR2wjSI8zch+kNnbI9ppP$)T71>0-M{0g zy{~%Kldl@}^s7ecjmhd{`pPe_i=O;T?`htHnAkkw%deZb^{c0l_Cpn?@U9|nnIoiAx`0&FW#1!l%u;hyZCBcAPD)mLxg9J05e=sF#KfY+)IS{C zkn}n$$q=hL4@dW6V`(~!FhYjGsRr}M^|+q$s53EyxF}5+>IV3b9VoQ+8;;byMA;%G8=) zZq~D^E#kr}nel1|St?Ol=ujP1`r}-e|-C4asJ``+fN^Q)&-dW zer&Se>H61X&_fIreG@bkm24(j#u#hOs{LQj_BSVZ;9S30eeYR3pMSg9-#s98%a4C~ z^ZtjsA5VF`)TJ!^V+-TRFNb%3RQVURZmT~#<52aNj1{4lQ(PYu=f$i+OZrBrDOLe1~iO| z@)ou{4HA{IuqlJ}@ngQnsg<&fqa6X1<`KhD=n~9XNKi<1Ldu|s!fo@c%nD66m8987PZz;f9?IlCvZd$`wY8!L+I2?4D4)Ewnj z4q|w@yxM=c!U}-m$c(h3xkYl+PQ~$z(zi29)brK>j{vp-t=i#2%w?Rs*l6aXcr&)E z9-VuVH<4aUOm7~e^jHrKR9+Y;hxZ*GZ4RB1abRfMjFIlHVp39pN6G-zoOQMkv(OhO z{Xm4%{AtWORCPc| zw;_vX5<*U&GzFvLkz&lcVI{Z`uVdx8I9Xp_P+Cuf)w?iibAk+}es*|36d46&$zdUYN%4r=qtBH+_i*!5a^$)5}UuMKr?F!*dzNp24ifk!bcs48(~7}6}(_j$*( ztb8UOmaEOi+!2o3I1NBFHnZ^Mgf(%UW|AjqL9Jy!<56NIA3qix!JMJTMIR)$VzvzW ztdTx%G0+NW*=ndZ0X$JU8$ZVX(xpok>H3>sxgQLK9t=-ynx>jJ7c-JUTS6WCBKt_u z58CdQZ8ZZ-Gwv&LGV$T?_z`8b{`~&x!++lWbok*v-&+gnPK1f=ZmDwwUx%j@DHe%; zTz}awySW1IYh(&MLyp&!*|$e#VO>VXJzp^}ZUGZ}hZMKC5)uFy(9X&brWNc}k@Jk7 zRuvE@kk}q#STeRUzqpI4)>kp*!hHiLne1@!IbKwV9(*ehcYm}iahb*B$j)!@8AU#^ z4RkISnr7eCE>4D37lRFx$}gd+xZ+6KB~0NnB_k21?~kMZ@M>*G7Wb8AWaNx2wv;RZ z=d=Q#IJ^6;UteCFfnGby^r$njW@_K3i}h@GI$Q?F=jZsb!zzYzw0BT+Pt0SNopLQsu!Ai# zsoyamJR=!aPQo_(_a(*>zB1C&)F=M;S<3a|mp}7M%p{%#zj&T|Utmzzd%ygdPrmfb zC-*(`9(H&AbnAwQqKb5FwVueYMdlBML<>_R91O;;j?b5usyC+`5H_vIMU4NLXNF9HWcJtVbA0l8#Jbg; zsP(jAvw!&T{^O@=Y{hTrXx9W+)>dB`aT!fq%8L){;5DAk{foA`{i2^$uKHyRO>Qfj z+zrczfgMfrth!6Q${o>-NSkD3^ahnnPi0taC|IKtZl(Nt6vH-RHKo?#I(5qyn~SD_l^MOzv5@0K*lV6t&6ZN|MjE zjdC1@w8j8Q#MQ}S_LMYMhM_k6ku}M1RUP6|)vH2Y8tJ<}FJoga<=8AwH_}zN>Cz_$ z_|`rx=P4&nZn32t+%q{x^;ws9i+nBZdxAu`8xiofaE324iV6Nc()LEG-F~k=LTTg` z~tPu+r3_lDJP67WPKZ~*q6O9ikQ`nEOOQZ zt{Da#(Sk?^)I#&9D*yy}#bCfHjJ(s0dWt$_uh*tTB87UQHV5f5705(l*a<1g-c=v7 zVod^JbY8;ZI&nm%V)%FSZL3=C@l@^3@uV0T3eB7iSRU?itK0Ng>O(2tq(w`trz046 z%^A#2*CznoxWVA&T^6E)yz=kvHVCwxo+;no`K)i{5*tO3kp3Dik!Wb^hVN@nL3l;^ z;2^42wgKp+R_!-1MUfFMu%c4Rfoj@*A)FLg3tTM9flifM2N|}^aYL2*oX_xpl1fBY zr8ast^b&NT#D`sf5f(_8zJJ8QdDdaoa&Bs;7j5vJRFr@UebNkC7f4m^YpskiN$YC@ z88KD@xk4<5(?d8SwdFJl5JcO__-;MCN#JvW}rq9z$NZk{p zKC#3GbjFqU$R5pTe+HF)1DV|1byYo+f=tp9DsIv%GfrF$50%9*N7gFZlcB6xLCnW3 z9!?7qV|*~S6PtIqIpDa4C54%FCVd~^ok2=w%XfB`V#^IiLsH6xR7lDGO{cB&2rsWp zw4{Q93q;LxMMQ~AUxjrnI@8HPzFj%*qxQoQnh;clPj?@Y^LX}am1ofL=}b+{&TRD= zk|di`L?YcbtD}^Ftakam`eGP6>&N)}-Bu!ni2=T`+3Auq59-o#0MjFUvs4h9lMOiS zI@l`Q9=DndmB!)e2HiVFf9rlhbp%~t#8T4g)ptnKd}m&CPW2Pbty8_a37hc@(+vS@ z^flSm#QJ1P-mb$#!P=#gjri77-wjc3)EyOUNi`67{BpS$xi|ILJhJ0nKN+nbP{BVq0%iL7=Bhj{St0tNWrH$Sq|8R2W6`n7Juz^&K z6!}TaCQYEhi{7(_pytekwjDA4hzSsBE}N5-!U1k(Et9*UB7x4&abFR)bmXGBm)6 zqL-uk5*`uX!#S>~(u}T2B4rdajt-hUM?OH%z!!Oj%^?RnCEC5BoU(InCs|CqVm@45 zii-+@8N>YGaHx`uE}MR(yef5Q=L8+)6myg%bDX4O-1X@8V)crs>xv~# z9ObBeMENt62#Fdfa9rsI+W-wc_Kh-mZ)Z73e28v(`vUxfd$Y z@y31fj*LulsS-w3md-DOrK5vc6(2&R3T*Iv*K7CXAeu-sF;wxi$3#&}*%ctUj9>Sn}nR)}*hQ91}E{3hLo z6ykw!Y(moIldK0Y)#U^^lq6SZ$lLb^pZ~b|-vt6wBv1yO(E!h2bc#3EHEL}7m}`J< z4E|olV^)_3CE9r|uGeZ4?3!2S`&2AwEt}C&_~N2e+ztFwm5e?-2^LvB9C(2_ig3P3 zZg^r`tG>A=SWbDyo++N+^D9?FySH7~>ROtM>xD5_{&t_hG{7DC7Nd8)Se|e^2;ahD z$V(Mq>%!huxY};BbywM*97GC3)n>R(({gZ5VqARxVgTg@uPG7RCBAw-6?9FbXI{V9 znelr?mNg1uXq0P>-4m%UhP*6Mo9IA`QKJg-XQ+z0inpw3>k~vP#4up zLzRrm0L$_E^5$xJ@`TN~T*~7;yu;edUje&wJEub9!xNjV4)LGzoFpy*->zSiCy3R+ zr!UIKkhW)calH5Q&!!ThA)K0%8R+4R5W9|6G~cwyl*Y82a!{%mKWy?RGJuN}Tl3 zhD{9co)xBwvwWCostibGndO4Z*(Phr7m}9L?t+Q5$q6GNOLph;ml>V>oUl1%NP?cO z)es}IxD{&G&*2bvhJdjJZq(^j$dd`Qpt4Cn8>w4|%W7#KH>S5`*9?8DfihjkV4m-q zUtg|aQVvcp?8M9YMi5sV`0WAyOc%3|K_X)JY0&<>Fwj2CQI0w5FOBwkm|B8eOe}9- zD(ppdPpjHAS)F@_`5_jP2HkK5N;VCieJ=gw^5Rrpvwjt*FkTs$vAN3C&e1Ul>`+&` z-ZnKbqT8wi=*Uxr6gla_vUx>`s;m9u6?t+J)XYH(d(WQ&X_i_6z`oU=<0auFU%!?! z;^+{LI^zHemXk#{lP#@4fU;606j1lU_eq#ku~pnqhWOcy7QhK+gLTO)OykZv8%dg1 z$8y`!%eg`#vU}cNXOF$7`$s!!mb+e#D3Yl}Pr222*fCh!H~R9}UN-IcD=LsF1XOqU z2IX&=gY1MxL)Ar6t90BIZ62uJ^$KnLcyY~0+8FO%e~%~tc5~!uSkPChSuIj2ztBlX zT=$BOY6_9eZ;4DEcgc4+WG{>8;5E`~rCROs;`q|R3Q?0gg!qR>m|c=X67xF0vNBTS zwMq8Ubox{D($0@_dE(cM+6;yM?2`QewKtG zL*_a}g61NQf5F0Kbn%VHCEg*f<92+ICfo5Nnrwd#sz%c4az|T*)FqRKb1FPQr$LOA z6&a;CGK+G^3mZ@kptNx~1_+d<3FyJ70|#YL=vu7E*Ks(xK0SIm6DL@&3?wXWz!VlL zA|IhQVnLnp)K`_{joMh-(S4|ojv-wyhj8C7-@?Hs_FK1v1dy7$XQ4YNNfHt!q|?iU zOg@?9n|br`PV(g1Ocy_#fJO~+kWSRD{3KzX8~8-HOG$UDD?AhquP={7{HjeNAb-s( zzgT%TJk%N)l!F8V>dd8sO*^ zY6X)#o2#9CUA_V7ngCtf8d@0tiPAOSQwOC%)WE#J6 z!rF-(V3)>0SMN*RAEr(M;3O|xlVW;_$se}Usr5+syISFZ2TA9o%f3)ftcpOD-$9AU zF%^k;y9?<{+!kkfow8lI@>X^!v^4CijWfs{gE*xjkgBD#CVOp689qtU* zm5M}@Ru=a{clm8dz(R6tuK;(#^=qozpCr!xc5`$ssr8HDRxvK4t;%^*r0L?Qi*6is zd5XsTMV_f7Yf7H6^A`b@()_XJtbvhtE_rIs$Gv`s^ycgkOS+Y_vFq|+O_KkWYno7N zK|#j^#!<0<$7AUvd=BCV46f*9`t>I7-*qid*Esy_udS-lR_kS!cgf7H?CvQ-4b7Q= zr)A%zMYQi>BUlmI;TN zX8v*c;pG@ESdu}zDulwA8WHe6k=%X$be!B>A#x$X38!cdPqt~%1Ytne)Dnhr8BZvrq2e5| zFb)yA0T}Ve31NNQT7**6VwYz(_S=~+hA?O;;)_q)5L?l)+KRPcd6L$_wG97 zLYDws;;h$PG6LhwrWc)#OESG4d>*w-#-0k7(#b10uRFqKgx$*yD93)_`m^PWHO7t? z6$vF;H6a)}y=x)m93EU_Paxux0K=^oe_^zObyio6`z06dt?ZDKyh2y0w=LeMfKKAH z`-W9?Rk@=fTzY4x*rQwS$(jF)18=d^F?Yw9HkQ2G#jB0UfRvR=HliK4x9W8_!jrPt zkSc_+38?S$@F{LsZWvRZ>7+9VokjA;Q%M>h@J#1JP@IVvkZl!k+xa;o@4F7q%KN^L zNTiSN@gaesv9s9W&g2`nxn5l*2((S!WiV$f@HyVOw?x9qZHU9OA)>>7jWg?Ss=mi? zX(p1Hs-6El3lprv!hap(#HCV}s2t1U!~fEixe#B+0>x8Kl;xaZ1+5^vfF7Y6e5mu5 zY^1@|9F-W}v?7KPQJ6#=&Px*cTrR?|LQ0}U%D1ayj%21@O;R@=o_=5T4)U-VPYA}X zN8#+SJ+sGyT2(VL?=#|az=z|+s8jK5y0r-k6MWi)hIz3Z#1K;39z%#;EFF9>+k%%v z{T$|J=BBvmd)7@FV|EXlHWkn`N-DPhkGFSiZX>zUg!NOfej^;zj(dUtNQ#;ndjrIU zgawcg0FsiwAn0zktr)e`D^VUztapF=`#jG%Cofe6Qkt1vhg(EtW>sZno;>#pe%I<{ zAVyjukHf>5lUo_9^o=r(ezzcEM6tAxHD*&}`}IN(!}P$=&(Xd|%53K`YNeooo@H z3ZuQ*DlNZo(^ffI!Ac$^PPCf6f&lI%KjQ0yZB9$Ep0hW>-o*b5{7ql>{&>`ena;jo}U8 z$b>TZ+o2OmbGmq)FmewO5Bay`*5Pc%laD2LdP&T>Wft^$O`5%WF&FlF4i&``rTxMi zHH2ZhdkAsD7b3iafO_GT>ox=!3fjgIJ(nbhdH(<)NH2_XM^cd+hSFTKtzm(al_hrneyDp~M0uf5Co)bDQ#ic6gQf zO{0*ujYYTCJMpi_1d_z&_V%<3un5AG%|i=&gz!s1It2a@ePf9@C@HsOXe=cf=Gaegt8pqiR1)lYR+RCqW>Y)Pl)&TjAs-rAi1+ zC#?Tyj#2Q6UX0#OCzuN9kiwIl1W+oQ(d1?}g$@+D zA(ErL+MA#;vqQ+$hd}yxHZ=BxUdVsGa3H@}BdGl)TjvYtBYgzyf2Xd0?Cypq6Szr^ z4hu2WR@i|)GKwM_u=5LeElB~E0)P5QYGomX>9W{-<^5kn>tL{;%b^`Po})LS`Qhtj zm%5w4v?acy@Du z_Au4ph{D8zE~klgXFYy|VxY-afEF0z7}71)uX_wl5_|Oz8D({W2rD26rQ{V-Yd04d z8MR>GD&aa5qG)T#`%qL1_t<$?0cl&RUQNdVhAhXCpr-*3N13&TQlwoc(Swc9qsIwZ z0eugERThY2mSjliHDV*2I{T9yC_lD!kDd}@;gIrtljJu#b%QazmX^oe*(eD)OG0Z3 zvf&lxuS}~j1dRQEP~@iPaT2+C!TI9vqZ0QcH$5V7lk&Uo-4Wv9>Pu~ZeC$_11%A^U z0rjDA|Gw1SL$rbnh-S=5NFugERhv2UdvF@OX|%bBt>j_Fd{S|Y4oh5DH|`3Cf!kMP znJL(OfT!{JVgh}w6TgT1&~C0scmn?jmopnefpB#?QcUAisKBB`gw;JY3+iw}j_=h>Ai0((!nR z(6yS{@P(;MTV;aNM*=%Ju8td;l$likLqIMb(dCO_@RFa2CZ6|YLr1&iUX|5j;8#x0#bsh>Az66Yd71{`GIXc%=GAVWIX7@(=^ zRXM164KGE{yOA5&CNL%Mw^4F+f@-=Fbcv6;B|-r)(qG^QF?YZXtde#8>-2B;sP>rA zBHwNLU`MIgNOMr82EBdb}5ONsYQG+&gTGpKnNxHS;SF69cM6CNi(Q9*x9OY&fA!y?P}u6S(`pq z42X9oOIPiWN4{L20;p0bm2}y4OK2b{(%Tr&q9y{`WRv-8ji^lm?At~37Rbxq-2BfD=3tVuXMJu)u~5nhalL|_qqr% zk$-}RfHuRh>OMV%i8vrIw~A^8TLhm!rwoi=AxzTkbT(f=H^SJH<3~~qg1K;?aYPJ^ z=1?ltm-=$ymh9?58Clkg5^!3yLy}a3oB*I=Z#_el967^#lvBsHdzZewipH_r3E;Zn zH;~K((hD^C%CxGkDJJJpF`gm?1gYS^jT-`oLqVtv@cj?RB>p!mlVs@8bODYl?Lte7 z7jhd_h@j0?aJ6Uj0#M`!0Ld2M<)1J| zQUlc8`EY)v3U5`g1|*M)*hk z@1PVs3-sOWGCde0Yaw5Tsi;a~1*j(7* z7EGB3D%nbCnh2nu>IPj`ey8$G)1qX~m$}}dn0i)eGI5TuBx4%JqMQm;8IbqNF;RXA z0tOlOe?s|b{4L+ISWyN{E`{G5&^*YZy!=a$E5n{7x4o#c<_JPD3(lB9Bqxo+8{u(2 zLi&f|ME+ky7>@<5#qZH?9S{PzhL4z3FN* zhqFDs&%gHNZoUq-B&T?k4YHwvd?LjoOsC3zg0mJ$A4xk&h_lr|(yLBbVJ=W(y{4nf zOZa_Ay6keeJN-{CXIYgd9Gc*1A0+zN+yfy0UZA>{oh_(WUMYks7-a_Sp-5j`Qb0!h z1}{B>O4zU{yDbV+AHBm6oo9W?9s}bs0mR-5bny_CyLbBjMM5AvL-sCu7~#V z+tKm**OPBMc4Keh^zgHeXU|s`x3ZMv#8lM2jh35C zX^qzSWFEUg-$Sxx($k_>{C4VK@IS;R&tRtX8rcmJntS!Yw$-+OT%{amNx#W010L}2 zj&7{Cq4at-yO>=rne2gEi3BIo4q*GCIzTe0>Pkz7 ze7$h#K6{Id46yBSx-ew7RW4^H+nD|Zz$87)8SG2IFH&YoZv<~tRDq;;CWn}a7cM4vGWE8NG46M4--5(g2iRe*Ez)1k;U)uKn^$rIM-xLE z%WID}Nd4gt8RLg^S|RdrwK`AV0sTD)ik6VN2%J}3t*+A+(=?)rcC!kna}Gt9cFtr& z(F~vnrzl5oqbWL~9nE0Zk-K;I{{HUs1F8&_QP$zP)~#G7cC8f8QuH807?rilmMRh2 zuH2`I^4noeyQX6w9yaI=5mZ6(Z2NU}_v63bKa4+q`1##mdhI46Srnv|=_h%{1zbB| zQ#wz52GXFyz=5bDb%vb$KHTLpX(Li!UdO_)JFGnawU||}ZXz3DxZv>X6mFwJ7Q_Mg ze7R@QCu@+TVezR>{-ob2Ms+k0tn1Zu|VHY6<)s;Xfy#q^Kij8HvUX4ti@OPoQ zqK$MLJ%ZiXKfQ9m{C&_>0;EC%!cf6fdF3e$NI1nO)35u;>meq}BUp#&`&*bt7 z!8<}^z+x$^4lF`(RR-CSA^rRBg<`~;;(p*ChUWoVl&A){kVW|pei*($G$X0b>eKz_ zAMf7Zf6@m_g$VRWZ){A)($4T}8-eM=BDSN}gbxv>VfaLx1(GW0IaCkpU1o7Rd$l?R)5D#iVgsCr_#)7) zZ;`llygHS1cJR8iYwGDtGQ&3?0lt!+Q0i&GrX-)BwQ&JD%SCqEJ$^z>mdw%JgAnyz z=4a_1gal;YG7MQ$&KEh?OZT(nf)cQ&G+150v0l6y4=og%ljX9( z^%URO(VJ{-NY#Jd@?G$}xbT05O6Kf*IllI%`HmL-?yEMX6o-FWA?YTj7TrRlrU#{k z7qA5_sC~@PKZaUb;DCbKm+AMVscm#ulpy61a~`Us5-<5C5GsY8L+u9107&D&{veth z!~%dT{++YCfaiGDo$xBLE%;t#*>MW&T3XVF=+T=f8cE2!x!TM`i;hO{W~6q5D@OH( z2TxGjL;V}H8c;HfUt!Bl-=44a^325OEM*gpb4DFb14+fx(88Jry*LPjY0bC`8we`c?ZwJfNi-%nw?s}KEMj$~`-%h%YkI>rt~JKF z4KX@6$H-46Fe(^$o^Dzc)vGV05HLcB>eabX`{dKLrvng~@%Z^I))b#cOdd;96` z$NRG{pBY4Kvh<6PIo$KR7@=uMVS*AOfCDp|_T?wXsv@~bA6adQ$*oY0K=me zQd-*KVdA{{(~|WD)FLLr5Aaj0cf|N7z;)JJ52;vht{jgPdWcg(Ur2rsx+jz>J^0G_ zrt}+v?-`(2&=pa04tiP;}dD?FLKoLX*AhZ=>c>Q55w2#o2kmvm*lcfw2q zP~l9DLE%{|&D>=~Jt$E@ni}G?>JNY1nSjZHvm3x zDMGNO3!GoqAiY7wm&{GQt?s}9th#U_fX5TZ2`ELk&GjAKDV#fc-;J5Jr^QzDhA-iFrwtXePDjJMcuz;*=Ui#bIQn%+VK$ zzy*FoS`ojng$M&~ie3@i3q_Nbj-7i4X_Fi4=#?;ISzmgh(8ij*>30x!o=rCC>h;EI(fmTWba&y<7E2Qhr z{POw=*{=*j$oR3*cw~tJ=Zj(RMl!Ia6LhmgajWVo1As#ssGFs%D;`gC9J~plSg3eS zZ-Y{(kqMS|KEu<7!BzRv!{q37XQC7|$ZoZFhwGw2a}r5`Vib2+;tBYAI;8Q)x{n0% zqs*p$%E)h1?$Pv8*fWWO8#-H^+ApVFN^>t84c}8UI-NswvsfDQ701HWch!9wZnO4? z@BUSU4de!WIv{~>1UGL!Do{|lvr4F_@+EXI)mWHWFSF9y9I5@efU&i&(doO6Jc$2rr4#6#tm?t01-Mc%-@5GV`~j-v{55u?TB7_Zl$ zyYk+k@UIX=*d$CQ>=>ZUVP0AV*ui@WqNhUk`h(MEaGSiCpAfp>Kh^jmIx(nf~j~M775uC zYfGT2$$>wn?>unO0r{dI{y?_%cft-B_~a&-bvp%^OMhsPtwTH=1~ zGGLkebcTS%>6%q>P$qE;ZvbF*xC%inV%M@k=LnjI*yC$?d0mV8GF(_MlVQgp{F3p++*Lsu!z)6V;f0ot7I$t2I+13 zM4ViJ49uL>l|BZB)@I40*>X{afZVLW_1E6vCV?nG#C!EFo~U5Z$Tu`1*fT@Z9l#E@ zMvEV{@=Dpj1WmqxE6=nIB*n%g77gNy5ZE&C{O$v~;9+jCc+;<1k6)p8h0M`SV$tZ- z7g8;sr- z2HpS17cXC&yd3t2N2e!)VgLBW{XYy3PiH4bL8}iTE-~A3mT_3@xh{eva)%N~`db)? zj~_K33vuI79!(Es2A-HI2MC6&vsHjYkE8JxECjfX^?3EFNwM4gzM?w+Op$}ka#uh| zGhl9~W&SoL&?$Oj-vAKvS?dt{zD1|r0s$)7_l1=~31A=gjNT?zT-_j}v0#G=nl3|z zGKABR(Vd6}g-y-O0j5KMmqTa7ESFU|b62?vpp&3u!+@d6F!FtV`h1M(%7C~{#}2El z_|2#k2~477S#wXh43bv`Dse&RN16H4HtjI z+NR(epi^#HOxpd`g427Ht~JA?7^DNKTBwDmZjNdt#2XdSL@`B*Ifar0)N;I>3xAc0 z*n)ZN?6)K5e8m80$}}ggA<&V_otnI<#-M+nz+EqtW5FZ}BT?4M;uy6&OjYjMtWLL& zR-cX;lk0#t17r8X6fQn1F?2 zkclkZV$d3*^&)5zV@T-3b5#c_?hXY}=NR3dco7wpgt)>$J^M{D@G$3B(~A(ks~4H= z13x87G0LiL7R52qZA>#H!C&iQ#$}NdOiG_r)v+yDY`pN1yaRSC-kN+9&fp9jv7`UF z$b|pm&?GN$2Z!;i$)s0Z**dkd80Zh8YmnfG|vL_g%%Y@>R z6PKXHBLH`SM}Q-sIX~rCi2gtJUk(mm4o+VlA0NIr?GKLce|RyY56gT#8NneUtC3)H z$*rXliAPiz9NsJ^OUnudG16<4HF|ZF*d`c+SwsF@q6Sfcbt+WIb3om8)&a`o3C~;i z3LbClmz;uUu)f0~5YZm2r*J!;z!J7Yl>d;UbbHImpB6xgb)s}JnyR4zu6tHDy#NH%sZVbgUTN16Fz%Eq+ACZn-SQhH9U)Brz@Ht8I-=FTRypU&klEZBKxU= ze%C;WMRJsiHUMu|oksGYzko6Tb(*NlXC9uc8yx7`{X9*CE@Lm`&SuS85x}Qu1*3GX z|1}?U5V*_nTb-P06jGoV6-=W+1M3mtowR>MxFhW!5k6!4M?}=t{t=;=*gt}qTmO#T z*+1gNlOqDB?|;V2C!c|YT~AG<|MaTD9Ps2*o?h4f(+k_D_J#+FT3khxEZ~s`=l|(! zbiLSSUK?rk$csS^M*?isS#yh#2`1MIk2af=BSfefFjAm@37!S6==O9W2cO&pj9cf8 zASfYrP+3pSCnys&^ZaX7B9g19P@x!E*Ee+P15#f?dqP=EN<>>0P#@8BW#-yx0II5ZsK8jlf~N|{#y>$auh-!Uv3ex=j%QFwQvJ!Mz5Ty> zUQ;M1T`5PD6Go~9RDbli#UY!|K0ny zzrK5aFXvlsS5?$iazi>gjGN&XN_VuGu2Av|5(oFfgS04*msvPoCV|_Z(MJ*k#dFaJ z3exau09ABQbYDYEqUzN`8Zuu^UQOS!qWo+$JDZJXlLU!i0Z@zS5=vTu1{rUX7T5`I zQBb+G4i?RNvd%VD$M<(X{rmXt{rf*7#G+hBOJo!yCU*~aX;eAvcRiBRAjToFnMTGV4-42F{ddV%X$D9bqk_=``k`V z<0J+EOY$h2heT1%koRNj&zS%~-%K_czon+9Ouu=5_csKy-v7@p$Yk{H?)`2{x20d+ zJy18KovTJw-68`qDO7;@9MJepxpelRg!FZc)#g6BS5}+Fs$Q7B* z*V9|AYbS@=)m;)9>ba@(&WT!)s(_2Cd8302^-(!*Zws4SIWDsOkb0#D(^oBMtbHpO zO^`@88PfC6Gr>38U5azm>b{SGXsNUe?)n0_0`tuFQ&$nR`_q9Y#)ScAegEVAyT9FU zKhA%8e{alrB=22auQv!6e118H9s;;6UFq->jTw@(Xj*2Hbrx6$$TQ0d8r`=75igvO zJ6BN9;xYRCkQUy>ntl~%604p%wN#w9v?;ZE2o$QbT~pSR^3uT_9glKb2)Bd&vUFN@ z37_m4ztVJ!%!6d*uZZ?edJ>E;r?-na!fECx8V1(wD2{?qQ1)LCYD(@asr?(&yoRdE z^TL+Rx#U(%%*4fgs?4r_lWsvEn2Y1KiM6@UXpc@Ub!JN`8;{wB9)VxOfFMEw^?WK?$Bv~rP`ljiklFqk|j&eLq)Q!SEwp_i? zS<07shHdO_esVW4WN^}V3MLY zfjIs7R9z~52*Bflo_^L%%z)1!B!UTX?!I8|fe*0Ar=d&o4Jzj%Afx2 zyX&$@N_iruQE04bNg}c2q9{IwA0ZT&PKdmqL_fH7@@6*)3Mb;=09@cg<>kwpFz_oi zO}UJO)X=3_cX>0d;ttBRSO`Nfa+xFN7M4`Ck7TN`ZAoiP*DobmEeC1$oD&B+LWvJS zurC}024DBUy%T<3AmsLh1>4!TYLd$o8g{btpYPJ<{XF)bLm-Kj8bG_eK#Y^TqV zIl#2`u0n&SRHMl(9rCmo!im%;4t{ZqCD#>@8JQ7kufIrbXw^`Z;teU^>;w{bYIIbi zcN7Zy?{{unlWHk-Y^BXTw*6m`c@ zcXb;Yv1D}_Svo@?6cc@Vhr(PiErq!>XVvIThg@`w>ej+_R$9cUY>|jsW00O8^z2$X zScB2#k}6>nVhYeg;izv{TEhCN^0M;+c85lQ<=F!VAK`ga8z{{FCFZC)9BFi!uBnHw z6c{$>hd;o!yl~s9`ER~`3mM3Mq>R1!5?VOPzTQ%~p6wk)=OWh` zm5**b3&sT@5^@Bn&}yYyfHkq?T>)eD5Yr|wjTlAQF*3FETUJmh9GXM4!*=Xk&N{Lk zmcR+JTSVF{E4GOQvg*{M*gAf7bXqaYsFeQN@WrC5%WyJe47icpAdQc(ZMrm2;(;zI z0F17;S7)qKMtR+FO{Q@p=-c?rVW#zM~~uC-Xb6}^EUi*nKcy$K*u=EUl^b7J+MUEZJqE-JK; zx!$@PI@A>SFz|DKz5DRt{yonB0j}dx*=&$#K?!ZjVX|kC56fW?`1OWPh8IO>L~0ZJ z=js8lOU;Px+~dne#?~_Tr(eP3QY?dL3~zfRaAE3Mj$^1t7WmMOBW$*S?E8;oEht`w z%13&;dk_-Kgbolo9wgMPS){rz12bjc%`IIkWl*5(}i#5hHVVPSNBgT(^tg(ca~Vx4>|i>0SR{RI;sz=2NqzJJ-o-X7vW zc7Az{nmTjXa;9&lW2;FEJqfbYY+S4^;b1ZS4Imw724PE^EmpiR+VR}U z=@rUOJhpd03~6hGqvVTK@aEoP+&OQ?f0kbVdo|fOriBm6X|HiDu<{qcMZ-$>AxguV zs1HFC|AZF00v+gckjVsJz)V(v87rWa|YLRLqmhC(!MbQ!o{EwGYxy(|L)CCB1DTa@8McB>7(&+`2?*LIQ!!EdXmZI-fSRcD_eNzb0ggFa?%;IJ>&qHjQWPe%&Uru8P8`~Z1sQaZqV)?foPzXBp3oFDb6l4d z5^ox*%VXE;Ap(}#=N#_l3Eb%oE~eM?;n+0Rs@K9<%E%#1k+zqK`E`T9fFD*ML49@V z(|alUkX!dK5y%TE*0|B7;e}D{f?9nLt;-RWK|qO|1AM_ff(=Tp^{A=3sQdIptz_1w zpH#9$t5dhYyaX2QG4I>Xek(c+`F*t9y|!A*e&LV}Gv4m!yH?gbQXmK#bh@Za$~X$Z zxqH+Z%`V}a8%ys$LeljM5uSL=UbJ&D;44c#)Y@HVcFw;89oG&7UeV+V0Jp7}4b5-s@sB!ao9G1>DpsB0(H! z7V89L?n%Jzgco#J99Yq&6{10wSZ=yjk1ISUJuZ^9bA%aUz0&$&dpSHYRb;vp z9FXc$!cq`$b$rSmeYW!^=2nZtU6>B=C79Iaf~qsn(XHFG{7NqZ?`dcra?|Q;fX@Ik zogE928N?k6V~er)l|b1+#POW$x@i}z*dRN#v*I|kbRQ-k)oRha=qiB}Z&L(vD7P&n zsHwU6G~#3eozT}tY1Mo3G0B1`(`AsRAZbRU5m5ciA`#{3#6(d*c~w$vH>)XwY$jj` zKrjM^AAU4mfTo)pOZTwGLBX;Q3Kb+4@tbSMyUSz4Ns14|$=P2#{)yWjDP~7f50IhC zzO1z9Ig^^bjSn?yV-REH_Itk7?E0A-q#J-g@zIZc>b^(5mgkE^WqJk94&d3i7I0>h zvub36>|AY7BZdW1@pXv1^i2KYXnyIW21|~;+Hs5=1Qvkg`WM*55AcCG(zN?2p&f7nG`*7;U5Vu*fy?2 z=e_*#o&ClXfSW=FIz5z}6@KfPJgj3_`EFMcDX-t^qZBOG773k;-|90Q0lGCuPO~6J zFYUZleGYwO55dy|=Upp#pH6uXA$M3I5B-{)AwEr-?~0ys698d`ddLy%PEoZKHaJLJ z0tK9eB?g!taJm8ppcM+-bmEppcg-AWeFG7Pf9 z12p7L$J&b)bS6*P^(UHW(-hAjdRwjYG`c&z*X>zu2@`WYS1K&;wT@ zO69~uR03czK~o>+4wV5&Y9P=?U;v>yQ*#P@wzFVVs2?zQA;p9fWYLkvO zo*Nn6=tu|3yD$H`&!Qe}yB*QHbUkAfn`bj2s?S|oDH3C=$bJjA$)7)d`epp_%ZG>i zPn(C2zjDFlG1)O9`Xw$TF_&q8@j{Oh;^`{7^glLyA!Lkgz0%QtPu(S+OTMlvfM!xG*phiTnfJAPfbqCgMF?F*)(IdYr zh}v!gHoRKJb2$yMC6=bz*;?^2x9e2zlzA@>p8s=4^8n3SM?9z;KI|TT#No*aTjm9L zea@~9;Y+cEf(WXhoKMlQH4P5!FEYaIzsMEpmLmq9>15%$sUiD-|y2lzK)JgN?_(ga(7;V=yn zRmGvfCQSB%G-;2hKmu_lrCd4o2G@ZT{&H!^E5xdbbVy*rzN=*Wh#xwu-?g@t(3rQ-+Pf{qop;|*9y+i$)= z@*!pn;Hor&UGA1Jr0LU>tncYA`3x;YIMfOjQ&KR!)$98>_6C=*M24wAggEFR=3nJt zg&(kM+5nF&fO<;r<)-zI`O^%0?RK36Bkve1v)gn6&u~^{V@j*D(SlfivYSqCUcBt3 zk(B6n;NZ-3xBr%B`3}kZ5;Y`&LLR%ioXq(am^N&fhKMV~^8u#qfnf_s#_?PY%lSCS zB&e{|u(EfK(zkO<3r5zcKUb`A?)Hxph#ADnMRJPjiKSAG*LqdXw1ZU}gQKBlj^{Zl zqqbh!=+v8hB6)*P_s_ODNDmOK&7n%3PojEsTxpu(c04K>9{4r-X>{6*s1$|*0Vt)( z{du#7VNVcIj&UWSc70pjr{OqafJodi%upZTuh`#w0Y;mE?kwVVds=Cg0O^vNjNr|5&HRU|JaQ*s)jPfzaGVsuB#>9TU8p%Z+&Uytnv{unIoe! z7BXMzf#zG5Dxfzut=X%GYA2zRVTu?J7+_u@$_T2ozF}x}<3Wwi*e5n`5bcfl%E=s7 zU^owM=c5IX6kFAnTtTZAY+P}#v;@h|vuj}abP!S~6`n)Oq6BM&-nmyH>!QPjdddwb zs1b)WF13)_;G9^}tE(3c8bx)wa^g=m708$EX^}%r>GGG$eHyOCcnv{&^Ll72;}?1> zQg^RWjj2g^iqGxrFVqJ~VbDj&0)&9>>_$i55caYsyAcRYBaBaxFa^qK=0K>rv2g1!5dnuckI*Fg9Bk$p)Ak ztg6T1!R{)i;0!o`JybO@Dh=~I*|Ye~E`BmmI>z%Kd{D_OIWWT^;#I&hf4lKcTKh97 zzmd|#GIBU6Fr{qOt(D@tvJ-)AB4)lap8{-Il3FKI<^3jSft#j4L;MrL-tqfiRJM>6 zDGgl+A4V>9sti&h^>gUU8QqBV>wea%u`ceV;n3Q|k%KojT#ZpVKJpoJMwi#1`^f_r z>Mx9f4?VJ+Ab<{=JwYNuSpAtaaKXv54Q$iZ!rU&YX_CJUcwUH!l=<2t*uhqaL)hFY zlB$&PHoYHufNh9_w%tMo-2oR^tY&X`Az)25x6Mdx_d@VK?OSjR)XW!k8SPRKEbUr^ zp}65VUFH!<>pL*pa=zA>{VX3i!t?26(_--Scuk+@rm$~a)*7`|ukJBJ4|H322VzFh z22q){RP?1en|xVi960}WuJ{#WG77>Sl>nA=#2(5}gz%?4rT?98z2YRxA$y^R$o?MM_atD};ewi~1b zxrP0JfJCi^q{)3_w8iAX3hM{lhQ}BE-YI+ogM)}*%%e(`)b7>eppb$q9V?SU*F8fR zZr_iYvWHD)XLIKx)3sneV=k$EAV@`+nk8Ur>LTaV?0&d=e|z_@_t(EJ-hH?S2Drv; zD02%LkC{N>vrS9y!QD?keG;4fr^z|r}@djIzE-A}yIO;Aw% z&9mk*YbI9;Xkl)Cg9z=>U& zG0F2J%6X3~#3U(P##XFUqf-;0$>5BdsB9KfaNrRFE-(NGk3Qa%d2u%c2YeSu7sAnv z9dm@W~rXb67wR(p8c(hmMYBMN%WH*c}&I90iE2*7GZxrOww^Fj6rK z4GISL4N!cui508`Mx1jtRP=Ognx$EF?|3ri1*qrd`m`Dx4YTJsOT zet8gRgPv!K08)QsW<_UEJL*JbuO+7xG;?*{WwywF?mhDSk^yd7u!;jToLT<+I8eCO ziYif3kw^cyKWOIBADi+Y1z8_v@C*xNBHyBuz94%}nxk zVz}DTsnL1bKx~F-#q%1()TUY7+&}5I%noLMD($kkWb`g60yq;h%5wV<(1Q8fJckDd;9KYGSw0kUYqwL+SXUfE*K z7LL$)4v5*Z*Tw-nHzXVAFX(#R9g6tw-cZMP_l8owyEjzx-Mx`Wv%42X&gbVBu3qjQ zGI)B(@aZ8(PY*eMdI-vOT-`n~+owjL`qUH8IC^r#u|}9(5v6p!M2>uU&E8tK2`CF% znuL7-H}DH&xStrb1c-O9ho@o_JTcbdp?3YD*QTO zY2Gs=<7w03u7S`Eu_$BjdT8ikG-ELqtcZ1{%Mkj3Uv42;8In;%Z^W`h-AvA5ib%oV(JUj_IVI7y*CJYwO2{B9q6_sHe zuDH(Y6|lb7ih{H_pFKl$2AbsGJzReI<E>bY6l<(pWBT~6eRM+UzK9U1bB9e>iYJ^1t*pTvH4Zb8v5|dub=M!^3TbE5y;NG7dx;RANXkW zNH_9Jw>=U(0<9pc{^V-KaTS8p&Lk$Bh1XDb*QN%c`^2piq-?Fg)-Vri$t-cPyjjDF zJ@&I2^~kfat|?pB#yX|q2`h(LwJM-3a3QcU1dOazbTX2T#32|qSQ;_09c>` zny=|%T}M(TC{V_N)##-d%c=v7&!Q}pZ+m$e+I;z%UmznR>je*~T7)%=NnS&m9=m^f zIpQ0P%XD<#V@Z}?jg}wKwCz#;c*E4qUM(V`Kiy(`E9dmBCHG3^askr6cgd`(gF-5;z!HHTU_8G}H zzA;XpW3jQX3gl5hG0|n&1=P)rJvr+A=KcHMlwrCv_+M41N>27Gh489RFH6+LGvSim zN^L=LWE7Gv;2LgYSUud@J79)K?FVv)p(4Z*^~=<*AY2M}KuDwkI4f8w6@TV76m(Z2 zV8gN3A|&tSeYY3xDS0u3j%_TY{V zclq3-Pvv^^J)U_VScOzjCSg6(NYQ06!G6Kma%p-C$9&I5%;7PsVwIP)- ztu*Ps_CI&}IunC)VTg{iD}~moZUVlP8iAzp&jvq zF2S484@jxA7)2se$KZ)kYi3W*xa1RZfeMP;=>o;qeVVd%Fw)ZZ?f9lk0g6w~xDN|} zlRI0R@Awu^wnvx^^Q?hh!PKP_0Zh6CtPrlW$AlTzKloU1^o@{d61)z^oj^t9gQr%` z55*2aEQ1%EJ@G#;BJhF#0TChH_K1j3=tHJU5DwN2xLU&zl#Wz9w=zxn##x%783JeF z{#E#m!s^%6Wx=B?+)?#bihu~edvpZ!HaZUoYQnquH2p;ZLI@==`9J>tlv|V=E>(J) z3Sf^S*bJj2tCrxSs-H}qdm%CLSH{T4L>UgoU_9)kUR6wBMs9c z3xbvcMx1uT74xq;%qk0%$FY(q`-&P;r9y4AQ%aV^k4L zQTvhqKVtc)j?E@h0ElR^2Z=YmE9yQyop1J7u#8{Hr&n>bK7zazT&92yvr3V53KThu zNUWyH5+=FrEx5aoR_I4ZvWkPsK&zwc-hWqeYr&0V-27Y=SEy8#`3^4m_uT>h?>p~+ z8zt@tuSPBsttUbxj>iF|xta_HC_@>P2e~dCFLWEemx=s_K&|*wCesovv`kv$ZV(I- z0ky4kD+D&eT7kEj3kykE;2eIkf$WIlm8KUa{|$u9ZZJ^h##Od4*&q#yV^vYuVgM+R%<0$8g`fk9xjv2G!y`c{N!5;6Pd9IfJ7z~KK&wzbHQ2dG*_IhR zD@=it&4afunKk+vspFD29#p?m#1_QI*rmRY5M0)&5=JWPqeBfTE@L zAQXeuPD_xzm4~AKHTkS)(6cQt(ha+`ajdRxr|Z)3q<4U2^lGH@umG0>a`7eq7R#^# zI9uHC9R-#YW+vN>q*m+|0`o+|^AA7Wf6bB?+=XEoG{~i5QCt?13XyTWMyA!uGY(js zV_@4wN>?vWhJ+xl1&h*KgOn)KCAoILCM2^dJ!oWAJuVFpgpM(_pX1GDY#eM{X*rFN zo1ATt#R4uf=gI%URT}Mny)hVb%d&x^&5V%+jY1$f5YQ6tLEzmlr|Z!IRC|&5v3)(n zSwa#s1;jf?2<@1Inp2gKpqrjL3y88)bOW0st{YV;E{z`aQnrsK34Q- zZ%Bn9FDM4F_P+Fr^xVv_@$}mU_W=D4Gw%jNN~y+q6g%W?c2sF5j4vrNPSF2RoDKwx zlD`QNAitt}fSt=EmBV>lN4C#we@z;TWeg|#+A4^+BN`)s=*_=y+=mCgojgv{h?ieKKbfsS--F-fqDUqP^W+MIe)cCYvAF0COK33M9 z7~rDU)hL)0Cft^Y5Tdrw;yiL&c2z;iA&=kg-Co|Kue2@YYM|8Q<9|4k-98LoW!M1@7<+9VB1~AxYA-Ep9c?Pg$AL!w+?+?~yYqv1?mmCM|Mal?_3qQ%FQj8#_czl8JV)Az%oy4oKm36N7^yNq`0|T) z9BLkz2VlwEwdi<{nVF=v>ho`s0;*Ubke!fqcUrjry38sjLYM0bgt#xUO4nf5Wot%9 zUUh|t2t2BN!StM=2oSE0z8FA(DT6MPL6pIx`K2I{$Ia7BTb8o8P;X9JpmK?~^Nh8^ zM8If$Yz-9CFup;(DbH+6Z38Nu1#d;KCpF7x8sOX}|Q{fc#5Y^IZSV$eP6kgHSnrdyaH%C;R}%Jk7CK(u@GVOo7w!&=Q}M{a>g zml{C^{OfqJCLeb@egzQewVN~&xSP0w$#5gt7xMQ38!I=0v|`>)sV7{r$Z8>)ogOyFb6bf8J}{ zazI_p-+OV-^XI?o>^3wF7?&)~E*)exn6GC;&z?b zR9eyHN1xw~VriYOWUW3Ci>tBV2U+96`+#X-u3H41EY0W`2BH3PH+07{h{)>+20DqN z)L^s=-l_D{+4Sm5!z0FOpRT*gz?nte8SiR{zA89Es#tRFa$V`!nR3E^uEw!dSAG~2 zm^3OvDWqqoOFfQgCSw%Rp$>Es&E*8JZd34I@Km2rr!*UUies7@6-)Clg;`FC|X{$ zho4=4fG-BNeO$cl9#AIF3`56qNr2T9oosekLu`fWL;y0Irqz_8c1;qP%w_A>HKNXX4I|=+MlF@>gP&=$Th%Kw#+c z_DTo^)Gt||-T4qpjT#G~WN$hjqW5BGUSSHWxkW7@C-ry_fjg!9LVnFkuh!_)hjT&X zK#52W`f(f_P%lUIyrFOC@0nZe@8as%W#jb9U_2tjOHyO`VjDQ+UcE5j(T=^NE;1=% z+pu$1%>)aO3INnSHtlRrzn$>3)?Zqf+pXI-87nXt?1iPO>)D&1?>~+H{PEL6lq*jx z`Q-+sJn9z)L#{5pEO|ht5_zd;RVwB%njI4ror*I6$6NZv9v6~!!6S1I3q4Ogi$+cY=_vH5Kq!b*7j& z^I5p-9-z~v&A1N#a|ulHQ_-QCj>i)Zm%>lzLUBzN$Q9*`&;lp15#M7!bLt=OV*{8O zN(%}O;&>?hdVdF-*0`@VYydt-au&W2&LgO4ciL-QYXz9M8Y1H}y@ZJ|#fTWIRNTNG zR64wwOm@hsc@6FQ5XAwgbOzFt>l~ay5sTbA_(A%Q)C61Yj%hT4dKTp-yW?-l0ltS= zVVHK2!mtMU#8+6SK;AX;kPcxj8(dyN6AlI(U0{|0=U9KqwA4N)Q$_q>q)z^g73EM* zmk22tDKcrZUcd1lr9oLIzGIB$WWGrO1jrNIY|ut%<|!%iu$2@UEgC1z2*zew9&zaV zCqZoF)GZY2NwJQSU5pHXB;N!Q17xznhC20-NDs8Cy6BsWRWnSCI5qd_qjD~(Jsw%) zBuTl;ZYHIZAq(lbniQkz@>g6h7D&Z@jTkTl?k^xl?Z8O&SE!$do>y`u5C5ra`xG9+ zCT=(lwRgr2Xe!cg!)l`R+kkolF(+a<_jWl#bF1kavT)Q5N1*yF8_zl~kW1jCwcGvp z%jb8Wcb^~bK0PFH4aAno1C^CvICzCf?2-;l@i7?@fgP^=t)Q4wIZIOP13-nW(~SOu zc{=J$3AvLrmK?S7uBO}hc76jf`5Bq6#g_VJCDfRIc=s^-^zoO`Pj|mQ-2XKG_{%SMAMoeH z&+qh+@)1~5o7{Zdpdmcd{Oas^?kDA%J)`oyy%>jK$qDnI;k!~y^oW8$uV;LZhpIO}r# z!*v+DN+&gVwHg=tN1O*YhJ|(n9Npu$lud-A5Eyaw^Cy`*YY!eKKZwhz4BCVjH3Xm~o z;U&V-K^R`B^uJ<>(~tvo1!ZpFd>U&`63*9^ft#2T(I40WTa~#nX1SyRu;KXer zQm6pNL0K*CRXHv4u_+B9FaY~q)apW^zXGeU8jnXfA)9Me_R+D8CdC6pk701g-Uzc_ zkuhoT#~{k4kAG1@E>LU$HSekVo-rPQd5d@qF6Mu-l{M+iqQ@JQs(4suzpG&uG+T_{ z0{`0*j<9p7?RFEuT?ul{Y)%$~0(hV-6X~3)#&Gbd8Y6jA_3X->%J_C!Vvxi`07o## z88F~WmYCBo&a|VVj8HQ`txker2ZJ8#@GBN&XPEQNG-(_nJ*njau`WSS@_kj^EksAa z)&K>Fd3_&x{`-A{^aSv1zN z`lF}NYHM~;KZ|59?D>_V!J`mLn?;ABfj1TwbaCTK^X$;bfDh+sNf~Acm@pldUFj@m z6!&^r;Jeq@I0$O_1duZfM_c2-T(ap7_w9DR0i&0MzOfOjO(!LgB)*EHXo5B~*W} zTL;_hLK(2P0In%wl3))+wQ<|yhOMgP_XPuueoahVJaCLT1~vKUX0L9^n+6~L$r7Zm zJH?=Sn~rcii<=A3r!5d1CVv4LUcwH;-|~~OlcxKqU;(r~o3Zgp#_`CAQ;>VRrmP_- zDUJr*Y?@!Fh2gPLpT6(w3hQB#2K_ycGb-s$v(OyYZxjj5oqAV|l{#_Wx)*bq(G*|NuGjoLry4H#!&C zF+gu*S}{MiOX!Cqs+$Fm=v)EIdfBLTHFg?k=?uX><%N268$eyPbU~L~1|mCVDk|2C z+P;}RQccQwHNB#^iQ+L!Jl*Wm4Ls~tmZS>}M306V0baj3pRxXGQb73*HG6dnx2>S^ zI0K@ghL%-TN$U|Fxvn`#ms%j_uz)7O65^?aYj*Kyd+ zF^>v{e?SlP=EZFF!;6cx1WaWE+93UwCS?Mg{2KuOmMVyy=@VROw7hh!5!bG?HkCT7 zUi~R%b1DZ^>hXaBGK)hcRy*7|6k?kEJB4T?D*Oog$PRJW0>Zx~JZq24D+!nQ*@aWd zr48oZluoKERf(`jc|=7Fa*U7O|K;QI<4^ay3#ddPxUp$*Zn|PNiMk4|&$A4TgcyDp zY;R@nAjI~%n+5u!d+zX2lESK~7)heL9K|V+4m58V+<3xKE{mynIh^%8h6CsqgRT(0 z;d%!86sdR?B%t$)Ed(-gxF*FakO)<@GG88s9YT=%H=rnal;MJm5@dlm{HQb}IQEH?d%|SI4G=<0BIw9jZ;Stp3nv^vgt^ zJc9UdfPcV)!Vl(1I-tlIJ0Omur5RZUrRzlw-z@{XlqlW|lr)O!Bm;4ehe+@OWH13C zY{n86XSK6G6br|UpB>zPeW>-V#}-7u;=Y)zRr%Eqtbo}M#81osG-J5Y1xJyu1(!A7 z=&_#mgs2-4x+^HNf@@9V-ZrA5 zQ@FKy^k{KZk*dZe911ut97g!Y5x$B$HIO7Nt=DD>EhP-ss6mnw<|sEv;GnRh90P~c zLP6IEO^2XJ?d=?yNQ}yc8+6s9u{umrs(6Z})v9+;Ttik)9d5%1@G%*x6Ltkb( zqf$eR*tsE)T9y?i9^zDs-~=m&Sx}*_{Xg!J&9cX-mxkW) z9CC`_kjLGK5#hoiA0CQdnQ8>I0ZI{Q^>dN~^x?m11E*2II!ZGA6j6DJJj302*=xEh=;eAr_<@gE&KW5?4 zjm=(7#N?p%UKYF+J{|SWTE=~6TgVAUc5%cG%}9nQksaedAVe{WIn4}Iad<7bD|$xx zuE1Yq2GJM3woovE0cZYklS#VW+>Z?|@b+$pvgbY5!?>WsqUYu3}sgIn8NVuDQ zT;WQ;)~z~~Wi+KQ@PtUXS9Vfgp3J=U4q8pzpzO@OJ{zqM*7tuwgxT+yI%R}X6ZfBy zf&m`n)%9ntm8-4}r%I zUGe+n)CWPpSY24J8G=M_zD8Rb3$Vd~v_M(^t-e?;w9x=hHFS}&Tn2e51{G>Oox(9> z30H;d4~(scFpa#z%saO<~WHIs<@RpTp86GZ_csCi0f2 zpBZ9tN`d-4S{j1*)iqP*h8;Fvx+%6CZm!u$U-9@@CQ7KK0KfrF70P6U%0IM43-A^o9z)4)NGGL-_3T`;H32Br4*dV(v_q@vXNU6p2%+koZ7h+ z)$5oW<1%E)vtWoS9D*~L)e#v5lAcXlnu0V6EHN9Ml#G>s2V+nO-Bn|Ff>ckbojwdnL21+n zH=sX2V33!wsyNW(b!hXVg*qH#Q;{MMtsR`fr%J;IQ3M2g+EfvoKA|D-{+!#A@r^^N zp~TS{LnmNyMIt)2^(JgHoDwoVtive0DytLo9S$Z1#=vWrc3+(l=<>^WFw3(Zf zhXcK81OhKjfM@O=9zMPMGlFn2&4Yux_wWAl;r=HkMdRj@1FbTJ=xmD#)s$XMAg;P7 z(UI;lrzer$3k8nHNBQDm&c!l3F}&ENc&j1 zKuwGj?I%Q~D@_NVM+W|S3L5~{gWTP)cLKgnhg%ZG`ppcvfwKa3{RV*`YP5Z!`+*q> zTLF{Wo~mDaB$NQu2mos&9?o7U1Zu#;We!M3546q&Ny5pc3J!h z)jxp^1@Nf2N&LBpZ50OF~FUrV>FF<%JAm||d zB1I}LKzy>Z09B?YT#H4ATJ9SD{>eL!)g2!9-z!FFRxpk1&fadP1F5ONzZrgSwqjE` z2{A&Q;m4iYw{8a#-~jVseYQg8gAX3)W^RwnLlu|>_yCuvZ&fKsS`by}N374Qe{P}O zr`c?r9CB#<(Nd8KGt~*tOTqg#d$mM?F&QrDarR*Cbfx1)s<9`tL1sH)BNHEB{>#(w z#q1rBg*E}fLz&lKKCC|e+x@4>$A7Z|lj_Z(&SihGEif$A-o>^UUCzZ}uyD0#T+%j0 z>$Y_Mk<*v>S6(ro;^3o93k(;Ejgpzb8HLW1(xz;-ub{y-<}fuzlon1m*0T2xJ?fNk z5@gf+wvay#b<#|G4eUB6t$YR|+(oY)I0z<8^tVEEMe+f40hhu_?$dBPw6e+o0lKN4 zII!r5b~Kyw-r1|w3k1;6k54}f{L48(yD|Rwg_VnY+3LucCUINSwP1o~CaS4(q)rW# zgq!vl&6!?l)Q*{3n%`D9{^vdo7x{?Vm)>^~4mL}KGpYJ(_6k>B)MgI1meheikl#uCWRSEGr7exVrC z-=yqIS0EdnRS1mjhz{R3oPp#U#Q<2779nXW&rrb-Ef_?!l$f=J9H7I&nQk7O%GG8( zM>Hq|aMHmYqB1hNL%1E`pNbUPj*pmL&>X4ULrNJw@Riu2*+P+LDMAdu`F}0rpWQLb;KrSWy1hAC{g-eC(Zg0RfW0{dX z@)XdFpGbz8Gf9?hnim%+Ygvwr5h=ASN7`NYrd@7c4Hd>&T7&^Xx>@F$^S!~!SL+8jx>Jkf_JQ6eo zkTIpxvu_g;R)hAdyW~9JP1_cOdr}Nbp=o zxGfzjXh8OFrV7$GL6QGtYYRtOI9s0~0b zYwa1VBFdMBI-p53H$qISm(|vW%xJFfKi@yVIT;=bKi<8+|8#Tr{>#0z zSu(DI0hYdnReZ%Zm{eP)Cl2m6xAnpKQW9k3k5wAmP3|7j$A+W7LX-xv9WKQB`%w!o=5-U>im|4fF@T+Cm>>q zqmnik0v1q**@2>_d*E)g&y_x&woWGq~1UDTRV2x-Z3<376L6`2K=>eCITzh zYvA^1U$B7~4paMq+YAjd{n5@wsFRL3Yot+BSQ)hPne~Huiyww>Dq_;;R*lFPp0>)` zQ4GxjY%wdNGiI@zE#9QYmN!EUl^0n4ngbCHV85(V560wR8 z&q0G=3-L!}jMtevyzF-HW6sbxn@HIV{j25@tXJn_a;F|5YU>$_;6j7Mze^C6y{bX)^kWuS9wDdD-I@^SXrqysqeBYh#2>k_76kVVenb}BQTez% z_#64V=ipaIn`Q5BAK%|SynBD&JNV6?|Ml00-f#Xt>wcChKWx_v@bqIO{&iJ_i^rV< zv>T z1?*(JUCja=s+Lyck!dWv9Voh`b;TnNkY{LtT3yX)z&oKak**vbJ;hY~zyAmj-p-F` zeg!iS5@f#lYm$#Y+?XEo@i#fTa0$I_dx_p=f}FJ<*%in&=nVx3`UQi{W)G(?9wfap zppi(!WMw8erbN>~8FuoElph?lzg`bSZ{ua*h4mV#yJzR~I5a-xR(CpRV4|zifg9v4 z6HA`?@%9kiP3cG0IqCjW{HvJ+rV|O2$jIF4@C6_~GplcR>K9Lz;JdNi&()n?C4el zWhdu{K(rbYE%Zc=`_u;iK`^q?B@z4PM|($kcx0$&>|FCbt*73OUQMr803A@7j%Qch z9dF39poI_5;FBQnLhf&VvD}B)fyI+w%1P7YsN0HOEg|@5`PHDF-#M!7f1zr!C?_vtZF1p#21GI0)$PnLBmPFUC=Bo?6|D_E~#EewPh%uL4! zTlrdBDm_#~dn#@QzLf(wSbCLjzYu2N8bCVI3B%u|2~IR{yL1go1Z@wQ8y3!!1SH*1 zw1g|!Sjm~LW-n<(QJ6|JI0hrGEyb!sU@&{FP! zW;*F+uWqR{sz%$AS~m*yS;#yO3fGl?C0n|_Akqe%ntk2vxImtzKs(v2=uiX>m8N9) zmQKgO6QDU#){Vzs!@(#ia^Yt|Ek#&>-OFAP+a0Ox;hqpa3$R$`wSlf^%Vaukilxq; z4cZQ2{YIoqcE;%;m5{7nIO&rsSPMp5SR1G*u@HErkE7`o$x&~5c4FevcRNH4S`P{@ z-E3Gw!oX0n_a1)v_0#=d{y8N|1yCwy7)=r>?5(g*z}{rH^niheCK#(Qph zq=2%_#N6V==4>{{C!0;bY|)p60d@NZSg+RRR$X>H&F~nece+aLbr-2aIqVF9m%jg> zU+zCYoZq9+%H6}qPlt{ht5AS_gFAyk_6_cg5ZO0)2$UP28_rk;AQqcW)!NmJAP)~! zCM^zdFqa4c#CPkfaBrckqIZti9LD8rZji@C6Mzv3uY>jGq0e0jd3m}cW-Se8Cw#1osWl=XO-;T|F~kr8==Jsul+5^tksf{@(rL@}o@S)7Tld%* z+^x^Q5-MBH$gOVO6jPuZ9M$N_C(a<6jxjKs&8DEiiTW7I$4fvL;2Px{sS5$5o#MpH zd+0un@tA7&`Q`Q1^~U%E`a5)X7nr~^@P@nJen&r3UL*0ZzR9m5fiDrle>3fMt`E?$ zZ^6y*tZ(3a%2_jtV!(sHDP%Er(1a3#mlz{9(zHc<#vB{=0_rsC7U*N#Z<8z%BvFWU z1%qP^TFa8>g9)$6P`0|YsYYm3X<{}BCnp*G$g`t}JA<MKsLm24<7aR;{~lFg_hAtIyy!fecMrez{hN z>jDpV2m|2ZYVLejZm>t>SYrB>H4sdpR${NV2}lPaNme|*!<2Q5Y@{+}siHIN*zk}u ztDS!9rNUcQI~ou;U&5ce#j|&h(F|-CY9$1oa*AE=NS!~J{poiRvjE#0E~&rZYflwY z4Ve#R?a8?UN_)j`O_k`Y=}bly5{PuxAyoqmma)e;zB<%PQ#u_o-zJrq-2dEHd=U{A z%hWkz?V-&OhHIX+RS4R~1BB@Gi20gY75}p01l3)6rbSnpCqA93pr+`~X{Ig>7BxKE zz~A`{$$hG;v{rPRp3N8Vu7P9B?nss|NNoqQ`?EeB2CyG9Ge?iI?GPV;ec6$^VvF$7 z-T}FRgma*0-5xcA7n{ABYdcfblCB7PCZryxf+VO#ADNvJC_)V-8KT63!{JO)MedZSCP?dOry{xf&^!*PfDnRpM(qB zD%U!O|HP0d$wM9qqu`MM&2x5X)76F+uug$RT|Hg)XlQ{|KQJX6iUejXY%MxZ21kJv z4B6*J%syvNt*7qPau&9#*U)yxL>-p7k}_7QFMkzNl_jSsn#C>65Y^udU85_NT7!Ny zootVTgyozw#|4Oppg=m#p;O=PlfZi`o-PDO!O(v`^}IdCf%*y_|i zy1D`i`t3z%Ds&-0+bp3IqDL1zwhVbYlaKT+`?`n~z|F!gML+mm@5_hJ7FPNrO1s(= z3kSN6u)3;OlQdi^CJ&Vxz~hx^A+1Hz6)R|A5x1lDC3IG;7L6kX17%wxihNHRV(Zb% ztKE2I)Gg#fR6O>e^RY)|zaWt{F~CS_Mo%2Rqmkx)Obpy4$hlDeJ=u|=V$y`V72fR`<_)gb?T2oQrYagUADMmXY240;Pc z4V^(Jrks9Y9Z|5uoA>wkzcRD3gNZ@bsxzf>L0>^&$3XK+WqO6L>G)YKi^0s?(H zMnu+PbF6kM*U0LF?XnJT_;2Bw#nqclA#a#VTH)7hsSL{Tl=_PS*{^RoT@LV{t#U%6 zWCbO=dau@2I3nY%^@*X0+;XC$O!@E#2f!x_sU9p3Po5nd_EO%X%Alh;l_+E%--wCe zct2G!BLW)zJjJCw!OoL2y#lYRnXB7KPzVavNpFlIj}^0=ioJH{xu%(|G369`5mTpcc(?Rw!vf49(%%7#00FLhv za_PLtQ|r=UP85h(h>kX)0k(^Sr z#4ZE?(?St$Pvr#4ls=kK*#NcIR+2FkI1w47yiGYu-$O180Z>IKy)czs&q z-@J5 zPFG>Jws9@{_P%k+tPNkVW^n@HNR%iT_7_&8z-u!fucU!WSAtQQ>)}?{KP<#QPDZ9h z#N!2c5)!mosGtX}-*z#*Jcp^Ff4qf)bTdQR*1)zz&(CU=hcO*=gxaGH;cy6`6R<$> zOVe`|Gs}8;+8}wNx#$9R4v#ZesuFj2|vjR z;al$r16t#)kGvz2tbO|(OutsC50fQoLI#8f2vW4k_#0Na^n|-Oxr4)gzdtbhg%K{A zW{qxTX(Q9G=rtm+o{Z?tQMh*`iDJIDF9l42shBmjJP{pbeR_+F_Len}*|^C5As`t! z0WSZ@zs8`GjH?&^=Drx@fgv1HlQ{z)-`Q#qN7z?lea7b<(O03o))*ovzT@U>B)=@z zp%y}Q*<0Z>s6<(ZAW)oL>Y-xe{MfOfknpN5Jx;qoBg*Esk_F3l4a|D?i`jmiy!Gh@ zd~fNS0c~`vMbqV*a?D`RVB-xHRvjio)a(F5fJm1mV2o)~Nc9ajnqmp3Fe%f4or^1E zCi#G}wI6=GXWb0TE^ccedpCMV2uhS|-XzyT0nLKmBs|>8rawgo_T; z{ivFSe)oWgcC=ucz%V30g^i(?X-vEGnSg>@BC`>nY8iD3nG|tNzOk-KuKP4o&Rofv zl0C#Mw!%YlO$1rJyqqo?{l2i=7Sj%M9<%v5)-$dXfBG%blih^V5Amt<5w4X`aO4Qf z2m!}`gUc-{3*hG3vb)EiYiwr@{WvjLGFvNjY{22?__*~g&-}rs=e^(j!>8Z$@S}Ca zk>lW$r`&-tg5H#5P-0xEBj{ypotd4gxCgE&gp>$;V+SylF%uzBHe9t^?UNThSlD0;Dc+;m+jD}+g>=iWvZT4zXT@H9h z%}UsGze|xba3UgFeJ4J|pza=+a6&@sTK>&9Uglp9^t;}9EP?Y-I&=toxYP9+LztLd6uHX}GlWsKFn3DfEt z;mnAK3t-T&GcjM${|tk`8sq#RHrG;fLQHXCuk6!@Xnj+HNH1BD6GR^AX@EacMF^EB z1sTMKS=t4%K!(z?^HC69UH9H>)ow<#_GFD<;Wc!d=-!>G7KT+uz2t>`BD?px{whWfUv~=+cc^!JC5W_AQvqe)o#vP`BIMy zMxSnEsD=!+pwKHy(o1Y_ck8)aO%(ZHKHR=2v&;=%_JgKFoa@C?4rb?*#^c zhZ96NxDg`{R?n|XM_6MH6+$uCoA;Xz22kgYzVI}`v1vF!a&b6Rn_{YeI5?srK%z$x z>A!x15FfC(`kS->=_(X7%{$@*B`v_ycO<0^c_diU=o7Nz@7{rAaxglH)o4WO8xI#O zTttF525CFQJW7nD?}FRYDA|N7!?XDorJmm)a~G60$c(+(z6GVp*-VZ{qhtODVw2?^ zo{~wy8^XBb>3^Q~(l)juYpH_=fl&B}oA%>(J>sXWoO_HlxZMF#kTKV_PDQ&G3K6ll z>p4pXdv@*RM7gz_jZ$SP*H%a6QIHXHAb9>v^-M-sXyg}&!{{*rRhM4Q!)z)}{EOld zjcXkXG0mQ(qTgBFGk2zwcwxxB%-)@HFEV8~!Ql}QH+&7I@YapK|$>EKSfW*Um2 zDDDlKO{EnJS3BhC3ALCs{B{DZz7bxUemHV{0o|&LQ8cbEJ z@p!F&Qp60ER$Mo^9$^zu&MBqh*N0#gsdsxU;;ni{9o+2QLbVS-M+cZqQ>#UmiZ5-F^9KefMy0W<;P5nn<0$^Ic_f>R|sm zdVv5fGm3d3;3JhBikLFzMnTveG|$~!OrwW$7{SkcA6wP#OeDgny(=*jaVml^5SSMv zOV&tnT%8dW>Iv;{`<~7c8`7wC#d5e?w0r)+5%I{2R>8*FU9_qipe@Co2;;yN7&P^q ztS~5GB&`r<9H+F|h{IamYHT#Mdn5Qi{GF~4?FV(DbdzIE~*di5l?O-T`TJ zLzq2E@vIS_Rtvl6FCie%wIZ}}u8^xQ;pe#U-NVr2afcnaQ8#j?=Da4~a)Sv{Y2Ux) z7S|Vj*FE-{bf;yFvs#`D;*uaT69q(ebePpJMGJgb*Nr*}irN0pkJ&TyUYJIqUTr2sL0@AiekAd+)sx(tGc{_uhNY_dGLy z?Mkvq`QF@n-+N9tC;53KtyVjdMx#eFBe{9VUht_Z`{$VqH&;Swiv8!W4)s)0d{sWr zbh9?kc;UshW6d~4{`!AA3z!d@JEt+GL2vMRi*HtLo25Oc=cPAtcDup)p;ESLI5pQo z!&C`pwyY+GuY(A=W#sbwg-d3(re~Pd*#Wn+?MCI92<=7(%K(#UdHtNZt*{@JQlIau zkv}8SJ-W?S&~w>rESUI zT%#04N6&Q_Vat>?~$LGEqmgx_pV&${%r3?{$%e){ChY2 zH#b-JZaBNC{sYFd%70_;dRF)E?Oo4G|JUzbsjK|i-p#f7ZhP)V|NXt|S>?a6cRj27 z_x7%5rT?qtE;p=Kbp4F0Agfb$eO1 zyKkBKukPJ8>--Xt(WX2Gh}EqJ2;8fR<+lx?%XChC!t#W@! zM9(|PM0xC|HJmJgGjGDo)%#!1bNL#5Cg8h`X>S3uJ8X+exU`lujq|0~OL3(g+RKwR%g8_|=>=gqT^K)B9`w_S zLI0Ay*zR=mQF9+FEx{$CSywh$hlY_nkv=Ede$a#pr4xiqD=V~TjhnKYW)B84s%j)R ztf~xXWFslkHbh5)lD^&ArKfF&9j>!86?G942yzo% zy&|Q%&HAz`d0Z%QG&d6J38Mx=s%ClV9$`WgxlR|gQQNvDHzlg&u(Vs0R!zb2aOk+_ z&Ntm;%*$xPwne|)57~AIZ7)8$8-lYPxA9PMjf{a%oi9z8Z1}|Xm3BuL)+X|LoXCF? zfe7|qxnbV0t(W}A+(Wr}h}aH+16f=He==*S=%dNU92awYndhB|v% z65gkWq3Px&hoJV1lNR~X3enqa#%+UW=a}QweF~tbcJ5VRCS}eFc~~l|GY`t-J)8CN z{7gqMvpMI+_gA}s$q?Ba=GnX)i`hr>(uvY@aGPHx!*_XGhq&j69Fu__uv#5iP4f`D zBHKVjB2bzcW>@8!3%Gkr+t=vcqCH<&-u~!Mnjf##OBq{UPX+fa3$nXpoO`#4K}ZjF z)B9SNv7-ZOGHJ)=vmLPmv-B;$vW&hB-0WN#{j1nKjSNn-Pb2HJt$c%ND_?K_wxyLk zRL+e&qMbEuNE^J>9fT{W)&)(w^1_6~9| zNm{`W*>=y&5_y@td{tGo`9sIl*PW>co~QdlvQ6)Wg!WztW`g(og7b2}#SWBEmm6S} zXt1Yb(3$1~x-D)I5cO0=c)ZwVHW}<40zNyAf9?`454yZ>U6EaodwSho+hg-so0lz^ znmMhQJOzi@c#X~KYv=VLu1;8*eMpc^$*Es6chFd2OKz)U+zlN-{&7O5DQ~E}>qHJZ#q|6rhZ<{>3 z$FsSmrIktV=4;w~xN5Szc~pl0l)(@u@vtyIoM1>yc_tAyFO1-!lDS&wgDk1s$ji>E ztMc87mPwg4n&Q8vwsAt4jGv+dnrGz(wE4lYQ<_1J3 zN?Q@RIB1b(##fS|$haAsJ#X&xeDl9-e{{Vqb1z}qDL3pE@OrQ7UhbqLxV&473$1Bj zZHi>~)!NZ^-zeajYj&H-8NI8P7>0QySYk8FH_7Ih<0na$@JZVZ*R2w2BWd}MM+_quW|B;7K9actPa`NNvS37s-~UaECi zs%hp(87re%CbZ62G^a^SElAH8nOZPsaWXS(&XAV*`NO71^M_T3@`o*KZ5}y&?jrfZ zVJ$6-=BBmD!mx!I<3gF%oN7&Z)6!8YJ!{yag{kQonVVjgo;^>Rku#uYHoINHwsci(*jTG zauT7`7c|LUDw8fpj(PWkymS9|$v=zGs5@I(&VVg zce%%jn9G2<^N~H}?E_xI4WYX)=^K&z`rWq;+=w3L2kC)n0l)$OlIFo{xBk&@QDf?`>XJSBgQgHi|=5XYKXLg3XJw~Fp()B>ITC3ac1aqmAqeI_O zsl@?pbi);8=Kdl(a;&buSdJ)rq1M7zi$wQngl*L%?=6nV{gM{+^7`i4^U|{#c_Z^6 zJ4wfNH1ROGp4p)l+{$Ei{n&Bd@QXjdBiDQl9m_&e`!%gGyOd5x(e2c5O>*3XVIk{a zXM(v~af4JQiY|9Aq_cMg5(I1SoytVcbe7pl-6^uaqz7mPac7OxnF^iTCfom7M!5yi z%`{8cUJNo2g-MmlkUu5$5_mBwImYP4P_jts&=oQ&;;;yzlO|SA$(G)$U8u6Gw4$N%A1tbkZU1_;W+_Hs(ipT9Q|3U@JfujJ@=o5S zWy(TrWGjD5ai^uC+_7sJ=YJEHonl_HXkrA65p36*?Jw;{6|w#EA$MlxI-g6O-)x_G z(&Z_}Yi;~a9)W3)*L3xklW|I&yinLIZ{EP5ZFuGF#Ioh99mCr@TRx~4N^=QPPL`ZhR)3do;ippfzXHbrTFHL7x#C3JD~@iGUM)TSSlyoW<|69vz{)K0 zxuJ?bG8tJ}M$c5}SlC9~CTjjk2iBVV7$N+q+RO1o4^kDYNc8jQTpRgN?YN$uGq z#iX0**>26|6w40EDlc4=2hCE`Fl&v-bG3G!w@AexJDQCSXCq(Dkt#QVvh(Z~1xtb4 zLx$B{8TG;_154Q|s8m+#8Y;`Ax2L(6)1DGCJYS_$%VWH$(({4{x06J00r!EZT*qt6 z!@;i86#mRJ``_(UE^ma+^(fbbDWtU4BG(vGdGW+JOxi{`%=uSbUZndpFw|91o8WYI z1Uw!(=+WDF3|9yccPBz2+E zQVE3nug`5}+r4B4@0Fn#L%OHE~lzmEP}(z*_zDvM0Vw9dEd1jantuT`F5C;pquwwQ}L zzDb)g!cEO4>=v}9MS{L(cue*#CZe%$-|ozg>1*#l+8-Q1i)^Bvl;5&hQhsM&{vdZ; zbut)uNo{paSV{u>hgAP<&C0ZqGq+(xhb3y~zWs&qb{fM8t?$WAf4x*wBn0JqfvDX! zo4+;yp54hZh+6Qq?*4fu+x5!>Z%~(~j?|5$RxSZh-I>y_nv1BOsiq^p49?7)uy2;P zS(j}k$KI!BkZp`%YEO2y*$zG8^^Q#6NFR}heiALMm3PbK>vZinW9Q{&wCRA9t>Uhx z1Cr#uR(Q1TBuA!wd5AYy?wes2^<4pM&&?t?Vxo6VdPlFCM>gJHt&Q1i(W$XHT6uYX zHuKGw=uvFzCGtevTvO#WapvAks$s&}<6B-%Vd?gfz4gd_w%vvG z7@9c2-fDWksNIF7xRjgD?B!Wr8fddt>-@H8(&0hu4SPkMbfDCqr*B{KMM&IQm|2eU zfpJ8%VHGWw>=6Cc+{Juo$Z+1W&!iDK)t*++@=Lp zIBKI4?n~2oW@?IKx#!f?$`8>W>It(+08;j@*}3jc^Q0wj`B?UeOQYNgoOVI2etX&@b{G+AazPf+CB@%G{CqGmliv9gfkxKhNS-C_!OLAjL{#Bma z?&yCzTcqFdKUlfE5$B(5xqU(G-`*A(oc^Dz-7fz3vt5Qc|0nCWmm0Yz`McXMXPA`y z;XgZo-9pqBvKnKzS7y_+PY0tg&!Kn>6_{m;0{4-E^mMMvwAL;ypV>06e#U~#!Wr{s zH`^bE#>lr%=_Vh7vK*$2j`0A$$L)k6nTzQCNK%-de& zp0G{vZ;Nx^Gd^?i)Z1sN>d2Exsr>k2XKiMi@1oQ$lkrZ9%NVLaYNeVoRa0q1!nTy# zZHc<=-?g@$d+maj^``l=Ox0I8=6e%nO`5r~aatkL_^@q|BHNICWUhtoSnrb}F6p}A zZRRgEU1+27{|zUwArH^z;xnEIeS>U6Hz98Z>1mzgRf8Dtyv%f+*Zl_kM z7ujO-7+0TK%0J0VJ)GS)bL4vyHjiXiYTHvYz?(#jqPgm(n@{a5Ve-nHCp_t}S9gi4 z>n*8o!(yhIAw#WHkver^#Inoo*7iDOdeL6Lo=**g|Zv8Ps5+? zhISY5RS~2;j$Ng`uqpR2uC%ODZs2VrI&JM~q73?#_Klx4)#jeUw4pOwu61oW5as_8 zmGd^VY&+NFn|-C8j*=#?BFP0aO^IS2t4V0Qq^?c^M1xHHPp)>h?V=86C?h7wqZU1k z+*dy9q8z+3)f4`xF^hR8nA|pBFR|3dDHWv>!|<0>k=k33%Tc=vRmp2GvTKyn#5}}OScOU9Aoc<=)xSd_eBz2}>PD-Q5-vD57o{kZZh~fvS9#cAyI;6933=s-?APM4Wx*qmI)!Jx`I%afYAjj@ z&(x4twoySG@Z56lrb;tsLwGN34{P{X$fxlXZ+@t^b zI%I*rT1Wh^)*%bnb*wJK5^~wM7ZIsB*^3A#aj;KzoB8f#M4vQEn{avQvlPJ+WG|EI zn3nx|5tM^;qRf|in3)pnDQkzck}*i-j-zCPb|ID*u}jNJ_w6sa3#8s*<}Q#X;t`MIROCQO!K?+f|~0sr_Tu!rXNDP#VCF1a!c7&$gQ90faVsM?(@U!bhDVY z5cD@5G&{WQWNF1=j*Qx}$x>7I-2?dNnAO_CLoa0VW_$Dd^eL4aSRGp`t$}ScmKu*P zsg2ZRX>T08oq()njW#%`9y3uYp1}rd!MSE*v=XVkAf!|*t!|JOjdrMi|0HuzPLa|_ zA9qM2p+=fvo0}J|2D#pd+5;}v0>kWf?@aTxx#n=%mQp6kt)o_WxLq(qUo{q+*J|qs zym}{L&NZ!SN=Tq2H?m}Q3JvVdbG-)1ME~(%E(zK!M`w99pH^nXaeIJtw#^hYU?C&j~i}?M$<#Vyq zzqh=;g-3s&eQ`u&Y&*G`o#n|*jpRsQn%ud~1zq+=ZEFlZ7C|JLALLQw-so6&uZo7&GgjG^-(cNy$6fx zU)d+NT0b_A_NFvQXH{Ry{1S6S>$5c}1ae^)p7I4|n#_@)hu(jhC!P{LsP%k`ENyQI zo3DY__0rs{?ZfI|M{$i$`CsPkhKsUKt8MT|4wsnc$9oIzSTOb$m}$1q#+p}uFY-5T zRsua|r)U?6VjZp06GoOtVg8cAKhJK8M55$c&n;otmipy#J1bWa&E|H@&{@2 zAq{3qduC}oQf!+XxCyhn+x>y|Dr*`-*qgHUf2Maay)l#OjrJroK_qGI?S^s^xo(}( ztXKL)n@!UizI)HD7v)eO2mJF)4w!3&dH19ICVge9i6yx)NHfL!CQ}HS_A>GarOsAs zvq`gro?%+tm6e(}k({^M54T3ER8{rf3acJwav@|>-MC`JoHsSuq*rY|BtRciWrEko+e8r>zuB*r_gmkgd0w$x^m5bp=-?GugJ<(a@DdE^>n# zMas9=_HcTcl7~LISMivzs#YmXwUY3I_vYJNyh8*bW{YvHJkfK1 z>C`4<&Ie4;+yqp{W?JiKrln)KL@MQnm6XXbX}(OiB%3qx43Vn0{v`ona?C&79F9x% z$wWnol+E=L%Hg1iQm6FKG#RA_i7cuu)lJcodntk~RqRg+<-Qtbq`DWy{r)s>k;x8+099vu6P?L?@nv|TecBbcnk_3r|IaRm?uCJCjdr5^1!7T4>kV3(8qpOeJ zOlj;+^DpaLSdM@BvHHz2q)th`H^CR1H+ks`-6l0u$iY-4&AjxTZgK=je>&5{T-x{5 z$w)+vQh^>M4cFxzZE|1j{w4J{S}!L(+CZTDHg~qNJoI_&iW| zv34aiv&^2cIn{0x>eV!?Zu{ouO5dBCi!@-bUsN|yx;&U>LSv-^qTJn@iCXWklQ+2Q zy`FDE?nQ)p?JkiqyH&Six}K&~^b=Y`iDs6z`h!N&^vwNvI;at+cXk{iX*MqHv~t_z z#@w{~qy5KQeX|j;d{c+WCe8je;{?d*Jy|-L&RZb2PyPw!0%R&r@>wYlY-E?A*4&a? zf0xcP`L6|!&alV1DSh?2Yg&VtdwR2N`dU!)Ov5xZ^1Nq5+Y-wGs@UEQxxb}r;h^B+ zRn=xu$@<_Nd44P7Rm-prx~g{On^$-I$$Y(w{qr@{O_70sR=ak(+Obzwx15}BEFq8E z^@6mz1&bT%tHC2Kt{wWdrlG6(1eu!gI;j z`(8QLbyxd40QhEPi$^&qvQ2o|HZ?ogoz#czK}R_!-C*3qN6I*Q z+{&Bn^f1z6D0`KO=wpG9`&hs}P>^MGLA_j3-;p68a_>#zzQI4w`~YwLj9xz+s71CpN&5?N6v(8{~^`y;NpNl2vfG5-{v_vvzuDp}ayrYyzlyni)*r1+Z!8;woEm{|8 zZ?-o0l)BL%JwQBd*LA9SBEk1fk^;PLQjxi^XFE`9g;b-&+IK+puE0!Z4RQua@joLq zcW!33`7XVj*`)U)zQy>c7FD*gXivSGv31^Bq9kRy?OATS;>s9jWs;-ho}LS4f@u!B zv~FUxJRvS0Bey^{L-nw;tG6Tj)k=SA&3*HvM#jsKN7HR)no!WbHWDO`-W?MEspdFmgjAIGS~bJb9M7P>DL|@fgqP}uKAGJ z)l=ktr+SLH(sEpv+7Yzc&d5H8*P&s2)hq9pxex2xEM&e@PgmKQwjYVxf`wisdKj9k zu-u}_3*bw_Gz+!ogw}^w_u!_@Jf1GW{8>U|@2d;PUsz^B71As>~ zVSP)zjR?D!_F&U<-*w+S#2V~4@?uqaB%lLa)X$qYdtrWyT>k4c0B#4nSRkiUfsA(% z55*(VVWFZ>XmD^8498i=ahyNoUk9h-itg)lbMhta{(D;fDDK|nppHj&DDIwL+^uuR z=I&jJyLH>rT|nHxEYs;ASzlew zE;FcjozD3kC)=g`+ty;1GrwVwtZDY@e#4(FmoMvZ|1Fk3vfI{M*0{Lswk)#;&hNx!dW9(HmuTFvs>rN zwK{fPvqz^5I&9dXS6=T9eL8I1VUrG||0`o(G`QgC)aA1BUFh3HQ9}CQnIh)E7ng_Z+I-39I zK9c7o0?Q|IGv%*5CmEQZ49qVK%rA5bWeNR0-LD;;v4Q2c2`s-&VE%}}{1JiqBLnkC z2Ih|n%pVn)UmTcU9GG7cm|qf@Uly2O7MNcin6J5>``X0?Sth(p7Uu>0JWpra-zmkZuX2X9Uu_2GX+w>A8XQ{6Km^ zAl({B>(wOpFV9(;OUPe&&hCNqia>hLKzi>$dfz~L|3Lb{K>FZ7`p`i7@Id;=K>FxF z`q)4^cckl#JmxpwFNt>u*a(p{Y;zVzD8Rlf8( z&fC6pH)o@~+}a$cyEERGUf0>vmtN1g!Ixg&`Pi54;SA{HU0+XUvM;@XbF44Dq4R_< zy^+&>4e#fBITL*8-p*mZbRXvdUwUI_%{9HB-^3~Lr8jl<^`$p+Zu6x#cYgMz`#MFP zz3a<&7W>luoa=q*Eu3$B>Hf}eEts?awshwD(gU1Jed(>7k9_HY&Q@z>KP-O?a$0<8 zt>xtY((44$-2!QIYmuFn=d7FkTmQ&&)(fQ952Skp(mey|4Fc&61L=(d>0W_!??Bpr zHP3T44$R*qklr+q-Yk&bJdo}iNaqLA{Q~JN0_pyN^p=72fIxbyKzd*xJt&YK?3^iw zfF6ZU%YQwbVa`>aLqhk~oq_c8f%JQU^iPu3_3574Lh92!<&esyLr&P24m&lZcai0L zI1y(F=^ITt=A0pE_n&UhC4uyPEZ-vYdPsfv4PQFx{7hP})IFqjyMY|ix;=Vj@8N9Y z3@5Eu<{r)nr_z@m>C7Un_h>zwQO^FP&o;{!J7-JU{ioY^Bl9nozk4_(&NG4eA2VN% z#2!wW<1B2Q6OByQR&g^@vl|zs7PK~ImKLO)En7`&Oj=q`NzKYEn%`L5+$>$n7TSi@ z?mX#lR@GFRYE9M8t64BFE%Ti%o1M9f=42M61kOH)xK5|dph-;w>Wd?s305KCv`%?bI2bW60kDH1J8Mp7+>;ih;v z(Nq*oHhDi24KH1)pNbWvn_3E6;?1d|bV?SDG{xeDiNeA}OSCB#Z7Iyy&1{^TSu%TO zQ{!S8)IrAcluyPAV&QOeQ!JKAMWWHdR3ef|ry?z(WHKq=8I!LyU)PdJwJwqz)$fWH zWJ2kpmS{AYPQ=qqMJKA0(Ukn~bT}DGBodLPCfRqmVWaqU1VJ*<)hlUCg(L_k{DjEr;LvoH478Ppo(G-%M z7)v#ALT5A9GB~^8`eD92 zQXo&N;+bSRoy?^5^O2@Rx-cn4Um~8&q>AE&?QDDVoRt0UqC``=xuqpm6xL!z4!vY^ zNJ^DVvzAQZc%aNP8!n&atHT9y6op$d@kAn7SX7iuNroq-h)5QxC7NO_=|r-qurQf! z3Z;q)Lzz@8mP*=lEtluBXE&yr&1o7g2&aqU;lh@5C?#1HZ;rLd0oq~?vt*0pn(y@C z`ei>Gi-il4Qk*5^5X&T!5joW($%LE{EumDbFx6a`Dr)aH%ZIaBmP#b`9F580l9uDL zsW4nrn2a<YBhlw&fIDT<{NMKT&zGF6l*iiBF^0wKqJdpq0xv|OJGvuf*Ng>k8d zRm`2)Y9^Sr5S0t(n+djIMDyZuTbuCI&Kjj|=1rE&$fRdgG|$e|$;;9+*)?S=cskX0_BTl&u(vSy%}ksY|i}FWxm;!@?PSZR0roRkT0O>$S7E{UEc4gYn?a0QeNAq z)y#(Zb@LW2NN3n?ee~%zPBTArN@`|n_1yB=sp$=KTW8L$pE)NpZ;@|pWph(a`V;Ls zz28$hbK&Y{*$?Tk3A!Qee5k!y@-u7(k80&Xy8L9B8ytwiGq+aC?wN}-_49Op zc)!m#L)yfddUm7iF{zd_Pp7VKRr)-!y^rW*&u1i0YnPTS&dhDq=l0G}xfkeqvtwet zT~|8JR88OFIQOcnm@YPHT5g&3UZ(3^j-%1Mu6MJ%+)zx`w8wEQcd6X)=<;JU{fOgi zt3GDq)*TBR=VVED3^^t`&{3Y*=v{rsLcKq+ZiISw+%c~Ab)q~<(7Vl!2}kZ4?Q#(u zjbm{lZjUL{dp7+ZjjF24abG+dPrwWDCj1)phE6}<9XG>KScSXcId~)9hcDxY_ydma zXxCqbXW->{FFu8D;1~EE{(>DOtfSl81^eOv9Ezi{61T_c*oyn$k$4(jf_LKm_$WS& zFQLW`b-TXDJP9{xdOh3>x5gxv;w0P|XW>#j05#^Q>pcrE$CY?LK7$)cm`j%*j@x1d zPR2CO$35^+JP9wrm3TisgKy$z_%n81({9HG*bfVETO5bea93Q82jTH}4ql0?@IibI z-^MTSS6oZNe40NSVSfzaNF0w-uo)NN-gqRQj+f$V_ycy5aH4+i`q&qTU^QxtRhK&n z&&QScIKGKrjPI)b9p@X;9VND8em~~pa8;I@fb;Pr=AWbXbDXP5-+_YtVJEpDb(DZ&PgS>v^mdrWLz#bqDi^QwNnc0$3H%l} zk#M!HZ-6SH>KN$~ti=@WhRao1$DyQ8!AtNeRr2z7(vRb_svJA-kp2dLQstcLBHN(b z(;NG%QuahhkH#w85qHJi@o+pD&&M0_UVIXz7;!qv#arW-`hC4s*`9n=ws(*!zei3X z^SfmeO@575C7;KsvVUq+*^g6I+26aUa(v8C<#?K}%JI5XmE(DDRnC)xRXN{|R^_}r zSshG0M7Bp`$+|tJ{vq3wuW8wytyI|$Lsj`L+T299r%06#Y3l*qo-$RoXM!r*Gf9>0 znWD<}=u>Fjo{TEnGh3DIS)j`HnC+GA$JL*I7Blg$yXvaB1Eq0va)G>~8sw$s9Pc4zy zxLWEs*D-ySDnI^iwcK$YQO7#wnW%p5b(VWqm7VypDjWHuI$q-B9Yo1AeP-HmqU;Z~ zQm!*FA@Ojjq%aiPl2SguZW zoCDNpj&qbM%b$v8t5S*7`fSG?l+nJeFC@H6}df5Ja-jXb+Q*T(g+7jB0AaWD?YIF7(#9EPXJ_n&J+Tk= zMQx*^=hF}jqkDfjl5`1HU^O=24w%B}I0qNvGTaN@`_jWmAA=|18F(IEf>+@UxC-yW z2kT!hPUA3O+;z~k@~JPY0X@ykeGgE!%Acn>~=PvCR-3ciIOpnD(x4e6io4_t%$ z=(TZu?1h_Qe;ka%F^(g!7{_8I)}b30Xe6D%S-2Z6!98$4JOq!z6Yw;2;|Uj$z5=hq zm3Rl_yWF$@8C!1#v#5V{R?*J%=wSquqXDxzBmAfU>K9=#xF`pS70?Z;0~C= z={N@$;xgO|55U9l7(5Bj!1M4Dyb5o?Rd^RZfREub_!7Q>@8Ku-6}oYj-$>`ljfXk^ zab4UHH^F{55QkwDi*OW{;RKw7Q*b9t<4l}~i*Pyag9qUecpRRBXW<2S8D4`o;ca*i zK7>!;bNC9rg&*K&_znJqf8ZKx*?e6a*T-JC8TQA)I2_|R0*i4hR$?7aLldWx@-{Ed zUvg;SAMkhlr};IQ&;8r^_CMW@1lu(dOK}292+|xMZoF+5($jG+F2WVK zA0CRw;K_IvUWjgd?RwIy@NRqvpF}sV=Eh&&WBRA~4gQR7JnjFj@-0m{w=3?3OVN#+ z9Z32JJRVQObJ2~LT}}EXG;v!gckUzoD7tYn_j&wZ9VdS^-;Lk?-R1g|@BdF7_rW;t zQoe65JP?n-t{)u=PL3!?F*;%hL7+|`~iQ*H9Fem*1?{*F}m^UL8OOc0!Lygx^e1S($jDk zoQ`wRjZd#2y&oQm$Kc86#-%SLeFa{RtMG1gqcH_zsm z_65}Zb>q)lk{*H)EW**~#+|E3H{gz##$C~kH!mf<7aoX5;PL3jna?Hdwllh#^i6m> zy76VV-O)2le;MDx57CV)yX}yEV|pjzplf3fbmPhSqz7UF#&KJ856W=w>Rm&xD^h=7`k!ZF{CT72B+Z8 z=*D+vlU|6s<34yWx^dkTNuPn|<7Id)y7AmQNk4#(quYM$Rnl%8_hZsu;g9$Su1Va{ zjo)rSdK26N2cz5G%#GV_$MiCsh;_Ir01db?bZFX2kwtN3JfJ4!Z!)`;m7{{U8Zf-JZH~!j8 zdKNCgWw&>L^!29trd=}j}>)WKYkF>7mOZ)+UM>oE@ z&RTZ4p13jg!$IiARTHE~Vku5Qx4oYmPu+#-({U~?!WHPoQ4b}344#Z<;f3hNPp>Dv z3h%~;@JV#zrmvHJ4?jh>{ov1}-FRu2t~P(x#f@+?+!Eb5X@qnUj>fTAg>HOwN78BB z6?em>=*C44Bz*)PkEh|e=*C0c_KY_%{dUwox_W#(if$bAWzuiqhxi44kH29j37G17 z*2WlH_t7GNB=#S$EklW;0FVhg(MD_cn~$9?e-JQ`2JGw}kv9IwM$@Gg81pFp>L z=4+(i#ZT~S{0ViyFwLLN*c~^-O|d_2jc&WnLeitK94oONcfcle+kMU_y#)8f1MqM( z?LlQbPbGa0UW`}ajd&a0i>AG(eEwo-gpom zi6`LccphGg*Wk@~2i}j5;j{P(zKtK@m-qwzj%%!E^JyKFYPc=O@$Wtl7|!zUbBhtA zi*YPgq8n#&Voj3U{r?v6FIG)Xi|KfNyAO4Hu*?jmfj%V}Xzc`-F zhyUVuHXr_rTucs3vYi{sgR_%DuU^WncZp3R5<;&?V6{)^+; zeE2VpXY=8|IG)Xi|G&radJ@mu82jNM9F7SbiKRFJYjGOxg41y>F2WVKA0CRw;K_Iv zUWixV^|%V}#)t4pd;wp__wZBv27ks563Enea2H$`H^R+uOB{j`EW*(^7OSuUcf>UA zio4-b+zSuHBk*`U4bR0(@M^pXZ^!%aQG5np#<%c8`~ttn->{Q3P}h7~8+%|M%*TOP zfN|UwOK?0+!l~GZEjR~TaXIdbhv3n85}t_{;N^H7-hy}GgZKnKkFVjo_z8ZEKcUmp z=1*trjvL~p*dMpXFc#t{EXPW$#~rW77!6~>iW^gtx#NBZpJQ$C{6Y&f@ zA1}jeaV6e~58&hY9KMS0;K%qC{)m6znj6}D>V_NOCb$I-#tKh(coANSH{h*!4?c`f;fweNzK@^bxA+U{7%}EK9J-&fVDUccfsj67Z>3Q+z$`MWAJ1=3opbg@OoT@cjH6&B))*J z<9qlieuF<_hu$`Sy5PFF5pITC;t-5r5st>OScMI^Bc^dz+zprFUU(oLfyd)%crIRo zSL021JKl$n;xqU%zJ(v+7x+E?hMoG@d|DfOU?0rKfmncX+!jl4JWj%?*oZAS2U~GD z?u&=u(RdP`i5KAIcpct?cj1Hh1U`?i;k)<=evLn&4s@mEQD^Lq8{($eAGgLZ7UC!@ z$4acn9k2;!;(T0!d*T6jI394`~%nA)aFw++yFPhEpRY~Fp1k?8BWAH+#XXn1Lxsl+ynQ=!|+%<1<%Hd@JhS^ zZ^e7?VSEZ-#5eGL{0zUvUr@(_GuMAy4}0O}H~@!Y6t}@*9Ea678F#{FoP`T;8Sae- z;gNU(o{s0?rFaeAjCbJu_!vHmui)GG5q^n3;P1G`<~E^+WhH)>*7YZ z8E%O~FoH!m8pmQ4HsFq!#$9nYT#9?)fp`QSkEh|ecnMyOH{tDgA3loD;LG?Heu!V- z_xKxj%D4HnHuk_in2!Uo0OPnVmf(1tgj2B*TW}7x;&R*<55c4HBs>!@z{~MEyan&V z2k{Af9$&+E@e}+Se?q69&7aQL9XG^Hu|IB&VJyT^SdNugk2_!!&cyk+1oy-P@Nhg1 zPsMZaV!R4(#M|&*d<37ym+(#e06)j?@K?;+!sb&~TpxR5U)&0ZVGKv$7_7h=oPs-J z24~|!+#UD9gYhUl5zoN$@iM#?SK^)c06vb-;j8!#evDt?kN5|!+27_!7Xqw zhA@fSVHr-uI@}&pI0NV5V%!7w$HVYgJO$6ji||Uk0dK{7@L_xkU&J@?ef$i+#b2=F zmNtLZ!u7BhZjJ+RC`NG`EXHwIjgxUFY{pr*0GHw3cn}_mC*bLL9$t#q;LUgk-j9#r zv-k?WjUVBc_yhiqYYedYv<~*fjj}kywfouokD`E;t?M;v!su`{AK@44#Z< z;e~hwUXQErZhQ!z#24^&d=EdxZ}4aAu$9f9F1Rjkgqz`(I0PeDgrjjRR$&9~h-usv zcf+N)7aoX5;PH4Go{N{@)p!%$j`!iC_zb>`Z{dgd1%8jeVW)vMpVr16*a!1*AQoU8 zx5W}1kCSjJHew6T!B$+3`{E&ZG@gWK;stm)UWd2fUHBkAfzRV>_%42eU*k{c46^yt z8N1_#xGDC>tuc&+I10BJY0-> z;Qn|R9*d{o*?19Ni8tV_cn>~|PvMLB2ELD<;kWn;b{t~!XDwV0d*S9d0Ec1}x4~i@ zht)V4cfw|zg$r;Q?u`fGk$3{0j_2W}cn#i+ci{c_7(R=y;M@2Seu+Qe@3_WLn@{Ut zPuv*$;UFB22^@)~I00*M8t#JAaV{>x6}TTBipSu|cotrWSK#%y3h%~;@JW0DU&r_G zQ~U;h#ty@5{&c~0aU>_L#yMI1d-&9=JaqhR5P5cs5>ySK3AMqir3)Hcn98(kKwcU3cigW;g|RW{*G%zZ9c7oJ#k~~hl6l9%FB;U{*J^_ zoPf1B4R^umI2RY;3fvD5#bfYfJPR+xEAV<;g?Hma_$0o7uj708DSm@LV~3dion3HU z+z2kzj6&tYy=U^)?$9?e-JQ`2JGw}kv9IwM$ z@Gg81pTOtwHGCI8!LRWrbP_gyI%9X-5I4pCxHX2c5JzD-R$@KwfK50P=i?IG6A!?{ z@i;sc&%ulFD!dVI!+Y@&d>UWEH}M1f9KXX~F)wNJsVlCJy|FKDg~Kq0BXA5>U=2>e zol#y0Y|63OxDa>8eehsB3Qxo{@O-=suf>&kCq96W<8$~bzJnj*SNJ3Tfon=z61~24 z!wql~+yVz<2$Q%Smf=LK!|gGJGjJX*#yxOtQe490%Y~jN&#}jN`BxC*w}ojI(e7F2lX?AUqOJz|-+OycDm& zoAD03A0NYK@fCamhhqXqVku6*TAYTv;B=gei*N<* zhlk=Zcru=a7vdFoJ+8vL@gaN?U%=P#J^U2E!Jo0i2%A4$a9!L8H^VJ)2u837N8?zm z!Uo(C)3__{hD&iTJP?n-;e+@DK98^AyZ8xy zjX$9?(&kTR?2a4arr001#xNG*C@jZHtj8U&31{MbT!MSz0eCnbho|B>crjjuH{xx0 zFFt}#<4gD^et@6jclayjZD;eTE3S{du`h0g!!U*;a12&p4Nk$GF@v*lA?}X*;K6tl zo``4Q`FI&#i!1R?d;lNE=kQg02S3KI@JIXu*BoW@sT*#9o8T5W7(HFz`Lf%oHM_$_pVq;ixH0y_K{y-}I1)>70@mU*+y$rOTwH`Ja6dd0kHM4iEW8k}!0T}p-i;68 zllTI@j_={8_znJy9md%F>4NLxMz|Sni9;}gMK~JAVih*vj+n+>aW`Cwd*Ok21Rjs4 z;kkGTUX3^5?RXzPiqGK7_!fSMU*Pxn8+IzO`Ls6nz&@Cd1F-<(xGk38c$|b&u@PHv z4z}WQ+!qhQqwyp>6EDEa@jAQ(@4^T1349)3!*}r${2G5kr_|<8XY7s};-=Uix5h9Q z;wUV~O035nunA}4d|ZNi;sJO#9*3vmIe0N%g*W1DcrQMJPvcAYCVqgQ<9GNg=9Sre z>Wb@QZ|sX(;V_Kh2poeISc6k=XUyPiT!_2lK6o%5g(u<}cs^c+*WyaN6Cc3G@i}}I z-@%XZEBq1vz%|QlK6S$la1-1D2V)46xE+?^M6AQ@F@-a59xlc`aDO}ukHu5)Y`h4s z#2fHdyayk~r|?C51K-Eb@LT)^^_}SE{vX%FUbs09z@Zq$ZLk=}VKq+1ov;~a;R0NS zd*eZPB%Xk$<9T=~UV}H|9e6)JhR@XZ6F0_wI0%Ph0!Lyg zPQY56hP&W&oQsQa1@4E3;xTwKo`o0U6?i?a!n^Syd=g*4*YQ346u-fru|tK;pDwsA zZiJiRmN*0>ScIc-ELLFy?ucpJ6?em>xECIXN8s^z8lH=n;MI5&-j4U-qxcNIjBnwG z_yvBCzhS5GHlNnU9@q!-aUd389Jj?19FLQ5DmG#Z&cRk(j{D*vcr>1bXW|8TIbMgi z;9dA2K7r5UYxpjHf?wlL=uEKr(;2(thPWyA$E`7pg*Xb!u@dWX2W-NbI3Jhbo_GKr zj>qAtcn)5SSK*C#8{UhL;M4dLzKI{;=lC7|ig^=lK6S>_L#yMI1d-&9=JaqhR5P5cs5>ySK_;t_Z}o`&b*C3rR7gty~;_$WSuFXLPIA%211<8Rn$lFg^Ju?P0Sd>n`c z7{_g~1jpkfoQjRuf^)DHm*c*82p)|m;hA^=UXIt{EqE6`h)>}2_!_>8pWxT{6FRjv ze>!7#+z>a#{5quh7 z!Z+~){2af-Uoo%F=2KT(AA4h8+zN+b3`gJ?tiT$af;(ddXX8TL9rwY5@hChI&%pEX zGQ1X7;+^;aK90}ftN0Fnj9=l8_y?|8Z}X`eZh)KM7C0C~n8fX{3@2h8ZjULPf%9-N z?t%N`VR$T_f@kAJcqQI|x8gncFg}GZ;v4ureum%TFW9lc=FeKV9`?e`aR3g*C~kwr zI1a0EGVX-UI13lxGTa*v!XxnnJRQ%&OYs`K8SlXR@iBZBU%|KWBm5G7z~6C=$u^(X z!JfD=_QOFq91}PaOK}3$;xya^r{i2)ge!1AJQR*7YZ8E%O~FoH!m8pmQ4HsFq!#$9nYT#9?)fp`QSkEh|ecnMyO zH{tDgA3loD;LG?Heu!V-_xKxjnricDZR~-4FdqkE0mgA#EWz=dxI6BH2jfwABA$Wg<7Id)uEaa>0el>v!&mVg{20H& zAMp=da|fGG-Eafk1h>G!7{VlOhh;bs>u`Ha;S8LIi*XO!9}mN0@f188FTyMF2D}yT z!H4lFd=cNk_wh6Q7JtExJKFqN3)jP5xH%5Mp%}$&uo%Z-HBQEzuo-9J0$hfB<3V^N zo`9$0d3Y&agE!+Hct1Xd&*CfiHhzR(;t%*cuCbHNr**I=ZjAkK5Dv!#j>J-&fVDUc zcfsj67Z>3Q+z$`MWAJ1=3opbg@OoT@cjH6&B))*J<9qlieuF<_hn;Qybis9TBiszP z#32~LA{>olu?ib-M@-|cxEn6Tz3@Oh0*}Yj@LaqEug073cDxTC#b@wkd<#FsFYtT( z4Ldd3d|DfOU?0rKfmncX+!jl4JWj%?*oZAS2U~GD?u&=u(RdP`i5KAIcpct?cj1Hh z1U`?i;k)<=evLn&vy082&e$C{#7(h3ZjE6q#8Fs|l~|8EU=z;7`M3o4!~^hfJPuFA zbMRuk3U9>Q@LqfbpT?K)P5b~q$M5i0%uCsP>Wb@QZ|sX(;V_Kh2poeISc6k=XUyPi zT!_2lK6o%5g(u<}cs^c+*WyaN6Cc3G@i}}I-@%XZEBq1vz%`p}K6S$la1-1D2V)46 zxE+?^M6AQ@F@-a59xlc`aDO}ukHu5)Y`h4s#2fHdyayk~r|?C51K-Eb@LT)^JEm>^ ztcB}gFWejl;82X>Hdu_~uo@@hPS}jIZ~-pEz40JC5>LR>@jSc~ufdz~4!j>9!)Ngo zd>cQ)FYyQb9oJ~K`Lqu9#Er2Z4#MG>z>!#r6R;Mi;Vw8G=i(wMU z_re452s|E7!*lTxyc%!9+wnep6raJD@h$uizrgSDH|*46^J#7DfqgI^2Vw!naa%0G z@i+;mVk5TT9BjqqxGx@pN8?F&CSHJ-<8^oo-h~h16Zky7hVSAh_%;57&UBkUov}M^ zh?`=6+#17Jh@-F^E3qDTz$ToD^Kl98i3i}}cpRRJ=itS772b%q;l20>K8-KooA?2K zj^E+0m^Z`bQ&(Icdt+bR3Ws3~N8lK&z#5!_|A%IK3WMux7&aQ)w(T@*(j<-Duwlc- zb{gBZZQHhO+h}b3{oYys(Yp50%yrMqe&)fh&4z5j_Uy_&9L!Oi$Qhi^Wn9ZG+|5Hg z$qT&Bdwj~*{KTIO)ils4B4aQf;2gEb5E3Ck#q%|uMe49vznEXWcp$11GF25ioD?84q0#F3o9 z>72)%}Jce1zgT`+{!&X%u~F`8@$hFe8bNS(kjp=G$S!46EHc` zF)MSk0E@9KE3+o+vnkuKGkbCXhjSdKat;@B6*qDR_wyLf@(OSB5nu8>zcG00K&Nnw z$~a8SRLsci%*#S7$?~kq+HA-cY|pOj!@(TIiJZatT*kHB!reT?lf1y|yvL_}%}@Nv zP;CO8A~FW!Ga1t|3v)3)i?R$Wu?Fk030t!hd$2!;aV)2BHWzUvH*h=m@hH#mGH>xA zU+^8jGFaO{pRkO=*i6Kf%)o5S!-6cqa;(ByY{2Gh$1d#6K^(~moX&Y%$~D}~T|CGW zJkM*q%O`xrkNm-q?E;-5FgoKgDbp}Bb21-`urw>OI_t7ATd^a%vmb|Y3@39I7jgyH za~t>a2v748Z}I`3^DVzHX!}5)FpSJtOvn^W&tLc}e`j(2!9V#I|7J6`ACK}3FY^{3@&(`VD}((L=o6Mv z7@LWhk{Otdd03DoSdLX#iw)SE?bwCAIfx@UfzvsUOSy)dxr+yRg6DaSclm^`_>n&t zvP+;-1V(2(CS@9CW=`f~5te2}R%cx{W-E4NclP5@j^Sj^;zF+AdT!%h9^q+T;!Qr_ zbH3#l2JIT?6NZr)iwT*6>G=zPw)}^^IFKVap3^v&OSqbwxRVEX zoacCzclen9@&ms!M7Kbv@QlW|Ov2R6#2oyMg;|OfSdDeqh%MQH-Po5yIGU3$sJBc$lYnkvDjs&-jL)8KirlPiRJBOeSD*rejv-W&svsSypCE)@M_;VQ2Q_01oFk zPURdf<|=OF4({hMp5+zZ<|Dr3dwyf^9)V8b7?p9Dn5meN*_oGxSd!&gm9^QBE!du2 z*@uHUiW515^SO*`xrMuVh$nf0*Ljam`I?{jlc9PBIz?m*#%D67WftaQeimgJR$>j- zV-vP!C-z`}4&zu(;cPDAN^anG?&DFO;bq?9L%!fUer2#;fj(gwg|V54DVc%Un1=;f zg5_9+wb+2o*^XVIG@Y7 zmRq=+hj@|~c%Aq7l&|@TKN)I3pi@M~V0@If2tTk4w3Ro4Jbzd4lJ8jd%HkulSKa7;;dcQv^n5JSJrtW@b+2V-c2SMOJ5B zHfAe!WOw%CP>$hb&f-F@;CgQ3ULN6TUgAwY;B&s^7X}?1=o5yK8H)*-g6a7Sf93Bi z&Oi7k|Ki_l#T& z@L_>Y;TV;1n3$=Uk=dD-g;-ZA2RcP$48~_Nrezl9Vty878CGHq)?*X4W+(Pwe-7hVPT_1W;!1AdcJAX* zp5bNQ;zPdRJAP%b5rIBo8HKT#h$)$Y*_ej~S%T$Qg|*m#&DoA!*qehmk`p+c^SG32 zxS6|nkSBPa*Last_=+F-gCR!-Iz?b~#$!^ZVP@uJJ{DnVR%CV7Wn;EtM|NjF4&@k5 z<}5Dc3a;li?&T4l<|W?b13u?leqqp2fj(gvnX#CVDVUzW@K^rM;{1bu@-P0)W^BuU z*oy->g5x=jbGd}8xrsY@fX8``S9ynz`7b~4J41{PbPCUCjLRfU%}mU}-&mNXSb^18 zhmF{h9oUV1IfSD*i8Hx?%ejtQxrc{&iWhl<_xX%(_?bb*1p0(#B*tU{CTBWkWo{N= zF_vXz)?|G)WgB*8PY&R4j^k9$;bN}hM(*H#9^+YF;cY(ROTOnf1|J*f6pm3Dhl!br z8JV4VS%@WBo>f_!4cUV2*_C}bn4>t6GdQ2ixRzVEn}>Lk7kHib_>`~ti9Z=?T%c1# z#$bFVV_IfmF6L)ZmSH880Zs*kr|5#nS$y03xDPBEY3gpC;#H#Y{s_yhrKwEBRHPZIG0Pf znwz+j2Y8(4c$IhfnE&zvzca+7K&SAG#<)zv)Xc;j{EdZKiWOLmb=Zh4*@4~ImqR$3 zlQ@$LxSZ>_m3w%Yr+AS!c%RSshMyT^a-dIWMq*4RU~;BoR_0~_7GqgfW=+;-Q?_Ae z_T&H#=QvK~94_W6ZsZQ`=P{n;72f6}zT|s;WAG_~PT?4pahRB?n336;mxWl8PUb8w&1P)Nf7puyIfCOkjdQt#tGS6gd4R`xj#qhy zkNGb@@H<1y40H<5XpGAwOwCNp!QWVzrC5R0Sci?+k{#HMeK~}qIf*m5fXlg#Te*ja zd5RZ#gZKH2Z}^!(W(E3$W+cXB0w!lVW@T;`U@?|uW!7YUHf0-jW={^_aE{|t&f#LN z;zsV^ejejlUg2#%;!D2gHwK>_=oF4o8Hb6PiW!-md0B`hS)Nr{n+@55?b(%mIGCe2 zkux}-%eaaezxrUp$iwAjv=Xs5H`Gl|dkv|x6UZ7J1MrS-GWg2E?PUd3~ zmS#m(XI(aCD|Tde_Tx~F;bhL@LayL?ZsT4a;b~stO+MgrzU3DNoge5EhLIVI37LZF z`3ryL?<~$g_$UA3-)zRV{D-|bkRv#r(>Rw)xSE@|lLvU5=XjNO_?Z9l1HUuGfM=43t=VQE%mb=GBLwqi$i zXFm?*7*6IaF60WX=Qi%;5uWBH-sA&5=UaYZ&}D%>VHlaQn2;%$p1<%{{?6k3gMacb z{>^4=%YWF5137}@IgN9Lj$65hhk1$@d4u=)jBogvK~@C%gk~hhWCA8< zI%Z{V7GN=!Wo6c6eKutqc4kiw;Bb!PRL$CSzh67KH^Kh=Qjpl8R!&_ zQ5lDcnTi>ioq1V^C0U+TS(^>ng6-LreK?q-IFU0rpUb$GTezEtc#;=*o%i^Zulb2T z8ERFaQ$)sKd?sUBW??SoXHk}6CDvd)HeqXaVh{G`FplLE&gLSnn&ta!sI91V(2(CS@9CW=`f~5te2}R%cx{W-E4NclP5@j^Sj^;zF+A zdT!%h9^q+T;!Qr_bH3#l23;HI6NZr)iwT*6>G=zPw)}^^IFKVa zp3^v&OSqbwxRVEXoacCzclen9@&ms!#JWJI@QlW|Ov2R6#2oyMg;|OfSdDeqh%MQH z-Po5yIGU3$sJBc$lYnkvDjs&-jL)8DxE+PiRJBOeSD*rejv-W&svsSypCE z)@M_;VQ2Q_01oFkPURdf<|=OF4({hMp5+zZ<|Dr3dwyf^4S`PK7?p9Dn5meN*_oGx zSd!&gm9^QBE!du2*@uHUiW515^SO*`xrMuVh$nf0*Ljam`I?{jlc6>SIz?m*#%D67 zWftaQeimgJR$>j-V-vP!C-z`}4&zu(;cPDAN^anG?&DFO;bq?9L%!fUer2#tfj(gw zg|V54DVc%Un1=;fg5_9+wb+2o*^XVIG@Y7mRq=+hj@|~c%Aq7l&|@TKN)IApi@M~V0@If2tTk4w3Ro4Jbzd4lJ8jd%HkulSKa7;;yjQv^n5JSJrt zW@b+2V-c2SMOJ5BHfAe!WOw%CP>$hb&f-F@;CgQ3ULN6TUgAwY;B&s^7Y5xO=o5yK z8H)*-g6a7Sf93Bi&Oi7k|Ki_l#T&@O^-ab2RcP$48~_Nrezl9Vty878CGHq)?*X4W+(Pwe-7hV zPT_1W;!1AdcJAX*p5bNQ;zPdRJAP%b1A#ta8HKT#h$)$Y*_ej~S%T$Qg|*m#&DoA! z*qehmk`p+c^SG32xS6|nkSBPa*Last_=+F-gCP$FIz?b~#$!^ZVP@uJJ{DnVR%CV7 zWn;EtM|NjF4&@k5<}5Dc3a;li?&T4l<|W?b13u?leqqog5x=jbGd}8xrsY@fX8``S9ynz`7b~4J3|}}bPCUCjLRfU z%}mU}-&mNXSb^18hmF{h9oUV1IfSD*i8Hx?%ejtQxrc{&iWhl<_xX%(_?bbD1p0(# zB*tU{CTBWkWo{N=F_vXz)?|G)WgB*8PY&R4j^k9$;bN}hM(*H#9^+YF;cY(ROTOnf z20t3;6pm3Dhl!br8JV4VS%@WBo>f_!4cUV2*_C}bn4>t6GdQ2ixRzVEn}>Lk7kHib z_>`~ti9Z?YSfEox#$bFVV_IfmF6L)ZmSH8_m3w%Yr+AS!c%RSshMyVabf8aYMq*4RU~;BoR_0~_ z7GqgfW=+;-Q?_Ae_T&H#=QvK~94_W6ZsZQ`=P{n;72f6}zT|s;WAHP9PT?4pahRB? zn336;mxWl8PUb8w&1P)Nf7puyIfCOkjdQt# ztGS6gd4R`xj#qhykNGb@@H<0X40H<5XpGAwOwCNp!QWVzrC5R0Sci?+k{#HMeK~}q zIf*m5fXlg#Te*jad5RZ#gZKH2Z}^!(E(Q98W+cXB0w!lVW@T;`U@?|uW!7YUHf0-j zW={^_aE{|t&f#LN;zsV^ejejlUg2#%;!D2gHwM2P=oF4o8Hb6PiW!-md0B`hS)Nr{ zn+@55?b(%mIGCe2kux}-%eaPnzfM8;rzCSzJ=VJ_xp zQI=sP)?ht0VQY3`5BBFUj^z~2<|3}-25#p*9_1Nc<}E(t3%=u52D=*Q6P8gJn~9i` z8JLZESdb-Hj#XHT4cMIR*oD10h$A_H(>aezxrUp$iwAjv=Xs5H`Gl|dkv|ynTA)(| zMrS-GWg2E?PUd3~mS#m(XI(aCD|Tde_Tx~F;bhL@LayL?ZsT4a;b~stO+MgrzU3DN zy&mWjhLIVI37LZF`3ryL?<~$g_$UA3-)zRV{D-|bkRv#r(>Rw)xSE@|lLvU5=XjNO z_?Z9l1HUuGjX78{MPv-dXELT`7Up7p7G)V$Vhz?~6Sih2 z_F#Vw<5*7NY%bzTZs2zA<58aBW!~aLzTi84Ww1MeK4BS!v6+Y|nSt4uhXq-JM=43t= zVQE%mb=GBLwqi$iXFm?*7*6IaF60WX=Qi%;5uWBH-sA&5=UaYZ(0hSCVHlaQn2;%$ zp1<%{{?6k3gMacb{>^4=%YWF5137}@IgN9Lj$65hhk1$@d4u=)jBogv zK^_G9gk~hhWCA8$CSzh67 zKH^Kh=Qjp_80Zv^Q5lDcnTi>ioq1V^C0U+TS(^>ng6-LreK?q-IFU0rpUb$GTezEt zc#;=*o%i^Zulb2T8R}7>Q$)sKd?sUBW??SoXHk}6CDvd)HeqXaVh{G`FplLE&gLSn zn&t@=2gm1V(2(CS@9CW=`f~5te2}R%cx{W-E4N zclP5@j^Sj^;zF+AdT!%h9^q+T;!Qr_bH3#l27Man6NZr)iwT*6>G=zPw)}^^IFKVap3^v&OSqbwxRVEXoacCzclen9@&ms!#Ir!B@QlW|Ov2R6#2oyM zg;|OfSdDeqh%MQH-Po5yIGU3$sJBc$lYnkvDjs&-jL)8RU7OPiRJBOeSD* zrejv-W&svsSypCE)@M_;VQ2Q_01oFkPURdf<|=OF4({hMp5+zZ<|Dr3dwyf^7lBUU z7?p9Dn5meN*_oGxSd!&gm9^QBE!du2*@uHUiW515^SO*`xrMuVh$nf0*Ljam`I?{j zlc8P)Iz?m*#%D67WftaQeimgJR$>j-V-vP!C-z`}4&zu(;cPDAN^anG?&DFO;bq?9 zL%!fUer2$K1AW3W3S%=7Q!)dyF%Ju}1k14sYq0^FvmLvzHwSSfCvZCFaVghuGk5VI zPw+gi@h+e66+iL^L%s@hioocM$D~Zd%*@GrEW*;P$m*=i#%#ro?9P51$}ybGSzO2! zT+eOX%OgC^OT5Vke9pK0!l17MeZnv@V=*C9Fg<_aul$|G`3L{xU;LZR*p~mW7YA|# z$8#FzatT*+6L<0ekMkU_@(v&KUw+_shIkX`6rRx-mr0nKnV5sWu`o-q0;{nO8?hxj zup9ew2uE`gXL13Ta~-#G4-fMcFY*TO^BLdpGlRSh^a;&KjL8H{&UDPm+$_LiEX&HQ z$@*-{Htfuv9Khim$Elpd#azXW+`;`k#%+I1M!%D2ddTheh?8F}I&tV+PDV)tkT*(dG&V4+}GrY`Oe8?Ak$FB_bAq3$097vimcAMY|K{d$nNaNp&Y}>oW+G)!S&q6y*$Fxyu_P) zz~_9+FAVxA&?gKdGZqsv1=I5v{>tB3oPY37{>8u9jBWW3dvPE~a6G4RE|+jMH*qHq z@Ho%$D(~%PT?7iahZgvnTa|08w;}(E3g{tun}9b1G}*=hj26}aV8gV zIoEM3_wX=J@gi^VKA-UoKQqXeK%dZz#F$LLv(kOv^0H#r!PFGOWZJ ztj8v7%}(sW{v5`!oWj{$#FgB@?cB$sJj2Vp#fN;scl^p=-vfQZG74ie5mPb)voQ|~ zvINVq3Tv?eo3kCeur~*BBqwk>=W!|5a5H!DAW!f-ukkLQ@D)Gu2Sfe{bc(>}jK`!* z!_3Udd@RD!tjOxD%f@WQj_l5U9Lh1A%voH>6Ga}#&+0FUz=uksEb^Iv}8 zcZLWOG)S=AL4t&5G{$8Tre-GQ;BPFXK?8k4GZJGm0h2Qwvobdeuo%m-GHbFvo3af%vnK~|ILC1+=WsDs zaU*wdKacS&ukbb>@g?8$8-oW6bPC6)jKjoC#f;3(ye!0$EYGT}&4z5j_Uy_&9L!Oi z$Qhi^Wn9ZG+|5Hg$qT&Bdwj~*{KTIO6+F->B4aQf;2gM|q63Ck#q%|uMe49vznEXWcp$11GF z25ioD?84q0#F3o9>72)%}Jce1zgT`+{!&X%u~F`8@$hFe8bNS z5+=|mG$S!46EHc`F)MSk0E@9KE3+o+vnkuKGkbCXhjSdKat;@B6*qDR_wyLf@(OSB z5nu8>zcF~&K&Nnw$~a8SRLsci%*#S7$?~kq+HA-cY|pOj!@(TIiJZatT*kHB!reT? zlf1y|yvL_}%}@NvP~ifdA~FW!Ga1t|3v)3)i?R$Wu?Fk030t!hd$2!;aV)2BHWzUv zH*h=m@hH#mGH>xAU+^8jGFbRPpRkO=*i6Kf%)o5S!-6cqa;(ByY{2Gh$1d#6K^(~m zoX&Y%$~D}~T|CGWJkM*q%O`xrkNm-q5dxheFgoKgDbp}Bb21-`urw>OI_t7ATd^a% zvmb|Y3@39I7jgyHa~t>a2v748Z}I`3^DVzHXv9FDFpSJtOvn^W&tLc}e`j(2!9V#I z|7J6`7udDI#MqK9eymvoII)vnb235^Jy?o3J%Iu?PEe7{_u7XLAu(as#(>ACK}3FY^{3 z@&(`VD}zM~^a;x-jLk$$$qdZKJS@l(EXOLW#RhE7cI?959K?~F!0DXFrCh_!+{J@D z!SlSvyL`e|{Ky{+89mS`0;4k?lQIo6Gbi)02urgftFtZ}vlTnCJNt1cLj|$V#Tbmw zWK7E}%*FgH$}+6P8mz}A49W0}%GgZEzsDv1=YPja|L1?laQ^3i+m-+G zzvbQk`QLQ-fByHk;eY=3G5^oFOw5!_&#cVFd@RgTtiWol!$xe$4(!Ih9Kz9@#F<>c z#f!Yb`+UYX{LCQ1^kO8&WCA8$CSzh67KH^Kh=Qjoq9_SQ~Q5lDcnTi>ioq1V^C0U+TS(^>ng6-Lr zeK?q-IFU0rpUb$GTezEtc#;=*o%i^Zulb2T87f4eQ$)sKd?sUBW??SoXHk}6CDvd) zHeqXaVh{G`FplLE&gLSn_m3w%Y zr+AS!c%RSshMyTEY@knQMq*4RU~;BoR_0~_7GqgfW=+;-Q?_Ae_T&H#=QvK~94_W6 zZsZQ`=P{n;72f6}zT|s;WAJc+PT?4pahRB?n336;mxWl8%P5S^L`=yH%*H${$Pz5a zDy+o@Y|eJH*A#R{y(I&8$2?7(j9%OM=iNu0?AT+Vge$~`>HQ@qFpW@8=}WC@mI71m+{HfK9_ zVQ&uNNKW8%&f`+9;b!jQL7w1wUgKRp;VXXR4~G120sepUe@16KCS@9CW=`f~5te2} zR%cx{W-E4NclP5@j^Sj^;zF+AdT!%h9^q+T;!Qr_bH3#l28|i$6NZr)iwT*6>G=zP zw)}^^IFKVap3^v&OSqbwxRVEXoacCzclen9@&ms!M65uk@QlW| zOv2R6#2oyMg;|OfSdDeqh%MQH-Po5yIGU3$sJBc$lYnkvDjs&-jL)8RWl> zrvLk$g=QqiWCA8$CSzh67 zKH^Kh=QjqA6X+Cioq1V^C0U+TS(^>ng6-LreK?q-IFU0rpUb$GTezEt zc#;=*o%i^Zulb2T87gj|Q$)sKd?sUBW??SoXHk}6CDvd)HeqXaVh{G`FplLE&gLSn zn&t^1qGu|Be5Q&Uj49G|bGL%*P@u&5Eqfx@^o= z?8xry$Dtg<$(+T7T*39+#=Shk)4ar+e8A^?%P$O?AkZfaBQq8gG6mD~7yioMS)70H zPyWTf*^F)Z4|{PSM{qo+aW0o|H8*i55AZn8@hb1|G5_TUerJgP4p98x_b5E0F)ouZ zH8U{>e`8^mVg*)X9X4W1c3?O5LFZrI| z7(8*HQ#eLt942NeW@L8eWg(Vic~)g@He?I7XIJ*&V2it=Wk^*q_5VmQy&Ji@1^-xSjiW zlxKLExA>4R_>Ny0ENP%mSVm!NCSpovU^eDqL6%@SR$(nRU~{%(7xv~Lj^qSR=R7Xu z8gAw;9^?t0=QZBt6Tad{{$R*tfld(^o$;8IX_%QgnU6(SniW}{b=jD$*pc1Yk3%_z zlR1kExq|DtjeB{7r+JAt`GC*)mR}e&d7w`iMrJG~WD2I|FZ`9ivpE0YpZtq|vl-j+ zANJxvj^KDs<6JJ`YHs3A9^i4F<5k|_WB$tz{LT<50-eG$8sjnvQ!^8D@HZA_DOO-L z)?p*IWCwO*Uk>4DPU1{1;Bv0xR_@_pp5jH`;C(*h8-8Yxlz~2>8Hq8OfXSJTS(%#! zSd3*^nKfCTP1%N>*^>h}oZ~o^bGVqRxRE=!pT~HXS9qI`_>%AWjloj|I)!6Y#$jTn zVn$|XUKV0WmSmJwD}Ye&SDtN*(AF zkueyb$(WW|n2Y&Ylx0|nHCT^L*qWW#gZ(*-V>yMhxri&df!n!{M|p;qd5aJEg75g1 z!O{f!gk==QW+J9!24-U(7Gw#QV-?n712$(nc42Q0;z&;5bk5^auHk0x;z6F^d0yjP zKH)2Vi`iH=D67|6wl<mSP1~V;wePOLky4_T>*^fgxhLbsq3%P>pxs7{ygr|9lH~E0i`IcW8 zG;5$w7)E9+CS(ex=l^T(PT*`R{|Anru|&2pw(NVh7-N}|eeBDOEF(h3Y{oE~nTxSx zCu@k1osgXn5kiE>8X-ayA!JwN|9#H+JUUICTfct)UcY|7*L_}dUhjME`QGn&&U4P3 zd(OFMsfaIPZET3mur+qTaO{fRF&PKoa2$)1a5~Pz#kdOB;}+bB`|t>!#B+EFuj5^O zglQ^T?UWI-VIC}uCD9lCu{zepCfEYoVhDD|Sae}u9E>AzJWjz`xB!>o8r+E6a5o;n zV|W@b;1#@y574M&wNEO{j5}~I9>x=R7BAv8yn_!hb!DraGN2FU#zI&E%VA}#hIOzpHpe#D5hF1MldumC z!Vx$QC*w?eGJ4_ znAYI`8GTSrKQMpilb<0><#2?lY?hcx^-QZ_9c+xvu?=>_NQ}WG?1O`F1dhYWI1}gN zQe2H2a4YV@{dg2l;d#7_Kj3|QjB>j)b9(jl&pGJNhefe8`k}t=xhDPfF%Vl}I}F7x z7>_;iH5`hg(P=))={9D)<>yILIgD#6yS=8ed0;AwgXy20pHC5=8FQfgoNnfk!|JAb zJn}Vb_P>BNu|5W3D{P0M*ahRUC%%S5aWuY(Z{r+%7gyl>xCuYTPw@~Q$20gXevh~D zCzRWLn$s({{W6u?f0#al1yNrwUzYw#SQP`X5x#^k4}>0D~|X+hZ6;V*>WV{x}TB;6$8;b8!)_#C5nCci>(; zj3@9cUc_s72OnZ;`C?P;lmUG(Hx|MYSPm;=HLQb;u{pNEju?qCn1p?B5RSlcI2mW+ zd|ZmFaRY9}UAP~Q;we0jm+=R@kB{-GbXGfM#vGUri(+Z?!xyk7*2h3>h3zmDyI?%_ z#Mf{rj>b3fZJdMe;tG5pH{r+lDIUV(cm}`4@9{SNgsIY7?ejEd#b>Y}K8t0s5>~|k zY=kf2%lIlrU^h&}-Z&6n$2agToPqD)5_}Ioz>n|~{0u+GFY#;q4sYN+{29|eZM9P- z%#L}n2$sU~_&nCYde{_O;w#t*qc9G8U_Ts!qi_OF#o4$Jm*ZOe5VzwVJcwW5SNIKH z#as9zdS$TMCp~&&E-Zk>@j0xBFJf(Mh|RDycEE7#irq082jFlVi<59V&cnsH3fJQn z+==_}2%f}qcnPoLU3`RTGFt7F5wl?)EQ}@57yYq1*2N~+0^4E;cE(tAVP71KBXK-V z!CANfm*E=Rh}&>C9>8OG8ZY1#yonFc$YixoI?RGOF+Uc=GFSntU@dHbK^TnfF$|+I z0efM89EM|XB2L4(xCmF`I^2vqa4#Ol6L=Oc;x)X34>7gu(3;=>=!3bj5SGAlSQ)Ef z9c+xvu?=>_NQ}WG?1O`F1dhYWI1}gNQe2H2a4YV@{dg2l;d#7_Kj3|Qj8A2;+9@;U zzX!GicKmc>d~6$7vlzJxF1s~CaZFcEv>KztqFz_)M)zJp8fJ^TPa z!cXus{2af;ukky)f%oudOqph3jz(?!tYjZfo(AaJ7X-murChAkvJZw;4EB#%Ww^D#BI1658yF8jTi6=-oyuJWVhNU z9cICtm>-K_8LWU+uogDJAPmO#7>3c9fW5Fk4#P1x5vSo?T!bre9d5=QxEBxO2|SAz z@fzO2hnQLpWSigr=!3aY4ilKeWplw)K4zL1i(n}%kI!QbtcOjpCBA~4FbdiYJY0;ca6N9powyH=;7L4(m+(5?#YdQi7g$r;QuECAC4R_-KJcg(70$#zJ_y7%#>!!mj zm=p73F)V`>unN|~1{j3F*dD_$8WXS=_Qzp31}EY)oQsQaC9cEGxC8g%VLX9n@giQs zJNOV&b9^@g`e1G>ge9;XR>o>r2ODE^Y=a#!5@Rq4``{oPf#Yy8&cyk+6j$R0+={z! zKOV(Xcpfj~4|pFR<5L{p&5SuP9~Q;Z=!b&2ewW>7Q`y`w{j0yL2JrcY7=*1*um3~n zkHl`+9ebhv{c{NYBXJzQh0}2^zKbi+^E;?DU;pTL(Es)2L2nr)&r7_0@mNcARH_-dcYC zXn$T#M=-a?~IZR{vubzkacP}5!s8?(3fZ^B`_4a)-{R40~j>So+x9jK8zZh5H zdfb9~`)wcnNAM(`!%KJ_@8Tm&!*Ps^m<{t_VJwNh=#SO0E_$8=WG%NTp9A!FFPH!6 z{m;L;zoCyyo@RNxfLHJ)K0t%zEFEUSoR}YrVHvD|Rj?K|z#t69_85lIn1H>oKMun& zI1#7eTwH`JaUE{P9k>?{;|V;A7x5b2!H1Zd<8K+z2XkW~EP>^)GFHPn*ch8*8|;XY z7=uaJ2M6H@9EX!}CeFvDxEeR$R@{aA@hG0c^LQD5!29?ZpW^siX3T;4uqc*BKYRge zVtow6R@e?hu?xmyPkarB;%Iym-^MxkF0R1$aT9)wpW-1rj%V;&{2p)PPne41Zck%Y zdBU6Cyc^4?1BAo2#&%DI2C8(LR^k( z@k88>d+;EBfnVV_colEqkLbnurs>feb7282j?ZC5d=YD7Lu`hvu>*!|?&NoemSuiK&$6{CpD_|9@ zg$*zWgRwn^VKgRSFYJ%Qa12hwX*d@b;YwVGn{fy3#lv_4&*DYAhIjBGrsllU4CsTo zu@IKPa#$IwVI6FY&9M!3#7K<6B4Ts`rd=uZsIruKF!1r+zevF^u zAv}&}@LT*IZ{tsxN)EKB@3p5fD?Wn-@mVa3m9Q!XU?Y49U&dE40=r=%_QrwuI=+E# z;S78Sm*9K&0e*y^;Ai+beu-b>cX$Ku;m?>>4xpRg|Ck-~Vi7EbJL1R>!*71Y2NR48hJAi!SVogK;E|$0;}q7vM5ngBx)h?#2Un3{T?) zyn;9J0UDfdnhvvIPRx(RunbnfDp(5}U=Rjldkn*9Ou$~)ABW)>oQTtKE-u2AxDGet z4%~}}@dTd5i+Bz1;6qH!d8ZlB2XkW~EP>^)GFHPn*ch8*8|;XY7=uaJ2M6H@9EX!} zCeFvDxEeR$R@{aA@hG0c^LQD5!29?ZpOOHo@k=F6F$HTY-GD^B@4|9L+D9bU&f_!D~W zzhx~y|LXm>^l~VN-^}ID^SxxXgXj7-s~tSow^{ArxxUS6hrj#!HqUW2tDV1ReSF*D zdrq&n|68^nMll@|a4OEmg{Ze1*3$nWZpS@%5cT%L|M&IE|84C%lJ*#fp6dXu|0B=+ zP_1_G+z-`ihkyG0Q1yDpvpsIjuUo9oJlo?|dw90Tt#iNBySM`1$4&S#eu{_iIG(|8@q4_D zKVd4)TYeg|;xkwfpT)9R39DiNHo}+iWqcJQup1^~ZyboP;~V%E&cJtY3BHFP;79lg zeukgpm-sb)hd1yZ{)}lke>oFo$GlhsOJR9@9&2DdY>F-M73_pj7>7Nu9}dA$I02{P zY+Q)TaV>s`+i?#b#4qqG{06V$E&LI^IBz*UdSfmufW`4StcWjSZET3mur+qTaO{fR zF&PKoa2$)1a5~Pz#kdOB;}+bB`|t>!#B+EFuj5^OglRZ$IU{DnJXjb@qA&Vmb*zg` zum!fo5bTVx=)%4@7)RoGoPx7(0WQNexDmJEZajd;@HAe)D|izhpuu^|=`aiC#Qazc z%U}hpg0-*#24OI^$1se>1nhu@vfz`b}FPvBX+h}ZBAKE%|V zx10feFgF&$5?Br^V>PUUjj=hl!HyV-F_?sXa1f5baX1-g;(T0+t8oKv#a*}`kD`2S zncvIOYx-AzpR3O2>tYjZfo(AaJ7X-murChAkvJZw;4EB#%TWIgw~_vBxEl}PG4xz# zYt47hb+%SJc&@Xx+QD<3tq)-`!8C#&&-IHpC!oh5zdPYWwrKVK@dS;xwF#|Mcnk zckjQe&u`HCW1jOOt^cRDxF69U-H+GvTvDsO{!`B-U8#=4%0H=j{8e7(Q^yoOZgl5>hR;z-`xw4Sy<=UWVWKP1vWtG@icEGHz7e6WP{TJYDar6n zjEwPBZ~8V02n=c2s&W<2S&z4xw?e3 zijI2lSl`B3WC_W-m)v|R$tN0#?;gNOY<2px2{kEp{<3ht?BK0SJJG@?W(ys%4 zZ-iD7HOXqUj!AwA_`M`DIaZSdcae$g5+4)cFm;hGt9kz*u4QC+WOUES;P}Q7F;b`B z8|AM;LK+AEnW%a}0l%HVhN@2Wdq&2&f_o?E2Kd#oqUW8S4^OJ2=UJqySy(+;7=z=P z<5HP;wRHN%^@xp340XjP`c`=IUPNSEd~9@_`L3T;?TE;*9#J9Dah>C3sWxAShJ__Y z_OuTTO$?2Tiey>0f)eARVxp5=zj`k=G(1tVs5)9fG0|}{Rn}|y|1o^S<6~oGYV9$d z6GLMqD4=DKZ>Yo~Q(bBYVJ#YMV_Q^%%tK6PB$DW4jbj*D^=ry4=Wb#W8d&lVT$CQhx(b-u1{ z;wIVRy19v)V~dM%6SvG37wabO16y32o46gexOg{l2W@exEuH4aDO+53H*uG2afxo? zZrkFL+{CHxNIgGXZsIc8;(EA=%WaG6=_XEnC+qR{auergi%WJBSKSuZ+f7^}TU;ME zaq3>7x_;_+9H;r#$rh*n2b|(!Y;kIT#3?S>7N_>ZoZ^Ps;s&^h8*hsn=q65W>*(nn za#<|gjAEpE7*IJNDj$NRdQxEr=OweE77 z9}jJDBi+QQZA3lZQEuXL*y2Xp;$(AF{mUA1>WNv@GpOuE_ZE>iRh)b+nI&bM8m5YD zeyZE<{b8J+#H1YWVR=s%J>IhNhHSDMwHc79j<-=*UaRlHa?+{xQ{!tWojsp=wp0#z zPZym}eK*hHz9 zoFXo3TEkH5WnFZ>mJ(;LU!ZMzt4Oe}U(XczhD$#6J*11yr=Hm+e@~Xv`x2+tkGkl% zDJjMqY#VPi3D)ENI7L2}`~&=6zK>Gm>tM@Q!?pRTK;s=`Ff>@Q|H7q&_SY(Q}=YX=bIsMGi-5cI#hXE;_TBq z)Yg7#9iXRoGx>D>Dzcxi{@--b`3|LstL+e{o>`~rr;EBb;b}QGpo<=MQR3|Nn>&iAzZ|LfOk*gZL3V4rV#SXzm*k9SNHZ)2*&tL3Vh zbb7q%8G8CN^0qO%pkb)*dtLOf+$r)EZ|ZG~mmrm|xpX?8y2rKtjLK0^j$f$f9qOWA zmQ9gwt>jbRttwwj>3)-sw#Zk+Fw}i0b@@#`;>O5L*%IWwZz^A~bWZthJ!cr9I*G*T zmrv?PzK3#Cx2-Zz<$KvpzTk3lctwWm;*@WbJhWM@_f)>N(mB;{u;eSHlZj6GZc9Et z8LslRlg=sM63JIohU?;#uXsmqbG#~F2kD&h?UQ_O=wzZ(zCg)0M~16>9i?;1*G?Kw zod>0hQ@*Q`uag9+d`hQ$OC?`wokZgF%arpsFhtr<2C95vZt|@tZx~%=xGqll`gQU) zk1MKt5z;x;FSpFJGdhXH>6a<%mnKx^hb)UKpZXql%6G4VVdR(Lx;W)48~)37Qx^$# z%9mX>M*ht55-9o9a;oa5+Q%uMzvTN#hU?-~KbPdw^CL!ro$~orlH(#-bvEbrn=cPX zSI=)&^^0?pFQBer6w;NFIQ=r^{CL}_1C>Sg9j zbd&FT8!sbPhU=m;r>tM_nyf~$1gZMDq;qP&4sE@Rw*ESsbN%*7K0n#OQTgrKDfKOj*B&H?kVLWuVHZ>giO!dgHvz^^b&@#VOy8n_12Ipz`Vc z?%%859LZN82gwAde3j)P?Dun7^;6q{PW9XTj+fyt+n%~OeH`q-+zva?? zYGf3re3f(h7^@^sI19}IVs@AzsjL;i)I6sLTf z^7$BzBudq9gmg~z%eThMsPQM-FHL?QV=D7wl$(5Q-}f@4shhGbaBczBT(i?W~+W`zso6~x7=K)zZyt!%2&Ldv>)rgSrY4% zZ|wJ8#zfgy*2O7bV2F<~ko~AR66}<(@NF++p-v_`<=fZU$2cg%)%=(zom0L~B%eA) zq>EF&8BspQ9Enr;=1ZsZ1;~5)Gb+cvdtOFCX=h#Zuo@C)-+!y#O_pZ~Qu);M=zQu~ z=IS$k(y4M;4l>*+{7XVLOm%Hj#GQH8+o-2LK+$oLDe70egzWd&{(seYRZ-6*ve$2) z)UU84QT1CQovvS^#K~WR`iv?UN_m^dqpZGP+Cq)rHX0*$X>a3(9LQWD@2{6m<;yCa i8mHuYQqn)~ZKRPnT~r=b)GF2mZF literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.su b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.su new file mode 100644 index 0000000..4c983b9 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.su @@ -0,0 +1,18 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:166:19:HAL_RS485Ex_Init 32 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:274:13:HAL_UARTEx_WakeupCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:289:13:HAL_UARTEx_RxFifoFullCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:304:13:HAL_UARTEx_TxFifoEmptyCallback 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:389:19:HAL_MultiProcessorEx_AddressLength_Set 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:427:19:HAL_UARTEx_StopModeWakeUpSourceConfig 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:482:19:HAL_UARTEx_EnableStopMode 40 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:501:19:HAL_UARTEx_DisableStopMode 40 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:520:19:HAL_UARTEx_EnableFifoMode 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:561:19:HAL_UARTEx_DisableFifoMode 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:607:19:HAL_UARTEx_SetTxFifoThreshold 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:656:19:HAL_UARTEx_SetRxFifoThreshold 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:713:19:HAL_UARTEx_ReceiveToIdle 40 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:836:19:HAL_UARTEx_ReceiveToIdle_IT 56 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:893:19:HAL_UARTEx_ReceiveToIdle_DMA 56 static,ignoring_inline_asm +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:961:29:HAL_UARTEx_GetRxEventType 16 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:985:13:UARTEx_Wakeup_AddressConfig 24 static +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c:1003:13:UARTEx_SetNbDataToProcess 24 static diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.cyclo new file mode 100644 index 0000000..e69de29 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.d new file mode 100644 index 0000000..362fb5b --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.d @@ -0,0 +1,2 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o new file mode 100644 index 0000000000000000000000000000000000000000..c62664043c9249e57b8eeb4f41a0b9b64ca9a97a GIT binary patch literal 20172 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

        Eph>n7$8FqOYX0 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 z®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 yPKehY3~sby9I ze22tC;r)5MsV>}XlF)Za`CP(amzp(wLhkW>_EMSKLg>T9VWP-wH|5&4L;TknIo%%0S ziM~;T+G*VH$x?2rq*co|IOOWe5vQB>r@H`dS*KgOSw47VL7@1D3x<1-d2&+9i&%RN%AV3u-sAPBX^BT% ze_!+Zv&rwEziGe=zNyP5R)wN={3^ajSxGYwC}SZxUTi~39SraU*YCC7C%)1btL5`> zQeKrPDmoSsMFYtLK^oNku}_El&F8wcHnJm$dnekpeu+0+oBW@$JPo=$VTsa5(I$;+ zdH(vjZaeHceBSlM;Yf7JbR*Up3g&xgLeYQO$TY4eEg=+Uf!Ird--6v$uH0(SD92znK^nU^_(^6 zO#b_(&~bU8YvXNR8}>;46K!b6w$jhT9lzLB`U|g;UC3_)r~lJ%l{;LOH;1cyyUg_8 z#PrY40R%ip69$4-oyFI}t-r&yetWp}U(tFEVOlsO2&!c__lb~RR8f3eoHDaGD~)Cn z6hK@j9}ai&N!Q6wZ*rh)XU)vClV-n@V}2*cikWpZZ-_SU$F9oX-*lhFq&E5e3=wRC&LFU-FZFt})A*UI`U$T$ zoBR=~R;6Wq^tXk>=X<@{GQV_HKNPO|uv-}L7LOW_vdlA~qz8?lv)N^)|0JJK=wF zRljj#2q*o8RE79Q{g;+Uz_|{DeAuF&tRWG%{B#zDbRt#>EkJ)LitHl7ef13?F#mxY&1d8d zGoeH6_Pn<;KnT3bn}E&xp{w%gaFzFA=umR3@9?VHx&PEv{iIjbCVyCb4E4@($C>~q z_P!z&;=EqNVJ&Kxo1Lgk74{vme@2k5YH&AM>ShK0j%x2m<*%sXusj&9PU^7-U2s*xY z?pMMm+=HHcp}KA^Bp53`1o~M6fFD;PYrC0OZ+QF--vFNVA=nd45d0D0pF~@KfoM~) z6P1UF;lKe0?Z3_dkZU6;UNuwhMg&luZYFO^m2m;Jfoa8bt+VuA#EO$)WywaJ@Hc5%*3;? ztVo;-NG0}y5E8ZWZ5Rxepui#yJ@G8((R&2 zo>Ffv+%4X^i!U?NE;H4~>=-R7zxR5;yEyJ|x^e&G^`UXU-A0bHjKN!^ig2HHs^6My z579qd|G{8Oe>qtXQCgSbP2np4>Z*L@dUuFyOYg)#8io$vU;VvVtG@PncVumue{)qo z7q0qlsv<#Je2qzEOqP{mpA!rBnKg+ctR0TZmztVmCb`8-%b2Pg%(7Kx1CcV3e4wVr zc-g(`c$xP2z2mM&$G1(f^LvfgqfP$4ouA$P$Bw%tv3Ym7DzB7P6s&5Kf5adO%78mE zK&MG|ivJw$@U5=)i^3iL7qu6s&15EU(9F6(T!A$BAv!yIoJ<3jHb~Wog{`s=-~pHg zthq;kJ1#{0fRO�veVH|6s3fi%Sn5QM2A_uv-ecqf0ZSS0x^LuE5}*lU$Yf@`Sp? zN-`2W)>e^No}8EnNdRu1QzHJlqcrJFrAhaPl5Wa_mp&3oQt8^~N|T6&9aUfdD3o-E zwDp@g6-SC5*V@)QuvEd0OjrjPn7bqQ=?5hjE>%$-_@heRG4nO~W-bClY)|IiDxWny zh(j6;;*jv2{I5?!8@Gwwi*AZ%MWEpa^|I?#IQ~D^g)X}nOtWzOmq$aF-9O-6PaG5? zK$Qr9UpHzOkA=Iq%XRU}a2G!+-^Kmfg{e3d*@O4Tb?s5wU+@a)ufUXNGIXWLs{?TdH1A&WrekFhNPoK=n6HpN z_X@K#u>?`41|;ZDN?hP8HMT{f{w-$8d(31Ff5c72MVi?B(7Wug_&jG)Qtaa@_0#BQ zm3}7lQ>7^?5S}{mf>}~>nxYG>pECpi=1IYY zw&1y%yhuM6>*oUfoG%5>lY+@f`=sk-n!Hp$m+R;G`nd#pjnF)T9}qoGI<1ktiRf7` zrd$%`+kQ@3CN`21-gAZ7+$&P)McYlfS3+oDSGK-I7!!@veZEi==MR`!6F1Bfdozd5 z5o#i`pT5P+-yxI;m->uJFPHX;y+nEpbciA3jGxPkna+@QHqqeduEorOrr|~)DitKg z7Gnm+-s*C5UaOh$-9W3!9;Zn_?7O&~=z8!c!a>#-gEnv34a~d)BcrN*7h|aEf$@K# z`TLdDZ+*~JuDHL5F>bw-K7K(TbNa+@l-0!G?L6X_zzaehvy~P1S-HE#1OI!(Ax10s zyJec3~T}IFlIK6q-Xl4%UFjG5sRHrgv6AcMlf2LJCl_^b?U0cFQU%CszA|h zvB?s{79;CvoK{HMRKHn_voQhzY-yo{Nou{Km^3w!uQTakbICE{i>HY!5)kmc=W_ag zoc`w>7Y#|mzJnnr>Wq{>b3k8c)dDx#FAuvFvz+MjXW5PWt0N&^?CV5`VJ5Rb1FtdxNu!@dG!w&m0b|(R*gC?T+AaTgSLyG(N;dfevvd(`m6wLA z{LEGPM7YXF=m+&E@Eg|t{FX(~My(k1W^d58qsLui?+G{dS=+zmkDeFq|F^EnyTesJ zNB?jv!2p84dIsm`rP$>K`v1>Ethg{+w*QyRwjh6RxUp{r`~TUY&?$MTtMZn^p;PiL z`Y(}K{MhTwZqX}T)i-**+2lv53jd0@5L6N*5R`EEOC~U1f=r1VYysY|0s&Sr_eF1H zww(uD^S6YX|6e;9i>p5u9?`p9mERr;0nPJf^9HoUM=-dY|j+uf?&u;wd!_)h&tMY|#l?QDV3#+dVSNVaf@|kdz_cA>Z8$=ab zFZIS~QNhn#?N4~MZSqH`J+Dbbo^l@7vrw?YaSQc2-d14e=529hd5YSA;S)U899R5f zw)pwz`9nIZ1xP4K3Tl{K67r^IlPHAt;o$;6{{z=E))PBIxe8H_+gzT>SOFUgW=D2I z#8uStObj&#Lad;sW7ch|=16qFmG0Tj_?JeR(f2OViAsY=TlA`s2C;nzG$W>lzRu|Eanxi-G&vYut(ub2OTP~ z+xo6~78RU&R)}o*zjGBLZI#c5tNgXA^1N`B-_DiOgP^PKT$Pq1XJDN*Qaz88VINX) zS&`V%9r=`u60x*yM0k`BhP(WN>+-t?L!*5Cyuc{$4_EoJtMX{L${Xj&C=oGEP25P7 z;ufK(VJ!Kyqb0&gnbH2hA1(BpK~jm?2*xgQaP2a^^k7JQ^D{SqPj~~c;+u~I$NVC1 z%r@`8T$P8yRX#Q^iDAkzGkw@JsDc1H90>24rQ)Cj5q|D=BP`p*#IuJ@i;PE(+k)nZ z^~4>#bx{rZ3<(oI{(n0V8vkqOTgZ5AcrgDK9RGI?IAF5le}k*?s&JJb7RL`QxUNN_ zdN2h(?JRIA3eMu%z$_L9X7K|#;~!uafs5_$y#d&Z?fq^5|8u~>iA_F@=?=Ff?qU)2 zz2%uS`4w51?#pFmu)D8D)Ln1ZAu#0&HbC%MOXX0*1V^F&vycz(58Z;1{fh z0-eTobBO=}8Zr5U+*+;P&>PUt8D`F+rl=Ue{;+*B`h3i2A?>~ULTKVM3+>+iV4tHU z?E<}eq3*3EX&&4cLPlS3Rld6~Bny8%vEnVOu$aKEDkze;p2KFEOwFR@yS>geE%7g| zrLTIO+vNLbX%^%SPpsfhT0A7L@M>ES__3?~_g-zA{C;Xr$JCLIsh#6|KpagyPkcz1 zBwj-N`n7hc^^GmDl>DCw&>g#tx-o7y=SeO?VEJR|#{bwG0_~SAvMYAC*R6$k<{}iG z{;(_keKb7*o4(h$dan!D`yTZwHn_7p*^{u(*)L~zIUt8RZ44ksFj*X^s`qiZdza?# zAJp#f7Qn*PPu&81a<5Y>+2ju|3V_;+ytTG@|K+MYv^NB5A6qm!sQu<@xB3>QZavrT z+WmVSoZI9t(^4F${nV>%Vd@T7`^{c$oBVBRmj$&K$AH>zMgg@?L6inS=5JiLzq#5C z+JYK$iGbQCyy4mcA93}55w7>=)C+;yqG{p{b~oM(XT8Dd8tYQ^_`v!9&W4peD1IpQ z*3qwH@AU_-+DlB?Cn2otS#Pkb_tqW0>UbTVDtoUxvggpTYp*?Yv~K^Ax_#GP zw@yQ|)}c%(61NYyper5YOQ(hceL4Hu=-4I5MG%eB(wR~|efz>9xT zJ&suQVer*<#sJ?z4^Q9iuduDHr(gpIkKzp`E-z0Thp;pC{0axn_1((OI)oikN3k+) zPiGy%t}C-LV|EBrLCxDFd@Rql#W{q*pT;|c@rcr-dn8f`T8c!=N22~#&wCcs=F37M zS6?AX_k@z(E=e)5T2K3)VB%EOd-|Se^E&Q#P>P6N#F+?%Xt5>^y{FB*yA4Kz7_%gv zWv25u7hIK);P;7@%j`A{kr3m9^%$)tdZeIdGojxt;r@DLodHSvcW<;L;1^6tAo1Xh za2eLWE38ZZ#Yk;GKiu{&UE3cDxBYOrwx2KZ{~f_`>p~!NL^MF~9dV!$u_DjXlm^ZH zux!MGV`%|DHZ>TCOt0=58u%A!;F;xza8J0hZ$bQ5Quz*vLV5<36%;;0<&j*?;I4ls z-e%aQPHiOy4W3avtkWk9=aL4q2)ij>!Qmk}H920hS%hQ4aHw%)ZJ)>|;n^-u3af<- zWiBQGXwi|Ib&K?G3Qysmc5kxGxtGwTQ$CN-FavSA2mc|90?O^f(<@x}zlx~f5Px>afTS15l2Y{b`} zYXSe;6GQTwH)HEn(?Qc)Oo=z(|I%&s$ufPy++(*O-gzhs1Ks|FfoZpvdAsvZZMXM$ z-P+_w=ynF(Zi(sk+0sd#5GqxKMR_+v7vbD{=W(tv48Vw$Y$ ziDbQ5UT=nwA>w?Olt@bc_oXeSBPoi`_4Q`=B_i}(+7nHw=v573SH95JktyUeZGDB_ z{*G*Iq4>Q}Se>k`ji$7;B>fs4UHP{5p6u%6O*c_8QZ-mG+h@zIp0IVGtH02nAIN4q za_(=s(0lZnWNpLA#-W~Mb8|Ab$iTHnS5L@gGKEa%)?6XKt3U#EhHQ%+h4!|5Hd))Y ztvx-E&25%$vqjIMpz&(&L(9YFxu^99P>L#d{d=p5?H40iSR!Sdw? z+Xl0>`l;B?edE}Lky|m{;WDt%)=X#4PA$8Y)(U+?z3tiD22jOu;$3Vi99s?c*|2&- zes>`3ZxbWb6s0~?CI8X zw9?vS*RGDOh3;ITJG(m>_^yab8qQ^R3}y3!g~6`gbRn~?DY^clp$P@~nc4uh68xi> zKUq+|S@3d6-UMBH=A0^Ids7V_l6S+5Wa_9oJLDSb>d6;!!<}87{SC>I6mNu~1xfo0 zLaQ?NjmhXLlorvJ^r~sk=W>PiTp`t9uO9b1)!;5G!R*{s+*cdj-6U66$HoZ)i(O>3 z?doXk%0?y_$)q_D6b-WNHN&O?GFtZ!q6Kl*?ob zLjxTgounpnB@b<#;1-=zQOM-`JDa>+@DrpLz$ib^l`e1{3m|#xPz0oyTqYFo0y3U(Rjb62iwFbkA!^?J>h^jW?c?e@9J69t;H9BLI*pbfq)EQ|~}BHdQx`-5Tu5ba!&N zYUM+5rTqe`l+BUsf~0Vcwq5G3%CaR!FVamTtKG&A?8+4ec6JmL{AJH_UHPuQt%YpI z)~q7It=XJIMWLb=xPqni%qrLetl7RI6$v3W*x%cgDYRvFusJ=+ChePBtq7&A3&D2V zx^6UA(@L6LoxC_&C|z2}zj$OsnOu{W zNHrD)+T`MCaQ}fj3We<8w%)ePz~F$+Dc_UL4#c4N5lUHPpWg*KOhKJ@rJ6iA4C4Dx zzK>M8G6VUHQnW&?d&8QL8)P$ja=je(j-h1emx83Ovv<9u?M?6h)DlDatl|w_Ne*0B zeh_R8;oZ~Tmg&xe0~8!Ox;pb&gunKW<3%=h@?VkU2$%7Po>jybz=7ItzOAcpGQ&d9 z$smv`oXSP4vtU&y|NfpKAwD)-nG7csHndMr@a@RtvW0={Mq6_uHG2jG%_`i=oiD>} zv{VtxWk(rPM2G3MD2ziYoeclf;mRnwxPrE4`|~;^?}z5<6)A`%r&LQWl`6PBk6EfOlF#!B*nAe8AJ>KoL% zLP0a#=wLIygKH$eW4(o~hD}BA_j44a*r>tY#`M;vg6ho*JF~gG(7(BiMJzO@7b@2h zC3AyCen5UHRCV@d3Vm&T9c*Eyu&a$3c4pfKhjbk*W$BlQ%hjW_y#o$mJ48sELT&M< z_R!O#tTnV51Z-PhA4ldQxpe_bm*poXS84;^Z(&f{@&YF|Sp*I=lgjo*Q}SDpE9f4z zb*7X8-iS;AEFNY7Qmlt1Z6QH+$>{X#+T{)A=<3=V8-!iR48k`=ibr$34e3Cv!nKt} z3?eutJLoP50keEbCeQ)scAz~W4dWm zYGZ2ex~BD=jcJMt-60cf8)#33XJ5NIS){WlvTn1K$pL?LTf3Kr#1b`-Wk56PvdPP7b8PQr4Ob+Q!Ijp$L=wH0OKPRgs8;%nYBiRv-X7q2{_Sg{f#8_K3zNB{@9OT=7eQp9|5B9UQ~jT(%AIEKHVv z4D-F&J~@Zp(Y3#oEtIc%-3x$P)QBt~l`nLrwszSuZz4x=ZchdY1|LyUGm@!jsH1&r zZ)QjlMdzg)QhwWuIzQNtNG61lM=tAQwR}(8&aB>|p!{~kPaTD=FvJ}e`_{@H=6gB6 z`QE%@giwOu1Vvwxx^?fd453f=T({TZUrpqg$X(Kw%TDNM%M_$3PHRX15EA#aU5Yd! zXr+^(GPeyC(y~QO_F55o*{14%mF$Cf;KJ=d79)FHi%5+<9_Rv7WOB5wf4sFQlD{P- zv_W0uE(9T69gZAyKlI#dZjnCB(PhfYPKt?=rq~zUqrxV|FpUf&ncg%cM4~K1W7;7! z=+CY`&_iD)TkCxhF0}X^s*f6JS=r9E{NSdfqe4i`_74q;>~ScY6dF`yS%UopXNerb z9j2~6_ydH30jvV;iGHAb$xzXVGN7>2VzW%fZC6S_m!%fENTI}AY{w&ovUHUdsoIT) zR&?7Y-QeY5NG({eia@_vi%9$pb*WB2ElCo zZcgb9Ov;f;u>AdAdTKrCdQ(}B8ivD-^KctNlpq3fdS$kAhaj$E~u z>n4*+-h>#KYI4PbmlRqv!jO{YaE6={`Ols@E$j;D272dCxUZ-PG@Pf!ea=zwitEBj za>999Ts2LyQo~w4C{T`MX>mDEnM^N4et)K^*QW=Z2s)ChHINJygxKrfnSq(b%hlyv+Z-Xr+Q-WEtg(QP;4o^LU<|e5%#{YEhn2X znA>`hf2RxWsd*F(?r@16<6|f))z%z3oFteuO!tS}Ga&ttbNpz90sq(QTP{ybvy+&C5kmXzw0q05Mxi z&f;VbD+ltmyg#Y+;hB4ra8OdNn43}?Eb2feU)b3>fV4(Pv|SK{Fj3iDo6z)yzJ91EiTo-R=MEMFwMo_4&$lNR#CJ39&^5#mG;pNA|$)JKs}iPAHnDxo?cwS7mgKAbsp z?N!(0_a54N)iFZ$Cp9esUqn{C@$6WT0N<9 z6shiZcX2pH=|zsL4^W5>DL9-EAu16u+ucVgSrGY4dv^xWivoKnp$P4LP{infdc!xC zTXG?glx`HkL$Y>V0dmPtX&Xiqu`Y=uNA{$@Q|?f`AGmY2=~<4XX{T~P@|+N%O1u?w zC?b^Qpwg38=Q_|sfK+4T)nYFK8fiLqprCRBx|W|0F|TEg|Bie zklO}uK|Qb%9&)kQPHDb&rO6&^nsQuE@wcve5It|`jAGAdu0Mm0&U{C2QD83IY+Cm= znjt1a=@OO92CE|pC}B3}Xk>8^LZ`GT6;QWrQsI!Uz1T+-K-{~PP!A``2~n!WT0!N8 z<%SzpiLBC}fduU-Nb#a=5C61dL8~VR24QN3CpJ^w9kE9Br z5Wtm<19sIB{}t(Ui!?+>%(uuOJxV=XM#n1rwMgoYA06a@oQ}QwlqgYL)73GY6d>n* z;A`guCEz+m1Ob3&Jvv4>KHY@knq6dfC6J)|BKiof+>G7nu0GMGavSbBcI>)?R~|pM zw@|39-E-)~o*Rzx4h@$sB}=F5 z0JYHqYGY+4#RUp~0ktO>*=6cD1^zno zDkQc_zFlqI*`Wbs!|jFs!L5>KQ;J2x1W%)8hybe71J{Q2j^IJr;TeTEeO3pX=!y7a zawiBgA!^p#aEbLzC`-p)lyDL(cs<&?pVFd@!} z&h4Ky7HLF#leb_18{v+bkNTpRD2xfQ9}rVqCtw1rI(0VMYpVoNr6%cM>42a}5)gU{ z-D^PyGdcYsty56H1NzobuVKS+NK;5^AvZDE;dnb^Cq+$#!Y*iB4kbj{1gsK}#~|%g zn=!DlnAfyn-?uZX6phHMg`!bh1^1xRW;h?AvgCVYqskW3X$Po_UP%1#7DY0(f|WB2 zY;D6Nu@A%J!p`1?q@TzzY$`JOEKGmj)~>z*M3r6r4SMbQlsx9jYFrpc9_fN}{iQ%S z+Gmv1-q6$=rnOVh+RoNT);$BCD1R@CGY!!L2pwxT3)W3gI8228R=X8XT^~vj6}(qV zOSK^(a0X;W8y6|!G6XQTdd-W0i(1Q!+@?h~oH>NUYI+cEIh0+}zQZkyK=?yikamDH z&xEHq7_~!E=`_?nHfv=xre#W~A|J>`L^9Zq1+2T5)c`!DG?3u1o&B5-pNoW9}?(=>!YIj=IhtXN`alHs3vKf1HpzZ33TSkpp^!zY+SAO}WfC#NiU zSX~mw)j~7^H_#!a5nz?1Xb-w-VuU7N(g?01C!;i90o9{%#H0b>lWR%rWNaT|2gq_o1yJKP)AQYIp92^{bsS`q7rF!$-$&wTuvYvBK49V7S^u%UDa>~HO$a2?EXOzDP zW$7#wKelz|&=Lrvus$SbEXmX=b|wM2bw5|MJy*W!(#g^a3B&Cwc>-2eIAOWc?a;@V%^|w?Ndc#!Ez=IScQ1*Ig5+*kRWFG_SPSCXxj1UYdaME*^WxpeUc%=)q_4*?TFKwvs3H7sIh zUH2k$t12cMZ}hOg$b>T2UI)W^F_p2iMTW-}3`@}I zre93Zb@%8R&txz1Tgxa_*(IJS*b6wZnEz8t6d6y@j<`03ycJ^1TC7^aErzF~kg8(O zV*L$tXNnwk=!%t57PEA-1Gfls-aI0$T$%%)D*!Cx*3A%W4Smlt~54r*HfOpTk0HaZaEJ)3u`nG1%4M~@g z-vuJENfY{ZBF^bJcy!N|hxT&CKnq1uEcMVYrl*jc!o~|#8>N^U zWKm)Y>Cz|>(+&aJ4u2G`7Ru7XFso?ooUSIVS|9(H6=NYxZ?g1ISnrXw>bmw0hS}cT z?zzW75!p*wRx^;Py(#G=0K$#$8UF_7?sioqL%!0OcG3-^RPML?>R(TSx0~EW7pkG| z6$s?SFpLW`-z9Rk+#niX+QO2?Q|pKcPHsp&>R`Mx*?is~RLB($?Md`pg-ljMDrt5G zB;)q4c&>Ce^-S{3$rIesElTL!$_0-(nYwar!_(T1Y$Jq_MeQnU_K7KxDizQvDLG{? z6s#uoKS0^;zxs_qx6!bbr}?$lBaNW8QegJG;$GAu(gF<#na&~twlEqQwoBWP9FHf$ z+GlGj0(Rj%olo@asE)+S&EtT;=ch3!SE?rj1!)Hbp+t`}904?RIr@u!a;Zius1={N z{*F{5+b%_{v3kftkb~{f^<_$kA(+SGVbvuf(t)0#Jonmw*axd4Qt`)151EK2&nsIP zXva$xi9}30Hc$Q6M{i~02(6Ge##V5!Ejt#^`F8ZNTr@%}7a_3-?unS@Vb!Zi)=V#z zo{&TGSzF6z!3pS-YgQ-arw~~l6Q1qsz$kcdrw52(#kyrE{W1!WAVQiI*;M010P?OFMKKLqCgDQ?+{{mGy?|kU%t72Ps$piV1CCCZD%- z1T3)o-RagYG)PCU+cD~0G>}7*g0?cBLd3SnBWujjE>}LA3|0{71OXgTouktG_HWwbTSw& zWKR_b$Hh&BbC-A%3>-XS!ATCG9`K=UI|^uHMI@Wr;ArH*;jE|&I)kRWih*+K!kQc8 zLehDw6k2$Bb@n6?c8YN&>}Zup!^1)Dm*hGFsg( z9U{O?X1!-D<9^8q9E9ay_HeSy?I`Y55Fu}{$s(wdWTyyWeXP@!3R!mz4Wt9DA+q*b z6Tp(qV0nsmV1paneeF;=JY48Lx7oI$l0jK!g0ip4`VbVr@vf#vBt`OlCjd0OcHKnV ztEy5Zw>@(lEK_|3Nx-0M5c4#+>A~yvT(!6T_)&-!*~b(T9N8mJmDY|bElfB?bM5Yl z_sbZ#POl>Wqt5KHf^$>0yIBxp+bVHJG{yNo#03V1mo?zbg`A%LB6YtkY-A-_fL z-lzG9M6k;hG#Nn3GN~qqmYrQ9BgBTLzdO_ESt=G&bVQ22eNEANZvh>yjppk52~pIJ zrCZc8SZS&CVx$;_dngSoj0V%}5lm7X8N*7EyA6U;j+$VA37|~T4MztLUUdy7LWnPvUewK2z;vsck1wK&D?`Ld1QH(Ik{F#0W9*>r z2x^0-ASIw6Wx@gn{GDwu4uM6?s}&UcGqMJSfnB}a64JJJr=@x^A-Ksl=dL-Dgfxtl zf=@3mxP)WGJ`V1vY(xuJLO0LZI;D?X9kg{y<1|>bb+XbYg<-k))so%xFnsDKss!Gnvdey3G3T! zp0*o0P67Rhw4x@&9q5TYtA7C|Icgnh5yl6~;9wjQ5p3yRiFa7mh6?ED-_>U~5L}4Z z-;!Urb(U9h(L`y!bF=^{wPPn_m&5+hSyM+mT*GoJFR>`NQiD4Y9}6P^8FA>^Bm3V(oH-B@V=i8{n9(~G({L^5^w zdXKhs?DVMH-h6v!mk=ItLJa@n<<>)S%9<4KTRp1UL(!Zq?aNSu{C_B42jMXz5D{_V z!i3G2TSBa>+0PkH~s*79z3Fi z3i2**NE81e=ew>p3jk>r@Rbr7MG^|hB6fj_&STQ9B<%(O|gJo3g0a* zXuyIcCPw}N7l6`C9gu(+oaL^LA+I}U4jjnPZtT^m%i=}xu#p11ZI3D7vaDX;VlMCE z!D5nTAr2i%V_{S=Kp2Ul1h7qLLXl68)aw|S2g(y8bs`VoVi zd8ZdKC>1_o)~aHYCw35U^(fO#x`5hP(V8u{$?;Ua-QXrg>7pEprJkCEYfz;fq%hhk zEMR&D(|t}NB^ci>tU!*KGk|NY12WUb(?LVv$Y=F zN8+AIYg=XZHr`GKLoT#T2xG)cT^y8>Y3I5Xu$t=YAKhrGuU}+^_KL}4=PmTGEIbe^ ze=KkpzZ1d{*+3^tEytr60-$IJX>n&X*I~4+eM8{)To#Osed*ynYY!h3U(rCaBqm9< zh`)Huop3aeP(%jd$e0A{3Hq$r9S(`5DB;HAF(=R=$Xr5lb%y2TdX!4Eh{B_FbQ0nZ zr|L~A77HZxkf!KJxfHcPwvp&83QbuGMvtDAaqIQ$BJymMDF!a2aGp+qyRmDIpHXLa%6iZwcc!#6q+Ii8@E zL5%bBozRy(sDcO`P!wxPw%j@n1lTH-%Xm^5@3&4t_r;k8;#J{`q@aM@E#u#0V&)Lu znYa?VKZ-}U?ZVP(Fo#7n5?gU&5;8=@NJ7VultlngOdub{LDc$`5TRk~(}s;<1sa0v z09BQ5)R+V!okJJeC3j3xLJ$NKblSdEJ4=p|Q)y(uFpZ9%F3ERb=b=L20xCSh>Bd}* z_KNnYf}%mkCb_$v$^zb_9LlAiXs#n?*?1f``vxovj&RTZ)Y*lIDqmI;-n;lRI?aGc zLX_>C+n`9oC22=R!}OFN8G|8jP#z!xEF+iIj^zx3+>0`73&D_gz9cUs#rCri19Hfq z1|(FIjYAepaFncos{l(j!pF03(Lf{cc17u%{b8$$^vzjhIEqH88Cet}qWG~|J+egv zVj}2@&$03@k9@!w&@p@(m%xwBm=ULf@aB2PCSA}>T|7ZmB5@-v(}X>6;KGb#Y4HF( z0PHx@VH1N5WO(T$vxEcP+u8?f+j3h|Yxzja2NzQ;S}rMIA^U`rAvG>1eLMBA~+d zO3I$xuOxjQP z896!&<9&nt>|($=B06F$x%Yi_IvPho`Pe5<(j27eYWjVTt>OX(1}$-W)E%8smxs6e zeeh}~x43_g+ z{>JCU;%9M{$|S%3#c*XQ$oU+iG+wO0#47U?YG#~?Zh*f$UK&9;5Fx^0xA(X-%kTwU zmxMlSqS!3k^_d;mC8mISEoD-@lw~_M%o1V1U7WE;Jk^RHWrww)VScr2D=|TB+Y{J> z?(Lr2hmet|DPg3K-)OYciQeS<+O7&Ekij{T_s$E%VWZQw*@tyl&5INe`OC;OOSSZ6 zuA^ka0A1OPvAD8%xs}#O&aX+nG6{~4E`kBY-+od~Z5Jvvn%XY5s?g`Iu}p6Fl<`Df zTuVR?{pr4ls(Z&g`pdW9-hLn@cQ6c~OvyY)bhV-Lv6 zFN*DG)ND(NAX^DJ#>T%URyPEmupcrz;88w1AQ?+&l!kzq{rBfDpFexKKifZe@oc_7 zd;0wDzwJMHaq{dSJ;nnFHW1f3p7c(yzRT+@T{0s|uP`_+4i}hT!N2Qw zlVZb>F}54XKfVahkv2nRkyt;s2f0lO1XUgm6u>kuv2)QO&@YNl*#}IYCCWD0!8X=Q z8!08=%Sx`hXwvoNp?tAWR7h{~j!Ledg@DX-quf5=m7M6Uax@VhM~jQ9fX8K0G~NqT zW~sM92ls}fKJKc|!_h=oZxJ?p<)_6CT)#Oz!D@STQj!3NhWt%zpSQ0-X4e8mE~8^G z2~`mWm;#ZR&6HFK6@qDFsFbzGxXhnr?i&wB20Nd&tWAu30L{651&7ds6V1`9MHMcf z6=^z2>NM{2ekCy(>m_sDVGsQC-P`}g(?qoF{~-!22%YWE4&Lkf{3vZKY%b?p6%^5h zwFz2E&_%i4_dJU8YKB3=Ct$COi?^Bn*4Fy!;BlA-gqFR130pX&I~J#>4KAz zN%cH@??VQDVC%W&?HU?wPTY!-(k(|_GN z3yaJx)ZQ{e+v?l*|7vl_!Gk-GXrA$f<%If}FG%va?}s0_%MWROU#UVhQ>fD~S6_~C z_tfHL@is(^&>r<7HwKr!&pR|I~uvZ57cdI+PHw#*h~5pRxRsl7rm>hu>taCO{$SU-a-_{5)I5phq9 zH&=`wWT%m;bUVlbJ->_9St&Qz&d*I}*W8 zA0ok#969SJN`onXu;V9Mz47BLD4q@{z)m5faj#!VQjszNALSn@k`@bDDr)u8KciCx ztySo&4{@Cen^Xpm>N?Z5hn6RgvSz_AznE|6c%Oj~9Ju_{W7-MY@4DiRIXW288hjrC zDZs?T+F8nz^+SB8*5g=#L_WL2HE|d>d|)cVU1Fm@E<5VTuyLO+_C-d$S8eo;h9sm0 zLmqi&8XSCL&Q%gN=@J|%Sv=R7+bdz);j(Yvv{Dg3+ia#HWbMdpW{onu{nqg=-lGCt!@~GK& zNPq}8KHfHLhwr}qr+>M8|LvV27t#SY)&Ho3i4)a*ySQ1e;n!vr?EWBS#{$INLc{nD zg6CvJ5ETq-G+y)ukuQXH2galYrBEP+&sSN|*nkTE`T9{R3$gyt#A5mlg&>p<&!0Dp z5kRdAi+tiQdj522>*XNSE6OOevJ$hl0)`9sRXv-CO1$3eFja#5S3eeysq`8p) zqfiKKjmP@O%M^c5hnHWaVxQ~qMw?#5&|XyGeWXLVSPMZAd%(d96tU35x~8Bh;+q8Z zZdQx4_3CPMvq@W0fiIU@^~IyVy#M**?b~m^x&6!AAN!!rEThH;4Cz1nzNe=D%+mc7 zu28u{GYYrl2Qk1C(u7Kc2TyrAP3_QwY9fh!gE?m}Z6>9GpgDiNGPNR>Fg8*XPAH$y zaIR1b!Y-8B3EO(mMwmw@UGI9%b(=KBdqMyL7rY4>?t%%T*YmHH9fhlCR>ZLaC zfBx{zT^L8>m>Ms}JW{sR)@SZh+;@9!Yn7TyN-OME5T5AvZCcyDZl9%fZJvj5_iP{+y=A2#``_PI7CS;qOT{yodcgfS@9j4&rl#GC}j zv~%sqI$4xdF?_p|;4C4f?e!yZ-$d+trsVGTrB)nYcZ7SwWqk`j57SKshTH1U8ejq$ zrfvD%@9oQ%q$iy;3%WG8{59{=!{AHKc&5a9+;1;Pmk;N91|G!+{Mtg|3#&_Y6Ws0U%xdNNbejWnHH#H#X48)57m!1QmENZujo=*$k9eHx6vfx4q|_E&dC>`5F~CS#Bv`d2SDJjQ7mma1Wd07?MAV;p zpii8S()Fk{V&DSuL!gf4@reLZJv0st8OJDTqH5eoCK-rblD%p~;aMu;4FdbnSPcf-)7= zGhF#$H9nY4CsgeIdE;I`QXwD*w@+`MwNQxB*x(>a9szqzXilV5`LT_SW$5uEZNsa6 z|5-$*4A*|s5{^%qrwuOD)a#x8<^>%kjbx?A7XNN%M4fQ-^Rq3PK%2AklkF|Q3h7T0 z*g~{<#O({KA`-6y?f$W=saZ$Mzc6jz1kaHdotp1 z*)ak}uCl-Spv}_b#IOLxC?iUwC0Yk2b8^uvorUgT?IE7+t^Y~}TUVmx%o-C<B#kP1zxR}uHq4Swjb(H!sD-@!RNsxL-*w2PG(m#GcgNuOsiRid*z)H3kg&6D&^_5QtFg|j z?KbocM4?Gsc9@zNeA1CH{MTaZb7KQEJ|)uWD*RadZAoQ-9~-vU`CK)z8-`6os&bxh zBhRhK0#9}+aVE@(ph5$|PT8;ivN@!M|3{tSSjKXi@OFL%!enEIz-nCZGoGQfJ_IoN z&|MGUOBPn|qFI+2g-uvx8gEiY$X>5g?43wYUvVe`b3^-gvd0t3T*?g;MXsy($ezW( z9!O7*f04Dliy(RX;}3s)clRwlP|21J?}xB5s?}`{olHAdhn!Spi+5MSTxybnOQE(o z2Lt(aSLGSKQayud6jPjIS@eGWka{PKJ=uFqZ_e$A)q8l@-XRQ}#2s(SsM9xyPy)c< zv*F;5@O!~TDmX*y3DXefT#KcJm$~@{!_>9H9c*pF7Fp7vn`;uFy-#4mF`T3aINwg= zBWlxrxfBq!Vtw~)iW;tqNilOwPL8U9T(t%*kQXbNkRw8RsYR;o>9;YZ0s9=gsC4+c z?m9_>Eo}@IZ3A0E9wN8cxNe^1!rs9XxucJG7`oq!^2|-WjzoHdzFq0rJSI3*fS>c>c}G zY94ik;#58S6TMd)OuOWePdCtk5-nC~_Ndc8e=EcHys_PJ?zJKHo1>oGsyZo}l9lR3 z*ulBFI$gn1EiO;?)O0#R*mU9>J|cxzd3EZE?XkE%1{0TnPC49;ffF0wVp()F!nY<> zIzU5+LS6h0%Un(>#r{+(w7)a~(v8&IobiupBl57gGdBoA2H4X5_8{af5GAq5RTpug zslycN2@@l@S1tq!Cceh>M8*JEGY2#tQlexU-(}R(?Xnjkvgf`ETn8NppEB@P(^Tlc z>bJ!^wyGgIbm)V7(Kn$z0<&k)G|M=T9Y}p&ET`T>Mel5p8o6z8Xkl#p;lV(JSh$lm6I8dpb+}>;(a(jnW zUQ>wkto@vGzs-}Hbu!2#|ZdUMyM_G*D?Vu<7`e^yG@HbCz3mf9+4jY{`wYebHY$6l;nLj^~|>HawObGP4L z)h%!}D7B?l{yL3^m)nfuumN7xGiIwyKzMKGfaC~@Yx)Fj4<$nXw!oN{|_5R8o;_|^jsK@ z;>(qwYZjv*N31{kHw|P%%j{8>Vg^6Nh($q2l@bgKK0cSnob-|yiAtk%F+d-`;&k zp}ud)H9=EE0B9I}H&a^O$$qc9!irLBe6b^u>DJKzzl7TxC+V^ncMF=IT7x5j3v2a)oCPN?dmj#m8~Kp>?<;qO*2!#Q8;l+WYp*A zb_k62jmKI6(yb*?XiJ3M?RK_M^ig=Qn--InPz{M5Tc6BIO^dv8KPA7mX9`FgM6R8c zxMxH|G$lX&diJfTtA>v1>ef&E1P6ckz6Y3i&AvW40d)Lqz@mz4PmGLWP5N+<7fzFT zv`UE=$+R$NcyxeM5tg<;e*;6=U@#-vh-e$ZC&!&dReovFzG}{qvKaP-L-@t)Q3(_tE_4|-j=QjK{zW24F4to>H>vT~7%nf!9}DoC~p zDfbSUe|pHlr-u}T_Tj~L-vzY!j0L~s-cb6sSP*undEl;f>$l3H5-!5TqbqLR09nMu*add5x;MqkaTD?N3hLHGE z9plRXpA!Tb87!5V}~d8AgL&kzx{{3e^*|GfssZ}0wKxogeoS$ zQv5ltbX%i-N5k76CXV;PAD;h;AHMf1_W#OYTGmF!wA0e1?n5ArQgqEu6opsDu zeqaG$%uUc}iTIC{@CXDqilY~x8JMa2lCqK|ms?n<>2VSkUmy$xU*ia@-x%f)fDed` znO)!L-6Wm}LoB}sR6w?vk*H_A5FXIO@zHuzBM7C9S8-h}^cvnf;FonU+PH0#S(**nk<`Xd!%LU23AP#EggNYRlfF0Nf|3xI~n^G!j8c`CeP}DSsp|Jk} z5=}mT?2FGI`i!B)Ij!QsM+gu>US#XhJ4lI|JG!VEB{Ldn-0R5~Q6}YCrI9DtF!;Y_XO4m>7v48|Zm{>wSD7O5qzRcCy8MF~#B_3*VMEn<)O2_tWZEqA zYw!{#Cop|rWYQdCwNU5=Z)ss@l8jQ;qI zRCdBlEIEfq7d+p-#n4fP>IyF%^__!4^&UDeaA3EHhrYD5uw$DUcX`QiL)<7d zfVqb(yxE%}18B236Oe*8hZomVC49PW?@06D5>PY;MNKa?YTSIO*1?`Q1%stMs>g)i zT;t2qTqt!dn={uS=CkcM2f^g{Tt$px$fG`vuLdHftUK-)Z8e56wXAP-Sn(6T;*cl10feBIJzYxOw}hKmSN{lCt|uo{9iyPZ88>Z@}V8ZG?Sl zrMv_P+TGZ2lu>8S9y&V01{?I4QWLjS49JbB6Qccu+rQ0=?RGk2qSmX-1C8m;mvOgQ zOAy6NMHnxhW$`AX8}@`HT?bA+Og%|@p!Fp5Fq6w;Vat|6%L!I73<`2e++Rd8C{Jz*hJEho^f&_=NAL*t7^Tt#n1k?Cz(MX|Fpj5|Hop8o_@+CK=- zaJ_6Ob5u~hIN9K0A8oH7-Q55`dhAyP>+ou|Kt>K8_mmwc;RTXjeD|XV?{xdI82Z_q zuIKeHf4)-*K>ckYyz){?w*a`>%PwgxjxIk*coXnGa&#S^((KB%$3yLR>0?soT|m&} z0N+|>SXgfO%=?!bb^3;Q(S_pSDNP#8P>Q!UtO-0A&y8*b5u=ftBUp3Ys>897G?e=d1qh{x5SZg@K6t0jp z7#!cD!^M{y3SK=z6umq@C+dRraK(nKbI>)$$#X#fmv!IsVH>U`!_Um8GNtbN(xO+r z()4I4!oL0)_-*_1UrJ1tHj#p2^xwKFWu5~axF6DNv#oe3pj=;;^~s=!ChX3=zC}Jb zgT`|b(Ro*+BqcxIhUCuYI!Al=rtRdT4iw#tq)4;hXm>DHO1+;Ok+R=$R$qc zP;pg!8rroIZuA*!vtS?C639SsL6Ctp#HWrk6J#$SIR6D(FcdQ7=<5G6)N|->rx6~E zjpp{1CEa~#O%hWm-h^rMak2U>(v;keLg)8{XP3-~QvF*Tray?mBPRreW@S3NEt^v? zKK(RmUmY$4))fCe?k#}RL;N}Kzx(c|yN~a`dvyGo+f{dN`DU?v1>uh9E6S(Un6U!E zo|7&`N_Msox$b^^`~F)SY|Higx8Fw5Bv#oqlMaflQ{rhm2`{CFmQaEJ>I16M5*5=8v%xUcSteNouoV+WXjWl*3O;I(UFjwbc}F*!u^*=E@;Bn*y*RN4vf-NBHyI(|R4Lx4M5dBgGZe9_AxvGbpQ@=w zgT~l+)1_9m?H*{!TK+@*vA^SL*y)a^2crurdT}vI)=oA!^!gr)LM-F;;n$mgWIg@g zF#e2Ny-v~!6VE#LvnW?_EvQoWcp~~f|ETuk_Vub%VvQ;hPfPKLB-II{$1q4#H-w;I z1T3Lk6DL5J;^iUeuRM6~v5r>xJp*^NMpbj_072g%FZl-7KOC{}3HfW_?FE{g`mT8Ld*(@D?{lK7RC-!-eL$gN>exa)mTb05+fA?o_ zBZ^Qeb|T$`$4jFTSacTGZKTNEPE)SIRJFh7d9S9cIPfj)-l{rpV&_(q(Zm41vn>Bs z->)vujRaIQkQ7y>`h8(s!7=Zol$~BbceD``sDIde2g8#U zcdR0h;#M69p8N?1xwcyH*uA969r`Mvu!z>l52ANhQQ&17`Gghdu0t! z$o{h>49}SCTc}wt;{1xI4!R86b`E1{98)=cSP#aPIPOnN(^L8&O_IYPaSJTdDn-wq z!3HJ^1K{tiqM)RbaIC0SZ!20a&L|C`HE%T1-F|OHUWcDdCs%(**X6U7&+-j<(4Jg5CX_6SkD&Zn zLvz{&`~%(i+b3Z3mzaqM2M(bX4-fm?=PB+bf?~C;6z7h)DyB_t&7!iJuyepBG}eZb zjqMFxmnSMnoE9ODLub|4>GUn(LS=!j$?Yv33&q7tK4Yaj$O?tu@OL--uV$ z_enOhV77TJ*O`tdZbJQ^5R061p`he7fw`)B{`GZ`VqZgvz~66?*&jdt_WjQkKl|by zh<4N_{a_RDIis$lEhD2g^9OxMpTq_q@f#{_;-Ne@V^m6~A57TX$QMP*%1J{qcTGe( zdJ`ia8SYSzd?k<6h?QF8V?bDV<%4Wd2s)=E?g!4kK0*h31eUlr z@P&z9-9uteBGG`9Up>W0MVTJszmnqaB2JFR`2!oh4-FOzf@-_R!t`ApUG%hh(cb(A zUGmd6{+i>#0K88Sy9@ysksuxVlj4+Lm8nmI(A0>We+&#G({nRTyPe_yfBN~CEc0Q3 zzNj35CsnV!KmCmoeHK?y1iWWgJKcUMDQ}I(N7;OPv*+?l5vDr##@yYK7WM11hH-A zcdEM>_%`xMqME}iy#aJK&GHUU)@QeeCpZMLCFOjkNocp<6RI!nu-2UdJc3ckw$_e? zsjtk3!Sq_Xe1(oc9!414M;*M>aC&TsplFMjTKru}sE$zRJ1lu?oSQux8|R)-s|%l> zNFy=ta_blw?3llTIF4Jr0FFkuHZm!`am>k{NrTClpHSx6=?{q>8SXD44?ccTi98D5 zKsM6R*`(h!PElSiP*U`EHH#)eL~W6!qdcwrd`PfYsun?As|$Ry6|E7Qi-=Fi#b9bXbhPSz=W+LMVTn@kb_WAMBeSK6_S**ne59-lR<%0m*I zQD*OMe<3?a5WLUaO0jH3x;QVH+}g%a4H$Yu9P$@BzE`$X;$zfJRq!(6Ay!S&Uk$Nb zpo@5)ORhFWsK`25emS9a=54RF!LZVpKoYXQTwY(lKK3WTTJqB8%DWb_&h%XFTl3Y5 zq-s9u^m;ItL^&>$z2pN2z%+8c(~^Qfzv0Et0rRtgz2fm?@)br{UO)gn^UR*A4IEFu zu0sz_m2_1|V!q9|*RO-3;J5VbPyt)}9CMFPK>hRY_h!$2o<^POqF7TWiaeszaC_8` z&b$NG-s;qF>3Qtv8O#6z5la`wU$%)U>;A(rBZ^y@iWzY`zIaW6v~s(zpFZS%Kzt(K z(=R_zkJG!4hd+OO|KaXO?B>b5w4TBuIK0`eLV!$7ZDUof%G}3 zA@h$pp>=V=j$Cf{*v{uC0#GMv#c~j%$?G$W##cf8kX|Yr_xhIf&SQUI{cW$yQ24IH zL%rWSz$ngZ^Z6}c6vv}Mb;EDhg1jX>Lc>YH&@ zG+EwC+4Fpn5fkOcjBoaljHTDyjTFitc26AET#5(uL;RbSp!UIJCUMoY<_InwrJ~Um zPKKSpCN`5r$aBa?1S`QZ9_t^6*Tx^1ZQ5?D*N3IB#qdJO!W7ib?@-ysFTTC~h4vQ#{`5kT~MsAuN&DmJAsJ53vvf^M6nr)|$j z2+H>?=9a30R(pEAF3D7U(z8qo)zctLHEXShQlnQ!+ed&@Xo&aAT&M zZck1a)|4X|nG*nZ?>6~Zh&jf|g$;@x=*Z2U?#+m*A`ED8Us0-2&!8|6_9DxEk)gl=sLUTwpFf%K+NZUp*tESsOGw5s*<0}GBmz*+<)DU=?Rn$)SOh3gk zfRZbul<*-sRg!>ka-O4MI|dsA6jlUwP6T5YrK(w|<|IzM~YR{%f_j|au(iJaT0#kiR z9)PM_DxItBpwf~tJ7j^MT{EV0p@jP{yPEf;C@0ZrtE+s=a_M*UtJvWN!pvr=pfH$t z)c}X?TleE5YX{`pfIBBxq6V5M_iMaS)9trnkuY9^EEIW8ufa7^P(>K3jOr2j)`W`8 zGE@Yo*VtjC)gO=W<2#QqVo2;?4F~A+7*cf_oL0x?>KI#u_AN3^u_Bl-K=wQL@U*Hb z>ql0wQ_6@h#m@OdPrEo-D<0@l>ek-l-#z*7PcPQ-Z|vo$>W6%ReK{kMLSFOQhw*L{ zQ?x-U%7~<$9*_krxHh@wI)6i8TPM2xd)|@o zkBPt)x5gl7yB5Ss4dJ4;Kj>m~Vnza6Gp;_y=9V*r-EJ;)Y)Pc#+QE~XM7^8muo)KZkl@)p|XjCQf0Og~Q@Luy<=_J{MMQiE;7?|y&r{+s`m=;|?kd0grN#+ei^ zlV}!CToHQK!Qp z+V`elf4V5!d{%`xNr_2*N^lnsQ3lGT5YqM+6ii!QU);_ml#7B@d&@PLA}u3;FV+00 z?kG+PRHfic3RLA%f~-lAMVwd*?LGbQ0yitxl_dWm(sWIcU6OGhX`+yu{QB<04}bpt z{M|P=B8mCH9kympz1*5$6YG^CbBNa<<%PQQZc20LK@Om2b&O>M#+F8 zSOVet8hQ|~0x?_4it_sWAhEIA7B6|3QAPn9UTvl+6pVYlgZswn)t|h@v(Sd*aMX0a zjZy14z(mPR%|?S;M&CZmej2f=d?{HK@+0zJHennx9kD?TQ`v%xyLW&5`2Fo{w*Bz- z-A`1mB8Q5JW=T6I&a66dw09eT&Dl6jW2f8SA8OE2zB>NNXwiM`m9kSps#ey`AHG_> zsz4mBvV#EY^zpvXULk`1rebJ9hiz8dPD$fUhW{&X$((|5uisSXdBX-^CNHixCfLKJ zm%nfcydz5>+A=94{Mt!x#$NCkV*&pV_^#FI>%;Bh?07}7a=b*yXwunbS&Ef5>y^=v z*y|z=6`u)Ys0rE5DDF(sf-iEKFG0iXC1=}nhE9K{Gjl05-)83e2xaKzi#Sl_D!&}j z{gf(Yyzx+W+dKv{fg(Wz!plObwrm8KZZ4?pKCn-=t&%k4tV#~+0hUwkXv)?yuE}H2Ud(Mjj8c6qImXo(WqSWwbv__Fe6I6OuT z%$6m&@qN7stAEJ7_Y`ZEX(;qT!DD`#(31714SVqik12|6L}AtDm>LC11&fG1($xHI zOskl@A_{r)S~4~#)Bhd&BxE-pkMP7vnpRjn**|By67|sI!9FD=&#}Xa2-7+O>w0k| zF`wZ`9bzZW_(6PBmg6%q7cCyxY|{pj-XbDOnO1_%QbKzH@fo)l$ewX~fp!|V7c{4F z`>e#q?Q|4qr=5=HteDj=NV#zvi;AV#E?^v&-qOlH;Nusw##gH;DNb$V;hr>&I=v9- znlGuc0tAJsT`!MiVd7B}Nag~}yxvmM1zl5^ncDU&{vhQebV$n2%(Nm|Bb+GCb6#00 zY3NESOa>d-Mj7KcyGj91;z`f7yoD|7n-awac8y+dU=zqJ`aRB{?fYUMl0h%jJIpPh zRuB$*z5Tk1ehQt4K)ku_RcJt?86EffnFApbjVFUB;%MV6PRn`?rab`}!Zh@)4Zi8{ z&|vS4tOo%VMPeKakiOj(xx{9=K&`x5e0}?@v7gqq*Bdj^vPgJR&{a;( zmlu)c6f6|(IY-#=f6j0W;qyGc`=_7(czb;2U>tnlM>pt?KFjHqtZbL&F6n2)mE$hx zpfkrY;1Z`6LBm@4RAWY+UWGwOv1h+O38T)uA>ov-FAu>@7~v^r1;V7G76Hq~l|TXK z%dRq20L6$c*8M$|7bdZzmoe1hBrs9aumBKnOyJqW#Vg_ZhxugvUkpAle_gwld^?8FkYrM{Kfc|b;YK=JT>yw{=0&zMl9>)@?QvF#W#F!PQ{}kbW&okU zi<*88g=&4WeOIKU#!pK}G^CTx{Z6mVu?GZ${dTW>L-&%x*G^R$#Qvq!Y5$kJt{u~9 zpIy%gPmWcJ=tAbtF?2o&^Qr(s%;&@Nvm zhkHzlZ7aV43fKbO>9Vpj7yX0<6b_cxe)IS`B;oJhzI%7~x+6a&7R%89-^dHtHE_CIS2gWw zbw!;qs;ZK2q<-vvQ+-vKHo8d^%RuE&RZzg}Nb zOsko)DHDtqU?Cmp@-Q4#@waag*-u8XUPG68|79nPTApC9LtB^^LU_jweoP2A>#z8Y z%XL!XDk_aSJ$H~fWxF>Vx?$hrt{P`u&H(`vd1UI*a7D|slcc$^)A2|dFlbW~#<`=! z-!r1-$w~z%#zsYK4j;BT`f~kM`lK`qzOEB2!?ROwnOUO(2pAwtUdp3lR=-r9j^)MN zbGC=Iou0L#fD$`-vBd00p!C;8+EWTu5d@1XySYYT*M2N5MKkU08I37g>O*6S#`@40 z7?4!wbQmR`y)Cm4=e~7tN01PrSmXOJ|8(@ujo*)Q$8_{q5=MSTyGvxiCmchP3zS!7d6qP$26-WZAl|M|7mCYTML{K5OokS(eyC8fPYA+v0Byj- z=0nRiUd8e9jpEIasj*&4mU3T=3_)Q~ zCNqfdQ~v2`tBVF6; zDIK8d2-RB4mC=CJl_oFLJ=-dSaq{rrJIFsK8HPP@Nj63K%a0yr*fYbqsQUV+^{plh z!1@=s$Rd}KOPeC1#6!F-DcR+fe_Ah+@D|56eyw`ter+$?kg z;UfV11!PmT z@P<|H)tZR7JaYaH*xb49$2<~;SlOa;mzp8Jxgs8dyJl+BTI z4r9{?@hK{G#5yo@!+}gvgaKrn+J2u6%?}BU`u~ckwyFyoZT5V#xL;dtM)+IA5FYW* zzWzBVmikft9T^^)*dhNe6F9Jt58*N{NMfN;W81D;heW-PBB}{y`FhxFPWfW%e{B=! z&@O7i0-aI2RSI9m?+mT}gpuisU~9i@8psY5$soYP^rh8i)UutnVqVOR#2baM+eN2& zkCm>NMDpMluF8CJxMq9H+NN8^65LVkj@t+__(cYr0PEW^=-6x7_4_utua0fA;UAW! zQL>Ev=)*qBEX{CmB|t|Md#Q1kdoj0hn<*uAqm~CQ{g2Gwc-rG&bPcLj^d$B~Y(r|?kpn%&ZImr_dg678c^txBhVqt+#TjzttF1*!?T(bP5}ZcVG$a&JcQS8M zK*=i;Xl-d!-q$w@J>kjmW zmk6f6OP!Cs`g|?2{+(J-?{aOwyxjMyajoKjJ&| z^+Jyf%VgAfaF6sRF`qWYY$Bbk)ZS{d$BLrE!$!Qz=$H!shL$$3#Exllwu6 z9TJuPW!ZO&cF`uzr}s9>2D>fLHexHcm%o*cM+&U|AJQ-qObyNEnm~sZ@Gt5xNl!g4 zrY)*XYtHpkrBZTghE)XZ`}`HD-5%VdP)msF`kGi6cJ*u3M$z_D$^e=iYU1UF?=2NU zRj7LJv7~#6D^hcu=o0yJ_olft>2*3Da?3dM!$lnWbGO^?ubP-EpkuHw)hU%IQ_o}A ztVA2jTSiNZ0yrL=lnZ9HU9WI)knm6eO>{hEaZr_APmdPHzGziqLxR|zUx9Xa4$8(w zk9KwMAb(boG30YIiNGP#9Dkdx&lf;Bf)y16Dg#>j9zTnPM-0U^ng-{+pWprD%FfEE zXk?I}>tg|A!h_ev)Z-YmHelD_k)@AHog5BQsZ#`pu&S1^5l8J&j0G%Tr|An@Q?cp3 znDGC-!2eeTbA&%ZN|H?4HmL<+eXcVpGWmHK3XDVqlx!jKPZ)j1-$-`db$DvoDi(eg z=ln#!U%M_3E;L)XCNJu&_$q03kp}fi9on?MOyY00=AxMuIb=b}o8p^L8DFFLM9{ac ze)oGaEivzpI@1uA2vs!?Bfr&;seOL`Y=Y;ZhrBHKR(a_!2;vu^jG}}Gj%id9a39o& zcr|WAa12&Bn8x@~NlGF&;jDuT4ZCxff!#mIn?*6eil9<3B|9T|l*n0?l1uRL{Zeu> z!gHc8W~E&b@estAaxKs`t}CP^uBxkxubrGOmK2wsvsQKx)Q23>n(60zU}PjtEuI4H zU&jKxUY`?hP0&3^(gWY1W=l%D*N4OoaNaF{gWyy0vj$21l@hj=5Tss=m<&ru5yNO) z!Er{Zk=EJRS&aZ!?1!#)vPj4PyRB+Z&4ei}<8ZE4$^)2QAtihNW)Y6GOk)_7xUTX9 z*zB%tvI`Nr@0q-Pd8iCjcu79}Y;2mJcs4%X$@eW2)rhh2fpNpc%Y=2lK&bfOEY1%0 z4u}92Q_S!|qCoH`6nB5yr~`Bi0J0Cy?y(tng(c_kge)34W_vo5sOnCICKybM%~dG83a@wUwkNB!D(obiW40TZSwgwdbu$UnOVM=t@h!$2 zkj_PA5L-2OL}lJAi4X62RoCU`lt3yHdr0f4SBG!*0R4z(ML;VAd9cX@2eybEy^@q> zgOtC1bH$Pc<&`tC(Hdq&Ymfx#n?*nMzrF6N@|hB5HisOT?6wUarC1~6CstUgWrrIO z?7qew@`mh=b7F;#jXBGDh-P04L}Ue|#U=PM%c;=497x{JMDL?--v8-OZ{K|zk`HlS zeB?5%m^vJeD6=7rM5Xg(hL|-Ce&Mn=n(QX|8l`hU7RsO10NOSbE9k_n#S&GmqMv(T zHI<4*E#JKb=M2y5=HvT6t9XPHNHWNIr!#bi6d&w%)6Sg`EsUr-#L}G$M^TgIgNMY- z--|gHWy4mu?8!mix}pvZu~e-5eD4{BPzDRUU5c-28f3oLZoi*5=%@(-3i?NRoxF2$ zNSq_wt#Z~#_9f(@KXyeR%ue4hm;{kFk&#QB&HdIu0&Ljjjd5OAnGn`Q>g5&$m2r7t z+J;rZ7v6eByE=5~%+19sQ&Q<;wZ-FPVzPHmGEDPVe%LOG+Gw1=aqO2JOCG!Zu@L3A ziCCB4&+id`S9LEis0@w((8=}PyKkv=Le|sX?d@)35GLkf`v#F{97O3w9XjL9F^97( zKodeVT*4#QWe*8$vIpvOdUb3EH|^QhC$k@euK0;fkg z2ODOY9jMuun{-{i*&99UVU80M`o8?F2Dy(6sIc{7hu=}gq+pAkbg&;+L|(PHAG-GD z)pt>*oNu0;nq`!W+}f-lz@%7Ruf>eh7&kO{l({a);_`;@4YV$PyeKI}dxHRVQ413q zwDV|(5Li1KbQ^zU4meXA;Q&6FSo=+ask==h)q`R zbN2g>@8A8=#)ddkf@(fP%t3aLB8D{vV-2xFlD;QLKY#Q6+Yh%Nn?Q7e zq|0K-a;i)7Vew5#jDhYE3U`5stIghBOfL~QsS!$6N-K3l9A%OZXKTM4`({al1%3+5 z(l?9oYNvu~CCa*UaM~V!vUZeLXZp5wcKNEK0Mu za%ORwPeLSa8az*7>X0QsX%oBhgyD3XZojNJ_~r~*h;w&=e`j><2cPq^w_k=mGCzF) zd1yO_CqigQe^AA2+CUDGMWjJmbY+K5@fdgdQT}e?9uyJr`fy!6!m2tJ8fCzglcyQ% zEG}o+*Q9YqcV=;#-3eo5D$-ZnZs_xCASUAh!^eRvt<@~-c{mP}{Y}i|_4=g3hDt|~ zt7~vYcT_G6m6(3#G%t>qCof)-G70gxTE14sf5-DnT;|c?)t8jE+McCd)7P^dRj4P}_#x(L|1<`e*rT!2lB3A_0W=XQ9%_ns72~0!%Ok#o=N_yfmZI6VNZ65NchUp|Mce6ZZ6**wXvKh2{Tuv{Ewk(GhVNf*Uxa10 zUV3pX2G(j0^WeG3a>srCMXdo;Yq2=sd)o^?PNYXU@$9$b)eUH;L5=#R`op|ljRtTG z#_bl4LT-FDS1AHRUXqHS;qI_cZsapmChmz@_;Bgxi|*J1a0nJ~UMTfW(Psa)_t^m(3ODN@z*Os&c+>nt|amoxt@n7FH&xl4_uDx z7lAv=0Pkl^m~+Y$?w3H`5^JPjF}u8%BAvwSMeLZbPAr``qWZDIcLe%+eHH=N3bCGN zaq6_pv&YW)RPDaR{w~~2uNy)_Wo+NR-}_gjg!9#2@v`rI{L`O5-2L(IYF$u1K6oDN zyb7x|4eaE>!sHj0lZD;h;y0~@nTBc%kauLMXEJ=svwHssf3wcBB66aVPwV0Cd-7%3oi&?hmt9Wu zR;R||`fOYPrl!fN%RgWj#wG5G%XOifGby>{T`u{kFgEbYy6`u^z8e8GH?0X^Bp3^o z%Lf0QQEBGNvDn3$5xEq&*jb~h&BF19D2(mm=rpxDgNExh6Y*EYU;0bGs?<{uexQ|y z7q1mD*k5~0k|BU1n1@kh&T??W$QRgH4Mlu(?CoDww58pvalT#5R0A5f*1A`a$DLjd zem}?!%(c*U{yYgDVw?+m`-$Q7?rmG@?xJTz(9hO-Ff^U*mYlky=|g`QkCUchp&ipS zgGA$+%BK|f&a6PaXPDOP#dP=bN`l zWU;sbgGdgJ+r1Yd2PKR!0*TK^K@}c+1_iBuS4k?dL(Pb~#SkfHB%?SsR$pXUv z8ntmy9oqr^Ca;z)ED3qI!ui--BUROo_~nL@NjVl#vp6={gE*m;+X>_QJ2Z{RIo{#ob@- zemsBom%9%iEwUx7#Bs#m*DK#pjU6L2Ei>wpl5yW4&%HWb<@*?=6N}KesGXKNY^ESy zwETZ)t@whTJP^+vy6j7^ewf{D!yCp+P=@r6yL1*lNrGgFL2rO4XzXf zwi@&Uv2Lyg5GsjwiqX>pWcpfsNmg`H5a~oFNlC6mfGZzVC@^A)?nA6Hn!g`nw4Ed3 zWBf!LAI=vCZL9<~Qa6|>S=P^-*!lAi{p+PiL=?rz@^E`Ybi?NS@|c{ZS%hj7>|wF; zvEcN45pNh#sNkD#w)lIA!T?$Fm%^sQWbcfC^Q&u+mpkFxA2cnJSISxi{4fRf6q|^Z zbdg>1Q7S633@rN24tCEFFK;)CC!L-(>hkcxi$$d0`k0uxB8L&Z6Y*Tq&`EY5qM3Bz znGTx;-K%Sbp^np!cDntGX&P{@>1HK^SC^Wy(_O!+bq9K)+XlZ+;R=dr$%NC4aPhB% zsEz;;ABrfkSzUjLfS`1j@aNsr>8JawE6iX+LVo|!T~~eK#A2Ffv8o}iBo-ok+I0E` zo1)*$k8VyN8n$@uMo>#TgW?C}0CRqvDOJKpG!6cSR~Q0K^{?N5_-Fz1 zFi6~`9Fn?oewmb82H+I_?ZPjbK=tQ`yc*t-rrt2e2a8J8o%mLT)bc%F&OxU?sNa+n zYPa8?BNk(0qg+AQ+95~sM2fnE$+Sz*RaXx5+lMgJYQdOs(~_&TYI~I0RXQIP7_abp zzUu7kMb2~fSBiN>ro?eD&V7TzD88i%c)qf?O|dRYrC@@+>KvfOg{lpg<<6-Yb=G-l z^biaA79GbL%FyG5_t7A{M~0ipz=qoApK-GBvwIRSShB7w?SVC;>3P_Fr+_x*72sV# zaK?)`Nv3LG+>|VgA^UPr{9cmhUSewORPA$o9Bm=JSO2G3y-<3Atm9sPuy#e} zJUuh(E*Ew77QC*hh6r#WN!lj0BaWvCd{c$&VfrKz^u2+lau9Mf9X&06bw#0 z@IiO-#b~PjL8a|A1>150RYGlSD`xZh#A0oJO%;Q^$N#QNY!-2yE2AjN&BqTve}gfC zeGa>s@o5>RD=FvV%UA$M>Z)6Dy5M}vqDJa84B?Hn{1Knr>5rAo@T{9binlbG(Vu|f zGmN-`frKE}tZ(1JemK3yne6MV#x9OY?{#|u`yFm?`en|{h#ftcsj>!)g>eAA(S_GT zvryDf&F*nAJ*DQEZ5|uZ##S*hZ!45L5y4C|o*3epke;gei_P}^KFEauF^!TOm zL;aoi4)a6u{JqpyyvV@0&ZYZO%CG1U_Wf#84+DPApElg|fciy}re~SDo8mM{p1fz3 zUO*wgPj+#aUp7s86pJvs&Z!w%V`E-Rj1~EP<>bZICOAYrM_)Sy2QKiH2FCPfsb_Wnnx+8%?QVjN$zF4al@XtHcN(fv_O#ptu09`d2d}===SG+IGbidRfS3gUvAX z)$a+D((AW>x%=+@hd(Xe|NQRb-3R3u$X~7xo*0nbkN))bhj)dXu|iCk$|%+onOX!& zL_iJTcT$9iLpAR=6F>9vJW`F!wQFQjA5f(-W6}}}eN2i>GHPGU1#c9#5WP_%lU9lj zrEK23qMuT~=3GgfwV|?YJb?%lS(`FG!@2CC2t`_Z-UTzamvHJKJGo>KIC9CJ&NE1_ zaHTzeQMoc%ipb}S6})@Hzng#D+iCGQE!s7)6%<$8{&Moe$$Kv&EtDFmZPtNVu)-zI z#ykT2W0Asve;(m+BYr-l0eQ0qK~N#cjUcGYpcddh@OjXS@p{1?Tf9L%bjs2XeTLmU z>5C=yrlq>pk}n2h^HP7tyNVVLUL&X=xo|x@8u$8{I{y4`h~AD;d7X7;UJR)y;WDI7 z2I!VnPpBxFWgFt5B=kAhN-EygN&}wUSYu?*YsX1E4pFvwI~@F zJENgd3FrA@?{D^?RYkqY$|5qvWF3UC$-I!P+1g&_*D{;+Ep@Kh6%oEsBr@-de)%=; z)8o7XRYi9yOpxKkN3PfEUb4+-owCO^cJ}f6qi?z@IE_=7u_d)MsXugez6fFjD7hL%@EJB zB?0@dYxG4W);Rhg)>>o<)E7&c5ZO4mUI$OdM6Z<+Tjb}cmAi=b0}&#TwTLtd3p8c( zyKLViU6Y)(jbv9vuU>3Z0@9*;|6mtGp;FhiUPa247js_*$KpdeSt_Kq-+g_b=VJJ( z!a^Pj=FMMj(75#?^TNZpsGf|d^T6WjGyvvysWgn`MtCYuNIvlLvUH9DgBA?$5n8T! zd&+m8Z5rg(CJW9445OSpoJIPsmp&5S2n8KNQWEJk=tN zWw%knjM?pAF{r1{$*B$T9q7v04*LanK@vd_UCWxXaTZ#`Q{pb%l?xWp=F0;|xi#0GI&CGLJSy^`I#&iLiBbW>@_4u-(_ibQ zZw@oc7FFn$e^zCe_OQG|w_l2#&QldDx}w}f#QHSXer}Suu&;9$s@_Q+K z@Amr#t;7pxdA&FM>7VId1zl)#?J?e3rMgH1r-R+VXnA20k?~+4JqYzNGl58a)HtY1 z%+a{tZ|WU$u^<(Mf12R);Y@J^YnsHT{p!KRs$YFzY8HCFC~kHC>`*}w7i_DR?)Jv4 zhCP;qAw=acQ^CK}US$T~U8be99gc$=K)`AV9d4Z(OT;9s0wb`_q)i-5h42bQlzbgZ zI`#5QgxeZ@u`oj3hbLssxJJ9ci~&pfV$Z?VHLm(EZ-4x|XyPwy8_4&^>*br*l2Y3E z>%aNpw>EzWi~Zjp>p|2L-23P6fB5kZE~pG}-^D}z_P#sILev`{X9!F1RsNMq2uDn< zOeDAI@^Ta!iO=T*(o7o}j#9N_Pus!vi@a|t-x`Jy!>>JV`e)ELgS>D)i$|_+*dLEL zxLUF-DGa43orVDkO}1DLLUz;Rvo&Y~i|yvT1vd9}@ukaUVEz+<1<7;lFaX@?6@~H2 z*DEQzG0GMpO_^n;CGbZdP%ozEw#^i&b2zF++{C8j376IoMkWkct2IS$ z#uA6Vxa*4?A}k~)7q5U_XjVBCwe0Y3+CU_;F$jwJhRJH$9uGBW9Q%L+B2BjV=GetP zKN4Ok$Ft{!kJoNe3@fQGB!C4^qLtu>>Qrj{FxZ2cY z2~2adek!y_Cgd9Utu}l$uJz;I(@~jdvA+{MrPXRW{X%Nve=qoFW~0zRtI_FA;*}TT z!%=c{W!f4uuJe>4@q%4{7#yH>@L z&&v2TA%R(8wxh#lmpJ3Q?fyMW7t-0JK5nr3wwz_B(`)6o9!y_PyIXcTeM{)#A#QiF zx8I@oj^PyRdyTW%>Bm{5)l?4=Eyc|=4|T@aIGz7#&dP^XHgy{bQxrwnCSdfa)sv|d zC|p<15X?9rT*(>u?4Y2mAlC*3Hf5{jWOloIm0US@ z5?zL0iXt@?a+&A)?L;p_Dl;b+a<^4yvY4!i~y74%_|i_*P1KU!F{kX@89FhL=#Aa0SRNbJK7~phX-m0UawcD_)8p2cl0%gSg~>1E;WZkmp3_CZ$J0E>h`6#H7dwXsSKU@TB_fLSDXaOiMHqM;0#BYVcAaO0O1{CFXh`ql_490bp1TyL+?IVf%N6hjQun8n{zzUV^p; zQF+1v706_RHZ2t*@5ERY*&7&8NPW4ymNZFKU0Yn3_@;5S0b9*b5kf&&T<*eF_MQHi zkQPZY-fD+B-ML9i!^3kMREtwRbK~rs`7qak9H`&pUKGj0PlZ{xH&Ss9e*lP>FzlJ@N3J9Sx6A%&)0ZmWoYR&c9itGzHb*irfto!p0wc9uC%{(hAqx zn``ko0l87^Ge3Ut#wwyPh=?C_}NSSx$Lp76%#GG@# z!#QV9gD*Dg{WJ!pH$J-aLfQ^+^MfBgj zuPj6Th|jw#oJ^sQgqY~a4AmbJ6z3og7VC7^^4o|cinyY%$RZFU=b0wI*!#`*-~Yyw zQjlsB8NN*@9J;(?{rn~uKP{6pNsq&Z-72_XZ*=V~QVbU+;mw}bzBC=#0^w53RWG2Z zu8XGliRHVK#rt<3eNPfUA!y5zFmGTBiBRk_goyWmnWCvIGAI{~_V_e4h$te!#tT7d zCw6YsWAB-FMo9)12P&^C1`wxAlsP>&kmj=X6Y^JJ&!_wq7kQ(^FP$d@FHE?K0Ht)J zoCCItcCBITD_K&xB6F>X-eWLTi=u-*TjD{q5kl5;MBW3*I{fk6 z+Va=~a9<42=d1DwrJz!wW%~t-p~m0K{XUcX9dX7sFd6Q$4Ufc#$@Qhpb~^q2BJslh zA;%TGf4#X&VTQSyAdTajKA1&O$(v~R{ew&>$Tft7af8o^83{f}u}&y)f9Vnanv6lf zy@k2Mb;tMo>3m_6C_F<`L=j0ODPoR-- z8O|TiMsMuQ+!F_oU@1ijR1GMKY586U3?xh2TpYfdL}SK)d42^kp!{B8M#XYDZZ9Uw zaeFCCIc_gD%yD}$UXI&mPvH|LPKsubMF7I|RFD#|-tC&0y_4J5=f?=Lc;Jg}5;}0T z^$gzk*p;Q*3)AYdINDlWR{4`R7h&gN14!dofcrKUfo%8b`u*Ur8np$K_q+PZ($ch5 z{&2iL;2))(_Lp9IiOR>SaRuNxgd#m&jkT-m^bebx6{}A~J>O>&QsEl~=T$WI>qTI` zU5%lKrbguaNhd9tt9HFs)HY(1FQlud$Jml%dG&w!Y5M~fnb8nGQVIq~F`^d%97F}6 z9g-v?t!*d!tp#9jI3C>9bpP#`DVqBp;H43ZYE%-&!L*=dpB4% zG^sCc5fGp5w>+KJPgzu^IJ#~VKkv5NybD3cJU#C9H%KlT3Q+HBqc=Nr-0NHTHK|ue zHxRHiF~6|dN|5%Z2rJJetY~Bqaq!^4p4ZNizgO!-g4{m;l)#BrBpkZ@d*V$N-Cp0A zPYM0+_06FDN#9AxXGQd-F>QTIkfynR|4BRD{tX*EZe8PpSG2Mn8e(ARD5B?Lb1ma{ zJvkx$xVG!jF;meTj4@-M&~!{uhSQ=u*t=|`5E0=d|6$xZT=&FP1lAqF7)nbJ7the} z$Oszvk}Pw63*YqsZk=Sl28*ley(NHYr{5Did}H2r_ZK0- z{q8c~N43o$-%+n$La%mwR8`?zZ$iRlLK2E|qpj}GqsdVPhg*DFAx9gy)RtQE_+H6&b8c0BEl@Zvkt z*9q-e0d{Yv#fNglS6%5F63~+jMywwfu88fI7AnIAh}BDBOhu8YmtN5R zok-ym2_H2Q5>9I_S^}p?-3Zk%xq9k}Lw8B;kX;R-Gz@G-x1NImT`v-jao5y?9gEq{U;_Hvo}hlMWmBV_TE_ zR{0l(#Oa|af20}llcUqP%c}>y%Oi4g)qoFm{5=LlYTC&^{%r&GH$VAD!vHb|0CT#6 z01DwTW;=wIP$|7@Axz-qsk%##?!43K)sw}C`cQ;2^RI$&>TC@J8YSn`QumZVq8lZT z@SfC}W8!5axjN@%XT|b$FNEzlKp^+n1LOTYwYbZNAKriX;p4xYet7@$pDFzUiMp@r zkt}qu(Y0x%r>QAo0S&eZ^!$XXi|1SBKIP>Sbv^3!TWFt_J?Qcpt&4G|)3=1!N3anN z6aIhxNCqs8I(>uKXBDG zbt3cfcaw@eJl3x<7@3!=qcl6&9b%G}DHTbqCH^!T>j2+AzZbq88==Ex z-N&+&O%os4n0t4u$UA-3upA`z2Tmx8!05XR?Zwy;-Tu@#5$bEoY!**uU$7eAKx8uK~-uUoh>h+U1wFR;w5X7wa4iA9eZ$ z=zx4;SI4SubbW@~`}}$X&mOhX*ojGNr29f*&Vv5DWLb)kR}zSz!P4T|kiKdB#s~>* zl8GE5TC<6CRbt$|ntaL#ig*iL=qjqN|^l4ITxLRh3Pk1xKy<$ss6 z>T*s>p^%}z-%rgGpdXZ+r2ldz$JLQ*EY}E;)EY!lAMP9E-`UkI1R*H(!#J%9EZ805 zJGFBQR-HF|xzH+129rFU&HF+%Pn->0fQ+y`XJIn^g_S=Gmi6uNblF>KAkcwdvAM2e zwy#$vRG9k$Q~mkkYoygpbz??en}#8fc0;On4w=dUI2JXm)bt zWE(Y0J!__^+19yyvh7KZ>wao^d`gYx<;mgA1u25X2ep+CDnBn3?yjr(K5`kCuk+LV zx4(*?M7D_n0%$({rAI)FNVziaTiuXaA@^RzZgERhpA`0qEv}#L!s4>iZzQd#z#D)9 zKe}Vw>s#Q^tXRw3Cdqt4v$d@s63%Vb+e;3MX18fgIGy%b8QZ;7%D6HOeN2hO4HD z6j0*2RHqd2(=RC3+~sA~t1WmtQ}~v$iYjJCMzqCx%{jNxl)Z2p7MManCkA->Ef*>t zZ%w?N8M(@+5YMW^)n4OGtZN-Q^=Oxkdq=CwO5mAGP8`D06c3)Vfcn;k^ZHvH;iR}! zsKee)ix;{RlEHv6CZrb|KlvkXjkFUrkh8^y7DX{&@&2pxY~tE9<$ zz|vuFE`3g10AG|jh?4{SBQ2p#XFPKxvTK`cQ0W4mGwEX)(AA9M&lNY!|ID8ILu@{(R@Qz<_a(|uYn(FPno)*R*=G!e zdKW6VT9_-LZW3JiU9_sz%m zAAWKT0+|YIFDR!)j&c28>_cIF4MRM!kTd-b43-}Ww*qQa`WH%c)^Lf|H6DI@MJ?_c zANKH2R^qcqo`2>@G9lSbufS*=#|2STD^elEPl*Kb4u3@HzrHB!3+9x0Mr^BovVH~H zp4b*I~jc>L+bmt2$84JH#whdw`ug?W8_Nv=Z|9@4z*RCnw{ z!mQ9=F84FcN&+-Ljs_2LYf?jNTbmkcog3HaxxKJ+k}+FA+E?oon`EYl0tUA#W>Jmz z*=Ax9^AY7%C5BMC*D?m#44tl3T0Kj-itE!~VC)+VGIGMF0G~U1YDoN+NUwwu$n%c9 z!X$g>^bMv2c5+yfm0a=MMp6zBRYe=L zVhpEUDEfp1%f-3UeB(|BaI2jlUTYW{0(t#!)CVmPp4&H}4xN;oj-erTw?#U6b%*Mh zQ4c`^b8F0fIq4DUM%Xbb{JPWgleCN3Ugqhpu`thq$PU+j5!3R)^Me5+w@>Sl?D{>e zxv3^>r;2OLL}`bt3<5bujGb*Z?v01PCIbEDD(va#!yu6m?^m{U&})U{?2f5RuB2T# zVrDe2!D$d4!5rES~KP3TA zyV-Sf<8myriQGE-^%(iezbaXQcN-h0!1H>j@L_a^$Ajf-gGuJIaWu(H#+Bi`qPcAo zx_-+S{CZs_$KbBoS}UM8vjXWUk_2tx-QQ z#9Px8G*By^X3jcwR0G0CDpn-E-)`>y_sc5(3~-6AaMBjPEw-t;7SnHXo{o`FEsj+sV%ZP?lsA1WC>5jqJg z4unpG3yv21N*lPSVqlLy5a&vv=un@W69<-T^(Q2E8~6Ix_54E5`0J8#pJpR z6llL~x7RPgV<1hz9whhGi#$?z=~mMc-l)e5w>n|x2T%YfTyfaaAREw^@qn0w?dAUb z^x&6YybpB_mTzuJG}B+AMn8Y}>Ep%SyFY&X{&v3o@b=wL-w}Rp;X=Jl;M=^CD!)w^ zn6jsZ?^;GgBZAIqz*lF0vV|q0vl?TIa4+;!Wt9`G`Ud$j@#7rqxMy1?9TGeTU^(4E zqk@%p8sRa!jR!+x35-OjIQv?;)%u1;W{kkdq1V%EsX@+y^)J@Hl--*dzK^c&@LYb| z31@vxNR#8`UIx(hisyS?yEDmB${4!JH- zW?n6U%be;`#6kp=e>yDAve{(lyL%>s-`z7A{;pp=C;=B77pP&F7UFMjqLLbUbaHlb zb$Nc8Tfan2OCCqf8G1bfmJ#GQxJFJ_W$#y&V%tSjgJ0(azrF~|X)&CdQGCTYRga&h zmcp7|9UX3~Bc^REfjWu3;ZqWMN7dY|G~uvLw2sLsA;qM=ky7HC_y#?}PDwVLa-DI_ z0+);*1kMjc6kpKkD?(l;|gge7m5sQ+wf~<2%9>$^@oOv?P4?CQ>3c zI=$st(OY7tKCHdmvs+o#K({Volg>wEr4o`g!b)T(HyLiiz1iC+1owy^eUFG&gl^oR z46V;s&O$AJDA;QF`|l7DTKyNFCQ1wiOqBzUOzpBCV?RhM?8$ zdau76_DhL;tV(}UTEF1X=}!}7+gxJuP$&oIDe|W-RMhm!2dnLj=8_m7;=K5h9N#jf zXLVI^7!_FlwXlI4=P(=O~#)7$B(cF%QD1Q zwzw~BGReqgD>ZwHxbf2JAe(lWBR{?1Q(M3dWx}0uY&k^JBHZG9y|5-Kc}^F8((u{AE*jqsyQjfIb)|(Vpc~((_)v5C z8h=wmU`B>wNaBaqwLB~xZkL!=46uZt6YiM(evk6%LFKLx!9hbZ1^lY1h87q z4ikUL^l>0$GqRjLLFw13JCp44^nr4$a&>gV@EN9%P*RPdy0+z?0JMe}1A=uO$}0 zlh`#)L)~HGti=mw4g@2r+e{o}^V$s!zdr{@5us38vDm*Z{kXzl_Nl7RU4`S+q&awe=f&bNd%9W`gYWi#9@Hkr4|9%t%DEUCUw0$IDmvl*lBBs+*(f zP!z^^gnz0D$}O6clwuWwoX|R6{C}xuPz1Q28ZAWX8BrkE4nH=D^K5Wt@dcEtDXH$F zQBnmJi{j-UuD!HwW9k2paY>_J+v)cFludX_K174p9V>*CvO2EOAgxf=6z>eHv4|_x zPmX{1>Fq!Lcz5!{ckeIXe|xu+^K~%J`FdIcpG16y#Mw>-X!wvvM96+O#QaER{M1@S zDD|fg@_Zy>V}BHD244YUx5Ik=Kenmm1Zv6T}G z$ts_bJgDvQ19X(mw@wMy5|-hTmDA{)la$^yQ2_fd735*}<GX1CuzMMR>2 zdY|AASX~mISa_8(l}i3PtblNMr>V=3xc4{2>*cl8IPD+pR%Uh-ecf!E=>e9%mQo5< zm*Zq0Eo1G9d7*`MIX`|wiQM7ux<=Y%;n@k3$>8Btbf1>0$4faG_9yXZ-nae`xBIC& zv9g;?WfPb`wt-7e)NGi@IT`@r6vxWsFDAyN_)9e z<@+D@{#}odouE91_cO5}yh*m+$vm;z=NTX5Fm2NE7CRD{1kJFQTjXS{B(LG-REFVv z+9CHx1y1GH$GvS>;1CXSd9{njlF=aQ%1>Y#knHlui%p~1nv?y>Y89bX!++zVT}8yk zuU__HY}zucZ}j*L8eZENWF`?bXHRsNv{ARKOGuTBdijZhYTue!RD9G*sf3W|^N#!JaR_+> zqG?EdQ98c*1tuct=Ox(QJR0T^0rnX0bchh+9M~y^u>LNNE*lnu3pu<14u06CNpVSg z&}L^piwe(n@@kY}+ID-6%vsv#*OWy>?4=Bp6i4k|jB8}byx@hjKc3;==lu)xT?AIa zvDb?NAR_;vY@~9h5TF=Uocu>F-t!s_H$BX6==D$#3C=CW@bt`i-0NG4vGNKCu^kpQ z>huj0!Xv=4%Tty*yNXQtWlxDmFHmP7jAJlh@E1wVAeHt;=yOxe;X_N5%?AgRGFqDAKYV5Mk(M8b zA|n5{^s3Nh)cbLA{(S_?PYH^J=djxGLNML|{0S;-dAh*;=xCRC)`QD1|7c!A7a#R{ zP8G=wILOZk*byeregI8-F`$9^$_tlEtWX!7yDT-FcRpS&0y2C4gARX!L z*pRW`>a>#phrGN6GL#7FSV*{3)j4=ka3*pYA6dUq0O#$IIjpBG`~*^_r9f=o+*}>AwpO5< z1}~ekED2X>B%0<$$6ZVzmiPNUYush(P^xWe>b27OWoa-UxI_3UG{T?P(y1NC@u<@` z=t-D-378$MDnbLc-Zs@Si;Y#VL1W%x!$y6=6$FykX%Vk;+s<*OxzE2mtj=a}xCSw( zixS@L^-U3lJfVL!v(K;1Cq|(E3Cckl#MPzVu+0w`_xZtmzWee^ZckGeXA_K#QRKW|}FMv!yy2l9p%MX; zu3s&W5wlJIh9Go`S!Rmy&_)yIw)pXR2NFD_za(9nG(^K>QxlS4Ez!{S${Qp;c>4YX=zQijvbQU_QX)=o1d}Y)3@0m$g}?}tzuPy%M$)y zEm3jlw~U=2$y*8fBqErzonIX<-?VzT)bdi3?TdRf^vKH}hVf9y)%S1Ty}SEy_QeXVuH`=4iXR1@0i79(n1**su!~{SnlenFNNH z-JnWwi5w-%jLQl)1$`S4Qt3OT$hSmFU;775ABL>7**IH!x8KA^@^rXLkE{PQl(3?M zRTh@veFM zY2UcS!0fCqCez^&sns`O(M#vPUUBI0;4si1ZjZ3h*O>ND-ryy{DHasyih>y_nU)6a z^QyJU{y+dt8o{cy-dvhDtlj=uWSSE|vZ<-k$Mut4vu=g*^=*P)hK&9+^a(i!!nw+v zd4Ad!&l<;2F$D9^QVQYlO`DpZvWs3O#{Qbt>l{rQNvBWL&NPyf(s z;UY-G(v=jp0$@3G_=`ms}IwqR8 zd;6-|@Pzr3%;_>|kXE z$RFs`_OHAn=THJqL8PD`?AU!roxXq2yC7LoZ%@uoIpz^?$T2rS?+@Qez^-i^WRW%9 zK(5B#zxJpiBOeu`7^DiucR&7gw|D=ej=sJ=+-yGMaSY^nT_VZDzxl7@K&E?!kHVdH zN5wDyKc$SbsxdbQ;(2>Io@wF!U>Al>d4{p7f9+KhU*GQ6 z!Qm~+2*v?*Yp``LajwZMK;2VVS<~f4M>vLSW&=^SxH4S&f!e*rh`fJkzw~ffNA##` z5ys{4!p-FdGlOTksGpf$Sugz%GhnEO9Jlkm?#lgM@WFOL_AcwS_t+4oGGQ=}>_ zddUZGi{XEljBI*n|LCqhx%Xk(WHebo`^2{G+vCBX;r9gJcxAdqE4gOQ*hRHEGO?c_eUr|(uS78DP6-dlDFRA0biV>Sy&#e(V@X+%3 z)?+Xlm7X4 z1DNP$h$$v~O0F37@5m(r2x^~4;l{*$NS|Q^5>mYANJe3BNnkBfn{q8xts~}F=R<7s zc!e;>AB5AcGMu(;@fNh5`{03N$pY?lKT2Xdj=|Cs8@I@Pqr5S6HUxcVg3>tB-Jaza z)9$Fltvna~w+1+8P}AfP|3LOgtHj_;D$Df|>D$caeI1^U?w#kBKs(kGpWJl#uFMJk z(%`fFleUCKZSbhZn$U_||1WoM+8x(*WeM`9M7vgcfwq)|7yv?@PW1}J0Kh~bf)Rm% z`VxzlAcO?(p6V5K?7#SC!Th5$~S+ru)u4^MDB8a|pvtfvc+= z-D676vBn0N>F#!dptLjSV9LcPNAxh-m{=J+qcIcvEm-(Opb8v<%UL`t4+Pa0Gnv>U zkNiMTTZ;AF*_R)Blr?46l7Dcj`R?GIc$l^MM-gKz z&v+`kIy2-ILKubpW@lf3I5IN}dKvg23e)l!%9pNh;WKkI(p3ggb5N#)?H#MO;8yq( z=$p$n(ZW#8(9`2B@laMD9JGc$-(DX%cOt_~Y)F*&yvPR%S;S*$Pyc-V)B64gJsB`O z2iZCROmlvT9u{|0=#)|81(BbLAd{}iZFB>*mUN7yZ+DLTM5d_rk4tt>^syTW~UK9$=6wy?0fvcQ6%g%F{+JeDucJB3R1b8D)(MW;2mPJNdb95i=uTThV zx5W`JqPI1_wWv+g$EtT%NK*nEicP7a!-{c;QZ0vbC(`Lym%jSb`{noe9^ax*;9pS? z;Ptz=l0i{oU_0 z^&`PWPcEoYg~N9$D<&SX7*j#Rx+Ze@;eF+cipqK=hPiZFa!;<$*FtMBmLa~E{+y@C zqzFxN?o`akE5(XfD91gp?HNaUCG9_!4xPbbV3a711g9`oORQXDt$)<|X@ylap?VOL zHDI$nUwP*#CJ~k&3)`bSJoFES?{v1Ckspd7z*1*lF2*Nd?Dfc$DvLSK-KPT)4pAF$ z4Krm?ocdufRXQ%HLMKqjLB*zMQf7!n9H(*>tmpgY!LdgZWRCoItZz z%Uis;l3Q865Ml-a+%K0a!;D<9hV5GN-sdZnFntIPirY|7Y3;TqG;kAg<+DAK2aN$0 ztp2KQYw{iW%z$GQ(!_2;Ee5%~Pmr@u;j9_$+ZO@PuK>B0EG0*K2QF#n)9$A_GIhst z++z;}DfbswOmiEs_u}4Jn`;QJnAJc2%&Y-to%9}>wVp&qz||53HtV`0UOB>w91O2k zZaHFT&IE^g`S_;FajoO`8lYm^ZI__C+vO(wrhcdkia~(niG3g_RX#Or&15P#1{>bh zRgXmQN$pAWG1n{vlJsxjGJ);~T$!P*1UD(H1h=rP%^-B0Ni_fRYmlIJaxb=Rk&Oc> z?Y4!TZMa^t!444nY;QpdBaOT??IN$p+*HtNm@PKM7q3B@9a|Nd)Du+m-9wBf3G6Q)v69~R_l^l5<$tR$ zkB6vGs*rALS&9myM+#KSheEGxK$gDU^y+{?P=5s)c`wYAG3w^xbWGcz97@4*D85qD zcotUC&t*D=Ln>Xl@J~IfQk{eomN>8u(bNtP#T%I@qk@3x2i6VYDA;Z~H9KAqNa~_( z9>Wm0=7-n+{eJhcmxwoWUfoMWyA$6orEB2TVfPlAX9=%shJQYYSB!h=u0qxZN~%)h z^2K#!WuUYbVP#K)kc8(qzk2-1A+cKsqi-}@v=3<*gDLRGVFrx(%a)JB0lCcK)S zs=Ww{0Xn|TQEwfN7Lg^ac&TVLCum(vQAIra#b(s}PBl!^leq~_bQ=B#2nw_Hq6aja zBEjS+6hLF`7%R4yNnhb#v$p}gDK;0`<=)CFD8%1jr^CZuYh>^J!k?!w7ThyCsO_#4 zK3wEuD9kQ$_HbJXplBdD$h{;777|p*WoBw+#dH!oik|!raceB!4u(hjU*VbHA=C46 zloBl%Zhi)H)serqY9Z?ONtd`@P<2>g z#SO9|LKwoa2VesDDzYHd z6-jm1>8!__p!`&?9Ja6tz>s@lc;PV#&45_pOoHjo#B}_R&B074mZuc**S!q0 z2D>tV^;DS%xsJ-!`WtIyQ=>u0gtWXg_D@g8T37$Ao4JXrDYu4?Hjcy37kfiGzP-qedK0F!_!&V596j$IJC^}5vKeDK5SDRd^d1!X|Q6@6w|5NJ{?iyx`r1e||Z79*142lpSvU#74B`kI~&U^8ze5QJxS zH;3y8yKs4B-Xpv#!$iz+gopIPr=H4cWTG)eOX7r?MJ5(#P=z{jGOzj#-Tto{6eZXn zl_)GB{}Ii+in69$1bP0s9JX~D&MT1}UOfoabbYfcld&MumQDrWphppXJ~jo&nRB%4 zfYwP^M<0kydGMsq#HK)ggq$b=6Zm`Ht`^appbwLYJzAeefEDydbsCmbZq3Ima#Y>r zTBA>hFq9-9rS>0?QUTLFje)Vs1%u2ng!nPskfdB%4t5Ci&yWTvRvif_hX`O%B2_bB z8*GdhSi{TFMp!5;9du;>hM5U-?4j0lp66!wIz+E~18#Ka5$glV090|%*$h^c#cFkd zSDzqzM2b&2>Ma8y^}+i+e)Ge-&HWqWA&3MR4+bN6g9*7jTV^MLL7pfo9+X)6DT{|` zEk!YKXNVO0l#>dC<$3|c?4I0!bhx4P`DhQ4tl{=R1VGfxqyZEfXpC_epeWn!OqT+x zQ_96|cy`2pNL6v!MxP3dKxtu>%BDA#5IqJ}hdv0gZm?vqKb#`)jC;s;8tD%V+0|?O zVlqnRw;~4H!ZHQaLo-+bICy3e2^N@;of5LSA6EjnctfVc^OasPQip1gW`|{~wo|J$+KJo4x~J%D z(IkjO)Cs;a8Wu--Y=|E7&2&-IBxi&Ch#gQD|4A?5J%Ec{CL!8{$gG=ULmW@e5iobN zRTPRoOGvWaJFS4~Js`ukRk7i3n)~S?m)OPvL;4Me`N85*bjsT3n$ITo9 zh+@(jttd+}%{6R*(?W)dL`kIoj4UJGGS`7^&(Y~108~g}L}V8YNF2a4XhR1IDHkE| zUmyfs6P+S-PPzhXO;-eQ@VGYW#>hAB<`GB zgRSYRZj5254ktp{K^6>eym%FH6jRD&WAU5;f*~mEGNJ)6U?FHOB{=RJ$d!$?%m7_T zTUVtsU}r-8mht5U8vfEFu>&T;Z+?J$O799{L>uJYR6nzOaF^yZ$um|nr+q(^L2f{j zz^XcCr*vy}J6DsFxen*cH=zPUjQl`3b@l+!n-0icocN&L$P2`rSA4Su>3yN0NeRFg zM=_u3h$|J5a2-X_j=GDY4MH4KF(nT*HgAc1(I#<*h*)HcO0{JCFXKExb{Ze51=i!2 z3yZGIX69l;HwzKM2S+U*gr?T>+7tZLq!Xz*LupjOo&c}K>#`(=xQ>HnsbNNvZ4s8LoP_i#Dl6`x(*qn_|w{T!|jOp@v z;_MsiyWdFVpSkBpZzbzLMX9*|IEc$yHhf$=Ur_VnHC z%Z(ep;X{OXw|v8}z)K#Cje~+)H6d$4eS64KP`b5>tw1VSf)cudio$?`nDbnpHxKDM z*?uBD0morT8(1Dqpv$YXC8(zth(iFv=cg2sAPD2=1cIRUhY5!<f1lxfA>Z2)tlEppd*vee@`3L8ln0(}OJM%N4oM)q5`%2k{O^KaNF zK+O2qL}#q6R~vAS#KmVx2>xaLxa6Ahs3`6%dTsGGA@Sj7U1UbPZ_N&=GP8pMMk^1= zU{4nJf4O-3t&k^-;u4yNl(W1V0Wqrr3JWUKXqw_1Ku4R+7N7PS1!w)lJfQ7CLVU`txI;-p}ILkE}oV?_T+1-lw9h?|;u)G?qfbd96 z3^$4aU0ZLlxkbVTIO6REY&NYC%?sM6q!ahA_mz2ddbXHAa00QOe}jwo7l)-6x>7G= zLkCnB&K9}pY#cg1cXg>+M&70F*dWeO@Jjix4b_*i+b|3ljbict{K{+@^*C9Niors0 z0W&rK1=bUl6u!6rF0C#rB%+WVxCljX&|#`6=MhvjObRsm6foJrXXmUC-nT*!7wlpw}GGqh;zvBMO{w*W2ao z7_Bo&t?D6(Q_KUf8Zj2c4{0!mIhj`=S4hyi=(h0HpUu`#hh#y4@8#mg+njG3qxf17 z8xcZS+B^$N-3F$%QK&Ei$J1iEdw>7K>kmlU{vcUUx+qrpXpg?z1i5Doq=tdTtL@G8 zW(^}IT7ecBI6m%kS?=_bxfPR_u9+7jT4%Qtt)<0d86YF6#(EksM6q7hTz71@Riig7 z1~g0i*^N{KIOHnlX9K8DP?6?HL(G&J_6o}{$EQNj5XiC1U1(>gKAe#jIMyiHEMWx%K+}~qQ?pvthczQDj)wzcKil}@#zMihxdue%f zcz1M!Tmtx?gFp>-f=vlK zMCB9y_T%d}_gPpvKd6PJ`ovCQ$?)&|)tm2EuYR~+y?^(^`&WO-n2B_&1`Ho&xjj24 z(=Qwd#rLF*05jlUt*1a@fIuXQHur2h5^zQlsQYh3zeVKR>Px7C&pYcqD*H!PHlQLz z1zxA5mZq*5<7ugjB^ziflfrEXT@)86z>ShjL5b8Fu1BStdFeF7{&5JFt#FHi2C z%?))4`C2x^&rb)xe)L>;!(~v29c8@UjQlKX(`p=LPBRZ{FDFs_>aIfSbxJHG8h zw|cT+kkfpL5LT`OiPSZFnOEwU)o;j6ULH`|voVP)Z2ncM%13JHmg_a5`J0k*M!Vb9 z(I5Vx$=6Wx!o({xFm{IA3{o0yuUAK|6@mj!Caa0W7W!s+pyd~adrZ*4!|~FgW@PF` z(NJ`U4&lqy<;`?c1XjiX^bC)xw5qwd*@HX~Ot(29Y)xR>FP@n@=g`GPB9uo;$i`#z zZ#l+0Eyn{Y>W8VD;E|a%@j(HrCJ1}MXf21Z+j8Fqx{TPcjq?G8`L%5v!%bT)wz(5% z(rvN}vO{pOW9B?qqce8bmm5`R6w=1B)G)T=nM4b)rTKf@BViGe){fjZ^dN+ z%_+_E3f{fWEc4f~&KM>uMFiCfHhAZyKf5~eeTpxuC|CJKHt_*<;Qz zAu{naE-`bwP)z{!J#MdPGC|F%xO97=SD)Uzx&Dd&@Nncs&lsdE_h?BnR$oT3%4t@%#QMF}6% z=BS4@D_|*+M-LO>Z9L4m6E0*|ZOAp-!NH0j2O@?LPgbZpk_ncJ<;DK#o*?c3R~Q53 z?1kh$pdHs52@)kM*Mcd=2!p&qaQwu*-f^gh*-Tm49Bw;E2mB3`L>e4gp2IWR1=-H9 zQ$iF{Z8^S&q0}!4X0iv)9t7$eyxfDqOb?#)KroZr2N1V2@1qB3eVADoMJ^WEmUHmr z(AvZOCmDt2k3$-0SDvtS^o?CgO=sH-TluW@82@M4u+G1f9pXVf*s`} z0J!59_`}JxC-X0K9Sk5|``|YpKD_$a`=`S%djEu=wtpJ@1{HCC^RMrJL%TChe9FTM z9O*7!^nPOyU8AR~U=obQu*Imr2mJVBY%TZiP+?u3&X8w?u3Sb!deF&Xcs+dybuW)T zak@^*eg6uwTNtB#@Ex?5wMUG(^@*pm<2hSgx+M7ri1X+bmI{ z;?pGBs^>)t>Kes+a{xcd1_gFSQVgKLqGMPxmcoQf!<Ka47ngv8A);_Trbs+GgXaxtcc+3S)P;AvzL$3>yW^CgRu_#Vv}IyLbu zFV|n6)`aR5;%n~cDY-BoYH{NcS^EwClKPqrV7eqdhgjo{E*J;8oHk>`l?<9fL=&nD z0`<`^k2I=HWg8GljJQZ6)=M%Rxfr_FbVYk*xPLBhL>B%bn2)8XQ-L2u0+0qm`h%0HZW44L)T7WfxgJD#S&EU#QT*0dcDq87wgyV2A~(m!p{Ui= zDj#uzJ&S2uxhX;Kz!k7O#3!)b4xUZnVRHdLJERrvI}g_4f>cmly&yHyFtS@{I9?D@ z!xa{mU%m^B50Bl2hOc&38(lh}=7e*_t8iXxUxamXWE?FWYQ(ieLfj-P_GA>3@@eb@IXY0iv~byR<4acz=(eU$Wor(8yeavmn8Cj7-4GqblxG&xY*z1k|-j z%$aJ!^P%l*QA^a6N{T290iMi31Flga`8n=pPwPCV4b>IvHLxyKZdxRLlfn%R6(-aobUlt3})?*Ew+)GlY@QeM^kkY39(IQipMc z^QbUGDoY7T(W}kvPEeDP2q2ps#-V~o;%KcsS&Y(N<;qjH@Zv>gnzIxli{YTf8hXqj z5V4Ho?Ve%F$+khr?nGI&K!`AS>DwW8a(?{2Pq0G*Y=V z(h*&i$Xm)n3UbFwkn&~r2^~WgnqZ-R%vWHH=xPGRWw)NL5OIWnRaaCr+K1^OfrT2h z*{}l9^2VrPI-Ed?ETM-vBJR8jziM*?8Y;+P9NK6+l!r{dy*Bf69ihVcJDYrm~ zWQ9gxJ)m#C`wnn7Z?S>`1moJgb$E!->8DRDD|UhUIM89z0dwE7AH55w6@1&>+%$ER3+=SPLG8kQC0eKOESmS=IYZUgh^k1O&d)ocBSm+ ztUo9aT1NO4w22fJ?S==uvh`;*dAbM@fxwC=-^mQYW000SGNc+5X(;(>uRIWxuQXY+ z(hY>)(FrPfwMH~gOTuzsKa(O!u=f4qtiP3G`Vb1a#Tu{g&LMw718v-*4c9Gx zgp=FkzG$f8ZZtbQl;8q72Be%khe#sSpwM2>rzrdfMduWiaws{$8j3JcQjFj{nVd8r z#<_2o8;FPS@t;}q?S4Pv&z+rhgs8_H+mYx*5K)A!cr-3#4cE(qhffx?7BYkeUYpLx z-8V&>Bcd@!^v7szES4FJ#e}Vje1~&}mW|ZsY==|wh8ZC6Sgfu*yH6A(K;T3gqP-Eu#`QSm0K3(t0n`ch85(f}-QI1Y5_M*|ozhs$Tos+$8kbZ*L0!w+mB&nwgbST> z4BH4q4qp@P9Qh?%K>v_XsleO2BPm-jtZUE{Ua!>Ce~C%}F9(!>WFe3!qw77W4?KL< z1Ij?Ngb&gVnnirZum`a#Aq1yWR6zlbd^76-M_Pm0G)=}0tqX+Db2PYRniG7jxpvy= zkZ+gP(bLraRzA%huq&^iaSLWb)H0;oXdI?nQZL11rQ=IUjRO%RH!DOrNG}U({_^rO zC#Ts1V)VX`!(fCSLT{)x89T-1CVwRbs7pYJ!$zGK5`q*NN(Baa-wb<&ew#I1m}4C9 zwD=%;1&|leS4n8vzyV_M{ zi?C{X(3((vfQFvgU4g?08TC}a(|1el^)BFLfW`na-LGtiGCD+~zH*W-K|EtQZB??6 zOim>A{yYt!PAIlEbO+3U^VOI;wswxp1?lRj%BJafLPSK7wm~`eYMT^0C^&?A)fg5Y zMp?lA&{fAkmR6c%k0{j2k}OpbFDOMVoHbU_)=@c}H=w1BW4pB^Jd{%0qJ$<%P<8@< z4Y+5MACYnu|6-HC7H?vXcts(H$z)y9+$5n1qE#+zb5a9wP23w^%E>v-fAt=CML^HNnTZ}Kinbe_Ec(#5gcn7Tv=_6hRDUFU1`QRkybWXJtA`l$1l zo#$)xQRiPwyY8>i$DM!Ic|Jx}_}o3lsAUYDu!``>?qmU-KEhD7p24?p)obLZ?sjkA zy}$qX={;h}aB1S`7W%*?b_6$z{IKE#VPNYtM`obzmp1$D)PkE(PTJ*~w7fzI*-l&Fi=KY((L^lSZ~tY)x(<^S?6^l$(;v zIvrs>AgjZgpd%1H8YjUY#-GBy!K>voOha289&m3aEcDG>FK3YhaPK%cFt3=Oz0 z){q%bhzs;hg%D{qAjJ5r^#bB1Dvx{((lu!)r~a%cM_3k;f@(;>{58E7T|wr-Mu;c8 z!{m}kz;s;UG|$@5Y>W3vCt#i91YwSa6VJdxR?!NBIxz)|QmKx_k3 zo`m>W@3+mrNcgrk(8Cc4gaS(}J1rAPN^mE$MtL62V1`s>h8TS%D16%HSH} z=8fDij-XzQqKd%DlXL-*F{KrdvPiHQX2}lW9kSUm$y`-4VJt_>2H{;1jFjjjw z2gSZHCQ-(XSUsO%Prlbv%VHAa#by*6CWYo%m2;BRnBp`Q>+*1fd-nt(B|s+%kj5T{ ze20EgGJjSUEO#bVV{oEK8dsaK3;rBE&}S@7NQ<5vw9xOE3YM19Y0j`cQJoYPky?#XkGv>iEsU)U0_EA7syhZw300)-4R*o3~WiA+4@*9;S$xDN(IO!S}6pSXOn41 zBzSKXGy*8aR$&0Gpw4C>)+0{Pmov%VVoB}MNeUG{nYzq&hEF!3{wQJ&dSnPt9S5rFF!H+JI^cXtB#pU`A#f zp$npQMq~8_Bu{}UH5Ru8_644vVkQ`%)$lm@vVS-L*$C}%xI3pXmb6JfcA6GKU4wKP za&>qkJZvj_XXTwxrKOSiBPcxJYG9~v1y3%|4S%WsYtLIT=aX6nsUUhQVQ1AMNkWT9 z5w@W^$poviD8jSbP5M@chfL3uC=$F7JQXJ*=uxh95)FP1Qjb1rCW(p^16s1;n_)_I zBsj^Z39n6iR0+}JiqazX1E~>X*_mh(f&{PY*$jHY>M*??jHM$lkqmwp{SJNU`Nqu&dK=I-PilPk zcK!40{rh+Cv7H0Iyby(lem`ipWTHnhMf1QpRKsvNgRro=U9C|iUnZWYRmyiPV0yL? zXp0H~l(#dbaCL}EOKC6aoS-XOc8#^!%^kvqjH%BX4}Ky#0(Xc1XpdosIu@g796uZK z3ClE+((X&V`KPr|SoUZDp(XpE)QKh|X@)b{mfJJtL zPs&2;-M)x6Q0ocP5mGK;;~8c7Zg!pRr2e7LlOKVRZoF=H)gq9K!b_0cN=%aev8F$Gj8?G%M%*I5z@RRZ< zNEZH)RGN+iZ>(qv0Vo?S=e1R>Dv*e9VWWd-)8|{mgaN+hMJrhDYqki(e_4sA{BNIS z2>PlsNhtXSB%}9lUi}@Z$RF+}KfU=F@^w9G#KSv#?y%YPcF}uxWLSY)Sdb1bstl6Z z3s@-gft7?;@siGA_cvo1brL99ddcba_);=6wv()=2(P>PBMOFH@Qz7__uFGK^=H~! zIgRy`!Wg5kHonBBgL;TM0O~co#$y6NU2%uF-W6y(|Ei2+)LIGn)Bj38lBPWE{k}&p zQtxX;`1*8tpQ1eBQ}fgy{puXNqQ30!be+5-W4^@3YLR6gpPl$73dcaka)d6 zk1irvGIIJz1yXJr1oj2=Qf#VGSL&L;ddMsduGaH*ZQB;u-wZ^3w3q3%fyLX~6^XP- ze13Ev3^1;i*rV%x#smM*Sr2&NB^#WwY1VEGM5j`0N4b$#ImH`#Ig9o0M2d6D@6_8f zE~*PsXAVNi%IU~cjF7euZDEqsNH=s^{!s$z%ajDpW9t<(b75+cRRDq3p{SPK&EgQ5 z+LGv18YBTOmKH(DB#-OLearo3qq?6HW0^I;6O%NC(+}XaR0&y_WDDCitWvrz^V*y}rqI*) z7S+O}-j0#n)oyMB3whY^;U#G7J6cKp>7~~wh(nk@eVYiJYRr*^JN>D6>PLQXZ0)m~sL)AL^eYg`i7?ia}{m zI#Z#`WL6Y?Se&LO=~>e%OL?_T?u8OSP58^Nr3xDfmTD|#iWl_?M$t;7D`a5b`}Gt(5+SHgPi4Sd zS2&O#%M=^69n3rA=e7^mhio?lo~XP@V+|7$8BizKy1Lko5f`haIUtY4C1#p67y$X5XMIHyx;BjA`;0!kz^jRo(A>{I!YgX?56)qpsIVi&rL$-r$LsxrZMqyu8UzT2Lw&~ZA_ z@+sT~{Y*maY}>`{B^vP1QX3YjUVcJpstvHO16~(hPw2euB|4+SLK-wi()OfR&SlU@ zB+)^^m6Tm{WwT>*#|!A@qReyLuTl(XIk*!qR|`lCv_!dy$Vdlu&?DNtDjO)wPxZHK zLiH(0H**QT(E}y;MvpDQH*#%B0u**Ryg;Av0R^}bEYj?*f}NftNxU%>smSRRmLc^1 zoNm_E=(QZs;%T?lOpq+~61Hak1jb0x z-e+cO0}&(jP(LG7vu8gelx1_9D}~1^6g+ZAz8Mf3RYRIM;2w=sLc}WubOp<$QZd6K zB_23L15(sO<3iAT!m%iaR*pqAG%^r6WH@(MhuYbvfqc#kj_5b0L+{Dp?muQpIoJ}W z2H9Q(HV?^t(r3Hp#2B4tC!?{w@z&>O;)J=lFqjw?mKH!0U z$j{|QNstWNzx(m7dxFeU++>JTc@C@LXA5Asm_v#h;hHIO?5;P23d$E?)m^nM=?28695ml-A zTpMmk9yrR#zD^`1KvQFzvbljpN>G>3k)F7eCFL5*<(6uYu7=#l#RgxLi8Ab^f$wzi z{%KDY>)uCA7NiNjfPZj)<_+$0b~Dknpf)ZBLE319ibtMwa{HJe9jDU4=2f)t!J*(I zEZ39~$OuwFsEug6P)HEp2O8s2SSks%M+$4gP3#NrMY6HbC;=pg#11z&2r?266h>^} z?fIV){Jf0$R5?f0@spF^DrzNK)F-=T8~_@>52?{FL1I?$Hl+ z{LAn1?3bT%^2<;8>X)C=Kl~Nvq|g8OkJ4egz&3egz&3egz&3egz&3egz&3eg!QU6nH@94bC{)zg-#y1PVE2%-I>&q$%1kls2wTT#1$@j6l@ z>buqIMmbNHag{G3JrE`G-`*V92muM!oK_(-u*9h8%>qN1nDI38M(xR zg_yE>7wcmqr7i2F(-~rdD*Uct`p^~$&+d)Laht%FGl=*CF9NlBvGc^jVgCtJspXtP zozpXwzO?Iy!M_F9JqiJL4I@o?II?2jv`wMbCp%g$hu`49)4T|8Z;da`2}vT zS;PY(vFEqf5Z#vM2eX%AV_u{3TWATOKn#*)+Qtm^+0chs@gFE8=NfKI%+^_mcP%i^ z^3Fjjt#t6^;awj)^?Cf2-^8MsURCDhZ7XtcRkoEwb8zNpDET+>knWQa!cal{AiRm%EihL>JIRAkM?tKL-L=;E~CW(nZ)931&4+I&ist4MkY|-Ks+xJ-| zrOn^pe*5G5cW+<+_gBOeeOi^SQQRNazIVWnmORbpFC(~AK`7?eL%eT)vzzzfv2rr+ z0Uj-|J|=}51p1>Z{dA4CDPc&QDl4S}ApR2Oo1Lz?j|P}cC#L9bsK9b{jX1gN zZ6F(;7yj+2%t2zu=(!Vh;5j@FhDlt*<`|Y@V-Z~duz9v*)yT#s9qL5dGfbsw+>~RZ>JzFoY&7@HeW#1_%NKm=3n5zn@iW}yF$sr;*O`;LIYnp#m znuaWi#+YO;^T;O1cHnq^jP>6P(Ql*mX-WU^Kb-S$mEo)Wl2kP>eONP+T-KMu43b^r z<;-SF>PouqK)sTJs}OODayzKH+gF(sOo?Mr)q*^3PbRd=*Vk>sb!jBrj*;~TPJM-T zP5e1#QJIe6Nd2KEA)6dcyeKej)fRHOCTSXfWD`geyh-qMsK?}TGOppmt0jg5!ejU+y7 zyiE8@lfCwAHsq&qkpl7%dg9lM8??_V4g{5GltVetO{X=Yc~EeWS8_Fj0cE~2Htw>e z?+$K`*icy8b|dHpQ18tRgC~O7o~8OOPHi7qCo!;2i>mW9fpqW(#Mtw!DlnT>pIU=j zTy5v%P&&^3BqY%1=(ghtok?18P*M~^Sl&RVY8?AY$S1;5&5z zgD~}|_>iUB6`T?~^-h5uTw#4j7VOFH6+v!>i=>9}yhS`(~m?wq!SXNPQ zfClgldo)2RTW$)%`05J58;G*%A{4`4Pa>ol_!pTi#;e6_v0S6#+X8tMXsWz$uHyde zb=MSUjf$Z?McM<>)QKWwwq9P#7-BU+h@UaRmQ!eAViZK#M+fhlQl4a7`5Ntl4@U2Q z=ClXG_e=R5B_iuXZI5hfu~d*b;+Q>FP2`QofM9!YCh-sL3ogK>B8J3=b9Gm=F97@r z3^>yPh`_=3ukYV{_XXNZe?p-e&#Ga=wx?`4&9UG1G^O`n{!5RKq>6BPMC-2ykKR|_ ziY6WEJy6dTb(6gng8zmV@PrN2-hX=Q8K+OUBXX$&2CwY5uv)C0nuSC>M|Y+-td2R; z`|wCUUb~NFN|Hp6LH7gM+&JRT(wL+7rN+0KE~b|+clduXLhJSBh~Bz6%8({tv!~#; zp}M%@%USjXbrZLzRp>$kr0IH0Hzx(McD+e+icZcO2Xtu=R=TQUP*=*&{y;}whF?SK z8do~s!5Z^r`i-5LtMlM3tP4Rqdj?2=>xH=sE$3O~@Em~^Lo6nx+bX0x>JL|gNOla; zjF8lMGYz7KX<@XIidV%(+Fc<8pq5DBvtr+gZOZcNhyG!_Yg zVKJ+(Euj}gbGML|X{N?g%Ci>FKNW*02ZU^RPTr#kumI1us%?>LmyX=8Ud%P+9M$NO z5AvbOP%FuSA_}>SNV-PE{({%WbmEqb#1bxhW+fv`h-CyQYRy z>=TmeGO9)`{;=D62eRag_vA>Efj5;J&?OlgTWKMOriwv4vqNnfvt>f~JY9cfvU<@p zL^OvXo$L@~su~p>T@~Ar0b(p8B5juO*g+KfyXg#V_C)IsQ^PDsaa^_<`)IkLsr@*|wIM3o zG}8%_s*&Fnmv`Br0raoIm$$O*EfZf8R0R8)&L9dah zTR9;5Mn?dAsqFQZ}kb3`J2Cbi8<8cdS>pqrmIV9Vx^z(rA8<6v$+ff6E}qSc8ITy>ybs~ z>x7W6Dld2E1b8DnDwJT7oGb^df37P3*@$0#%h{r zFM5;!<)_asSD0kWm(~0Vs*_Y<-L@LpC(AOd&a;hX2+m6z4fR9AOBA$58z99^9HHcQ zPPe$Ubc?}*=@#WA-Jb}7GU2ci&zr?GD^Qv&+`U=Mx@KpXrt_hZ6~o?Yc=0L%!RQ~c zne|zLXJor^sHInkbA%4{k6EWl(G|Fuisc>fQ%M!JACPD(cnFEz(2xwfp&<@-Lr0LB zq_@;a1WmwY6YF~Nm4$XN$^vFSU=?^%KPR>yf;qVblx84{U4h=){l~AV8f;qpK)O8>*9<$c20H@<^$Lq+fXRE95%qL@sOb1I}|t0v0douC)eG z_ohGra>Z5JE!RmP>m#;_w^L;(3lo66i%Lma29IRwnxKo4kT=Q-mISr~TrHm2=bhB3 zPmr7IT}DKO_3b>pTqPkoNSEW|!38G!EUOJQVmJEFTnB)_!>T>)cT;^ILefit@OzOD zeM(u(#7VmVP8?yCGBbNw_od)?op3EaOYHse#qtJqtKv)g%ktGqs2-5!FGz0?IIhvu z8|FbJVniSF7F6fJ;W&ATNIh1AIKMbM@4=H-kGOE>o+WEILM}ZlVj2u+VGZ+dDAr|1 zRG$NI93p{{{&QBEbM=%jaNT+}A!LB;y)37T9_0bN#*^f;^2KlycmdaGx)8rDt3Y~i zVG+$l^AACqYx)$=00V%6at*@}xWM*&wx{BfwSJQs=(81+dMKI1Nl{uUo%=hLP3rwu zk2Vn8b@=Q0Bp9Bmic8>Yq;+tNps5=FUBYsTH^J_Nj+M2;vgU;wu&wA!rKwWm|MF`_ z^_gNK3qV!xg1NZR*`Xwl?^xRC?io~#)tArCpL^Zd%QaFbZ1SAY2lRq=mt;&?@s?`reMTU%{~)G26mu&?qQu3W>U zq;m&=@F$L7sb}u}pzGcvf=$PZ>gC=IR5{APG4~XG?kuY<|1VAyrTH|kUtjoNdjH=0 z+mEl`+#dj06#b0N(=PRz%v|V%VQFN8ghSBUCqr&3rwv8;32`ccwbD*JLC0i>336hh zKm(`~vY5O^lwI7z304EB6TGC&&nQ}=k|KucKo}M$vN36AkX=!p$sfSU8SUFPu1giF z7tVJj4N)SYIn||&F|IXHI8MspwlrSSM}$zol#PC=jDunDA-Q+qQexjPnl23879Tm-POYqj(4WNgpJVH6MUu2Ocz*;V)(KPS8x zmieXwc3GT5B|%Rmn)LTx7up3HH2tFM4jyw|*rq>oUBry#=S7D7WcZltA{p_QUU&4E z>%v6-nd`#ApP!fH`6yo(%WK`t%a}yb?dD0xILWCzWCq&4%D{PT2_MghKAxY*1w{G3 z2**T4Pl=i6$ZJXuRPp6=HRB~mqGrB)K6ld}gRd^(|Cxt+8^^-du*A?j-OPxsVR|YO ze~9kT{$F^YcQi(=AbD=|z8Y3Z*F0!GTSki{4%LjodOkBWAv+>}Y%Fq&D)jvi9s7vv! z6>GM>Q>QzayUj@AX#DiahY2fbZr*)*|Lwh{6No4?)?jHB2(XGcT3)&EYJrFAc|U3* z<^g-@RLTUFx;1rNJc%cr)YV+D^XByJkVZ1R5RC=UxGBXy`D-~6Ol0v!aMDJqo*B4#C|O9_pBH3R9RSEdG{2-sfOeP|#j|IVB%YZG87?xUVJ&C9 z`cU_9QK$-Q+#>iaRDyzA|No+4brfZS+JNnmbxWoRd88UNO&!InX^qYJQ`mSKmZu&& zc{hzj#hLh6Q30toB$abAZ`?m8)A#*zGL70lC-l*Wo;h#D{nyE~ZvULTUH8w)^56bB zUp;0GAGOerS?T^`mb(9#btIdLF8n10rCL8jMU433f5x z!rS`bB$hq-vWMtZyBMQHI!n6RWt2Y)4h1_7xPe>@sZDLweHXZi z3_XKv7FhiC6rl#S{iXsH4@~0-o$qBh85~c!Gz})mF|D+dFJLpWhrna_vMRs;E)?tH zW3j;{kvSfeU#j+P(>)yw|{Ph0*hkxnS@xpFPOsQLD zS>y!~o%t_*Qtw}T3=-xhV8)~Q|2x7u(`gT6ZgJ}n-Pg#N;I@FD6%O1~LpgUpt#S@C zJe@!Hc?2x^3J<}!Vmj3Nvksn_TrdPJ2-YjDvQM9 z?K-?B^ne*i=oMZI+1>ZmmvW#^C```H=@m$mxg{Bsky0?}g=f6Ks;`(ilg{zYt;Qm@ zE*Jr!=Ui&6~a zU{M&@@hB4oi|XlAS0%_EGp)VoF%#}IA@cF;kr{^#>So4rJ~UiGM&7tGq;Tt93aS;w z>-VF`1IbY8?~2IivVt}dmQO)72?^4plQKhkI-8H#?kxOI=tvdu{V0t99;~<<&{`=h zSE%YcJ-9=N=wIKx{_g3W?KRlf7vpPGfI%y9dvVr2D1v=b1KFX%BuuTb_!oS7MylLi zOtJL4-tow2wim7%G$Q~-ZZi;f!;P2@G1!O?qrL$urAk4nhqUjve|r}(80tk=?N*YU zYP)j4v^%Blj1?nHZyoSHBGj6YlBi3)`yWzEaRpaPSx%ac1xBZ!?~4Hz**VeVO=-$`hy`4tQ2Ubr<1;f}jTYGCHD9;o=OuLPrqbm>Y@Z z8huJR;a*Y67_L1ED0<(kaj`6ki=r$x0~7=5mR@TV5i(B;Im>D*JgA?w1x{-i1e33R zmpzLXPGX`dAf?aIsHZJe@W#t8bD@4P5(zezF~QP=cBmP(H6qvY zsRBv&P13umZNw8)qd8qJ(RgY(iM$ezO5V&SeFUcmFuHJ)(=S#F_|Lqac^c4j5$ozw zoL>>|4iC|hGUHx7LyuD<%VDo^tczohOmTyOl3?1hKpXgE3u-eb+nBwb!&CN=mnpYm z6KpGk^e2?ZU$aL3`rOME7QLYdiRvM4axrwrJGGe>1E{3j{t?(Gryvv*l&1XxEg0r= zLAz%+AlX2LN;r4BQ}DoVAjQa!$7dr$i4YA0hs)SiEJX`!U*&eIUJdfXEygHEhtR!x z4X0gGbh2~{lnW^J+n;@>kUgo<&u5z-bNdr%2`E3yAV<1tL{NkBb-V<O1uu+*9J9?9gcJU7SL%Sb{+2srIk!gmWSr@hK%UBKoK(lK;~`p5#vq*+2qLzbs}jnQpN?w zK&%bfDS`anO$pCS67P?6o^F25-xo{)HBCULHW2v ziZ*l1sbN}R7QjXP6qfjW&eBs{Vf0ravVe@F&PbaJfhE>+T1 zj+bLeV^q&)-wPoui5HV!lM;6`1R4`;y8|MDH6l2;WlCtU>Q*QYA7{ zbYu_SmMTv_ITb*43$H;pOA3`mV+UugTvWx^?}WEPZTM0JgSF(~BJf6Efy-@iDloCVz_7g5Ocw?^XA!aU zH6b3D33h&lVll9@K-PoSS~r61oFVj~q9Bn8Tgq}CQR2`sQAz4kNJ?jeUXht@BevsM zdOQrSgQfvhyQqMs8>R-PO?^L1t}=0X?j4`61N|;zc6LViCY}|>$AV>>C)fa4jjixeZ$03Rg|oX{i(g=|$%z6ZK`=&0yxl?=v&__>02>;P*B|CvBlHe)Qq>2*z40-43hNA3Nj`0X6Q~+@O`dw84%#aT@Ih> zd$B-|yQO4{wY1o1$?b+OEL!>5@Im|(`}SZ31FVhyobSjHKmZhV0Hf3ODVk^pKTrPk z){MMxnJc66iJ$1&aD$BluG6UM;VUqS7o^I5jMJ&%((j&S7eK2%?U~B3gJfY3oDXwU zVaI9)l`zhY6z2LAk-4K@IUs+ud0G*ViVngivb%=0sIdE3 zj0(G`D*t98`fgHB(SkU2f|}rU5FEvaj^i!3&XS<5L_kP`8%TY6c4kj$PlV_Xv&mu4 zM&v9#GvF-pF=js5+mOyHj|&$H6uOd^24{R!o2zT{?oS~ zWyi!<2f={6w8qyy`vSkE{oywPw0Z|TF1{}DebmI1!fen9*G_>I21afEqtzj@OkaI` zHGcE@hqtNf)!9X>KoLnOO(+8CJxm|Ld(SSH&6lrXnvNIbPE{Z()Xod}&G7?b3boKk z5%%A}`0CI&J2>_n1~!U!H!mQ{Jf3l(;N^-Au>tm0Yl)B{OtM)s>3+R+QV zI-%|bo=E{ytjt}B6_R?-HBvhM>+h9^#G?2d!x9knEhp<~@89Y`pvl?@1u$57T8RDm z_ul=R5BI(OmpOg88gDkAxfCYhT9r{{|GoaLS=hE?YNPaRJ;Uzy?`741q#eT0vmJhA z!XLFoI~IWsY6~0AV%6HCO{l(V88$FEN7O*xDWV$5NDT8w?27H|Vs2gs?hzg7_JS*x z1p5XdN8Ci|P%~WTvy#e;SOGn8qN@yk)T17tF7@YYQvcx(MNw+LNUKVBO%)=taBB!upxU{1H-B$RT%z0yw-5q=ech7u&_|k}LS_ zxAz}DXjhTj*_!rnI&%(!LbW>uydpMiU$MaVJ*0}ax}tr-+4OJ&J1){ zD1^5z!1arm)6322{DS+nM#`jHCAjX0%}phQE;=|2+^Fu|JE>lpQZ=S;BOw=2h&_;O(ng;;71m`L!gDWE&39i zVadn~#yvwLNyF%7ap|xH#WjPK?Z1-z_$0h&5;lVM$RcX6W)<hv zQrOiL#S<7Kym8stT@^5&dTf4bc}HZAd-79bA)!?I}oIVA00E&)Rre0(FnH zz1H)?D|b_%{v(gH1SEjQsKGvli5{{H{7@9+biyDAnB8k{FoUGAORZ=ch;yfp8SgZx zVD<(HpL0xgU^K$2&tAPouhqZ&bpQ5)b<+ecphhktD`0=hsT}1HgftH&5xF1NHrmXW`R}iZwQ-j}~*~#e&$dLcle=Ub-=_(HPe`KrM-Xv;`@g`XOUcOh{-- zaoRLwYB#fGE@GlkP=9=c#X(jxgn~`Sdzv*z(<{i=y*$0-%!31pw7j^w3bGk19LEr` z`L2?7HBZTASx*8*pLy#Am0*X#7ubs0Z>2Yq{MttKI!0|2ItDikEkZ_foYDk9wjza3 zN2h7=LKJ-;vjM^NHoTbXfowVt_5^CgxG13dm`nJR)Op3i>{In*hy&@jRE*{T8l=(j zTwA>1&lg=q_RtRbW{|CvNrYR+KV`6Yg4IqZ3iC>CQ|Q?948zndz-Z zGg4^f7qOZ@KTm#o^KtU(&6_{H`Zk%eQ=eZa$I(a-ER^g#1-y)k;Fl37K42BKepXTI zXF^YLk+S_NHUh>hI0)lV8stB3j(G#4Y98zn>I$5bKFOLM5%mR`y$1~r!W>arYK=@x8k~ zWB0Aea-O_Rd6`ML3%D+8QjbU@u7Iw>z1E1<5nr0J1-cHh!ZKFZf-b5~RRi=BXHfX* zOPD*?(-rp$2w6gs)8`5^YrJs_tmpFk)lGoml}NK6z(V-!w0|MYGVXEE8LX0lx}Os` zRD3XB9~Ant^DR1rr?`;;>{`&{5Ob%Chv#M3DWw%qU0#CY`MN*A6XExykA4KFCQdd- zwcIptm{in93AfI~0Ioy@!+eQ?poWAUh1bFOQg>&Nf*>NXmtwF^rGv`bf`AQ?aziOx zUS2EY|70ge_XY&N7!7r_9)d>NJo_|hqo134jHw<9M`sbDem7_I;IMWiBY_)(S~ytX zL2Jm4Q9t!K{QLZ@XNbh2JzsWJ1tw0*k852%-J`E!AZ%5Ha`spdMIot5t!JrIr46GU zV(Af3q}QY;kp~wumr$!}kE{wyGna7)(fzushua=_L%QHsw;tc)fi1B@K30!O zRHe&K;)aVs(DGC_R3bJ3RM?qyFuz=mx4T^HJ4ovMoj&>yx1aT5aQSL0)cfq z<2E4qH14}wv?Upf#uuWl2(l0A4H7w}pnGObdV*5Bvf4Ez(Jlb#M+K#XXLQVcQz||d zTYO~lt{iPriz)VJ6X_wOgD?^yn*O{kj(RLTAi6KvI#a?}Jhd?Ui$!8R;NwP;hw;dC zsF#)FluQx@7jOw_)Qq=Gcc%@DLK^6wpvu}62Ad^z-6VoFOi$N=@X1L~hLY5KLh;-t z3zfJfKm&p;a0$M_vhXOZvFjatd3e`f4f~hR z(~okWlRkp?S(Z-O456D1n5s8$(KuAU!A_T<8kpDtQ35;S7VdsW6w}}Nde$DyzOVbJ^T$q7ZsNwj40PyP^9|-bMZxYf=cHU959C(h)gwPQeP=2Zt zFbSFp+AWhv#~M&E2yAz?^?<+r*fuxOa(Mk@^Y;(i*Wdn`{i}DA>oo+d|SeuW_6(2%3oLlK#y$ibT?`yLaOOPwzKdP zI_(_ASW3O&e4A)Ft-8jO!3B`4?|4X-%+FUPOrPjYBI+;x77<)V75KUVjK89E{$)~v z^Kr$(MUViPNh^kBR`>wkfN2K)#964uBn zi)|2&h!c8|t>6kNB2WgpYHK2#itLWgYa$6zXK*$#k!P5(9}10>bJJQ#cKKoaz^T8vzv#uRVh1}%oA!5 z*(69CA}JuNpL!LNd@KS_qpRT?7W0_shPAMIHM<@A7Vduf`2M@s-+zzpg+F>l`Rr0k z)saeRssw9c)yW!ZZb)NPPtK~qRTHQ)wBq3(g}SR}Qv2Gg8`0+NDCo3+3@#_18*Ie7tr0uprl$q;W8wvk@D$5ErptyDqVpUjNV8kh9PvnP7 zH05hQ5U}ZX&07>08t)(g#l|%;JfbpMv-GqQ)2MuyyhhKp_dPU-YZrQYTBX)^Fijxh zzO+>3F|GI__G~%D<_c1K z+tRfL)22S1IA;ojLZDiz9~dm!8r>lrf-o%xKj(5nmj&EEXQ_DmNXCl$x1f3kM}@F3;gM!L?;^oqGNOXj z+QGj_Cc@pt#exVsJ%xg1h%0v-v+q&t6aBWP;ku`oHQ>M{$?h7r*%yJ>2FeaqwBmq4 zc5>eDJ%d$8$Pa~A$e+|-+X|%pnZz%*sPc4u3Ch%^%a@!AS=X2h`C_+sx~)N&rkgof z!pg+!Ju+8FLjNIg1OWz9^uELYi~gnTNYzNbfEW859`zodI~`UQxB|dZASW8I5J&qgjNlLCNZJ7EN%Ur({j)})lkynuv;N2~$vO`ZqTy28lBN-2 zQB_Vmb?L52x=9L(Q2=d~?`d%hha<|o9%DfVe_J&ukf?h?VjkPO!WR~ln$&lEg{YL! zU73j^bt#qf1FLM7^gG6L(X3H-%Q>AxJi4)zVHRRIU(8SxFPR}vvl+4%rpaPV__Nzx z^#1zp4MINN-1okH_x8ibLdQn!yERrBHnd8M%Sw2fpw%U1QuUnmY|9ckV2?VnAWaRh zPV*opSbrA?n1tbnzp5K{&9FOK`%Uf|%7Xk0LoWOjVd|9Foyh|TQYyByUjQ`EPBQL= zo9CpE{{lPV=0{@cB`9X0<+gy1dowAW#88-nEe=5C>w1lPV-#7o5aO>@K!_0F z6dxFs7)vFg!14}gh!!+!1y50IlmrblW`;J2k`_x;BrbhMU@qLW9$lfF>|A3o2U#=# znBL*J87ykYjch=fGh6bfqfsNfD&>aiyJYMjv8q?0+usA)Q$$7Z$mrY#wKcHZ_=X^r zD=_Yfl%?0uzv?xA2KM6&7d&bmVw8D z;l2YoT>YCzjMeMr1@*3T+4h}kNcvmxQ<8Vd)NYxC% zA8=HA_B>0LXKgOvx)=8#{vYBWnD!8RF_ghFVlRe_#yLzo^%{8CU^l*p3DE@$r1H-J zZK7!C2ywYEO~ln)8!jQbn%F~OXEITz7!bK9n}B8nc}#U?Aysn^4H$3dwjkw~ny1we zEkvLqx7?cv_d11c(5uD%ms$b@Z`ZY4b5O!RBqE` z5Fu(@TwO1(bC(x!b{o?c@{KmoTh~EO18%f|Uz4J@9-C~W%+Cpt!RZv|-HxBnAfVV= zO3JCuu)2j3qwu6AXk0?(n4|pLIc(|)O^zW{<+p`+1!GH_Kz5s_J(@R3fqqP5tNZ|k zDG*XGWdQntAnxe1hXV+{qCk%vvlu0<%MqcUUf8w2RxSPpP~V&%3X~CqVgO3lD)RtP zF3kY?-IkV*Lv!cVLxi^c23xp})(VAGVNjKL8qB}>qA1UZL(+F{2oyh};aBE-q?90N zy0YjOL$;4B-oG-I@jZiEBVuWFv9FYU6Quo0&p9^hEQL?_t_!n*!L*9fg>&rieCR=rO4y(PVk!>^`vXX%k)nUetrt-R2*5fFvHihqv(S@y_G;b%=iiFXVNQzly0Z6 zM@fR<*V5zhZIRSUcP?{V)1f|y$n^@b&Qj8-ZyM>mYz-< zR>~sIzr8@Ul={Q9;W~{EUgot~f8Z*wZRRL>zCs7}s-9A%Z)LD9jE^VBC?fhj5kx3yVON3`3`7l8y({emx%07CuA*IqiaZwN<)(%W|Dtu&jrZfSz z^WZuc9T=U!?u{D5T+3=mOJa6hh9EEJyIV+ZpvAq>6V?-6+{_UkI$!PXfByFVr`^Z* zuYUUJ_1hof)5bP=V5T0O8q8|FJR|FeOh0ERu!oFwfu1l!e0^=Lq9ITOsJNzk~In zur?D%eOMo!7zatrQUdYWRClE&-m~zp1WUG*s6Nwbt?8kwvVc@cq&->E}2K! zF+uND$vDqi=DGs4a0RQLYdks&G|sc}ai8%gpNrO1ic4Xi%6Dl%o~W!K4fmGu2}_D? z01IuM-`?U!k5+*8aN!!dS>QAFvL{H#T0YTC$a}0Vy@TD*R*&K|A(cwH>q`n}UlU)n z_7uZu_~E^#C_M2c_9wp@;|T~wBhP*76(rU)SQ z;`FCaerC<g6bF77EnE{b1MW#ksg9&Li0bH9R*KHTIW%xL+#{w?I}Sc5E2$r0zTh# zzL~PfU1(&z2BOCG(Uy?=v`k~_;vz;MTT+EC zU}A+tQnxjxpdvS()-XMuK08)``o(1D2ugi@A3!Tn`i5>N&%r1fYtb=5wS3n0AOIqkGp?jnMHZg0PE|A9H_)0PpRV{R!-&{1i3xgG-X5w!nK|C9vM|eqrSPk5d*A7v?1K(LK!A?z`|EHFN%Ezb>X62mS?Z9o=vxt;#9>iJ7VF4 zit3oujHCk*0x5wUHw;Ia>l0S4F#^(!8NKA1IO0OPhKjn6e}WA@I3b9H?*#Pd>Y(o}oKZ z|3vY3Xh(yXD_OJqG@H6=vqezuZaX-fP-3h}vWGI46ZBcd1JFbbfx_BvQJRfw>1dx? z$8B!WxXstR4yq(Gc{YOgXDhl3sr(EZqW0FSpJw zs4u7F*x71xaS6`4!&>xLUot;7HdjY38YEG~7X>MxO6NokYn;cKN#eP|{1^ys%L>0U zj}}-fStuot5nVfh?Kz5C*9r~BLDfpud_|oDnY4&5 zz$3&QA+n#jP**J3>}V44M)~mTe}&N!F_=gLMA_)6*9G%{_IUWT z_PeyiUnBMy+FOl`O{mt-R+aMgba{JKbr-b(-J1BSg2ZABi6dOWYI=o2v|EJiaSBAB zE|}w~ZBs}~dXTVV*ZJK$tJ4|zD`eLXp4L^?vw4RyaNs}%pa1qFB3BQv*In-`qBV_H zDrlV&^7w+*niZ(VdI>uomaGRVZt@b-_*-2$E09*0+mmRuS)87?2t)&@6S$Jf;@U!` ztUqA|(qv$(q<7a^Vsn9(b%}?hIE2`#I~9?!0uTF3JwzZS{@y%eF*R>b*%TLhS)RmW zTGf54UHyLlf( zA?2TFSqxN;HN&+AK~Uib2mgpVM3x#%(sEwA=ZkmjfVRxGQRgSyaY^9$!Ue&XDucK1 z(617zM|6w=Guwgzfo@gylP1*OijtEA*5x|-M>4nyN4^(p{m$}|3VGkaUw(~@Lqx3x zhhUN__{VH5W?&&dNV>gTo*|rsp_kip$ZF@yOVu~^QZ^uZMl@4x8wO}H042|c69)Wi z6T;M9Ak(TluIKsI6qU$4@C=QZKZbesNNBa+>GT2ex{?lgvnN}M&;yTZ-mOCuWNUNR zSD&+oxymg9=lQc<**1SVa-@GYs;S09AV-z{FmbRzR?KuO} zJ!RH+-~c;tC}6d>$Zi^4;_)oxYuTMY*wG~sUOH|c#XQ$7Q8c0_%%z$I@~+^OmuUJ&1@WbPsz%?*@AJ-q zLFdd_?gh3P4-?nZE<(KDGU@6%kQ5=<+2yg83j(1?k*FgOy3^`KI#+^xH|lfC7(att z!OH^6b#;gosmVbx_FF?)oT6D~hNsRM5oYLnkmHD8y8iNOsDNLn><@lmzpp2%U65~s z>VfeX&1>c+3EfxC52l&_-b?(IJD;)zE%-rPgXU8uT`Wxg_1{|cri$+D+qIQ$9UZ=W ziU|y-n5ZLTb)?IhMS%Bow~dgP@@UQ!L1ncocyvtf>wOiBo`s^&jMY)Zk91MUuzl<%?bc#TBqLjP#vT5}Tt)f~$V&;BA}OY=f{H zLt2!@fx52bMnv(kQWG{^%{CiAJw5#bxCMv~NM>Vx4bya}F=-J&SeuK;?qQ?}mVsqL z)@n*k&Pr(YhNJ%A$zR{!f6tl&?_d2*B#`ur*_?w1Q1+Db&0(A%JjbdO`(CryBQO(y8pAb_$8}f6pw;GZzU6|WSjx1sQ6nx$Y2W7i$0^mzCebciVg75 zkgu+~QM}!QfUgHHdI0WaZ!C6*(G@%y!QbSLap)5u!c37lp(H6RCs%~w^njydt7{{C zkk+5x%H;a&&S(aBL}WC>8;J1}qd+SxmLm5qQ)cslZ#mJ6^*C&^fjtB?ZVGPM-L{ju zKLrl!4>JJ5KozQdy&S(%G-$m<+wG!xHv?b~Gmy6^UjFgQ*Y*iYK&Hbm_ z`)^U)10-CZP$F1~-l`+S5QV(OZ>Is^#hMOngOVnI35?n)ounGdqD}AY);Ta2*pc8` zlC#ji*1Z^=U34)VM3!$UB_;dy@#XrfL;efa=((?8UY?&*xubImJP@zxI|TA|!}M?H0c^069~QZ^_Al<1dpT zWo;LZ_-@9lAnLp%fp)9jh>KEr0ajOXLHlnpG*X_5nwlfA$K#NR`pLpABP0qWfE=!- zMGV8;Xb!=}Ll^{4Ryt|RVW!30MtFFJv$9od0O=qw&Z@-5aJSjV58vOueRKa|{Nep~ zZ~q{S2fHA0bZ@68TUaN_LRN3z8!CH+z-0tua~nrAJC?!tc{2SmIB5fj<`q1!sPeM{ zsCYX<>`3bzDiW3kSAa({nnWg8JEQT`6j)3Ez*@!8k!+h%6J>vFkRBT1~jnL7sBt(m{Uj`4Rt=BqVw$8+F5K;R$&GEsV;R zNK0Ur@+SFgdL2ZZFpCN)k-zjJmY}C?ukmf342?XZ-9Zu-sniYa1?;1P^`vm5Ncd8+ zYxh{0RD+C-=U^g;lSB%}gEt?3M1bDjCxc=C`1Jml!^1O3sqV~Q zvpNItNuZwp1Qm45tOXJ)-3WtW%Z9%7LkQAVGo+&szpNGA!NxD z>^Qg(v_i31i^0qq*CE=$geXSf)uudb1C*TFdqGn)evsIV)9+yJ{cc__U&{fL+F$FaA*hV=(QY>AW z@t*p{w3n?)13IZe@%iO6h$e7rbIfu6ROVwce_X{F$m)j|VoRwZyB9?`ZyG^U1G z)@uMWje$u9XSssf0o6NDgZx~ukZCNK(*_ntNBX%Eolm%d%GMHv;05DU@a-5MtS~M> z#d>aTHY>McMW`qA3G^^NIod9-fcb`J^}=GN8TQ^APz@0q@?wCkxSDo*o@2K<=a=!$ zmJ)CSjt*Owk(RHct`54NxIS|2c=nQ0+cAn0nm)7KU<@Wxq!MpBQ5hGh`()X9?c!NJ zb7T=Jc=eo(9)3yTff^_ENH=tpnFs)50%FGTHx+uq6St*v%2B`#1VnpxV{YfB3{^Dc zk&TGkGSwi)&P#9*Y83(+H{FmcVVY*}oo^W~2{jt^3~8qq_n$`JetP?t`<|<-=|l?R z*}gS?7-e=Svw$fhHXvUMYVK^S+`fm zW7C-@fUL&%5-Fe_jdMO@{7UVPkY=emnd3BoG#!4O1XgZg@pv0S@xr|$whPANV3bB) zJr^!qVn-I)HBHV)(I!4vQ|g{hqFBvSdMkQ#mEksM-Py~&Ub+RoU6jNmtY@BLQlH!nAb58xLN^^>LJ zq#g5;G*w!ou~5mO!e2p#%0R_lA9{gy%kdZ*0rJR(x{w*l6d))qA9{H?#^6Zw)9`$0 z{Eg<=wAL3`56c-;M6v|luc^G895o^2u=i^thb5fa%khf0Rsm6BpXQ(z#~cEiPY7n?@g)2Ec%W9k1-t{;8)wLiwuLRAx!SsV zXar3>qswG^HE5=4Xf)~qNfBfVFU8()&Qd>1ZozUQaKN&YrC7%B<$)MggHC3$$@psS zxzon$jpYGhKjy<>|dPI@shx$ap<%jx2@#Tm5L?Pyf z`W&Y?*my%YXd3T)@`yfk+ki!t#y11xL9fb50pPjB_-V{dp9&7{n@FjUG+~CWL8wGp zq_j_B)<4zB7gh5u4$Hl1J~bvrb?W55$OnnLOjzY z^3hg=R=240hwr}o;r`Qy?+)l5`xU7D91tk%fWQCo?YmEJ-|wOwKoxfAd5^qwVR8XJ z*p$hTF%e%%)+iGTV*AC8za4s<`RO-NYe=^0G~ z_0K~ZvF8FmFmy?Sf`Kh?gj-&WkC7FjKGZFFinc*y;B~Roh03Bq^TlJO9y@LWrpcXzfD{Fj`FWhqJ4) zoR@KL7-=ql?7#=09;J&ULvNj#@c)k5}{p0t)zyBzm(9dBdS)i`y3M@&P zWrYsQ+!dGv3z9lQ7hiZ{bw0EC9I$Ws%VakdI|{tA#E)=dm)dQ1GG* z`V?sj$`ZR(X(4QSGk~153=;004|hjw1=zI&G?yQqT2!$~RQI*ALwUcD%GKQ&pl&j! zVnh6V=VE7kpfdo!)5)XW0X-kt?{QCt>Gg3pM8`+pvDoS#_-Nd**vlX8SZwGIcRYR6 z=-|<3K*9F@s;Wgz+QE1Jd(qD0hVY9B?LU-u4j((*kNa@U%YO~pG0G`;Pza!;&g|9b zqgK{FD#M5Vdr{frR`JpY$%EstgokDlU3OUYj({JOI;Bb8t~ z?)Rjz<#WunK+V{L+ro88zZ3jPsDFiEkeo-Jsxv&2h40cc%X{n74@Ois#!`<`?U^b(4mR0TMqiOyyR5AL42hQ0jJ$R`SYd*Q22D&)0B#SnmR`Z47~nRIz*vH*1AUF` z228Td6euV~r=h2X6u8c0TsnaREvlv3Z`o2a20eUC#O7TyU~Ej;zU}?D|JJ)%EJ`>DJXm3pw8bG#ZBP@m=`OADiNQl_d+=~l zHbDrze33v|_(T`Wsa{OhFhHHXaE(L0tp5I&$x5lqS`V$M_09p}6MOn}Q z9N;W70HmAuSwi^M7!e-Tk=`}FPtNv$3iFW#!+XEEJ6|rhho!|c&gmvjLY5@~gro!+ z+9;VDB1fEn;U>Qv10LY@ZrV5z!+dZMXA8rotX9qQuxB|8ov^#LyE^r|n25>c8ooiy z@?w5*Jq3JdD<4#KnrB5Au{B1_50>)yrc6$P0b}CWnl6oL%U15~Mw()$N(3UO^6WV zk!F8_bQp?* zP_(w0SeGrj7ZJI$)r2v~69+K3f2wX#XI@T@0kLVQkBkF-W5LlPeFJf&2sIGLB=0u!G-r-Sa?gzZM>7*l4~A@p;HUt&|j!DiB9s&#lf zvX8B+no8I9jSHE!z&CG~wBVXXUOP{-;1wca+bOprI)l-e7cN7oCF7PT6ZFwo&7Gfxxb9R3fSSH#MimCH%geTgGc00FC>+IC{$ zJn5)vM+El9q9WL?BWuUJFz}nx-&b@`M|EXFVp4f!xvB9{Or)N;kCS)Zrm?UOsB$kg z;i84Ml>!V)c2>3Prr%7~$aXH7L#5RwqgR=_^u$1EA*)s6Sf6bhnqlYYB^7F?c{1eH zln<*3k9X~&XiqB|JkGP8oc&&_I-l5`o!hj62VGhL$Y)hWH@$G#sJn8eQ|ek|hOZ9w zQCLVTB&+YnL}Dwgc1#eV`M@VPqlGU7D6^Y6(bFmJ!l2abLZuN1R-UNk0Z9Wk`tqye zEhznSY=B;c48lzMJi~;wVx!{eSh5V-lg3G|ZpZo#$bt(LCkEJmP7KzrHyqe?u9==t zlrpWGk`%e&g#pH}j1LarLPZd=2ZF>Fj*dUosbC;3h;0Do3Y=LgQaYSDTdx{51BGzB znZ97@_Ui~e?w>#9WqTx(aNxUC>4MUZc)j4#^g$d)q=*3 zIHQ{9lr4HQW2i>ID!6AU__fgnYJqz$9qQ_ZEt^R|>EJc0kj6kEK1+tq%Qy|r=0#>R1sK6MW5JP35rx_-(!$>t z)s9crtOiUP-=HogZlTai)0^6zz{0*FlO#xjocyzK z2>VL9@+MUjf(1EEkSRwMLy+ZGTkwh3=!QYzZUgMEK3rKnv%DzqvR=m*Yo{(k=oRu| zXd(5Oqen^SLXXRn?jd`aCm)z z=}6kB%X6;E=4R1{Gl<}|E9~*cZX8rg4-hJ${HTD&J_9vNI4 zq*@tr)vgqw9e1fcx{g#F4?#K9 z#z>Vd8Y8Sr{*E(T5eU^3m4acm*a5Hy)RvLyut3uDtjAXQf+E|+f4YuZp1{1rHe)F`k8Haw z)`TlD-wj?-T-9z=*o~6y7D&x|X~)-m0#HoHT}Y^bKRf@vBW zF_N1Lq3kw#6=Q)^M{5^WGtJm$=wfauGyger>Fgqk1cvDOUMy?U1pG+Bg<(Wd0(~IS1^q)C@jFkl(F7-v99JmTdCBqpfwT z|MB$cF9yd@;C|W5;V6twwWmM*4S3_z-fzfR{LE9|PcQ&g;+wVWY8zr*!co>Sk%D#5nlWJ{Y{X_aO}G~3uQHL0{|L~iBUfJhdiE#3`XbR)nk zEw8v(NJv9zhl*C+bo$e$`;YHmzuSI%`v)Xm`^)srAMPXRfQDvg>Hb`p6Lq|TcMhh= z9t@clZMV5&#uDtN`U}+(w}zrb?bJz=-ey<}6)>bmmH##g4Vui$%OoW+nvze!082LH zo#ox#ZNXRJ$4$0lt|7LvE2rI>L-;cEjA-P}--r1l6k|Gi^9Jnb2a3>d?!W6b&rR;X zi@C>UP!=l#%Eoy@vdIqyY2YKXdy)p?gytN9t*k#HxlhugpJ1UZtO=dRtvpBwB6p*z zWC#tXOqnasw&ciQ{(vPRRUgKTtXCD)EpVqe3gu~Zvt5dd`n5^bO4mhCX8bS&)MvXg z*Rh2bezxoSrEJKv#SM}ee75(tt2b2|OgYjaW|hTAv`|jEJD4;Jk5?*mQ;>(~8?>4Y zEwu>HZr3VuR}s17`5GSZ`l4p5Ej(}&Zb+aJ=yYT!=}6>a7a5oenJb%8e5+YE)$7qC zibXq#Qt>Dan1pXuXC0D~ylfaRkfB@Yj6HYh_}%^MkE{FlZ&244<=!!($`R8zt#Pb^ z>AQpanq7(kBl>98M<_hb^$ud?hf4*@1pEnJ=anxC!)uZ8seeKukl=mv5EXEhv^(UL zMs}&pPv_K3v37k0*5@@R+Jxy$qS`>uQ}cv+nfdXO)wL$b+Xl&RJe#9J^HmRJwLlzH z0X5&S93xv3m^@}{L3jd07OUF?IvPzna}z|1MiB&Vn1qvAUsXGFEDPVYn=exn{mB&!`_~f^n@ZpxTn78jZzVdqgl?h}s)Kk|oXi zmXWNMSb|&Br4FxUV#-YdRKNPTYI(IT%vSk&Dk1_y1-^Z-jrq``F**i zffrIt52E`7R(oZ6a=Sf$H$QD( zH{FDEPMJpLQ5bmYVQIFefpqKy7FWnf1i)sx6*mLFc+hTZ9)|*B38DqGg7O_RiihZu zBorjiYYHu@G+aOU;rQr4aAc1y#;B2@C zLTs>}THguSNAs-iqUo2T0V&uvl}6ZT(rbZ9k&y>_qJU9AqmHwmLnnqUyV*ZtAe!gH zlHEKX(JsyN5&6(OA9niY`F_Myv>Nt3p??a)w~vLD%O!7zG|NB9e-HBy&VNw_6_<9qK$1q2BB&)*NsP5MlZWZHXA*oe+i<3^>8rpPPz$S0)B z^y>DR&P6RFjvi>H7l_`u_RULVPS9Y|0?(4eQT0YlmM4%8q%d5RN*A08mk=mP*Qv?_ z_rUph~6AvDjMF8}q$CqqI8UmStmF>mf)&4Gw#UBYa@Q;D%%9VIo6r zmy0cmQ4@2sK>br-j*w-~>{&8zWfv&9Ccd^QTl6v$?`V~*?6}Lm7*8CCVVE#aTOAA* z!O>tERt~bdQ6E>?rOYq^_+QGYqgo&)^4mxgI4Y_Cun_xmlkQ0ZU`{nd-U6p+AH>sf z%8H|G7E2%r_%HTMTnZjZ#ahA+(-k8;12(6z8J&s~`cmF*KBku%;JVF`UYq3C!by<~=BMCpij;J2YQG$}#p~ivh1&YxT?9d#>dJAkc>KhBS zB+Sf18k{u&ZV%vfz-*vOqA~6okZU4UEQ9H?_j_|WpE31uU`s(g;Fv0>1W!Qj zCpv1J03ebsfPBSM)Qx%n!>8BpzrFwJYXUC<2}LCo&rmHr$Zb!1zW~sSxxzBbA($|^ z8j5@3EzAt zbkE~Q_dI!Y&(lZuJbQG{XOHgLFQU>P9(iOR36x4PyPdNc@_9uEojpTh|9sDo;XmIq zgz?Y!gmfNU1AF-l#>`u|5*iznah0-Nj5VolNVNp3JL5g zNdwF_kWpxz!s9LXvd~#}te2@oH%o^Iy98pqlZ45w&y3p-SvC0vt#&hp@GZSU4}&~V zP1;0AV#wCh7V@ppr~$6FUKn5+^WSRLMNJ{8l~4bu_xUawBz&CQ@G2>C6|kPDztCva zvoXiaMMp5dacvOimE9=e=lt5gUZH^I!PdRKoq3kB+0hXNuNUlzn3Iak)Fesv)SsavzyDc&nH;{ zY)n}AtUNrmjJD1^eaqfG6DiaraK5kticZ5Xi&c@hdVdv1$hcIkzAEKH`lH& zV0Lr0g5p}znR9#A6QD+nWRlak*sz2SVQqSr*j^btN86k6z2;dhBbyqkV2J*|0vFfJ zQ0NJ|89$dzpr+YIqdnS@3@GN8t(_irKog%EHVx{Q17Dad`KZA>w1N;6V{N*-_-a<+ z*T^f-IMqLvVyHLlf(mE4 zHR2FKN~@J;SOUg|P9nqpCWzD2dV#v9Y^W zn+#6v1|k8uqg6A-Z$?B_4xlFR3HZHl|9JoHpMLo9dsD@uf?(fN@pPy+=a?Z14AC*N zDCSTZJq}|8Ls_cG%-_1o4V6*=49Efze-1~VFfFc~l*j+TdXz-_H7MKTHdS1WVHtQJ zoC>}CQ;&mB@%o0yP_Uc%wR|KyxD%bas|3i#u`NVOAc%9=w-!@}&^sEWqgj(|o22G{ zv_Qzn^a=(J;1duJjD*7mEMRtPHb9-+;MP1py1jrwXazGZ)x^3D%JR$IZL>vZ*;5S! z;~FR^S>hUZ;wuR?ppx!5$Vw`0!vwI>EJxLR?`uEw-cNr;g>lcTw;GGLx3;biXkC@R z!J2qneFoTyqjczkU~&#%>aXDehit%&naj)0Qz{VL&mbFGgWNol(U7V1qfIkQvKtE} z4r?v8i>@NV#Pf(exhvqF_!p3{))`S`Dt&@b7t0WV1QFVy!dFBonPK0?O35@M$N$xQ zjt$XroJ2kh$-m0p%b+syQf5Vg@s)|L!ApTGeDV`TShE8SP%_)9_g#)QuoPb}5wpf6 zVG>sZ815TfKZd8XlZHu9VeFW&apLWL$E1C;65LT=9)e*XfZzfQD4c~?K7omHhdkV4 z){kkQ(f}s8=consF{y*XyC=X_et*b82nvN*hvk2f^ZVDQ6K7|*{{yT&HS4Q6Zv|TT zMObz%5fmON(wkGJJjT}BIHAwsHX}-5NG)PCCBJ~vQhw>9u&4uEV5GeoX1t3X>IPc9 zG!4O%GiD_&yqSZ@Q0oo)wO9>F;m7wsy#2%b`!}KqUWRb(0set(n`uq&lCv>TGlCRQ_`-6u-ol z%j%%uLXLsyAWaP;Nt3jRby2WPa7Bex7$*my2c5`Lzz3|b?K!eLxmLkT`IzA+bL9K*uZ>XX9!a+y#tNb*y1@_evjg;N3h^0e{XXLw@=o_5-l&)_&lVmuR7(o+;aU*l6~3DppCC z^8^rr>F8?HL~ZPs+0zBOF{cRsff>UgWx#qIRyC9lB>)n`1a&>(^4uC_lCd}Gjz%md z9MN&D_)*}8zc}0-N*7=epAUDBer343zl4C!{Jv+M;SL6bRy!!4G|u6W2XA@9xGIP< z$vO_kR2)@y`D>szyoejEXDrah=kab(OHjfgvsCU9W2%!t7L7OX*3~Pf)f}_G8(&W_ zL-@xG4sqm^?7T*4@vWu+$hmz|y`40wKnXks`vm=Np=dSBPy(rJa*feGP@{GYogf@F zdR|v|rhY|?X>nfPVOhl%Yt}|2)^&muM;+(%mKq6eWvJRtCxmo#nMkaRd$*8srVWZL zlgTCaizr(ASbpu2I@aPF%PliURdumXJ!=lX7UG?a0fr!U!;~yUYunRQv>G)Ug7rY@ zr@WmEbiTRPZPp!>L+WyK3l<)KC6jG^+R1`&CQ3%tCk#!HpzaRTg%U{i4#Y*{RH~U- zolS)^ZK-gA_+bbMF@)eFg3qliV1f#Il|bD^hNGx~M|l;Y2N%p0DI=S)ljdpPAHd|N zcZo5Dc4pb`tVsi?kMZ1&Am4i7H5zq6{!XR}z*hBethc8V_*ID$3~huf{(9PW0+_8Z z8WUM~td|wZUY(<|E$l<}$>qi?SIGJVdC?{f690m-ZC7E`j>Jj8jl`s<>BV$%ZnY5l z$>0Fy=f;9?zU4#sU^=c)_*3@Te6~BagT?dY4fN@>Fq{rfb2lUv0lSS zkD{AQ;!IZw5W!^5NSsY?&w1T>Il`@%qXDDg51mQVG-pr6hrnhIWw<`nGdYD|Fu*@T zOMnc}!c=s05XDjk*kH@soX;eC`)}P;DvZnGwPbFBxz?SdOIro48;yFH8+DLWgl03G zGFuJbO_>9*QYe7?>MkNV%U0bf)C|M}p-@qie>7WlN#+R9aT9zgBBNj|KOj5)J`ON+0G!tB#lU1dc;DCMgwW^QVcBv7R(b8^{wO+FhB(2vD zHKsqe-ulcM2sV zLN+XI4{-pD(>AA*xSU;Iq29fjcwlSP7uxs_%tq-4?Ik(r=BjB?s=at4*RAx8rW?5# z!4;*V9ZQ7D$`Y005TgYdz=2~z{)1Sj+Al_@MeDv!l#BJd`C|WW!(Y4!q)o2 zvl9D(=0_SH^@r`ccknMfQsH_WV!Kz=Cb;75O|ST!<`n`X_(%$Do`VYQc!p8swpEL} z#Zm~9ty5cmI7Z1}hByT?1jW^mNsuCC@+|Fb zI@0{)r3^>6X|J48=rd};Y9mk{hS1rM9C9XAK&l9>csfNfJBWFP6P5?WYT)*@tzjt}S(SuJJ@a^Yi*7Ep*}T1in`ZnV%{ zYNJK5EC3eCtnJ+Q6U&3Y34W6fGYt_Zn_~4CzexG4NAi-(!3V0W|7 z>Do$;T+UZe-C_J;av0n6fd&}SlN7i2bKtQCY2A8KVaNWU}!TDT(2dq?}U z^ty{)o?nAVW%{KXg}vdSRwHJ84p=EF9heAG6;9&X)NVthUX76Yz3S56pmcv_MzzqCc)H^l>+u>s=1_3=_M%^$Kb4 zh7icD2F%`0hq;qsmd0k3ZsL~qSaKM!1v?M9l=%-affSE}>%blaY0$H3)Ot8w{#H0* za|`7NIh4(}kK(rOe<18t%TQcntQ+mFT2rMkW{@cyIJVI*kWQ*-+y-tBC!u%y2jRc)SV z!cwnae+_=yx>0^A+xZlk828=>F%IJ4Sun&#>1;Zmqn(4Bx3&GhGR|?swJd&_ zmDQ* zDoo>Bb8glhY~dM?`?S}8B`}$WszoPPIQw^s(+h@MqpB-)N`}48BnAgIE zk4d2;mOtZ-!^??b>FA{Q_92D>P{hnJ3x`OPc@q{}K<7h~BJ@X^JBQwHU$+&bA>vk$ z=fC-i{VYdFETI#>m{+rQ=Eho2OVpDLA?xvyh4ieB(=bWQ5MP58GLdIug*p%`)XKHV zYAR_}Q!!{7&07E(q+J;Q3~%Gk?Z^=;z%KhkKA_E+bp%Ez)SN-!jvcBJ4gP^V02VYL z#=4*aNcIIz3L|q&@dlhMSg^;LH9AGWq_=ieOr(-oSA^sll}F^lmE&lEOzyD=^=2|j zfw*^9VB#1i*e$6320SyMnLrj^O|d&{*UJU#ea#UQlIIBqF>JCFy=gpj2P-Hf`#u#7 znh&w%rrzMp({0*yyZhKQeWsIHr$5taInIH4-OoY~_)t}WZU*=r@T!$+2E;99p7RpI>KL`K;#gL)C|0I8eGJst zodNmSC6o)YL_|R&LVC3Xf)^yC;8~i>djsW&fwc;GUp*3q7Da>d;h6vl6-eP=e{u*V zlar40FspN=(4{LFfwANp-1fWD=j2P}RPD?z~BE?2Nog24e>Di$y>z7ZY6j zvhD0{!KWW;pD&St-^CRxJ1K2|(u-H2q}`gP1$-+;MM83OOKdf3U`1@E=1qRxK)1gZrD?1qTa+@K{vwB-UJj55k@`9|vFuu*NF!vJ} zAAsaP<@Qn=NoXTkAx#TDi+_@q5eHurlwkFlqLPnFrO-_Zt=~>K4;)_|0Ux-*t4A7+tI-^WKSW*wmC$Mk)6#H2*u43Spmd~A zG7L+ZP+j3=b`Bq(A!O^>A-3iO8`hy-2uz)cr91p6urz>FnqH32_cv|^$&A>AL$E-K z58OjoVF`1I!mM-W0FBjR65E> zQus=B)|zQO8;!b=?fg)gmXqdmRZZ&b-b1iapn1ktQ{-Sk=`Pf<18`e$4 z9yUgbm%6Jr*aw;5fXRSh?T|C=WEJG>&;{nzc)eWpISc%O?5mC}Rs|kTC=*SEZQrFd znR>N1Mk=b+#yK8$Z|b#fx2rTlv?1e&r**_ms5Fo1jc6(R@ilb1)H}O zzK#wWDkJh_8{#rv-T>i+C0`hbBo3`_5GrM+5vEE>c4Krc+hyedbrNL-jlK7eWFK*_ z%BVyK=HEd;dEC7~1rOe9zQJ#^P_t7M1K6 zimN1}e5|3e@o@dw!rq*_@1``>VpM9ynaDU#mB99$M2{j@0)Y)Ft%wafcaMT^-6`{^ zL;4xkA$(gZ4qrm++O1lWVBC-^!7)A4v>u~93iFChz`S%>l||(bz<99!k&vMTN@K3W zbl1@;g(d>uyYr|rTwY(3!^jotlQcKqJ+yauOnjuND%jInHD-(5rf$gq6p^&Cu4aj>Ct9 zSZ=wFkW0nipAxa3^C)#FNYm+R1zVa?3wQJ?&1d%S(TW(PMBQR>K2B&_AL-0c)Tp83 z-QXAAo&$Y^dR`1ln!Ku}$n-+lepzq`jyeV?Dq*yt?wFLF|HHe5>Z*Xgrh%%_sK-}= z3moi?W8+w^JWc9!qM=jav~I=OK$C`TJ0wsE=ut)e5=7XohiKl6cW_!Q-n z2Twv>WF<_t_C_at8bT267W4BEt9w5?`t{MT4}WInX+prT$seK6!mCJg!MT8=0N=w> zmZ8g4?oGTdJdvI5(10aZ{c8ZS^-D}xxyLI_2~jU^-!xROVrE6tibQj7CR0-Hg4cHt_UO;Ror^`Fu~X$E&oqXEuhN(XfGg9GHJd1Mh^K}T3>eQfd1tw2%gLRGuy zm6PtK;q@A!sxlVa35_?8V}M!W7_!p*TJ3pXf{B%S1)e>nNP|(T4>d-?Qdlp$SwOmO z(|b|UCJo%IHxjJXkT_q_7*`;dD~y<+1HeK7$bcejCw|FMjxy-s zs62?y5D)UcmgvR&>^ zhNT8Q+NAgiS|O>6RJOnjDZ*Hphbro!8kvzPa1skCfl@5K+oJA@UK$%MTB~g77*anF zC4@$}TJ-WywLs2PHHgXdc8*Lhs1I>~|6p3OKVSDY|NO)D?YDno%X`Gp6k9u~3 zCHnG7)R4|{C{k|(^p%wV&nE3B{ zI?5dt`y7H?3xE%fvN@iJ0i0m$4fNm^(g%bB-yvsH1Bjk5)`zK{RD?62Bf1}`nfwfSKMs3LGb9Saix?#p z^*HSW&9{j1E9~C5S8I)i1P4t;t$Hxlm^gw3a$5p)3Y0-*++ERIrUcwF zA{v|LBj;rEd}Nqxo@b3xmn{RIgu737N2f^ZkK#}};F?8xDY+GrI+n^cqXh6DwxYm+ z>8OJyaGtbaDzP8vQlo*m3;+?KOh`LrFO!QKi#KTurQOcz2z*l2uqA z4DDHn#Mdw3_oBv4_m{q0@~2TUu-nMw6I4`?E9^*dHfR)eeJrVJtAPaqO8)HWk^Jpx zm_>3Vv0JWOeK^11-j}9LPbB~H*$Ms)sbYd*G3Mf+Y_|DMljkkc@w|fLUyMJCwwPAfc!S z>bM9hhPo0{#P|$IV3h<_x1~`@C}xH##QeGKPPJ8i0&RvwL11CM&qpehZm>F!Q4s;tL91Urc$k3BCCqTse#;664{IFg#GQ>hB1q!JL{V&Wv;R z4YB3aB`^^I<_)R96q2(No5AWa1kWbRsb@~B+cb~lt1_9~-ON&$uv=*BHg)IfAva&n z5qn&7=&C7o-csxs%vK;qc98QB=ZN|#k0Fv?;oH{;&cW_Q46NT=5zB$O%8?w7Trlk6 zVMxFdCrZB4+3oh%}C%1Ij!z z$ZNj;m$L~b2Y0zmCMi-0PAMef#m0;I3LANS zXp9&m0p;&zN{i|AYJmS(r7;U%7Ot2Kl>d4+p$QdV>?KT>J>VoX>3NNv9z}rHFI;j? z$NFIKSn{9o^P@8`8B_3kadJ_f)%;cyJH#7?i#-Kmi;lFuYRONasnsrg0 za)KZ*B2AXwWygn9FD~v(Jr2QhF2v928n+F@64+DV<2W@^HWfU+qcs=+R~`8z{~iUK zu1>}bbBq&G40+oXsm_!9ZL&^4Y0hl3r==^80Qf^$e!#az(7tK5kmM|OE14hD_q#Qc zH?R$j3>p9BtVJm!C0wOjWu)w9Nx`tp+96A9GbUX|Rw-lLqH9QI|2J}pok z_zqxhFwys6w&3n#(7JUXP56T3g*gNjatCBdmBpdqvp6bK>miQT05YJ>^FdT-dvLfe-;6PK3dfbdTAATsVpAeY92fI?x_AUJ$WEzRXw zV!OmO%tyHnI2g~9%tKZgR3?PE=-v9OKv(uAj!~XE->|`+PAD`a;a(H;Q zkONc+&$w@bUKpc>U*pSDX(N^ktvaulmWGPFlu2SLM4;TJ_Xv?t!Lzh)L&Zb`Kr3W| zip+%gB|#r}#Fxb0P?Pl=cD3uaCf37AGM~(sO;}i?F~$SP+LrTYktPAgpD{EC=fcGY zt-|u+Ww;zjJHOgn1Q)I-WODrCD!BQwl3~HD5oBr>EDmdoGL{SAaEM-q^U*{uNojrt{ykaEAn6#^jnOZl9Eo`s2n0-f9lSoVYhBDx z%%;E0`TuRJYc>0XQ3D7bhT3~ryTY9pYzs#D(1fvqwQ7rFGbyJYu(R5-Pb{!xdIW6t zv2yu9{RY;NmHlD~@4qi>)4Xr-S~b+I^96U$0%Y>iAB7vjDq(l^`iIDtAKY$n)^W=scPfmQiLz;q9WRZ7s zlvW(}R}9bM))p%E?KlCY#^9mgY&nmxbGN!pgGU4!J?q@x!(2iyqC@lmvKwEmme0#3 z%4tXgjf;>AdT1!1bf}Rt*`$vW34;6d4hV(f>SlwXwr1~M|M17vhkv^NIQj5T?}gAp zV?t=v&61d=*zwOVMECYnk1`jQ#)P>{nQg{SVNCo)M1PT8g{i(U=3^zt*<{(@W7z+< z@=EP<9Q>cET^w_MJp-?|Wv;loLJ)x*Rfj+HBSSSJ0{gU{*mYzbZR5OXpX`I~$FRak z^%-BCZ(eccs2#a& zN%nH-Nc@9biIZVCB6Bi!oCD+V>@jk~BMt~cEPpZ)hOGpOT$IaA!Ixk(=rvCm&tlCJ zbbCpiA=v?ZG03u$8#T_N-8te=7;~gQf)v4KhV_;FDc&cEp5V8^T*C6;QTPRw>&dUFs;~C6UR$HirWd}XUBm;yBV|?&$(oVYF z|E`}9IV$ULC3jraa)%N~$uNth3hy)J_0s_o;*df~%OI|S&6X2l)u6Wn6_uy~WFIX?SQ*JwPnKS5+vT7)DOrz8mysgrj^V6P!9NkI$#z)+ZFeJgtD z5x#etY0QiHBr~KN0lWL?a-T!m%HU#7S~$&uWK&b%2#VigPO<3{rCIn6NvasmGW+DS zR`N+$@d5d(!^ZSfW*HD|8+5O*)N!S9b6Q`I7P7x?&kTUL*D~wvSt+3+@7exbbJw!A z;ZJrJ~`0QS|xpS-|8vrQu$A~mvAVF}q7hqS9N zR*99|3x1@KrDYK5@_1vc-TaKl^Qo01J3@D>li`PX00o{n@8&Kj(Ai4aqK_)J4VV)t zTtnKCjBSDyMCRfI)Y>Wr47X!YoAli7ejo>^xZV$Dg$KIAXcS#(Mtz_sw3g@zK@uJ9 z{y^L#9giZyBq0Ib^XX~ChUKsNxyVA_Sj2*1cf&o=`|o7?CX+&Tg2@(0Z{&%p{HfgF zK;?PpH0K4pFpk4j(TOXh0&YefO9NmRfj28tNyjbtM5M!jM1ifBcK((G)zK>9kS;ko zt+YTPN7#ZA&5p7)hYOlcUY8Dp`hhs0(Q2O53d+tukh=SA_$V9|gTwR&O@$p2Ni(xM zf(x>h%MO$_p~&p6JyiJv6wC;jw-3)8&&s#jpCN4u9!$2@bc6KrWOX&;DrMShgz!BR zhvQy9U6WL7Vc4)wdXkYl+ma~C74abW=g>R2O6{@UuO<6w{6h@=famC4j|&2_&T{qKmw-cawx3hGzpL9G(O$}SNeQvIW(BBvLk;5YI)&Kz`J`b zNl45CHwaWECW!*h!Ry#ktae{2*!JxoUw;(g%dHTQ@GPnxj`+q}84&=p!w1Pz6x_Am z-+jADoy2H)16$}&#)g#dT}~`Hvy5`l?)({trZ%;fd!xmu4xE#AtrkWtHhXW>&8hta zg$OLec{zjS5<@1d(4d>owA!esiyOE=htI$!aepbS?S43A2{VNrcRoB4uF2FX6MnVanzkoy-vZp<#` zp35Mg&{DQub1L4mMWj2hBeiSXA*@gj1*ot#hcp^BDZ*XR(*hZ(8H!)Gsk;`y5}Gw+ zL!@ddSHOG5@bpbLQDPjJy=QQmLC*2CFyg4WNjIb*32x9IAj=SXoFC0;REYfx|Bp%}bO(#7A#kal#?g$;dc4T;Z_ z>t!nf&o!+Lk&dJ4g;`WW3`iK`gP)lCk{rg5ERGEOAUVx=dJ8ZC-T;0tI{KW@V8cz$ zixZL~Bn)o~)6q%zKix?5g_*XbTNA9Wz(thG$-k2pZbSG&CUjyw^otIxsR`Ci-Cc#8@G&}C=Kg@Gd#$jxCjFmxGY3A!N*Cdqbp z@G3(fpy~Mh6%y!(kOqdfgbsbVxmhp@H{mH;dqkmZcXkD*k5}MQv+J7%BZ}iDstVtL zj>LYEc~DP$jcl^4P%TM}Cm7Je6JoWn-atxGW)&vQB+1mLL}hXYU(zakg+xvOJ}{53 zc%^TxogGS=N$SvS4KL)y8reLI$!D2r_YFOq=9wPP@GNAEGGk!#Np-6pgAcGcx)nk{qE_a7h?E7L^|f5EGhyP%#mxL(JEnAWaP;_B8i}sejyZ8xEte# zi?M~IbS_-T#^!RYQ9?982WC4*dkf(HiJ&s+NFR%^i23iPu&^%(I+-kQP<91N;H()` z*Mt0z8Kt2dw=_A$Wih&1$HyxhpyV4fVJzA*X=TY{?Z}RN=18_uHw)5pO&85-af8(f zr_k#BnF`ZY4LI2vlK`8$4c3WFQ5Ol&_pt)#(`Qjui<}a#*a4|HBNbVuq^Pv%}$Ue3T-_|T{3)2q%E{v*ls11 zaWC~vDKdaDW4{_LF{#@`C~=}=A7%>U?y!>-=k((4N(c48mF|h=sXbm}K)@CL^5N~9 z-Y=elBXD-=%7U7x`jl?DV@|VfHLPyHP7Vr!-j}6;n9jV%@9B|~I$E4uAKn738yNNh zIo%TUHaZ;_IWw>vUl!gUY%W+s?mSGQXQPv*%HBmf!YwjgXf|y*hFkH=lHVeI2&WJD zkpccWt;@DlEqZ*Y2WAnLyN5qxMjZ*7&T9&IO%{BdZVF*Oi5~cvUCza5`)y^r?KJ2{ zGRCTBSb3_Gk1+j)MoIWiVbd?z@02*hTM7ct;RDszVBZU+jn_Hz=gKgiL;#3%N8egq z2W&K^@g+M-rcVaGE}m5-YS7xW0e= zX8hs%KfnHXFT6={_Vu4X{rK_z&F$-VKi&uBKA)8F9L(ux<#bFV8rdhecVyuKws{M4=e6h9E2QsM z2aO5eP`ulM8Y6TIH!Z}5Edv$M-IBpq4BSDm93QFrbVMUPRZVDRi=K*@MfekU>lfqI zVb2e?S5r}d_IIT>p`aM%ZMu_dIV>VP`^jS!BALKuW?ocgk=-4HW(WifedMcLQ6NB) zt@EqG1Dts*CC)a`VJ}5vy2O-%qCLC2k+er(_5ulmv7_q@9A`R)Z7txA088SOoN9rG zDUKbqf@_oSO*h!VYQzj6$&mI1*91PQdhkOJLYj#$dkzg?U;1tXka6T0c;uT6|AxoF z1Nh~S8IL2Q!K2^oi^uHfZ}^y#zu}tGzu_8l=6)FsgabHWSdSu5sODcvYd~IpIk5q$ z@}*=z0b#!FAAiv(*yaUr*8^8+J#QiM0!g#IL%A?+QEOabTX^L8VTSi8k-Hq9FMN+rvwetS0 z`@7H6G?T8V3_KayU*YTIk%ZC0&pF@1H;tD#zX1}KLpT_E)V>?P2B!w9PKWw<5(xey zR|58l2}Lcv(RNOg6wdL_;S;zV011WC4^DK&gx+6qXDQAhBifE-iZB=k1DdcdLA@Ny z77c{f`3&D;Mq5ZS0fD1JKvBg;oN6Y9DklL$a=&nI1dqT+pbWr+8F<|6o{>0*JHBtB zbaR!#;G9X2jjl^SPXdSCa=!rRM9Gn~;A3u||mC^Ai zSfBiK>DR+0p0@#1gGa+-sVw9&eB?vDfJP=oXz0o`v)TBy#sYEVdOpc> zL559yg=c^w?d-=_z&az-2a`ku9iKtgUXkFLE9`u9Gtm#3s#ENe`?v{%vaU~m!~3j0 z-v99J_Vw@I-T!yAv@ZD{Pk#ZP*83%RbKLpqZ*b;m?>EdGX3t`J2U;qSETQ!n!WacBUWH=5MkN#XL!!51J#78E$cHPC6-(Kt~G~nszYEy_A zAe+%O_JRFgzRvcb3(f??hxr$)V+FLZ*}G{V2fyS_1H-@ohJgVr1H%|0453A^;ml`pQ&qOcGmDrAt0!r}t&rX~ zec2%dV^qV)U*;$DWxl0Injqg~1zK@D$~taP27TSE#%^t(<*_M5@lKr9u-C}-P>58b zIl%fZBuH6#5b{^#^!dyJshbkOApuN2A~pT9&uCG8P43m z@-;Kd*U1r%!y`>9p)*FL=0w&di#*@C1mu+Ptn!lqyEuq5)5C2kDP>Y>L3$ z3{7#KM+yU7k>;Sq0E>F@EBscRF@6g|%wt6f9_ZJTh}J=MN?$i*o*GmS=-(j^QF)9U zL`HR3)w@lzy0uPX=M^vqU$PPG3gTtI>)k z(cp}x(fIta!4d(~&4IUMjxR`e_Pt~ic2lytD0XpuzS|=8lW|$>`^9;fB2)Rs;&joy z**_lOl5t~ukKztFpNB14cp}5*U6pt6&^T6i7_EUFm`T*khfd$YZIG#D49Kk(zCD8S z7I?!QQYkav*+pU!uJ&afVb`YD524;grALVW-92Lx$rtD%PeAI2^wKtt+O941Ql|~v z78LM^n<8N|cxqy>JaF_~g7k6}C8TaYzJCA1_isPRkzOEXP=gAHnG-}e%e$tu%BV%b z?8<=JqX=O4X-$&W3LFjNqxp=|i9%X<(3nDeO(`cmB$t?{FMkq+5q*>)l`--+mxVt@ z6p7_27-wRWI?_8d;a^Ct;QsyCk{kFibvQ)j(&S#(;#I5F1_LiJyI%JWWa(m7 zbpyGR)gLin8Sq$EbyDQ)VXr)bn&|RBbb~eW<>QYG2B9`JPHUP=Qzrn4%&ivEG#^R3 z6AfzMxL`Wt=hN$<@+cO^PO;o4;B@O00a|UgHw4tKQMVmL2|FLvLn_hZE7mQj4)sJ1 zUv{EW&J>+D$ZcOQjkOVxt27*Z}`xO3ehOh+rR0^JDni{3F3nQ-f(3`do$$~YG%G+JWp0YE9- z=z>@fuiK4N!l*VHTUjFdC(SGoi0_740@Wj1@Nke#cdla&xQj8->SeEWM(>h$kqIo4E*KK@K^KvYgdD=CwM~Q^^*GTO2U2CCcC-RKPeB2nLJ%cPu6dYE-T@g(AC$D{EjqP&oo`1)>y)J>W$ z`y8Ywun!YMnLN|lHhC$5Kv7%-`8t3Bjn|;9+(XZ?EOn$&;*237u~5urR!v+(d2-EP zV7X~fjR8si>%rk9m96?vp2Q24ahfNsIL%{HzAUxc`AgSH{<>gJ^kYixV2aLijdR877m0IELv7G6&57 z7cONbZG)~iR*7c2w8wC~7q)x}1E@#B`^ZYc9IV`8XfTkv3iC|{# z;BwK6r$fCjX9Fk=6nVQ^9!Zo)M{3uwyF=ixat~;N2nEoD-U6e6Re8XFq`BA+ylL4C zzYb#8kdsWAEV{c8N`dTj*HC;O?iC3gKGV$+Dv#+cnf@_Pw~k+W%djBAf{J02e3}fl zn7x)c7G~Ja(-_qHVr+Z28EMeIPv-?0H1Ws_GGyYB7eu<5u21WHrL*Kze&iGShhKcf z7k_q2xBuwR7=H0HPQG|-i8l`*!XpQ3aC`#FgA%;O22e!G6x_1e6k;%VJ18vY`#zjH zekr>;kkm}(hJ2>4{aS$tn=P`s+m2lvi@{h0vZ$zb4jboWIvXLe&XX-%)q>Z64Ew2VUu5}Uu7t3w zh$enR&0s2Wr58q;5(`l4?BW|3_T%Bvo(XBS`NpF4Z)(kC4P$`HP=i?n28;6V|4M}? z%Z4%+9dw{y87uKRkd>kYF*fjgpT9wurj_MjX@n*Vm0pX(yG;^3D4ez2rHDy!vf^H0 zq8?6VblzpCY#~}w24Tn#a-Rg+?(h(5enXi^o2hGjg8acP?b0J`xJ{iCPLvaKq$Kd< z8Yz5e3uFqQZ0^=7K$7^>sA=}+Tc8<)B}VA@vnhCJn|0%U-?rH}(khXivdFV?))d^w z(lbbh>kCzQMU8M!;ZWo2P-rLAs)JsRa`ont8FsdEGUj}n49ZI(mW?jDG+SDJ8vps- zr}67|?|%RKTgx@e&rEfXyOP#YXk3mtwMPCENH7qd=E%0orX*w{Gq}){qI%^@Vuo*b z9D#7?jvcKag+a(Au7UFnz=eP)P*f&}pR=)6DP>KNmu5UIZKNATKp6-HH@mt4h6y&& zTKW}4rD#pFD-Zx9wtJlGbfoE{$nAw>BMS#{IpA80#mvIX%nkH167|I2)mJA-1F~S@ zaIvNii&C#Js8HAL=#pGC&;w9R!5uO@(CdLPU^#&nHl4S!&DU-E+THHr`UXS2o`TmM zeE<6Y{nhtx-&5%Gh8+tabKCqSUQJ!0PQo3(>wW!O^uh(IL}Wb z`uOJUci-(kp$4Lx4giZBpI>Za=oAUTAq_h*lm(c@6%^J}T$yy!P*IUTEo`Bj8N-0n zkQ^2{_{fP1Uyh&iEDXh2&Bp~W8bpO9d|=(vS%GDjLDZWA0PGl<>-dt?^HH_#?qiC@rhCgG5eRRJoq7uM1}oTyVKfbmI0Yd^u(c#C5gWOs_W}1Plw)cXz}Y zH#$8cgcf&)1=xW*T6H|5cv&rUb2(+-Q_9!YMCKi)J;H(~2`3_xu9v^_aSyPJKKk4S z;~!${0*mtC_Ew`VagL0li+AD}RyLPQ4l_f?`;akTdjjO5i>9uAFL2MJ&%Jx}@g+@0 zZfUpah-49->L{u0G<;OxLaYhskgnglE1+OW?MBe47Pi6CJDiSO^;M$?Z%#|u=5pnZ zXXBraIP3lFk3SO_Fjcecuo{ot{*yf6*cE1d@Is6Lz(ABBI0(z#+Y3^3k~3IDl&|EWRJ9UXKbrj)zzIS3KSX66e3_Q3$p*U#;@ zL5vzF{sESWpTH5EF-ADBhYH%^kw#5R)v6WRXdx9$%j~{xIkz?Eugs z^4UJPjj`DxgH~b<0Tn330ARODIe<_u3iif7;M*WShxSt(_lXP;@tuM8Kzt_L5)Z=c zuPl0M!I(Ha@D474TG8Xlpg)+!Z2lZlG8&RCo zS92H`;n^PBS>DL)d@EE#MQw7ViLCSy z8U2bjjYmjUOdoHSOHvf`f>L&CwCW170!&M3;2j(_Exdi$*lSENwu*XoL?&)fw0*?z zKAhn3bLj%*zNyK{O?s8=T)@rfOaWu9AJWxBm-2Rwi#oRb`Or7$szrTmNh^Jm;Vd$Wc_k3JJt@BtsRYFVd2F0kFM*@@J^`MKBdW!8|5Qf*Y z{`J&xTydx#wcuqrNpP2kla?GmLfHDUd?gxE6gY)J|7vw=EVJ35vvh+|8SgaQ(c*@D zLw_B`TO2`wB0~4)KbN+ZI$_(TYHRx^Byo_R7anG=sUSkiKl*HmQp{>*%C`1jH1SPS z?2fWgVHb5;!g*?xCGR;mg=0&R?y1{P5yf6IVe4hlB>! ztGnHLyMHcW&&!1kGA zp**{la1hp@jwFYU7%LVqERhEayn@Nw#3jV^VwoZD3<#7FL!NhJ6niG;8_lPsy|XJC zRXUghVj#=wP#5A?d9PGltn#ekjtw0?!wvFH-Lb}7$gc*%rY|;Z(J$7MtCvaIhI)%p z=^ccjQ6=-HTj7(z->~{|VC0KQT#m2jD1XEN1Vq10w`R|R#*GSn{cAiZsE6_$=q6Qp zwqswsAV3h}eD;cr&+0`{jI}S2K)bnU>F;1rCF;%icv5W9Bq}cK5=bjAwZQkFx<#Gw!VY_6{zl5!-nVQ}Paubx3i<&K z*x4=~3#lc=J~QkY!MJHjag(MVR*ee||6oC58HlGQ~q zsxuY>30V&|Hssa-QSAnQZJ&b$Er}h|J5T+k+}TPcMYc6A?xR9Vd-w8CZpdcKH{r!o2#!K_F>BXG|xmSIVx%{C{eM$|;xEYjT} zPs?^TZN77wGPUVJru8ZXQ+K{EZ?Z2`5j#ubdhEUt$Us#F*JEXHB^5|NMX0CoNmENj zNu?Oj{;qvp$V{{X5Z{fYy)Ev=N77}11iw<(i=D4((wC4k)O8AMdCPf_?67qYUC5W1 z{sl&p&4(X9etW;$eti3fKiq#5KNkwXnX98}-O!E%VC$FL%LWOV-96fLd#xUrfedP1 zQ(WDq?jUlMQoe(nE09c)uY&gmJBLZ17^CV)e3u%v10aoaA&)d-gH3Y9g$Qj0?@Xbs z6p(X%F?`&WXU((8?bBbDH!+MZwD2Y`Y;EgdCrdb2k6hH{wgZ!G%vKYYHJJTQ&w{aE zlyLd_{hN2GQhjhJn31>3Yr#6VrVwz@~nSGCEQ*hSeVWrxFD@_5WV+?xp|dsqs8E==&%+l{zF{R`2$ z=-+HIFKS*ML+yUO1DVLAG$2XUGf2LaH@AS+Npm0 z_`|2g{rf+B`Xk(OTZRFAcmMGR@ohHWK#y2VuP?x)(F|pGGeb5B8DoP@;!aFS1FY^5 zGLV_b3OaGvW?FovY_*#8GGayrB8F*x8$O|`HD3fh3fZ2Jt-jWyfX~%Esh=7g0x@EZ zGlSSU2iiCppL(S4j)?s}1tsgnie~5lg^+84rVK7bcX;yei(*>!oZ4;15KdmHC1zuQ zALH!FayFppGXdnw0OY12ZG ztxkp{Tb&G1wmSKUtZU?24t?0%oX=2drEx-&A$~}M*_^+I*h6DCF@kQli#TEXfp-pB zZIbDyL!#^MQ3w<=sn^fT(uNxKFzsi2N9=gQ<2K&0-LA_-XPI77H6!08Tg|$N#pK3Y z5Z(21wVoBFlbqMI+jW^(e^i2o|G#mpp*CTKF1uB8l&dD)kfi1&AhRvRfo@fJ=#@GT z35qG!i69}A$xGX+-yAa(E+d)&lL&J}5ynCAcmdB09*JrpUwKXyINAhhI}A))XBQhv z%jN)M>8fAtr_`9h5UfF6VK&1qzPlKqDkT{e@By?ZF;#!-TsRy%8(;zLpA4TNtwxJ~Ck`M0symtiKMKWKF7Sr|CLJslbIub#dBvXiPD^w0p z-JJ|2Z1qtOOi}9MC_)qda0lB)a5EgmU_m(u8Gl?5v5-x7ldh)#&q8Tcv$4=$1DMAiLG4(-BiFmTqfnrv=w8mkn3^ zgP|4cmscAI&v54W6PatkvTA@-Rg1Yu7VeEv&>#N$w}Pj zr6#0oUJQ-lBb!&Us^lgOlD%xYX8nBk%|cICKOI&|e7Bj(ba=(?Wbq6+lgGzEhK9K2 z#~MtZ8!-t_8n~Ai#=~Rvwwp`3qqdAdBo@d)x*I;Tut+&=Hu@yW z0}ck4B26@kdtsNhu_LXa!OkPS+NNBGenWRVl}@-lz9$m1dk(0V>5yew@JjrhLZ>4d z4T?VYVWk(}9W{$OQc(axku@I*Nw5W$BD?eAidkN?Uf8Nw`DS~wzV>Yd#J{@X=Nt5O z3JS_IJ3z``)(wwg_4HXW(WyC&D4idgYkEMCgYde?GnB#N#Ej}cv@1%-+kgJ^{p9{T zq{Ei5OcXeGfYJe9r*J@`L6fGq&2TUjL1NpBNE#|+V zi=kWY0e(p5le=a2bwboFbTmTWm`{dfHJCCO&qb0zQfd;ZOSPk*AW7I+>)`m6W-e;W z@JpEilWtvpJ;?ML+bFLMn-M^2gH5!XNS+Le{HJisy3RnRjx| zB=$0_#lBFrX!Jz*k;dP5JJpuamTNg5z*t8q`5uKdMB2k?d29}OJ7A)KsAm=#z04%}+iMOk9-Y(a$@QrIpr_He}d)F!jNO|)GoQBDi?ZVpo* z{^?amq64m|4kSUANprSV!Am$bZW+9}cKxkC`OknmqCc(@`MV*iV zQkT;J8QEZucDLv2jl#K@kBkR;*E}+K80uyGje;&O*4VfY4rMu}nEu1Y>@-`Ak*shv za++f2PXg@3WC8=Wd6PQJxWh7++YrgHF1TjMZhXA5*B{~GoD4wVU|mF-c@z8MNCUuU z)7Ay7!uaUQmo0J?xml=g)hiH5l`AE#r;Hjy1F_1qnh=plogM|;wxipt(H02YS~}X- zOLvD93M76ZX0)Z=?hawfMB!8fFP^1A=wk;ah55Rx>XG11z_*`DQLY+rQumw8Hj}FX zk}e_*XaZRw2P$PMF~WTv1}@afzY0@|3HLfWc4d>&2?Xr@HX=1@P)q|QtQyM*qdPYQh2WPQuM^dzF>IxzMY*J4{Px+2#F zT({KLhL-H1GC@a%hw3Ce5~4uE$~03fR83AE0i_Aurxb=;ybSLw(YGC6kIN+p7n3o9 z4$vS~A85>!8ubc%DWT-&*DC}N0U=)`zXGvU4Bmkmffk_52e+8y@Boq7t~}{wR@B+v z&VIaEuAZZe7*tQMn1Hl`wrr(fmWh(fuKEa$-pT_KT7J_;qb_iTD)7v=Fgqs6GEVkS zBQPg0(hTu)nDqD(Q%#!>ymH5|3Yx+cfp5-ka=RWXDIv_Qo~}3@it4cw7Z}ZF1do@; z>H`)?zX~~FA^G#HNSiZKBmo?1;bW=63XLiyU}Sie-a+jG*Zx8!$0iSSrvx-$Udvu& z&hCBs{?8xp|B%CKZF>btLNzN0l1D-hLoNGzzo_@y43K)%WjEK5wkHSn$TAYw?3AT~ zu-js1MR|iXeWmovJ;a)ULNbuSx#y2Q$Vu49I55(m-!Hpm30`WFMAj2jFLa-Zphf^5 zMps?Bfw!s#se@v{)po#}jy90q`Le;&h(Y~p#pRZ$CdeKX$&WIRXHL6*+Cyks6u$wR zLh6h_K2auBmZ~tT-3WS1SncE)A znty~QA{LYXC{M6-*y@a^9_lc%U|IMq)Kz6kZk(Hj31kgSJw1an1nt`b%4c*lZC_Ln zT`TPHY*wxM3Ir`cDB&up(3%CK>ui_EQWGpeb6CR8gPQb;)=T8=HvU=Iw&9oOxoe;i z6pMjWBWALehLxM1mSR3OSuDOH{XN!nzOD*%Dr&WGQV=zCH@VSl*iVgI#llW%hmp3s zGEEa)R)`}96ohnJ0%`#p;3I$n!8DB)O?y+_rooro2gv<^J_>O7QW|Ks=>ps8n8)j? zDYjNkKDCR5rBd~Twl7bEll$M*SHu2d!QeX1$Z>3Tp^+6t(AnO!I`~*y&|GP#Y5TJ9 zxF}~pi)Yk zQ0bTKQCUbIFBo-BDNoz33-`4kpZn;Qp+O@(B8*$3o>_DJNQM_mqKrq35JxgX(%=?B zswkxFSsJJX7jmzK*>Rx!`E{F~D$2BSYMy2xG?A)BeVrR9Sj6QG)Kvm=z+5$?mHyEq zqFoqDxF@t2Bf#e?_bqq|be`qnMoJE2yx1gTRoD-z6L3}LOr$8Egz{bHc-kyXBtF|Y0p-wDm0b^)fQNa2MmB~8 z(gn9p7DL|Ev8B4F|JGv{z74PTAN_56-wng^ zpZ47_CI4yP4OzPWquAZVskM|+`<+3q`RAiTD8O+&1ryMCm~Q7KqK znLA`cUM?mC?#=vfvM9lpWE-AhdzRzzMv`+n(ksj9z!cWVc(Yz!O@G==KfeCKO14T( z#u-|$t=Sq|g3oRX8SMehloA{?(=JI>(aqQnzv+-xhmVj}zbrNzJ226B$Scy`fwl9- zcC3vTT_e9_^Zd}nRNB~58k>QNF;jSj7(xM7c#=ZUN7Lsn5TQv|Ht4(x*gBw}dIV`} zOl&ADJIItDf*7rGUZ-@}|LG@?zXT0PtK;z`vVi%bWtDcR9EA~(#|T3d03Z`FC>$2K z(sc14Deti`^DY(E!XCgEbgLmxn0114P#l#8325Yh{jE|bE5|k#h?(@71yP**BdG&* zkY*PRa{f&Fc-m)NE5}N0#?f}A4$*aZ59urPVq9+bCla$ZJz0aFu>y!8s<}_QU6-js zFeCS2?K*$;JD6lmL{8^#HWx}Ei7vPRX~;+w9OkB0eHv;t66*l!?G-r^*6AEP4%Q!I zg4>sNC}xofQ-N3mFGHVWPX_uH@dr5Dj_7P-eK4X%T-oJ(D6C8hf1pJ1T8;k8 z@DVA8{4Ua;?rDxSyQg^o!bwOv>8n;5i#*oUS4@X3v`VV4Oh;OWb+f+3$?eE1_YnaQ z1Zk%Ijt;sodvA;25k%N4dW6$?ptw`A>(zL&o7|7S{q*)P_v`!bKYY5sd;O>TAO9@V zX3+>xM%k=SqH0W~3-gCSUi@mj9>1&IM{g(%5V$F@gxUInnFbu|6>(og^OfzoDmH9p zd^$~2Xafb`s_dxT^U@EF5RB6xC0jkf&C=2XNVWYDImJ)V zQ|cwZt*a(o?eOYmR=>UgjVxzPyP)&+)S5pWa2UooHZRb3r8afv#B#0Lw2m$MG;tOr zMruZTa-Sj7QIl?wIU4W(ujbphNe9~|fxyHC8mXTU2F-3MXV2DPH?pT-QYco^*#gHh zA%hSaV3Sl-XLUw&!*#^Zr?txXAl))zP!YG-cQbQ7)|Hama3za^*5p>UXhfU&lV+>2 z)%rkIz&zTRHZ0U^-}hbZY04vuF_W-o@IwcbBs8Kf*BCV9?`u@(GU*#HgY|FLme~S1 zA0b^7NaVtZ+|lZ|JA5scI}DjULsO*VG@Q&ubjw_YfHD|1wK}7Id|CKDJc>NmsY@r+ z%kdr95m#5fkIZ$TR+2i0dh_n}U+#CC`~UAp1RB46{cg9u|Mng{jr)~&S=Fg*?eHjx zwa}_vJDJQ|j1Pk|;hM>*j8-(37WZtX*=D}PNP8xGGS-)htrPa+cS4ujpDysO)MF@-@=5DHh8| zE(I*SD^$pZ^${pa4b;RlA?7po;%;IF9O8l8qbF|hE}UU)NTtaNyVVv|-Db002_p^0 z&vetz(ypPSAj3$ZyDxXH$vIgj9B z>1np|vEEK@D1wvzH*@dW+(vR`i|VJ~#);yT)=x=^vzt#iuAgeU7;>doHA?6vTB05RCnF3$%4Zf- zoqBrsnAMk>E}y521Hc_L78u6h5rr>);p_~D0$&0BN&r+QTBM(r(kz-WyX<1Kt#@($ zx)Za8A={Avwv^M>vf_MGpoO-B)%X0T_^9&oH<^`UD7hT!v(=d51=i68e`eDv!$pze zLjD(AmMYvcLh-A{Zx11@-d9KM>kCJ-lbsyb>>JW$KP?`!nXea~E}K8i?*B9ct84+y z+;v5x_MJ=(O-B&LOZ#)ttkXvC24&Yo*ltmZD7WQ`L;-_VRL_936!)OQ;Txs!q4=ld z@asYB1PNHAI^*g?B4f0lrpSw?n{>(0Lj*-lk=De(d< zYhg#${YOQjJW5+;NN;kn?ho)DML$guSF-Jq#8k~}RW?v-g$M_|!G_IaO0Al89I|fUsK?A0CU}E{vzP^;TDE;NHrhegxdSk61!pyR7BXJ#o8C| z>mGnR-7Ul`><$Menxr(CW^PWG!V=g7BYV@eg7Lwgz-Q24Y7$-#aPqkX7Af=-Km|-~ z(BnRu(a~EB^|Vg{;%ibF0T1LM4sbHmSfa8=3#0=8+yccd*3CeWnn}%myhhd|{^RRR zCl~|jx?4}ughBfdK@#4DJe9T#m%u8DiDu5pEkc>(T@gv|*@GqVUZh?L; zsRKP zoyjo$v>eWCwYs$&Oh`RJU?h?$?>3)*A`qr!#2T7sN$KA<>Jfgc7T#dQE9)15pey5s zkU`n4w~L@)IT7}2mJR!@2UghB!!VLS@j$4CGZk=sB4s1P0>Y;6+tp>mrNYGSAZ;fp z)%Icy7TF|iD0L8tAy#%>ogw$w@FQdn8rl?~`nC^2)Gr{A72q|xFY1@kcj4jDV(TCqolg=fJd!@_~!kzuD$ zw%Iq5?Kgch;ws#g#*3PfhdiII9Sw8f?dbUwDcCgLPOjH8i#vD3{-IogtHvd&UO4h1 z+r)#UG7e0Mgmg#=IYjv0l~kq3w&EId1cm`Jy9`>VdyHA9zuuUovJUobm*CT;mk#?L zH)gPJ4myCcEd$G`fN151?i}J^g}A2e6s2!_2TB7Fk=YmcZm5K+Xzko4s3+#kIS)jD zDR{E4uzl?trPl)?(q49r%%Qu{6y|{IZSNUF2oPekQB97pZ3J3iU5*AKTc08#v(bho zfK%;WYw+Q~BN|kB=UTVutJGN8gl)dixke{n4}!#_WNay&oL5lGJ7GpK+Of?x1SnRd+AvLEB1i}Z{9z+nu zis89TtYy_^{_x}SW@g@Cg)pF2H-S?F*hj%+&H;O*3rz}PD5FPGns)VzmB(qj9oztEVRkte;x{sxJgn)d>C}b%>rFV;NUop zd>YL<(1){7MXzyf>u*^c@7`P@F{vFNGMa!`{F`hP?gOEdRCen_xP18U2>*Z+eJIBk z0pap;VF3d;h0CnG0Aj-210U3w8RWi@834bL2Prv0XbAf0Q`t3@E2 zfftii%0KPX92Wv>nige*U-}?o$f{N2lPZ35b&gwnTBgAYt`x-Hq@5~ypuIt} zn9{Z*&=dJy8YBfoyXe$&?fZzM=}TH!Njg@{_ayQ1wnMlRJ4JOIkk1f+WT02LOIVNl zOK>rz-v_H@jDr>F;r>yX#-lx;nE+%|JlJ#%2XwcWna%cgO)s0bpI-g+?#_mPcz+M0 z$oh`|zWwkXb19wu>#PixYljGf;p$2G!8s|Q3aM8C;#eLe1|Vn=J;7Oo>cFGd<#$jiknZ6N^sYMeA{r?8Xz63Rbh`j?E~N$W(;yO@c{a9_@3nzlRjy) zSmNaH-^@W|A+kM0vq?K(*=K4fX>_I=pxwGg(h5_9AtSW&a!KiR8jL7`iJJm^*CfQ9 zAY~f)1XFftPp~tn83BJ(xo2hFH%SR;<_=ze*Ly8V7|7PD3F0nccN|8w(Fiw1aWn8A z)QmRU5Ks!rhB`9K84?rXEa;zI?=%P(gyPk}y!zbb&dHW_Xr0KH&1XQ(W7fz!={2sk zpP}ZaNgp~S+y_%76@mOrFsd?@FXNR0Q-CV$JZlkDQEYU59EFMonda;d6guGg8;lCypJgmvj8rZ1Osdtfoz1bpe z9fdZKNF&{0u|cL7X^zp2JnoFSQNpbF0oJFZHE#k!1R!0uyc4uRsV^-Ty*vny_&D&# z;@HvGv(y}rFG=)Z6TFBciUfG3F*W3u*K3VGc!#85al>QuR?lzG$VbZ6HvgAcOBV$M-- zz{nF-URTo)NfR1_Axa<(5-(RvTkxiaA3D=66~B=$B^$ScO&DN)toe2h>b6<+fMf1a z_;mZ>uZGw$38hYC1yO+$rE6`K3#J&2D{5pew8}_{;8kK+&fg#2PjI5m>gV=m?Jl zG#i_O<4R+xr93WeOa>ffZ}Ac;!SJYU6oOmkh6MKs)gJA~!bjZe><0;#q)25$fZ+xr%(MY{&`N`3Jmw@f<2BxIB$si} zxMCI+^YIhLYPE{u%B1A^?FkgPZ>NO8GGwP7%(igA@cY_JE`*CRMq**4m=e;L`yW5weZC8OOY+3e1!bXCM3PO zDrnuJALv^G{&9SSsx)p5ND;Z5W70{v_>>z!>9L0#;{sON_4uI^nlH?B5(blIdss-C z?Gba?Y!6dOvz@jP;aPYNgIY`tSXObRZO@9v#j?~i;!6GW^8#;}a$KV1XEV#?nNjR> z?Y#aSFQ*V*u$6}EwRlLC1^9yHx#9{MUD|z1G<~$k84GuSB`h4ZoGt;Z&dM*qg+74r zVmeSc05C6=XnCWJYJZ;ewqI@mS=|E~gmIP%js%ydl(0cJ(VY%NGM$}@X|PD*`M3{* z8m1HQOlt(QH6kS#40On1F-L-h`9_sf%fJ(i`{DPj1}5_bJe_e5gawFf$+@ztRsvIG zV2yZ_%AnDbH#oJ2NJ2(tP_$t}mSGw`MW`?_eX*h%=kU}tP1K^^;!MIERH{*x=gRqc zH@pt~G!Mw=BYpV`6rDVq?`}|50zlU5ANEh5bR}0k?hl^BAEzMeNKgh(u_6haJ1Xal zaCrXpk1*cT|7_Pg3@;xly1+rBM0Smc+-#k@wNb8>qEh4e^r|0Ps<;-AC9;S-3NK)F z$TZLWYN%`*;6Kc`d7_RQpLK}yWSgIo`T^#Lp6Rb=UCsnmBSJ_XW+6GG&Z0^46;=TG z7|Q98h>b}KEQ1quzgbx4nk=5{#3Wx4hOEPm0_yN^blM^HKaUL2bc6*MHX2o;P|t&H zu;9RKFkAIy*c&sJ>2d+j>a{e3P#a~9NY&|RgdklY3SYVa_M!*t&8*EuOF6dT80y>! z5|lw7+4lwXD}9aY=y`UgC^B5bSff)jEqURboPnwtOU~dLC}yu=`3}`8WrURfk2KlP zIM6&YLXKYc>PyXP2ikOjyr6UxO=?Nw4~mc7J0=L+>Ka1O@`|_~jxmsOM^{(V1y~gS zl?0ID+8qU=CCFHHPh-pxNLLhjmy}Ezw1IAr_%GLZH+B%vyV$_#@h0g+957nl4jAMw zW_z}~)khhRAq)c~U>jKKP&@{}XF2HtOH+fRl}%FTS3AT(Vt`sL%L{T4!s8zFhkNj* z2i)NdG`7p}%?|%Kq{L-DjUv~}@gT{pWr@c~d4XPE(ZyoMOgZ#I1*Sdt;qbS|(2)5b zCqLOX*sjH+7Z+7KWW&dv0w=&tLr2K>bnhU|!~vf^k5oF@ohflnvsbso=_7{(AM^TB z^D5|q>?2TIKg%W(6?qdeFDyKY-MfDH8!567r!;Mw-0VsI--Uz2n{a_!ze6uANDp{$VdR z-~l}sgSluxzf2|bsd$*U5J=fE215;DV%DE69Es%yjp7lZ77-;I!P)MOno8Yyw>_`C zJ59xv9?F9fjz`$8H-iUI{8;!|@6#XGOSzdIJ z?$DH8SW{Ch?ROyaJDhMBZRY>@FD?MYu5Rh92LjpY!o@mwk zZr89RT%Ef%f(%gjOOlCQAk&wftdv4+G=p_iZYQPaa99~@@yaUnr$b{bLx0j2o7tbY z$?l(zC1iz05u^@_FFurx9gU~)Ry~cVg1N-G7&>HOP~$fd(8L6?3I;Q=z(*iK+2!>D zRHf*lAi-H4#a@IyD9^a7TN)m)J9~YIAj&}7W3!P}4%Mi#`P~UMr&@Fth=C4WUZG$|7o85;Ad$r25WNsncEav?ar@kclwEy zN@eY?{xlTe)LVu_N~F_Of6dC(XSS8n;f2%y?BilZ74+lw zMusK4dUhR9rQHS~sM5P(oVZHp8{pG-VHTfuVVa{dF+_8K)}D9?3gMS2rRYl$Ryp%> zdCuk&)aivFRnsL4t}43qFe7s)W(lke#R7y3({_3pkB)BLmJ|XsvLP{2icT~oHA|2P zd718oetNPQ=(IlNPiGK#=IyX1!?bxke1iqsouK8=Y)1gAvz)+$TQ5M}XJ22buFmI~ z(#ptVd61-B#&!ZPuaTi~F@X?@yWu=U1Wt6OpqKt*+2A_{4C3QunFra_N$N7qS9q4A ze)v5dF9!Qc$x4@XwOn7)3IUO&|J$d}o}N4#_J>EOCxc=C`03q0t7Mvmhi5Bwuh}4I z4XHs{DHO&40g-N9=0c4$$DRhUUh-yd4LeGzl~qY`YqHX~m8CIE&&UYgst-9Wu54EY z8YQ@T1){Ezz6;z+>@%2`h6163VD1Yu=KV5)k)z-P7b|L2`*@@&f1pZmEl~Iy=S%Pe zUAG_;2$D`GYv$wQO{w(_H$cMqhS6|vf%*bpTB;2OO?=btx80|w#%OXgn~qTR34VXb zrG;emE-WSloHg5!2#OCY6@@vLM`U~dLCc|%Y^@^aoo-yPJ`)#$K$SHJ=Z?D zQ8ZostC1e}VLisak$lKCAIR*wGFH?*nqbJtJon8CY;~V~56t`cAi5Qh(`AC~IMpUq z(Jhcd=yZs>Edm#J6d^>Wq6O4tv0Hy|N|u@GHd zS{PS8aq%hQ@Grb)P?0SufVnq3C1vVtGrUm)Wsipz0^AGJ+1oY#g>wbGJ=g0e^lGuR zRtLku(-VXM>v=;!jt*Zg`i4t04L4l0yq<4(Y$-B8Dtmcb!_h1%y9w9}t$nj!urAz^ z;|;?{RJF6+2z4<+UcRZwH%NDBQUSR{0s_vx@c*ER3#a;$E^ph-rJE+R*EMk!%^qOW z$fJV<*;UXaDz(8e&Sx)a3pF<)Swl>Qs|+LG%ca3x@DnM@hFEb3u4aTf%`UamTx{u# z&P>DAQ{f2VQRI(QxWmyYbw|<;9)?1;V}O>?HoB>x@%?W$`_U!92yNY?sitzxVgp~>PP=e@4tHg@u#=%?hfFXY@Y(##SSahNC5u*!@HXg@9tmya<_T?>fPJ-zl69t2Z^9UlG5jf+#_x#kua?p zbDpxoR^M6qbgjAjK^P`(OeJ@k_P?Ro|KwcH3LYqU2=`6YXKl6Up$)pxFWF;9x)}88|1y!w5!iLxy6-Qk&;xF=a^3P;yu~@dSJ4=}Sb9 zgBJ4xQO{Jn+B9txazsaj?R@JpI1Y?QzEHl!Y4Z0SjArCl_%Hm}N(_!t*$%((%bYTH zzuulkrNY<-AwwY$47ukZf4 zyZ`v=uYU!i(m95ONvZ*s^mQtEg;H^__f>~kG%=;4sS69ix&Q?1u0vzEUf!>K(oMPd!O#l z@7~{ie0BffV`znqWaggP9JPGTo5 zU=VZ|ju}Y1X^CU1M$Lrco@s|!_dM{nYq9E10VPm#roaB)DLC zp0$)#1*_NDpA{>#2Lq#&whD1NJlx*r_ylwsPPKbdZMHj2qzky#Vu6 z1~fRS4&bC}wIbau74%y{ec_dgq{l+AIov@+Lb~PH1A7tIyK7W>CBJh78P2uzcA-tk z)W#sc@Stkx1iMSx={`{|ew19$OngcGzuZRPKdz~ zdbO1ghd%Dc%TAd;QyBtE>-*p@{~J?3xx$YXK$V5?KdqSx z%5SR>U@Ck-D#F-qSmvSGpwDvMB>VxHKY=FN7b#{3bl|b@9iENOd-0W^<`8p|db)g+ zJJogH2{*!Yvk{h*S_mt0n6#N)*@bL?Lonr1;cW6dNs`XmfnQtN6YS7~>N)Vju#p$6 zFt4b-&|MEOO_DYk&AvpUZG40&%QB0&IGZ@YGAy|OFbfqVhuGzVNq#S?YQaNV54If4 zAWTxWA!Y4FPgoh`jLM#ye!pnoFo5;~H!- zuN6xlSsvjrs(g-TF~OAkj3 zM}f6Ef*%^x&{dEdHzIfG9gZnTe3G8P^rk6}h<9n;n2%V>g6>!o;93+CilK${YDOc| zrO1gEFmwS#d01m%1@dwDZFtZZp6A4Q^JKSmbwI%b?;Dalu;6nxpDhuru|zhKlnEiE zbp$scy_teBnCckc!X=38b!06$K^yEEMxaXiFfdGgjmfZaEpk6EWd?VvTC~>S` zK%-21Xj~ZNyB-!aXuIi!R#sPeNzXRsM43`lIo{EF=T6%#+1n8+bq4>G!0NtX>mLDv zaLD{IWI=2xau>6Zh}mE~=20LgIm~AwLA42Q`E| zjY&bMqsdzn%^)qFEx_HtF8Aa09ATMPh^L`xE@sHwAS*1N<@j@+veBv88?*sQf|&%B zd)jL@XqzE-(Z>t_Pm7h#f9lfnvV~!^UL%iv+~6zN>efw;3^$f)AXpQ>)C4$nBJA}Q ztPE5NC(pS$HBcf1xj!UNte_jHz#Z*PxK~j0l7u7Q-oN$!8w8&BLf_R;Ll2~%cW#hM zb^=A^fG%yup}VoQdTr?}uvu?_d+W)>bId=M_k+9H|^j56pJ3y&GR z%cvv2abmHn@ylI*=n6I(_j2RyMt~zq$t+pE$?mAnwNG8;eqlqBksRNijpU?GIo$+H zYr%%D6G(drCtWB&s3<*pTu+jRX$p$(4lf-$VS*7wU>jeGwOBLPX5mfmP}t>l5$@r_ zWgGbL`XaP(89Oxxem@JqO@Th~XYj1)qJiK`JcSnjmVqd>g@LFPXOb}JFR%M-3vld+ zsbSKt2(~!?og65Yvk*ECt-LH%j=zzt4Y#hbOQ8)f5UaZY|(u@;jmakqw4Y`PoikC zQDS7NzG`8lcE8rw(ct==S*g#j&LDr7M;7(&y?_1Jz?0Pg-Kp6Y{uGCmp`hKXn*@<~ z6XI>Q2>*q#TWQ#GgFcWa=Zs$n=$WiV({Yk(oioOq1J%EZCwF$HQm=X-ZOboab3(sW!mZ&0CAS;IG^PK=hUJ$nrS^e>% zJT_n&WC5GAt6&h8{0`LyPN11S$MM{~gP? zhkPo6vG0&E|Noh z>vNC3=D8?p{K#{WCL_-m5$NON{M@9aD0v$0L+hp!+|=-IgGKQ03pD;Z!vvbr^DU8c z_oxSNE?;D)Iy^SaE)VJB;0trG~`<(?%sg-E*3(I5V8^JF8NK#H%7DY(le%- zL=Ltl*fpG>3g3{QFA_bLJ|tMEs!s=xG#5-X{9lGzRJRDFRt@TOKDC@pK@6KwHCc6L zJ&x_OeLnQlx&`r+SC>6g@PgdBsUY>vm&|!W<-JvM zW9DyV$R-=(wcM&UAI)tbk5Xg`cNwH8SB(KU*&CXL$EC$+HKd{7p#z2{AA#BzQ6l$421Y2|_ogOM^+f^txC2F2Ocf}?Tv#91IHZN|%* z0fJ7HDsk|cNWjwg`l7>*4f!kBP5PB;Knc-|UgUm_rwvtZ$n;U(0Gqn9+9jQiZrvss zbhMaJEeK7E{(5SozzE$#ba&==E|I3lH7~nsSO>2r(4Q@#R9L($c^96WPMS&5*ZU1s z0f`Xekvt1fomr%gKfY%#CG0i3o(P1%$FufqQ_!sYG<{MH@v&EDz2RrO8wq2T(bt(p zWe_NdznxBlOc#&lN7GPXa`TBh#yR9U5+y$PGI8^{61WT&KknVjrI6wOGMQ`Gq zV7N}6)u1j?d~z`;iR!4edj;Eqgk;k2%rE&m?Vgl2Zq0+_DE)e>Yf;j6?pG}R zwi8Gd9C1gMBOp#wof(aF2rj4R;4j6zO#=>jU5#39B1OC@XR~L{=fZfYLXUlTHe;Ed zl6T(C*FRpodjIAfkb&Cr^^;OKILwi0#nOc9Hc%W;=>#q^#(Sh|O^QtLYH}IL|A&cu zhYNM9Un?5|OgmDKVvRhTOyJA;Mk(>-T%(3>O7-*6?M76@+^l#S$nFY0X+GN^W~X!o zY;|g0jn5f0{Q2vTL9cFtVPBg@t0xY%@%*6tDU1kgQFZA7u|zld205oBf1rGC_h4x2 zzj`b|Yw;Z7xGfqDm#g*ioTX@3tPNRr3p5}X3znQvV+L_0}2O)-uT!RT^RO4rRk-5`ct2_qt31QBN|Tf|}ivnfMFo{(#a zo;HrRN$K`VdpF35ytk90Ady1gb?WuxQnI6-q$uZ7<#PZgKrbU8G*%s!b`Y9{|>*jL;Iw>dO@~`9pGh#Kx6(U@&2}$OLGJVGQS)y@j zmu_GE`R@9!<98ok{~1HA?uC>r79OR57k1bY3Vr*jouG87#pim4F-hno3_oRufrrV; zSlqqhviE5?wHz?8T}@z98a>DN$+6A(Ub;Y_U=~~;a7*;jRD<0CBI}*@VFK9;j(8S0 zad)?pCPQa28>75ZcF~}3B^elx5xY2DZRQMSL-y7${nZaoFP=ZV*ElsinB}&1ZS^4# zE5|*s)ruN;FdHxyq22G&1DU%q(w7!&5KMF?Swx=}U+ZBipN%^k##P#NG5yf>9Yq0W z+R@3D$wzQ8Ad6<6gsLCXYSn`p3y)CxQX|#w)$Ax{P>!6wXQio|H*em47+iiplEV)l zr87kz!cjYVg&rB>4}3pl_BAbc+2H#O*n!Qsi`+MQnzVbh9$z$xH{0}FV=%9%+`7Vf zKOZ>DS+r;zxwJ3vX{56WJ$qP%q~5Zw5n38@fdoeOXD>m@?81R!vyRK9$cIH*=|hwyFN!V8$;7~nGvu~~c_GrW4Ntil`^tBkTo z)`6!Qh?6Jede zjTW~TPx$W1mld|P)(?7<79xw~T#ZtryXAA~13JRo4lYdEn%A;E{98+!^4BWGQ)(x+&#q6kEL zrtoVM{>w|y{fHA<-(2^K-+Gg;|G;WtqJTmNuS=W7KK~)>)26xkjec0OKVrk_O_7*A z#|Wf*L}?rJ-(Js5#~ByJvWIEPq1_cT(F!4x4mqAb#4{Ejy!r4MB<{PT-#$A!JUKo& zIzBz>4~|ZbkM4dL4vv7<3k6ByF|kL`v0p&z+~hh~Bcj>X#fb#dS#m62!JXuIcPo5r zxk8L4oq4`LAmhP+B_53|Wr$Qtur4)Jc)DX<{@g<1%*g0k;(lZjSS2%qkP5ivjqE+|hU44Tktg(Pw$^w8OW z!c}Jca!mJLJheACHngXrQ9B7sNWFiQs2lxrNwEAd!UupEMPHyU0?-yTghIzf(P%!? zvOY-2n7sYl+fS_j$+09>8>D4UKl7QjR5%pDBO4CSmS{FYPLVa>a@ahxjZQ5Qld52i z@wD-LdA*U{!1Xpo*EPBf#aN$EDmf&cZ(umj$0PZ`g=eKJg45uQ*vw`l)kN)(&4RXd z^x~dSnoIh0(07#)aPk3jY87R|V45n8&AfopcSNVc&>C}PL6;}jm9(B)wMJBsPNp}A zG`w2>5ia}q!A(Q>wOMT3>;~Mey;RmfKEiX5U2dKqX$y<%ypJhIYYPkqUgtS~HaQ1a z5FRuZfd42zS_);|NBg?zkG3#MKrb{-Nh)P80I46%nWbn2-O+j(N!vqt+wRudNd3SR zGO9s8LZ&QtW+D4xuOplQ-(H%%`O1}8jaFL_A`q|PbIkB)Vib>#Mrp0k;TyrswtIw8 z8*6z?L@Di>Iaj1~|257bU2c^FNb=YzNf*SiKBTa-5XY*XjGjC9=2Dq2TM%4+Bc9 z%b#AodEM8)14(xXeuDh-W0Z3t6u6K3{1PcZM=z%npaw)scm#r45H^M?w9}iD(_R{k z?;hevsThb-7uQ;j;tXE2lLq-| zL{F@J2^2>T#$1#v^fPO>9dh_fR`ML|zAG0|CBgAplbCM-(^Qn*!h3bZretqxbZHue zqnX)h8_6@CHhe~l@K+KYQajdSG$%H{&^)+cI5-{Q4p2pPaYiZJ0lC+-S#($8(WzN{ zD37JcSOS(zivd>=KW}w7WHmw`OYvg7x&}VIfnjVE1eVsiLaZNOF%@*HMPKC;r%u|L zpTGsdG!;M)A_Di+!0&nmsCm{}?Q}ZIsWyjb1_2Q)T|;#Ki*k6yz{M8Q$~ zM0R0i1t#`oCYb(V+EwS=EU+v0>W!dPYoXVgI2VMyv){HO{HEN*oGvxjaNve%6Z+h+ zy*FCD3v0qn+`WbL)=D@5$J69=c0HRR{`U+_X63W3G&RZ3#(APliyJ-0c}1n@ z!NAlc`C8vV_NC;6U}2be^bDGjmI~KJ+~V2wMl!c2eCUDSz_QYoJO%BB<^&lf4irMj zoLl|_X}9bZE2Kl(T|w(qoDulKu-MNI;M|#90gCoton0XtYRa5s(sR4Rm}8M}DG}Z96p3;QP5Xeep_oV- zglWal#rOhT#m!bK246OJog0e6z;zDJq0@7Bor9b*n=jF@n9{YwtRxvk+MW7XoGzHP z%Z1?*SZjeefV{z#BOQ|OXS&uWfIpUl3p71I$dD7=g(Elnd7L35%ibBbJDtfk5K_U{ z@o0RJJlrbp6b(X^lAL785kVzMB(mbd8e9YTsNuWxs9l-MBi#Oqb+-+^{sTpxhp8T;2xKh7^TW7TzfFas7Gf`Z!_P68bP;RusoZ9{VL2mg$!bhfbc$(;lg@ZW%L?WDz z3Q+^l0Qka6lTm>iNG5*~Uvv)4WcJ0>v5aKT6&d7_`ce z;=uDwo8GB)pT02ZPn96Dt`#VwFL@6yoJbPPWCTbU=^Q0z!5vV|+e^gnjYgZK`jz$QOam+o%&>O+zaYCStdRr&f-lY#af&N7|Wow`Gl!+LL6 zCJGM+lS>JZtRYoD)GPEWOjY-2IwX($M$kJ1phGKX#7c*9I&p~#EVva7;{1sDoE@>r z=UzS0c$7Z!3>u{<##db$43&f>StvBU1>@50jF@tO%viBf=DX@XZ}@tHZ>K{kMH`vH z3b1W}m3yM*^!p%Pl`7SENa)%PUa3+?Uczck39HerPoifNMFNT6H?c7Ud8ckocM#Ox zhWu^H(3Dt&dcM$xR*j(!tr|lgT0Oe193rIw0x?iC4Y&&K1ur(s)eE_p+JTfu7Jvz~ zdHKABc$&Swd-MuJc@KCm4I!vlDz0}Q-v843{QlG1U*6xnQDQFtaN3Q{OU~=0C=*B` z?S*yOM=@2%3o4hKAy7JmK+o>gkBI>8&0iHsz;-{s`g9LJwfo(hyPw~30;ou1`p$5Y z8>}lMZoAjNEfil8MTfQ4cfSHGnKm3*rfV23VFa-<4xtLurqG3S^m6k@sB`SEK8XM$ zRX9M&YjKGkB7!YybGb8WL=e~KGZ>Z>UCiTg?L`MueOK_e#xoS2X~EgTbIy5O_`$VC z?Iz1>@bI^QDffnZXfU1KzH(UdiG$aiALZ_I`S7U~Iu&IOpo=IYS;zG+JT>+CqpUp;VY^^I{4|2Op zOBh0+{pa4(gn=n+lLX?(m#lh)gcElGb#@V;#4Ed3hCK1Fa+SonE^&+y4HN%y^MX_W z$Vm8B3uw0gl0fyZS@;M7jKyV)%5sgp*GA-eZ~+qSW&nqr zgYsBBN3hYqjzC!&>~lY!)p?VmW(VJRlR{UIzVW6L#-*No<4vc$>GT_K>L2nh7-qh0 zDd1Sm+rD)%`uZ?bjQqB@4fVF+x4!K}Yk%^si;u$L_HkNE)QZO;a&RU#D(uuN)bb9G z4tY(wQ}+A{)nj!|!bQ9HLl4Rn5)isuGMJ}D(i@$^2Qp3PIQwJRxoVQqF+evu6(uS` z9%)(B3&yY6t6K`~-Oxny@Xf1w^1Og$`1+xz14x&`RiI+*#K%Ih1jPW4d(>NObv!Xr zCOsjf6(IrOn#Q;88KemXFSnJ$k|?wMT0xpoGtVlhyD)azxtXwyLiuHzsmLpnH6XWG z0nk*Q&M)>Ysr*;{6Ty2T; zX!rj_-hgFOzyaTX2iXW3_@~FC5##RxkUD?-fdgoscZ3sf(Ar5Y%>ux1*eV0OYcHRmy>8^GsJ zk-AozbhF@-*HB18O3A65c2_qj%)Gg~UwwT00cipL_xZ;UpP9uTywAQa)z36mC~;IL z&%*A=QLvK4U9%nf_E2=!XA@R7Is_F*6G_|1iP!1} z^Bgy?yS}knik>u6s7x~#>;52FXD%R&+s4$^ndTtv&t`H7?cv4duS{&fbgZhx)VbNy-HFSwY2kG=Jo*B zySVR2EJMziklacPIIVQq3xz&+_;=P-xj1>3D8d_5oD|wY!2k0*P!CSnh7+blp3N=dQu+{ClT5aRGp+~f zz*|ZIJCa4x@86^1ui+d)U+*`+!B?kVSSGv|4u;p5vZ*T|_AgK;etI($(@%p_H27}Q zA*pn~bD@REsM%$xIj4hCU^)%1;9_V}1f8~8H*p9GH>9G|_FtI`2mEAsZJNHwuQV|i z27&PKtF$i^%trSZJziTv&cL-}KGgv=edC4*z+bAmTbX=faM~DT8wso^`i{r{=N~MYNnxqeH_}4mT4k;Ufo(p75txk=pIH zr{R;2KzdrU=>!r!AV8wI(U&*kjFAL|Q#_z)S4tshlc^Mvw?glL%5JU^{)3+<@DF~# z(uBZ&{2+z{vfnBZ2y*TjSckVNlwIYl8_k-Ape1OEry%vqNI>dvm~@bM?MWs6+JMJ& zki1Q?JKd@fbU#&hW5fOJmD(haO`8Rt1NpFbN2l5%I*l_uHdt1;3FHJ1&_Xx~i?iGA z)*}tfEFZ?%I>-7}?)JG`_r!rw3K$+3{(!E-{A#LJEj_*hF^irO9!XwO8V$=D%@Ey!~-1^4=AEw%XM)aTnp26&orTQ9|!j4!6gd5RQyybe4igwR8s0#IW2VmhkyhmTSH_ zvZT^(6kU2ZVGZwBoN)gx##QPuiZa8*ly(bzFdXV zc5VcK&gRp_1VP{_;|6~HjcKE>B1rsx3Hbnu!O@H9q<1J1V+M`Qk6tpj)CJ_O{Mn9d z!MKRB(#4pYK~oHp!CXXqq%x{x0_zSbpyYxCdsP@=|o0uqgJo(k(NMucm5hS<^NW1M79@B`4gv-kp^>Bauikz5W%l;n{oO~F z?fm)eFXqu61FWqa21N7mZgTh2=U?CuYu4{8>T(PwoNL)PMk|`c_C@wZ4v1=t?d2fb z5G)rRNtsxH^~B*ghGJqcwj#~ze7j`k(;sBS2a2{ZEM?3p`Bfvq0V9Bnomg1E*8mG zKQm;=6y?XnBviFAm-Csp-r^d2Mo6SMaWk3Bmu{OgAEoIz53q8ORcj7(z6VyL z1(aCuE(G^y#GTq|*vH4a8_Wd3V~}$yaZVJzYminUxe| zh$FL`d%L9Lnxb+}?|{5_u2J}ft~GG3IW->|#nNB}bDV2d=Hx!xJ7q1WbR7AcPOB_2 zBt<9zPu=QDo6eTa#Tv^B-7Ey@i{wQV+*-#7O)GrBH@7I-2#FEM z3@Tn8m+YTjI{4K+dW0i1O1{r*8zU)v)uXY-;L{~!eS7UTT))zXIPV3fI`Lbl-L9gi zf2XHtli4jC*=arj`vl;JDRp|akpd20gD`(iF`570tKv#9I+aojc5t{+t;SGu14R&| zRc`pW&PFPP8TyQUgS3sYc<$jw6;h>aZ};16RZcKUODJN7v|yqY<_#@x&rWA(0uz|P z6hHt@2^b_r2_R0vfv0l($^9XuxhPqxBKlAF=^`EwCr#6UY9pwn1eMX=F#KBWilL~3 zqHG?cE_G_re+Cj!u@qx`VCOm;gTZb;WNCk)c0rsRyxW?C=aPqp^WDoMu6tx&_k#nDXO{_^(z)w@Sonrd8V9_FiyTP5en z8EZUz5)4kldQJ_%kMBugQ{JOB%Y8NjcDd3FYk z9sPtGe@&>?qAk^45kdU!7&Q*($ zM_wrOAuJu>pC!odg(?C9A%8FmQnwb%WG+IW3ZCrBq1*-jX0PTONKUSA``7^Q)D03K zy&7t#%{29Cc&1d$!h$BKtf>(;7)RM(Eba)t@s>2hFB>a_H7!$!Eh05=D}*@=yt73@}5J7m7XU3Ap3Rp%CVScK)OO@pEOb$7;I8n<_cG zqP3gIK?$18%@o#xD~ZaDHoXF;7_2*pKXM1beY?KY2qy@@Oh}B=Sm3(P*MV9OGwE)` z1Y~T39y?1eR%oX9>;^x;Pk}hm%?uFjp!)&}TcfjZj)AHGNXh9zV)Tza_L--G7D3tI z91GBxCmh;J-dr(I-9z-9`;j~)swQ%JY_uM!w-F~X0@fx<2o&2-cR#o`Zc&er&xZ&x zsKl+kgY;w`+WBB3a$H26ZQC*V?9>9+mD z8$;5ht`I!8x<(xs*OMV@Bc|GHZQ3#$P-y3wXaq+Zk;QttgC_VG<|Sy{(dg6-O7#Va z?E#Mf!d`oT#C3E{fw@E$`NPC8MTWR2l1x0T`fD|0>47_60Q}7%x4e>}8?>`<)$l6N zIYE*O+?L!!7?luY3?EOGS4=b?*3u8^N9eO*lxK1VM*dL0i)2jO^>VSmTzE-YU!|GD z32VU26JYkKSEZRBi@FIXQ&!SZc2v?H^S7T#0b5)PmFxjhcR2}$k8*Gu+&p*zF5Hp>)?msAp)U;IX9=dWJq}$dcSN)K@1Yg9l$3< zd>Xb+>{__Z#s&Od(-^bbxrC6%S3{iItyW((Y#Dy(d!9A|;dbeuiz>xLtC@~d9YabNZR{J^gpKSJL9s!7!$~rlgI&B_u2PE?yZYF@pgiK}mNThM3O2LV ztq(McheTQs29iJmZMjP^b$3B$m=cbg==`Ufp^eN$pN9Ku9~6OAKIl=QS2k}CR#%eY z87fD>vv56uDUwPZUJEOdD$tIi0%3A&L9!rnK!j3o<^t9t%3aqM<1UE;PymSn8M~`1 zJ(@}Z^S@;Z)X8*y1t6v`#Y6^<)K&HWhD?j}9iAgcArYI;KXFFF;m}GTS=apL zlGzuhBr-zC$`d#*Of=aazLR$>SAf0RCpo)px~R z-}U~fS9Qd_-}Qdy(v5D3$h~?v9;A1EhnNzqJpM<88SbOnj33&A+bw^Kdv)HF*y1?} zi@0}+r*@e(mAi~|lGx=kvzs?)lu2;7Q@VO!!a?93v2h~E;@z$%01rSYBxJ^1CdPiW z9_?lN)hDPn4oni&8Y-yb@<@yUCNL#q5TU3M)|u!$oYkGJ^;r-#lHZ`e578B7XV`!j z{IudI?;oehB})XWZX&yoiM3d|NH?UFYCJ>>pm%9ekg&_`@kNTs9g=>)^kG61m}KUP zl>T2b_U-km_!egZp$0*!JuAm+$-e@76)HwRV6=w&XD8wWKtJHlxyR2F0VLfHpicpl zQW%2~+-By<@}bf;%*H&ZGu$%vnL$~Esk3&RMCTBJ z5|zXdcA)U{63;TLgsG&}t9y9zkOGPM@#P7_*eymFw!;srZsTPmuCL01t<}wLx^A%X z>O@g0t~{VAe_MSiB*fJWE>RC%j5zliDz>|~3ShN;d22nq|zrgSBld$99^!f>pwERf1Vq4@?Qbe0j6POGpvnc6T z(=iMu%RIxl4|sWhmlGxUWn@F}OL&brH?bVQfUf|)pNYVOWhi)uZ(t+>w&N+mcmy~% z+kZuT$sWGrL576zPwrLv&gQ{L9SM%*a{!w|;t8PN+B`RA!TJya7pa%r&C}Z3e1x?Z zshUbD+^CWu@7w(@yA3?{$X{U@DsFthHq;<+#hIxT8DJF5fxp9YMFK~~f%)7j*z^jB z%M@V^$yc5-jUj290LTNt`myAixX`gS@fg^|qPk%6{Q3~ELk|IS*@aLO1uf^gaKu3( z!|m=)xYf~Hu{VQ(b46r}@}fdCCa4t8>|Rz9)WYDbOGVJ&m-!s`fk7SUm+2K4&lSru(7O1QP zcY%`dH2ZWzu!=y;jC)0!g|_f(q+43Uc)3!x(Ctzc*n-}`Wh*VYh!%hd@IsGl1a_K? zTs2wZ17YUv3s^Iif`U3}T;adj)eIXro2;NOVQELr03>I&F;$px676D;{Nk27-IkWWU<0H)@L?@cwLO90?B(jJ^J1@*JM8Dz$ zhO%nkIBf$v8Ji-~nto_EY?UoSGaEzPWamr4&)PFW=8!8Cu|$a+#H;#!6Df~c%^DnA z;ve8_i2l`y;1C$08$CUIwx|UqFPal_lP#oe0#45ba^X#0x?ID6DmQ!V z-qXib!02`kI8@47hQID}n~Fs7X;rsoM~H-h6+-X~4t_{T6y}#9*OM&l8B#7H^~R=$ z3qzr)DHsINoCrH0r2I0x3LPD?Ko}XO8cV(@DIHX92}UQkfY%{HR&?9hbLh^y z+=uJ#v>P~_O~W$lm?0FT`L!4+xfW*SBlqBpiYUz(|2UJ%ttWp&QUPEEAcYG37YC)I zH>WvrE|}c9bk^`JGmAEIR2CL(QwfGMmtzCEEmT~(7k~hXO0}r5aimnvF*1rBL`vD1 zp_5F%Q%0bw1p*aTpK)_>4~{eN^L9H=CZF78Sznqr%;6>ejkj#qW5`Fsk&E$jINOe& z7cr0|gwQlj+Cr?gYX3P40S=?z>3am;(b_Oy^z`|M;MQsc#Bn?XWaNK^dr6@eS9>rS zVsJq5;8=>-5Oe3R+d8taK3G4n?U0wfiCMn4X~7UELK|Rxh9X78h>ASyMCmetHK4AO z!rR2d>lG|blAKBPtg|YC0}_S}R-N|p4$__?TD8X4Rab0698JV8HnNW3a#q& zIw9{Qy3eOYwNC1{jPz5mM$%?n15Id&P%$m#9B30&vOpapN;f25_Q(R?bVPEmLMqO4 z2^BiA$x?@PcH@uESNf_HLFv@D*{l5#*9H7-rjM3CV(Q783Gfv6(uqcMr`_<1nKiIX zNkt4(C#BoJFQF&$(^6<5)lRxAe%*weu9kz=2(bv@HqMr7w7aG}8sna1d30?r&@SOF}Ng;v5dbI%d;N4aBwPmrhf*`7QKtv*{+ekAnFB>Foj_q5R7#wPFv{Sy-T-4p|_ z&pE@wwo`Oy3W7`8#PCr33x%|gFC%}ee%&TL+ATko$B}>g3c;}7sZGnH4RB8DB;rIZ ze3bJh&jh|U@>YsV^fvmWS^7_`D?Ba11mdqF3`K52UICk+(uzi(#utO$5du~VnYvl; zh?piqJhqz^%2B<3_0BA#P(B6Pg+RSPZW)(y_-^$^;ScntTcfnyo=LaS_`yNY&=mVA#r>Mj|yRY%oP;(8BtEHCms;_pLfi zt!}-B^t_SqAvGcW0t)Jsi?Q{>)7P-b8 z7}qEqmX5!*bRjWFcnysb|1n^k6PcUGmWCO!#%)0_+SgrXX zs5KV03D!nI7=EyTpTHDVp^S!2hQOA+|Ly zCOX^PsEm7QJZ<*rlN;(9_f`n)&C}p1>f95EMQf#=cuKa>GfxQatpI4#yS(bs3`A@( zVN1K;*wRL)ZZM_!i}_>(Mr;nRjDP|7t~fS#@7V#L$CZO=smy>5ARgL-;!LQxtLn9$DMORA%z5S}LI+p~&g$kLO# z?44E8NEAn~1ZG-gIIAz{%!NNmgpP}F?7dpDC22^S-MqfeUbef(*2>>_vYjg?@#POk&8g3X5x|5Z8mxhxchFYD-2kK!7 zI(F$EHfR*R-GDd81}-AsmlBwm+vZv>K#1JSte*I$u)e~j<94;YoicxOQrz?o02R(5 z#y}?bP6KjrW2{2Z04h}q)(DT#5>P`Gf&O@gvOR^WC@uh88cQ(>sRNqc+WUruv$ni3 z@}s+-mRz+9>uE6;lsz1yhyMz1Lv!L4*XJaz=hVEG#LJ0l(W`Bh6-x!i zSWI-zQg+vnTZ1AS`0N>^2XrzleHPa!dV-T-dsqWZg)R;Hicm#0dRC&lFKBiy2fBxX zeCdU=snn2cI0%I@7@0z$3`bNXO!5#Z(M_xgoxUt`!!P)mV)B*Q4=z3{etcvgD}anO zwq0fpa4D{_$2v?t0$AqXA$E3x=nubVI9l&F|JM6&X>2_>t9M$&UY&#Qe|Gj=@BjAp+`5tyFWt66O+Gkm(czFc zl{5I^_m{6Aoid^4A#w~~_x`2#U%k6`pY9$QcNpV*w{QT3r9-BXuw))P$ zXZ}zBKbU{a>#_L{>-q2BQQ8Z+q5swUk3YSAcc(x&p*uN|nnDt=M^F3gMrz6jcpP4| zYnv&rF4~1s9aVQkQ9!wNKE3ipAcI_`5usneoq8XfE(o`kn9| zGm?_X_vyZmcbhvbEPgA-9#baRoIn}yqNqq~4JN&8lsXG`Ui__yjq%`RZ>AMt^m=9l zB3)`y;gAMGxY}K;@DFE&FD+d>H`h|+c>0w&C1fMVrg4&m=C|3a^?`fc%G0?(1qE+pTq8{C5Ft_}x7MFk zi{0qblT4I>C&+BH!+&$n0+1WDX5{Ipg@jxf1^!wS?H;3-u-wWPVIftO`8~zuXQT!>Fn`B^F_3L^ z>a~|B8uS*KA%(hU^V!m?1T5}8ed_=C`PE0H@0)#o_fBdk^&^r8WqF{5*z|uS%Z2<> z5bmEa*18bCrM@`5M6Hv8-XRlpvKAFp22hR)9*#+8=YE= zqC^Ccv*HbRJyl;yC71|Qo;{866283t%toi4IsN$Y!^hpltM_l--F*}>Qd|nPmIUy) z@C88=e32y6HIrmCyPhzfk6z<22j9p7Q#N41w%|-M-nV@$(0*5U#3N%BM{r?rk&)a| zU<}zW-JJ-hFS`@590tkFHKL>uF91lSeGRojm^R?x)tfgTrHFd{;r*xk-lzMIpI_hi zw&fT^Iv!Z>-#)y3!z<*GrNl_4aPX$xaqn8?uAtXVNhXY5)aZIij zsFcH~hl|nXVmEsC%ZJU~ySvx-Z$G>Tx*gF^&UzN-tY&PkTHfQ_Y9t?ouGQGrG9zJs zaJ%s{NmgMy8Q;Wg!ehj6U+UFtO4i#a?>gVIM?>=(QrY{!B95_$W}YU)f)q?q){}l~ zqGN==+sTloYA5AH-1TCHnj{uit|U)ZH!wY%y}iHs{Fk5ZKKASq0f(jpgl7&OUF7^n znHErX`nh5$=d*3EzO>oExV2KLrP&xfZ=z1~vjX&t9%Zn+;VMGBdHtA5w^4 zj_BIZY~hzC6DCq$w1WJ@glT>Hco|WT_E00NOx0zeIGPRRtZ`fs@I&xeww-#*4T~{Q z!)yrH5=4Y{k{x@~L*O}Fw;Y~H9K3k0#Vi6etu+ud4*vO$Rh(#y7gb0tK*v5Y@=;_@ z%{)?Fi9$`W%TAx{rxvuJZnqN}x@&l9b!%Dq1rU^!8II?d9v>ZTdI8~&?_1s0=?aVX z1gEZJ4vk}|g+)^z6j^O+;^gj@H(*Y#Ef1Cq_TGS%S|L?2$Qbm-*W+!FtljR_{r$(c zKYhNx+wBex{`%_mpYPs$-+T2=RbUU0V4@-rMdC%zOYM|nXvp61wBljlVa5#IPEnj2 z&EYc9trgJpU1@qFl>=a~VP5lg01<>39`xzB>Gx6g=(%u5ByW31_6kTW`6CVK0o_Bv zKhs{&d*^BiwQ~amBn;+GJrV{4=hdXJR&e`){uMvqzknm0sdN;O+wI(7Sp_!9NfSWP ze@Z0Rn8UtN338TWnWy1_et8Mk9C$vjZZEB%fhl#CEqa4^B>VduKRjt!4wd~7D@n~evLW;ZmJYDN37{;(Fa7SLt)$6`lc{vbJ z4}u&p+QSop+HcMkTC7L}%Dq%5#dJPv`f}8L`jo^cA;SwyvaNE8?S9>sP83q>qXMx| zkNLpqT3^L6oQZN%;I7_5q))&aVD7)dC);5wJY<-?P=rY-2~-vi@0-1wzh8a)@Jk6Q zwLgDh@sf(Xa@ZOU5+OuHsPP0uQ_Q4UMNDfAQjeC!oqLU`Z}H%KSJ@SG1!4U<0LTJW z)0P>I0VEJrtbzCZXn{=h%?2&CfgZP)f#akBg^nFY8Bqlz)J299-qmvZ{;v0XpM)y^ z;hE4Ud3Ck#zJqxKEdx-o4XiWNe66g14ifrz0NnZ=HthaAqk*ewC_|ljUR6rsStFAfT{^95F3+=1xqc#ij@t( zwfW}M5f=XX=I*g!>HnIsuz)2J1mC(nBuG8_elktWlQM#AS^O4IJB1^6P5Mv1N(>k_ z5WY7COhuOr&d`gDt`{)!a$yyLjRiH?+OZ@M<#iEnHb)>9_#?r}3;I=nmvoLr`5g$~ z$j9Ct4hfYo4b6Fs0f5N3&IJo4KpCP2U?yEY3ElnSZt~$XG;%xCynOxk6GcCVukf=; zQRl6JdJ$0pqg}2mw3J&lD7&`Us7O;%v}+s}jEw5n8FztG5;GQ12i4To6&OWa1CRvS z-trZeUJElRp7{?k>+-2MAjM-@Fa#=q$DjTcw%qQgLr99Jcc51{;Of@)%;+61!>tF{ z48gG?lb1V!$akE;DN1_*iqrs@x=-60Y@)J&R89nbhKhtz2zrtb;}IE6{YBlUr-wtj z*BlV|M&RZau~)#hxg0@|0nQTQAQJ3WqEek5P(CLRgWW+hT>JLl$K!v1dPPPG_q@X` zS^jWZCfzRSng}WfKxQZKVM9bLLA4^pQP^5s^uxt zJXHJ&ncM*88{49%Lo1nFWGe418%ZLP*p|+Y%xB>cuWyyGd*lhdexQo zQ6YWu;W$;Cj{?Erom^kXgX;8ivv^WYy1xe_2 zkhBY+;jwQ|&H2=r5h79xiA(PPsRiy?E*ij#z&w-v*tb&Ev<9T;^bKs@u7+_O8*%H_ z6Z;Wb6(|XqC_Rg@u5Hn{3{^ZH5H5e!fj3o8cC@2`T+e&(ygz)`1IOJaEjn}q2~wNo ziZ%&Q#d%=g55K1n?WtHDr*l&Oc&!ut*~yTNH-OaW-5?m;AsW)iT!{CYx99U*CP#`+p=lV6CX>Sxqh>=3Ue<85$@^^;l&nahe+KvPUm0K$_Xps0UNt zKtM$!dz$jh8PrDNYx#hmn+v)g=fnB2R2VsrZ(n-B>S*BTz+^5diI8n-lc4 zvNLW_1`YLb+^`0P66+a6qG^<6_KuWjx_{_q9vVDQ?+S``*7me)+Yn$juuH*3B@MuvY&RAb@07{IBzb4_Xu6S14j<=L#Hto~69C*)a-9wjTm_!A zXT4{}17WKWFl|~2|E;aHb0kwVGQ$^FC-u6X!&9aLu4-M?tBKk!5uuF(C+2#lb*IK> zM=kw=avU?)3UO`}2+Mu|tpX_?odN-!QiS zEt41=eZ!NFoHO{U&wKW5)A*K0pBx?LSvO6pPa9jTQRX5~i7$*45_a@A`$ z3H};nVE7=BK(B#6!(Nx5Yp~`cFm|~n$AMK16Lg3cdhM|?*Qzvj0wkSGVQU)m$<1+ z`WMF1Z_kUsr(U7;A&UclK|CDk6;@lQ8D=wh7VUaRVs1wBHBpeNd&09x$Px)5lc))g z851@2!;wW>)U1c;`&EyJb|d~6HW5v;SGSN*VK&T&7RjTf3^5LnzPVFobHiAy3KQK> zQlG7ettDe~?fR|5MOfOFOnkS<`d)?nNJ!kZMV`W(H7tRX$G?WQnFi zve9BA`&?)qkDw@UI?su73HTRGTTZ8Wcp_T{3?yL8xVJ^-8C*h+0xMv82-%cUOXX2edSM+z z*jG#jM48D%rlMIu(m-&1X9C<#*zVO$IAJ%ahC}848GxzZs_2Vst*}gjGa~RR$32)s z27rM-1do#CvO=@9XGD_W0Z~Y$9TK~)w7?nkk*6;lIRTW^3n4r83#3z8o)hq>=Wz#l zp)*#O)d^g~WIbnH?c&NFt?Fs(7w0qBc-FH`&tM}r*bdXpN1~cAv%G$E89Ulm_HWnc zOH4^D77;m43~_E(*nRA7^^n>uVEh*_1w0dBes@D4gP$u#Q>B$0oiKzdixxP8M5UNN+hRt}y^<6%k;R^mk z;n+1mQ=l>{Wx?E+@NVA_F=<5=IwW+oZ&08PVTt}0Fnx@VFD)~(Dg{c3*XYg5$GT|C z2?S~5V*RSvku?et-%gSbOC8G|oqArOv1hh(&^C7gHY4DZ@&EeW^{2a!pMLk|)!*K} z`R&KIukU`R813=rpYG<9>F@sI!^b~=g0IlsuK(Nq@ox`*r(j(wTw%HWoyxfv7)2;4 z`v3!tSSnG({2xFgvNsPe?qf!)gcwytm#pw+oKr?YAS>EaCaI!o)guGkk4YA%Kk(Tm zH&b8i9w}59@2rOFnXF8G^XEcPss4u}FAc~(AM0R;rHDI}6_`bi?NS?C;Fqn)=1+;LCSCF!BH6 ze|*7z$Y`tO_4Kj6x^Y#U4szAg(bTE7U#TBLK3BqQ>0wB1ST3bPjK0GDtD90gqSlkg zXKKvG;(GAK{QLsixGKc%7=*tHu~S2a#3O^mGnCFkrUh~JgS`bFW$RmeA@*6NCri&c_(Ix&pqa+k0;ju92tuk|&(gPq4LN;GH0bpyNM*EHA9w=k z>6g3L-;Z9uM!*YP+y3(Q6MYlDryw%@azA@}_wLR2^G};Uz4~~^fFk@Jzk2I z=b!IBssq)V)_1?)UVrZQo45Z5YUT2kfY|D-z1C~faF0+qsOHftCxVMS6I|q}eD{5? zHJP4f^8`ZT2*}2QeE94)cR$PDsMRsK`x)?v!*E*K;EH`}c40KP(6~9?2#caAPy8m= zq?7}UJ%ZgrBCY2!PM6v;;u#*MxSO#qeGF$c||{0@TE|Ey5+2EfbJBhLDMI97R6{iUu+S~ zY*kCpjUg0TQeKYuA*a}UVQw?wo7HR&KdfeZWLaspM`o2~`#-o^lmR(`lD>!M071eg z68_?7v#+o-h5NvFdreMQ0h2yk&WG@|{&$mD0DClbDec3rc;X=38UJBVOb(KR#vBKK z_Zt;&H4U(I5@w~<@Av-a=zoTCsl$WA zO-oG=4)|-Bd=E9s`UR4nSmL>kHhU#JND-r+Bb84gY`tjGNJ(oHDriHjWbLX)^rhmw zM>EDT0HNBCWMRvfMm(HR_h!Y$B&Pe}v1fBr!@wXiq9L4gFOnWu{CZ1l=^UcD7uqy% z5s@^5*63iV5ljU?qk_kd2CY+b6dMaQN~>Eh)$urczItlPR0(Dq6eQn@!-EsTn44q$l1$Fvt?xAV^o_9rf3PAc!|;?-;FD(>RWXD9mRVN`xtl zAWc*;{0cmQ$1qPs*7Yklv(N;&Z>mYY(B}sgVt#)6i?Q}wkqohYAw-)WL*+m4*=t8)`zmqP^zp3)7o0O9{G~X#s|VhLHm~X}Dx$hF^WU+nqsk zk+@^}g0Mj+H2gEjUh2(Mu{!(v1?(>iUup4?P77SGH$CCOmPXZLP{Qg9wOQm)l?H7f z|C{+>BmEElBKanSjIu#MlMW1=XW>$UbSyNZAx9WspW%rfx)6RyEV^6da3SO?7k%|Qv$Aphe$UQhF7fdqUn7omKw;fT z)T^NTGebx~`-H-j;1>(0zlrFjE8yEa%p9akEz?8eE~k_E^<|=s4-J(r$~;etnRL7x z0Q7R_nk%>%S!!|Egkdo|_(4k0)HI@8{X@_5t7l6QtAOcbHYlD*ZHfZVqlDL`%A!@^ za)gzo3IIR}Bn%TD61-PB0s^p|#uN+0d!!^TtZaWUtm-Z!WIg1AH}$fvvZ3%%g&H4e zBARN=t`VBB);>wj{8e39$&|r6i z6gQV|KfM-W2Q5w}rzlyCD&7sgh_UhX6e~t(W`5vGk_)@szRFUAuOPb)Ax*lwhZ4I3 z$L;m_IVqL68#kOcx-{MFSTLQiwbS3j-4OkUl;+I~PF zDD{|@QUrYWXgr_=tX?*0_H$?2OQ)mAFjbE)UT@i_-0Et1-ezYA1*mNavdNacdW9Pe zATfFUg6I<7oVTD6Agm@x&2Zifeysa!K^20=NCUZX-L{Tuwm_r- zx)CR4&9m~rQR*Hb{snh}{>+c09J8qFs_Jn+*e5axXV)|MOPZ&$(q{F0(X3bv$b5%N zAw9cB`g+Am!cF3a1U^M-IQz>y(p{tUNyJKgAPxhpt!C6KWQ$g}ZW5V^9DJQd+T2;J zI2IfXATY(&qX2V*09i*G_A`i>G$csYnc(`z1T#D!i0+D6m#Ygg>_9fHlHT6bB|wA-hlR9tNn2 zaQM0rU$ac`uJ5sX$Sxtl$wH5Osftk@>1bT8Fhl6MmFsY`=(*umw>!d$%z7XJiEcb- zbS41AcD1YQ(RC*!s;Kq_AA1TAIA5COlm@QVpCIUjvl}s^tX^fSrL!GPZe~--7V;`n zb_W+SLo3kVT~9ZcPt*l7?22La$&pzHSzVeu*$02Ci9&IVyFD?AUfm8x2Ch&wuTn53 z?an~#N|B-oQ+Rdmu4)v1AXLDM5eSt32+Sxy5=X)9=Yk3iMKU2>VaU#OinBJ2fD5ui zB?WtAl5(i@E4_vE4~PlwfUCZFT%5WKT-l)y)@gtNndW)-IwIU_!$>H0FcH#J^ltjM zyZ85F+Mn(|y8TbGx1D#4>KG8w9<%l0CMBG4$n$Uy>(W#@Tq)sZG~-^o)t5d`ndOsC z3i{h$;cH>H60tSoG@K!hTvnthSV{d!ae(xSEkXh7G5VAScaLu!?sId>GC&%oM+mMx z-Qv!3#`@(mD`hYO!>2B{<_}!gP)WLh2bRZwaIwi>7XFni5 zHb(5A1#)?G?~s$DM~CzWOl__7`gWeQd&~j}Pge zJU(Xl6|j#eyIl>ULo>0gzZyZBHR0?O$$&1bIdI4o>R)G|Z13iXV zWV}7d{Cj5%&Y*wq%;Hn>wGge;s20V)G3M8|-L_o3fL;lclq1Hbz8R+0a!F_lF! z|HIV6n!l9P5dFv)??f%=(o7}>v=DrtR1wa^N(NvvF*tZxYmV3@^Xm+sS1u?Vrxgz? zmd^Ap%PVB0GKoam_uPMIJf8X5IzL5eT4+2};$-ReQQy`WVS6R`hJG3m=t%i1)!y*8 zM~8#c!SLwhWO#Z!I6XbN`{&{547qIGb~&ZQ-wLy9bn5A%s>zc&iMmdwo4vZFVvRh1 zYXl9+QTTGayMkv1;shA@0;^c?)XqxJVn9cyR*P>a>fCyXdphW=&h1pYn^P&A^tju_ zwE%`vVr4gN%3d7<+TUk^;P||vPB}ttY*!nuJ>s+*ZGK|N6}2nZ6=$-0fKq>$lmT$P zWL3Q}bU4&%Rjn+35gykaK{<$~MexxfO>)o&?e>q*Y?DLbA=LuO(a?MzBg4_nCsCW;71ORD1$|-wk zF+@vD93*R=<+y2XN~>EpN%N05u-OP&hQO}E zA&Y&n=!bNqwJ+eF*F!XuFuwN>AxIiHQS9OW?7nh9`d|Ui3dZ6(w=+Ms=+ba^mIU3C zhH?w^b!MRq2SjOE&Lgb4L|zfUZ!7*oJvF1Sv*jQ0yGoTf6#`H$V)eA#Fle+te+W8BL;kTnw);&Z-9a=YI7}40g8!f|GfdmulD_OA6#?bhGHbTVg2xdL=RS`{& z^k8uT!RMh{cgrgXm}_b_oE6=rXobgb^#o7U`~8Z$4_`o3XWZSdy7&0l?lr<=x}8iT zjbMuYSk4I>K!Ntqyey=YmObc8;8MeXVhU1zmVzSH9VUL0N{wo;NGQisD98B>x7}91 zLvWRXpFoZ*@%pd(d=~@s0FuBWd43sM+33>nLK?nWdOZS|>I-*T=%#5^Wz`4R_PmC3 z-2xM_Yr9fZYVSa$vn`B4qyvF}QjKlfs4f zp)qi$6o(bG0I9Hz;3~MUEG%xRrlEm?^GN8tM131%xm@{1msVaZr2Ci;oVSKLCmWfp zQfvy%@xrlyf>x!I%Cgt0dZM=lC0|TO>kAnYz~z6ht;%n=J zgLEM;$MRo%a04c{@w8}||PO6M0QWln-8Dw0yH|STY zK0pv5!|girOC=(iPLO$vMH49uo*{J&ios8I)9KC0X)le01$VSVq>QD}+J8$9akUf; zEh#F6z@~mpI;DMsm`J>CSCO;?C5eXPQBS_WbpBIY!K>!jsaq*4f%9EYnsuze*8~f!$L` zQ}j0;y_!}}=A|A?9xS}W8wgs4ZN|u?m!dqH-P!Zm&+mEOH?uOUswvu@KaOWabmf~> zm6ezGez{|1LCoFGo_75M!?N2Wk^eE43=dU_VQ1z<Pa0!oZKGPoi032@WErfxj0w-+uTo7gDBzXf!HNP; z2?dcdxH-=S(LMt}M-%0ROS@VYE*Jj%D#Rl>+-{Zd16b#Ah)Ny1Qw)%pD7lT}7rWfU ziE#MsH-l6omqI!P$#**>rPKBG-30%qgna`bU$1CIqhNJ3}XCRJ2BlJAN_6b-Qv(9M^eAIor=%-jxEodcaT9) z9V7;!5+QOZB*tJI36F1QqJq-}X^o_o2&cWmMCzTiZQ%v7AE zX7d@yLRpg;bmqz`C~1AA4v^5S+yqfQxD**2LsibmR{Bz8u;4QpaSIw4p)!NKvyF7G z?Yjq=_TOhy>NV~#+&ZAOg+sS!funJf~yDb z>^xn`0esH6!|1um;L&+(6lF`-_!({-9xwW7?{{H)ek|r1jo`v#!TJ1%aCn{8?|SV% zUhK>l+ht_Rr-uCxrjH$8-qg1FAuSi(JtUQ}hu0MUIm<=1qqpM!*NW^Bom(K7{V`|13i&!i+eDArrF%#7Pt47N?cCeLYUWIs$rG{b9r>C^$0{M@d21Aqc%s zUK@5fp(GMq;~X;?%eVO^naOxt6G1LIo(H&xmHj1sr%WYOcEblK6`-|YSfB%J{}Ju5 z)2Uy)dM(fo9!_O!;ZIuqQR@$gEiUAY!*Um;9!LJ_zzgK{5dRZj6R9JLS4CcV&|a@3 zbm&?lU4Jm()@_N<;h9yALEAR#tyLA;Xuwn?pon~AA+)xSqcAwzg_f^#w%Z8>K@s$J zG{|Og+WotWBZVAV-KMWrzr>8SExO2e6#Jdup-LdVbT+viLr)fI$iC@tv(dp?`RscMbc%&QiC(G~|BjRMw8w8nZ!v8Fo(mf?zM8^c(kD&MMx3HA{J3z6b-J@$oR$RXhn zLqe;L@)bPLIm-18jNK7^5>j_L&d%0f+>_L?q?coT2E!OhS;{&Qu|B6${C*L zE2!Z1j4406<_IlO^b}4_31A{)__9X#!86>Pv2>zc#W(8LN2r~DZI9B#JcDsSxUzxg za!1+Z(NECKeg zoE)3?=2ox=JdzK!l%&!w>Gy(wJxn>tw%%P0*(aXNqOGn+-sQ8iD+hw>tCMpT8$v?2 zJ3*cYl>U&7^OJ9-kBT%#lcdYK1p(c0RFm5$S}9Jfr(s~(!+sGoN-5iS?@w;YXg@>M z8mK3)@uv+5g~~F6A96#YIY&|<6fb0x=xpmqbhhm@F1Yo<{SgjgVdPd*nAe(3xQFTF ze)TIV5Fjb5m#*8i<(>ocAtA79nyKE4taW|rQ@{;_=tbl==G1EEly0z&i-QjIj0hxo z_StkTYCtm-L%&vMks>av+Fg4%G1%IV7lTq}Ft3Zp=0(l+fGsKeg(K=k6sr|GR~k$~ zc-%~=a!39|grR)WSV*C9uWC3Q$1>BQoDFSwiO(v#9u65hKmC66KhX7}PFSTV4r^BrPD!rkW@+dk1P(%3W& zo<2?TB-!)Vk?XfE_e{Kdb`h!0LjYRfQB5Eo3CAJFNP!!UwE$F|-;nxG?FTPUiDDsa zc@)7Z7!P`V|8fj*tDa(j@K5a38tE~5l0M8NVtXuT4N_DvXE(&*=AVnVte;QjU?!Rx z=?v82^}HV5X)}B{hX@nKQ_^rUDswJ6(H$T#)gYD z--VtIW?XH?faQ_Es7jgoi}TC#+XcJxBc&`a-u~(B$FkuN9oT4O+aa+-?6{%DTkc*` z2Nuq6BH{P>)hYT>TXLuEF}%*@0$pm^aeaIBsTQh}m%ILkX##c-Zbj&c^EF92|9pX) zL&VQfO$bp{@w*HwoWNdQ?qqP?4DkHAh}n^#lxUE&Zp+AK9D8s=)(m1XduD*R>_#@& zY?Tdwc;4lnvbwob2G|3o4>tQOE;lXiQ+O_yak9K1I`4th&CP2A?J+Q@17{ov()1RT z`7B5?wm0V+yxhF_5_US&v7a`?ap*qB5?3C}arlqL9aidq+COH#i|>wvC#sJ? z6{PDI6JdP{_icmw+TG^V?rX{_h-nn)f=uQ{q}5cUMx#Vwe}&h@p1XrO*SNLO=<0)m#tbf-d!5ov?`&cI8nd-s?oQ2K3Q8lOZ_qBX zchTXCqm6uLJN|AA^(`vdK26rww<=Sgc1h#t*;MJU+VZ_sW-6mQ#>vy5wRI7}XTNW@81oic=C zkO$2%4VM`2X70dw_Tt6hN%OPa`H1S8^Ru1N`+R<9yfAUZ(OQFRR2!i8Q0xGn#DTLf z=j`V#crNNxNw%*Ft7C6^&cG4z*jzW?zdK5tOf z)Ka4J)>VflREH8=RY6aT6orEDkH`QY(j^Ujdi%+wp-+dTp*pBM?(o&-cGn93a^VlH za-eLsxi`=qgvU3z175CRB5~2s!**My1YGvZUq+I!=8nO0p)>{y zJ7B)j&f}+@8>u{A;V8XsOw*f`cCVtpPd+|1h7w2f1`xTHclvoaH2xKzH@H83`u%3- z?W4~f{=d-jMb&_>vuZ%-9-)HPk-;d+b_~05^rO@plAA6!EUWyXMd>zoxJfQl%^_G& z7yMZY-Ki81o;mZJ>P$BuqCk#5JAQwPW*`YBOD!I3aei(aSeoHB_tGUx|KAbJCHKXF zR9mS3nn%kOWz;FcUy4Jx-VfcJF8-uoiI4TrQ@uS}8qCim2!{DeFq zLjAq=kKfU~VbyX9LlMgDtUcC8gd3E!sR4qQGQk~d*p&I;V(=!ievPc=dG}#QqXFeR=b|^LibD+}-v{>F|y=5w91&Jz)2jqb57Jb<{KqK5&dO!0^%I z20y~_XG}TEM4ZPNVNCan9f=Nw#g`KZPOM0wL6`nf46Q;s&}@ksHCxJ?xztI z-oV}!_%-6(bh$q^PmO@S!AAxm{ccfzd8W4@E`=RBa2fdh zpUJsB!0#za3LR}4pp1QkQpEQyCX#)V-JKLe(Kn-vjRN;s5rG(ARS(%xvw_ebT$<&f zVDck!cD~sizCF}3J48!$ZDeTqL^iI=;_3zi%@n}s=le3~R&72A7W63S=( zJo9H{pfFWDs+U_T9!HGWyaIC6>F-oT)}vuHccHK_3*on}-GufgXqoi*vV>h7F7|&6 zOMcXrp}u!g5(yZ$tJR71W}-?+_$1{O+NxLH?FC~HbTUzH^)N3$b@d_*YzZ6_GjEYC z3y?GcXt9tZpdVzXAod7WHt>wL%jWv#^{&Pw<&sBj_x6WZ6xl7H#vh1qb3 ztio*iNBVZjwRJCqnI)NKMB4)uHiy+jeOHud8B@0#Dzp-yo0Q+Nc)NjTPcB1T`4)>A zRmywK%?Rl4GVV;3}R|7}}#IPxAc~*V`ez2F9s#2&hRa~mr%v=Cd zp@BNv$}({M0!F_uM`AUi2HfpRRTM_oesItdc%!jR?Pi%=_Y`)19nr%wJg#172gN(B zLNxi5y8v%1)U;mumFf}hP`#a@ZEvQF{NM%Y@y<|K zFsxK5^1@8t!5VgOLB}Y}UK%$YMr-yZDo5Kuwi@n=n;Nr5-xtU0YYya@hY|AFK`Ioqb%S!nv$MIlpR7;b*8#;~?XV^MCk z#*heFv;tPL4SGX$Nr1ct`*+kJHow0pCnpaMk91A~By;BR9eDmF!d6Z!_8~@Jg#ETuM)vIHwRfu^o|cB*|*# z*cHaIe`f&wE|6&QN^*2>i|l$k4d$Asod$3M^uz3HOqD(GVxj2y>K5XzF@LF6OJS5U}TqJZ65P4C);C&JUH$)Xw$%I zTpXW}1~w0T!)d6!#PXa|6*^qq$11KAXB)UbRIb*fX!E`n0Xx+aQR+K2n#kBSja!C# zxNFm;xZmXj?-j1u2Fn@6pE5W0ia%wyXf}+L%#>*zO1%yLjRo?GlZ(Kgj8C~tIW=DJTPNEN%p0L zg+*)wHmFDfC5_ICn7=2z8?p=-&WNHTF1d#WKfInV_yiyN#w@UxzqJZe*M_W{aNaQl>0nPyk*krlBF`uiO7l(}jv zcF-JzKcq3>t2h7p@Z+CXZ@&Njw|H|pyRO<*>{Ae2Dg^9OXPR zwCeI>3s2GG!dxDOyXZWyvW)P8>|x6)d;G3q^{9Q=W+)ltxFW2J=R@@G+uYaaw3v90 z(*E!8^TpT+AV|_As!a>!66PYb&@0@l4%q(Pm0x87aA-laRHQCfhKC>~rNS$6-uL2N z5AzNavK(@BcUcyCkb4&;nzFQv6+%6%c2C@dB!V&&dzr&uTyN*`W8D%+VfoMhtczC! ztX1opO&@T4i96V{fHR~Z_u}T^p@RF^FVwV~#7V$uF+?H5Z zab?s3qM$$)chZnSf7@vBE7-5hll6*HP~%(x9mt)N>)Js9f=-~Pk#gWETV!*Y+1rFs zQ_k#wewy^=q^QS?Ksqcuh z_`m(}?e`B#$0YpSl^b&Gbfa*Z>ky0Z??2qW{qA2Cp>lqBzj<-|%2xF`tELg$<_VXNIcYSwt>+G9Lk&-C%9qRpOtDw~&ke24`+GjJYPWBwA_I}VO zRmq-WEs&FQdk@Y9KlL&9h)Wek-k>l6L-zDz4E2b$zwKvxc^$qW0WzL&Y&vJ4iY&?D`8>DQq>xqoFBXBqVkG@^<$VwTqfA9{r4z zzI?WYeR=kGvM-_pT}s+#L4k?`p)HENw}xx%4c5f^(JZUh5}RT(6GP*)atA#rVPEEq zWOw8j!lhIH-+H4o&7PhhMtSzaYJLp%kbKy(+N_)V;$?_Re zpy*@o3Pyic|MUekdbog+kK*3>yhp$Oh7#hT z1*EWZGP((0{`G>+SNVA^|go)4K@0iX_O@lv5L`$KJBo8>d?cC{mNVBYFr^9G_ za?IIQtSwaa2tzhVIF`QcqaJOSFN5c1GG7jw)P|>=+9Z?Miax)WYO(= z_{R0=YRzUP@E!J>7?pb*n2*Wma!&!ly=PxM3O^a_G@ypt!$p5tkh%9mlbMyTzP?(& zw!)0P!DaP`%HOB~XKqT;U++!LZhgX*yOKK`Zfng1!VRNPB28A83Bfawe9AG7cdw39 zg#;IWhx}`fd$Jy9}q4LBkETNKeV3 zjV2*G0-uP-&u=eZo#)S!Gut7&Y>PL6#-Q`o$^;eGf7?d*d}B%2_${ve5psQmLc&fE zCVH+ql65#+LE{gthTeH61#~1zR#SJ(t0ScH?#d&vt}@c#l~1$xNF^z42R|{eI;U_i z#fh3rWrs*S&12OVgZaF&l3@cYdwpMCMm%fz=vF(}MR967fAuS8`Tx>;!TZ~4dXiES zcB+$VKeI59&ZKjLIDhTE-eFsfas+v#6W4gJ<~pYycm#~8t>pvHDeo4aYO^t$+m5ja zC*vf9rQHwk*Jzj8<8nB$u;At?(p7n%Z9ck=rGq7;P%PQ-Bv5QJzmMeFrZsl2rm!YT zl$@0roWg}jVuwA5Uf|lmOh%yHV+s4h8<7O!)tkRO{QmuiKV|hQjH?Ja%)d2kGhJ#2 zf6H-O0b|hIv-|h`ZKS2_Tbs1;Sl~}F4>)0OkxfmE*k@>n1L_G)&MPHs5`BjbEA?B? zOL$8kBKF)O$hd6?8;gyroffHelF_h6p=ByK4GkB9@b>Y|#|JX>Y6^9Cs35|d!gF%I zx}gRfIr4|JRfH_O71}Tl}axUPGl}sreHmxC3ZY35y#cG8_yuRF^4Y)#47HU6~cWtA4Yfo!) z9Iurh?B-y{1iNXu-b{E5rpa476=kM~1Gf>O@Rbh_7q<;LKMP_NyObvxg9h8W@c3>| zAK+*50p4lUC`z3y#g6_L8LK?>4Zb3mcQb@0+C8h%4_jiqKRisO^w99Ap6Y=?(Th}| zFO-nu4t}O7IUZh!Lnm8(RukwO>Qe%>RKBPn6D?hNsPdcP-q&B|HWfY{93x2+)TA71 z+#-8`IR%NXvRNZDnJv*ecJro&;o_8PqoUu6gsf(N~LlC=#pEC!x zNsRkw{nP8;KYZA{{a+8m>hkS(nnJDZcwr6mDh0I@f285C7pqHfetXBD(eD#=I{X9+ z2_6L+YZ*$ynX6pnqTZpFkZ|WRQA1WDGIE)rT%DutkubI|ImxRhziH_l zRgx6;^=mt-onMikjR+EW8vKUOuf#bL1JtD8hcHw2nb0#Bah}B*MT>`J{!HOaH~55> zO(Qv+&2fB+4w?&~? zU|)RotMhk1e0=lnyN9oSg@Iu4A4Dbe{l9o*S3FN}Mq_1kiM8riUh-7a2Vc%kxjs0` z$l12Z-yEB8BQxD**&YbQrXU;yCoy8U8M4(k{!EXX--v|ni!yAm+^sHCbFv(a^JSk= zQ79zR!s)QfC|_`JWOaDmWod|c3VJ;LSxgJuxs$?GL zK}yu-;5S%d4jkC71aK^xwMJ?d{uS57fBXEiZv@Z@C8<1+Rl*|2J_&3>V>&eHF&Z5a zcX;ii2oeIB$X+wh7E!@^=5gEAaf?}Ae*@vTTt{T0s~aV|Z!}9$gD$UHUR!`MuW?HS zo@8qZ6@`%2U<8a0@MT1o?scTpw>B`Z2qJ0cGC@Bd-jX2?%c28!l!Mi{ zf#<^6SczW7Iuvi;7FD}(`M40e! z?OhN@1^b5rt6mOyK2X!KvO`Q2zg}ZLA}%2v;DtYjM*4!;Y_kTn7f)r1{S7oGk9%Om z4h@EGR>m+!1MZQ8oV5K)sKR`AgvW zEdonV^Cn>5)GXs^l5$HjkfD2pd6GiwlwgGCjqce9qik^VZ=c0bRv-E5U|)RZg9mh= zS>x0C@@4~Hm`KR6@6qB}50R1(%O(34Ul1kesUKWwsmynZ&;AMO8@LSL2efMne}Hd) z_}${WKfd|UNfxa)Y!O~81HsyMnv@aHFA~}f|37GE#xOebPq!IEPM=QWV!$LU6uOZy z*<9hM7C*>ay#zFAZ}6Eau{Wa#T-MlLjn@axYO>U& zl6xqRe4dASAklS8)S!QU|8EZ;?%}aNKHO6b zi!3c#hV$L7kn1_jD6LVV4%n_z^g=H(?V6>N+6?lM=aL=e(D`I8tnKOF+dlQ2H8L%D znZ&m`d>D}R+xT>ILG~rP**MpIc4P2X7Xj;#&NQYSw zV3y5DzTL~$$Szqe1 zZ9!_a!+oS|PIFurS2Xll-zlu9J$!?bLFd$_(JEHrwKvgK7LhYx9xg7p>r3{-J;tb1 z_R4J+r!PetpxaMtdYw^WMHpu(PLISP5y>qI25D7+pe!v>i8jsI1ivFow3J=?v6lkX zsB!Z`>|V?2Z_-^ua+isPWaib2>ULGFStDR9#ue!=U(4)@wUyEO;^6h-s|C`X2}MKe zYx#uMCe^|HOfS2XaqHJ-xNxy|%C2&yK7*mA*54f*j$OPaU_Ubmeq=5^*&)V^)=0Ci zO^RiYUCKYjX!Shu|4WpTaz2AUj}i1on0gHL%Y+Sr6{EH%b%`pz1`7zKEk4x&g*E4N zwc3=oSTnPe(O( z*Q@Yd!g;B%rJA|o$uEvJ6O*K;e){$&;Zff#&fa?Ur^+L5X)~J`GuL$id$sxHrGnF$ zkbc6FG7_g|N$tHNaqM$3hI*n@nve}eQZZ^~w5r<<;I7g{l|9Z>HJ40SL*76HsGxr) zNYM3g2Fhl~f8D4+`Lfnn+m3dt#?M#gTZ|r7#wyw`_F<}0j2x0%d@`F3<+KlqSSlNe zPwb$pM(&@ad88@2DGc%YXzVT$%wd8&W%?3(!MwaY4t!d#@=Jskz3G)#Tj@o}#&dLj zd&Uu=9(UwP$d$R4NQN7$#u&e$p>T4su(5`<;O3$r+>2h#DisxD-Zm_qNAUg zKl5QqE&aDXBZo$;R%P4e227>j^Xt$d1X~}By*8R=WwRmkLw~S4kSDYeUT%pJYlRnG zds6k`Iw7p(9qtfCRP^a!amccnZ%I_Fa}n)+g;s;=*yQLXA${Mo1C7UXb-uYy3?uI9 z`Y#V3KK%GDv=^Wmr4H&gre3?@J*(S|{L1<-9|8TYlz=MLQ>krzXYU7?X1Au-OkK}F z6}?qM&JBZABVm4V*-4F^Hpue%>6r>I+p9l5u*lO|@1c1@4l(YeE6P9uX&RqFR8B2Q z8l6y}9$qM&?$@W_vFl>O*y0q1x^e6j)_eMiJi&DoWzM|KF9fUxX6At!9$L;9$5)vF z#w8vxQ7GGZuf)xxW!8BL6%|xXND{zzkl-)r}V|+U;Nwe-~OVa zM6}j}B^?>enX6|Kl5@=e<`63kIBA+!kQ;AYIy?Cw6N({O^p~CxVLCf~UvG%W?5+%t z6ClOT&FQIfF17AF6JYGlT3MD%LW?U!5PflAqH4BwqvG)i>}TUrOOJ8`vX(XUY7(YyA%> zP)tMGz-qxFc`D<-5;+T;;JaL77cB-eAr+3|;pW>f{(Cm!GDa)u9-|LN4+%dcdC-^T zBfg0IOJqe|-qBMuqDD)Rt$KaDI(PUBlZkOobv6`gdw938rd)^&z&|dE7{v`V5y?fd zqAW~i6S`@M{Vex56TaG(SoZiwk%IKU#43KZ81pxY4Rpd#Jo4{TV}wE#Xcn|TO2}agL|dxk?3|; zxw%~fxgSkBc#zJ#g*JX6C0e=2=ibHlp2*<|&FNFG-A46y8m_c?&Dp^iSkQZC)qJ|Y zGnhSv@5A6G%l?j4;^VebTeDA%VbDR+5iMFQ=~4eDwj6;hh{3F!&v5rG&!4^FCH_xz7xc)OVMp zRQslc^~x&}itSxTd#j=03_Fm~fn_lGCN#9*^Kh=Lmww!Y)2;mX!29x+FhH;cZdW=E zPswf1M$o2aat7sEvkxY)n9a%xabrLFo)-$ArkLZdHYVXn#(%}bT=O;V;BQwtVdagL z7FAXWJe4>l7r)`(wfq&-gi0u)keH(Wu|u;TCRAzHXOvswP)66DO0fedn4L;I-QrL)Da z2KD%sl^lbhoH8ZL&xdRy>u++$)N4;hIZ@b2ZZ6Fgq`Uf!3+3=e9Z*dpI0vbr*GNDD zrfy|ht6Y~foW=zy>hHQN1Bz%HMzLMsgm8a``=7|Zj11N%lplP;OshXc`->yPAI8h9 zFCOp7KgY%#;&GniG%90{f7UM-MJ~KXc&V1JWqJ4iChkEuns-PA(DH--Ej+o~qkq%Lyz3 zh{XxNtnRQWX@{LKAU+3JAyol^$WEJkcYZoNl<5u!g4=ZX$ z&ymBsQ^L(PeO=Op9_lHGGb!a1A?o>=;#~D16d%1|NBZCA#f~tv(G=YVKgg%S0cYhf zKcfZujWR+ug@X6ji%CnI2hKQ-o`f}=zpT!0J3C^7fGD|t#41W*rC-La)8_iD4rG6m zWa?W_W1D?zBIs%$7Pr&71b!X%)iWq)S9$q=ygaS0P;+4W2X*|yW*@FA$j*EbnE!P;?wxLZPKVWrpuR0q4Xbt#NoaFNM-x+ZKO zB0_FO)ZZKzRdppUQ@<6M>y<+z5rf`XCK(2qH=@HN~5t3TX z`kdp;`1^_p39)Af~S5oK_bH~=rq;y4+`JUz7U;z`SjmBOJxl?M1 znEYy|O6|mEbQsBMMXsizc#?tq=Bwv-XD^benJeRq!swV<=oK?1W=>o_BOKHle8vVL zE!_NrUP;{CSVFVMKdNxToyr+qU%osU=qhpn@g5_xu(~;tlTX0>p7f)*zB)NSm0B2C z>*{{>{@w52{-I3^-gZknh~!4;wYCO3_0djdxO1IKY?L!s3sACRPXHwy_5?s4Y$H9W znq52PX+;V*Xw~}k+Ek~7AW6L}z(+Sfe*e80V7sSDZ{R!`Hd0)?@N|ab+8D%E&}qj@ z5j_(wWk0=xMkxu=~fgJ0QNX91l=nJ`+egkV3Q3rkN z^2OP2!j1q_@6=GaJCkS|=@gKMw#fu+ipFCI{!{MJA=Hf}ubGQSryJ|h;kU`yk6Mi@ zW#2ftBUz#}RG@roCC%4SG%Ggxm14oK919){pQw^}@t-2zJ44+R>Q69Ls?kx; zIs?KO76&pbxnLMgR!9~TQ<*_-#BC-?%+RLF!((xwFaJ7)`i*|}Ky8~qJXS>RCxmLf zkoQT=Kb^R20y22XV(2X;<6T^rk6)cyu77EZtPUle980*u!rE?Rg%8F1`!bkMc5 zNXBYt$E9213JwVMYIo&Tmd)Yvl0{yZow`(gBhR^tH*LNdy!LVfcCc6sqeG1EV2?pU z$(={ez1S@kK74;Ntweppas*o(+VfsF?NUFVmAub~BSU9*gYAlJ7}u-aQ0obWAnYeH zn|PV&0c2e!1f}ubDpMm$S8N3t22V6Tj@iej`0BkRD`sWBZNwTJJBT8IId4VQG0c-9 zdGvPkDL=Ccb^m0~lps!3w{&c@I={B^uu<=;ap)AMs-n-CC$*pxU=;UyPhs zjhe!1Z|8Za5fm3ip!I$pQ6VK9mm%A7Uv7-Kx(r*cK1XBEdUSDoc6DPg7#c+vVOZj- zk!dW`eOAo%FaKrn|H4(aH-uqFuXeIy&5|}zVh(MG0p|HYURvP?^$E&43vUh6auo01 z6Q>5gyn2!A!%--0Go6eK8_wY!d`~xahF%qI;9jZO?2^!|p(aImIbgYlMb{3{%Dyx%bcWHnENU3c zt%|IkbaAN})^h|iv#3Ft$Sc0O(FkgxM^Ub6g4*eDoQ?EQpM%SL@}`K?=7o=Ov$Dq- z9bxZ8zQSn32l?iDtx~=E(}+)Tfgn^n9yCJ96k4kL3=eAWU48Q2qfbIzmz33&X9{#nJvXRAPP>>2#f|DotjWXzHA=ZnQZxZISsyV?Z*V)1`1hWEp?6QCSQmO;6q zFDuW|@d+Kw7RAYzMbIDa=bSS6g>Aeb=KX5*Efg%&!Uv$G+V*N=+936a{h<`MI>InM zz#ZHt!7^E-LT%RhTw^ z)xFnTvxV&LbM~qf!yTqv+MJh2nQfi zqe0Xs#j~H_8=N4zD<8>%BqRRP6z1vxMI-!3jn%KI+Yl={GUKz@Km@0fU|N z^Tm4(9KXWy-d}oT1>ehxdU8?%>}+H^5jJ^b)PS%{kLWmvn|!MRWk+%F83F4`B^`R2D@VlA6iHp+Tgk(TkYbD-dl zUY _@{hzC`&j(-pm#1mj^wnhU%|7ac%;vNr#DUnGp1p;2g6gYv}L9w))8__>A)dPT)2Gw&vCv z4%R1t>$~`qnygt;Idvpq4D$^IX)8pdOOsI=yd|`$2gS_3lb?1C?iI}Qpq$2Y4K23# zc6O75&&(j?5UD}Avcwz;W!WTPtO{9#(hBP$Oo)?rar%*)K;$ zsGD>xK}lG z#f*eyR3d~uiW1QT`r=3q1yY70Q6PB`;8i|6Oi`Afe%LR|v%(EgPZ*ph@xQvt#jpurNJ+%m+?tf}#qc@l9F3<79N`Qdm@1I1t`2Qq9s zBiJ<&ds!)NxNas>3^F+a@IM)?)4)F`xNd=xo_eQ}3We~7?nS0k9AuV1e3UBoLT}b3 z%#1HX{x-woI(FiX8j0=+3}o@(Kfii;lTHM=BS#>Q2LT!W5#84Dkpq`mK5Muizxmzo zK72`f3*6uS^8W4bzR-U8;p2xNzx%kj?Rv7;VecWAC;g?j?;-szK z|LIRZk~!n;`**89f6t=`g_#2&bzyi3t;ED5Y6MC7q2lXxQJD_9;N?!HGV$)ApbG4B z3OJmPxaO6L+)hU+f1rsD(Aj>E4+Mnm@g zE&coumN&R-;x)%U89gk<*>Y`BtY9}oTdZ)<;nh4_t}(aIRTWO|No|K-tIL8h=10kW zWJU)JA*+q;S10@$E#`cmoEK5@5IKf(*e*g4^KlQ~Y-+}NURy|)h(a@a0^}5o{|(#m z=Jj~0dYGRiIWUz$qFhcJqN&-J0byj=*j<;;%hcpkxS!dqNbyb-+QbKp;$7Q$gc&IJ z6wMb8jo7SC=QRzis2pmIRT&u8=jK{MwaM#vZGVbE9 z)>;obK~@N1Gqn3Qc=IWI!q+ml9V>CV4bO}2`$oVbEg;_?D6F^IRZ?0RNr@S(4dTbS z?&SF3_D(vE8+0Hqae>9nPuc0tF7e`6JvzU=yuV*JuC_eQ)k*0E2g6`lkT2uyUvJD=A3cLu0y?4%janEV(X;{?| zbc>7~HnwO(_wKLC)Khr4BC2SFkB9g@hF>xL;|eysoulox4#_HR6h3_9F53+uhUfv{8C;yNNC>y`I$U`8=B_+k-P zQXH{L3yjh2bl(<%qj(g6`!zM!1We@TZ=`rlqi#g4cGt)Yp5kKm9TcR)J)=Imu!_0V z1LC)#Be2|HE1Re@%65)Qp=A9(jq+m#g9L{ z`MCHmJ6|sT3xS*eW%n1zSHJj|55G{*5I0KP`o%d{e$AJQUj)R@SokS)qTnC4P`M*X zI%4CpF&(wtTzlNaD_8@v0S~%3N#h~%>XEhyxy(qv==30&cfqF`DG-Q?vWFq*PXdOCiBh~ zqCSB=QWBLx0N5qfdy!Hl5X7}7)HnngRvBbro5{K6BzvKapiLM;=$U?98|XQh3R^7t zRP7!7t{CTqIi>;A?;QB?>t8T9A zO4t>bY;j5GgydtE%_O{}w4U^c;Zk^fO23>0NR@`ZHce+*XAnkLeeT< zQ8a1dsbpO$0c=b_=qAcDtAv>F3&pHy_{$%I!R7bVh41{vu=3K zcf_wy)h6r`dAS@0a&UKhbn)$I+J@%`)YBFc<)9&rR0Klf$e1Y8(kI;xGul{A6ncDn zQx(7|ZS^oe+Qs7!2`VAjHLIE+scxb8UVDee=}^U}Q2(k1w04Pw+%6zSDIa~4bhmM6 zH3lWvfVHYL2=2obAE(|tqA&&8)ld)yiF_J1wx<7&sT8;LZKUNOr|JK_00|#E-4RJN zB19j<1MaQ=v~zd1wx2bXAdIUgDNv(K%O%AqWI#KA_x7XLu@6*Gf-?@TEmW@CR zl`qYh*`*l#o7D>2zh>lEiQ|oDqe-rN)Co#R#84?oXj8@~@rbvD-}w2NVzfE0H>>jt z93b#+Q66W+=z;gZTt5iDR9tH>e8_WmJEfxr`Lu)-BKSD5W3;)ivELAVRPbNj&U%)| z53kX3Ewh>wm%ILS){kHgt9#j0$!g|t1fQx}h26b$jk1+C&Y);flba;*sXk)_!Dr9j zZ-`Xi+B7k`_Vh4Q%%Hdq{JZrhi9qU9CSdPR?Gzo2@bDBO4Vg?rnZz<=M|s8K^+Z-` zXq#+v_v=@P@pkg8OeSuKdO=%U?3TDWwT08Es)_}7IIQ4uKlCJRi$A5RU0BK2O|_;% z*7B3KbsJ80B->mQnjeP;#p3nRlcFr(bE}A^J)>}jq~Aqy`ruU*;#aBW7&jZ1Twg=8qQB2Td1E9e(;ffrw`I)||>gir>lE zU{BJH8dkgE_44rU1a_Jq_yV3dd^_;S;P#0_Xwe)nXJ#F@x9-zWh4B2gu^#4^2j0I_^`WH~V4%(+ysAUz2pcsa33Y*2slTfz+qI;IYW{Zo(+S6a zg&XdF{D)bczv|Y%OvLYoz$w3#g?QP@j9C}VH24eEqbUZpJzMSA?lB}j5j)lJL|b|c2ME0!-oJT(%od}?O*Xkh|quX6YCh!jdx?* z{kzBbpZ3H$#=X%P_x|oN{--^$j*%eQZXWml?lJzSJ+Y4Q$!LsE{_Zi(J+ayFPoww@ z*}f%Dz#47Dpil(&VmHqB48Z3+n0qHTkafvF*2La6?WK9SwCP%zVK8CCsF@FdLZ`@# z#C}Y8XU|OcFw>B1vgcXQ(fe`7=_=e5(4Qa(vMJqjM&)DRL4+_#a74q^@vI8imH4c>vz)%N9I6wK; zoEn`~PnM#(;hz({0jFvIIhex5GRC(TX+jbusx!~KHe_W9nv!{>;DR;Oc?nk>>anY2 zY^rV^TY+OzpTA(u-C12i?n{n(2A;AKa#YICk&J2Qr(;r5DYLE=LE3^0Y-Ia@xn8Zd z*geeVuFkM}%vd1OBO>EE5qHa4r{v!NyvAar*ob`7@l~MRdZjxb8K=rHhbx!<{kmxT zhc=o*!i9~Ogp0nMa%%iCFDK@{YxQH_{O-H^k8ghX*Zbdp|K<<%?iSxQdC+*m1mdTZ z(DKuhOG+yY@#RlI@XV6UPja2ID!s6HCF`24mY1t*{N+MMNwckXXA6sIip)>jvxV%& zHj_8Xpp$4U2S@?9K3VbP^x~Vl&N`)KDeZCg*oL0_S0CPfe7Jf0E)G@k^e-;lyf!@j z_d|gcL6r6-4n;=j4EKa8XB05ZfAX9dt`PRUEkm9Fdt0vrlETtMt@Zo+Z{+qdFbdNNp6?Kd zt@sBozfO6_g>%tt*;X3|IU~Z>7pV^&BE+6}WNC^V+)Huue(q7KEG>$}a4%D9$4K<# zQHv%Mk^UzXSNW-%)r#LfH{Y1Geu)|;OFU%u2 zD$r)Y3a~kCa8Fi5$DzB~>P%3im7u0gDx2`M*SVMNTiG;W^=D3w4U;y<$rcZ)V0V-4 z#pO;|y2R7Wn?3Y2#LOXGJN(_;>UXK+Kd zfl6vlT>^xKeLm6c#o|<;C#G?f3wP$$l0O0Z7GqG7KOV1d*f2Ne&mDv!zBF5|H%rEk zLGAKfDdOx@yVz4x$x`}^SaW@i9)(2m>S#92yqf(+QJ7-TxJpwG-`r>du=bV?pXIAY zfJ>)FNV)zBcg&9u|Ig0bPB7=20UL$x*_VU9`+p_Bd_Gv!9+3J_B#) z-5V8QN^c#a{X_f+!&G47WIFXY)!ZHF<-=jEk>Vbj^h87eChk{j6lr z;6H9s;VM&5Wl~C3s$yUaq+8@fA_F};GK|34qRYZ4c)QTrjhu_R4n~MW%JmMR>Dva7 zhp2~zGtM!NhacX(`TqDX5AQy%-v9WH%k{$#4%y(75a&GGG0 z!YL3?|5H7J7v`B()D3)jIF{M9ISRxNvIINikiA(WBsP;ufmldPOk8sF*xHVNgV2Aw zYGnCy8k#SdsSLX$N$~rY3il#|KpEu zK78CQKA-lbv!`?f$;fF7R5)-g1qF941%W~i*1mawD#WdtONM41^XZ#P4!zO4KYi2w z-}0vC5-kznsNcNY#TS&{BxpWcTYWZe^pq8xD65=<62z+|tJ1^rbeZGq{5}$UXz`}N z@Pt8p%JML9QL(qWrn>qQCzqxmBZ>5klm|hxmj@<5k2rbF8u303ew)I5TV>OT{C<7E z(>O=$WXu|fbyxhXlnb@iRp&<0B}mxT$!|m2RvzIhluY7*TTk#XJxLNP zxrrP`Q8@Bh^}`$+q@I~sr-(ralM{l^2X`PN<}P4hv=0YZ?!%+i<$24(HoI^P5<(D_ z`pkTobS=lcOKwSf8yWzT64Q*KGH{fg1kH5HsE;_`%BpRVkdR!H> zce@0NBT#+&R7+Joa4|@J(nFW%M;3*Gk@)Rg@#$Bq<0dI7hP2XZ+-i;a?3#owJyGTK z9#~h~#CwQBf+G6M#%-_IT-nUy>v_jCuP*m zu1)*(tiC-yrHE2wp#~+9CFbHNH28Rm?TV$=ADFf$jg|#x!=hy2=lRJvLUoCTSm#JS z4ASckUS;KQCUG1A>!DEgbWtd<4LV#g`}O0(AmjAv%8cj^rIt2MP;#S>gdGaY_m%0Q z*oK2s8*s=$b54yn*6`}!@)*g~{2QNobN21}HJ%cqYu_K7Eny(!c1W>D+LlU?NLMWi zcZePi?lpLO2%CL+Jqgt!sH|A}?i54Y)I&56-7*PLSAj&KtT5)C!qYP?gcYo92>v>& z>$}VWd$2ky<)Irk*BxQ0SC|0eCgnaj#~m+LdZj~_Q9kFl>nC1ua$f0oP|3nK&N}uC zK(DIjG)yn9+WTqi%+SR*n}@==2w&6Htk+Y8#k&+WMrJT==**cu%T4=WS@C1dR_Isq zT7GXz>^|PwyScTUipLKKOX*-Tt-Aa^JX!ku43lMzXZ_n0LfgV}MTI2-dAAB;Rx;vT z_{hv%Oj01|=@4)&;u<$pt;^5tM*+8R+uE9o&^nhuu7tH zldW<@?&tgXc5zj>HRC$*O=#aOx+DYN19Q?f*{dzW%LHaL{u4CGzT8U1sDx0%weg=7 zg?tsRpLr@GU&acJw0#|W4zh2YV<1O8f`1HJ>$u!2Pm%bXR?M00;E%R!S}am~y+JBm z8wZK#`0D8V;OcmjdevOIIr#AC5_O+A&{+T~hvTdggFVL4M5+NLrg>W@KROeEMUoUu zL1j}2Rq226h)FNsTWs+ZC`p$C*@BG{OFrr`Mj8R*F;}-Z6s{isq&RNGki1BJnszb? z;GO%Tk(fi-R)KzyAD$st%cPIH%El;yH=9r(gA2_)l?uZ*1=WWCJf7J?cR_nq1u0#% ztx53SN34Z|Td#5crK84Zjr30FPrWVJ%ezXpl{yRIbCH@MjoPjg4s;FP^(3SXU;TNm zWC|=1DMfO)J-#F!{c5A!CPyn`*+yc>{?AAup3{(T_RHSL?b?C70R1;D$KMo5{L?n- zFpWc^Ot=#gr=25Ha0&NcsbtLPg;TiST1X~)@VFd~Tyzr*l5O2UtCWVVCcI6GU6A_b z5;r3IzB&b1)QX*J%)wIt^Bef6lW%U$7olEjT5{nE-O;3A3H{kPGABtI_(M66So`vn zU*nKHviExSYgyH&mVB)&fx2Y^tLC_9qqflDyhLDA!%eDmi)sHg7*+Yn2m@Z|{y9M9 zJ>l3;2yNlzfDA7jl$&_gq=k2AqbWo_a-OHR)ooUpjGZFRtDLEl6GtCftRR7~x*o$W zNtVLsxS5@n-N+O{wvC90$_SMj$dKbS@y9-nU6!SWi`>$q>>UPie|xmLE<2}Od*29E zDSO!U`Q~Y$rMxiIpVb7pwG84X&^+gB82gK#9s5iV;l%LTKD*t|!-L5Yt4G8(GE;U0 z=*@&Z%*!zF+Rm6z%<EcCbYY0R48&kxsZ30`*4@dPt}_ z-_1|Z`gB1mwcha3%XKU>+1@@#j+M<@;>q@&1rf-pS= zrNHS8BGV1Beq;8YMp{^oJ^c2^KcGgxlBcwm9Q`V}n8?w1SQL#|fzi#B(YJ_p^X8kH^Bs)wUPp5%Ug z(+HDBggGA_BfGoFB>2o0{*w4reP-;qapm=29zOi==1+hA{_VRz6klDT?2sETH#fXR z%0P0q9NCmx0YiIiK+dmpAL$HgwVJB@Twfe1{a^XZ?oocK;BT-|EFOPVxSc4q@YRB- z8)J2<-Ykv!lVW91&S9Ze;?&7IjGi)F-2F1ICyTZCic zsxsTfC&46zbN}maNc_;Hi>)nQKVc3fv4Tl2%C|;f8z6qDJ`L`Fi4G>UTME{}qE?tH zp&T87sQb6top7ElDanJ~rlo7a^+2OILkv4{@)%46!p|IFI3vBOTxTMgdR-i%aVR^B z0rgW6edq5DNN9u-VN&2eW_RN7Uo}N){F2^3Dc;b z-&b}Al|07&3LPjqhvzQrP2y5p&GohXx642Kme#w?f+OceB!(E(KHI~|GSdvDMUkww zU7Btmm41wOM!#u>GCA-#%<_WS8KWcpG zaG6TXu73!Gsg7#zo$Y*hUPDd~E>KWuef+qj+g={mHaL879Q^6Prcq31y02PrS@JeX zm7dsMd(m_xB=ZvVUsyj)qIRV$n`|$qBy5w3jA4G4QB$u1CorZQ++d;S`*drWd>3sg z!8PL>n*utJpOV-OBCDYH^COBQ4~Bn|x2y5^e&2IFvUlKGt`!J_2YK~y0Kn;$679qX zQ0Qyb1WAjcltx~avC~I4GaE|oCxvS+tmVLaYj2Igj}9b~ zQ)wi(K~e8zs~@b%EPBM6MnHNpZ-J08MBmKanMp-orf?Vi@xg?pse#5ryKUgQ$^Bko z2XXmZ&Kq$qODW(BaUIY7t4h2 z1P>`ZbK}PvUGRZ&ma?V~QLkwytlp{~YX9tevXFh^Cfrm1`kU}a{p)Yq`&(|>|66W) zvh}7W9UBOt^9Y(VXgn*bw@;cqqI!5n#;i|P$Y6y9Sbkkc7oW;#puEO&46xEGN z^|VTCM4V|!QiuAeBxxv2;d+KBrKnZl!{MUh+rL?-yyj6J_~R`z6umv#8Nuz03{FLI zQv?ny5Mswu^mkd)Elax9KX(@wa#pc-W7JF_1@hVT5!*IPC=^G+;Sw@A=?@aWIF^J_ z$?DJamk5p){PJM^B8h6rJG8I7LoKIje4j~)49vB%H6(HyhY}&MU89cK(j#5;t?S>Y zC>wEeJ)H)j5JS;*@Jo}if3Ct2uzwYwA)`EReJW&zN(Us>QEh5&)HHdHjSRdjY9gsW zlyA4!_b;z6ZVyO!7$wL0TJZO!@Vhm2<$}4~S_R%6o2PDh>`==ro;+N44=-Ch8Cvgf zq5n!(sfV00fqu0%h_>AXFYH-Tdflqh`DhWwP_IA{jLU8*RpwBq-i;*%{SEdk2UgDdy(v&AZ=y{}3txbW$oak-jeF%3rIyEnpJ! z-S83;0odYQ{OrMEw$+b;W5uJOS1UJrehLiLLQPQT6|)UVG+im4OgDtrG^&_Q0_yC zH;N#C(QXCIb2)rd!Dgd0D|}bcKQS6Sn6_2djQiUN|CnAp z0xi4_^V?Bf!M^$xqE6}+xvXkM!h;)X$evarFeO*0C`CMNb){Iznzxaesnyyfi5`Id zZs9dNfY^WhQ%Wa>UJf%~6YobwQ*J;UYOBD>)9tDCn>XMBUwISzLyLl8>{&PhdKiJF z@ZVhG>*GJjpN&2tB)2WS{Dk0lQ0wx5XJJH&pdadHNgIeXgxQ66gIg5k{(3h&?xyX- z7g(pbi_qyIPokJ21bW6lOXmnZWI-kyQNjiwEK@XUx6ZGw9?Qy5C6S&ju_c z**3JF>GOz!@M{aai3ay3S}~2J0s0$O-@pIvUvJ)j|AxTne{X3pt43D6aC-uu%qe(mav|HrHin z@oamK>Ri8ue#g!%SHm_)#~moG(rEE~j-%xD2+%v+N;I_zN6@-sU2r*!A=X=&TT^~u zR@5nj#|<7%HGrL8U1|zjL^FnY9#|Bm)qmDH7d6OT9Crufn;;P3mzdhSru!HaM41V@ zh?F9p8Yz&BdO=N!k!kE0+z(Ht?0xaa3HjRwf26*AlwKLGIQW+9?v6v&k3iZKstp(9qo#RcUH_oP#;uz*NZp z6_*O3qM0_2wfF=apI})yIUSq?N`rfer%AufODsk0<`{weHF6IkEh?K3oWHq6E9$+y zOYpQ4J|6%|Q;^S`q{xW2(+UOAm%8fsdL_IlowdVz2=bH31wlr>{q(Hh-2lko0VkD|atbje!0zp)^;_y4-}4OTz-~+Iy)5y0@mr(;(&dt5oaA z-8&|IC5zH(b1-`E2*Lt!f4pa?m%J=2e1y;ceo$M=fskVl!+~^g@#zV zm3>qd+Tg5h(uv_^gb7QX16axu=|d^Z66tz%hxM1JRGk~hetxtDs!#8rrk5N6U-z`2 zW4mlUCSxxaw3$q8AU_-}s87A&C^CiR2rpw zZF2JYR4d^!I5!tqacie*S+gl8eS4hoBN1EoYt>tWAnG*0AxDG7s~2&6Rl=^=zvGjLJM{wrrky zb%%>^tg*0z_ZYZg#!sb(dCtv{j-v;v;Mki^Bs=Pud3)^+rfbaX2zfex4&x4RumO24 zN9{NOB%Z=ujODK77m6u$1ocR*g=6icd(%$b-({D1EzFnif!KYujW0j>v2aF_h$U9A z;UY8@Ey!{?6Dj;Vp~J$?1Iz>T42XkgK2#MgP*T$%JQ30dov09~IGkMU`V(z5#cau0X>G$IiL4=C|>nM~#~gV3br4vD)u+vcTb zHV}&?=TF5+-@PGwp+3 z5cGDvsM_Plq6d3rVIq4P+2FxwymTz(!jRmS$dp!M2;{GS4?lONf(4x?cOoE-ZVvpYqZUz6cSJ(6(Zdh&PJoN5ca9dQhk5wH zwzxth|CB;;_1ce2g#xZutpj>9Z10C28u-6CPhFaa@d5Nu(jzB5V~xfzFnP6$>9Aa+ ze@%9ED+%SR#qg8ehCCym?6&-@e#TfgoVV)QbN~8pzVWj@puPw*pV`pQd*Adnxrct< zM^aVeGiTR5mHuInlHj)PuL{Z+I^w84w?+UwjQJ@e51r%lAK^XsIeLCh2<6&Y~s zQrAMfak>K%G6c$BBFaNSfk-7%(?qdw_Hp?_6Q9VK*ou$;fH4J@2Lt@GC#wTS07h+H ziKHspknT@W z&XjOTndJqEAkcy6AFY5^HD!g{4eU+x+jvVD6#?56 zT!MDiNa&jyqFoR7Vb~Nwwn3z7SD_ekmRu;Xdd3IL>k;bliFvKoc%X^-vuhGP@ACQ(Iw)j_6nO2;Zlyq&5`>elpauK z9qEy3@NhBL=+z3oT6rm9Y%!#8syghx6YA*BhjFn#dus1x)r3|L?wAayhVx;!&Cr z($#H_A2WVxv@zA?7u#mk2fg{JiqkstOZK1Xh3_sBH_v3BjLy^A{8Mw9(6k|h>l7B< z>Os-1>ZocDz!N#Ux(c=uzwk8)lW5ka5VX-7t2On;nyvd2rFyvMEP1I*um#Z%yO~j8 zi`Y90_km~^^uL1;fjLk+7G`z0Xc^H6M~en zZ+)95i*IWRz?5?FHy=p;m-;?@ud0>jjQmHPiob_=FE%>TV!eL#&MO1S3O&V^F1|gs zW+vaeyUJvJ%;Ijr3f;c^yu5wBJrehcgO&^Wg*4`BO8(ds8bl$hC|IK8eq`IUJoh*h zxQF=zygwq?bbU`vx8{1e4{a{~6v4AL*3;JRky_kT+Fv?Iv(0jMIS$(y9xqpS zDOThT?0Ur6ZweO<2s}}f%-S!X4Z3vlL7Mu&NFE&?gqpkrS+sy=OnMR^k_tnY%DK>A%<$$Mf-xlZCDUQS(Mbc}9lr@0TPIE4D#q&(XzA~*&&SBRh?=tc&j&7r( z%-tk+9RotF#RaAX{6ZkS1A&Xe_oMl#pPEpAXrtm2Q_4AoOyAz`Hw>u}q5#Ti(W&!F zW6|f;o;thc5fuk>gXeAP*JMKIq|9(ID=O#`$l>Sw`kQf{iL$_iIpQHK!>L+Y7Q=?M zd*y?XGjM*J?Ce#2>6KZXp(r$4e9idyff4;0U$DgGHPyyUmtl7ltHxw!%dbp9sJX2r ztJjfdNot+~7a@gv>?d>Fkl9j1$k)qd5gDkNa_}tzRZSm(h({H3`4Jpq=~_HqAO#`o z`!!Z(9GH}X#GejTJVMRUK;niB^xD|v#t8-_cI(I9B_VjRK-!PFiDt9ur3PG7kvx3XmU;<(f_-|=Z8`_@i{kO&c`L{p5{r=%GA0xuBx;i2m2LIHd z49BGddn9GI*w8fAV2psiLD3NoAd3(QMeB^3lnFBzMJ@=WTx<>o(@!kb)vpnRvd=10 zI*vLKp6;a@5NOr}X;0q(Tt=ycip`GJ4ZA2(@ zLdk(kmmdm*mN@}YNPl8Lsr;amXQP__{tbToM5#MNKF=^S1D031$!(5LvLn2 z)pD(LdNgJ2r3iJco+@j^r3C`}Hy7V+Avpd+W2p+N_6~?9*|BKSpQ4~EaWHQ5nZ{Wy zn4siqliAj%j6p`qL)hVjpC3T}Y|<;S@=eTSY2fTN3Tyd%T zivI5Kgtd|VlI$8{+|CGtI$y!^Qj8v4OX&|Bq^aVzLHnRsor}W*vT!P`!`K0jhpSnO zlje74bRhLxL19Uq=6ZN!niT8dHs9>eN@OS`fw=E@{)=mqSRcOt3$M56Jv2Z+to^|? zzi;))i8COJW}Nr2tzD2Uw)ScUb>Wv!nL!K5ByRG<$7D%UT#N%U$H%rE{8@(_dDRur zxoPRNKDmYEN*`{H?q8m7&M6E{URm*3+)fZ8YK#$uYe9K)88JoL^twdCM%;ZHDDcFhn|EKHxvJtW?C<{BK-Z&w5uavD}u#wKmeY7SghR??)&6zp*@ad3CqT-&`FS|)XP7UH(Y%Wa+syNM=8MJHo$5d;Ak75M08HxakA}>QyVA9`EyKUz8I?^ z<;~FMcvL68k>)vlp||7_BVeWE5z}mfody+f>mbrlohpG1@M7O`1k7@`oc!ERp870; zgAgfk&scCs)-dKLC*at57#yW3J;em-c$ISDO+T<1BMo;_c6f}zdcX;>#wzOpRwkp= z2h=0XWwi07_QC0JVhPuRiwdB}X>K_E{&4{AFXMpL7`5ZmFJT#Va@h4>z{@_?=^b-@#bsR~`DQtI|P|#s40K z*ppGbzXxgKmprt)&vE%(%Rk+``GE31g6r$^5l0qP9;u~eQst+F`a|3L?#iDE6?5@X zE7%f!R=$-97pFSjN@ex~=JgSKC_fnN5v#ou0LH^ir>G<=A$VhWQEM7rOpBp9_rxEa zT++3sK4e+&5at=?Sq{bOD6Xv`I90gndw4`TdaQrRc>#wqat5zFUc;XhVrW`;a$4S% zhi(k@djcQ8oROE6R9DwmtP?Ww)%$l3Rx64}8^g#d9+4zftj7H^=S-}SNWOib_-Avg z_~yodVSPC?4-Y9E{5ZDbhTNnZB?8}_*G5iYp=udrEpJZ7SV^$D!a+7hEMn`K(fU9K z)}fJntXnFh*}d(bAykVE>H5Xkm1_+3E#c+7-MvhtX#|DU~`OU`;fr!e4JK7%wq*_bBnsJ6fy^A#kJ2(vuLYNt*C&Wj`9;u6+Fi%Z}FMdMjYic{&Z-g^9; z&`cU?J9{p+w0i=C&m7CHT8h}rcYez3%pD+i0y9cpqAd=4Q=si+L&+O!PlwCITM}Tz zZO0L;K1a!N%;`0V+{U*&8IHIpcgr&vo>^2xXT>HX!Y!WIq@(x)C2zWXc>)V`a&!Ot zAAflG9n3Y}_gVcXB$F+jJPBeDu24X(sYQX?_tgPX+mYFZacf%%V6<84f?%Ghwkm$* zFlzp_ZT&ow*t$wg$rnzPr(>vZX_#4bmhCR>A@Qa1Y7KORXr!3P3>7a|UckhhF8%;T zAKQQ@U_W}m{((I{Widw?Ad7ijZeLjz0bOA)cfyJ7yHZ+?e#<^uzxnv~eW?R3c&!D< z;({%)tHz;n7QgD>x<1*-=nri#kw6?WaICH&X#-=4UcR`Y*WiHM&{z@{@%iK6fT4pQ zE>i@k3N1h-Rv8kaSGQ14DJYdj@X`h!2wFJFjIt^HCz&G@c{$EJ=QCaWz`FOG!o4fQ zW+DS2m;X2~d9l8yiq`$nEAoO+6ww!vjtFCta>?hHJ%S_MoZa0XUB9~G46%As^Yz)$ zt4aa2vV9kKa*vLL=Q&pasq~P)xT)NM@`E;r`d%HpWI%&>|?KCW9}=U zu4^V-Tp!<{_PgcF2Maa2JU>4DB4I4r%PhH5lK+qMXjn!ZfPSA@3{JR=b`y_|5zsf( z^KrX*)vQ$>aj46%uXE!I*Z9=~#2y2M0@z%q4o?@D*@x#}m(0|1M8A%x3_pk9Yv=|Q zQWpJXQW(z5-gZCp8EDe2OHTLo>gmaG60Umf=O*XCYTe=U+g%y1Q<~a1Y?;LbGK7i9 zd;$fj)wX11$+pg}oNcl=O~r)8Oq<^>bWl|FyH!&rNiX<0Y*(M~B-S39>0$Moqjlwm z)@?#ja4Y6+kStLnPMw8{WKH(^vqt$4mmYJYAc@G|Mr0eXY#61gs3&P|Eb0{{R#ahV zs}`*;&GSBDQqc$~_p=%C;nHTks(=K?eCvWvjTVv#6w8vnL>)8wq*IVYkMQa_`Au7V zcK75rx?kuDu#b^hl}RMn!n(z3zE4Or{>LJ3QpaO5i`Fl=Z`$|BqX1Rd8 zEEh;$1beG}h*jwv z@@;uv8jsir42XUQ7j#M6Cz7kQ=vh!i{?W2SwgDNB+Y3c!z)2`H+z}eWTTWF!c4%q< zxlN1U&?*p;qRdGR@OjF?Gw3Oukw-T-LPPF%@Il4hs4q|}&6?4l{OyKwFkoX{7ml|n zy+P+$qifls_|oR}9w=-qpG6V2FMN<2Y#%Sa{#^?aQl-J}Wu;Z%LuEJ}o}7RtfS%_& z)u|Gje)^$djAPwkg^X(ZM|a@q3x+X7zGw4xY(GrGqt7LyYU3bCnYz|NP?siKKAKGo z{0;PP*^w|~j)rsldd#?e9jw*?DUR)~o65_~g8w9xpClNOQgmHe?PRls>sy#NvG^(J z3@ANtoQ$sYf!KCmu;Wmyr6o+vJQ9UiawTrjY>AyeWoBESHw*gLx2NjVnnK$?Mmjv9 z+9=XZj7*gzx+{(%V>dCNXE3+1C_0LH(AWf38y#5`-u|9xX`8?L)%m+0KE8SP-2+)^ zS0qsSWwKKYezp3Eb8cS~OYKB#|L?`y-~Uw)P$rkr6Sls7y*?~Kp;Ky?w%I1$mN6KGBPLB4qi>&IM}YWoov%CcQB`BvtLqtHEZ&YjjM0u$l9k0#_c4woLA9|5T zKUj(MM3VJLM6xpZOmWhWp{aUDiKM6sc7hbCf@7BMH?djo>WCd&U1_(8yf)M!eXlJ4 zB0?WtUt_(L>)KpIPTL`6*|dZX@i<+dTsn{_d=2G)?(c3-?oqvp{VVdG^vyOqVr=KD zllSdZCn6|==EP-v^l|VY`~1W6tZgcOPCdw5-@9%=zk}9ezDh>;gLPi<>!Z}$NGUNr zj7KvLCVHvclcMTiZeicXAf}6;wUKVAIgnG};Jt8$kR%yt_X!MjF-IP2*dgt%U!R_^ zF|NSlJ?fc&J#`J2UMoG&Pc6?Q=f>AIT%nmS;TeNP*8?q0q#)e}@Lig)QG!F~jjkvqWGW#!+#Y7>`bi~v!60uzep4XK zs7${yKM;RI&cV~ptz!!H8em0(hrcC1-Re^G&?lD)h?u-*0fSj>b#t+(rZg_%;Dpf) zw6k&;chH!SCWTGe#N*g@D45Pw?pDdiMZ+xR7}7%HZtAPS*EGVfi%;h2npAu%Kj@Rn zsKCD|izfyY^C9Kb!3A~d^(Bp7riXdfj53OzcKIw$!f;*pLVZaD>Sc65^QrlI6ct*# zNDN-WUdy>YvmasWw%9{Fq8sYKA?IITonE6Nu)-vpa(NSClGkXN6t{RrFr&8hwAmk0 z(7ux(W2RP!x0%;s)}HI&K?zqnI720yXo*5TY84%nRJK&!0X0bIBF(_={q7?(E?SCO zu_!M*npWb$?BI%c@rg<5^)!f)A1ZGL#UIJQ@krqc7n?hkTFXDV&Q|eYc|g^#VXR;C zK_#!4Hf>Gl@+l2%CUu!~;qIi6i5STDOGMp}{ddUw3%%6V7#bpXKYZ%Y+k}*U0h%yMM75F1_m{T`Pe z_M99p5GUQaq(7NLN=B6_WRLNg8$CFA?h@FN7v!dtl0LN*7z?tW8TxWR(^-DjN>6PA zBjU5lTl>xdtMAQZ_-Q#RSKg1>XT{8SQ@O(=%_E>^t&1>=oIW5tvMmPNxhILR@?JC5 zOvL!vn;XQbp1Idk{ZIl4`S|j)etg@&2WoJmyO=OE?8^O^B1-?1EjK~p%6)&$ZILnS zuXTenEFrhW-k59eTyKK^w7{lmM#CWuXb?8H>>$2D`DzdHCgW!$0*b*Bnw%42`5o9q%=(q&MCrywoCP`>Gt9lUAg^?C}vO?(73h_ zVz~7dKbxSC;mAyG!ASXD;<|IAClr?%uX+jYP99R6(DC)*cp+n2D$vWK&$%F{{Qc@r zzkB@MpMGboufPBDFEQ)?AA9e@+{Tfm3+ks}<3@By+wB&JLlx1sz6fq#>So9b%aG!W>!^J=E?JZP{+(cf%cT? z&~CW~@rTeS^>s01^7a#pT{gx*fq;{7a|K6L{A1jN5$9OZa9nPhQ7aoDRu2Zi$CR3I zu$?MZ(6m=y3Jk1CX{1M+W;k%8Q;TIgBS0Bl%#a8G+z~7};0H|9YBY*lj!<_kK7!p} z^#-ZNuFJYP+~qmGHPTyHr+I|apQf~TW(OOb{O3{=WrsG3Jmdp5_+jfzMm(69!VuFx z*>8#IpZt2Q;2u*9v3EXJcc1HAtB+)sCy#0e zOu@5vfSxR`kij~U*nA0E*%}WI4%j#njeKA*Pt3)OXG+~uzNqubZ~_p0i^Fh3zaPw* z%k}G>c=;6KnN(DUuxl}abs$yQE>NG*iSI_0q3mC@g6fEyhSW%7HRC;yD`HCU&q|Ya zC#W`#HZu1v4tM7$J9vql-s7I~wGtQ6Ipt=wzHDNv(s$PSH8D{LhALC1OO~rY3zwGd zt5cRW9v8lQuDh_qT=wf(9+?d^&R@qZ3n^`5v}#1RZbIU??b$i9Id$8lp{Jn1s2)&Z z0;~`WSG_*OuO}kha{Gs|C~=>zplx*O?Sx51ydeT?vc9fV1kFC(AW_#V&m_OMQk$6i z?D;^_P*y1z%#NL3=+N;EwW(!H@G>kzMYep0u{W=v8kNJt;G|+;AO$-j3QZzXkMXIH zT@@PkZMGl+O|nOVk2%3$hP|gmX8I@@T89WV)z!Xm<>#L{t2kEVO^{i=JXiNyT12I@ ztE4VvNSfNY!eQ>DVvm1?IUuK3*d!}J$;S8P6f{`lQ37)UQfPp=!t zMQE$FeBr_sYCc$jAQ@^;vd80L<)=(sQ1%Hf*f@Xx-*3Nzr{{ZQhX3Jhs-+%GFr!)E zmsJa%jZQr)2mEcWfz^@O*u_-`%dURi=s0|dY7Mvxaenj_fuxih5+bjg9OdRlIhjzk z=g7SEklzXWH*SEUMc&W^%dRe=`o}(MzW-6^`npFQp4{^=c7DaG0~5#W=H>t5qJ;UO{sxg3RGq+VhonCR!zi^;|{zmcQ!Tes=j5d3@6 zY;2uhM2@lcat_V$)Z;e^r8(se4P|MONVQJ4@DuMxrdh_*5aPqHa>zDX= zsPy)EWHh@V?V3^OFpNU_fr&DSq6wT^2t#lOY=ve-yS^%!K^9lrDXjX9g=lrBrAQlm zEa=Xc0$(Bpv8%v1%QdR){w*(oD8caU6zGPV11H>57TR<*%4AZcp@4OZg4>Z z%`d9%)9yLtnNMDMJuK;v*$VqL2*GRx8lpk8IiroZsJuoVUrnF&)u4EI8I~P}gP2N= z_;|F2Y1Td%?F`?V!5oDYTC)gSMIeE#5+aJ1lfr{1WCVI#AqfeT0j(A-P^f$GHf+!s z={jHn)+12R>TzhFkeTnke`PGM|#Gi zu!(oHYt1uW0Z5c;bkp?}+9&MUy~zl8zoe5gsiMk#v6xX{BWLJ~yo==!t({GY5NdNE z;{^iW8%%*n9k8L3Zl0qpA4r@K~SIle~p4MbqlEdr^v zTXBeHkU`z2$2j61D>oTTsh8vFJw`mNbYS8zritB0J279@5rZI?fgZfnI!I}PM4x>m z@1uf5Kh;BY#ltl@UG<9JsgJ4rTu9Wnrfi+eX-FUUR+f%HfZnOkC8%KeujYH0a&~B- zcnKtH1aWl(LI!`Z5@innCI~JR5fHvFXY(`Cyo-xa@&OQ~qhJMg{6KOl`vEP7{dgHa z))YeFcQ>ECCXiUoXWT+X#viOqm|yAn>oG7iQDo7$XgATly)o)#y9o!OIf|M1S=+t- z91uq|S=)jWrXl$m9a$SMF;`ZNjt}n|Ce-Z@wWne|WWDBN_dWcjcFLw=cWLop^SslF|bq~y5SX5d3`Mlx*&OSs2&jxA4 zE`t*6j$@s7xH>k}lhaW~vP@--V9LwY6`VHai`B&x8X@@j1bT_+774hmK{^JN;(vE7 zBfdf~u>TERoOeD#^AEZU-V+-~(kBfaTNH62vB3ifhX;n$6!(ksc(Yo7yU*-y+YqpC zh$AMVm-TjuyfTKU(zTF`1tBdz-~IggZu{}=k3Zgid_r(;=xUgcFMLD~5W*f6yH+3H zeqdeYUM}JlO(x8`eFr)#8Gl?}KPcRSqAUJx3>C#>k+_k$w1oXa!vLQs6m}TR=&1|m z4rm+9D+ZO1i0V$65cBi}I^+PO3M>%xr*Jbc=W_zLrOaz5Y~TaTfd?W;O9{~I6}T8v z7b(b#%2jZdKfhX>!rhgQ%v@HQ;b?3k*@a^%e+OJT;omn(ZxS22xme->m#6$|e015O zT?MWt!bjZ?TR4h#E|Q^;6nbh>TXpG0AdsAhHer}fD$Z`;b{Rd(OV<}R?s&-j(;V&w zAXC0Q;_=jpJ$kSijClMghr{b5xKH9XI89wKff_(6@t?GIvpgtpIdYY8!Rpcar{D|P%H*U-C9-(=ZF~D(xdr05=zoKSCkU4_pN2 zm@2n)4A7<;Mi(=1dpG)g2kz|Mhd0!kkdmt%Zd%BQ46*xSIhshD2S7c&0+`}8X9x@J z_w^MB^+ak%l}SDr!Fz|+8ahg^8O-?U?(Ft`1U5V|-hU>!V4G4pyOpWYX|PAfL`q^_ z)4l<$6g#SJ-9)x03Y&JxgtZy z^4#^acx`W$Rg zCG{G_{0XR8o}bUwXVB(W;TNr5O#vCAixoacg!s-g5I`OLVJ*;8) zhC)dJu*~kw`y@i>n<4N83 zcvw1cb)pFAd14eWhkNf-5aO@A7jOMlx6_UESIpSFPf@e_Yp3h)^SL%q6XJkM7gL}n zf(J00%ZDav2V(}Ibvim{&3~))#;vO>2{M**R${H38pnU|J&@{ zhrf;Q-f3D;ts&zx|H)_G5~}Fn8=8tCIy27G5cMg$hp{q`;At9nNCTY~J~Kql0X0Y8 z%c3*~Lmdavi#nNbg2IQu0r-`-S|f@YJf5kns1(nBc2be^<{~`OHdW;C{DzFs8b#va|L=+dEMw9%DdnW6 zCJ5K8vcJ?s!IAS135F2Hf#5Ji!!}31z5A!M`_x+n(Af<|3QABNhd!DQksNo4IfKUlp~v@43%YUV66a`DCbr^xk+wr$nYfz zZ~*a+4LUXAOOb4t34pYd^bmDvlZ>dfVKhuLsFpE<2euLzv6KKw4C3K>b>rWEhW70T z$ze3J;B83c)UPb2d}-OIgHmYTvYNTHvvv;9t>UXp9GRU$&tFGPw0d=qQ7Y6Bzqwj9 z?QeCThBFcbCH49Pl)A)kR0=s?D?dTAQL8E<9eRb7<<7aiMyDQcphbl~Ly8>I;!=;K zV3gA5Lu$rV5B#zzu*`z||WgxzgWCZTu0tu!me3E0x zloI)36(K3!!4rbCd$p7nPw~T>Pj?h#ci-Rs@b*2tE8I^`vD748s6c9xN7^X1y`;rwepjOIOYeviWvNn)!%z3;f|eV|w);YsLM`5)#- zrlv>?!(P|;Mvt(EfK7hvptjR%V8y_x&QsNW8cw?}kgDtlm76z6SQw=CjEECQTmyy5 z4YHN_-g8a4u_)suOaRSFBVm-~h=NjHDR3<6SaSeLiBsg)Isu8MD08LIzJ58)XlGY# zjMKN0crX#w>ZVqm6zv-4Tq2G>0xMotg^Z7ix^W84MHL;B>s--;XEA!#b$Q%AI~|_b zzz#9aU%`^Yco(k7G~~r^8yb>+w3^h-8Al6jss9ZqwGbGPl*f=ZN}k-^{_DZNS&sR* zAs%cwpYjXakA~yR{g3Yd>PHVBdi3B|KN@Z~_s@Fxs~-)9;QmJ+KJe%y)HU|#Xy1MA zx@M`LP$KAji5PoiAwUjR1o*v3ho!IVP$pOr8Neoif4$yb(V){rk`Ln7PnHN;etVe_ zU?16pgU-Ae06q)&>2+nwNWFTKvuuH;f{{vm8sHr-@*r%3_0*TxFcg451qgz8H5Lj2 zo&#`>^g2R?$gD&tA6XAuh3mmR4;#!@+2w1`E5Uz6Ig-6knj;G8p*dm9gYUu^92a># z-}kQIR__}VjO%@4o&gXB2&ZzHG6nC%IqsqeJ*aiyn!V)<7qeJ!8GAltW=%%(?o&@xpEN9JUPF z8Z3$e-$ZUbqJpaNb#6akxx1&CK+fI^A&tdWWmb#Rc|_u{Gkm7&>xfsqJoYl2uR8rDU{rS(ngjpD?fQuYg4Ko zJ(zk{ge79ui~0ESbS7CnLPB)a%y_vtonNx%^UVTUTgr}w=M97G8ch+nQj7w|;P*iw+o3|0)RX>OZ?hGL zCljh+(4oFIX*7FnamMfII*YhZxZD7rEfBPUlqLdYD37Rv(~3&_OO+JL&c9B(!RmV0 z4Z29Z5%6Ksz{0@~aRh*E>>S^$h%7p2 zBTX(=ONRtUM57FZls^%%_p~_2Z#b)Heq(x>!6gQdY%YwRRCa4+3hRNMb+Tw=Wjr>` zTWrq&Sv2?!R!@8fOB^6V>@bPZ<3nJn_eEg&lEQcjKAG6T$M<2y8xF(H8R5wJc z4Mp_CFnO@bJ6?}uWKG{wetIhOs1J(%+3^;kX1{&%g05#j0v20lz%xOK&w zkwl9&^645WX++&=y@5|AjKSrl15%h}K=3;v87lS{h*i0&x}CxJ0P_VS0w$fH?Nr6% zhxlb@kq!ca95Bra6u?SBUmO0*2d9;-!@&G_Pih)Mc-0s7FOeJIac0gl0_Uc~4Nn+4 zPB*U&;gTs6LKp3|xQ~nZnJiuAlkZWmbj_2QJAxx*?JYV50(2Owyn1UcsnxBUd~Osa zDtlnTUUd%9%_QdXI!b;?;65y#<>s$W)kVjSid|}^P3ah* z`72Z;Hh=06>dh!Tw_Uf4iHA5lCPPABd2@X)E50MvQ zP!alXkgA&T05Q_(0r)Qf&Jvz3L49GkMJZl7KRj7~dG*8XM;*l{$f!aa`g)5G!Hujv zhoft37555nI`lUo(}i0&RUY(;Y??}r!x74Oo<iU!}Qi+LjxFqvO6AqKO zZ;=VB%pxHE(>YsYzd}_Ze*m%P2-#uPE73?MT;-_Bk_z-X-vSNFe?^ zyg#aUN$k^hUG*JgIiGdj)C3%uaR2)I|5Q@D`9 zr;mRNE2MW|Z}dspVv!9VLpnd7&SzcjpQ!!NqS&?fXHB)qSl_$1mgn&i7EI zR^OA&cW;X*fb?{CdX*i)2260f07>ZIJMxA8;q{}BHS1$h~E!W%&O*5>2GIBOIe z#H3i-l*kgi#&SW@D88pr_RXd%mlyPa!7X#vhR@Q3z-!yW0^(zL6p;H;FL3u z3{dspa}J{c+FTsl0C!zer7?+gkp?a@GAQRsEwMtO09}<14+3cntqNY<854|SeW|al zmi5Tq9;+-5br+8i%?*Fi$lAbj)D!^*tkNi%4bOxW`%<{2k}TRoGzV^@p&K~GZergX ziSfXIu~Yj_Y#V7!kcC`d?T%q}mqw?AP@WG;a1~)w47i=)u;g4(=A}s#y+Wl_pi$E2 zeCaSUnQbNr>FLZ1*y?+t42!D~c`k)Pn=_Psx170#O?_tFr|*C`3e-fQlv(HL49MRK z60L}zW_AzcYI-FEjDMPQzp-^*Q{%V){OIlR0K5~ zG|X7`z2R_x#HL{ZyQnuR8p&;ZOE{9ex*s2J3bofD@oC2>+P7xexUqMAjQW22c zz>hd*Q|X%@JS0*5hp_}q%m@r0g!S@5E1twoqQzV{7*ln5ZEBs7~|%ohgJ=~7?hyRn{(knYq{ zG+Sg%5Bj%eTbVfo6H0!3bpd(=hrBBHK={qw5YtvQ2I+f=sVFCHPMdnavPVO8VtH8L zeF~z2^V4e4=cV@vG$cIh7aoFX0Uqr8c{6|klPXiiR)UkA>kxf&%uXclwihIQ7vLB*V`Q7_uI@L|%J{-eyAS2y_8CJ*SuB*Sr4kW}|xz z!%Q3bx63o-{(Z{XsEIC>|FA0}MfOG#9U1hzind`jdb^Txb19s2j!Ro!cVdR} zhXEGlmHG+QB?GK8QZ}U3NX28SG6O zoz5DSJ+``)(hp6bQdD7V_a~MVffl0x^j%T8jUx`k=c^yjM{kWe{i$fk5v%X?YmF6dmh|) zkk>9vQCnOJ5=6>T5wj&0PjSLjL2SpB3WApz=(Fc<2f&w|0w^A?Li|s{uAl5yw{DVt z($cS3ATR-F&>Pq}jzke%=Q#K2K|IIO7qDtAFUZi151}t$MAdc!>N9brG|@+WHZZ<_ zL=L;8dXZ-;r1)E2M}h`b=fN$A6BTFz6~aOeZEa*I zG?oJ?3rDZRJG)n1MU5TV7_sG+j@KQYi_6~uy}fp(Fu1pWHe; zM!zM~r$<#yzcbO9qYEHMEEAp`E=-LZ{v$o#@9;VB?RN6C1Xuu1-?F^g*nzE@#JwXq z3mB%w2ze)J^%YeC*g^u-0^Agi8WO@FPYSA!`9Q`^D&>a};6fUZ!BAyrcBc#uGyM;T zJs+p1!rw=UK0JR$pM_nKrQ3{l`_(7i1LSVNqh^KL8#r2mcRy(4Je=9fslvAbR!xb?8Rf4)2r;35|j;&iuXjZk1hZSG3P2@}{r;buT>zl9rk zc1*IPL{9V0VFol51#t5PIRY52FGri3>&YbIpz2mVPk9dqlbX+VW|Z#&sc-fcXgrwU z$axpnMMkq$HoI0zG`k7RpK_vgJOchgD2IWXh6M1i+k|Hg6>v>uH^xzV7{DeA#w1ne z;r-+>BTci|CU1*8%wz(kFy}LB7cB82Fx-Zv^03lhwtKagNq|LMdX`^tq1E^A0(ztB zWjPzyJH(+Wg=!Fb)b3@h3ImGtu>ZwaXnkZ*!w>|zxjB( z`}pC*ou~>D-2!UK=6gZ*tj?;(DyhRNLoXM!oqjAja9z@i1?6W=153Z=wi1FCh2 zjfFyRKIs+Bxi#xa6!Ufp7n?sfS$IxH;#4_AU+cbE6GThm|HWWkNw)1?-Bd+5lX=>c zI9?IZ-me=y9O(4L{1WWtCB&xRlqyuhKzMB^B(vb18=ZPTR4?1baDeJ}ur*^cOj^dI zza&B?DgqB^v5=4hsg5nP8o;C~j&(J188oPhlU|?w64p zgc}12q&;Oz@kw=G1=*+IHLt3gasl(!qrtW$j3^z09-zsEA;-t5_A|^attL)I>>P0g zOqBgcr_afQ!A1y|XV>{uN(xL{{a~OO)q+ZKK=%w~V!y|YyC+*x3_ zr=z->W7(l6h3J6lers^#4Pb2c>K0NPFlWfj)Hvn^Z$+%q9+0U53W&cl|7sE$bD^QnBCs zk@6ph(rY#bQ(Vb505_bVnz@mHjvj6J>6XbMcJ`;HTo5R!#c5>l12*JRLVBoj)PWEk zd~tbsr;Ftc@~T{HM`!R_7@;UYZ`#>xFaYHcErz5jL8DnK%~&=- zGr%6MFsiIWQ*vt1rwUYDy~L-OeFip1Ucl-YWCxxeXC86_9!6LBeu|rB1Zf&g^!Tz{ zAF0;ydQ)LUejZ$T(=otqgl@$&E2aMhsa?{ygyc#K$2A-sFA6_bU2EEY8l=I2 zwhEhy6iV85+!hU$xo`8Qo0z2g;}}IXV<3Ce485N1;_|BEPlG5!1IR87FV)Hb1zMzf z&^H^tK$>DKEOEnXJwA`Ohf$v{y^RrR23U>Pu6 zU;;1|Q0-5#6LAeN6~xtgTBtUj6IDapq~XJU^BhV8!VDLs_6hmoki<;yqdJg>6ov~1 z{_CxfE2xCa+N}*vScEu4v1vsN@y^sxDZqFO3eGy?hhsDAx4fL*A_3aN|^?=Lv z6ZXBHX|d(ju0>XoYzNoB_ zCmR0Ojp`w9{-dTT7Y@EL@DYbn#eqYvS34xXBTUX=yeM;?POQ7mZd7A&Tmur2vrYk zU9)tY4vt8Eq^$>bnoZ#eWh(x-O4AQJ1Wf#2n7qxLPNf^w)A}==&xna?6=6AfxCo06 zA<4hmzTD057G~o0!j*799l8T5Y{}zZnY|<4m-KQvRgMLCWbmy&wY5BnV7Ow3)Z0j zp2F?9jw9Gsva~O5|4spQck$u1%~sT`Vup@LR{PkW@hItulugP;`)l zAN)gPo2FN9>9<;B5d)z!->DYk-sl00NyE_XBi8KF4l#o{91!LpOUx1-vH^EXSZ}nP zYTR~xwge~35Q#uDINk0Kj(r7;09d$?geq5-7{KIS?F-Jq#cZvjoT%fv>m8u-i~YCy zW(b#)b>g9*#vVWK1(wv6c1l_YWIqK!thWd5-x!w~At15<#^d&xg5`X$+q_g2jNp%v zI5wQh!5`!E8Pk=$%FT9EwN>TXRkQc%g5u;o!kjA?QM|Wvs1}-Di9iYCqlJ!4zSM_t zF^~pU`9F`eH0etHVoh?++3|LhkOS}wRNGoyuH4NPJ`Wp$?E;90!y&T|@j=BVR$bab zN|_vZNRB4`@VlNTy4O8SPY`m-0Y;9WWNc0%teiufU$WnvRKYJf@iP0o=~%-;XfFJ& z1P0nrO7)^bn&()@l!=zfuR&lg-H2Qi<14zlOMl)%Y87D0Vs{9eg05gkL#-cxj{z;y z5z`Cz;M>p1$Y~z{kb|MVvG&y``UovxbSR8KK|Rm;v$v;Ru;B=9eI|)!Idk&}-4L76 zm>^G0uOWcD*b-N4!>^6Cwxt*x_TVCD!Z(p1ly=*G(dD2Ow~+wNPOet>Q!_^HCAqlRxy+OQOWm|Hs2 zZBqb0tYgFzDrEQj$Yqz;tF~*_y^s(|C4{wcs}#0KB~4D#0vTS;(JjhJYike~K8M5CH)J`QBfb?d8&fHChce6DO5;VRPQgmX z9cod#wG=Zv%<$O~b5qSVe8BNVE=17#j@Xy+S#l>GI;$Dye7VmX1-A z<;~?|#=&n5!Hf#in@%DP#J%sY?g*RW<@xH((kJTjY) zifZ!GMFA%`$Il`PW(D?!LlkMItS^QQ6=b-tr>DZNbyJjfsA}Y_!BH)-L;9NvI;1PC zKJiie7Vs)*3m!50@T*3jeAQ?~MSaawhF>@H@P_K@n{6oao z7%CJ3P)~y3N@OVbGLrhTPdC^rw-KusJefVb(Wx7nl>ewdXi|R3AoyMwbq*ysTkC!UbEerP3KsLEmne9vWQ4TKBlWI6`nMqM2ps(X)#7u7oe6h zz#&hybe(|Ob1JZ)>9jc#KW4=Z@GE@PA5`5y-vnpbJ*!Ap1V$tm_EK@uH48qp*&1u8rZvO@-|lIKKb2J(iTj3?X(e`oxp zXZeLgtGSdGY~~)$a}O^{YDMk>UdOKGrIw-Mg}spC9%k4)aDOXHjBrAH3E5&0BP&vJ z0dV0ZV@Ap3!22(x{Xx5-*V2QFdI;BUl^sHRWVd{F{$av|qEspFLGhIuZa<4NWvmlrs!?$^5=Vmm5NC%tIgX$7ex zi5Z_|E#Xs_TY${9Tf|&Y7Q(j`?*c`jUOcHH))&jz9iL*=rP+xjd9Lh34|-FZ;@>Ps z`JvKX`FDga8?Q$lrsaa6r;aT}p{05Vm3DR}Z7JoNU6Pwq{voairU7}k%sy1K7HAjI zT}<~hbY$Ij`foW(ay0f2yiZ2nc$<9D9_>(M40B3O;QX^crgAB2;4CCdg5NxGXwkpl;vtyhdoQ5s(Jp^S!)E06Dpiu_lOE1M9 zAl2v-R2BRZLKaU^TcMVLfrW%9$iqPj=D(3XCpYyEitXX>WEQbdvipo9-I*iwkZNlP zQJ|sI_2uY7-l~?426|jzM&CCQJ@sKA=s(XL`w2V%q=EDvZA9PfGJS1?d^gUeWc$>o zB@AoDV0Upkxk&m+yA+a=Qsf-!srL>M$JYpOLK_k(?0%LiDlr`5&!(~!541cTp*5& zGv$g~);(DU+^bJJkgU!_Q5T%)0m&5qoEvQhIt}tnSgl7C-@s0(<<>96hxzZ&L?vJA zgUXDg1ui_X73%~==lbFr!aU>%rwQU z1Yf(uQf@i&dayVLZlA+1fqh%eJKUrGRl6OkA{yC?l9AQx^$Dg1E<8GZ-eH0G0&#<- zZ42dDQNbegPNAU1btsjbQHE})RZpSJ8@B-NWac=&HB!HzLhG-qT=CF@5$pc&gW=cy zz>JajvzRgD&++gv5ALd3QO~&j;KRo}7!LFg%y?MMSeB*y;N+1}DMe|4YTb2=yBsTq z>22W5voy{+rm1q?Np%>TeZ}b}B*QwIsu>0NsgzMpfkljqIRa#iEfEHmbZ9q|WXXhG z%c#AK20MBk>Qmw^xK_cl?euIhzVaKJskt~Jii3kZ(wp0b1Xmczcbu}F`ik##p9O_$ zP=BgOMn}YrXhYVRd-LhjEz&>!{O04EpPu5Ix^8cVDL#XH3hcAgg}X~K>X0zVN4|$; zKqLKFk_(G15#<=zCAF?(J88N1MPL_WBG7G>O6pOP*JcaQym3);1YRYQ&{`cU&><)t z@Jy+wl~bTj|6u<1F0q40`xE%AC1jZq*z(orHBnNJvTH{>o@>5W!yU`0B;LX<6B?v} z;vA`{i~~bKw$%1#@2cVP#?LsC2^mI{lwC|q3VE?9~#ui(r#hYJjB+QaOabG|(m z<+tw%Oxpx3@(5Mxg2&~26Klc1HL+}wu?(u3oB0GQ1V58w0J+DXWCozk)9o7)UXk%4-q?MipOa=yIWV$Y? zVSA2WZZq?A=TK=G>`I?NRWWSd)Q-+faS~U8UTs_*ArG^Y?jM9d+9mYkJ9$IzR&Rd1 zl|xXYZFlk)Ap;7b05*5=r~XDtS2?hRP>`VyQ~;JopqB6i z01t_UG^pVkLumyqZ*5*|_G()&59mz*%}c^D%5f{_Qq`iRQ5vOJ0~9+0D&4&rAc5t~ zG7M{Z2qa!^9ey-(*ocGREm{0!Ndy4mfEiaz%@HTYZ`sk^0sUr04D_`4jYrHm@1Kb?Ffi7MKVR+mq z6b8=&MPc4Bo;hn{UiKpoX+ksI;0)Wws47ng3t7B$7WP< z2_BAV*KiN8$&rPmSdYXCmIJoLNd+?DoXW0*NPr4%keOYGRu(~ji;O4GUD?{$Oqd49 zbhDjtF<9Ti7jpRi8=NP7NgDU z1!_R9!9<{j1=Pw!h)FN9NC6&2Q$%zWO)%EGjflo0TTF4d;j#&###}bH7A_bUsZ~gW zA}4G}%(MN7NNx-bk{F|<4MKak`!w6>)Pt80l;}v7*u@9Pervo(BX;BX_Gox&J$5LL z#bbwp#l`1{i=G1o&nF4;T`H)$bcSjH_`ZxMf%KT^V7jJd_QYhP4J;4rWcUftEc=0f z4D8FcI0|LkLCn`81lGqrO);(#;Q&vKC4=0>rHl*p*7_F5Go?#Nsc?zzAW{gw?g~ir zAg|LmpTA$DxUELxr9_&H5mQAIQMYDens1hh0DH=FU&{jgjP@Aq2$xc_9w?R_99mL^ z9Ic2p3v5?nRmLb#!?&}Wb|~1pjW@hon8ch$A*O-NCiR4=sDkl_+fergs>kHu%!SL^Xa1^Xxuri6ze z_J9cuQF=i;l`mxm)m&8VhJ~!kYB!e0ulUXlA_P&mHcNU`Cb%rebr`=uG+z}k*y=3T z0!GxA{h^JIssX+--lfq{C#tZrNEuJeIkFUL7v!BTa9BZ`v6{~gy~8qgxjst?jB0(B z!dHzykpl|%tH{qoja89kzmEhVW{I0GWFwzWR_i6JGBB5gw;)&pK`qni_49AdVTgqW3j2_;#AqD^H=!!t_qf{?<|=%7U>WOofxVidT;rlUU?zBC;tUiNDNWS?q(KAK=zM- z9;6JS94ASP8=VrIFRqa2=S2$r3N2{lIM3Z$x6sWhVM{YAq0y-uvSt?W*h*W|?A0yY zGWo?o@6GrC`2aW|w!-C$A-dUR4xUjuN8o?tu7k4@0(&7@Uu@xu7XBvCJhC{OOWiGr zI<@P$+B=x9;6u9@!pESBuxfPb1{(H>dcgW10Dy1xY|K?hIp?Y}B+d*NlFmw!3>4=< zsme@<0Pwq%~76;xd8>CACv|~4?5Rv>y>xS>UxkAJ|*U*3KmO>q!t_4sXOyX1I$y0I|Nbkr5S#Ma`qr0_( znM)ir#<#k4Qz%o%?~wS&=%`pTYAk73hGNNuK!6RCXhg=!NU8x}qW~SmxGlil;JGkY zkx}Z(voUDq*_dJ=XF+g>KgSiaix~Euz$Xxa6J>t*r{#rt&mAa7J5K>s*0a%OdyKFz zCfoW(Ce75OIL~i-m@m&bwH=kuy=F}e=eni^^bJhbaB2}QjkPzEKx2#+)JTRCKbj-O z6)_=y7ZL0j*I=?i;u(05PW*&(#L2>A3-=wPR%RHdh`lvcqi*&58m5|#;r^r}tgM06NWgi&a2309s z-LUs8us{xUv;~zs#j$-#K1x)^et^gncU&&LIDpI0U1Lya>Uy`nd3eO`YQ4N?6c7UV zQlyF4Z0;FlZ@cd~K0muhCZ38WV~EEn-QbEvS!j_D zk&sNG`SYjU?DM;KssOAuMG)+GJk!cj&wiSbb4_)n^*20=jk;L_;T1Ut?OJ03lo*NHbbZLq zo1st3EywYF+6><#2A%H-JNXU49ebiq#P}?EWPsPU-bM}!$JI>Fe8v{ZGy>~#Qt=&5y^4IPifPA&4xr$On;L?dZYBVJ5 z;?<6PfSoRr6`&N=@^Iz4R9QI#U!jMnQ@ZjERcCrW7yuxyHFDux?+TTlMW8^(bFkUX z4w?=M&0ak%cIe{br6sh(K1E_XAoubL8-a5d*4{J-%{cH~%@8fSngK6{vfTe{HNR{m zzaZQYJ(ILBz5}!1p9DK`fmi!5wSX|E7w#RB;b+ef`Z_=K7#6K~Xw2rp5hx<~&_iSk zdd#4~!-F24^7t|vN%pMHYBPT5O~|JI(2(`ROAJ-r!@CLD>7iHQIg#KxLs1iO#_NnV z_Ix-U1Rs7Ed~F{dw1%Ir5@p{vp~#uNcMKBRJoFf3b9!iqgrA27F>KK_5s}}MI?9z_!_8qA;m@4f;D?JHJcdS-d5`w95-CL%ME(4sR8LWMqjcbC8J!+ zNOsBdh41|leST;2>BS`Rf;XnTdaxiR@tVp9xI^=VC(7F^6L8pTou(h!~rq1JV<`*%9W;F z5KlHgJZ(3H>>{Aqvmkk3skuf&S3rdU)=WS!x|lJW7Q}n~-N38?7(~2o%6uGM@mCB$ zxV))#Ngn_u=C5*C3_xic}e=qIun}OTwRQ%zJg@PdfrzB^~)Hs-aaT2US6C^m3?lHOnaS8(O;yQhVEHmJ7sl6%nAX-LRZM;vf zPFfpfC%Df-Z*0;W!G#nX?86cgXmsk)#ZhZ|whRl;mMFp1ha#RB4IxS}u0kiwv}wbC zIy@Mh42Flt$HSAO!O6+-?eB*tvk)^VSTG)opG3|GA~l^W4L_9Y5bEIShFZy6qF8!_ zIPgDr=x=uG6L|uokT~=6W~2%O5|6rB$-t5JYgd4}OV5h!g-U?+SW7csqf5gfVFCNO zT%vUMJ>LW%1Zk2hN1wwPW(`cow zk(47@^jhj072<6ZllyMSi$yB2TEcQM-||o*gZ>t^MYvdSFlu$!a)`3P2?_R3N>xB2 z4yIO8r079)H?vN#Vw_u|XcUTtqB6SacUSjmrZ_D48u96duv`fWe4)`HheD^^Hkag1 zJ*x;38w`Ic!DgqmhW^Nxfw@d)1>P}ASOv+dqx(X;82zrRk zQzVppce<43)ri0~Rp9)tEasYbeLuYGO$}&l)~iOVA2eiT`Q^jA zH+OH}nS0QdUahXp@!z%|z#}>L(+0sqa6Omkd}U^bT^4m8-yU$@G6smqmGd_g|0Y+>^xyCQZfIKBO!16<=bWgi5d5)4I4Hhg^*uK$k5R1A*MPM>vVXdYd znyfcxGo#!4Xzq(#E~p&#xa75KqClmrCCFzfV$@*W@sMSkn^y2t1fCpX}sw`=b2 zczO-V%(FoxPOf8sZVZ*MoEn-kV58IC1l|b85)qZ#VQdb<1N{q%a_AGxpC9*>Tb!Ys zp2g%&Jx~TVI0kYn?i1gKpif3xxk#a)E8v^M6EMA4!6rRxno8RJnzFGk6rzx`Vdio| zTx$QFC_xlU9?*uDA~=FPWr3pz%isJ_p~Qdaag_wz3hBiIUmgb$7F5An zZKl8{+CaWmK}XZgF-yO zSM`~y!Syfrn$c`C0p#g>VhXg_n;IU8<4kBzKC0BE^br6@N^Hk+u%pSEDO$T4wdQ-{ z?VKyj1VP@v&}N6GT?+KTse87euw%>;Q_QWWDDCrGny zH1lND>}t#HO@JNzDtfj2f10fOPw>xx{|pT_yi|=_X21w8C-RYcV&oY*4hV6hG0ZL` zz_JL2Q;?ke8Uyqm=iz~3vpASDy%hV6SyC+SDts7D<<&!K5z&AbrPF10bdL%7>Xe8J z$OVR_B}!j|P5`YJ=s<{z3>(9gJS@?#sMKe(sXH(UxnwDk?=T4|oSQY7CdoX&U}PLH z+|(e`15m9=(5Avi2+c&v7{DaUBl(4Tb0Hqf3u_r>>4EQD8LDQ2hJw29R5nooNIa*zp(X&*h45rI($k%_ESAH z2X0We1*NzI-FzY_q7yxg)hV)s5XAUk&(tD<5xGdJ7I15PM{XNI9)2 z1PQz&3r_0=mM*0Ep4L;%B!$l=Bi?>?)!p%iJPWeVcm|&YHxu|jHNP0_kl_ih>frfe z;!4XXZ`z~sjKy~Xqv6q2SNK~&RYuVVR&LPAv+1`{VKmja`!-S$^#>P|R7}B9ta15z zHmDt`fzkak7Nn!MBco;EHvx7|9(nX?g?fg*Zw9FJeUqzeUnrlUcW8ifqG8og|{YtIEISt=Oxd#x6Y3w4eYeM=&VA|Q?SPza8FTwTE3 z*n!oAMYR#{j&xcrxvlEd!WTjXWLHMD4b?Nnf1bGn3 z*urwtc@CTX%oKJ7@0#8F%?*+Wpst01C4DUA7GZiF3xewKy^HQJ@g;}5=m>jUt0U}> zt&T&J7oe~B>znuQZ{HztoP4($zPt<&5@nBJ?##vGR+C}J81%(KbpHw!MVqTotWsyc ze0WqX{sy`;r=}iWN^GCHv=vTcZmz~J!~_`0@k_^-l<0kl5WP$c?W8;877xi5vj~QT z*?D}H_ugjW&cEC{w0<;_^5nu&z?i_Js`({NOH$hUJ)*7Z@pIZ7P`i+jwZoExPKF;1 zA_og;M5%(#Nsuy9T3r3kHAw0O-wZ0ZUN6`1w6ui2%s-XHPd)RSKXRCo4*4S$44R)Q z%G$h#MzC@S2yJoM@+DeB+z``AZULwW|3cP?bdC_!DZlfJ!vim6LOx14SV*}5%P*A4mZ~llRfndQ13<94l!U{g%cF0ULN!oM7QTGX2bvIL7 zL47_rG$fub1+5JcasAwuAj_1`6=3BBuHU}@@!jq2=a0AFz5Vp|gLzmXPe{kHEJcZq zZp|(ewh5d_1xqs9QV{`fZrLuuz`*&tQBs*+f?P$DI;LNc@%sInchg^P-`|bt^m_Yo z`u@#d-dU`D8r1F&gAU@F#wb;%8PJhT%NF9*!1IjfYb_iRfig@pPj1tLpwX$X)%L)H zP^H-pwYjTwsYlY+Su6xgA;8sW1D~cRa^;`BeTR=SR;>s_IIKvQwzBHgdz}^=_ixDu zq5ALS{`<($W;81kYE!gX)P@Xfl!mb zdkD7Ov214%Ly-hxe8#3LwO7*HF~Xc0C1iW*1wNy;6 zN1gDz45+-k2>B}O18Ll%L{3sDyj8qim* znaYWHzfHV(<&=}uH{Zgshk{}(%wPeR?^cWEPJAX}3{-NlvaIfhaJSXWGYLiB$41Lg zW*V^clZ)3o{J-cY2M1@nXd0;dwPi><=VjjJ5a3|&Ind`;K159)jH**lNlqAyQ>Kz~ zcPcwI6hB~(Jpg{+AU%Pnh^EKQyEnhw?l!lmr||yn?VES-JAU*2(@$^jXrpfpDto~N zVC(P6r&4vPmex5mLRMzsaxw2cC9RNY;e3W`awb4t?l6qwPnB2S{01IOSs(K0%irj8sU1uJFl8b0`X|BX& zo++kK6{7_*Azcmzj%U}Y3McTng~rF<`G|0-%AI z%t~+35W=Y%DPt9+|1$ml1fFUc3kCni7|+DL@j?^npzKWfx5xee`6Foi*A<;0uHnjn zBN&KnhzrfmHIYz1jc28|jCdvIyiB5=_0Q%$A~zJzm|jkhqiTEYW8zXHYzNP_Q1ihn zIIo<&{hW1pX7kA_zcpR!UJ|5MO>%pLN;U__Mk`#W5f1E|^$Bvg99W7Wm=OIr&$AhS z_;@?H{mbVcK^4iQY@x4qVS+j4om_CY>2%1y^kW=VkO5EfdYF z+f;X&1|*RS3R|It)dkSBCp%FYbMs{|vfQ`q2}QLX%N2p=pTAzeDh-$&;Lp^aoCZ#r zi*=rVzo=g<<`8FA^-dblV(K01(%wLYWX#bk=%-q~0L@zA#?fRRTPXSJQx6 zOQuJwD?qd7U|Kb5eM1w;3OKWa@NHjpjW!!hy^6?>^w7tLCIOg}A#jLJ zrCkjyyqT;OfILKWpxn4NPz=oq(#;9SNX_Dfi;STgkagFCS06s!=@lb8NR>fD$@KWl zCIRRe<&a3WotTMP&*h~GE>iya*kW+H6XY`>q>W!pxVYbc_&=ypjE-kj&U>px@YISC z;H={wWJ$koI0}cN+n(JX`S$Lgqzsz8{YBchUNyQ<^zw*l&5#OXuVzYp`e=P_s=pBg zrLWO_$Rtrl?2+J9Rq!>_7t6~bEg?Pt?KvS1G5^ikX9d_+} zTYfV7{`g0z8`w9N#Kasmn~Q6%BR%Q<3IRzG?So zzv-G>ehXPwHqgD6ck|Ax)z^u^K#>CKrhoyT0LmD>2Ed7YQ30XO8Fvg2hz7xS zuFv@?x)0)ECT&ips7yr93e0E#(fuCYeb0#S`-WNvf%(So0?6@uK9!KNy;+7&xR-g8 zQ+QHm8Ju$zv{&T_?mPf`Xof*&z-$}DB{jMPJ@l|Wo3^7Gw4t5h4*7wEut`Jw@6fG+ z0ztQ$ypmMcQnwbWRi4AFrh~7eyF#T(=BX2rg4-Lo-ueklN-sVPjLy@;D=<3Hg_`%P z4tTm3;B8)O?zmsv0m%5uI~bZJ58Fq-15OUO!_Sp74ZsmPs2-@m^cvvVWb0?3*m4d4YMvpI*CE5N+>lsE#1g+A4(oP7unK|tIu zW|!u-L2TCPrr&q^LgNiHA?)0WmQo=+7YtLTX4(n8k6f}b^YT95zFIjeAD23{R8e52 znAr4k&^WMlpPf~3cNlH~j*a1j_S~o88EPT8z(!~~D__`dGeZHjR+^PYci4lHk%4PV zP1_Z+3q$OVgrcd{Uks*uaDWm7cqdQ-XdXThzz(kPay)$+KVXx1T3mpC#o%y9$b+ms zQYtjt`w{8f>WJ{>R>yO2w}LikcvM2(_KXaVPgs!)GM0lT=8ME}*G)FTa@^_qMdH67 zF?N6njV}=bZDK(|JUx1>Y!T#)5z{Iq4#Tfzz4}rkT(t>^1y2VZasysk-M(|<^=sG% zl22AI15u+Vju}+~R2%G8mPZ~ySTt!W#B^;8?{Po(;&>n9+Xc(GvZ$DKHLmmuBX4v@ zL%}|Pm0fSESwB9TN)YJ?K zwsH8aPwPlHE?MeS^~tGmyI;5Qbg8}vRT4K{%zfFbTe!C1Q{`&p2IGcR*1I%XsMU2O zaDc02r$(o40H2CFN(dHCHW{1{z7woLRgIn|A)FQdNv9+(a6YLBSo$T(OLB@GrN3wewBB_51613}wXCx8+x_?Ac0o4_D zlzvJ;U)tQMqDd%vZKl`DOSmpz=9E5tQyFVg_i72dcsp*ioD%CDxOZsUZtPRT0Empk z9<1w9MMeGvZ0dJ*-F-x0>#1Ka0LYzsq41=;q!i&pPONReu~Ok=B)O8Qi|LOUT0e!P zXH#6|54UfSL*Hz^p58D*sS_o2^oqknW;Y319mfuv8GZf=E|0~4?f1Ux7=X{4if_pt z-8d6-329IoU7U`f5v5160h)LT9MgKm>po40tdI_M4wA=nWpK>RWXu^q57vna-p<9T zJBl2LG6z#zV8@yX&Rg!J%u2?o9{aIXu~s>rqAS?6(X= zNMOpKSn`vW3L6q1lbj-Vq1YC@Q zo~y!{VGtf&WSY3~ZKPxz29ho$3SVKR)J+l25#K%|Mpt*ISq-vjlM9QPoUM_7w!koyqNdEFQSES#O1RZmQrJy(7R-cU=}!*6JpaM|b5ckSVXz%T9&W5qSRhlkeMSu< zMRcgu)Pw`@^;NICet^sz?K>;vip>Tly&S!8ZXN8E*mdNG#yVt?)AV`Z#35OL6v2=DY6Z`*XQ^r} zcmzZ*<1on;yd099jg;djdzl^_xXzyQN;!WZz7q2JedMha7Q%iwzP>MEHQ&4x z3?RNm+ysyYyt16NunR$eOQO&Xb>;ez+LnqVb!ra!R3@u!!L2l!rdpJFj23F#g2Rnf z3q~C>4ul~!)7w_KFxeTKqHD8P6X3#RrG?vzPhTKScd{Dc=#m4Z+z)nSb5;4N)IEA6 zF~b*{k{8GWjhNsTU)3={Hzwq<8XNg`zZ#Yx7x2pmb9s#=EWODZUG^v);1rv3;CW;W z_eVbAPz%xVr&*J!?$a|vzr`Rxsf!}Se!nCvuuJ28b)j|cl7BnL(#JTIWcf9&gOZU! zGw~-YC-PT4JED6Y_w1b1kjRN=bKguDIY&JgYhY7MI9(%#)&Nye*V14z792sH(*gba zm{Q0%MaW>x?lw~-Ct-abD#E)3ylAj9(bTLm0=wGkk+5( z7+|iNik3a)lTMf~Nr|WriTI3TMiawn22VbI*}c1czfq zk_3_E8bV%ZZHUh3m@7XwbI?htg}2#ZhcYn|#&pZXEZClVFchh#O~Ex?ZRV(3M!(}P z{na;6`(0eDjV7DV9XK|3zJt4lGkUc*9^194YywzkmQbqyQ{xDUNP&w` z!oWpgB{PJZPEMaq-pCdJ9umgg*O$6iY(&^5AYvREPii9kVUZE#8dUnl^fg^IbPVC! z?si0a@d7U4sbthEUF!uDe4yt5*rI0b%O(jw;X&n)*(F9G6=h{dRd6DNvJZb-efZn$ z$I<7z4>xb#-Z>*k|4?K)>C-{HqHFGoDXypYl=ZWe_5ss`91LHM`rOogIy3UpDoPe@ zUm?jE&b4LwOmxixC*5IFG>}e{vpJ*3?MG5>=1U;F>J9|6C4{?w6mynDiq`$3=u5m( zR<=hBrW4-P3OLqIrMdlYZtvt*vif-Y>AN@YZa?;_UZjPp!dss#-1TPuK5YxI-)cH? z1D0I~5P~4WVFU=f-h;Z&@fJ1-Umd&2mV4DPd2A7A~8L+RL)*8mp|si@(cARwfi+6 zoi}94g?0ca@VURZQbUhYvU)O?luW5F;dmxX4HtaUJ~VTdkt4b*F(GX$xx$9syrvx;=4DbgKh=O_o^e3m^sQLsIan>p zWF92y3SaBc%VZYFv1n%RY&33O2!WU`Y;wAV`wuWAide^HMF63)f0YCD3NAE21?!A* za9(dGUFylinM^*8e>y!JbDtgBz#(fC_@Dh7()LMjcY?(Y$I#9NPjB69y`=N0s{wfJmNaaz0OzfVrZR zfZ>~<(y*FYoFOxb@h^CYgr z0%g0q3FS64neIGQP=Z9lGgU@qrW`a)@!h|v=-0e5ibw1WGP2tP^M>-!aa|rx6S-fm zNlXq{lkw?UTm2D-G52e35bTiTV>MobrmQEcrz(gcuNnUZ*0UVI6pqNYfQ@%im~WdxF71m$QmG}n#ryRo1Wc<{k}WVX^! zWkkw{AftZ7o^mUIcEuFougaxXap+wG(k2rgA>*OUX&JDyNbwqY}{>cK;>1*K&XLky9IXj-t5^;(jfQQ(9e z_nDRocq(~D?BEmu4Sph672C`M4K@kUc8ypffedfOpn}unw0sqawvx(P7krED07X0NIJ=6o~Li`E>qfz?IIn& zh;MH6YD2{Bo+H@}%*kYU2MB?cPKjHYN}+a-(gVbFg!RYc=oDY)+=$%CT=(jJXNJZb z0Meq~W>qyW@`Gae3+5IO0=Ln;Gdg>;(ezQLp})|9&zHg{d0R;tE?%&Br*U0S*{BIh z5jHlhMovg%II73FCLsBm0O6B85`xUZrQWJZ5cQj;3|}zi+eCO>dseks{-8$gN1O1Z zC&{w24^#t>`BrNaTC4o&%`Q>WT>5G#DN95^+#EwNG{nP*W<@{-S-oB1ZhF*;=a8I4 zM_J7lDm&(m-kyWgWKBz~ditGoWmOA!md-oj`w~9Bjc43*M>an^_8pPc?6L0{BBO2S z=^pov=U@FDC%D6CHq{4FOcVJ?N?%40EAlslKvhJ9>K7bmg36*zFd2+ZTZ`iy4?1+< zX?g?5B02j6{1mG zX^d&7m*s>d7lPP}V@H_1fQst%5M2AmL;=JmjOk;6dJFEW^qmf)Y2>qi=5wSh-7?A4 zzoMtskm8Pid)E6sHYXnX?4KdiE08p`7;o+NQI?d)LiC& zxhVTmSCL9*^FKbn`FM+TIv?)1Qo`%*Fp`q!lw-67RLIM-Oum?29H{2zI)~_HakhXO zmh8OsI;_qXLD@=!7jb`P)uC1cPY;Xj4%JebxS!;vq3)>P-7&zYP37=<3v~kiaqcWG z1t$SpRN8_(hP+Hx8qMUUe^@k;nQX~P{`=WDG|c&c*t zU^6>>RORx5GlhtIxIou?Q}^kcwG0?OQa%%A`mJwi_v<$9m6Kimed*Y%Zqkf_ym0!H ztsW6MN+cWqo=-Bqn?{s9A6_Xs22yk=gBea07FR3{BV)NAEo>YLLONqL z6~}d7S~NQ5KxqR5zP|;23|T~`(?KCQXOG;qTQ>zfaMbgenMn`n-qfya%9$rXln{;J z^V7AQU&WAM!~S%&p*IbBTb}x2AUAbW333ir<6QH3OnxbL|8%1B@D4pL5iL@S~_w&w5+QU&yp=Yg5 z-9psPAmKSJ3+092i-CNr_415p!PM_J*woKXc1A?S>dnYy>PB}Z=}c4&+6H;-@PiQ$ z)lBX-bZd$n_n1uef@I;l?`}VRGO%>Mu+gPWN({#V^F09BFRw14Ipl9{@Im%`Coc>6 z3Z~O(VZFm_kQ5kx6P8ckgs7e!@n*9Ks1y4`a9V_kd?~0PBzgD(lAT#tJV-S|p}Tx$ zbzCqI40~tzcF}J@hc}9XBW|4$5Y=TG;nrIwzSNN7T4MliymNH}heoiDz~td}r9#Sa z0pQ}Wgt_?<5G#7xEP-TZQM{&Lko2PuQpXwF{AoP~*$IoKq~ucd*;1MUczt4SMscNyihpufB!((@4S9=N_%^Ie3w#}X0%uTD zVZFnbrf&7`-XQZRH0KDye7(DXI`{%fBDIRig5L~kZ1xKC@Tij%ihspnY+T37;2JeW zu9)p&I5<0eg^FZ76Aqg7Q*}SssYX>*fR&?H?C$jfwKNUc`jy@S-d9qUEhWm7iz=3x zCrBP0C=}yPswohW%=Hh04{-I=ivnp*KO19`)MPMf3gU>z9DBeIigDP;WAGazvhhSm z`4pIuCX?R;bDRX9z^79sZJ>}~kdJv7*lw3NpHuv69b{`0Nl^CAs)VX3udx`$Fc=Gr z`e!h9!HWXg1$a=W>X5(3QuOIn503(}TFR$68lS`Q{N{9bc{5U$Z=zrvL2^UL2a!?o z7J(T=pE#PxQ#p5P&joY|21aOkr-t7cRO%v(RE2RnKY!XyfBO0E@6w^D5k7XP?l4`f zwy*VQNQy|SwbeWQx8Q+`hTTn83@Ee_-?u%+B+r(~Y*4AWF;nX{w*q)rLBe2I5%b9e zx}oNTi?BY0n;~UDFNcSTlV5`fANxZTB#y6A*o^ilY}D@Og=zvvxzB&QPbxm^xv-L_ zjR&6R3viGmrA5T4Z(ihH^Fd&0?jNX6WUwJm(FzzvJ}C5nB>TL%;bXBT`g`im8KspO z$E&P>(hsbatjo-50S%pbYE;O%z^L5=i~@KZZqtgbqo4YO%`$f~nEg3Y$DA}dlUAR0 zjbLtE2?YO^NYL!n>)1%s{Q}81EtHps()qlyQ=>c7T^_v%#_dIi#;fQRYKNG31-C&O zGib6?it~Pt8|6BJH8b>nx;wjl??=y2LUikj_}~Btf%w2pQ{pELH-XtR6pjO*T8g4? z&?C@nrx+1tTX7u`?UT?Ebp?pX497mLftd#Ia1_jG>sOk+x~0-fm;(k_j+yvkF89F! zRaJ$y6)RMlwd)=|l1CFv3Z(WI)AiC6$Hle4L23(F=jqXjbn*3Ne=(FFcC1b}qXxZhlENH4AHu%- zJ=GL557U-U-rT*JzyIa-;~l;QM-x77m19t`rX9T{d$)lTfw;La_j_z{3MAzj(Yhft zh(wHKFv8(S4g zmLn~5x-P~5({E?fY4~T@mHIQx)4*ASOE=iVG+M&FE}1rnHdAL@Bjd=xxYcy2HaCyqOo`>a>>*xo7>nJ2qs8R=T<-58|42mSTNfh*5FR-Y3wNs+N z#)?A`bq^~(`TWcye$x5Z?(RMR(VGB5=!@p6>W~mra*qaw7Yk3EansaI31|yRww0^j zz}(q!c-H1hIXFmb|umWQGoMc>?Q*mLBywH)YL;| z`4q^rxdE8)?&7c!8i*XMPanAX`={;O@BZEE?FzvMmNxoXCZ5L~cp6^ptZij~L$O{g z66%>>dSXxD4tYkf_$2n-h`XUL{CiwE!DP&)E=|o}a-P1z^$59L!z#blVO5cWYXlIM z)kz7w>*c7rY&A;vOy~(cRU6HGV}X;%)EW%jxUP)>~EVl3>w&+kx0 z-_LKld=1sLxq*6y%djA#-ENlG3rqQ0TnliV+acG4uNjZMTnr_yOPKyPS5Vb$HbMcq zHfhS6J!VN{fE<>F8BnA)9YD-M;+!~xxX}9zaRMpg05o07>pt7@#7T9A>={#K0+tKo zWCf5@w)CeG!uNJP)ksVvnQP^k(?qc`VyKHqriD8qQxzCK$*|;@I4yS;QvCH-}%xnF#v+>$<8|RjRF_B=8S>)+?BEY)R z_K070CbNo6N?h7uk>tgGYpt@XTPh;VZVZLIm5~Z39T6un8t8`J2yuZu=jrWAQvk96 zZ)`SF3u^AM1mD0EC6a@X3XN#aD7|ntBIsbqqP-j0uGcgV7P*i;@Pj@S7zC3zpo^K2 zc_(hE@0FR6o)Pf`R&9p|MLgsg{M$NS`QU99-|w%ledH=p=}^d!Ceg7LRxGEC6JoxK z0>QKxgY;+#ql_@sLEf&#v?GZWDN}NV`a7r&apwRBSM~wYEH<|T_jdL>Ee5iHBa0lI z{cKcW4n?=W3=|d`kNyCU!!C$n@ZIz~7)LS^Apx_&uc^?QD? zU0B}wh)tfXF&ENQ*+QrvVfmTO7GcrN<0kD%(W~iM;-U!wd35eMxtzmlbZNNjGv*T( zGX%?U4KJ85u~d!PBSMqMXq?SlA>j|NyX@JE(NCYhWR<}aBtSO>ERztyfg7QD@K`yj zR1bI#&eZv^cSI+2nm4IBp7gy0i0Orh&7^CfUdT>fL!Ft0vkE~b+|a04r1?@l9nIHx zA)|H2aMVX;4LE6`({l2L(hUsv{gtv;r;71N0;;Z*-cx+~n@^u0ChmTI^YP73PjA2c z{E;N&mk)2hf0o=0Ol`l8^rv?D+>+u|A~eW?O%Pfd&X4=xC`oG_E<{*zDRmOh?x&;> zOS=a+$p^9TLx9vD!lY}M#reU-9*YLuz8C2>x-LGT(>8A*I#d&dlv*H2$(htI!*BQ$ zRjsBMqu0P{_^$9S6J7*{v``r0%GK3Hr05Ty;%CB(z8(}^HHO$So@Ch4kgR#8`cvp| zmJznihh6vH?2|$6Zesi8_H1UzsM6LHi@j%r=_A7nVJOL;$kk7oB%q>Ka0?HIbA*8B z%I(E#8a>ju(&1`J9a}~yMHZ~0*G}=x)(l=$o$G7(BQPazG`gV666#LZ6#qnof8V27z-n2(1^J>rYr z=(I%_ZG=n3`Hd2cSs52Rlt*tmT5M2~@xdVpWxHY9sX+oJzBqO1wX#~6!NOOpB4LQD z_tg`t2^?KPcTG(_A)%7Tdqnskaz7@m=VJJkrFv zo!TAq&CNuES}lljcz|@afKlWXmsh~2xBvU??ylzyDk&B;%_u7a5LV1midf_oKcvY7zCg?NnWf+^+7x4={%H+Z&wGr=GG`sI! zKShhik?zXf2a+ooV;b%RS8xZxH*Y431wJAxgdIKb(^`EMD%cxkOgw>3eS({5$IeKVtQ;thF)x+!@fhZ8ati}^K?A*Qm<#v7h(}%m;n>YV{`}t=H z(Wwh=zh$Svp0o7BOf$h92}vdQQ_n-yC%&oFA@HjqZlc)esmGv7bHhwDkY)wGb;8x= z54s1GrL2j-&D9;+C{Co37s9mSCp9Wmmim<#V$g*hhP3sP2H-*da?eIpda22xR5l2% zB)um|i%((XR^mEFgs#N%v?xTQ2V;Z%<2jg>5ZQ5>_eCMi==#C!5x{TGVP>kXG;xA9 zLJy2<#Q8r-vQwi`qpgM+y;}-WS1O)3-)6S~PmVol>fi-iWw&<3^fO8!c*A!WoJrNC z!Nf5U+KImqVJgjPN4IXXbwX5S#qiOYCoTCT#)TdcSQ`VP!z`3b2Lbh*Hmz+>0HP@PM^4uMbsQW0MYCM{x}wVqn222C&(P0S*q!a4&%* z_oZ*3ZFq%%K=|k22N@sgH|5Mswafa|VuJ%Y3Dt`<#DxM7QVfhrVAstFP+8lh&J;~^ zq;u)`5ZVXv)VXp~C>p?lhteToLFvSzH6zbxfsY(Y(-+S}!6z46E+x18>%qTyRVIH+ zJX!VWabrBG{cJeFJ@D-QuYNWXwmtCd!2{36=cx2m>w|~;ZcJu$g{@AB4>!nSwA~#S z<&2$q==I|OKGHvLZ8pt$D+$PcuW01J@M@?p8-AOGNE8V~M#3IL${Dd8UZsHb47 zyPpzC`yPA>J_zw_?T1+VqrT^2MJm>{EUD*F&!OeNV=C7C*e7(YE1vM!RmIS*HMQnP z&B6S9JH8`29`zIi+jXslH9zVJAZHzuQ0t@a7qRSkg10~F8Q{h`o}ku8-49(&$Ng%3 z)cv$}bpeF8Kk6BvYF%?cYxpgygwJfUYzke*ZscC!AyVKV3rGPJDV%yr{8T4y=tGvx z933){J;={>M5i!snK_TpkxDAX^dp$u6b4T2IrXL=M#*UnD22?yswWDZ0_N~EpRT@< z=ojD9AD@f!6-Kw~-R68g+d2n;9I)qL9Z40SoHMSVY7_q$tOZ1O8gIM#4)4@-MFG~p z`AUmu!A@TB%DL;))8{kG=m|~0>F1B1?k;ZM|9JP;-SL)n-G8|K_(>ng-Yd)yX+O@k z=ja7N+su#-2_K70N8>SQStD2E5GfK~h=Yci0Hu*ij~0H3wQ8Pbjv^n#pwB9;xHahW z#T~+qMDDQVX@1EhNS8{2n27Gm3Vvb`3s~V5#AfS&2UnkGIz(AyS4{7uibJyDo>mC_n6~p}5@f8RpLSznD88 zVOb&picGt1&XOx#(B86u$NTiv3O1Lg-}Da#z<`2Kq*ENYnu^(u!DLZ~?nQl2wmhRr zVvywFV1ilKbS-EedA5isJcNF*)6Kw_;bKhrkB%qI zU;3nxzoW3lPcAVEiFc8f74kB zRhS?F3K$9xCbY#dpwA`_S#wGb^r<(kCO#y2)q@0)mf=h5Wu>l&B7V^i5f~6d`Bd9} zZ3+KG-BOwz^Q<==wGvDX2MZP<%P`wNNqQ&V3M<6rXmfKt0fMK1%!IZEWt^64xh(B{ zh-S3Dml^OIa_ap3r@J@rzq|eBkM!p5{qDc2nrnFnVl^O6F)JMFyCAnb?edK#XcW`( zMlFnXbqwiXoBIWocuDq}8>g`5Y>XJtCo{BiMbiHnRINzR1v@m-HL9pZ&(_6l!bQLK zh1<-M3!v9fT4AHg2Elf9q-*?GbqP)i4i140PF=;&;nI!@_owC%juM9udOQZ6U_Up2 zvSg0$AKOuK*Zsjs16k{wj4#RHZPFLc^utb0oYVNrMZ)KlPs<9e#T_JUTcT3F(OnY5j!tt&X2a8iH$q$J)fKMBax_)Rx>sp=ZgsWQB5?pxT%xKV;T8#SX z3_jH`nzyy-xmBeOa4n<23q8sa6X*lN>o{Q*&!J_fVKA} zf$i`&Rw4=%!z=-*Gzc%W#KjQ?DQYu@?S6fhYzQ!9Asl+_DN*EKIp(5+@|yFPdwkLP z%l*L2`Kym|Xu$GTF^D`VTuLCx($%I!;GF~Xdh#4vJRFNys3MnfAqRQ_W47!m*Mtlp z#UP4{D&S;zc+0RK)QPFN<+?8~NM%$(h0l!9PIE+pDb5chq0+_IueBTeuK1qey@LAC z7%wh@om*cLpfDce+QMY@jDe^oi8VVopd*zq51a|DCk;v&5fU_tz(i)LKFaOqs!>@#pEt(xvA2|H1O%b^MRU=b*A;ZK=khpnDg$B-HvwG}alM|*i~ zI0n-BpQywmCaE*P&I@6cDW$2UhNuDh2X8y~RW2K_X{~#9{ix?$-`qKt>D0IeAhU_- zM~&10FcwmRHhW;WxQ@;UGpfkLa1VJH{zmfPH&0g_%7FaeP_vuwuLLs59>J*T4vD?~v3}Eo|1RwYf@N-Q`vw3M7l&*9TNE*74Epn(K z6m`6w|6i=Vi*g%BmMyAJLHNWts2O`M0gx0mGwlfy4-yvf5CD>LN8CWjHoL9UveZYS z-0nDi``hnYYww+psshFKv?DB{GPA0(GI#FxBk{2P%)>gnM&}5EGCdZ%Cwc(BUb1?VKZg0^5{N(|H*9q7o=T4d2tL4g@!1jo#A z5W%3)OZo6}_Iq;8%sD;rIKug+i1_a#;=h&@c~o#C$_H3707EWP0(^@M#Y@A=1BK+0 zQI)7g40c3WtL9(Cs@4Ov7<`8!u}7mL@M7%=6rH*O(CLe%QbR#458{XLYQ6xTB#4x^ zES7epJnrMcvE~!`n2}xz`Y}V@(K7C6#b6|_i83`y4#@B#h*Do+duIG`0vd`x+%CV? z>G03)a9*U&C+Rr$_3IgN!bYRb==IyT-@pFhPg+v#=q9y6z+;9msUjAP0k5~R*{i+u z!vUxIm(EHx!e^{UW67?G``?_4$7NO~-mlVcbQhf?^oX|jHN*_)1(og(I4cS4JsU|B zj`HqSZQ5^32|>#7NCW5ECHe=9kPl6-192L?AXW_)o?IfWM#Z&Lud)RJ(Qvs(<`!rC zN#l??D@y`sm}9$&eq7y++_e2@rem^5gk$X(i;WYA(9*9g^4`yqPDAvK$SCd>26`lIUvW?WzkUgJtw zG?i3yNxT~xuH1tt^Dsw}E;TXZ%66GR(vMZ6Qy*e&uV!O}HB4q>&wW6Kj^NIK8FK~2 z{Ny9rfbuO{Ql%{6C9Z>)GUP-K0a!oIN_#$B>O$Em}PjJveYQUoBr?T&qRn zLhr-UFP4~xYAIc*pF6Oef`{3_(=y5wru3k+fzh+IKH54K(Pf{i`kshrgoO3oX3E$` zcQ~!u^hPq=R6C(G*`%mz2l&BThrkjjas5ih*U8o_ zuVstg0_Vdi99VTYT6+6tmopebf6xapj7?@1)(nu4AGVE}#9KwdFeZdx(5*5;W+|BJyG{z;ly3ckosu;ky>`Gz8N8>_k zR_Q4Fz4}rk_{i+pchvUmJMw@Qq4fz8%9)!owg(qjX7C1JsJf#mT761Mh*Nd0g#a;F z0%+C~OqRHsJZ-ac61_UxnglXYL8lHJLxzbKr`ZCfeOW#jX8@SjXdaeS;}k`iH5&3| zcGW5r9CoRd5c}w9ORKtseV8NwZdaN=xoHI7Tv z5>CH)*Ea5=4~h+?z?QZ+wn zV}`XxxAvDQX{h!En=n<0(YVm`Oio)v)LtX}qPRLW5w0#=S{M1YLs~_>x;rsGTEZD# z3)5>8b2fW5O#&t&ScEVb$pR(7I|Vh4wy4sJeTA3KEz_oAG$R`AA;@FV$m*0u!)8yH zjMy4OGnaFSM1!WK0Ec?XG{bK zwgI_eDLJN_+gzWUKT#5sX&6Ywp1rUUbmOLmB;Ls?`hhJw)7VW=zM`m$W0$!uj^Q;} z7_ajAKG3%bM^^7l{!Lz%c5%ZbqzLm|&$i!Pte1GvVcvjeSmzb@iiRd}m+)b)8LxJ~ z4gpqyFNYsSvdcoiaszErfG)4$yyrnZ&Ef8W;6inIFXZ~xU__`qawPWqkt1P8hEg>c z$?dD_g*z{BPqK3t!jgEB6)H~UmQsB{y;WxZ(4~$9S2Jub=1h-B$3pfjy!d08VmPkx z>E#39Knp+kLeNd_`^kI%KY&I)@20>15pdG~+#}#l{NOC$i~qStz(M=LN5CupbB{Rw z%p;EUi2WaW{QpASv_#@mKf6-GLrtm<0l3fxycfV(&4=!>NVou?qTm`LlPt|P?Bb_S zV01!)AjHm}eRs7y8~23N>Na6SX1ruZq!VZdJhavoMZE)UJKlyIgacH0|C_-iMJ zj7ToXI_O`NG6#YyI-ZZ zjVtqd)ZsTZ+`Ne@#eLTUw6^?GX}wRF2|VXauy7zRMz(K|o!F(-w;J$VlW&y8MH1sS(;B&u=zxE7*WsH8=wQoJ=z^+nO@zl*11fH$1f5Zi%y5x&|jh#{<5F( zVq_e1lF${@%-iV0$cLk>!VGz4b;^|Si**(Z!cg*Eb>ESYigbYASg!cdX|d)CP$xeI zjUBm^vecZKHFIZfl4~v2m|Y<8FiK|J@A=!ZJtY;IQ9!;z_1rQG0~*(oR2| zT={CC%+2rd!~Qz!f!skRDTp?=MrjE{zB~tpnZA@O8)xn+k7loK0nbv@Nub`q1mB{O zpkN6V&LPn$KA^bN%t>J^y@C=Q+EgNN zj2v$oUhk*SS~eEIL9w)uw|n)~@bSlalzk7Vj^7IWp0ZE^0ScHSG0teSDVU(boieB4 zIn~L>-h%0Asx*ibqDOBRpg}CU>a#e?!QXie^}RPlZDr!F@$z;Nn2SeDpOaPH&#*vw ze_Ne;nOZ$L`*K_G`o61hAd)BDAVeOiMx+Wey~Jb+Ut&DU>+j}+xOr*y0mFo=K;Bq~ z^Y2!hOOSp4c)v6-57hsRz%C-7UwTKxAGj+V_R{e}G~`9N1Ugw?X8k{}0W|%ga2K%m z@$O=DjNHsM^N#NZT2Gx?Bx;iiS!n<-u4ap-E@_3*A$tl8?;K?C`o6d%VRKz12Bjqk)pJF18TA0 z4&i1kqRvJGPbK9TveBjW<(9)O0e&#@-4u!v`@_bF6(bc! zNPnx)iG~38+$-4@$emsuC=5h~ zULz^2dmC7IA*@1s zlP{KmHZm#unWVariIt7h#|0q@iG*}lWHdFu)EP1vN|N9xl$bV|tE4|n?&9_U%ky&7 z6d;BWAoS=y;Y^OwG)0QZAGtgJ}pfM_n!BYm`v8UP)Tc$1@}Y>ZKh%@7W*hzbCmon0xak z?^Bx%s^6x%V%_za33R1Cmsx>&Y&6`Cu7T>o9~SV=1A+k!BYDA$;eNPNM&T6~zvEJ+ zN-Vb0pUG`tgpOOsO4TP2KhIfrh|ZV4`#WzXSEUdgnUb(kG^XC3tzkIVPLbc&nU*Pt z9@f3$5)Oqg+2%ak`lZOh`eg&ejnT=yf?Dw_a9sw&0?TWL3q9TweKooBx-UHj(`Gm_ zV{k>m(xrf(LM*>@1aShZv6x(8S;EQ5ssUTG+>ndWF{U2gt8~X-eyLRseg-5TA+M&I z^oJg!D)8q=oiINm2@N?HxQaWDaQk1;p^p}fQCR?hQzVS`ipm9kDGahW9hfWUvOP%2;t+Y`{2#qznhBdvyjFn;`S{oXSo&v@sMtO`{16eLDn(%^}(tKGot%Z(sj%_lNf% zes-w_)`t)G@)YdoR;T#pO3bWu6>X7IFZ5L~1V}{)LFIaJHAe=^$>wx-f*4foGJpkL zwF@0x?C_H8gr^2@*=*0*6lM5@fKR3ix)B^Rs{mJe`4lVKJs>-N!!H-&&I~bJu)vZO zx_p&9!^;8sNKA(&=k*0B*m8PEKC-;lDNiaJ1XWsGYu$pwEuhujQ45v*A>=~B`6q`c_(g;qG=>Kr&J4w8#@pdEzT$Q@uM_wdtBPpDM&}bv7hf_3?~ckw z3^?T)O2fRE&rm~tOow#hhM`wvq1s5*jY4lk{GNB4jClff-tcEk{>S0EOx25T;(CWZ4{|xeBPV3<{dol1ph#2`duo5A}2L7P}M_b8=enu{4^j zNY}EtAYr!;JAeK0js)XGoEPp3HtxhsT{!b2Wd9Fh;=99HD4#sL(r)st@NKsz5lnD_ z5_oRykbs-n|9+GGKRGt_37I+&FIw`H&;jWjj(D=d^GQ{>;Y9$``o4k^#So`lewLKb zMFw9ytsLd756%$RB^XeJIF}mGR;RwbWT*#TIz2+LkF_Ve-Mc$5%$D0!RERDKVp~#X z6}P!mJk6mkZUb?{)52+ciROt>Y8YVByWCt~F)c;n8vTAvZ>vUr88=lkx^H5rCHe|83c0v zVl`a%@=rZT2vk^(ruqWu$#Rba`lKp0goEe$1gu&Qk}>aBvXogLTx(07PhGw>O8anM$O6VI$=hG|kj|%OKpX4T=+yJdcNAgK z+OM) zkek6)!tDa(aR6?@v>+SW72{W7`FD^bJt@6SQoo-O1c1)AmjE|AGI1$5)7BFu0aG$q zX||BGhZlqEUchU$ZdZtIxPa~N2FSsZLpSy6`Sc>OZwLRwkOI1-ANItP#g%3ig1}tH zT1cdrjDE+f@x07K0powZSe@yU3+nGU%cwvDG3l=E8Ojk;D!X@O@*WUoWAaEK> zTXsT~n>?Md8un5CNp+7VM%Jn*x7>e84hPvtKD~V_yHinhx&M-fd9ucdxQaL$a4q2C z7$d?t^yzsVrq8;v?@^dUQ_7bkQ`JY>E26uK25vy^S6VrS&GY|2tBI-N+C`^8_9>DR9fgSgK*|5eSebHisZw`J;EPIj|NPDiKHs5zSOF5M`cKz1LtA(P)|{>O7OUa zLUp%TLUYvMB2C-<X8*g zEXG38`mk986zOx%|FFVN-7dQ_y~-cf@E%Wq5g{ra zLSBA`#UPYP{5|iC`)f3G2m?2xnL-wrDty)ao3o7z%1f9g$ohrx%kT~rLz_-D91e$d zX`1HF#^e>2FR-$pxgqTjpr~9+yokn?-Emq+FtH#;v<=S47@wapSNrtJ8QU^I8ZgcHXBV?Sgk=w<$TCM|blKS*Q)&MOO_82rq0-nIAy8sQ^UdPl%{uWb zZnhHYtOw|jOCb!bg-8f^16f_gs%bK5+f2RYoi;J=Ce!0C+cZ8`ZTh^t@W$BH<{!?c?U^uxliaJCowrU6i@}&aqiOi&}T^*KjZc zg!tjY_$lK&@NG1Q6V;HbQ=(?LE*0f``E>w88TybQJ*^sy^GyTBuu>j1FoU2GCk%2B zoykX6G#C5(BQ_UAWQ8xj=|9h}fhv{cB4@G~v@=MTLu0d_>`06}~%xJI72$!DsxfnQe4B_>be2u{VC zDKFEVI_Fx77G+(P8yN7OQ_sdXG<)?8r6_X<4_+Qx*Iw6M8hs6u1<$U_rkX^x}Ye?G`5E$-(O%fBf*(FR$N%!l*1U%QtBA2CB;T}qyT>Y+fzL5S!UNCP`yE4fsE&>4lS7B zLJO-s@@PV;Ze-Dl%q0|(q@2N_QNl^Z#6FYTH^-&H@8lNS_C* z>?)ByGxcM(2>EU}l)#-@R`l`{lXKBlz4l(N+Azy2D#C`l=R6eiPtZdiA9PE^4 z@T4;q!n-tD>>&@q=GIt6`>j_>OvClSb?1%q(CXF$g=)<`48+a-#Gdzx=4gFx!3sET z0tBf6+VRz{1PEOn6M^78y#xBKm(VeM)~hdlPeo*aDWNZM;^(B2Urx1n)fbAGob$#V z6oAx%dh^ygD?>w~_B2=<)3S#G;s{&X zBWRWl`f@EhO^HQ@e!lGLg~6XChSUJ6KNW>-*5D-&Fj^Yg`>IdVq#Kx-LLmc!Bm# z@dE9kPpQNXw1*C**&aHPW_##Cn(d+cXtwv^4jij9fNSh@=s}k}%z;h-(whpyRUO(S zB7?A5+s4AP-OasKpGKS4CIV%E6Pm?^C>KR8mYFPAv1Cyj*?3^YC*c$ z?TNr`Y4nCz1-G4;bpWKvTkQA@6vFWXejj^kzH~rkjMrn6*^DBiax=E_w{#BC%{uMw zn(mRMaV5abULEI33s(@ms!I=({SSs`dH+e(QVef&=C_+0{(Lf?UC#~sSc^RIt(h83 z@&KScVq4eOt8EW$!rzVd(aM%5 zi}1>*GcAcE-7Kc;}a=FdF@|A34l)i`gS@gdsY`j zLLp$m^#abNa9oFnNxB1hP2vtn4t%mn_H;j>Lr$1@8P7wBztxVr0NSa5n4`MVLfzGk zEl5d9z+E4j!U6dL@H;Uv%*)__2s1gMj=*rB3a3~3_6zDj>F+T4C%7uOBoRJ9uLH^^?L}xLC1~bsvlen4Xc6-f=gPvu>>PG~ zP~}{PuQ$w|)kqX4AMz}~{m#$%QTCh~xK9dHLSW<Dz?YDcU;bAEf-J zsYTGKFS7hz+f68CC~?J^grack08;?7oF}$L?mn;U3kRhjzbi;}RjeEvi*akr`nNzspO9 zTz^;B0Nv^6(t=JDXXIEC%2MDX*ughfH<`Ugb{cs>40{K`Q>P|Q)suz>EwuV0^w1J% zR6N2H`-aVAL}eiu5*%wVF-SOaz1`ichP{XSXG>4|Kuh#wEiK~ps!|QP-#RjgB1K5l zA{-u~x}GzmmOBB{hkqB1Lgo-39%1HjWBdgOhi zaMvs9)|HhQ5m``S4X_qRqvP?(gym5U{wXfeWoyxETRGbv|y!QaG-NPMr>08)bxAAk&X8PrBA8 zh$Ucx5@jhF8Yk!1IKW5<6+`tlW{uK3*f>yL2EvzipH(KY766_>}L*$7AA2U>6i@T;LEa9am-!6`gC{T>Yb zm40EK`vso?u-3vx`l-IB6Uf(Emms!EIW2-b;ZODzEcm`r+GApIeb;h)eH9UwV~-(7 z`}(Z4ug4aJs5sYIhd?qJ+|1oKbi73dHl4A{K)!;Sd9RmdQVdziCMzxe{pC>IHj|~6A zert_dnnFuW0;-=_XK<62%C{Q*!KQOWofe!QuGa`zb{J-;gVrL1Qi$ysOIy&jw)VFUqWL5qm^|LFtLt^ zI3SjS*J7LzXAA2-9g+&<07AxGG+IqY24pB1jFZdBJXY0p?g76>j?su<$xc~I}?e3Q!e|&ALg@E>(aCr z!86giyS|1n<7wYgAvW>|3a)J|7*SU4(~Jz_spUcaUt$cmwveu%75<`=cdx&Hdw28W zkLaa9ByTNE6-)o~zZY|uQ4#SE97A`X`u!V&mj*n(-e_UAby)O~s&H%!cL z6cRG?u$lo-jK;D>KAS>R#%Xoey|Pg9AtGG4G|3GKPd2l7CO4NL{8$gB(XK3xog*|e z30?HJs1V*WWJb@p4c)?bg9mh7qynNxvK5t8%@Qk${O-NuSqX>3f z*|O}85(?{X-DX98raCq)VABK zp5l$@@bKJpfAC)--|3nQX?(b)#(w~JLB@fM0v-wH1*W>oe(wZn$f<=W(nSnwvrxO& z*Mu0xDJ>)-7TU&BNoJ{q!xSG`(T_JdomC_i%1q(JX9A)ZSCr+QhmY z2#x@O#z2HwNmO?@uV4g5emP2m>9^rCSirBB4TBnpXrnR2+~l95t3K-WJ!agXsO#rX zYqC0KQF7Uy6)I==uaY+#Lczr77K0!WMV zMSOrZ*)DzS(P;c8f!d3`8eOQ(NrX)Tj`1bGMKh>7r5hxIb3JnUi^6 zYkHalyvzofQbU3fUu3xu4@Z%YmQP>?CYM^NpyqB0&2LdXi{(DQlXp$sOu33(Vq0?M z*b)Pi_T(M`oWmjbEoKCD0!|i-mzug>j5G}(Bl8uYyJ@%}#g0Bb(zk+PX!TB*MhZ*t z3aHq0*v5=#b*zrjdgr3PT|Tpe=6Q8#BJ^&v7CwViA=4Npj7*=LZ?QjhpXOG)scH7C zx@>KjCz?w^HTUkuQk+25P|-}WNnL~Vh>BzZQ3Qffq8#M&fOUcD!OO|nxPRz!9P-5# zvM(UL$lHz$^0QR8Yo~bNc|s`a({XS948M$!Shj3rp1KriDAT|6GOq0Gf8x9cS3wW+ z5-U9S(0GrI(Oj>4V1?+_N{ILXwwZWNHZrE?;)SMeaz(1M2hTk-n?}2?O!+^ATTfCZ zcPizeH-idmCfP6a%4LJ=i#zY#0VhN#!sG7=yK4R72j5eKVm$gi{onAO-|#toX#c?S zEv^~PI~iSTAxCg=Cu6fXn@@UQpuq0er%bUA1!dEz)-on8M@RES4hDdeqwKT_;t%S3 zGhZHwlRbi}+)ke?@DN#@{R_(4;0BMLcp3I!w4mbr3JjOCEEG23>U-aVgW`W07lU8$ zSVVbFDpqb8u>yzIH11!YetCdLFrcM(z~>bF2Zqw!88_h>U+ue5x#~c^(v9R>^0{(b zO=il1yQ=4L|MQ=eccm z8(WB(LtD9?%+HJ+;-^G|R#QjbnC5W*69+91p7ab<`!h7cm4Iaoq^7cW+{j)D&4qtF z@RVXFy`9H!3VrV04`_EvQA5`jvuYS5?lWt24bxspnM6Adn5IgVQFUmj^C_T*Gwfv8 z$;tSUk^(TTXbiqFE7EM2j>sr*8$0r%;HcmU1aWW~ec&D!A&@OaymVw%9l0+8m6TX4 zPOtmyH+nGkme^l>L8GdJ5)k5hU|}ZZhE^O2FN-7;E=BC<&Q2 zwIjSwoLpQ8D8<^r)K1o}>8M@z=_RhcCKtq0m*ssiN{u3k8;kKS!={_n6*qi>?YEcX zL7+`4$3tM!c{9Gbs3wCQXIL+3Qx!qk%SgX_0QNrw5Nxx|MAEe|hVc3dTL#68Ii8B$ z`^*^E-_SXKG9OBYE;xCjf3!!ZzO-D^PC4H9!js485jkb~i8+TA4cbH=HgPB0$%&2_ zg+#jBIXzu8F$r~j=;I}A>m?DCO&9`^JdK2ibxnA;M@@qCC7s$U&z-_L)sAJ_ilsNmjSKB4%#VOX;|82ovU76yAXL z0K5uk3lM3(4c0jtx4VQVGigU=h#-ShONijOCN=qg_1zR8>TX(A9V_=IBbWePz_$h^ zS!Wk?MX)n&sRsDvll@ewtJ@t-%-d;ovCGE)~J2B5V*oB3BDPUp%`xEjl+YTW@aGRM$=4vUnt<3nVu5^ku zJvgwTp?ARLp~eZZs0z4Rj7;gyPG&)nd#DhvRYGej*4q7g55Kwy>0UdZS2ra*PR{h^ zd?F<8zpK7mq-ZDpVIO{{bw#)~^7*aKP?E_*s2RbH7SJco0Eb2q-4A&HQ`|V4Z^AHw zyXS*C;=lyU!} z#Z4~ZSVncOAKh;CB$-(;Fd*cr*9pN0qF5=&wCa4=ct9>dOlvBG1$i8_84O8-;`EC- z{enl92B&73%d4-yQ4%@GQs5o<=tA8H-PN#54H@kT1d8}nmb4d4)3`-eE>xw1A_I~i zi&nSxBB)E91L-8FPD-M6@??AqpMve0wu8-<+#tT1??xuBOvtr#$vd}H0(E894A$1u zQN^WgnAET#_DVxql;f+pEV5HYr#_6UTOyrOOWEwx4crR%jh8N{_^t9Kp)exfUi9_6 zqJ|ts`QV7e-J#GWj>`3FwOk{Q5|>|D-cWfDe72|4v4H8aPjj(ojVjcu;Fd5Pbd0pi z1!A3Avs&Z*#Br4Uh+@H$C>B=kFxvsE7^6sM5@n#1kiwng$S22uP%ZEg?y|MHoJ~u) zu=hY8KNdlTTE>H}^-=;LWufCp)C_wdDy7kjy+Cd%>@Bzju<4MZTbnTgLB+%IXftoi z^VG4*c#3%V-u^D=;%yJfZ*ec@#u$4#p;o813!)#NxZG@zhkzP%oO#pbhH@}nxyDXI zo&O4DVCNX$Vd=|4MRI#PM$OK|PTOM&s~{$60d{7{NT(|d8@!)g?#l~H6-1C$B^`0U zsZZZ2H#Sfh<8`VlVJCt_)*P^2U;$~NP+&7Q2U4pv-}sB#UG;fxbo!Ct=W9|ZiY8t= z)InY}wG1-I>aWk;#TtYMP)`{S>wJFw;7S8$vN4YyN-G636qi~PJrRO}mN+7AOj*ug z32tMH_pCdd<4PqtprNNgp04#8h{^#Kt;aQbOc08?G)~XR1Q^~8q>{C4_P$u{*_JGD zSx6j=n(B*#0*e?})?s9{$D+QzzyI*&`%m|Gu#_Dfyng%UkMHh&>>YsM1EdKr$lXM$ z>VF`4i;lzPDW&hKM+g`iqE@Fcmjy2|87`elGBEkz1nRJccz~uSqq7Cm=cIkHCr#oMcJ(wpal|!fR{Mz<3v>M?priy zzlh~2WSXsZJ3f!RF^a8pe_R+;n}$q7tyEl_HQtsjDybhK>xmaAf?`Uw)2W9fuR)ux z8i*6B21pjB`HP~j7qj?Omjqhf`cMjMECtEf3uWYu3w@v;UC0;QlgO2dY%|`G1cm-{ z;1szUuW)vt=Y@9}&Wza5?d)b!Q=gm#0YU>gK|rm^TnwDDg5S>4awWOULWaVUuI{U^#hID!C$}Kgdht z9WRphm>L^2rqBq|hdhWGCE-(8g+!D#$}myFQ0*tVRBtrwl@jGstU9hx7}1@Fg>o{O z(GkT-zU3|orjl?D&E#?&aXKxA632~pe`hECO73#7+oH0cpwQfb2bDK4jz72cS0>H( z$PL%zd6VFex4RQi&d&}N-$3Avyq|TeUT2O2Ol1bI73X`3Y4jJ9hzVO=WAl~>ut617 z95rQW0(SFkO;n2(7ykwMoP}h_6G1Tvr-25uUEt!*e!dk<5)7bJ(7}9mzQ2Tub<-oq z-2&>`Dc+4@UKo(*{s@5&%({-c3W4XtZ`dk)6a%!n+-8)T!pWG7$-il8?^N8&^^lg7 z6mMH&FO!j@1ccF)$X?$b=n zr3pk3A5F<#rfW-H1~FK?xpbWl$-Q4`AH11$}WO|<2@3)s^C+6DkoljyEo|DwRb7mjt5CbvYjDB zSnzP$v-2xFUBAiCnYR_KU&nlr4x-!E4@nvKCXuJ%)%+D<)|@OyI`ga$gWt1>bcMmC zFRrWeQ8Mi4%21heZXQ)P=)1~J-IAC9Rh%tN9NthsCdVpxp2*tFD4y=np`akN829xz z%uUD}faXTrC;wCnlOqE`EO9lPPoUiDnscJBxi^87os}F^%H7C z7=S#VF_eEa0Tan{xLuCm#EwK8xDHbqtJ;}r36(IhepDo_)`*qYT&Z;l57EU2CAG>6 ztpZPI7Y|}K$|eueH(u6jK!YEzBrfr(sZU^ojjO6}4Oq8D+lj&WwwJCS;zaF0$z7$X z-l)3tV8eKUn`%cE~>ya5#mp=;~_nD)e6&reG5^0sx4bGr5PLsq&$v zilPyAJq$c5-z_)yfNQ2J7(typ%T{CO${Nt>A+AVO{Od$OGZH(PjZ z?eWkes)6`uSrAI+De##c0HUuBDJ-RY@cqPO63>Jnz|CfNK*nM6>;3f2-P<3(ntj}$ zc-tM_1n_(G8r2f~_xYzk{Ne5cFXWt1-KNSwN!7N+=5Rfb;jwB1xXZEf;GlR*eXF!| z)s4#Hn{G=Js&A9%S=|OSRJ^U6J8BrESt(Auy6;@~A=CtMjZ$WqQr52|YMS~&qQ)62 z+(-{f8Vv9Y?9C(_UW*dgTUUH;N%2sVp=1aPf`=YK6OIOSA;@8b=-I7Tvq+bEoPkw3 zODU;At3?wt6LptEQuOGxoCyNZAX;33PBc~i&0gJN^RQsRhpntXzW={WW{_b1>u>%T zmR3nVlp{<^l^KaBn9y5(77k_VRbS5~0>^-e=ln&#&SXgR74r$+c*OdQaDX=D*|je|cyANIK1YQJD&@IQna%RLZ3{`4M&q2c_k0|#mV{Twu-Ej$iLFFMoGTJ`~FoXGJ)Q8t|| z_ehk@t|#Ns3z0i~BUB;Kib@yNYIUNZQv=bJjI<>ZOnFnvgCfO8acpMqKHk56_ro1& z!?5?|?|Od^;)7U=#e}}=Pj0SgB00P0ku!@6e=TX47Cc+0_sS;7{V9?c$^zU+e%Bag z#yP3%UVC}PP?!B$VR1zby;vPf)IGvrgb3p7$6uy*ukSy7xSPFub02aqj!KFeVMG9UFio4A z8c;4viU+C^_hxQvbV`x}mQR*{C5ziJYt#r_Nr+BmmJCdSIi-et8(nUd%^WqJ7?HE< zeKe~b%db-HR^~9Ja<04<{ovU}wkl35ArU8MB?lrtKe4BYeXAH8q*8}B>% zjrSe@#{0sv@E`rYXTR}%r|CXLk#UnG7RxS<9X9)TY;3ynz2Q)6gHz{aD20o=TH~%J zQw+nqAV?$6ER;!SZMAHpQ&=xRn~Y?WE2;Z5oIINQMQ*0DeWoj&3uD)azESF{@N579 zP^9-`Vv$Vz$u(h^2s5E|ki))b(kS2?DndxN#D z5B0D90Hwg2%%tfse znx|RLfVF3fIv0M`p`r59<{DsWMmMuaIKXC0cMTm+Rr&Yd;7Vv(z{nHn89EM&Vr#ie zFJZKpSgjk(s1khY9-EOYoL5UkR4>jq_-ovwvyNu}EPIPDrraX#wr1V!t5c_LFma`s zyQB~GMCPO-cgdkbsj;PS6r>+F&%STJW!S6pMxfq&>5$uSuZ?Q-;;9NX!sN4x29D6& zg{mrtoTSAl>gjbj<92kcFzdw8a?Bw~dKRh};84UZ!&+h(hcz8M;4t|y0 z&dc3Ss~scYrVdR9Bvf@@*LVNt)7{7Wi@SGF6x_f6fJGo1MqOI&YA|EnH#%b$stWKY zOy8uuF2e!5)ygO#IVICgjhba?ua1)PMMWJj-`ObTNH8xn@f316bZpS*H!g*g9l9j` zdxA9(W18F0l(WlSu3*B(Y8XPGd`bHku$43sVw22vRCQ_j#7I+8MQ&Iq$i!?5m)W(j z1$Vs2iYAVtxYiiAx!|o=-Knw>G{-KzGz)xZKit3h1#H&xm%9(+4{v_4icX*_Nf=B$ z4T(=CH#vdTZ?yp&1co^_!almunPzZFh4JPRhiUre-J6d;DUw0K=S3qW4Qx4= zsbJ)JNuG|Zu-Pi76rljr$F<31C|87RpO3V3R#lcWqelq;8cI*mV%!pHG!Y?S2*kuX zwP?Y$afCW#94bPrC^FIuyJaD&ky7Unt&CPnt`mLeh;&8JgUq4dI1TP$cJ_&3e<@`$ zbemLEs~RYWwbUh>Al;0X$lmfTQ6FiGleFh!Imx+6_;Bn&86&G?5~Qhi0PPy}e%bld=Uw0y$Jq zIkDnkI;NsxUcK6i$mw(l%rf77|JVDwAKrg@cdwH^K*k{dE^Nte1G~|N>T#Rwu75-~ zlZ`3B!8E`UFS*fq2wtXWMeFro1GrhKM$}*!%Ed$2CFR^M3wT0Rm?7edX@wvp(t#U> zOw4{YW9Em(=XDOzH%c997g|>sc zSzK!+{Ih68rsz}NP{q1*{fHQSQuNIHUXalOmEE6!B>&TF0@V7U; zUrVL@o*{Z{Km@a|EGA$$YFKS`>n5RZ_vjvY=h2$QM$Szq8Mm6#;eLwHAIM2sS7mpKpP$H{aeGbP)+Snga}i`6nC9 z6eFJB2^>q18hVGRGzJ13u@Z;}B4qM4VEy3H1ha)+iYr<$EEOO>_tS@u_g8oC{&@e> zuK#TN;q|+Zu+4oGQ`=Y#bkn1f%RwlU)FX8l6db1Z3I#{Hg5n|%3o~m{%Iq0tL=OOy zAs-pQ^-)|9awAk8s%Uxo;b-O<6o|$rb`KMf6zWh?S~%3ef&tNxMAm4m*t2ihLG?6p zyhPP<`LG>)efX-s8un49JpW2w8^o76W$z_4I`&M8e3x4oYC=^gNb{AmBwK{_DK>I+ zxt&d&IPy#rG%wc6>(%J;*uB%>T5kVE!Zd6a+zFJ35Iktf!;Ih@0@&!GEzW^=T;P|0uGK1#CvdVS%;PWxq|rs2 z#+G0{fh}LqK#|PO&HB~FbOgk)aVnXv?QBV>vKpx> z(W_jqtiD0;P&ftglWy~VeE4j5dVGpMgTwyO-Pa+H7cP4#`Jw3pdeA`_d?H)()%(A!-v1@?!XK>eKD_z! zPi0Dh-qYXx&JU|)6!6TIO!aIDayuXKv}c(FiqW1huOI`f-PXpIvux`0F41ziVk{iu9@j{I)moMUIOjGN8`E(&`kvgaE@}F!#?U z5(A$y99$gz`m6k*?EB#BaM`1$t^gFJI_QZCZ#M)T74A+9R|gm|V1O=!j294C(Z~#Q z5~{npSO2Yyhsm$sE_EJ4^rM9t2rn)v3C3?2q4d+enNTQ9C$4WPx}C&^v54kTyHPF% za8zu%1~hxMG*m8cH%MrJB$%a=t8CZ6z}H*z@Ri1bva-y?@cy&vB9yjnU}AD>E1h+A z7o>mCPnmWdF}X>URUnbP^7t!@xOKahi>hrrdo)487+VEA8VD(gF~NSxf7$cV9<2!M?g?Bn_kt$5=09PKuj596Fs>rH#O@USWlRGszE62nv zh3;_*S1(m)Dw=SR2;kXS-iP+`mv#0VxI{qWz`!nDYSjVMD1vt&V`)K&)EvfEs_GaP zL)WFj+*6k4hRus2&uhdJv1Hn0Je9wjj;y(?u08Fz*d~gHAmc-di2M_kcW|oIWckT@WkO$Q$kb2xFFCMC#6pjG z+;1u}Pfd}+rC32wx|-aWRkLi+Dw{tfbSR#OQ8oyLg~AEq;B0--{|f)0klVrk&AIJ% z5CS(}VUO9*s=fTHfZ8)uls@?4)5q8M*t>r@{Hpgau=xMW;0s{{FKR0;3v&)6sN;A>vO^;nlKvOwBx==g^??Y^P8tJKq4XUC06drS1kqiLSg;ObEt zlLfCVXB0GrXE!vs=OJasZueE$mG1@@MiHR6E%%iVAjh}w(N7gInS1jScH!!9W8t(r zr9??pOvK64p>*JSsIw`OK~V?N5C)%zz$9zI^8A7H&=d7)vrHY$(_|)W0Mlf5DnZXe z=Qggf?jFLhg-xj`%66PpbwTwhB(k7KjHAtFRmrV2wF01aa>M78@MqFG86Oya* z5RJ=gxe}x+^&1msW%5=klLz>;T$e&{$P5gt!D#5&IaJw72?H9vf@;TOKm$7vBEKS5 z=$~|$_~pXhu=?}MjXjVg}&{9lB^h-oYFe=dgXx50@;l%&8( zR|*gwB0$&~clkk)g%31JtW10i^Bh#QFChZM(-R1?@MOtdwqWu=9p6lmr}rA_w9PGI zPeXu8s5N2%fK17M4U$PzSNfn@x*nP|g;ae|I6@Y;3Y~!^8Fz@hj}0Jb_G*6A>Pky7 z>{CzCE1t=$O zZ$^j<*7>lfPd>dfr`E_BKn57>cM61Zr=ZF{uU=ma>Jl!&Kbo4I1dw6ni1fCN8}wjv zL}7THWq3TmxooulZdF`k{g_Ds2dyFK_p-FyJpgxJ;}F0gAC3tpMw}YX&vm*JEnaJc zzJ`F>EH0~MlnF^Uo=xE}-^!yacVXyz28TL?@RA^3hyYoUu`#tWTWDl3UpT$aE*2)CxChbUgj~n_uk6Z!Q4`$W;hk-R5#27rVMC!}|)* z4OK=_I!>oA5*Z5Wc>vu0qG~*Jn{!n!vJMX9 z(}7TvCp`ruZdPdnjr}Qt43pEAqC@qpoR21t(J-72=W+! z0o(u7CtEi3(DCGvv)H=%(I>wyK{mVt2znbB}xJQ1MY;dZ;;ImL?i!1 zVw=iw6+o;hW-=bSXr9#-N@>!U&;4V0Dc`;)qVR4_9&I)c8JpFuCCXgN?ezvaVG?Ni z{NPGEC9+2kFZck-C%}?3R3t-bd6WN2=nFfB=#3fk>up?{#dLN7J|wPF$|Oj%a7l>N zT=+f&>@a(hc}`pAb-M{`DQ!c?BeH`PJ;1Y^rYn6TkOkC2;PK!q6h25flF)qD2wukS{0|1^8Yx$#su zW6(813(Di`m>9Jk#2LsEAbFWU0jPruNY3cdp=B?V-h?LeMF|y_yqW zt1Og7#(W|R38u}C6}ST=t4K~RRui!}usk+2M~wQpgsU#JeT}n{3W??8(?0@v4p{}f zuXGFug{Gbi+7vGfN=_Jb*itP=W73dmaHz{btG#jr+2*XF+56}{&(10`dwjmG-ryh% zOvd;e@Y%M@3iXdHDKve+qFH(1H2SnNIw3gX$dS@d=baZ?ORlslT1@~F;xFS4K?P}a z)3Zudvh(1sST+uvq%l=(^^+XWr4Buom@l?I6} zS?H1L5Ae7d3?b#1xJlHmCXw!vwC!l9qXs%fi1A6BAt@kFiuapj1BMX-MMr#>Y$=v3 zr#f1I1y0{jUBBv+R{|FvjB<+&qF+Mp)9MDxz&-bPX!jD8tej+=*GafIaY9MZt~O;O2w88bmIaT4IssA)${1l_)M&JcUri=RI=Wqd zx4T8Pyvo4~nsQ)A>P8p3ng?D$8vy}Tq(VOOkjr0l_2(#uS*#OrL!pKm#IaiuFtrTv;^r<4E4AssQ z=VN7R9wLV_X<*f_nK)yCZvw297dk42u&HZQ@hJ zHYP>5uPogoGDU!%9P!7$A!eL6Drg+RYz%cbQ;U$%+MC?`QoId{K9-$#hx#VZ$NWpg zZ1@rkd@)%s<@HD6#ejEFb~8Zb6v^!H_<*`!hq^GdTkfT@K}%iHBP%b}hfKYX9`y(R zbW#*qmSpThZYhMm%qNgPw(I596%{$|?a5jl#*?r@8uXEZN5&a!US^kE7eT8&L7V`= zgS6LIC%y6-lFEtP*l7zw%D>w&T9R=n8nj+KF)Rx)8Xcj|A2EsySMni(C1p+rPJ+L) zXXZrY9d-uY-(rBlCQHESPydXojA zW{A$}Q(rUZ*OHZjLq4mbn zF3+#PY$2?gm?vKgq{tExOcrODEfxp#lL8J%hC(1O=_I#d&HL?)vRgsJXKuFAZbm_^%?LsSHg$5_3wBO6y%O_TSItZEV#Zkoe z1lYRXfqT^&BH&d|uJFkCmUfeEOhdzHX*%$+P7+81N+FDCI^Z@QTng2sp!Nn7MpKu) zU*5lcegEd|odn53Z#zJep56&?HpKER1)2S(ht7U`Dm&Dblt+51rj#`_oDtZ@ zz@x{o2{_6<7RpTwC4DTXFca7}45-Hw3EkX6_YJCYJF~RV+u?u zE3u@OV>*Xum26gmpD3hZIy*ucY&Xso`Prz(IoIQ!Y1D%oMBJdLB)!Y}Jq|AjS|7XY z(V{3l!wh+vul?qRiWFM%CGrZ8#|OY=`g2KV4eq(vjATBkhv^hk5?l5o&Ab^M@g5#~L&}Inen8O(WWmQ}g2Ah})1L>f z2Qe1;)P{LD1KOSu__oF57KUwvF&{ORA2M4=mjguXXDC!07RJ|q#9_g{bVTv#tPt$2 zXwP1^mC9qp2Ag4DzA&nmQ^PkIz}zP=z-zdvKn{dt9D6t`6Gow6l*z`N!14tc9v`2~ zJGzNB9=oGTrW4Qj{B3qVQvAl_Z}dVlzu``MWxC(Vr>R9~$}v635GT|SSEV;Wv$*)! z^giV31|0N{61&miUJDX~VD_e)zq29_jJItAb3@*e64_MRpL8WGY9$p|mtZrw*&1EP zaJ$q99x+%RQ1=djgvLP8)??RG*Peskfqxw%{0(olB7ijxhrFd8m3AvamrbIC^0s58-^k|ooG+1@i{)Z_*@Mrwel3Y6W(LBhZ+_LK!6vpd zxBmJZY%LRW5vid;|?8P>`F(AU&Z8kgfE)t>owp zhw_da^kAcU%!m*5|K{>~%TzH=3mdHhSfU+J921!>62Li|sz=X;k37JeM!5Azui+0F=}NB)@c|nR6DFPt`61qK6i_mJPeKAq`3s&OrxbzyYyc) zQoAs4Nfww(IFfBImsjJYd{5@{X1_iu2N%IshR5rJ`pjEo+5qeVgZ3MTP`U%}DprPH z&jk8<2=y1CV}(sQ_+g6VVw^3sA4hZ8itTUr>m|V!(VE-6z2J+yQ#TOMl$TImQ?)D% zfAh>`H2spC59wf%_GumT1j)g8>;}r7?dS|40XU)9Z1XdznVSd4G!@ycj5-#F&BK)( zKwuCoCCX->7DNvGpbG`x=JOZi;}o*`AM!xLkc<+WvjxAkhlH^AZ+<}9+qZAt-BsUwHYUTx+3=%vmDDDtgd?MI z#Gi)bXj&5Bc$nS5*wMHW(1VRn>rB?2*{ZeXDTt$L`m*iJE#a_yeRgj@4XvAg>| z`M>y``6CzSz5k~-9DGvFb2ZC)$wIG~oreNz=`r$OG?G;th5O*Jq8&ERq{5?5!T+G0 zP<0=Wgci}7Z1rPYs3*+pHW+}y4;P0+kWQPMZ247i8lf)t=(vyv@pQXLL8VOoto%hb z0D3R=;!!iYi60smCgZrlVY)OxgkXZ3!0UoLAD@k3iy$XeH)&)%l?OVur36YI5xa*QCOh$aNbTG3ceyV0$Ele5V42UiA* z-Z7xC2(MpZJ%G4@X`V^3bm}g**(_WP$*(>B+-o}q80<7W5;B4#WM&_w{^9q+khz5g zaIulxY~MYH1lCIp7nzP;lbK)!Sk5+bA}Y9b0yp(;>Pm+JNcns)YucnaHhO#^z{(=S z1OKu7jc}BXBnbZZ>PnV51v)T+f06%Hmx6PrhfoDUxbz%RL-I+`@xo7Ok9NsM{LfTO zWK^sI_=a`jkX_n!_0IEj_3PV9w%sjySR3cz4gJ6k)&hBp+F`U5X2xz*4bgLbDVo}Q zdQKw}M97P%4p^7IuHlJX4VT_1l_}AgSA9$`;l%s!D#&t@5s3SUC~xaX6K=M*YhJjf zS2!RA%mtp{9EiKKH+yx9D1)@|18U>D(*;!hx=j=2H*Rh>Ei@oUA$Dje(W?0tTEJ+; zy^Mu$yLxbburlCI#=F1#fVAYh`<|(yA=1Dge1VE@nYL zP%=8q`a5k$`lzRqL?*(^Kh?Y5%_1-itlqpc5=;gS4zEn#`Ko_@Jq4iP2i%!Z+z+1J zv8!?V_760`LT*LYfx6gkSk~0;cHJBEE|z_|AxT^f{ZSRYwQrDZ2l*03L?9qy-DX*G zmxk}oQ0D9kZtBt^Dr&IEk;Oz%Oh^*(UjvBYgaC!E%j)As8}pyfRRh4jX`G@xpp*jN zpD^7TS!at1cDm%s6wHN{c5iYjo$`IRotqC3SK$xM>2{!ruv9-z>^$#JIY6HnZvTBk zT`8&ayQ)sxX`m3wPUD5kNz^j6w7A&DQi}_Rx@PvH8))X}M!Pma7wIukDN|ILNQ!5S zMeta(;OZRKc%*`Z3s{*V!X!(NN}#+4CBk+&hd6aMdU=gfw5V^A0BBG}aP;=HYjXlw z(a2SpUL{Q>JEVK?Q6D8JI?M5d^Ue8m20Ie))ohyp3S3gco2Ckqpqr{YnIV%)4iQoQ zX&@%)Zsv!g+5&J6n=sd`M!I#M!FzT#CvA|yMb)NJ+-bXm=I44Mc1Z-HtCxPwT#NIw zEjHpi&{Jdz0grwVKNMM(FJP|e8XhFZ#jwwhH#GyqpOQy|-U<}`5$7btrDQB@Nl#fH zwAr92cxZ!oq5aQn`S{Hr-`u}``!HW#4Z@sX@`2rYtY#OFpYaIiF9uWqG_ExrigrM( zlZD0Q*-!N}&!-Skbzq5WsM^3yEG-2TMg>6)I_-Xe4^_(07f+UQMzpJmUpj`vQ-#uI z5eAeSG(RVUiYl;7P^_QO%RHGHZ9BHF0N2nE^N%rGxg!GX5cz6YHJu+ogES{RRE;e~^ zvdeL#v$YHL@u0L7hP|k5{D-O>k7_b8S z{4i}|C%>K9gI`b)JU|U72 z!12K@Oh9qxE4Z3k%NSC;v^G7UdU< z?I8*N;p*jR+bBL696M1R9qBG&GU{({!KiC=(Xfz&DR~*D0f1SQTqDD0exi&Q&4(SU zbs}tFWLpp?jg@J5z_!C9IUL+2lQ{6{IB$p@81+{hpt{OT-|E)OiOViuzx~7L z&u{M&IwRbZ-?;hl$2ac>^Y*PMxneaKI`ft3TE3{7oB$!$0L^yOR+ODRnk zT11;nkYv`mV3U2&a0ReM(C>U^98z1`+3u7jTS{HjLdghBM9clF;KGQ+iFB2UlP9;S z+?>vxtTI+W0bD;_Y7LD;G0aeWP+*{5KAK%N&QK}7&WP~&ixE=pC7IJzNv&=zN$k7l zF0J;q*z>M#LtYT}8L$+P=Px5D!Te-hw)Q}VOceM$G27<09ul#P!Pc+w+(3Nz^%d07 zf{*On!}YKxI{}uk0YM(z-?-3v3JMy;VqAM(bPv%KDxzv?lV^n2wnFgPZ>OZ9o7zsw z6{z}*;Q3N<(&*B}3gJ&B?IDZ4n3z4DqRsi3^3wU6`^Bf9zsJ$#BfJgnM&=jfxS1

        EKDgc^@g&+9z$=aDPUMDf$x9QMNe!ta9wIxC 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 literal 0 HcmV?d00001 diff --git a/Debug/POWER_SWITCH.list b/Debug/POWER_SWITCH.list new file mode 100644 index 0000000..4007ff5 --- /dev/null +++ b/Debug/POWER_SWITCH.list @@ -0,0 +1,18217 @@ + +POWER_SWITCH.elf: file format elf32-littlearm + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .isr_vector 000001d8 08000000 08000000 00001000 2**0 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00006b5c 080001d8 080001d8 000011d8 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 00000040 08006d34 08006d34 00007d34 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .ARM.extab 00000000 08006d74 08006d74 0000800c 2**0 + CONTENTS, READONLY + 4 .ARM 00000008 08006d74 08006d74 00007d74 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 5 .preinit_array 00000000 08006d7c 08006d7c 0000800c 2**0 + CONTENTS, ALLOC, LOAD, DATA + 6 .init_array 00000004 08006d7c 08006d7c 00007d7c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 7 .fini_array 00000004 08006d80 08006d80 00007d80 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 8 .data 0000000c 20000000 08006d84 00008000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 9 .bss 00000238 2000000c 08006d90 0000800c 2**2 + ALLOC + 10 ._user_heap_stack 00000604 20000244 08006d90 00008244 2**0 + ALLOC + 11 .ARM.attributes 00000030 00000000 00000000 0000800c 2**0 + CONTENTS, READONLY + 12 .debug_info 00016fd6 00000000 00000000 0000803c 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 13 .debug_abbrev 00002a58 00000000 00000000 0001f012 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 14 .debug_aranges 00001490 00000000 00000000 00021a70 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 15 .debug_rnglists 00001012 00000000 00000000 00022f00 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 16 .debug_macro 0001f9ca 00000000 00000000 00023f12 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 17 .debug_line 0001664c 00000000 00000000 000438dc 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 18 .debug_str 000d7e8e 00000000 00000000 00059f28 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 19 .comment 00000043 00000000 00000000 00131db6 2**0 + CONTENTS, READONLY + 20 .debug_frame 0000595c 00000000 00000000 00131dfc 2**2 + CONTENTS, READONLY, DEBUGGING, OCTETS + 21 .debug_line_str 0000006d 00000000 00000000 00137758 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + +Disassembly of section .text: + +080001d8 <__do_global_dtors_aux>: + 80001d8: b510 push {r4, lr} + 80001da: 4c05 ldr r4, [pc, #20] @ (80001f0 <__do_global_dtors_aux+0x18>) + 80001dc: 7823 ldrb r3, [r4, #0] + 80001de: b933 cbnz r3, 80001ee <__do_global_dtors_aux+0x16> + 80001e0: 4b04 ldr r3, [pc, #16] @ (80001f4 <__do_global_dtors_aux+0x1c>) + 80001e2: b113 cbz r3, 80001ea <__do_global_dtors_aux+0x12> + 80001e4: 4804 ldr r0, [pc, #16] @ (80001f8 <__do_global_dtors_aux+0x20>) + 80001e6: f3af 8000 nop.w + 80001ea: 2301 movs r3, #1 + 80001ec: 7023 strb r3, [r4, #0] + 80001ee: bd10 pop {r4, pc} + 80001f0: 2000000c .word 0x2000000c + 80001f4: 00000000 .word 0x00000000 + 80001f8: 08006d1c .word 0x08006d1c + +080001fc : + 80001fc: b508 push {r3, lr} + 80001fe: 4b03 ldr r3, [pc, #12] @ (800020c ) + 8000200: b11b cbz r3, 800020a + 8000202: 4903 ldr r1, [pc, #12] @ (8000210 ) + 8000204: 4803 ldr r0, [pc, #12] @ (8000214 ) + 8000206: f3af 8000 nop.w + 800020a: bd08 pop {r3, pc} + 800020c: 00000000 .word 0x00000000 + 8000210: 20000010 .word 0x20000010 + 8000214: 08006d1c .word 0x08006d1c + +08000218 <__aeabi_uldivmod>: + 8000218: b953 cbnz r3, 8000230 <__aeabi_uldivmod+0x18> + 800021a: b94a cbnz r2, 8000230 <__aeabi_uldivmod+0x18> + 800021c: 2900 cmp r1, #0 + 800021e: bf08 it eq + 8000220: 2800 cmpeq r0, #0 + 8000222: bf1c itt ne + 8000224: f04f 31ff movne.w r1, #4294967295 + 8000228: f04f 30ff movne.w r0, #4294967295 + 800022c: f000 b988 b.w 8000540 <__aeabi_idiv0> + 8000230: f1ad 0c08 sub.w ip, sp, #8 + 8000234: e96d ce04 strd ip, lr, [sp, #-16]! + 8000238: f000 f806 bl 8000248 <__udivmoddi4> + 800023c: f8dd e004 ldr.w lr, [sp, #4] + 8000240: e9dd 2302 ldrd r2, r3, [sp, #8] + 8000244: b004 add sp, #16 + 8000246: 4770 bx lr + +08000248 <__udivmoddi4>: + 8000248: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 800024c: 9d08 ldr r5, [sp, #32] + 800024e: 468e mov lr, r1 + 8000250: 4604 mov r4, r0 + 8000252: 4688 mov r8, r1 + 8000254: 2b00 cmp r3, #0 + 8000256: d14a bne.n 80002ee <__udivmoddi4+0xa6> + 8000258: 428a cmp r2, r1 + 800025a: 4617 mov r7, r2 + 800025c: d962 bls.n 8000324 <__udivmoddi4+0xdc> + 800025e: fab2 f682 clz r6, r2 + 8000262: b14e cbz r6, 8000278 <__udivmoddi4+0x30> + 8000264: f1c6 0320 rsb r3, r6, #32 + 8000268: fa01 f806 lsl.w r8, r1, r6 + 800026c: fa20 f303 lsr.w r3, r0, r3 + 8000270: 40b7 lsls r7, r6 + 8000272: ea43 0808 orr.w r8, r3, r8 + 8000276: 40b4 lsls r4, r6 + 8000278: ea4f 4e17 mov.w lr, r7, lsr #16 + 800027c: fa1f fc87 uxth.w ip, r7 + 8000280: fbb8 f1fe udiv r1, r8, lr + 8000284: 0c23 lsrs r3, r4, #16 + 8000286: fb0e 8811 mls r8, lr, r1, r8 + 800028a: ea43 4308 orr.w r3, r3, r8, lsl #16 + 800028e: fb01 f20c mul.w r2, r1, ip + 8000292: 429a cmp r2, r3 + 8000294: d909 bls.n 80002aa <__udivmoddi4+0x62> + 8000296: 18fb adds r3, r7, r3 + 8000298: f101 30ff add.w r0, r1, #4294967295 + 800029c: f080 80ea bcs.w 8000474 <__udivmoddi4+0x22c> + 80002a0: 429a cmp r2, r3 + 80002a2: f240 80e7 bls.w 8000474 <__udivmoddi4+0x22c> + 80002a6: 3902 subs r1, #2 + 80002a8: 443b add r3, r7 + 80002aa: 1a9a subs r2, r3, r2 + 80002ac: b2a3 uxth r3, r4 + 80002ae: fbb2 f0fe udiv r0, r2, lr + 80002b2: fb0e 2210 mls r2, lr, r0, r2 + 80002b6: ea43 4302 orr.w r3, r3, r2, lsl #16 + 80002ba: fb00 fc0c mul.w ip, r0, ip + 80002be: 459c cmp ip, r3 + 80002c0: d909 bls.n 80002d6 <__udivmoddi4+0x8e> + 80002c2: 18fb adds r3, r7, r3 + 80002c4: f100 32ff add.w r2, r0, #4294967295 + 80002c8: f080 80d6 bcs.w 8000478 <__udivmoddi4+0x230> + 80002cc: 459c cmp ip, r3 + 80002ce: f240 80d3 bls.w 8000478 <__udivmoddi4+0x230> + 80002d2: 443b add r3, r7 + 80002d4: 3802 subs r0, #2 + 80002d6: ea40 4001 orr.w r0, r0, r1, lsl #16 + 80002da: eba3 030c sub.w r3, r3, ip + 80002de: 2100 movs r1, #0 + 80002e0: b11d cbz r5, 80002ea <__udivmoddi4+0xa2> + 80002e2: 40f3 lsrs r3, r6 + 80002e4: 2200 movs r2, #0 + 80002e6: e9c5 3200 strd r3, r2, [r5] + 80002ea: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 80002ee: 428b cmp r3, r1 + 80002f0: d905 bls.n 80002fe <__udivmoddi4+0xb6> + 80002f2: b10d cbz r5, 80002f8 <__udivmoddi4+0xb0> + 80002f4: e9c5 0100 strd r0, r1, [r5] + 80002f8: 2100 movs r1, #0 + 80002fa: 4608 mov r0, r1 + 80002fc: e7f5 b.n 80002ea <__udivmoddi4+0xa2> + 80002fe: fab3 f183 clz r1, r3 + 8000302: 2900 cmp r1, #0 + 8000304: d146 bne.n 8000394 <__udivmoddi4+0x14c> + 8000306: 4573 cmp r3, lr + 8000308: d302 bcc.n 8000310 <__udivmoddi4+0xc8> + 800030a: 4282 cmp r2, r0 + 800030c: f200 8105 bhi.w 800051a <__udivmoddi4+0x2d2> + 8000310: 1a84 subs r4, r0, r2 + 8000312: eb6e 0203 sbc.w r2, lr, r3 + 8000316: 2001 movs r0, #1 + 8000318: 4690 mov r8, r2 + 800031a: 2d00 cmp r5, #0 + 800031c: d0e5 beq.n 80002ea <__udivmoddi4+0xa2> + 800031e: e9c5 4800 strd r4, r8, [r5] + 8000322: e7e2 b.n 80002ea <__udivmoddi4+0xa2> + 8000324: 2a00 cmp r2, #0 + 8000326: f000 8090 beq.w 800044a <__udivmoddi4+0x202> + 800032a: fab2 f682 clz r6, r2 + 800032e: 2e00 cmp r6, #0 + 8000330: f040 80a4 bne.w 800047c <__udivmoddi4+0x234> + 8000334: 1a8a subs r2, r1, r2 + 8000336: 0c03 lsrs r3, r0, #16 + 8000338: ea4f 4e17 mov.w lr, r7, lsr #16 + 800033c: b280 uxth r0, r0 + 800033e: b2bc uxth r4, r7 + 8000340: 2101 movs r1, #1 + 8000342: fbb2 fcfe udiv ip, r2, lr + 8000346: fb0e 221c mls r2, lr, ip, r2 + 800034a: ea43 4302 orr.w r3, r3, r2, lsl #16 + 800034e: fb04 f20c mul.w r2, r4, ip + 8000352: 429a cmp r2, r3 + 8000354: d907 bls.n 8000366 <__udivmoddi4+0x11e> + 8000356: 18fb adds r3, r7, r3 + 8000358: f10c 38ff add.w r8, ip, #4294967295 + 800035c: d202 bcs.n 8000364 <__udivmoddi4+0x11c> + 800035e: 429a cmp r2, r3 + 8000360: f200 80e0 bhi.w 8000524 <__udivmoddi4+0x2dc> + 8000364: 46c4 mov ip, r8 + 8000366: 1a9b subs r3, r3, r2 + 8000368: fbb3 f2fe udiv r2, r3, lr + 800036c: fb0e 3312 mls r3, lr, r2, r3 + 8000370: ea40 4303 orr.w r3, r0, r3, lsl #16 + 8000374: fb02 f404 mul.w r4, r2, r4 + 8000378: 429c cmp r4, r3 + 800037a: d907 bls.n 800038c <__udivmoddi4+0x144> + 800037c: 18fb adds r3, r7, r3 + 800037e: f102 30ff add.w r0, r2, #4294967295 + 8000382: d202 bcs.n 800038a <__udivmoddi4+0x142> + 8000384: 429c cmp r4, r3 + 8000386: f200 80ca bhi.w 800051e <__udivmoddi4+0x2d6> + 800038a: 4602 mov r2, r0 + 800038c: 1b1b subs r3, r3, r4 + 800038e: ea42 400c orr.w r0, r2, ip, lsl #16 + 8000392: e7a5 b.n 80002e0 <__udivmoddi4+0x98> + 8000394: f1c1 0620 rsb r6, r1, #32 + 8000398: 408b lsls r3, r1 + 800039a: fa22 f706 lsr.w r7, r2, r6 + 800039e: 431f orrs r7, r3 + 80003a0: fa0e f401 lsl.w r4, lr, r1 + 80003a4: fa20 f306 lsr.w r3, r0, r6 + 80003a8: fa2e fe06 lsr.w lr, lr, r6 + 80003ac: ea4f 4917 mov.w r9, r7, lsr #16 + 80003b0: 4323 orrs r3, r4 + 80003b2: fa00 f801 lsl.w r8, r0, r1 + 80003b6: fa1f fc87 uxth.w ip, r7 + 80003ba: fbbe f0f9 udiv r0, lr, r9 + 80003be: 0c1c lsrs r4, r3, #16 + 80003c0: fb09 ee10 mls lr, r9, r0, lr + 80003c4: ea44 440e orr.w r4, r4, lr, lsl #16 + 80003c8: fb00 fe0c mul.w lr, r0, ip + 80003cc: 45a6 cmp lr, r4 + 80003ce: fa02 f201 lsl.w r2, r2, r1 + 80003d2: d909 bls.n 80003e8 <__udivmoddi4+0x1a0> + 80003d4: 193c adds r4, r7, r4 + 80003d6: f100 3aff add.w sl, r0, #4294967295 + 80003da: f080 809c bcs.w 8000516 <__udivmoddi4+0x2ce> + 80003de: 45a6 cmp lr, r4 + 80003e0: f240 8099 bls.w 8000516 <__udivmoddi4+0x2ce> + 80003e4: 3802 subs r0, #2 + 80003e6: 443c add r4, r7 + 80003e8: eba4 040e sub.w r4, r4, lr + 80003ec: fa1f fe83 uxth.w lr, r3 + 80003f0: fbb4 f3f9 udiv r3, r4, r9 + 80003f4: fb09 4413 mls r4, r9, r3, r4 + 80003f8: ea4e 4404 orr.w r4, lr, r4, lsl #16 + 80003fc: fb03 fc0c mul.w ip, r3, ip + 8000400: 45a4 cmp ip, r4 + 8000402: d908 bls.n 8000416 <__udivmoddi4+0x1ce> + 8000404: 193c adds r4, r7, r4 + 8000406: f103 3eff add.w lr, r3, #4294967295 + 800040a: f080 8082 bcs.w 8000512 <__udivmoddi4+0x2ca> + 800040e: 45a4 cmp ip, r4 + 8000410: d97f bls.n 8000512 <__udivmoddi4+0x2ca> + 8000412: 3b02 subs r3, #2 + 8000414: 443c add r4, r7 + 8000416: ea43 4000 orr.w r0, r3, r0, lsl #16 + 800041a: eba4 040c sub.w r4, r4, ip + 800041e: fba0 ec02 umull lr, ip, r0, r2 + 8000422: 4564 cmp r4, ip + 8000424: 4673 mov r3, lr + 8000426: 46e1 mov r9, ip + 8000428: d362 bcc.n 80004f0 <__udivmoddi4+0x2a8> + 800042a: d05f beq.n 80004ec <__udivmoddi4+0x2a4> + 800042c: b15d cbz r5, 8000446 <__udivmoddi4+0x1fe> + 800042e: ebb8 0203 subs.w r2, r8, r3 + 8000432: eb64 0409 sbc.w r4, r4, r9 + 8000436: fa04 f606 lsl.w r6, r4, r6 + 800043a: fa22 f301 lsr.w r3, r2, r1 + 800043e: 431e orrs r6, r3 + 8000440: 40cc lsrs r4, r1 + 8000442: e9c5 6400 strd r6, r4, [r5] + 8000446: 2100 movs r1, #0 + 8000448: e74f b.n 80002ea <__udivmoddi4+0xa2> + 800044a: fbb1 fcf2 udiv ip, r1, r2 + 800044e: 0c01 lsrs r1, r0, #16 + 8000450: ea41 410e orr.w r1, r1, lr, lsl #16 + 8000454: b280 uxth r0, r0 + 8000456: ea40 4201 orr.w r2, r0, r1, lsl #16 + 800045a: 463b mov r3, r7 + 800045c: 4638 mov r0, r7 + 800045e: 463c mov r4, r7 + 8000460: 46b8 mov r8, r7 + 8000462: 46be mov lr, r7 + 8000464: 2620 movs r6, #32 + 8000466: fbb1 f1f7 udiv r1, r1, r7 + 800046a: eba2 0208 sub.w r2, r2, r8 + 800046e: ea41 410c orr.w r1, r1, ip, lsl #16 + 8000472: e766 b.n 8000342 <__udivmoddi4+0xfa> + 8000474: 4601 mov r1, r0 + 8000476: e718 b.n 80002aa <__udivmoddi4+0x62> + 8000478: 4610 mov r0, r2 + 800047a: e72c b.n 80002d6 <__udivmoddi4+0x8e> + 800047c: f1c6 0220 rsb r2, r6, #32 + 8000480: fa2e f302 lsr.w r3, lr, r2 + 8000484: 40b7 lsls r7, r6 + 8000486: 40b1 lsls r1, r6 + 8000488: fa20 f202 lsr.w r2, r0, r2 + 800048c: ea4f 4e17 mov.w lr, r7, lsr #16 + 8000490: 430a orrs r2, r1 + 8000492: fbb3 f8fe udiv r8, r3, lr + 8000496: b2bc uxth r4, r7 + 8000498: fb0e 3318 mls r3, lr, r8, r3 + 800049c: 0c11 lsrs r1, r2, #16 + 800049e: ea41 4103 orr.w r1, r1, r3, lsl #16 + 80004a2: fb08 f904 mul.w r9, r8, r4 + 80004a6: 40b0 lsls r0, r6 + 80004a8: 4589 cmp r9, r1 + 80004aa: ea4f 4310 mov.w r3, r0, lsr #16 + 80004ae: b280 uxth r0, r0 + 80004b0: d93e bls.n 8000530 <__udivmoddi4+0x2e8> + 80004b2: 1879 adds r1, r7, r1 + 80004b4: f108 3cff add.w ip, r8, #4294967295 + 80004b8: d201 bcs.n 80004be <__udivmoddi4+0x276> + 80004ba: 4589 cmp r9, r1 + 80004bc: d81f bhi.n 80004fe <__udivmoddi4+0x2b6> + 80004be: eba1 0109 sub.w r1, r1, r9 + 80004c2: fbb1 f9fe udiv r9, r1, lr + 80004c6: fb09 f804 mul.w r8, r9, r4 + 80004ca: fb0e 1119 mls r1, lr, r9, r1 + 80004ce: b292 uxth r2, r2 + 80004d0: ea42 4201 orr.w r2, r2, r1, lsl #16 + 80004d4: 4542 cmp r2, r8 + 80004d6: d229 bcs.n 800052c <__udivmoddi4+0x2e4> + 80004d8: 18ba adds r2, r7, r2 + 80004da: f109 31ff add.w r1, r9, #4294967295 + 80004de: d2c4 bcs.n 800046a <__udivmoddi4+0x222> + 80004e0: 4542 cmp r2, r8 + 80004e2: d2c2 bcs.n 800046a <__udivmoddi4+0x222> + 80004e4: f1a9 0102 sub.w r1, r9, #2 + 80004e8: 443a add r2, r7 + 80004ea: e7be b.n 800046a <__udivmoddi4+0x222> + 80004ec: 45f0 cmp r8, lr + 80004ee: d29d bcs.n 800042c <__udivmoddi4+0x1e4> + 80004f0: ebbe 0302 subs.w r3, lr, r2 + 80004f4: eb6c 0c07 sbc.w ip, ip, r7 + 80004f8: 3801 subs r0, #1 + 80004fa: 46e1 mov r9, ip + 80004fc: e796 b.n 800042c <__udivmoddi4+0x1e4> + 80004fe: eba7 0909 sub.w r9, r7, r9 + 8000502: 4449 add r1, r9 + 8000504: f1a8 0c02 sub.w ip, r8, #2 + 8000508: fbb1 f9fe udiv r9, r1, lr + 800050c: fb09 f804 mul.w r8, r9, r4 + 8000510: e7db b.n 80004ca <__udivmoddi4+0x282> + 8000512: 4673 mov r3, lr + 8000514: e77f b.n 8000416 <__udivmoddi4+0x1ce> + 8000516: 4650 mov r0, sl + 8000518: e766 b.n 80003e8 <__udivmoddi4+0x1a0> + 800051a: 4608 mov r0, r1 + 800051c: e6fd b.n 800031a <__udivmoddi4+0xd2> + 800051e: 443b add r3, r7 + 8000520: 3a02 subs r2, #2 + 8000522: e733 b.n 800038c <__udivmoddi4+0x144> + 8000524: f1ac 0c02 sub.w ip, ip, #2 + 8000528: 443b add r3, r7 + 800052a: e71c b.n 8000366 <__udivmoddi4+0x11e> + 800052c: 4649 mov r1, r9 + 800052e: e79c b.n 800046a <__udivmoddi4+0x222> + 8000530: eba1 0109 sub.w r1, r1, r9 + 8000534: 46c4 mov ip, r8 + 8000536: fbb1 f9fe udiv r9, r1, lr + 800053a: fb09 f804 mul.w r8, r9, r4 + 800053e: e7c4 b.n 80004ca <__udivmoddi4+0x282> + +08000540 <__aeabi_idiv0>: + 8000540: 4770 bx lr + 8000542: bf00 nop + +08000544

        : +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 8000544: b580 push {r7, lr} + 8000546: af00 add r7, sp, #0 + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 8000548: f000 fdfd bl 8001146 + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 800054c: f000 f886 bl 800065c + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 8000550: f000 fa58 bl 8000a04 + MX_USART2_UART_Init(); + 8000554: f000 fa0a bl 800096c + MX_ADC2_Init(); + 8000558: f000 f944 bl 80007e4 + MX_TIM2_Init(); + 800055c: f000 f9b8 bl 80008d0 + MX_ADC1_Init(); + 8000560: f000 f8c8 bl 80006f4 + /* USER CODE BEGIN 2 */ + + /*Configure GPIO pin output Level */ + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + 8000564: 2200 movs r2, #0 + 8000566: f44f 7180 mov.w r1, #256 @ 0x100 + 800056a: 4830 ldr r0, [pc, #192] @ (800062c ) + 800056c: f002 fdde bl 800312c + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + 8000570: 2200 movs r2, #0 + 8000572: f44f 5180 mov.w r1, #4096 @ 0x1000 + 8000576: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 800057a: f002 fdd7 bl 800312c + + /* Setup UART interrupts */ + /* Make sure UART Rx counters and flags are reset */ + rx_counter = 0x00; + 800057e: 4b2c ldr r3, [pc, #176] @ (8000630 ) + 8000580: 2200 movs r2, #0 + 8000582: 701a strb r2, [r3, #0] + rx_len = 0x00; + 8000584: 4b2b ldr r3, [pc, #172] @ (8000634 ) + 8000586: 2200 movs r2, #0 + 8000588: 701a strb r2, [r3, #0] + rx_len_counter = 0x00; + 800058a: 4b2b ldr r3, [pc, #172] @ (8000638 ) + 800058c: 2200 movs r2, #0 + 800058e: 701a strb r2, [r3, #0] + adc_task_flag = 0x00; + 8000590: 4b2a ldr r3, [pc, #168] @ (800063c ) + 8000592: 2200 movs r2, #0 + 8000594: 701a strb r2, [r3, #0] + uart_tx_flag = 0x00; + 8000596: 4b2a ldr r3, [pc, #168] @ (8000640 ) + 8000598: 2200 movs r2, #0 + 800059a: 701a strb r2, [r3, #0] + + HAL_UART_Receive_IT(&huart2, rx_hold_buffer, 1); + 800059c: 2201 movs r2, #1 + 800059e: 4929 ldr r1, [pc, #164] @ (8000644 ) + 80005a0: 4829 ldr r0, [pc, #164] @ (8000648 ) + 80005a2: f004 fb5d bl 8004c60 + + /* Get real VDDA value */ + vdd_ref = get_actual_vdda(&hadc1); + 80005a6: 4829 ldr r0, [pc, #164] @ (800064c ) + 80005a8: f000 fa84 bl 8000ab4 + 80005ac: 4603 mov r3, r0 + 80005ae: 4a28 ldr r2, [pc, #160] @ (8000650 ) + 80005b0: 6013 str r3, [r2, #0] + + tx_buffer[0] = vdd_ref >> 24; + 80005b2: 4b27 ldr r3, [pc, #156] @ (8000650 ) + 80005b4: 681b ldr r3, [r3, #0] + 80005b6: 0e1b lsrs r3, r3, #24 + 80005b8: b2da uxtb r2, r3 + 80005ba: 4b26 ldr r3, [pc, #152] @ (8000654 ) + 80005bc: 701a strb r2, [r3, #0] + tx_buffer[1] = vdd_ref >> 16; + 80005be: 4b24 ldr r3, [pc, #144] @ (8000650 ) + 80005c0: 681b ldr r3, [r3, #0] + 80005c2: 0c1b lsrs r3, r3, #16 + 80005c4: b2da uxtb r2, r3 + 80005c6: 4b23 ldr r3, [pc, #140] @ (8000654 ) + 80005c8: 705a strb r2, [r3, #1] + tx_buffer[2] = vdd_ref >> 8; + 80005ca: 4b21 ldr r3, [pc, #132] @ (8000650 ) + 80005cc: 681b ldr r3, [r3, #0] + 80005ce: 0a1b lsrs r3, r3, #8 + 80005d0: b2da uxtb r2, r3 + 80005d2: 4b20 ldr r3, [pc, #128] @ (8000654 ) + 80005d4: 709a strb r2, [r3, #2] + tx_buffer[3] = vdd_ref; + 80005d6: 4b1e ldr r3, [pc, #120] @ (8000650 ) + 80005d8: 681b ldr r3, [r3, #0] + 80005da: b2da uxtb r2, r3 + 80005dc: 4b1d ldr r3, [pc, #116] @ (8000654 ) + 80005de: 70da strb r2, [r3, #3] + tx_len = 4; + 80005e0: 4b1d ldr r3, [pc, #116] @ (8000658 ) + 80005e2: 2204 movs r2, #4 + 80005e4: 701a strb r2, [r3, #0] + + HAL_UART_Transmit(&huart2, tx_buffer, tx_len, HAL_MAX_DELAY); + 80005e6: 4b1c ldr r3, [pc, #112] @ (8000658 ) + 80005e8: 781b ldrb r3, [r3, #0] + 80005ea: 461a mov r2, r3 + 80005ec: f04f 33ff mov.w r3, #4294967295 + 80005f0: 4918 ldr r1, [pc, #96] @ (8000654 ) + 80005f2: 4815 ldr r0, [pc, #84] @ (8000648 ) + 80005f4: f004 faa6 bl 8004b44 + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + if (adc_task_flag == 0xff) + 80005f8: 4b10 ldr r3, [pc, #64] @ (800063c ) + 80005fa: 781b ldrb r3, [r3, #0] + 80005fc: 2bff cmp r3, #255 @ 0xff + 80005fe: d104 bne.n 800060a + { + adc_task_flag = 0x00; + 8000600: 4b0e ldr r3, [pc, #56] @ (800063c ) + 8000602: 2200 movs r2, #0 + 8000604: 701a strb r2, [r3, #0] + adc_task(); + 8000606: f000 fa83 bl 8000b10 + } + + if (uart_tx_flag == 0xff) + 800060a: 4b0d ldr r3, [pc, #52] @ (8000640 ) + 800060c: 781b ldrb r3, [r3, #0] + 800060e: 2bff cmp r3, #255 @ 0xff + 8000610: d1f2 bne.n 80005f8 + { + uart_tx_flag = 0x00; + 8000612: 4b0b ldr r3, [pc, #44] @ (8000640 ) + 8000614: 2200 movs r2, #0 + 8000616: 701a strb r2, [r3, #0] + HAL_UART_Transmit(&huart2, tx_buffer, tx_len, HAL_MAX_DELAY); + 8000618: 4b0f ldr r3, [pc, #60] @ (8000658 ) + 800061a: 781b ldrb r3, [r3, #0] + 800061c: 461a mov r2, r3 + 800061e: f04f 33ff mov.w r3, #4294967295 + 8000622: 490c ldr r1, [pc, #48] @ (8000654 ) + 8000624: 4808 ldr r0, [pc, #32] @ (8000648 ) + 8000626: f004 fa8d bl 8004b44 + if (adc_task_flag == 0xff) + 800062a: e7e5 b.n 80005f8 + 800062c: 48000400 .word 0x48000400 + 8000630: 20000225 .word 0x20000225 + 8000634: 20000226 .word 0x20000226 + 8000638: 20000227 .word 0x20000227 + 800063c: 20000230 .word 0x20000230 + 8000640: 20000231 .word 0x20000231 + 8000644: 200001e0 .word 0x200001e0 + 8000648: 2000014c .word 0x2000014c + 800064c: 20000028 .word 0x20000028 + 8000650: 20000238 .word 0x20000238 + 8000654: 20000204 .word 0x20000204 + 8000658: 20000224 .word 0x20000224 + +0800065c : +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 800065c: b580 push {r7, lr} + 800065e: b094 sub sp, #80 @ 0x50 + 8000660: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 8000662: f107 0318 add.w r3, r7, #24 + 8000666: 2238 movs r2, #56 @ 0x38 + 8000668: 2100 movs r1, #0 + 800066a: 4618 mov r0, r3 + 800066c: f006 fb2a bl 8006cc4 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 8000670: 1d3b adds r3, r7, #4 + 8000672: 2200 movs r2, #0 + 8000674: 601a str r2, [r3, #0] + 8000676: 605a str r2, [r3, #4] + 8000678: 609a str r2, [r3, #8] + 800067a: 60da str r2, [r3, #12] + 800067c: 611a str r2, [r3, #16] + + /** Configure the main internal regulator output voltage + */ + HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1); + 800067e: f44f 7000 mov.w r0, #512 @ 0x200 + 8000682: f002 fd6b bl 800315c + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 8000686: 2302 movs r3, #2 + 8000688: 61bb str r3, [r7, #24] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 800068a: f44f 7380 mov.w r3, #256 @ 0x100 + 800068e: 627b str r3, [r7, #36] @ 0x24 + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 8000690: 2340 movs r3, #64 @ 0x40 + 8000692: 62bb str r3, [r7, #40] @ 0x28 + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 8000694: 2302 movs r3, #2 + 8000696: 637b str r3, [r7, #52] @ 0x34 + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + 8000698: 2302 movs r3, #2 + 800069a: 63bb str r3, [r7, #56] @ 0x38 + RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV1; + 800069c: 2301 movs r3, #1 + 800069e: 63fb str r3, [r7, #60] @ 0x3c + RCC_OscInitStruct.PLL.PLLN = 16; + 80006a0: 2310 movs r3, #16 + 80006a2: 643b str r3, [r7, #64] @ 0x40 + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + 80006a4: 2302 movs r3, #2 + 80006a6: 647b str r3, [r7, #68] @ 0x44 + RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; + 80006a8: 2302 movs r3, #2 + 80006aa: 64bb str r3, [r7, #72] @ 0x48 + RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + 80006ac: 2302 movs r3, #2 + 80006ae: 64fb str r3, [r7, #76] @ 0x4c + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 80006b0: f107 0318 add.w r3, r7, #24 + 80006b4: 4618 mov r0, r3 + 80006b6: f002 fe05 bl 80032c4 + 80006ba: 4603 mov r3, r0 + 80006bc: 2b00 cmp r3, #0 + 80006be: d001 beq.n 80006c4 + { + Error_Handler(); + 80006c0: f000 fb88 bl 8000dd4 + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 80006c4: 230f movs r3, #15 + 80006c6: 607b str r3, [r7, #4] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + 80006c8: 2303 movs r3, #3 + 80006ca: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 80006cc: 2300 movs r3, #0 + 80006ce: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 80006d0: 2300 movs r3, #0 + 80006d2: 613b str r3, [r7, #16] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80006d4: 2300 movs r3, #0 + 80006d6: 617b str r3, [r7, #20] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) + 80006d8: 1d3b adds r3, r7, #4 + 80006da: 2104 movs r1, #4 + 80006dc: 4618 mov r0, r3 + 80006de: f003 f903 bl 80038e8 + 80006e2: 4603 mov r3, r0 + 80006e4: 2b00 cmp r3, #0 + 80006e6: d001 beq.n 80006ec + { + Error_Handler(); + 80006e8: f000 fb74 bl 8000dd4 + } +} + 80006ec: bf00 nop + 80006ee: 3750 adds r7, #80 @ 0x50 + 80006f0: 46bd mov sp, r7 + 80006f2: bd80 pop {r7, pc} + +080006f4 : + * @brief ADC1 Initialization Function + * @param None + * @retval None + */ +static void MX_ADC1_Init(void) +{ + 80006f4: b580 push {r7, lr} + 80006f6: b08c sub sp, #48 @ 0x30 + 80006f8: af00 add r7, sp, #0 + + /* USER CODE BEGIN ADC1_Init 0 */ + + /* USER CODE END ADC1_Init 0 */ + + ADC_MultiModeTypeDef multimode = {0}; + 80006fa: f107 0324 add.w r3, r7, #36 @ 0x24 + 80006fe: 2200 movs r2, #0 + 8000700: 601a str r2, [r3, #0] + 8000702: 605a str r2, [r3, #4] + 8000704: 609a str r2, [r3, #8] + ADC_ChannelConfTypeDef sConfig = {0}; + 8000706: 1d3b adds r3, r7, #4 + 8000708: 2220 movs r2, #32 + 800070a: 2100 movs r1, #0 + 800070c: 4618 mov r0, r3 + 800070e: f006 fad9 bl 8006cc4 + + /* USER CODE END ADC1_Init 1 */ + + /** Common config + */ + hadc1.Instance = ADC1; + 8000712: 4b32 ldr r3, [pc, #200] @ (80007dc ) + 8000714: f04f 42a0 mov.w r2, #1342177280 @ 0x50000000 + 8000718: 601a str r2, [r3, #0] + hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV16; + 800071a: 4b30 ldr r3, [pc, #192] @ (80007dc ) + 800071c: f44f 12e0 mov.w r2, #1835008 @ 0x1c0000 + 8000720: 605a str r2, [r3, #4] + hadc1.Init.Resolution = ADC_RESOLUTION_12B; + 8000722: 4b2e ldr r3, [pc, #184] @ (80007dc ) + 8000724: 2200 movs r2, #0 + 8000726: 609a str r2, [r3, #8] + hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 8000728: 4b2c ldr r3, [pc, #176] @ (80007dc ) + 800072a: 2200 movs r2, #0 + 800072c: 60da str r2, [r3, #12] + hadc1.Init.GainCompensation = 0; + 800072e: 4b2b ldr r3, [pc, #172] @ (80007dc ) + 8000730: 2200 movs r2, #0 + 8000732: 611a str r2, [r3, #16] + hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; + 8000734: 4b29 ldr r3, [pc, #164] @ (80007dc ) + 8000736: 2200 movs r2, #0 + 8000738: 615a str r2, [r3, #20] + hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + 800073a: 4b28 ldr r3, [pc, #160] @ (80007dc ) + 800073c: 2204 movs r2, #4 + 800073e: 619a str r2, [r3, #24] + hadc1.Init.LowPowerAutoWait = DISABLE; + 8000740: 4b26 ldr r3, [pc, #152] @ (80007dc ) + 8000742: 2200 movs r2, #0 + 8000744: 771a strb r2, [r3, #28] + hadc1.Init.ContinuousConvMode = DISABLE; + 8000746: 4b25 ldr r3, [pc, #148] @ (80007dc ) + 8000748: 2200 movs r2, #0 + 800074a: 775a strb r2, [r3, #29] + hadc1.Init.NbrOfConversion = 1; + 800074c: 4b23 ldr r3, [pc, #140] @ (80007dc ) + 800074e: 2201 movs r2, #1 + 8000750: 621a str r2, [r3, #32] + hadc1.Init.DiscontinuousConvMode = DISABLE; + 8000752: 4b22 ldr r3, [pc, #136] @ (80007dc ) + 8000754: 2200 movs r2, #0 + 8000756: f883 2024 strb.w r2, [r3, #36] @ 0x24 + hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 800075a: 4b20 ldr r3, [pc, #128] @ (80007dc ) + 800075c: 2200 movs r2, #0 + 800075e: 62da str r2, [r3, #44] @ 0x2c + hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 8000760: 4b1e ldr r3, [pc, #120] @ (80007dc ) + 8000762: 2200 movs r2, #0 + 8000764: 631a str r2, [r3, #48] @ 0x30 + hadc1.Init.DMAContinuousRequests = DISABLE; + 8000766: 4b1d ldr r3, [pc, #116] @ (80007dc ) + 8000768: 2200 movs r2, #0 + 800076a: f883 2038 strb.w r2, [r3, #56] @ 0x38 + hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 800076e: 4b1b ldr r3, [pc, #108] @ (80007dc ) + 8000770: 2200 movs r2, #0 + 8000772: 63da str r2, [r3, #60] @ 0x3c + hadc1.Init.OversamplingMode = DISABLE; + 8000774: 4b19 ldr r3, [pc, #100] @ (80007dc ) + 8000776: 2200 movs r2, #0 + 8000778: f883 2040 strb.w r2, [r3, #64] @ 0x40 + if (HAL_ADC_Init(&hadc1) != HAL_OK) + 800077c: 4817 ldr r0, [pc, #92] @ (80007dc ) + 800077e: f000 ffcd bl 800171c + 8000782: 4603 mov r3, r0 + 8000784: 2b00 cmp r3, #0 + 8000786: d001 beq.n 800078c + { + Error_Handler(); + 8000788: f000 fb24 bl 8000dd4 + } + + /** Configure the ADC multi-mode + */ + multimode.Mode = ADC_MODE_INDEPENDENT; + 800078c: 2300 movs r3, #0 + 800078e: 627b str r3, [r7, #36] @ 0x24 + if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) + 8000790: f107 0324 add.w r3, r7, #36 @ 0x24 + 8000794: 4619 mov r1, r3 + 8000796: 4811 ldr r0, [pc, #68] @ (80007dc ) + 8000798: f002 f8d2 bl 8002940 + 800079c: 4603 mov r3, r0 + 800079e: 2b00 cmp r3, #0 + 80007a0: d001 beq.n 80007a6 + { + Error_Handler(); + 80007a2: f000 fb17 bl 8000dd4 + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_VREFINT; + 80007a6: 4b0e ldr r3, [pc, #56] @ (80007e0 ) + 80007a8: 607b str r3, [r7, #4] + sConfig.Rank = ADC_REGULAR_RANK_1; + 80007aa: 2306 movs r3, #6 + 80007ac: 60bb str r3, [r7, #8] + sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + 80007ae: 2300 movs r3, #0 + 80007b0: 60fb str r3, [r7, #12] + sConfig.SingleDiff = ADC_SINGLE_ENDED; + 80007b2: 237f movs r3, #127 @ 0x7f + 80007b4: 613b str r3, [r7, #16] + sConfig.OffsetNumber = ADC_OFFSET_NONE; + 80007b6: 2304 movs r3, #4 + 80007b8: 617b str r3, [r7, #20] + sConfig.Offset = 0; + 80007ba: 2300 movs r3, #0 + 80007bc: 61bb str r3, [r7, #24] + if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + 80007be: 1d3b adds r3, r7, #4 + 80007c0: 4619 mov r1, r3 + 80007c2: 4806 ldr r0, [pc, #24] @ (80007dc ) + 80007c4: f001 fb04 bl 8001dd0 + 80007c8: 4603 mov r3, r0 + 80007ca: 2b00 cmp r3, #0 + 80007cc: d001 beq.n 80007d2 + { + Error_Handler(); + 80007ce: f000 fb01 bl 8000dd4 + } + /* USER CODE BEGIN ADC1_Init 2 */ + + /* USER CODE END ADC1_Init 2 */ + +} + 80007d2: bf00 nop + 80007d4: 3730 adds r7, #48 @ 0x30 + 80007d6: 46bd mov sp, r7 + 80007d8: bd80 pop {r7, pc} + 80007da: bf00 nop + 80007dc: 20000028 .word 0x20000028 + 80007e0: cb840000 .word 0xcb840000 + +080007e4 : + * @brief ADC2 Initialization Function + * @param None + * @retval None + */ +static void MX_ADC2_Init(void) +{ + 80007e4: b580 push {r7, lr} + 80007e6: b088 sub sp, #32 + 80007e8: af00 add r7, sp, #0 + + /* USER CODE BEGIN ADC2_Init 0 */ + + /* USER CODE END ADC2_Init 0 */ + + ADC_ChannelConfTypeDef sConfig = {0}; + 80007ea: 463b mov r3, r7 + 80007ec: 2220 movs r2, #32 + 80007ee: 2100 movs r1, #0 + 80007f0: 4618 mov r0, r3 + 80007f2: f006 fa67 bl 8006cc4 + + /* USER CODE END ADC2_Init 1 */ + + /** Common config + */ + hadc2.Instance = ADC2; + 80007f6: 4b32 ldr r3, [pc, #200] @ (80008c0 ) + 80007f8: 4a32 ldr r2, [pc, #200] @ (80008c4 ) + 80007fa: 601a str r2, [r3, #0] + hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV16; + 80007fc: 4b30 ldr r3, [pc, #192] @ (80008c0 ) + 80007fe: f44f 12e0 mov.w r2, #1835008 @ 0x1c0000 + 8000802: 605a str r2, [r3, #4] + hadc2.Init.Resolution = ADC_RESOLUTION_12B; + 8000804: 4b2e ldr r3, [pc, #184] @ (80008c0 ) + 8000806: 2200 movs r2, #0 + 8000808: 609a str r2, [r3, #8] + hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 800080a: 4b2d ldr r3, [pc, #180] @ (80008c0 ) + 800080c: 2200 movs r2, #0 + 800080e: 60da str r2, [r3, #12] + hadc2.Init.GainCompensation = 0; + 8000810: 4b2b ldr r3, [pc, #172] @ (80008c0 ) + 8000812: 2200 movs r2, #0 + 8000814: 611a str r2, [r3, #16] + hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + 8000816: 4b2a ldr r3, [pc, #168] @ (80008c0 ) + 8000818: 2201 movs r2, #1 + 800081a: 615a str r2, [r3, #20] + hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + 800081c: 4b28 ldr r3, [pc, #160] @ (80008c0 ) + 800081e: 2204 movs r2, #4 + 8000820: 619a str r2, [r3, #24] + hadc2.Init.LowPowerAutoWait = DISABLE; + 8000822: 4b27 ldr r3, [pc, #156] @ (80008c0 ) + 8000824: 2200 movs r2, #0 + 8000826: 771a strb r2, [r3, #28] + hadc2.Init.ContinuousConvMode = DISABLE; + 8000828: 4b25 ldr r3, [pc, #148] @ (80008c0 ) + 800082a: 2200 movs r2, #0 + 800082c: 775a strb r2, [r3, #29] + hadc2.Init.NbrOfConversion = 2; + 800082e: 4b24 ldr r3, [pc, #144] @ (80008c0 ) + 8000830: 2202 movs r2, #2 + 8000832: 621a str r2, [r3, #32] + hadc2.Init.DiscontinuousConvMode = DISABLE; + 8000834: 4b22 ldr r3, [pc, #136] @ (80008c0 ) + 8000836: 2200 movs r2, #0 + 8000838: f883 2024 strb.w r2, [r3, #36] @ 0x24 + hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 800083c: 4b20 ldr r3, [pc, #128] @ (80008c0 ) + 800083e: 2200 movs r2, #0 + 8000840: 62da str r2, [r3, #44] @ 0x2c + hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 8000842: 4b1f ldr r3, [pc, #124] @ (80008c0 ) + 8000844: 2200 movs r2, #0 + 8000846: 631a str r2, [r3, #48] @ 0x30 + hadc2.Init.DMAContinuousRequests = DISABLE; + 8000848: 4b1d ldr r3, [pc, #116] @ (80008c0 ) + 800084a: 2200 movs r2, #0 + 800084c: f883 2038 strb.w r2, [r3, #56] @ 0x38 + hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 8000850: 4b1b ldr r3, [pc, #108] @ (80008c0 ) + 8000852: 2200 movs r2, #0 + 8000854: 63da str r2, [r3, #60] @ 0x3c + hadc2.Init.OversamplingMode = DISABLE; + 8000856: 4b1a ldr r3, [pc, #104] @ (80008c0 ) + 8000858: 2200 movs r2, #0 + 800085a: f883 2040 strb.w r2, [r3, #64] @ 0x40 + if (HAL_ADC_Init(&hadc2) != HAL_OK) + 800085e: 4818 ldr r0, [pc, #96] @ (80008c0 ) + 8000860: f000 ff5c bl 800171c + 8000864: 4603 mov r3, r0 + 8000866: 2b00 cmp r3, #0 + 8000868: d001 beq.n 800086e + { + Error_Handler(); + 800086a: f000 fab3 bl 8000dd4 + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_3; + 800086e: 4b16 ldr r3, [pc, #88] @ (80008c8 ) + 8000870: 603b str r3, [r7, #0] + sConfig.Rank = ADC_REGULAR_RANK_1; + 8000872: 2306 movs r3, #6 + 8000874: 607b str r3, [r7, #4] + sConfig.SamplingTime = ADC_SAMPLETIME_24CYCLES_5; + 8000876: 2303 movs r3, #3 + 8000878: 60bb str r3, [r7, #8] + sConfig.SingleDiff = ADC_SINGLE_ENDED; + 800087a: 237f movs r3, #127 @ 0x7f + 800087c: 60fb str r3, [r7, #12] + sConfig.OffsetNumber = ADC_OFFSET_NONE; + 800087e: 2304 movs r3, #4 + 8000880: 613b str r3, [r7, #16] + sConfig.Offset = 0; + 8000882: 2300 movs r3, #0 + 8000884: 617b str r3, [r7, #20] + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 8000886: 463b mov r3, r7 + 8000888: 4619 mov r1, r3 + 800088a: 480d ldr r0, [pc, #52] @ (80008c0 ) + 800088c: f001 faa0 bl 8001dd0 + 8000890: 4603 mov r3, r0 + 8000892: 2b00 cmp r3, #0 + 8000894: d001 beq.n 800089a + { + Error_Handler(); + 8000896: f000 fa9d bl 8000dd4 + } + + /** Configure Regular Channel + */ + sConfig.Channel = ADC_CHANNEL_4; + 800089a: 4b0c ldr r3, [pc, #48] @ (80008cc ) + 800089c: 603b str r3, [r7, #0] + sConfig.Rank = ADC_REGULAR_RANK_2; + 800089e: 230c movs r3, #12 + 80008a0: 607b str r3, [r7, #4] + if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 80008a2: 463b mov r3, r7 + 80008a4: 4619 mov r1, r3 + 80008a6: 4806 ldr r0, [pc, #24] @ (80008c0 ) + 80008a8: f001 fa92 bl 8001dd0 + 80008ac: 4603 mov r3, r0 + 80008ae: 2b00 cmp r3, #0 + 80008b0: d001 beq.n 80008b6 + { + Error_Handler(); + 80008b2: f000 fa8f bl 8000dd4 + } + /* USER CODE BEGIN ADC2_Init 2 */ + + /* USER CODE END ADC2_Init 2 */ + +} + 80008b6: bf00 nop + 80008b8: 3720 adds r7, #32 + 80008ba: 46bd mov sp, r7 + 80008bc: bd80 pop {r7, pc} + 80008be: bf00 nop + 80008c0: 20000094 .word 0x20000094 + 80008c4: 50000100 .word 0x50000100 + 80008c8: 0c900008 .word 0x0c900008 + 80008cc: 10c00010 .word 0x10c00010 + +080008d0 : + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + 80008d0: b580 push {r7, lr} + 80008d2: b088 sub sp, #32 + 80008d4: af00 add r7, sp, #0 + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + 80008d6: f107 0310 add.w r3, r7, #16 + 80008da: 2200 movs r2, #0 + 80008dc: 601a str r2, [r3, #0] + 80008de: 605a str r2, [r3, #4] + 80008e0: 609a str r2, [r3, #8] + 80008e2: 60da str r2, [r3, #12] + TIM_MasterConfigTypeDef sMasterConfig = {0}; + 80008e4: 1d3b adds r3, r7, #4 + 80008e6: 2200 movs r2, #0 + 80008e8: 601a str r2, [r3, #0] + 80008ea: 605a str r2, [r3, #4] + 80008ec: 609a str r2, [r3, #8] + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + 80008ee: 4b1d ldr r3, [pc, #116] @ (8000964 ) + 80008f0: f04f 4280 mov.w r2, #1073741824 @ 0x40000000 + 80008f4: 601a str r2, [r3, #0] + htim2.Init.Prescaler = 0; + 80008f6: 4b1b ldr r3, [pc, #108] @ (8000964 ) + 80008f8: 2200 movs r2, #0 + 80008fa: 605a str r2, [r3, #4] + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 80008fc: 4b19 ldr r3, [pc, #100] @ (8000964 ) + 80008fe: 2200 movs r2, #0 + 8000900: 609a str r2, [r3, #8] + htim2.Init.Period = 128999; + 8000902: 4b18 ldr r3, [pc, #96] @ (8000964 ) + 8000904: 4a18 ldr r2, [pc, #96] @ (8000968 ) + 8000906: 60da str r2, [r3, #12] + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 8000908: 4b16 ldr r3, [pc, #88] @ (8000964 ) + 800090a: 2200 movs r2, #0 + 800090c: 611a str r2, [r3, #16] + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 800090e: 4b15 ldr r3, [pc, #84] @ (8000964 ) + 8000910: 2200 movs r2, #0 + 8000912: 619a str r2, [r3, #24] + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + 8000914: 4813 ldr r0, [pc, #76] @ (8000964 ) + 8000916: f003 fbf3 bl 8004100 + 800091a: 4603 mov r3, r0 + 800091c: 2b00 cmp r3, #0 + 800091e: d001 beq.n 8000924 + { + Error_Handler(); + 8000920: f000 fa58 bl 8000dd4 + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + 8000924: f44f 5380 mov.w r3, #4096 @ 0x1000 + 8000928: 613b str r3, [r7, #16] + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + 800092a: f107 0310 add.w r3, r7, #16 + 800092e: 4619 mov r1, r3 + 8000930: 480c ldr r0, [pc, #48] @ (8000964 ) + 8000932: f003 fd8b bl 800444c + 8000936: 4603 mov r3, r0 + 8000938: 2b00 cmp r3, #0 + 800093a: d001 beq.n 8000940 + { + Error_Handler(); + 800093c: f000 fa4a bl 8000dd4 + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 8000940: 2300 movs r3, #0 + 8000942: 607b str r3, [r7, #4] + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 8000944: 2300 movs r3, #0 + 8000946: 60fb str r3, [r7, #12] + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 8000948: 1d3b adds r3, r7, #4 + 800094a: 4619 mov r1, r3 + 800094c: 4805 ldr r0, [pc, #20] @ (8000964 ) + 800094e: f003 ffe1 bl 8004914 + 8000952: 4603 mov r3, r0 + 8000954: 2b00 cmp r3, #0 + 8000956: d001 beq.n 800095c + { + Error_Handler(); + 8000958: f000 fa3c bl 8000dd4 + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + +} + 800095c: bf00 nop + 800095e: 3720 adds r7, #32 + 8000960: 46bd mov sp, r7 + 8000962: bd80 pop {r7, pc} + 8000964: 20000100 .word 0x20000100 + 8000968: 0001f7e7 .word 0x0001f7e7 + +0800096c : + * @brief USART2 Initialization Function + * @param None + * @retval None + */ +static void MX_USART2_UART_Init(void) +{ + 800096c: b580 push {r7, lr} + 800096e: af00 add r7, sp, #0 + /* USER CODE END USART2_Init 0 */ + + /* USER CODE BEGIN USART2_Init 1 */ + + /* USER CODE END USART2_Init 1 */ + huart2.Instance = USART2; + 8000970: 4b22 ldr r3, [pc, #136] @ (80009fc ) + 8000972: 4a23 ldr r2, [pc, #140] @ (8000a00 ) + 8000974: 601a str r2, [r3, #0] + huart2.Init.BaudRate = 921600; + 8000976: 4b21 ldr r3, [pc, #132] @ (80009fc ) + 8000978: f44f 2261 mov.w r2, #921600 @ 0xe1000 + 800097c: 605a str r2, [r3, #4] + huart2.Init.WordLength = UART_WORDLENGTH_8B; + 800097e: 4b1f ldr r3, [pc, #124] @ (80009fc ) + 8000980: 2200 movs r2, #0 + 8000982: 609a str r2, [r3, #8] + huart2.Init.StopBits = UART_STOPBITS_1; + 8000984: 4b1d ldr r3, [pc, #116] @ (80009fc ) + 8000986: 2200 movs r2, #0 + 8000988: 60da str r2, [r3, #12] + huart2.Init.Parity = UART_PARITY_NONE; + 800098a: 4b1c ldr r3, [pc, #112] @ (80009fc ) + 800098c: 2200 movs r2, #0 + 800098e: 611a str r2, [r3, #16] + huart2.Init.Mode = UART_MODE_TX_RX; + 8000990: 4b1a ldr r3, [pc, #104] @ (80009fc ) + 8000992: 220c movs r2, #12 + 8000994: 615a str r2, [r3, #20] + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + 8000996: 4b19 ldr r3, [pc, #100] @ (80009fc ) + 8000998: 2200 movs r2, #0 + 800099a: 619a str r2, [r3, #24] + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + 800099c: 4b17 ldr r3, [pc, #92] @ (80009fc ) + 800099e: 2200 movs r2, #0 + 80009a0: 61da str r2, [r3, #28] + huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + 80009a2: 4b16 ldr r3, [pc, #88] @ (80009fc ) + 80009a4: 2200 movs r2, #0 + 80009a6: 621a str r2, [r3, #32] + huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1; + 80009a8: 4b14 ldr r3, [pc, #80] @ (80009fc ) + 80009aa: 2200 movs r2, #0 + 80009ac: 625a str r2, [r3, #36] @ 0x24 + huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 80009ae: 4b13 ldr r3, [pc, #76] @ (80009fc ) + 80009b0: 2200 movs r2, #0 + 80009b2: 629a str r2, [r3, #40] @ 0x28 + if (HAL_UART_Init(&huart2) != HAL_OK) + 80009b4: 4811 ldr r0, [pc, #68] @ (80009fc ) + 80009b6: f004 f875 bl 8004aa4 + 80009ba: 4603 mov r3, r0 + 80009bc: 2b00 cmp r3, #0 + 80009be: d001 beq.n 80009c4 + { + Error_Handler(); + 80009c0: f000 fa08 bl 8000dd4 + } + if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) + 80009c4: 2100 movs r1, #0 + 80009c6: 480d ldr r0, [pc, #52] @ (80009fc ) + 80009c8: f006 f8b1 bl 8006b2e + 80009cc: 4603 mov r3, r0 + 80009ce: 2b00 cmp r3, #0 + 80009d0: d001 beq.n 80009d6 + { + Error_Handler(); + 80009d2: f000 f9ff bl 8000dd4 + } + if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) + 80009d6: 2100 movs r1, #0 + 80009d8: 4808 ldr r0, [pc, #32] @ (80009fc ) + 80009da: f006 f8e6 bl 8006baa + 80009de: 4603 mov r3, r0 + 80009e0: 2b00 cmp r3, #0 + 80009e2: d001 beq.n 80009e8 + { + Error_Handler(); + 80009e4: f000 f9f6 bl 8000dd4 + } + if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK) + 80009e8: 4804 ldr r0, [pc, #16] @ (80009fc ) + 80009ea: f006 f867 bl 8006abc + 80009ee: 4603 mov r3, r0 + 80009f0: 2b00 cmp r3, #0 + 80009f2: d001 beq.n 80009f8 + { + Error_Handler(); + 80009f4: f000 f9ee bl 8000dd4 + } + /* USER CODE BEGIN USART2_Init 2 */ + + /* USER CODE END USART2_Init 2 */ + +} + 80009f8: bf00 nop + 80009fa: bd80 pop {r7, pc} + 80009fc: 2000014c .word 0x2000014c + 8000a00: 40004400 .word 0x40004400 + +08000a04 : + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 8000a04: b580 push {r7, lr} + 8000a06: b088 sub sp, #32 + 8000a08: af00 add r7, sp, #0 + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000a0a: f107 030c add.w r3, r7, #12 + 8000a0e: 2200 movs r2, #0 + 8000a10: 601a str r2, [r3, #0] + 8000a12: 605a str r2, [r3, #4] + 8000a14: 609a str r2, [r3, #8] + 8000a16: 60da str r2, [r3, #12] + 8000a18: 611a str r2, [r3, #16] + /* USER CODE BEGIN MX_GPIO_Init_1 */ + + /* USER CODE END MX_GPIO_Init_1 */ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOA_CLK_ENABLE(); + 8000a1a: 4b24 ldr r3, [pc, #144] @ (8000aac ) + 8000a1c: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000a1e: 4a23 ldr r2, [pc, #140] @ (8000aac ) + 8000a20: f043 0301 orr.w r3, r3, #1 + 8000a24: 64d3 str r3, [r2, #76] @ 0x4c + 8000a26: 4b21 ldr r3, [pc, #132] @ (8000aac ) + 8000a28: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000a2a: f003 0301 and.w r3, r3, #1 + 8000a2e: 60bb str r3, [r7, #8] + 8000a30: 68bb ldr r3, [r7, #8] + __HAL_RCC_GPIOB_CLK_ENABLE(); + 8000a32: 4b1e ldr r3, [pc, #120] @ (8000aac ) + 8000a34: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000a36: 4a1d ldr r2, [pc, #116] @ (8000aac ) + 8000a38: f043 0302 orr.w r3, r3, #2 + 8000a3c: 64d3 str r3, [r2, #76] @ 0x4c + 8000a3e: 4b1b ldr r3, [pc, #108] @ (8000aac ) + 8000a40: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000a42: f003 0302 and.w r3, r3, #2 + 8000a46: 607b str r3, [r7, #4] + 8000a48: 687b ldr r3, [r7, #4] + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + 8000a4a: 2200 movs r2, #0 + 8000a4c: f44f 5180 mov.w r1, #4096 @ 0x1000 + 8000a50: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 8000a54: f002 fb6a bl 800312c + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + 8000a58: 2200 movs r2, #0 + 8000a5a: f44f 7180 mov.w r1, #256 @ 0x100 + 8000a5e: 4814 ldr r0, [pc, #80] @ (8000ab0 ) + 8000a60: f002 fb64 bl 800312c + + /*Configure GPIO pin : POWER_SWITCH_Pin */ + GPIO_InitStruct.Pin = POWER_SWITCH_Pin; + 8000a64: f44f 5380 mov.w r3, #4096 @ 0x1000 + 8000a68: 60fb str r3, [r7, #12] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 8000a6a: 2301 movs r3, #1 + 8000a6c: 613b str r3, [r7, #16] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 8000a6e: 2300 movs r3, #0 + 8000a70: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 8000a72: 2300 movs r3, #0 + 8000a74: 61bb str r3, [r7, #24] + HAL_GPIO_Init(POWER_SWITCH_GPIO_Port, &GPIO_InitStruct); + 8000a76: f107 030c add.w r3, r7, #12 + 8000a7a: 4619 mov r1, r3 + 8000a7c: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 8000a80: f002 f9d2 bl 8002e28 + + /*Configure GPIO pin : LD2_Pin */ + GPIO_InitStruct.Pin = LD2_Pin; + 8000a84: f44f 7380 mov.w r3, #256 @ 0x100 + 8000a88: 60fb str r3, [r7, #12] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 8000a8a: 2301 movs r3, #1 + 8000a8c: 613b str r3, [r7, #16] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 8000a8e: 2300 movs r3, #0 + 8000a90: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 8000a92: 2300 movs r3, #0 + 8000a94: 61bb str r3, [r7, #24] + HAL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct); + 8000a96: f107 030c add.w r3, r7, #12 + 8000a9a: 4619 mov r1, r3 + 8000a9c: 4804 ldr r0, [pc, #16] @ (8000ab0 ) + 8000a9e: f002 f9c3 bl 8002e28 + + /* USER CODE BEGIN MX_GPIO_Init_2 */ + + /* USER CODE END MX_GPIO_Init_2 */ +} + 8000aa2: bf00 nop + 8000aa4: 3720 adds r7, #32 + 8000aa6: 46bd mov sp, r7 + 8000aa8: bd80 pop {r7, pc} + 8000aaa: bf00 nop + 8000aac: 40021000 .word 0x40021000 + 8000ab0: 48000400 .word 0x48000400 + +08000ab4 : + +/* USER CODE BEGIN 4 */ +uint32_t get_actual_vdda(ADC_HandleTypeDef *hadc) +{ + 8000ab4: b580 push {r7, lr} + 8000ab6: b084 sub sp, #16 + 8000ab8: af00 add r7, sp, #0 + 8000aba: 6078 str r0, [r7, #4] + uint32_t vrefint_raw = 0; + 8000abc: 2300 movs r3, #0 + 8000abe: 60fb str r3, [r7, #12] + + /* Perform ADC reading of the VREFINT channel */ + HAL_ADC_Start(hadc); + 8000ac0: 6878 ldr r0, [r7, #4] + 8000ac2: f000 ffaf bl 8001a24 + if (HAL_ADC_PollForConversion(hadc, 10) == HAL_OK) { + 8000ac6: 210a movs r1, #10 + 8000ac8: 6878 ldr r0, [r7, #4] + 8000aca: f001 f89b bl 8001c04 + 8000ace: 4603 mov r3, r0 + 8000ad0: 2b00 cmp r3, #0 + 8000ad2: d103 bne.n 8000adc + vrefint_raw = HAL_ADC_GetValue(hadc); + 8000ad4: 6878 ldr r0, [r7, #4] + 8000ad6: f001 f96d bl 8001db4 + 8000ada: 60f8 str r0, [r7, #12] + } + + HAL_ADC_Stop(hadc); + 8000adc: 6878 ldr r0, [r7, #4] + 8000ade: f001 f85d bl 8001b9c + + if (vrefint_raw == 0) return 0; /* Avoid division by zero */ + 8000ae2: 68fb ldr r3, [r7, #12] + 8000ae4: 2b00 cmp r3, #0 + 8000ae6: d101 bne.n 8000aec + 8000ae8: 2300 movs r3, #0 + 8000aea: e00b b.n 8000b04 + + /* Use the standard ST formula to calculate VDDA */ + /* VDDA = VREFINT_CAL_VREF * VREFINT_CAL / VREFINT_DATA */ + uint32_t vdda_mv = (VREFINT_CAL_VREF * (uint32_t)(*VREFINT_CAL_ADDR)) / vrefint_raw; + 8000aec: 4b07 ldr r3, [pc, #28] @ (8000b0c ) + 8000aee: 881b ldrh r3, [r3, #0] + 8000af0: 461a mov r2, r3 + 8000af2: f640 33b8 movw r3, #3000 @ 0xbb8 + 8000af6: fb03 f202 mul.w r2, r3, r2 + 8000afa: 68fb ldr r3, [r7, #12] + 8000afc: fbb2 f3f3 udiv r3, r2, r3 + 8000b00: 60bb str r3, [r7, #8] + + return vdda_mv; + 8000b02: 68bb ldr r3, [r7, #8] +} + 8000b04: 4618 mov r0, r3 + 8000b06: 3710 adds r7, #16 + 8000b08: 46bd mov sp, r7 + 8000b0a: bd80 pop {r7, pc} + 8000b0c: 1fff75aa .word 0x1fff75aa + +08000b10 : + return (raw_adc_value * vdda_mv) / 4095; +} + +/* ADC task */ +void adc_task (void) +{ + 8000b10: b580 push {r7, lr} + 8000b12: af00 add r7, sp, #0 + HAL_ADC_Start(&hadc2); + 8000b14: 4810 ldr r0, [pc, #64] @ (8000b58 ) + 8000b16: f000 ff85 bl 8001a24 + HAL_ADC_PollForConversion(&hadc2, 100); + 8000b1a: 2164 movs r1, #100 @ 0x64 + 8000b1c: 480e ldr r0, [pc, #56] @ (8000b58 ) + 8000b1e: f001 f871 bl 8001c04 + vin_adc_val = HAL_ADC_GetValue(&hadc2); + 8000b22: 480d ldr r0, [pc, #52] @ (8000b58 ) + 8000b24: f001 f946 bl 8001db4 + 8000b28: 4603 mov r3, r0 + 8000b2a: b29a uxth r2, r3 + 8000b2c: 4b0b ldr r3, [pc, #44] @ (8000b5c ) + 8000b2e: 801a strh r2, [r3, #0] + + HAL_ADC_Start(&hadc2); + 8000b30: 4809 ldr r0, [pc, #36] @ (8000b58 ) + 8000b32: f000 ff77 bl 8001a24 + HAL_ADC_PollForConversion(&hadc2, 100); + 8000b36: 2164 movs r1, #100 @ 0x64 + 8000b38: 4807 ldr r0, [pc, #28] @ (8000b58 ) + 8000b3a: f001 f863 bl 8001c04 + vout_adc_val = HAL_ADC_GetValue(&hadc2); + 8000b3e: 4806 ldr r0, [pc, #24] @ (8000b58 ) + 8000b40: f001 f938 bl 8001db4 + 8000b44: 4603 mov r3, r0 + 8000b46: b29a uxth r2, r3 + 8000b48: 4b05 ldr r3, [pc, #20] @ (8000b60 ) + 8000b4a: 801a strh r2, [r3, #0] + + HAL_ADC_Stop(&hadc2); + 8000b4c: 4802 ldr r0, [pc, #8] @ (8000b58 ) + 8000b4e: f001 f825 bl 8001b9c +} + 8000b52: bf00 nop + 8000b54: bd80 pop {r7, pc} + 8000b56: bf00 nop + 8000b58: 20000094 .word 0x20000094 + 8000b5c: 20000232 .word 0x20000232 + 8000b60: 20000234 .word 0x20000234 + +08000b64 : + +/* Power switch function */ +void power_switch (uint8_t state) +{ + 8000b64: b580 push {r7, lr} + 8000b66: b082 sub sp, #8 + 8000b68: af00 add r7, sp, #0 + 8000b6a: 4603 mov r3, r0 + 8000b6c: 71fb strb r3, [r7, #7] + if (state == 1) + 8000b6e: 79fb ldrb r3, [r7, #7] + 8000b70: 2b01 cmp r3, #1 + 8000b72: d10d bne.n 8000b90 + { + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_SET); + 8000b74: 2201 movs r2, #1 + 8000b76: f44f 5180 mov.w r1, #4096 @ 0x1000 + 8000b7a: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 8000b7e: f002 fad5 bl 800312c + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET); + 8000b82: 2201 movs r2, #1 + 8000b84: f44f 7180 mov.w r1, #256 @ 0x100 + 8000b88: 480a ldr r0, [pc, #40] @ (8000bb4 ) + 8000b8a: f002 facf bl 800312c + else + { + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + } +} + 8000b8e: e00c b.n 8000baa + HAL_GPIO_WritePin(POWER_SWITCH_GPIO_Port, POWER_SWITCH_Pin, GPIO_PIN_RESET); + 8000b90: 2200 movs r2, #0 + 8000b92: f44f 5180 mov.w r1, #4096 @ 0x1000 + 8000b96: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 8000b9a: f002 fac7 bl 800312c + HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); + 8000b9e: 2200 movs r2, #0 + 8000ba0: f44f 7180 mov.w r1, #256 @ 0x100 + 8000ba4: 4803 ldr r0, [pc, #12] @ (8000bb4 ) + 8000ba6: f002 fac1 bl 800312c +} + 8000baa: bf00 nop + 8000bac: 3708 adds r7, #8 + 8000bae: 46bd mov sp, r7 + 8000bb0: bd80 pop {r7, pc} + 8000bb2: bf00 nop + 8000bb4: 48000400 .word 0x48000400 + +08000bb8 : + +/* UART Tx callback */ +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +{ + 8000bb8: b480 push {r7} + 8000bba: b083 sub sp, #12 + 8000bbc: af00 add r7, sp, #0 + 8000bbe: 6078 str r0, [r7, #4] + /* Do nothing here for now */ +} + 8000bc0: bf00 nop + 8000bc2: 370c adds r7, #12 + 8000bc4: 46bd mov sp, r7 + 8000bc6: f85d 7b04 ldr.w r7, [sp], #4 + 8000bca: 4770 bx lr + +08000bcc : + +/* UART Rx callback */ +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) +{ + 8000bcc: b580 push {r7, lr} + 8000bce: b082 sub sp, #8 + 8000bd0: af00 add r7, sp, #0 + 8000bd2: 6078 str r0, [r7, #4] + /* If data received on UART */ + if(huart->Instance==USART2) + 8000bd4: 687b ldr r3, [r7, #4] + 8000bd6: 681b ldr r3, [r3, #0] + 8000bd8: 4a70 ldr r2, [pc, #448] @ (8000d9c ) + 8000bda: 4293 cmp r3, r2 + 8000bdc: f040 80da bne.w 8000d94 + { + /* Act on received data */ + switch (rx_counter) + 8000be0: 4b6f ldr r3, [pc, #444] @ (8000da0 ) + 8000be2: 781b ldrb r3, [r3, #0] + 8000be4: 2b05 cmp r3, #5 + 8000be6: f200 80cb bhi.w 8000d80 + 8000bea: a201 add r2, pc, #4 @ (adr r2, 8000bf0 ) + 8000bec: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8000bf0: 08000c09 .word 0x08000c09 + 8000bf4: 08000c21 .word 0x08000c21 + 8000bf8: 08000c4f .word 0x08000c4f + 8000bfc: 08000c6b .word 0x08000c6b + 8000c00: 08000ca5 .word 0x08000ca5 + 8000c04: 08000cbb .word 0x08000cbb + { + case 0x00: + /* Check to see if first sync byte has been received */ + if (rx_hold_buffer[0] == IN_SYNC_BYTE_1) + 8000c08: 4b66 ldr r3, [pc, #408] @ (8000da4 ) + 8000c0a: 781b ldrb r3, [r3, #0] + 8000c0c: 2b41 cmp r3, #65 @ 0x41 + 8000c0e: f040 80b9 bne.w 8000d84 + { + /* Got it, so now wait for the second sync byte */ + rx_counter++; + 8000c12: 4b63 ldr r3, [pc, #396] @ (8000da0 ) + 8000c14: 781b ldrb r3, [r3, #0] + 8000c16: 3301 adds r3, #1 + 8000c18: b2da uxtb r2, r3 + 8000c1a: 4b61 ldr r3, [pc, #388] @ (8000da0 ) + 8000c1c: 701a strb r2, [r3, #0] + } + + break; + 8000c1e: e0b1 b.n 8000d84 + + case 0x01: + /* Check to see if second sync byte has been received */ + if (rx_hold_buffer[0] == IN_SYNC_BYTE_2) + 8000c20: 4b60 ldr r3, [pc, #384] @ (8000da4 ) + 8000c22: 781b ldrb r3, [r3, #0] + 8000c24: 2b52 cmp r3, #82 @ 0x52 + 8000c26: d106 bne.n 8000c36 + { + /* Got it, so now wait for the data byte */ + rx_counter++; + 8000c28: 4b5d ldr r3, [pc, #372] @ (8000da0 ) + 8000c2a: 781b ldrb r3, [r3, #0] + 8000c2c: 3301 adds r3, #1 + 8000c2e: b2da uxtb r2, r3 + 8000c30: 4b5b ldr r3, [pc, #364] @ (8000da0 ) + 8000c32: 701a strb r2, [r3, #0] + { + rx_counter = 0x00; + } + } + + break; + 8000c34: e0a9 b.n 8000d8a + if (rx_hold_buffer[0] == IN_SYNC_BYTE_1) + 8000c36: 4b5b ldr r3, [pc, #364] @ (8000da4 ) + 8000c38: 781b ldrb r3, [r3, #0] + 8000c3a: 2b41 cmp r3, #65 @ 0x41 + 8000c3c: d103 bne.n 8000c46 + rx_counter = 0x01; + 8000c3e: 4b58 ldr r3, [pc, #352] @ (8000da0 ) + 8000c40: 2201 movs r2, #1 + 8000c42: 701a strb r2, [r3, #0] + break; + 8000c44: e0a1 b.n 8000d8a + rx_counter = 0x00; + 8000c46: 4b56 ldr r3, [pc, #344] @ (8000da0 ) + 8000c48: 2200 movs r2, #0 + 8000c4a: 701a strb r2, [r3, #0] + break; + 8000c4c: e09d b.n 8000d8a + + case 0x02: + /* Get rx length and reset counter */ + rx_len = rx_hold_buffer[0]; + 8000c4e: 4b55 ldr r3, [pc, #340] @ (8000da4 ) + 8000c50: 781a ldrb r2, [r3, #0] + 8000c52: 4b55 ldr r3, [pc, #340] @ (8000da8 ) + 8000c54: 701a strb r2, [r3, #0] + rx_len_counter = 0x00; + 8000c56: 4b55 ldr r3, [pc, #340] @ (8000dac ) + 8000c58: 2200 movs r2, #0 + 8000c5a: 701a strb r2, [r3, #0] + rx_counter++; + 8000c5c: 4b50 ldr r3, [pc, #320] @ (8000da0 ) + 8000c5e: 781b ldrb r3, [r3, #0] + 8000c60: 3301 adds r3, #1 + 8000c62: b2da uxtb r2, r3 + 8000c64: 4b4e ldr r3, [pc, #312] @ (8000da0 ) + 8000c66: 701a strb r2, [r3, #0] + break; + 8000c68: e08f b.n 8000d8a + + case 0x03: + /* Store entire length of Data bytes */ + /* Increase count */ + rx_len_counter++; + 8000c6a: 4b50 ldr r3, [pc, #320] @ (8000dac ) + 8000c6c: 781b ldrb r3, [r3, #0] + 8000c6e: 3301 adds r3, #1 + 8000c70: b2da uxtb r2, r3 + 8000c72: 4b4e ldr r3, [pc, #312] @ (8000dac ) + 8000c74: 701a strb r2, [r3, #0] + + /* Store data */ + rx_buffer[rx_len_counter - 1] = rx_hold_buffer[0]; + 8000c76: 4b4d ldr r3, [pc, #308] @ (8000dac ) + 8000c78: 781b ldrb r3, [r3, #0] + 8000c7a: 3b01 subs r3, #1 + 8000c7c: 4a49 ldr r2, [pc, #292] @ (8000da4 ) + 8000c7e: 7811 ldrb r1, [r2, #0] + 8000c80: 4a4b ldr r2, [pc, #300] @ (8000db0 ) + 8000c82: 54d1 strb r1, [r2, r3] + + /* Check to see if we have all the expected data bytes */ + /* If so, then move on the CRC */ + if (rx_len_counter == rx_len) + 8000c84: 4b49 ldr r3, [pc, #292] @ (8000dac ) + 8000c86: 781a ldrb r2, [r3, #0] + 8000c88: 4b47 ldr r3, [pc, #284] @ (8000da8 ) + 8000c8a: 781b ldrb r3, [r3, #0] + 8000c8c: 429a cmp r2, r3 + 8000c8e: d17b bne.n 8000d88 + { + rx_counter++; + 8000c90: 4b43 ldr r3, [pc, #268] @ (8000da0 ) + 8000c92: 781b ldrb r3, [r3, #0] + 8000c94: 3301 adds r3, #1 + 8000c96: b2da uxtb r2, r3 + 8000c98: 4b41 ldr r3, [pc, #260] @ (8000da0 ) + 8000c9a: 701a strb r2, [r3, #0] + rx_len_counter = 0x00; + 8000c9c: 4b43 ldr r3, [pc, #268] @ (8000dac ) + 8000c9e: 2200 movs r2, #0 + 8000ca0: 701a strb r2, [r3, #0] + } + + break; + 8000ca2: e071 b.n 8000d88 + + case 0x04: + /* Store Rx checksum byte #1 */ + rx_checksum_hold_1 = rx_hold_buffer[0]; + 8000ca4: 4b3f ldr r3, [pc, #252] @ (8000da4 ) + 8000ca6: 781a ldrb r2, [r3, #0] + 8000ca8: 4b42 ldr r3, [pc, #264] @ (8000db4 ) + 8000caa: 701a strb r2, [r3, #0] + rx_counter++; + 8000cac: 4b3c ldr r3, [pc, #240] @ (8000da0 ) + 8000cae: 781b ldrb r3, [r3, #0] + 8000cb0: 3301 adds r3, #1 + 8000cb2: b2da uxtb r2, r3 + 8000cb4: 4b3a ldr r3, [pc, #232] @ (8000da0 ) + 8000cb6: 701a strb r2, [r3, #0] + break; + 8000cb8: e067 b.n 8000d8a + + case 0x05: + /* Store Rx checksum byte #2, reset and calculate checksum */ + rx_checksum_hold_2 = rx_hold_buffer[0]; + 8000cba: 4b3a ldr r3, [pc, #232] @ (8000da4 ) + 8000cbc: 781a ldrb r2, [r3, #0] + 8000cbe: 4b3e ldr r3, [pc, #248] @ (8000db8 ) + 8000cc0: 701a strb r2, [r3, #0] + + rx_checksum_hold = (rx_checksum_hold_1 << 8) | rx_checksum_hold_2; + 8000cc2: 4b3c ldr r3, [pc, #240] @ (8000db4 ) + 8000cc4: 781b ldrb r3, [r3, #0] + 8000cc6: b21b sxth r3, r3 + 8000cc8: 021b lsls r3, r3, #8 + 8000cca: b21a sxth r2, r3 + 8000ccc: 4b3a ldr r3, [pc, #232] @ (8000db8 ) + 8000cce: 781b ldrb r3, [r3, #0] + 8000cd0: b21b sxth r3, r3 + 8000cd2: 4313 orrs r3, r2 + 8000cd4: b21b sxth r3, r3 + 8000cd6: b29a uxth r2, r3 + 8000cd8: 4b38 ldr r3, [pc, #224] @ (8000dbc ) + 8000cda: 801a strh r2, [r3, #0] + + rx_checksum = 0; + 8000cdc: 4b38 ldr r3, [pc, #224] @ (8000dc0 ) + 8000cde: 2200 movs r2, #0 + 8000ce0: 801a strh r2, [r3, #0] + + /* Need to apply to all data bits */ + for (rx_len_counter = 0x00; rx_len_counter < rx_len; rx_len_counter++) + 8000ce2: 4b32 ldr r3, [pc, #200] @ (8000dac ) + 8000ce4: 2200 movs r2, #0 + 8000ce6: 701a strb r2, [r3, #0] + 8000ce8: e011 b.n 8000d0e + { + rx_checksum += rx_buffer[rx_len_counter]; + 8000cea: 4b30 ldr r3, [pc, #192] @ (8000dac ) + 8000cec: 781b ldrb r3, [r3, #0] + 8000cee: 461a mov r2, r3 + 8000cf0: 4b2f ldr r3, [pc, #188] @ (8000db0 ) + 8000cf2: 5c9b ldrb r3, [r3, r2] + 8000cf4: 461a mov r2, r3 + 8000cf6: 4b32 ldr r3, [pc, #200] @ (8000dc0 ) + 8000cf8: 881b ldrh r3, [r3, #0] + 8000cfa: 4413 add r3, r2 + 8000cfc: b29a uxth r2, r3 + 8000cfe: 4b30 ldr r3, [pc, #192] @ (8000dc0 ) + 8000d00: 801a strh r2, [r3, #0] + for (rx_len_counter = 0x00; rx_len_counter < rx_len; rx_len_counter++) + 8000d02: 4b2a ldr r3, [pc, #168] @ (8000dac ) + 8000d04: 781b ldrb r3, [r3, #0] + 8000d06: 3301 adds r3, #1 + 8000d08: b2da uxtb r2, r3 + 8000d0a: 4b28 ldr r3, [pc, #160] @ (8000dac ) + 8000d0c: 701a strb r2, [r3, #0] + 8000d0e: 4b27 ldr r3, [pc, #156] @ (8000dac ) + 8000d10: 781a ldrb r2, [r3, #0] + 8000d12: 4b25 ldr r3, [pc, #148] @ (8000da8 ) + 8000d14: 781b ldrb r3, [r3, #0] + 8000d16: 429a cmp r2, r3 + 8000d18: d3e7 bcc.n 8000cea + } + + rx_len = 0x00; + 8000d1a: 4b23 ldr r3, [pc, #140] @ (8000da8 ) + 8000d1c: 2200 movs r2, #0 + 8000d1e: 701a strb r2, [r3, #0] + rx_len_counter = 0x00; + 8000d20: 4b22 ldr r3, [pc, #136] @ (8000dac ) + 8000d22: 2200 movs r2, #0 + 8000d24: 701a strb r2, [r3, #0] + + rx_checksum = ~rx_checksum; + 8000d26: 4b26 ldr r3, [pc, #152] @ (8000dc0 ) + 8000d28: 881b ldrh r3, [r3, #0] + 8000d2a: 43db mvns r3, r3 + 8000d2c: b29a uxth r2, r3 + 8000d2e: 4b24 ldr r3, [pc, #144] @ (8000dc0 ) + 8000d30: 801a strh r2, [r3, #0] + + /* If checksum calculated equals the received checksum of packet then we got a good packet */ + if (rx_checksum == rx_checksum_hold) + 8000d32: 4b23 ldr r3, [pc, #140] @ (8000dc0 ) + 8000d34: 881a ldrh r2, [r3, #0] + 8000d36: 4b21 ldr r3, [pc, #132] @ (8000dbc ) + 8000d38: 881b ldrh r3, [r3, #0] + 8000d3a: 429a cmp r2, r3 + 8000d3c: d11b bne.n 8000d76 + { + /* Rx is finished, so reset count to wait for another first sync byte (also act on command/data)*/ + rx_counter = 0x00; + 8000d3e: 4b18 ldr r3, [pc, #96] @ (8000da0 ) + 8000d40: 2200 movs r2, #0 + 8000d42: 701a strb r2, [r3, #0] + + command = rx_buffer[0]; + 8000d44: 4b1a ldr r3, [pc, #104] @ (8000db0 ) + 8000d46: 781a ldrb r2, [r3, #0] + 8000d48: 4b1e ldr r3, [pc, #120] @ (8000dc4 ) + 8000d4a: 701a strb r2, [r3, #0] + + switch (command) + 8000d4c: 4b1d ldr r3, [pc, #116] @ (8000dc4 ) + 8000d4e: 781b ldrb r3, [r3, #0] + 8000d50: 2b53 cmp r3, #83 @ 0x53 + 8000d52: d002 beq.n 8000d5a + 8000d54: 2b56 cmp r3, #86 @ 0x56 + 8000d56: d00a beq.n 8000d6e + case 0x56: + adc_task_flag = 0xff; + break; + + default: + break; + 8000d58: e011 b.n 8000d7e + power_state_value = rx_buffer[1]; + 8000d5a: 4b15 ldr r3, [pc, #84] @ (8000db0 ) + 8000d5c: 785a ldrb r2, [r3, #1] + 8000d5e: 4b1a ldr r3, [pc, #104] @ (8000dc8 ) + 8000d60: 701a strb r2, [r3, #0] + power_switch(power_state_value); + 8000d62: 4b19 ldr r3, [pc, #100] @ (8000dc8 ) + 8000d64: 781b ldrb r3, [r3, #0] + 8000d66: 4618 mov r0, r3 + 8000d68: f7ff fefc bl 8000b64 + break; + 8000d6c: e007 b.n 8000d7e + adc_task_flag = 0xff; + 8000d6e: 4b17 ldr r3, [pc, #92] @ (8000dcc ) + 8000d70: 22ff movs r2, #255 @ 0xff + 8000d72: 701a strb r2, [r3, #0] + break; + 8000d74: e003 b.n 8000d7e + + /* Bad packet received */ + else + { + /* Rx is finished, so reset count to wait for another first sync byte (bad packet so no flag)*/ + rx_counter = 0x00; + 8000d76: 4b0a ldr r3, [pc, #40] @ (8000da0 ) + 8000d78: 2200 movs r2, #0 + 8000d7a: 701a strb r2, [r3, #0] + } + + break; + 8000d7c: e005 b.n 8000d8a + 8000d7e: e004 b.n 8000d8a + + /* Default case - NOT USED!*/ + default: + break; + 8000d80: bf00 nop + 8000d82: e002 b.n 8000d8a + break; + 8000d84: bf00 nop + 8000d86: e000 b.n 8000d8a + break; + 8000d88: bf00 nop + } + + /* Reset interrupts */ + HAL_UART_Receive_IT(&huart2, rx_hold_buffer, 1); + 8000d8a: 2201 movs r2, #1 + 8000d8c: 4905 ldr r1, [pc, #20] @ (8000da4 ) + 8000d8e: 4810 ldr r0, [pc, #64] @ (8000dd0 ) + 8000d90: f003 ff66 bl 8004c60 + } +} + 8000d94: bf00 nop + 8000d96: 3708 adds r7, #8 + 8000d98: 46bd mov sp, r7 + 8000d9a: bd80 pop {r7, pc} + 8000d9c: 40004400 .word 0x40004400 + 8000da0: 20000225 .word 0x20000225 + 8000da4: 200001e0 .word 0x200001e0 + 8000da8: 20000226 .word 0x20000226 + 8000dac: 20000227 .word 0x20000227 + 8000db0: 200001e4 .word 0x200001e4 + 8000db4: 2000022a .word 0x2000022a + 8000db8: 2000022b .word 0x2000022b + 8000dbc: 2000022c .word 0x2000022c + 8000dc0: 20000228 .word 0x20000228 + 8000dc4: 2000022f .word 0x2000022f + 8000dc8: 2000022e .word 0x2000022e + 8000dcc: 20000230 .word 0x20000230 + 8000dd0: 2000014c .word 0x2000014c + +08000dd4 : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 8000dd4: b480 push {r7} + 8000dd6: af00 add r7, sp, #0 + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); + 8000dd8: b672 cpsid i +} + 8000dda: bf00 nop + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + 8000ddc: bf00 nop + 8000dde: e7fd b.n 8000ddc + +08000de0 : +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 8000de0: b580 push {r7, lr} + 8000de2: b082 sub sp, #8 + 8000de4: af00 add r7, sp, #0 + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8000de6: 4b0f ldr r3, [pc, #60] @ (8000e24 ) + 8000de8: 6e1b ldr r3, [r3, #96] @ 0x60 + 8000dea: 4a0e ldr r2, [pc, #56] @ (8000e24 ) + 8000dec: f043 0301 orr.w r3, r3, #1 + 8000df0: 6613 str r3, [r2, #96] @ 0x60 + 8000df2: 4b0c ldr r3, [pc, #48] @ (8000e24 ) + 8000df4: 6e1b ldr r3, [r3, #96] @ 0x60 + 8000df6: f003 0301 and.w r3, r3, #1 + 8000dfa: 607b str r3, [r7, #4] + 8000dfc: 687b ldr r3, [r7, #4] + __HAL_RCC_PWR_CLK_ENABLE(); + 8000dfe: 4b09 ldr r3, [pc, #36] @ (8000e24 ) + 8000e00: 6d9b ldr r3, [r3, #88] @ 0x58 + 8000e02: 4a08 ldr r2, [pc, #32] @ (8000e24 ) + 8000e04: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8000e08: 6593 str r3, [r2, #88] @ 0x58 + 8000e0a: 4b06 ldr r3, [pc, #24] @ (8000e24 ) + 8000e0c: 6d9b ldr r3, [r3, #88] @ 0x58 + 8000e0e: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8000e12: 603b str r3, [r7, #0] + 8000e14: 683b ldr r3, [r7, #0] + + /* System interrupt init*/ + + /** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral + */ + HAL_PWREx_DisableUCPDDeadBattery(); + 8000e16: f002 fa45 bl 80032a4 + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 8000e1a: bf00 nop + 8000e1c: 3708 adds r7, #8 + 8000e1e: 46bd mov sp, r7 + 8000e20: bd80 pop {r7, pc} + 8000e22: bf00 nop + 8000e24: 40021000 .word 0x40021000 + +08000e28 : + * This function configures the hardware resources used in this example + * @param hadc: ADC handle pointer + * @retval None + */ +void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) +{ + 8000e28: b580 push {r7, lr} + 8000e2a: b09c sub sp, #112 @ 0x70 + 8000e2c: af00 add r7, sp, #0 + 8000e2e: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000e30: f107 035c add.w r3, r7, #92 @ 0x5c + 8000e34: 2200 movs r2, #0 + 8000e36: 601a str r2, [r3, #0] + 8000e38: 605a str r2, [r3, #4] + 8000e3a: 609a str r2, [r3, #8] + 8000e3c: 60da str r2, [r3, #12] + 8000e3e: 611a str r2, [r3, #16] + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 8000e40: f107 0318 add.w r3, r7, #24 + 8000e44: 2244 movs r2, #68 @ 0x44 + 8000e46: 2100 movs r1, #0 + 8000e48: 4618 mov r0, r3 + 8000e4a: f005 ff3b bl 8006cc4 + if(hadc->Instance==ADC1) + 8000e4e: 687b ldr r3, [r7, #4] + 8000e50: 681b ldr r3, [r3, #0] + 8000e52: f1b3 4fa0 cmp.w r3, #1342177280 @ 0x50000000 + 8000e56: d125 bne.n 8000ea4 + + /* USER CODE END ADC1_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + 8000e58: f44f 4300 mov.w r3, #32768 @ 0x8000 + 8000e5c: 61bb str r3, [r7, #24] + PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 8000e5e: f04f 5300 mov.w r3, #536870912 @ 0x20000000 + 8000e62: 657b str r3, [r7, #84] @ 0x54 + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 8000e64: f107 0318 add.w r3, r7, #24 + 8000e68: 4618 mov r0, r3 + 8000e6a: f002 ff59 bl 8003d20 + 8000e6e: 4603 mov r3, r0 + 8000e70: 2b00 cmp r3, #0 + 8000e72: d001 beq.n 8000e78 + { + Error_Handler(); + 8000e74: f7ff ffae bl 8000dd4 + } + + /* Peripheral clock enable */ + HAL_RCC_ADC12_CLK_ENABLED++; + 8000e78: 4b2e ldr r3, [pc, #184] @ (8000f34 ) + 8000e7a: 681b ldr r3, [r3, #0] + 8000e7c: 3301 adds r3, #1 + 8000e7e: 4a2d ldr r2, [pc, #180] @ (8000f34 ) + 8000e80: 6013 str r3, [r2, #0] + if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 8000e82: 4b2c ldr r3, [pc, #176] @ (8000f34 ) + 8000e84: 681b ldr r3, [r3, #0] + 8000e86: 2b01 cmp r3, #1 + 8000e88: d14f bne.n 8000f2a + __HAL_RCC_ADC12_CLK_ENABLE(); + 8000e8a: 4b2b ldr r3, [pc, #172] @ (8000f38 ) + 8000e8c: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000e8e: 4a2a ldr r2, [pc, #168] @ (8000f38 ) + 8000e90: f443 5300 orr.w r3, r3, #8192 @ 0x2000 + 8000e94: 64d3 str r3, [r2, #76] @ 0x4c + 8000e96: 4b28 ldr r3, [pc, #160] @ (8000f38 ) + 8000e98: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000e9a: f403 5300 and.w r3, r3, #8192 @ 0x2000 + 8000e9e: 617b str r3, [r7, #20] + 8000ea0: 697b ldr r3, [r7, #20] + /* USER CODE BEGIN ADC2_MspInit 1 */ + + /* USER CODE END ADC2_MspInit 1 */ + } + +} + 8000ea2: e042 b.n 8000f2a + else if(hadc->Instance==ADC2) + 8000ea4: 687b ldr r3, [r7, #4] + 8000ea6: 681b ldr r3, [r3, #0] + 8000ea8: 4a24 ldr r2, [pc, #144] @ (8000f3c ) + 8000eaa: 4293 cmp r3, r2 + 8000eac: d13d bne.n 8000f2a + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + 8000eae: f44f 4300 mov.w r3, #32768 @ 0x8000 + 8000eb2: 61bb str r3, [r7, #24] + PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 8000eb4: f04f 5300 mov.w r3, #536870912 @ 0x20000000 + 8000eb8: 657b str r3, [r7, #84] @ 0x54 + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 8000eba: f107 0318 add.w r3, r7, #24 + 8000ebe: 4618 mov r0, r3 + 8000ec0: f002 ff2e bl 8003d20 + 8000ec4: 4603 mov r3, r0 + 8000ec6: 2b00 cmp r3, #0 + 8000ec8: d001 beq.n 8000ece + Error_Handler(); + 8000eca: f7ff ff83 bl 8000dd4 + HAL_RCC_ADC12_CLK_ENABLED++; + 8000ece: 4b19 ldr r3, [pc, #100] @ (8000f34 ) + 8000ed0: 681b ldr r3, [r3, #0] + 8000ed2: 3301 adds r3, #1 + 8000ed4: 4a17 ldr r2, [pc, #92] @ (8000f34 ) + 8000ed6: 6013 str r3, [r2, #0] + if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 8000ed8: 4b16 ldr r3, [pc, #88] @ (8000f34 ) + 8000eda: 681b ldr r3, [r3, #0] + 8000edc: 2b01 cmp r3, #1 + 8000ede: d10b bne.n 8000ef8 + __HAL_RCC_ADC12_CLK_ENABLE(); + 8000ee0: 4b15 ldr r3, [pc, #84] @ (8000f38 ) + 8000ee2: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000ee4: 4a14 ldr r2, [pc, #80] @ (8000f38 ) + 8000ee6: f443 5300 orr.w r3, r3, #8192 @ 0x2000 + 8000eea: 64d3 str r3, [r2, #76] @ 0x4c + 8000eec: 4b12 ldr r3, [pc, #72] @ (8000f38 ) + 8000eee: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000ef0: f403 5300 and.w r3, r3, #8192 @ 0x2000 + 8000ef4: 613b str r3, [r7, #16] + 8000ef6: 693b ldr r3, [r7, #16] + __HAL_RCC_GPIOA_CLK_ENABLE(); + 8000ef8: 4b0f ldr r3, [pc, #60] @ (8000f38 ) + 8000efa: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000efc: 4a0e ldr r2, [pc, #56] @ (8000f38 ) + 8000efe: f043 0301 orr.w r3, r3, #1 + 8000f02: 64d3 str r3, [r2, #76] @ 0x4c + 8000f04: 4b0c ldr r3, [pc, #48] @ (8000f38 ) + 8000f06: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000f08: f003 0301 and.w r3, r3, #1 + 8000f0c: 60fb str r3, [r7, #12] + 8000f0e: 68fb ldr r3, [r7, #12] + GPIO_InitStruct.Pin = VIN_Pin|VOUT_Pin; + 8000f10: 23c0 movs r3, #192 @ 0xc0 + 8000f12: 65fb str r3, [r7, #92] @ 0x5c + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 8000f14: 2303 movs r3, #3 + 8000f16: 663b str r3, [r7, #96] @ 0x60 + GPIO_InitStruct.Pull = GPIO_NOPULL; + 8000f18: 2300 movs r3, #0 + 8000f1a: 667b str r3, [r7, #100] @ 0x64 + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 8000f1c: f107 035c add.w r3, r7, #92 @ 0x5c + 8000f20: 4619 mov r1, r3 + 8000f22: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 8000f26: f001 ff7f bl 8002e28 +} + 8000f2a: bf00 nop + 8000f2c: 3770 adds r7, #112 @ 0x70 + 8000f2e: 46bd mov sp, r7 + 8000f30: bd80 pop {r7, pc} + 8000f32: bf00 nop + 8000f34: 2000023c .word 0x2000023c + 8000f38: 40021000 .word 0x40021000 + 8000f3c: 50000100 .word 0x50000100 + +08000f40 : + * This function configures the hardware resources used in this example + * @param htim_base: TIM_Base handle pointer + * @retval None + */ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + 8000f40: b580 push {r7, lr} + 8000f42: b084 sub sp, #16 + 8000f44: af00 add r7, sp, #0 + 8000f46: 6078 str r0, [r7, #4] + if(htim_base->Instance==TIM2) + 8000f48: 687b ldr r3, [r7, #4] + 8000f4a: 681b ldr r3, [r3, #0] + 8000f4c: f1b3 4f80 cmp.w r3, #1073741824 @ 0x40000000 + 8000f50: d113 bne.n 8000f7a + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + 8000f52: 4b0c ldr r3, [pc, #48] @ (8000f84 ) + 8000f54: 6d9b ldr r3, [r3, #88] @ 0x58 + 8000f56: 4a0b ldr r2, [pc, #44] @ (8000f84 ) + 8000f58: f043 0301 orr.w r3, r3, #1 + 8000f5c: 6593 str r3, [r2, #88] @ 0x58 + 8000f5e: 4b09 ldr r3, [pc, #36] @ (8000f84 ) + 8000f60: 6d9b ldr r3, [r3, #88] @ 0x58 + 8000f62: f003 0301 and.w r3, r3, #1 + 8000f66: 60fb str r3, [r7, #12] + 8000f68: 68fb ldr r3, [r7, #12] + /* TIM2 interrupt Init */ + HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); + 8000f6a: 2200 movs r2, #0 + 8000f6c: 2100 movs r1, #0 + 8000f6e: 201c movs r0, #28 + 8000f70: f001 fe65 bl 8002c3e + HAL_NVIC_EnableIRQ(TIM2_IRQn); + 8000f74: 201c movs r0, #28 + 8000f76: f001 fe7c bl 8002c72 + + /* USER CODE END TIM2_MspInit 1 */ + + } + +} + 8000f7a: bf00 nop + 8000f7c: 3710 adds r7, #16 + 8000f7e: 46bd mov sp, r7 + 8000f80: bd80 pop {r7, pc} + 8000f82: bf00 nop + 8000f84: 40021000 .word 0x40021000 + +08000f88 : + * This function configures the hardware resources used in this example + * @param huart: UART handle pointer + * @retval None + */ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + 8000f88: b580 push {r7, lr} + 8000f8a: b09a sub sp, #104 @ 0x68 + 8000f8c: af00 add r7, sp, #0 + 8000f8e: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000f90: f107 0354 add.w r3, r7, #84 @ 0x54 + 8000f94: 2200 movs r2, #0 + 8000f96: 601a str r2, [r3, #0] + 8000f98: 605a str r2, [r3, #4] + 8000f9a: 609a str r2, [r3, #8] + 8000f9c: 60da str r2, [r3, #12] + 8000f9e: 611a str r2, [r3, #16] + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 8000fa0: f107 0310 add.w r3, r7, #16 + 8000fa4: 2244 movs r2, #68 @ 0x44 + 8000fa6: 2100 movs r1, #0 + 8000fa8: 4618 mov r0, r3 + 8000faa: f005 fe8b bl 8006cc4 + if(huart->Instance==USART2) + 8000fae: 687b ldr r3, [r7, #4] + 8000fb0: 681b ldr r3, [r3, #0] + 8000fb2: 4a23 ldr r2, [pc, #140] @ (8001040 ) + 8000fb4: 4293 cmp r3, r2 + 8000fb6: d13e bne.n 8001036 + + /* USER CODE END USART2_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; + 8000fb8: 2302 movs r3, #2 + 8000fba: 613b str r3, [r7, #16] + PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; + 8000fbc: 2300 movs r3, #0 + 8000fbe: 61bb str r3, [r7, #24] + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 8000fc0: f107 0310 add.w r3, r7, #16 + 8000fc4: 4618 mov r0, r3 + 8000fc6: f002 feab bl 8003d20 + 8000fca: 4603 mov r3, r0 + 8000fcc: 2b00 cmp r3, #0 + 8000fce: d001 beq.n 8000fd4 + { + Error_Handler(); + 8000fd0: f7ff ff00 bl 8000dd4 + } + + /* Peripheral clock enable */ + __HAL_RCC_USART2_CLK_ENABLE(); + 8000fd4: 4b1b ldr r3, [pc, #108] @ (8001044 ) + 8000fd6: 6d9b ldr r3, [r3, #88] @ 0x58 + 8000fd8: 4a1a ldr r2, [pc, #104] @ (8001044 ) + 8000fda: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8000fde: 6593 str r3, [r2, #88] @ 0x58 + 8000fe0: 4b18 ldr r3, [pc, #96] @ (8001044 ) + 8000fe2: 6d9b ldr r3, [r3, #88] @ 0x58 + 8000fe4: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8000fe8: 60fb str r3, [r7, #12] + 8000fea: 68fb ldr r3, [r7, #12] + + __HAL_RCC_GPIOA_CLK_ENABLE(); + 8000fec: 4b15 ldr r3, [pc, #84] @ (8001044 ) + 8000fee: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000ff0: 4a14 ldr r2, [pc, #80] @ (8001044 ) + 8000ff2: f043 0301 orr.w r3, r3, #1 + 8000ff6: 64d3 str r3, [r2, #76] @ 0x4c + 8000ff8: 4b12 ldr r3, [pc, #72] @ (8001044 ) + 8000ffa: 6cdb ldr r3, [r3, #76] @ 0x4c + 8000ffc: f003 0301 and.w r3, r3, #1 + 8001000: 60bb str r3, [r7, #8] + 8001002: 68bb ldr r3, [r7, #8] + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + GPIO_InitStruct.Pin = USART2_TX_Pin|USART2_RX_Pin; + 8001004: 230c movs r3, #12 + 8001006: 657b str r3, [r7, #84] @ 0x54 + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 8001008: 2302 movs r3, #2 + 800100a: 65bb str r3, [r7, #88] @ 0x58 + GPIO_InitStruct.Pull = GPIO_NOPULL; + 800100c: 2300 movs r3, #0 + 800100e: 65fb str r3, [r7, #92] @ 0x5c + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 8001010: 2300 movs r3, #0 + 8001012: 663b str r3, [r7, #96] @ 0x60 + GPIO_InitStruct.Alternate = GPIO_AF7_USART2; + 8001014: 2307 movs r3, #7 + 8001016: 667b str r3, [r7, #100] @ 0x64 + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 8001018: f107 0354 add.w r3, r7, #84 @ 0x54 + 800101c: 4619 mov r1, r3 + 800101e: f04f 4090 mov.w r0, #1207959552 @ 0x48000000 + 8001022: f001 ff01 bl 8002e28 + + /* USART2 interrupt Init */ + HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); + 8001026: 2200 movs r2, #0 + 8001028: 2100 movs r1, #0 + 800102a: 2026 movs r0, #38 @ 0x26 + 800102c: f001 fe07 bl 8002c3e + HAL_NVIC_EnableIRQ(USART2_IRQn); + 8001030: 2026 movs r0, #38 @ 0x26 + 8001032: f001 fe1e bl 8002c72 + + /* USER CODE END USART2_MspInit 1 */ + + } + +} + 8001036: bf00 nop + 8001038: 3768 adds r7, #104 @ 0x68 + 800103a: 46bd mov sp, r7 + 800103c: bd80 pop {r7, pc} + 800103e: bf00 nop + 8001040: 40004400 .word 0x40004400 + 8001044: 40021000 .word 0x40021000 + +08001048 : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 8001048: b480 push {r7} + 800104a: af00 add r7, sp, #0 + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) + 800104c: bf00 nop + 800104e: e7fd b.n 800104c + +08001050 : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 8001050: b480 push {r7} + 8001052: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 8001054: bf00 nop + 8001056: e7fd b.n 8001054 + +08001058 : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 8001058: b480 push {r7} + 800105a: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 800105c: bf00 nop + 800105e: e7fd b.n 800105c + +08001060 : + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 8001060: b480 push {r7} + 8001062: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 8001064: bf00 nop + 8001066: e7fd b.n 8001064 + +08001068 : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 8001068: b480 push {r7} + 800106a: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 800106c: bf00 nop + 800106e: e7fd b.n 800106c + +08001070 : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 8001070: b480 push {r7} + 8001072: af00 add r7, sp, #0 + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + 8001074: bf00 nop + 8001076: 46bd mov sp, r7 + 8001078: f85d 7b04 ldr.w r7, [sp], #4 + 800107c: 4770 bx lr + +0800107e : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 800107e: b480 push {r7} + 8001080: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 8001082: bf00 nop + 8001084: 46bd mov sp, r7 + 8001086: f85d 7b04 ldr.w r7, [sp], #4 + 800108a: 4770 bx lr + +0800108c : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 800108c: b480 push {r7} + 800108e: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 8001090: bf00 nop + 8001092: 46bd mov sp, r7 + 8001094: f85d 7b04 ldr.w r7, [sp], #4 + 8001098: 4770 bx lr + +0800109a : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 800109a: b580 push {r7, lr} + 800109c: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 800109e: f000 f8a5 bl 80011ec + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 80010a2: bf00 nop + 80010a4: bd80 pop {r7, pc} + ... + +080010a8 : + +/** + * @brief This function handles TIM2 global interrupt. + */ +void TIM2_IRQHandler(void) +{ + 80010a8: b580 push {r7, lr} + 80010aa: af00 add r7, sp, #0 + /* USER CODE BEGIN TIM2_IRQn 0 */ + + /* USER CODE END TIM2_IRQn 0 */ + HAL_TIM_IRQHandler(&htim2); + 80010ac: 4802 ldr r0, [pc, #8] @ (80010b8 ) + 80010ae: f003 f87e bl 80041ae + /* USER CODE BEGIN TIM2_IRQn 1 */ + + /* USER CODE END TIM2_IRQn 1 */ +} + 80010b2: bf00 nop + 80010b4: bd80 pop {r7, pc} + 80010b6: bf00 nop + 80010b8: 20000100 .word 0x20000100 + +080010bc : + +/** + * @brief This function handles USART2 global interrupt / USART2 wake-up interrupt through EXTI line 26. + */ +void USART2_IRQHandler(void) +{ + 80010bc: b580 push {r7, lr} + 80010be: af00 add r7, sp, #0 + /* USER CODE BEGIN USART2_IRQn 0 */ + + /* USER CODE END USART2_IRQn 0 */ + HAL_UART_IRQHandler(&huart2); + 80010c0: 4802 ldr r0, [pc, #8] @ (80010cc ) + 80010c2: f003 fe19 bl 8004cf8 + /* USER CODE BEGIN USART2_IRQn 1 */ + + /* USER CODE END USART2_IRQn 1 */ +} + 80010c6: bf00 nop + 80010c8: bd80 pop {r7, pc} + 80010ca: bf00 nop + 80010cc: 2000014c .word 0x2000014c + +080010d0 : + * @param None + * @retval None + */ + +void SystemInit(void) +{ + 80010d0: b480 push {r7} + 80010d2: af00 add r7, sp, #0 + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2))); /* set CP10 and CP11 Full Access */ + 80010d4: 4b06 ldr r3, [pc, #24] @ (80010f0 ) + 80010d6: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 80010da: 4a05 ldr r2, [pc, #20] @ (80010f0 ) + 80010dc: f443 0370 orr.w r3, r3, #15728640 @ 0xf00000 + 80010e0: f8c2 3088 str.w r3, [r2, #136] @ 0x88 + + /* Configure the Vector Table location add offset address ------------------*/ +#if defined(USER_VECT_TAB_ADDRESS) + SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +} + 80010e4: bf00 nop + 80010e6: 46bd mov sp, r7 + 80010e8: f85d 7b04 ldr.w r7, [sp], #4 + 80010ec: 4770 bx lr + 80010ee: bf00 nop + 80010f0: e000ed00 .word 0xe000ed00 + +080010f4 : + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + 80010f4: 480d ldr r0, [pc, #52] @ (800112c ) + mov sp, r0 /* set stack pointer */ + 80010f6: 4685 mov sp, r0 + +/* Call the clock system initialization function.*/ + bl SystemInit + 80010f8: f7ff ffea bl 80010d0 + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + 80010fc: 480c ldr r0, [pc, #48] @ (8001130 ) + ldr r1, =_edata + 80010fe: 490d ldr r1, [pc, #52] @ (8001134 ) + ldr r2, =_sidata + 8001100: 4a0d ldr r2, [pc, #52] @ (8001138 ) + movs r3, #0 + 8001102: 2300 movs r3, #0 + b LoopCopyDataInit + 8001104: e002 b.n 800110c + +08001106 : + +CopyDataInit: + ldr r4, [r2, r3] + 8001106: 58d4 ldr r4, [r2, r3] + str r4, [r0, r3] + 8001108: 50c4 str r4, [r0, r3] + adds r3, r3, #4 + 800110a: 3304 adds r3, #4 + +0800110c : + +LoopCopyDataInit: + adds r4, r0, r3 + 800110c: 18c4 adds r4, r0, r3 + cmp r4, r1 + 800110e: 428c cmp r4, r1 + bcc CopyDataInit + 8001110: d3f9 bcc.n 8001106 + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + 8001112: 4a0a ldr r2, [pc, #40] @ (800113c ) + ldr r4, =_ebss + 8001114: 4c0a ldr r4, [pc, #40] @ (8001140 ) + movs r3, #0 + 8001116: 2300 movs r3, #0 + b LoopFillZerobss + 8001118: e001 b.n 800111e + +0800111a : + +FillZerobss: + str r3, [r2] + 800111a: 6013 str r3, [r2, #0] + adds r2, r2, #4 + 800111c: 3204 adds r2, #4 + +0800111e : + +LoopFillZerobss: + cmp r2, r4 + 800111e: 42a2 cmp r2, r4 + bcc FillZerobss + 8001120: d3fb bcc.n 800111a +/* Call static constructors */ + bl __libc_init_array + 8001122: f005 fdd7 bl 8006cd4 <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 8001126: f7ff fa0d bl 8000544
        + +0800112a : + +LoopForever: + b LoopForever + 800112a: e7fe b.n 800112a + ldr r0, =_estack + 800112c: 20008000 .word 0x20008000 + ldr r0, =_sdata + 8001130: 20000000 .word 0x20000000 + ldr r1, =_edata + 8001134: 2000000c .word 0x2000000c + ldr r2, =_sidata + 8001138: 08006d84 .word 0x08006d84 + ldr r2, =_sbss + 800113c: 2000000c .word 0x2000000c + ldr r4, =_ebss + 8001140: 20000244 .word 0x20000244 + +08001144 : + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 8001144: e7fe b.n 8001144 + +08001146 : + * each 1ms in the SysTick_Handler() interrupt handler. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + 8001146: b580 push {r7, lr} + 8001148: b082 sub sp, #8 + 800114a: af00 add r7, sp, #0 + HAL_StatusTypeDef status = HAL_OK; + 800114c: 2300 movs r3, #0 + 800114e: 71fb strb r3, [r7, #7] +#if (PREFETCH_ENABLE != 0U) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 8001150: 2003 movs r0, #3 + 8001152: f001 fd69 bl 8002c28 + + /* Use SysTick as time base source and configure 1ms tick (default clock after Reset is HSI) */ + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) + 8001156: 2000 movs r0, #0 + 8001158: f000 f80e bl 8001178 + 800115c: 4603 mov r3, r0 + 800115e: 2b00 cmp r3, #0 + 8001160: d002 beq.n 8001168 + { + status = HAL_ERROR; + 8001162: 2301 movs r3, #1 + 8001164: 71fb strb r3, [r7, #7] + 8001166: e001 b.n 800116c + } + else + { + /* Init the low level hardware */ + HAL_MspInit(); + 8001168: f7ff fe3a bl 8000de0 + } + + /* Return function status */ + return status; + 800116c: 79fb ldrb r3, [r7, #7] + +} + 800116e: 4618 mov r0, r3 + 8001170: 3708 adds r7, #8 + 8001172: 46bd mov sp, r7 + 8001174: bd80 pop {r7, pc} + ... + +08001178 : + * implementation in user file. + * @param TickPriority: Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 8001178: b580 push {r7, lr} + 800117a: b084 sub sp, #16 + 800117c: af00 add r7, sp, #0 + 800117e: 6078 str r0, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 8001180: 2300 movs r3, #0 + 8001182: 73fb strb r3, [r7, #15] + + if (uwTickFreq != 0U) + 8001184: 4b16 ldr r3, [pc, #88] @ (80011e0 ) + 8001186: 681b ldr r3, [r3, #0] + 8001188: 2b00 cmp r3, #0 + 800118a: d022 beq.n 80011d2 + { + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) + 800118c: 4b15 ldr r3, [pc, #84] @ (80011e4 ) + 800118e: 681a ldr r2, [r3, #0] + 8001190: 4b13 ldr r3, [pc, #76] @ (80011e0 ) + 8001192: 681b ldr r3, [r3, #0] + 8001194: f44f 717a mov.w r1, #1000 @ 0x3e8 + 8001198: fbb1 f3f3 udiv r3, r1, r3 + 800119c: fbb2 f3f3 udiv r3, r2, r3 + 80011a0: 4618 mov r0, r3 + 80011a2: f001 fd74 bl 8002c8e + 80011a6: 4603 mov r3, r0 + 80011a8: 2b00 cmp r3, #0 + 80011aa: d10f bne.n 80011cc + { + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 80011ac: 687b ldr r3, [r7, #4] + 80011ae: 2b0f cmp r3, #15 + 80011b0: d809 bhi.n 80011c6 + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 80011b2: 2200 movs r2, #0 + 80011b4: 6879 ldr r1, [r7, #4] + 80011b6: f04f 30ff mov.w r0, #4294967295 + 80011ba: f001 fd40 bl 8002c3e + uwTickPrio = TickPriority; + 80011be: 4a0a ldr r2, [pc, #40] @ (80011e8 ) + 80011c0: 687b ldr r3, [r7, #4] + 80011c2: 6013 str r3, [r2, #0] + 80011c4: e007 b.n 80011d6 + } + else + { + status = HAL_ERROR; + 80011c6: 2301 movs r3, #1 + 80011c8: 73fb strb r3, [r7, #15] + 80011ca: e004 b.n 80011d6 + } + } + else + { + status = HAL_ERROR; + 80011cc: 2301 movs r3, #1 + 80011ce: 73fb strb r3, [r7, #15] + 80011d0: e001 b.n 80011d6 + } + } + else + { + status = HAL_ERROR; + 80011d2: 2301 movs r3, #1 + 80011d4: 73fb strb r3, [r7, #15] + } + + /* Return function status */ + return status; + 80011d6: 7bfb ldrb r3, [r7, #15] +} + 80011d8: 4618 mov r0, r3 + 80011da: 3710 adds r7, #16 + 80011dc: 46bd mov sp, r7 + 80011de: bd80 pop {r7, pc} + 80011e0: 20000008 .word 0x20000008 + 80011e4: 20000000 .word 0x20000000 + 80011e8: 20000004 .word 0x20000004 + +080011ec : + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_IncTick(void) +{ + 80011ec: b480 push {r7} + 80011ee: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 80011f0: 4b05 ldr r3, [pc, #20] @ (8001208 ) + 80011f2: 681a ldr r2, [r3, #0] + 80011f4: 4b05 ldr r3, [pc, #20] @ (800120c ) + 80011f6: 681b ldr r3, [r3, #0] + 80011f8: 4413 add r3, r2 + 80011fa: 4a03 ldr r2, [pc, #12] @ (8001208 ) + 80011fc: 6013 str r3, [r2, #0] +} + 80011fe: bf00 nop + 8001200: 46bd mov sp, r7 + 8001202: f85d 7b04 ldr.w r7, [sp], #4 + 8001206: 4770 bx lr + 8001208: 20000240 .word 0x20000240 + 800120c: 20000008 .word 0x20000008 + +08001210 : + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval tick value + */ +__weak uint32_t HAL_GetTick(void) +{ + 8001210: b480 push {r7} + 8001212: af00 add r7, sp, #0 + return uwTick; + 8001214: 4b03 ldr r3, [pc, #12] @ (8001224 ) + 8001216: 681b ldr r3, [r3, #0] +} + 8001218: 4618 mov r0, r3 + 800121a: 46bd mov sp, r7 + 800121c: f85d 7b04 ldr.w r7, [sp], #4 + 8001220: 4770 bx lr + 8001222: bf00 nop + 8001224: 20000240 .word 0x20000240 + +08001228 : + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock) +{ + 8001228: b480 push {r7} + 800122a: b083 sub sp, #12 + 800122c: af00 add r7, sp, #0 + 800122e: 6078 str r0, [r7, #4] + 8001230: 6039 str r1, [r7, #0] + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC, CommonClock); + 8001232: 687b ldr r3, [r7, #4] + 8001234: 689b ldr r3, [r3, #8] + 8001236: f423 127c bic.w r2, r3, #4128768 @ 0x3f0000 + 800123a: 683b ldr r3, [r7, #0] + 800123c: 431a orrs r2, r3 + 800123e: 687b ldr r3, [r7, #4] + 8001240: 609a str r2, [r3, #8] +} + 8001242: bf00 nop + 8001244: 370c adds r7, #12 + 8001246: 46bd mov sp, r7 + 8001248: f85d 7b04 ldr.w r7, [sp], #4 + 800124c: 4770 bx lr + +0800124e : + * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR + * @arg @ref LL_ADC_PATH_INTERNAL_VBAT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal) +{ + 800124e: b480 push {r7} + 8001250: b083 sub sp, #12 + 8001252: af00 add r7, sp, #0 + 8001254: 6078 str r0, [r7, #4] + 8001256: 6039 str r1, [r7, #0] + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSEL, PathInternal); + 8001258: 687b ldr r3, [r7, #4] + 800125a: 689b ldr r3, [r3, #8] + 800125c: f023 72e0 bic.w r2, r3, #29360128 @ 0x1c00000 + 8001260: 683b ldr r3, [r7, #0] + 8001262: 431a orrs r2, r3 + 8001264: 687b ldr r3, [r7, #4] + 8001266: 609a str r2, [r3, #8] +} + 8001268: bf00 nop + 800126a: 370c adds r7, #12 + 800126c: 46bd mov sp, r7 + 800126e: f85d 7b04 ldr.w r7, [sp], #4 + 8001272: 4770 bx lr + +08001274 : + * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT + * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR + * @arg @ref LL_ADC_PATH_INTERNAL_VBAT + */ +__STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + 8001274: b480 push {r7} + 8001276: b083 sub sp, #12 + 8001278: af00 add r7, sp, #0 + 800127a: 6078 str r0, [r7, #4] + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSEL)); + 800127c: 687b ldr r3, [r7, #4] + 800127e: 689b ldr r3, [r3, #8] + 8001280: f003 73e0 and.w r3, r3, #29360128 @ 0x1c00000 +} + 8001284: 4618 mov r0, r3 + 8001286: 370c adds r7, #12 + 8001288: 46bd mov sp, r7 + 800128a: f85d 7b04 ldr.w r7, [sp], #4 + 800128e: 4770 bx lr + +08001290 : + * (fADC) to convert in 12-bit resolution.\n + * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32_t OffsetLevel) +{ + 8001290: b480 push {r7} + 8001292: b087 sub sp, #28 + 8001294: af00 add r7, sp, #0 + 8001296: 60f8 str r0, [r7, #12] + 8001298: 60b9 str r1, [r7, #8] + 800129a: 607a str r2, [r7, #4] + 800129c: 603b str r3, [r7, #0] + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + 800129e: 68fb ldr r3, [r7, #12] + 80012a0: 3360 adds r3, #96 @ 0x60 + 80012a2: 461a mov r2, r3 + 80012a4: 68bb ldr r3, [r7, #8] + 80012a6: 009b lsls r3, r3, #2 + 80012a8: 4413 add r3, r2 + 80012aa: 617b str r3, [r7, #20] + + MODIFY_REG(*preg, + 80012ac: 697b ldr r3, [r7, #20] + 80012ae: 681a ldr r2, [r3, #0] + 80012b0: 4b08 ldr r3, [pc, #32] @ (80012d4 ) + 80012b2: 4013 ands r3, r2 + 80012b4: 687a ldr r2, [r7, #4] + 80012b6: f002 41f8 and.w r1, r2, #2080374784 @ 0x7c000000 + 80012ba: 683a ldr r2, [r7, #0] + 80012bc: 430a orrs r2, r1 + 80012be: 4313 orrs r3, r2 + 80012c0: f043 4200 orr.w r2, r3, #2147483648 @ 0x80000000 + 80012c4: 697b ldr r3, [r7, #20] + 80012c6: 601a str r2, [r3, #0] + ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + ADC_OFR1_OFFSET1_EN | (Channel & ADC_CHANNEL_ID_NUMBER_MASK) | OffsetLevel); +} + 80012c8: bf00 nop + 80012ca: 371c adds r7, #28 + 80012cc: 46bd mov sp, r7 + 80012ce: f85d 7b04 ldr.w r7, [sp], #4 + 80012d2: 4770 bx lr + 80012d4: 03fff000 .word 0x03fff000 + +080012d8 : + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + */ +__STATIC_INLINE uint32_t LL_ADC_GetOffsetChannel(const ADC_TypeDef *ADCx, uint32_t Offsety) +{ + 80012d8: b480 push {r7} + 80012da: b085 sub sp, #20 + 80012dc: af00 add r7, sp, #0 + 80012de: 6078 str r0, [r7, #4] + 80012e0: 6039 str r1, [r7, #0] + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + 80012e2: 687b ldr r3, [r7, #4] + 80012e4: 3360 adds r3, #96 @ 0x60 + 80012e6: 461a mov r2, r3 + 80012e8: 683b ldr r3, [r7, #0] + 80012ea: 009b lsls r3, r3, #2 + 80012ec: 4413 add r3, r2 + 80012ee: 60fb str r3, [r7, #12] + + return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_CH); + 80012f0: 68fb ldr r3, [r7, #12] + 80012f2: 681b ldr r3, [r3, #0] + 80012f4: f003 43f8 and.w r3, r3, #2080374784 @ 0x7c000000 +} + 80012f8: 4618 mov r0, r3 + 80012fa: 3714 adds r7, #20 + 80012fc: 46bd mov sp, r7 + 80012fe: f85d 7b04 ldr.w r7, [sp], #4 + 8001302: 4770 bx lr + +08001304 : + * @arg @ref LL_ADC_OFFSET_DISABLE + * @arg @ref LL_ADC_OFFSET_ENABLE + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetState) +{ + 8001304: b480 push {r7} + 8001306: b087 sub sp, #28 + 8001308: af00 add r7, sp, #0 + 800130a: 60f8 str r0, [r7, #12] + 800130c: 60b9 str r1, [r7, #8] + 800130e: 607a str r2, [r7, #4] + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + 8001310: 68fb ldr r3, [r7, #12] + 8001312: 3360 adds r3, #96 @ 0x60 + 8001314: 461a mov r2, r3 + 8001316: 68bb ldr r3, [r7, #8] + 8001318: 009b lsls r3, r3, #2 + 800131a: 4413 add r3, r2 + 800131c: 617b str r3, [r7, #20] + + MODIFY_REG(*preg, + 800131e: 697b ldr r3, [r7, #20] + 8001320: 681b ldr r3, [r3, #0] + 8001322: f023 4200 bic.w r2, r3, #2147483648 @ 0x80000000 + 8001326: 687b ldr r3, [r7, #4] + 8001328: 431a orrs r2, r3 + 800132a: 697b ldr r3, [r7, #20] + 800132c: 601a str r2, [r3, #0] + ADC_OFR1_OFFSET1_EN, + OffsetState); +} + 800132e: bf00 nop + 8001330: 371c adds r7, #28 + 8001332: 46bd mov sp, r7 + 8001334: f85d 7b04 ldr.w r7, [sp], #4 + 8001338: 4770 bx lr + +0800133a : + * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE + * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffsetSign(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSign) +{ + 800133a: b480 push {r7} + 800133c: b087 sub sp, #28 + 800133e: af00 add r7, sp, #0 + 8001340: 60f8 str r0, [r7, #12] + 8001342: 60b9 str r1, [r7, #8] + 8001344: 607a str r2, [r7, #4] + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + 8001346: 68fb ldr r3, [r7, #12] + 8001348: 3360 adds r3, #96 @ 0x60 + 800134a: 461a mov r2, r3 + 800134c: 68bb ldr r3, [r7, #8] + 800134e: 009b lsls r3, r3, #2 + 8001350: 4413 add r3, r2 + 8001352: 617b str r3, [r7, #20] + + MODIFY_REG(*preg, + 8001354: 697b ldr r3, [r7, #20] + 8001356: 681b ldr r3, [r3, #0] + 8001358: f023 7280 bic.w r2, r3, #16777216 @ 0x1000000 + 800135c: 687b ldr r3, [r7, #4] + 800135e: 431a orrs r2, r3 + 8001360: 697b ldr r3, [r7, #20] + 8001362: 601a str r2, [r3, #0] + ADC_OFR1_OFFSETPOS, + OffsetSign); +} + 8001364: bf00 nop + 8001366: 371c adds r7, #28 + 8001368: 46bd mov sp, r7 + 800136a: f85d 7b04 ldr.w r7, [sp], #4 + 800136e: 4770 bx lr + +08001370 : + * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE + * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffsetSaturation(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSaturation) +{ + 8001370: b480 push {r7} + 8001372: b087 sub sp, #28 + 8001374: af00 add r7, sp, #0 + 8001376: 60f8 str r0, [r7, #12] + 8001378: 60b9 str r1, [r7, #8] + 800137a: 607a str r2, [r7, #4] + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + 800137c: 68fb ldr r3, [r7, #12] + 800137e: 3360 adds r3, #96 @ 0x60 + 8001380: 461a mov r2, r3 + 8001382: 68bb ldr r3, [r7, #8] + 8001384: 009b lsls r3, r3, #2 + 8001386: 4413 add r3, r2 + 8001388: 617b str r3, [r7, #20] + + MODIFY_REG(*preg, + 800138a: 697b ldr r3, [r7, #20] + 800138c: 681b ldr r3, [r3, #0] + 800138e: f023 7200 bic.w r2, r3, #33554432 @ 0x2000000 + 8001392: 687b ldr r3, [r7, #4] + 8001394: 431a orrs r2, r3 + 8001396: 697b ldr r3, [r7, #20] + 8001398: 601a str r2, [r3, #0] + ADC_OFR1_SATEN, + OffsetSaturation); +} + 800139a: bf00 nop + 800139c: 371c adds r7, #28 + 800139e: 46bd mov sp, r7 + 80013a0: f85d 7b04 ldr.w r7, [sp], #4 + 80013a4: 4770 bx lr + +080013a6 : + * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT + * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetSamplingTimeCommonConfig(ADC_TypeDef *ADCx, uint32_t SamplingTimeCommonConfig) +{ + 80013a6: b480 push {r7} + 80013a8: b083 sub sp, #12 + 80013aa: af00 add r7, sp, #0 + 80013ac: 6078 str r0, [r7, #4] + 80013ae: 6039 str r1, [r7, #0] + MODIFY_REG(ADCx->SMPR1, ADC_SMPR1_SMPPLUS, SamplingTimeCommonConfig); + 80013b0: 687b ldr r3, [r7, #4] + 80013b2: 695b ldr r3, [r3, #20] + 80013b4: f023 4200 bic.w r2, r3, #2147483648 @ 0x80000000 + 80013b8: 683b ldr r3, [r7, #0] + 80013ba: 431a orrs r2, r3 + 80013bc: 687b ldr r3, [r7, #4] + 80013be: 615a str r2, [r3, #20] +} + 80013c0: bf00 nop + 80013c2: 370c adds r7, #12 + 80013c4: 46bd mov sp, r7 + 80013c6: f85d 7b04 ldr.w r7, [sp], #4 + 80013ca: 4770 bx lr + +080013cc : + * @param ADCx ADC instance + * @retval Value "0" if trigger source external trigger + * Value "1" if trigger source SW start. + */ +__STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(const ADC_TypeDef *ADCx) +{ + 80013cc: b480 push {r7} + 80013ce: b083 sub sp, #12 + 80013d0: af00 add r7, sp, #0 + 80013d2: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN)) ? 1UL : 0UL); + 80013d4: 687b ldr r3, [r7, #4] + 80013d6: 68db ldr r3, [r3, #12] + 80013d8: f403 6340 and.w r3, r3, #3072 @ 0xc00 + 80013dc: 2b00 cmp r3, #0 + 80013de: d101 bne.n 80013e4 + 80013e0: 2301 movs r3, #1 + 80013e2: e000 b.n 80013e6 + 80013e4: 2300 movs r3, #0 +} + 80013e6: 4618 mov r0, r3 + 80013e8: 370c adds r7, #12 + 80013ea: 46bd mov sp, r7 + 80013ec: f85d 7b04 ldr.w r7, [sp], #4 + 80013f0: 4770 bx lr + +080013f2 : + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel) +{ + 80013f2: b480 push {r7} + 80013f4: b087 sub sp, #28 + 80013f6: af00 add r7, sp, #0 + 80013f8: 60f8 str r0, [r7, #12] + 80013fa: 60b9 str r1, [r7, #8] + 80013fc: 607a str r2, [r7, #4] + /* Set bits with content of parameter "Channel" with bits position */ + /* in register and register position depending on parameter "Rank". */ + /* Parameters "Rank" and "Channel" are used with masks because containing */ + /* other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, + 80013fe: 68fb ldr r3, [r7, #12] + 8001400: 3330 adds r3, #48 @ 0x30 + 8001402: 461a mov r2, r3 + 8001404: 68bb ldr r3, [r7, #8] + 8001406: 0a1b lsrs r3, r3, #8 + 8001408: 009b lsls r3, r3, #2 + 800140a: f003 030c and.w r3, r3, #12 + 800140e: 4413 add r3, r2 + 8001410: 617b str r3, [r7, #20] + ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> ADC_SQRX_REGOFFSET_POS)); + + MODIFY_REG(*preg, + 8001412: 697b ldr r3, [r7, #20] + 8001414: 681a ldr r2, [r3, #0] + 8001416: 68bb ldr r3, [r7, #8] + 8001418: f003 031f and.w r3, r3, #31 + 800141c: 211f movs r1, #31 + 800141e: fa01 f303 lsl.w r3, r1, r3 + 8001422: 43db mvns r3, r3 + 8001424: 401a ands r2, r3 + 8001426: 687b ldr r3, [r7, #4] + 8001428: 0e9b lsrs r3, r3, #26 + 800142a: f003 011f and.w r1, r3, #31 + 800142e: 68bb ldr r3, [r7, #8] + 8001430: f003 031f and.w r3, r3, #31 + 8001434: fa01 f303 lsl.w r3, r1, r3 + 8001438: 431a orrs r2, r3 + 800143a: 697b ldr r3, [r7, #20] + 800143c: 601a str r2, [r3, #0] + ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK), + ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (Rank & ADC_REG_RANK_ID_SQRX_MASK)); +} + 800143e: bf00 nop + 8001440: 371c adds r7, #28 + 8001442: 46bd mov sp, r7 + 8001444: f85d 7b04 ldr.w r7, [sp], #4 + 8001448: 4770 bx lr + +0800144a : + * can be replaced by 3.5 ADC clock cycles. + * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime) +{ + 800144a: b480 push {r7} + 800144c: b087 sub sp, #28 + 800144e: af00 add r7, sp, #0 + 8001450: 60f8 str r0, [r7, #12] + 8001452: 60b9 str r1, [r7, #8] + 8001454: 607a str r2, [r7, #4] + /* Set bits with content of parameter "SamplingTime" with bits position */ + /* in register and register position depending on parameter "Channel". */ + /* Parameter "Channel" is used with masks because containing */ + /* other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, + 8001456: 68fb ldr r3, [r7, #12] + 8001458: 3314 adds r3, #20 + 800145a: 461a mov r2, r3 + 800145c: 68bb ldr r3, [r7, #8] + 800145e: 0e5b lsrs r3, r3, #25 + 8001460: 009b lsls r3, r3, #2 + 8001462: f003 0304 and.w r3, r3, #4 + 8001466: 4413 add r3, r2 + 8001468: 617b str r3, [r7, #20] + ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_MASK) >> ADC_SMPRX_REGOFFSET_POS)); + + MODIFY_REG(*preg, + 800146a: 697b ldr r3, [r7, #20] + 800146c: 681a ldr r2, [r3, #0] + 800146e: 68bb ldr r3, [r7, #8] + 8001470: 0d1b lsrs r3, r3, #20 + 8001472: f003 031f and.w r3, r3, #31 + 8001476: 2107 movs r1, #7 + 8001478: fa01 f303 lsl.w r3, r1, r3 + 800147c: 43db mvns r3, r3 + 800147e: 401a ands r2, r3 + 8001480: 68bb ldr r3, [r7, #8] + 8001482: 0d1b lsrs r3, r3, #20 + 8001484: f003 031f and.w r3, r3, #31 + 8001488: 6879 ldr r1, [r7, #4] + 800148a: fa01 f303 lsl.w r3, r1, r3 + 800148e: 431a orrs r2, r3 + 8001490: 697b ldr r3, [r7, #20] + 8001492: 601a str r2, [r3, #0] + ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS), + SamplingTime << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS)); +} + 8001494: bf00 nop + 8001496: 371c adds r7, #28 + 8001498: 46bd mov sp, r7 + 800149a: f85d 7b04 ldr.w r7, [sp], #4 + 800149e: 4770 bx lr + +080014a0 : + * @arg @ref LL_ADC_SINGLE_ENDED + * @arg @ref LL_ADC_DIFFERENTIAL_ENDED + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff) +{ + 80014a0: b480 push {r7} + 80014a2: b085 sub sp, #20 + 80014a4: af00 add r7, sp, #0 + 80014a6: 60f8 str r0, [r7, #12] + 80014a8: 60b9 str r1, [r7, #8] + 80014aa: 607a str r2, [r7, #4] + /* Bits of channels in single or differential mode are set only for */ + /* differential mode (for single mode, mask of bits allowed to be set is */ + /* shifted out of range of bits of channels in single or differential mode. */ + MODIFY_REG(ADCx->DIFSEL, + 80014ac: 68fb ldr r3, [r7, #12] + 80014ae: f8d3 20b0 ldr.w r2, [r3, #176] @ 0xb0 + 80014b2: 68bb ldr r3, [r7, #8] + 80014b4: f3c3 0312 ubfx r3, r3, #0, #19 + 80014b8: 43db mvns r3, r3 + 80014ba: 401a ands r2, r3 + 80014bc: 687b ldr r3, [r7, #4] + 80014be: f003 0318 and.w r3, r3, #24 + 80014c2: 4908 ldr r1, [pc, #32] @ (80014e4 ) + 80014c4: 40d9 lsrs r1, r3 + 80014c6: 68bb ldr r3, [r7, #8] + 80014c8: 400b ands r3, r1 + 80014ca: f3c3 0312 ubfx r3, r3, #0, #19 + 80014ce: 431a orrs r2, r3 + 80014d0: 68fb ldr r3, [r7, #12] + 80014d2: f8c3 20b0 str.w r2, [r3, #176] @ 0xb0 + Channel & ADC_SINGLEDIFF_CHANNEL_MASK, + (Channel & ADC_SINGLEDIFF_CHANNEL_MASK) + & (ADC_DIFSEL_DIFSEL >> (SingleDiff & ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK))); +} + 80014d6: bf00 nop + 80014d8: 3714 adds r7, #20 + 80014da: 46bd mov sp, r7 + 80014dc: f85d 7b04 ldr.w r7, [sp], #4 + 80014e0: 4770 bx lr + 80014e2: bf00 nop + 80014e4: 0007ffff .word 0x0007ffff + +080014e8 : + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT + * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM + */ +__STATIC_INLINE uint32_t LL_ADC_GetMultimode(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + 80014e8: b480 push {r7} + 80014ea: b083 sub sp, #12 + 80014ec: af00 add r7, sp, #0 + 80014ee: 6078 str r0, [r7, #4] + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DUAL)); + 80014f0: 687b ldr r3, [r7, #4] + 80014f2: 689b ldr r3, [r3, #8] + 80014f4: f003 031f and.w r3, r3, #31 +} + 80014f8: 4618 mov r0, r3 + 80014fa: 370c adds r7, #12 + 80014fc: 46bd mov sp, r7 + 80014fe: f85d 7b04 ldr.w r7, [sp], #4 + 8001502: 4770 bx lr + +08001504 : + * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B + * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B + * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B + */ +__STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + 8001504: b480 push {r7} + 8001506: b083 sub sp, #12 + 8001508: af00 add r7, sp, #0 + 800150a: 6078 str r0, [r7, #4] + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG)); + 800150c: 687b ldr r3, [r7, #4] + 800150e: 689b ldr r3, [r3, #8] + 8001510: f403 4360 and.w r3, r3, #57344 @ 0xe000 +} + 8001514: 4618 mov r0, r3 + 8001516: 370c adds r7, #12 + 8001518: 46bd mov sp, r7 + 800151a: f85d 7b04 ldr.w r7, [sp], #4 + 800151e: 4770 bx lr + +08001520 : + * @rmtoll CR DEEPPWD LL_ADC_DisableDeepPowerDown + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableDeepPowerDown(ADC_TypeDef *ADCx) +{ + 8001520: b480 push {r7} + 8001522: b083 sub sp, #12 + 8001524: af00 add r7, sp, #0 + 8001526: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + CLEAR_BIT(ADCx->CR, (ADC_CR_DEEPPWD | ADC_CR_BITS_PROPERTY_RS)); + 8001528: 687b ldr r3, [r7, #4] + 800152a: 689b ldr r3, [r3, #8] + 800152c: f023 4320 bic.w r3, r3, #2684354560 @ 0xa0000000 + 8001530: f023 033f bic.w r3, r3, #63 @ 0x3f + 8001534: 687a ldr r2, [r7, #4] + 8001536: 6093 str r3, [r2, #8] +} + 8001538: bf00 nop + 800153a: 370c adds r7, #12 + 800153c: 46bd mov sp, r7 + 800153e: f85d 7b04 ldr.w r7, [sp], #4 + 8001542: 4770 bx lr + +08001544 : + * @rmtoll CR DEEPPWD LL_ADC_IsDeepPowerDownEnabled + * @param ADCx ADC instance + * @retval 0: deep power down is disabled, 1: deep power down is enabled. + */ +__STATIC_INLINE uint32_t LL_ADC_IsDeepPowerDownEnabled(const ADC_TypeDef *ADCx) +{ + 8001544: b480 push {r7} + 8001546: b083 sub sp, #12 + 8001548: af00 add r7, sp, #0 + 800154a: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_DEEPPWD) == (ADC_CR_DEEPPWD)) ? 1UL : 0UL); + 800154c: 687b ldr r3, [r7, #4] + 800154e: 689b ldr r3, [r3, #8] + 8001550: f003 5300 and.w r3, r3, #536870912 @ 0x20000000 + 8001554: f1b3 5f00 cmp.w r3, #536870912 @ 0x20000000 + 8001558: d101 bne.n 800155e + 800155a: 2301 movs r3, #1 + 800155c: e000 b.n 8001560 + 800155e: 2300 movs r3, #0 +} + 8001560: 4618 mov r0, r3 + 8001562: 370c adds r7, #12 + 8001564: 46bd mov sp, r7 + 8001566: f85d 7b04 ldr.w r7, [sp], #4 + 800156a: 4770 bx lr + +0800156c : + * @rmtoll CR ADVREGEN LL_ADC_EnableInternalRegulator + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx) +{ + 800156c: b480 push {r7} + 800156e: b083 sub sp, #12 + 8001570: af00 add r7, sp, #0 + 8001572: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + 8001574: 687b ldr r3, [r7, #4] + 8001576: 689b ldr r3, [r3, #8] + 8001578: f023 4310 bic.w r3, r3, #2415919104 @ 0x90000000 + 800157c: f023 033f bic.w r3, r3, #63 @ 0x3f + 8001580: f043 5280 orr.w r2, r3, #268435456 @ 0x10000000 + 8001584: 687b ldr r3, [r7, #4] + 8001586: 609a str r2, [r3, #8] + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADVREGEN); +} + 8001588: bf00 nop + 800158a: 370c adds r7, #12 + 800158c: 46bd mov sp, r7 + 800158e: f85d 7b04 ldr.w r7, [sp], #4 + 8001592: 4770 bx lr + +08001594 : + * @rmtoll CR ADVREGEN LL_ADC_IsInternalRegulatorEnabled + * @param ADCx ADC instance + * @retval 0: internal regulator is disabled, 1: internal regulator is enabled. + */ +__STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(const ADC_TypeDef *ADCx) +{ + 8001594: b480 push {r7} + 8001596: b083 sub sp, #12 + 8001598: af00 add r7, sp, #0 + 800159a: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN)) ? 1UL : 0UL); + 800159c: 687b ldr r3, [r7, #4] + 800159e: 689b ldr r3, [r3, #8] + 80015a0: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80015a4: f1b3 5f80 cmp.w r3, #268435456 @ 0x10000000 + 80015a8: d101 bne.n 80015ae + 80015aa: 2301 movs r3, #1 + 80015ac: e000 b.n 80015b0 + 80015ae: 2300 movs r3, #0 +} + 80015b0: 4618 mov r0, r3 + 80015b2: 370c adds r7, #12 + 80015b4: 46bd mov sp, r7 + 80015b6: f85d 7b04 ldr.w r7, [sp], #4 + 80015ba: 4770 bx lr + +080015bc : + * @rmtoll CR ADEN LL_ADC_Enable + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx) +{ + 80015bc: b480 push {r7} + 80015be: b083 sub sp, #12 + 80015c0: af00 add r7, sp, #0 + 80015c2: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + 80015c4: 687b ldr r3, [r7, #4] + 80015c6: 689b ldr r3, [r3, #8] + 80015c8: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 + 80015cc: f023 033f bic.w r3, r3, #63 @ 0x3f + 80015d0: f043 0201 orr.w r2, r3, #1 + 80015d4: 687b ldr r3, [r7, #4] + 80015d6: 609a str r2, [r3, #8] + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADEN); +} + 80015d8: bf00 nop + 80015da: 370c adds r7, #12 + 80015dc: 46bd mov sp, r7 + 80015de: f85d 7b04 ldr.w r7, [sp], #4 + 80015e2: 4770 bx lr + +080015e4 : + * @rmtoll CR ADDIS LL_ADC_Disable + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx) +{ + 80015e4: b480 push {r7} + 80015e6: b083 sub sp, #12 + 80015e8: af00 add r7, sp, #0 + 80015ea: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + 80015ec: 687b ldr r3, [r7, #4] + 80015ee: 689b ldr r3, [r3, #8] + 80015f0: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 + 80015f4: f023 033f bic.w r3, r3, #63 @ 0x3f + 80015f8: f043 0202 orr.w r2, r3, #2 + 80015fc: 687b ldr r3, [r7, #4] + 80015fe: 609a str r2, [r3, #8] + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADDIS); +} + 8001600: bf00 nop + 8001602: 370c adds r7, #12 + 8001604: 46bd mov sp, r7 + 8001606: f85d 7b04 ldr.w r7, [sp], #4 + 800160a: 4770 bx lr + +0800160c : + * @rmtoll CR ADEN LL_ADC_IsEnabled + * @param ADCx ADC instance + * @retval 0: ADC is disabled, 1: ADC is enabled. + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabled(const ADC_TypeDef *ADCx) +{ + 800160c: b480 push {r7} + 800160e: b083 sub sp, #12 + 8001610: af00 add r7, sp, #0 + 8001612: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL); + 8001614: 687b ldr r3, [r7, #4] + 8001616: 689b ldr r3, [r3, #8] + 8001618: f003 0301 and.w r3, r3, #1 + 800161c: 2b01 cmp r3, #1 + 800161e: d101 bne.n 8001624 + 8001620: 2301 movs r3, #1 + 8001622: e000 b.n 8001626 + 8001624: 2300 movs r3, #0 +} + 8001626: 4618 mov r0, r3 + 8001628: 370c adds r7, #12 + 800162a: 46bd mov sp, r7 + 800162c: f85d 7b04 ldr.w r7, [sp], #4 + 8001630: 4770 bx lr + +08001632 : + * @rmtoll CR ADDIS LL_ADC_IsDisableOngoing + * @param ADCx ADC instance + * @retval 0: no ADC disable command on going. + */ +__STATIC_INLINE uint32_t LL_ADC_IsDisableOngoing(const ADC_TypeDef *ADCx) +{ + 8001632: b480 push {r7} + 8001634: b083 sub sp, #12 + 8001636: af00 add r7, sp, #0 + 8001638: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS)) ? 1UL : 0UL); + 800163a: 687b ldr r3, [r7, #4] + 800163c: 689b ldr r3, [r3, #8] + 800163e: f003 0302 and.w r3, r3, #2 + 8001642: 2b02 cmp r3, #2 + 8001644: d101 bne.n 800164a + 8001646: 2301 movs r3, #1 + 8001648: e000 b.n 800164c + 800164a: 2300 movs r3, #0 +} + 800164c: 4618 mov r0, r3 + 800164e: 370c adds r7, #12 + 8001650: 46bd mov sp, r7 + 8001652: f85d 7b04 ldr.w r7, [sp], #4 + 8001656: 4770 bx lr + +08001658 : + * @rmtoll CR ADSTART LL_ADC_REG_StartConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx) +{ + 8001658: b480 push {r7} + 800165a: b083 sub sp, #12 + 800165c: af00 add r7, sp, #0 + 800165e: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + 8001660: 687b ldr r3, [r7, #4] + 8001662: 689b ldr r3, [r3, #8] + 8001664: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 + 8001668: f023 033f bic.w r3, r3, #63 @ 0x3f + 800166c: f043 0204 orr.w r2, r3, #4 + 8001670: 687b ldr r3, [r7, #4] + 8001672: 609a str r2, [r3, #8] + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADSTART); +} + 8001674: bf00 nop + 8001676: 370c adds r7, #12 + 8001678: 46bd mov sp, r7 + 800167a: f85d 7b04 ldr.w r7, [sp], #4 + 800167e: 4770 bx lr + +08001680 : + * @rmtoll CR ADSTP LL_ADC_REG_StopConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx) +{ + 8001680: b480 push {r7} + 8001682: b083 sub sp, #12 + 8001684: af00 add r7, sp, #0 + 8001686: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + 8001688: 687b ldr r3, [r7, #4] + 800168a: 689b ldr r3, [r3, #8] + 800168c: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 + 8001690: f023 033f bic.w r3, r3, #63 @ 0x3f + 8001694: f043 0210 orr.w r2, r3, #16 + 8001698: 687b ldr r3, [r7, #4] + 800169a: 609a str r2, [r3, #8] + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADSTP); +} + 800169c: bf00 nop + 800169e: 370c adds r7, #12 + 80016a0: 46bd mov sp, r7 + 80016a2: f85d 7b04 ldr.w r7, [sp], #4 + 80016a6: 4770 bx lr + +080016a8 : + * @rmtoll CR ADSTART LL_ADC_REG_IsConversionOngoing + * @param ADCx ADC instance + * @retval 0: no conversion is on going on ADC group regular. + */ +__STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(const ADC_TypeDef *ADCx) +{ + 80016a8: b480 push {r7} + 80016aa: b083 sub sp, #12 + 80016ac: af00 add r7, sp, #0 + 80016ae: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL); + 80016b0: 687b ldr r3, [r7, #4] + 80016b2: 689b ldr r3, [r3, #8] + 80016b4: f003 0304 and.w r3, r3, #4 + 80016b8: 2b04 cmp r3, #4 + 80016ba: d101 bne.n 80016c0 + 80016bc: 2301 movs r3, #1 + 80016be: e000 b.n 80016c2 + 80016c0: 2300 movs r3, #0 +} + 80016c2: 4618 mov r0, r3 + 80016c4: 370c adds r7, #12 + 80016c6: 46bd mov sp, r7 + 80016c8: f85d 7b04 ldr.w r7, [sp], #4 + 80016cc: 4770 bx lr + +080016ce : + * @rmtoll CR JADSTP LL_ADC_INJ_StopConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx) +{ + 80016ce: b480 push {r7} + 80016d0: b083 sub sp, #12 + 80016d2: af00 add r7, sp, #0 + 80016d4: 6078 str r0, [r7, #4] + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + 80016d6: 687b ldr r3, [r7, #4] + 80016d8: 689b ldr r3, [r3, #8] + 80016da: f023 4300 bic.w r3, r3, #2147483648 @ 0x80000000 + 80016de: f023 033f bic.w r3, r3, #63 @ 0x3f + 80016e2: f043 0220 orr.w r2, r3, #32 + 80016e6: 687b ldr r3, [r7, #4] + 80016e8: 609a str r2, [r3, #8] + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_JADSTP); +} + 80016ea: bf00 nop + 80016ec: 370c adds r7, #12 + 80016ee: 46bd mov sp, r7 + 80016f0: f85d 7b04 ldr.w r7, [sp], #4 + 80016f4: 4770 bx lr + +080016f6 : + * @rmtoll CR JADSTART LL_ADC_INJ_IsConversionOngoing + * @param ADCx ADC instance + * @retval 0: no conversion is on going on ADC group injected. + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_IsConversionOngoing(const ADC_TypeDef *ADCx) +{ + 80016f6: b480 push {r7} + 80016f8: b083 sub sp, #12 + 80016fa: af00 add r7, sp, #0 + 80016fc: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART)) ? 1UL : 0UL); + 80016fe: 687b ldr r3, [r7, #4] + 8001700: 689b ldr r3, [r3, #8] + 8001702: f003 0308 and.w r3, r3, #8 + 8001706: 2b08 cmp r3, #8 + 8001708: d101 bne.n 800170e + 800170a: 2301 movs r3, #1 + 800170c: e000 b.n 8001710 + 800170e: 2300 movs r3, #0 +} + 8001710: 4618 mov r0, r3 + 8001712: 370c adds r7, #12 + 8001714: 46bd mov sp, r7 + 8001716: f85d 7b04 ldr.w r7, [sp], #4 + 800171a: 4770 bx lr + +0800171c : + * without disabling the other ADCs. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) +{ + 800171c: b590 push {r4, r7, lr} + 800171e: b089 sub sp, #36 @ 0x24 + 8001720: af00 add r7, sp, #0 + 8001722: 6078 str r0, [r7, #4] + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 8001724: 2300 movs r3, #0 + 8001726: 77fb strb r3, [r7, #31] + uint32_t tmp_cfgr; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + __IO uint32_t wait_loop_index = 0UL; + 8001728: 2300 movs r3, #0 + 800172a: 60fb str r3, [r7, #12] + + /* Check ADC handle */ + if (hadc == NULL) + 800172c: 687b ldr r3, [r7, #4] + 800172e: 2b00 cmp r3, #0 + 8001730: d101 bne.n 8001736 + { + return HAL_ERROR; + 8001732: 2301 movs r3, #1 + 8001734: e167 b.n 8001a06 + assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); + assert_param(IS_ADC_OVERRUN(hadc->Init.Overrun)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoWait)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.OversamplingMode)); + + if (hadc->Init.ScanConvMode != ADC_SCAN_DISABLE) + 8001736: 687b ldr r3, [r7, #4] + 8001738: 695b ldr r3, [r3, #20] + 800173a: 2b00 cmp r3, #0 + /* DISCEN and CONT bits cannot be set at the same time */ + assert_param(!((hadc->Init.DiscontinuousConvMode == ENABLE) && (hadc->Init.ContinuousConvMode == ENABLE))); + + /* Actions performed only if ADC is coming from state reset: */ + /* - Initialization of ADC MSP */ + if (hadc->State == HAL_ADC_STATE_RESET) + 800173c: 687b ldr r3, [r7, #4] + 800173e: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001740: 2b00 cmp r3, #0 + 8001742: d109 bne.n 8001758 + + /* Init the low level hardware */ + hadc->MspInitCallback(hadc); +#else + /* Init the low level hardware */ + HAL_ADC_MspInit(hadc); + 8001744: 6878 ldr r0, [r7, #4] + 8001746: f7ff fb6f bl 8000e28 +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Set ADC error code to none */ + ADC_CLEAR_ERRORCODE(hadc); + 800174a: 687b ldr r3, [r7, #4] + 800174c: 2200 movs r2, #0 + 800174e: 661a str r2, [r3, #96] @ 0x60 + + /* Initialize Lock */ + hadc->Lock = HAL_UNLOCKED; + 8001750: 687b ldr r3, [r7, #4] + 8001752: 2200 movs r2, #0 + 8001754: f883 2058 strb.w r2, [r3, #88] @ 0x58 + } + + /* - Exit from deep-power-down mode and ADC voltage regulator enable */ + if (LL_ADC_IsDeepPowerDownEnabled(hadc->Instance) != 0UL) + 8001758: 687b ldr r3, [r7, #4] + 800175a: 681b ldr r3, [r3, #0] + 800175c: 4618 mov r0, r3 + 800175e: f7ff fef1 bl 8001544 + 8001762: 4603 mov r3, r0 + 8001764: 2b00 cmp r3, #0 + 8001766: d004 beq.n 8001772 + { + /* Disable ADC deep power down mode */ + LL_ADC_DisableDeepPowerDown(hadc->Instance); + 8001768: 687b ldr r3, [r7, #4] + 800176a: 681b ldr r3, [r3, #0] + 800176c: 4618 mov r0, r3 + 800176e: f7ff fed7 bl 8001520 + /* System was in deep power down mode, calibration must + be relaunched or a previously saved calibration factor + re-applied once the ADC voltage regulator is enabled */ + } + + if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL) + 8001772: 687b ldr r3, [r7, #4] + 8001774: 681b ldr r3, [r3, #0] + 8001776: 4618 mov r0, r3 + 8001778: f7ff ff0c bl 8001594 + 800177c: 4603 mov r3, r0 + 800177e: 2b00 cmp r3, #0 + 8001780: d115 bne.n 80017ae + { + /* Enable ADC internal voltage regulator */ + LL_ADC_EnableInternalRegulator(hadc->Instance); + 8001782: 687b ldr r3, [r7, #4] + 8001784: 681b ldr r3, [r3, #0] + 8001786: 4618 mov r0, r3 + 8001788: f7ff fef0 bl 800156c + + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_INTERNAL_REGUL_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL)); + 800178c: 4ba0 ldr r3, [pc, #640] @ (8001a10 ) + 800178e: 681b ldr r3, [r3, #0] + 8001790: 099b lsrs r3, r3, #6 + 8001792: 4aa0 ldr r2, [pc, #640] @ (8001a14 ) + 8001794: fba2 2303 umull r2, r3, r2, r3 + 8001798: 099b lsrs r3, r3, #6 + 800179a: 3301 adds r3, #1 + 800179c: 005b lsls r3, r3, #1 + 800179e: 60fb str r3, [r7, #12] + while (wait_loop_index != 0UL) + 80017a0: e002 b.n 80017a8 + { + wait_loop_index--; + 80017a2: 68fb ldr r3, [r7, #12] + 80017a4: 3b01 subs r3, #1 + 80017a6: 60fb str r3, [r7, #12] + while (wait_loop_index != 0UL) + 80017a8: 68fb ldr r3, [r7, #12] + 80017aa: 2b00 cmp r3, #0 + 80017ac: d1f9 bne.n 80017a2 + } + + /* Verification that ADC voltage regulator is correctly enabled, whether */ + /* or not ADC is coming from state reset (if any potential problem of */ + /* clocking, voltage regulator would not be enabled). */ + if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL) + 80017ae: 687b ldr r3, [r7, #4] + 80017b0: 681b ldr r3, [r3, #0] + 80017b2: 4618 mov r0, r3 + 80017b4: f7ff feee bl 8001594 + 80017b8: 4603 mov r3, r0 + 80017ba: 2b00 cmp r3, #0 + 80017bc: d10d bne.n 80017da + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 80017be: 687b ldr r3, [r7, #4] + 80017c0: 6ddb ldr r3, [r3, #92] @ 0x5c + 80017c2: f043 0210 orr.w r2, r3, #16 + 80017c6: 687b ldr r3, [r7, #4] + 80017c8: 65da str r2, [r3, #92] @ 0x5c + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 80017ca: 687b ldr r3, [r7, #4] + 80017cc: 6e1b ldr r3, [r3, #96] @ 0x60 + 80017ce: f043 0201 orr.w r2, r3, #1 + 80017d2: 687b ldr r3, [r7, #4] + 80017d4: 661a str r2, [r3, #96] @ 0x60 + + tmp_hal_status = HAL_ERROR; + 80017d6: 2301 movs r3, #1 + 80017d8: 77fb strb r3, [r7, #31] + + /* Configuration of ADC parameters if previous preliminary actions are */ + /* correctly completed and if there is no conversion on going on regular */ + /* group (ADC may already be enabled at this point if HAL_ADC_Init() is */ + /* called to update a parameter on the fly). */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 80017da: 687b ldr r3, [r7, #4] + 80017dc: 681b ldr r3, [r3, #0] + 80017de: 4618 mov r0, r3 + 80017e0: f7ff ff62 bl 80016a8 + 80017e4: 6178 str r0, [r7, #20] + + if (((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) + 80017e6: 687b ldr r3, [r7, #4] + 80017e8: 6ddb ldr r3, [r3, #92] @ 0x5c + 80017ea: f003 0310 and.w r3, r3, #16 + 80017ee: 2b00 cmp r3, #0 + 80017f0: f040 8100 bne.w 80019f4 + && (tmp_adc_is_conversion_on_going_regular == 0UL) + 80017f4: 697b ldr r3, [r7, #20] + 80017f6: 2b00 cmp r3, #0 + 80017f8: f040 80fc bne.w 80019f4 + ) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + 80017fc: 687b ldr r3, [r7, #4] + 80017fe: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001800: f423 7381 bic.w r3, r3, #258 @ 0x102 + 8001804: f043 0202 orr.w r2, r3, #2 + 8001808: 687b ldr r3, [r7, #4] + 800180a: 65da str r2, [r3, #92] @ 0x5c + /* Configuration of common ADC parameters */ + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated only when ADC is disabled: */ + /* - clock configuration */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 800180c: 687b ldr r3, [r7, #4] + 800180e: 681b ldr r3, [r3, #0] + 8001810: 4618 mov r0, r3 + 8001812: f7ff fefb bl 800160c + 8001816: 4603 mov r3, r0 + 8001818: 2b00 cmp r3, #0 + 800181a: d111 bne.n 8001840 + { + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 800181c: f04f 40a0 mov.w r0, #1342177280 @ 0x50000000 + 8001820: f7ff fef4 bl 800160c + 8001824: 4604 mov r4, r0 + 8001826: 487c ldr r0, [pc, #496] @ (8001a18 ) + 8001828: f7ff fef0 bl 800160c + 800182c: 4603 mov r3, r0 + 800182e: 4323 orrs r3, r4 + 8001830: 2b00 cmp r3, #0 + 8001832: d105 bne.n 8001840 + /* parameters: MDMA, DMACFG, DELAY, DUAL (set by API */ + /* HAL_ADCEx_MultiModeConfigChannel() ) */ + /* - internal measurement paths: Vbat, temperature sensor, Vref */ + /* (set into HAL_ADC_ConfigChannel() or */ + /* HAL_ADCEx_InjectedConfigChannel() ) */ + LL_ADC_SetCommonClock(__LL_ADC_COMMON_INSTANCE(hadc->Instance), hadc->Init.ClockPrescaler); + 8001834: 687b ldr r3, [r7, #4] + 8001836: 685b ldr r3, [r3, #4] + 8001838: 4619 mov r1, r3 + 800183a: 4878 ldr r0, [pc, #480] @ (8001a1c ) + 800183c: f7ff fcf4 bl 8001228 + /* - external trigger polarity Init.ExternalTrigConvEdge */ + /* - continuous conversion mode Init.ContinuousConvMode */ + /* - overrun Init.Overrun */ + /* - discontinuous mode Init.DiscontinuousConvMode */ + /* - discontinuous mode channel count Init.NbrOfDiscConversion */ + tmp_cfgr = (ADC_CFGR_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | + 8001840: 687b ldr r3, [r7, #4] + 8001842: 7f5b ldrb r3, [r3, #29] + 8001844: 035a lsls r2, r3, #13 + hadc->Init.Overrun | + 8001846: 687b ldr r3, [r7, #4] + 8001848: 6bdb ldr r3, [r3, #60] @ 0x3c + tmp_cfgr = (ADC_CFGR_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | + 800184a: 431a orrs r2, r3 + hadc->Init.DataAlign | + 800184c: 687b ldr r3, [r7, #4] + 800184e: 68db ldr r3, [r3, #12] + hadc->Init.Overrun | + 8001850: 431a orrs r2, r3 + hadc->Init.Resolution | + 8001852: 687b ldr r3, [r7, #4] + 8001854: 689b ldr r3, [r3, #8] + hadc->Init.DataAlign | + 8001856: 431a orrs r2, r3 + ADC_CFGR_REG_DISCONTINUOUS((uint32_t)hadc->Init.DiscontinuousConvMode)); + 8001858: 687b ldr r3, [r7, #4] + 800185a: f893 3024 ldrb.w r3, [r3, #36] @ 0x24 + 800185e: 041b lsls r3, r3, #16 + tmp_cfgr = (ADC_CFGR_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | + 8001860: 4313 orrs r3, r2 + 8001862: 61bb str r3, [r7, #24] + + if (hadc->Init.DiscontinuousConvMode == ENABLE) + 8001864: 687b ldr r3, [r7, #4] + 8001866: f893 3024 ldrb.w r3, [r3, #36] @ 0x24 + 800186a: 2b01 cmp r3, #1 + 800186c: d106 bne.n 800187c + { + tmp_cfgr |= ADC_CFGR_DISCONTINUOUS_NUM(hadc->Init.NbrOfDiscConversion); + 800186e: 687b ldr r3, [r7, #4] + 8001870: 6a9b ldr r3, [r3, #40] @ 0x28 + 8001872: 3b01 subs r3, #1 + 8001874: 045b lsls r3, r3, #17 + 8001876: 69ba ldr r2, [r7, #24] + 8001878: 4313 orrs r3, r2 + 800187a: 61bb str r3, [r7, #24] + /* Enable external trigger if trigger selection is different of software */ + /* start. */ + /* Note: This configuration keeps the hardware feature of parameter */ + /* ExternalTrigConvEdge "trigger edge none" equivalent to */ + /* software start. */ + if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) + 800187c: 687b ldr r3, [r7, #4] + 800187e: 6adb ldr r3, [r3, #44] @ 0x2c + 8001880: 2b00 cmp r3, #0 + 8001882: d009 beq.n 8001898 + { + tmp_cfgr |= ((hadc->Init.ExternalTrigConv & ADC_CFGR_EXTSEL) + 8001884: 687b ldr r3, [r7, #4] + 8001886: 6adb ldr r3, [r3, #44] @ 0x2c + 8001888: f403 7278 and.w r2, r3, #992 @ 0x3e0 + | hadc->Init.ExternalTrigConvEdge + 800188c: 687b ldr r3, [r7, #4] + 800188e: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001890: 4313 orrs r3, r2 + tmp_cfgr |= ((hadc->Init.ExternalTrigConv & ADC_CFGR_EXTSEL) + 8001892: 69ba ldr r2, [r7, #24] + 8001894: 4313 orrs r3, r2 + 8001896: 61bb str r3, [r7, #24] + ); + } + + /* Update Configuration Register CFGR */ + MODIFY_REG(hadc->Instance->CFGR, ADC_CFGR_FIELDS_1, tmp_cfgr); + 8001898: 687b ldr r3, [r7, #4] + 800189a: 681b ldr r3, [r3, #0] + 800189c: 68da ldr r2, [r3, #12] + 800189e: 4b60 ldr r3, [pc, #384] @ (8001a20 ) + 80018a0: 4013 ands r3, r2 + 80018a2: 687a ldr r2, [r7, #4] + 80018a4: 6812 ldr r2, [r2, #0] + 80018a6: 69b9 ldr r1, [r7, #24] + 80018a8: 430b orrs r3, r1 + 80018aa: 60d3 str r3, [r2, #12] + + /* Configuration of sampling mode */ + MODIFY_REG(hadc->Instance->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG, hadc->Init.SamplingMode); + 80018ac: 687b ldr r3, [r7, #4] + 80018ae: 681b ldr r3, [r3, #0] + 80018b0: 691b ldr r3, [r3, #16] + 80018b2: f023 6140 bic.w r1, r3, #201326592 @ 0xc000000 + 80018b6: 687b ldr r3, [r7, #4] + 80018b8: 6b5a ldr r2, [r3, #52] @ 0x34 + 80018ba: 687b ldr r3, [r7, #4] + 80018bc: 681b ldr r3, [r3, #0] + 80018be: 430a orrs r2, r1 + 80018c0: 611a str r2, [r3, #16] + /* conversion on going on regular and injected groups: */ + /* - Gain Compensation Init.GainCompensation */ + /* - DMA continuous request Init.DMAContinuousRequests */ + /* - LowPowerAutoWait feature Init.LowPowerAutoWait */ + /* - Oversampling parameters Init.Oversampling */ + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 80018c2: 687b ldr r3, [r7, #4] + 80018c4: 681b ldr r3, [r3, #0] + 80018c6: 4618 mov r0, r3 + 80018c8: f7ff ff15 bl 80016f6 + 80018cc: 6138 str r0, [r7, #16] + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 80018ce: 697b ldr r3, [r7, #20] + 80018d0: 2b00 cmp r3, #0 + 80018d2: d16d bne.n 80019b0 + && (tmp_adc_is_conversion_on_going_injected == 0UL) + 80018d4: 693b ldr r3, [r7, #16] + 80018d6: 2b00 cmp r3, #0 + 80018d8: d16a bne.n 80019b0 + ) + { + tmp_cfgr = (ADC_CFGR_DFSDM(hadc) | + ADC_CFGR_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait) | + 80018da: 687b ldr r3, [r7, #4] + 80018dc: 7f1b ldrb r3, [r3, #28] + tmp_cfgr = (ADC_CFGR_DFSDM(hadc) | + 80018de: 039a lsls r2, r3, #14 + ADC_CFGR_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests)); + 80018e0: 687b ldr r3, [r7, #4] + 80018e2: f893 3038 ldrb.w r3, [r3, #56] @ 0x38 + 80018e6: 005b lsls r3, r3, #1 + tmp_cfgr = (ADC_CFGR_DFSDM(hadc) | + 80018e8: 4313 orrs r3, r2 + 80018ea: 61bb str r3, [r7, #24] + + MODIFY_REG(hadc->Instance->CFGR, ADC_CFGR_FIELDS_2, tmp_cfgr); + 80018ec: 687b ldr r3, [r7, #4] + 80018ee: 681b ldr r3, [r3, #0] + 80018f0: 68db ldr r3, [r3, #12] + 80018f2: f423 4380 bic.w r3, r3, #16384 @ 0x4000 + 80018f6: f023 0302 bic.w r3, r3, #2 + 80018fa: 687a ldr r2, [r7, #4] + 80018fc: 6812 ldr r2, [r2, #0] + 80018fe: 69b9 ldr r1, [r7, #24] + 8001900: 430b orrs r3, r1 + 8001902: 60d3 str r3, [r2, #12] + + if (hadc->Init.GainCompensation != 0UL) + 8001904: 687b ldr r3, [r7, #4] + 8001906: 691b ldr r3, [r3, #16] + 8001908: 2b00 cmp r3, #0 + 800190a: d017 beq.n 800193c + { + SET_BIT(hadc->Instance->CFGR2, ADC_CFGR2_GCOMP); + 800190c: 687b ldr r3, [r7, #4] + 800190e: 681b ldr r3, [r3, #0] + 8001910: 691a ldr r2, [r3, #16] + 8001912: 687b ldr r3, [r7, #4] + 8001914: 681b ldr r3, [r3, #0] + 8001916: f442 3280 orr.w r2, r2, #65536 @ 0x10000 + 800191a: 611a str r2, [r3, #16] + MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, hadc->Init.GainCompensation); + 800191c: 687b ldr r3, [r7, #4] + 800191e: 681b ldr r3, [r3, #0] + 8001920: f8d3 30c0 ldr.w r3, [r3, #192] @ 0xc0 + 8001924: f423 537f bic.w r3, r3, #16320 @ 0x3fc0 + 8001928: f023 033f bic.w r3, r3, #63 @ 0x3f + 800192c: 687a ldr r2, [r7, #4] + 800192e: 6911 ldr r1, [r2, #16] + 8001930: 687a ldr r2, [r7, #4] + 8001932: 6812 ldr r2, [r2, #0] + 8001934: 430b orrs r3, r1 + 8001936: f8c2 30c0 str.w r3, [r2, #192] @ 0xc0 + 800193a: e013 b.n 8001964 + } + else + { + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_GCOMP); + 800193c: 687b ldr r3, [r7, #4] + 800193e: 681b ldr r3, [r3, #0] + 8001940: 691a ldr r2, [r3, #16] + 8001942: 687b ldr r3, [r7, #4] + 8001944: 681b ldr r3, [r3, #0] + 8001946: f422 3280 bic.w r2, r2, #65536 @ 0x10000 + 800194a: 611a str r2, [r3, #16] + MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, 0UL); + 800194c: 687b ldr r3, [r7, #4] + 800194e: 681b ldr r3, [r3, #0] + 8001950: f8d3 30c0 ldr.w r3, [r3, #192] @ 0xc0 + 8001954: 687a ldr r2, [r7, #4] + 8001956: 6812 ldr r2, [r2, #0] + 8001958: f423 537f bic.w r3, r3, #16320 @ 0x3fc0 + 800195c: f023 033f bic.w r3, r3, #63 @ 0x3f + 8001960: f8c2 30c0 str.w r3, [r2, #192] @ 0xc0 + } + + if (hadc->Init.OversamplingMode == ENABLE) + 8001964: 687b ldr r3, [r7, #4] + 8001966: f893 3040 ldrb.w r3, [r3, #64] @ 0x40 + 800196a: 2b01 cmp r3, #1 + 800196c: d118 bne.n 80019a0 + /* Configuration of Oversampler: */ + /* - Oversampling Ratio */ + /* - Right bit shift */ + /* - Triggered mode */ + /* - Oversampling mode (continued/resumed) */ + MODIFY_REG(hadc->Instance->CFGR2, + 800196e: 687b ldr r3, [r7, #4] + 8001970: 681b ldr r3, [r3, #0] + 8001972: 691b ldr r3, [r3, #16] + 8001974: f423 63ff bic.w r3, r3, #2040 @ 0x7f8 + 8001978: f023 0304 bic.w r3, r3, #4 + 800197c: 687a ldr r2, [r7, #4] + 800197e: 6c51 ldr r1, [r2, #68] @ 0x44 + 8001980: 687a ldr r2, [r7, #4] + 8001982: 6c92 ldr r2, [r2, #72] @ 0x48 + 8001984: 4311 orrs r1, r2 + 8001986: 687a ldr r2, [r7, #4] + 8001988: 6cd2 ldr r2, [r2, #76] @ 0x4c + 800198a: 4311 orrs r1, r2 + 800198c: 687a ldr r2, [r7, #4] + 800198e: 6d12 ldr r2, [r2, #80] @ 0x50 + 8001990: 430a orrs r2, r1 + 8001992: 431a orrs r2, r3 + 8001994: 687b ldr r3, [r7, #4] + 8001996: 681b ldr r3, [r3, #0] + 8001998: f042 0201 orr.w r2, r2, #1 + 800199c: 611a str r2, [r3, #16] + 800199e: e007 b.n 80019b0 + ); + } + else + { + /* Disable ADC oversampling scope on ADC group regular */ + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSE); + 80019a0: 687b ldr r3, [r7, #4] + 80019a2: 681b ldr r3, [r3, #0] + 80019a4: 691a ldr r2, [r3, #16] + 80019a6: 687b ldr r3, [r7, #4] + 80019a8: 681b ldr r3, [r3, #0] + 80019aa: f022 0201 bic.w r2, r2, #1 + 80019ae: 611a str r2, [r3, #16] + /* Note: Scan mode is not present by hardware on this device, but */ + /* emulated by software for alignment over all STM32 devices. */ + /* - if scan mode is enabled, regular channels sequence length is set to */ + /* parameter "NbrOfConversion". */ + + if (hadc->Init.ScanConvMode == ADC_SCAN_ENABLE) + 80019b0: 687b ldr r3, [r7, #4] + 80019b2: 695b ldr r3, [r3, #20] + 80019b4: 2b01 cmp r3, #1 + 80019b6: d10c bne.n 80019d2 + { + /* Set number of ranks in regular group sequencer */ + MODIFY_REG(hadc->Instance->SQR1, ADC_SQR1_L, (hadc->Init.NbrOfConversion - (uint8_t)1)); + 80019b8: 687b ldr r3, [r7, #4] + 80019ba: 681b ldr r3, [r3, #0] + 80019bc: 6b1b ldr r3, [r3, #48] @ 0x30 + 80019be: f023 010f bic.w r1, r3, #15 + 80019c2: 687b ldr r3, [r7, #4] + 80019c4: 6a1b ldr r3, [r3, #32] + 80019c6: 1e5a subs r2, r3, #1 + 80019c8: 687b ldr r3, [r7, #4] + 80019ca: 681b ldr r3, [r3, #0] + 80019cc: 430a orrs r2, r1 + 80019ce: 631a str r2, [r3, #48] @ 0x30 + 80019d0: e007 b.n 80019e2 + } + else + { + CLEAR_BIT(hadc->Instance->SQR1, ADC_SQR1_L); + 80019d2: 687b ldr r3, [r7, #4] + 80019d4: 681b ldr r3, [r3, #0] + 80019d6: 6b1a ldr r2, [r3, #48] @ 0x30 + 80019d8: 687b ldr r3, [r7, #4] + 80019da: 681b ldr r3, [r3, #0] + 80019dc: f022 020f bic.w r2, r2, #15 + 80019e0: 631a str r2, [r3, #48] @ 0x30 + } + + /* Initialize the ADC state */ + /* Clear HAL_ADC_STATE_BUSY_INTERNAL bit, set HAL_ADC_STATE_READY bit */ + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL, HAL_ADC_STATE_READY); + 80019e2: 687b ldr r3, [r7, #4] + 80019e4: 6ddb ldr r3, [r3, #92] @ 0x5c + 80019e6: f023 0303 bic.w r3, r3, #3 + 80019ea: f043 0201 orr.w r2, r3, #1 + 80019ee: 687b ldr r3, [r7, #4] + 80019f0: 65da str r2, [r3, #92] @ 0x5c + 80019f2: e007 b.n 8001a04 + } + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 80019f4: 687b ldr r3, [r7, #4] + 80019f6: 6ddb ldr r3, [r3, #92] @ 0x5c + 80019f8: f043 0210 orr.w r2, r3, #16 + 80019fc: 687b ldr r3, [r7, #4] + 80019fe: 65da str r2, [r3, #92] @ 0x5c + + tmp_hal_status = HAL_ERROR; + 8001a00: 2301 movs r3, #1 + 8001a02: 77fb strb r3, [r7, #31] + } + + /* Return function status */ + return tmp_hal_status; + 8001a04: 7ffb ldrb r3, [r7, #31] +} + 8001a06: 4618 mov r0, r3 + 8001a08: 3724 adds r7, #36 @ 0x24 + 8001a0a: 46bd mov sp, r7 + 8001a0c: bd90 pop {r4, r7, pc} + 8001a0e: bf00 nop + 8001a10: 20000000 .word 0x20000000 + 8001a14: 053e2d63 .word 0x053e2d63 + 8001a18: 50000100 .word 0x50000100 + 8001a1c: 50000300 .word 0x50000300 + 8001a20: fff04007 .word 0xfff04007 + +08001a24 : + * if ADC is master, ADC is enabled and multimode conversion is started. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) +{ + 8001a24: b580 push {r7, lr} + 8001a26: b086 sub sp, #24 + 8001a28: af00 add r7, sp, #0 + 8001a2a: 6078 str r0, [r7, #4] + HAL_StatusTypeDef tmp_hal_status; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 8001a2c: 4859 ldr r0, [pc, #356] @ (8001b94 ) + 8001a2e: f7ff fd5b bl 80014e8 + 8001a32: 6138 str r0, [r7, #16] + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Perform ADC enable and conversion start if no conversion is on going */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + 8001a34: 687b ldr r3, [r7, #4] + 8001a36: 681b ldr r3, [r3, #0] + 8001a38: 4618 mov r0, r3 + 8001a3a: f7ff fe35 bl 80016a8 + 8001a3e: 4603 mov r3, r0 + 8001a40: 2b00 cmp r3, #0 + 8001a42: f040 809f bne.w 8001b84 + { + /* Process locked */ + __HAL_LOCK(hadc); + 8001a46: 687b ldr r3, [r7, #4] + 8001a48: f893 3058 ldrb.w r3, [r3, #88] @ 0x58 + 8001a4c: 2b01 cmp r3, #1 + 8001a4e: d101 bne.n 8001a54 + 8001a50: 2302 movs r3, #2 + 8001a52: e09a b.n 8001b8a + 8001a54: 687b ldr r3, [r7, #4] + 8001a56: 2201 movs r2, #1 + 8001a58: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + /* Enable the ADC peripheral */ + tmp_hal_status = ADC_Enable(hadc); + 8001a5c: 6878 ldr r0, [r7, #4] + 8001a5e: f000 fe63 bl 8002728 + 8001a62: 4603 mov r3, r0 + 8001a64: 75fb strb r3, [r7, #23] + + /* Start conversion if ADC is effectively enabled */ + if (tmp_hal_status == HAL_OK) + 8001a66: 7dfb ldrb r3, [r7, #23] + 8001a68: 2b00 cmp r3, #0 + 8001a6a: f040 8086 bne.w 8001b7a + { + /* Set ADC state */ + /* - Clear state bitfield related to regular group conversion results */ + /* - Set state bitfield related to regular operation */ + ADC_STATE_CLR_SET(hadc->State, + 8001a6e: 687b ldr r3, [r7, #4] + 8001a70: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001a72: f423 6370 bic.w r3, r3, #3840 @ 0xf00 + 8001a76: f023 0301 bic.w r3, r3, #1 + 8001a7a: f443 7280 orr.w r2, r3, #256 @ 0x100 + 8001a7e: 687b ldr r3, [r7, #4] + 8001a80: 65da str r2, [r3, #92] @ 0x5c + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + - if ADC instance is master or if multimode feature is not available + - if multimode setting is disabled (ADC instance slave in independent mode) */ + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 8001a82: 687b ldr r3, [r7, #4] + 8001a84: 681b ldr r3, [r3, #0] + 8001a86: 4a44 ldr r2, [pc, #272] @ (8001b98 ) + 8001a88: 4293 cmp r3, r2 + 8001a8a: d002 beq.n 8001a92 + 8001a8c: 687b ldr r3, [r7, #4] + 8001a8e: 681b ldr r3, [r3, #0] + 8001a90: e001 b.n 8001a96 + 8001a92: f04f 43a0 mov.w r3, #1342177280 @ 0x50000000 + 8001a96: 687a ldr r2, [r7, #4] + 8001a98: 6812 ldr r2, [r2, #0] + 8001a9a: 4293 cmp r3, r2 + 8001a9c: d002 beq.n 8001aa4 + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 8001a9e: 693b ldr r3, [r7, #16] + 8001aa0: 2b00 cmp r3, #0 + 8001aa2: d105 bne.n 8001ab0 + ) + { + CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + 8001aa4: 687b ldr r3, [r7, #4] + 8001aa6: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001aa8: f423 1280 bic.w r2, r3, #1048576 @ 0x100000 + 8001aac: 687b ldr r3, [r7, #4] + 8001aae: 65da str r2, [r3, #92] @ 0x5c + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Set ADC error code */ + /* Check if a conversion is on going on ADC group injected */ + if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) + 8001ab0: 687b ldr r3, [r7, #4] + 8001ab2: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001ab4: f403 5380 and.w r3, r3, #4096 @ 0x1000 + 8001ab8: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 8001abc: d106 bne.n 8001acc + { + /* Reset ADC error code fields related to regular conversions only */ + CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); + 8001abe: 687b ldr r3, [r7, #4] + 8001ac0: 6e1b ldr r3, [r3, #96] @ 0x60 + 8001ac2: f023 0206 bic.w r2, r3, #6 + 8001ac6: 687b ldr r3, [r7, #4] + 8001ac8: 661a str r2, [r3, #96] @ 0x60 + 8001aca: e002 b.n 8001ad2 + } + else + { + /* Reset all ADC error code fields */ + ADC_CLEAR_ERRORCODE(hadc); + 8001acc: 687b ldr r3, [r7, #4] + 8001ace: 2200 movs r2, #0 + 8001ad0: 661a str r2, [r3, #96] @ 0x60 + } + + /* Clear ADC group regular conversion flag and overrun flag */ + /* (To ensure of no unknown state from potential previous ADC operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + 8001ad2: 687b ldr r3, [r7, #4] + 8001ad4: 681b ldr r3, [r3, #0] + 8001ad6: 221c movs r2, #28 + 8001ad8: 601a str r2, [r3, #0] + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + 8001ada: 687b ldr r3, [r7, #4] + 8001adc: 2200 movs r2, #0 + 8001ade: f883 2058 strb.w r2, [r3, #88] @ 0x58 + /* Case of multimode enabled (when multimode feature is available): */ + /* - if ADC is slave and dual regular conversions are enabled, ADC is */ + /* enabled only (conversion is not started), */ + /* - if ADC is master, ADC is enabled and conversion is started. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 8001ae2: 687b ldr r3, [r7, #4] + 8001ae4: 681b ldr r3, [r3, #0] + 8001ae6: 4a2c ldr r2, [pc, #176] @ (8001b98 ) + 8001ae8: 4293 cmp r3, r2 + 8001aea: d002 beq.n 8001af2 + 8001aec: 687b ldr r3, [r7, #4] + 8001aee: 681b ldr r3, [r3, #0] + 8001af0: e001 b.n 8001af6 + 8001af2: f04f 43a0 mov.w r3, #1342177280 @ 0x50000000 + 8001af6: 687a ldr r2, [r7, #4] + 8001af8: 6812 ldr r2, [r2, #0] + 8001afa: 4293 cmp r3, r2 + 8001afc: d008 beq.n 8001b10 + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 8001afe: 693b ldr r3, [r7, #16] + 8001b00: 2b00 cmp r3, #0 + 8001b02: d005 beq.n 8001b10 + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + 8001b04: 693b ldr r3, [r7, #16] + 8001b06: 2b05 cmp r3, #5 + 8001b08: d002 beq.n 8001b10 + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + 8001b0a: 693b ldr r3, [r7, #16] + 8001b0c: 2b09 cmp r3, #9 + 8001b0e: d114 bne.n 8001b3a + ) + { + /* ADC instance is not a multimode slave instance with multimode regular conversions enabled */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) + 8001b10: 687b ldr r3, [r7, #4] + 8001b12: 681b ldr r3, [r3, #0] + 8001b14: 68db ldr r3, [r3, #12] + 8001b16: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 8001b1a: 2b00 cmp r3, #0 + 8001b1c: d007 beq.n 8001b2e + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + 8001b1e: 687b ldr r3, [r7, #4] + 8001b20: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001b22: f423 5340 bic.w r3, r3, #12288 @ 0x3000 + 8001b26: f443 5280 orr.w r2, r3, #4096 @ 0x1000 + 8001b2a: 687b ldr r3, [r7, #4] + 8001b2c: 65da str r2, [r3, #92] @ 0x5c + } + + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); + 8001b2e: 687b ldr r3, [r7, #4] + 8001b30: 681b ldr r3, [r3, #0] + 8001b32: 4618 mov r0, r3 + 8001b34: f7ff fd90 bl 8001658 + 8001b38: e026 b.n 8001b88 + } + else + { + /* ADC instance is a multimode slave instance with multimode regular conversions enabled */ + SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + 8001b3a: 687b ldr r3, [r7, #4] + 8001b3c: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001b3e: f443 1280 orr.w r2, r3, #1048576 @ 0x100000 + 8001b42: 687b ldr r3, [r7, #4] + 8001b44: 65da str r2, [r3, #92] @ 0x5c + /* if Master ADC JAUTO bit is set, update Slave State in setting + HAL_ADC_STATE_INJ_BUSY bit and in resetting HAL_ADC_STATE_INJ_EOC bit */ + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + 8001b46: 687b ldr r3, [r7, #4] + 8001b48: 681b ldr r3, [r3, #0] + 8001b4a: 4a13 ldr r2, [pc, #76] @ (8001b98 ) + 8001b4c: 4293 cmp r3, r2 + 8001b4e: d002 beq.n 8001b56 + 8001b50: 687b ldr r3, [r7, #4] + 8001b52: 681b ldr r3, [r3, #0] + 8001b54: e001 b.n 8001b5a + 8001b56: f04f 43a0 mov.w r3, #1342177280 @ 0x50000000 + 8001b5a: 60fb str r3, [r7, #12] + if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) + 8001b5c: 68fb ldr r3, [r7, #12] + 8001b5e: 68db ldr r3, [r3, #12] + 8001b60: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 8001b64: 2b00 cmp r3, #0 + 8001b66: d00f beq.n 8001b88 + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + 8001b68: 687b ldr r3, [r7, #4] + 8001b6a: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001b6c: f423 5340 bic.w r3, r3, #12288 @ 0x3000 + 8001b70: f443 5280 orr.w r2, r3, #4096 @ 0x1000 + 8001b74: 687b ldr r3, [r7, #4] + 8001b76: 65da str r2, [r3, #92] @ 0x5c + 8001b78: e006 b.n 8001b88 +#endif /* ADC_MULTIMODE_SUPPORT */ + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + 8001b7a: 687b ldr r3, [r7, #4] + 8001b7c: 2200 movs r2, #0 + 8001b7e: f883 2058 strb.w r2, [r3, #88] @ 0x58 + 8001b82: e001 b.n 8001b88 + } + } + else + { + tmp_hal_status = HAL_BUSY; + 8001b84: 2302 movs r3, #2 + 8001b86: 75fb strb r3, [r7, #23] + } + + /* Return function status */ + return tmp_hal_status; + 8001b88: 7dfb ldrb r3, [r7, #23] +} + 8001b8a: 4618 mov r0, r3 + 8001b8c: 3718 adds r7, #24 + 8001b8e: 46bd mov sp, r7 + 8001b90: bd80 pop {r7, pc} + 8001b92: bf00 nop + 8001b94: 50000300 .word 0x50000300 + 8001b98: 50000100 .word 0x50000100 + +08001b9c : + * should be preliminarily stopped using HAL_ADCEx_InjectedStop function. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) +{ + 8001b9c: b580 push {r7, lr} + 8001b9e: b084 sub sp, #16 + 8001ba0: af00 add r7, sp, #0 + 8001ba2: 6078 str r0, [r7, #4] + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + 8001ba4: 687b ldr r3, [r7, #4] + 8001ba6: f893 3058 ldrb.w r3, [r3, #88] @ 0x58 + 8001baa: 2b01 cmp r3, #1 + 8001bac: d101 bne.n 8001bb2 + 8001bae: 2302 movs r3, #2 + 8001bb0: e023 b.n 8001bfa + 8001bb2: 687b ldr r3, [r7, #4] + 8001bb4: 2201 movs r2, #1 + 8001bb6: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + /* 1. Stop potential conversion on going, on ADC groups regular and injected */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + 8001bba: 2103 movs r1, #3 + 8001bbc: 6878 ldr r0, [r7, #4] + 8001bbe: f000 fcf7 bl 80025b0 + 8001bc2: 4603 mov r3, r0 + 8001bc4: 73fb strb r3, [r7, #15] + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + 8001bc6: 7bfb ldrb r3, [r7, #15] + 8001bc8: 2b00 cmp r3, #0 + 8001bca: d111 bne.n 8001bf0 + { + /* 2. Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + 8001bcc: 6878 ldr r0, [r7, #4] + 8001bce: f000 fe31 bl 8002834 + 8001bd2: 4603 mov r3, r0 + 8001bd4: 73fb strb r3, [r7, #15] + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + 8001bd6: 7bfb ldrb r3, [r7, #15] + 8001bd8: 2b00 cmp r3, #0 + 8001bda: d109 bne.n 8001bf0 + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + 8001bdc: 687b ldr r3, [r7, #4] + 8001bde: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001be0: f423 5388 bic.w r3, r3, #4352 @ 0x1100 + 8001be4: f023 0301 bic.w r3, r3, #1 + 8001be8: f043 0201 orr.w r2, r3, #1 + 8001bec: 687b ldr r3, [r7, #4] + 8001bee: 65da str r2, [r3, #92] @ 0x5c + HAL_ADC_STATE_READY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + 8001bf0: 687b ldr r3, [r7, #4] + 8001bf2: 2200 movs r2, #0 + 8001bf4: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + /* Return function status */ + return tmp_hal_status; + 8001bf8: 7bfb ldrb r3, [r7, #15] +} + 8001bfa: 4618 mov r0, r3 + 8001bfc: 3710 adds r7, #16 + 8001bfe: 46bd mov sp, r7 + 8001c00: bd80 pop {r7, pc} + ... + +08001c04 : + * @param hadc ADC handle + * @param Timeout Timeout value in millisecond. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) +{ + 8001c04: b580 push {r7, lr} + 8001c06: b088 sub sp, #32 + 8001c08: af00 add r7, sp, #0 + 8001c0a: 6078 str r0, [r7, #4] + 8001c0c: 6039 str r1, [r7, #0] + uint32_t tickstart; + uint32_t tmp_Flag_End; + uint32_t tmp_cfgr; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 8001c0e: 4867 ldr r0, [pc, #412] @ (8001dac ) + 8001c10: f7ff fc6a bl 80014e8 + 8001c14: 6178 str r0, [r7, #20] + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* If end of conversion selected to end of sequence conversions */ + if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) + 8001c16: 687b ldr r3, [r7, #4] + 8001c18: 699b ldr r3, [r3, #24] + 8001c1a: 2b08 cmp r3, #8 + 8001c1c: d102 bne.n 8001c24 + { + tmp_Flag_End = ADC_FLAG_EOS; + 8001c1e: 2308 movs r3, #8 + 8001c20: 61fb str r3, [r7, #28] + 8001c22: e02a b.n 8001c7a + /* Particular case is ADC configured in DMA mode and ADC sequencer with */ + /* several ranks and polling for end of each conversion. */ + /* For code simplicity sake, this particular case is generalized to */ + /* ADC configured in DMA mode and and polling for end of each conversion. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 8001c24: 697b ldr r3, [r7, #20] + 8001c26: 2b00 cmp r3, #0 + 8001c28: d005 beq.n 8001c36 + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + 8001c2a: 697b ldr r3, [r7, #20] + 8001c2c: 2b05 cmp r3, #5 + 8001c2e: d002 beq.n 8001c36 + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + 8001c30: 697b ldr r3, [r7, #20] + 8001c32: 2b09 cmp r3, #9 + 8001c34: d111 bne.n 8001c5a + ) + { + /* Check ADC DMA mode in independent mode on ADC group regular */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN) != 0UL) + 8001c36: 687b ldr r3, [r7, #4] + 8001c38: 681b ldr r3, [r3, #0] + 8001c3a: 68db ldr r3, [r3, #12] + 8001c3c: f003 0301 and.w r3, r3, #1 + 8001c40: 2b00 cmp r3, #0 + 8001c42: d007 beq.n 8001c54 + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 8001c44: 687b ldr r3, [r7, #4] + 8001c46: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001c48: f043 0220 orr.w r2, r3, #32 + 8001c4c: 687b ldr r3, [r7, #4] + 8001c4e: 65da str r2, [r3, #92] @ 0x5c + return HAL_ERROR; + 8001c50: 2301 movs r3, #1 + 8001c52: e0a6 b.n 8001da2 + } + else + { + tmp_Flag_End = (ADC_FLAG_EOC); + 8001c54: 2304 movs r3, #4 + 8001c56: 61fb str r3, [r7, #28] + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN) != 0UL) + 8001c58: e00f b.n 8001c7a + } + } + else + { + /* Check ADC DMA mode in multimode on ADC group regular */ + if (LL_ADC_GetMultiDMATransfer(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) != LL_ADC_MULTI_REG_DMA_EACH_ADC) + 8001c5a: 4854 ldr r0, [pc, #336] @ (8001dac ) + 8001c5c: f7ff fc52 bl 8001504 + 8001c60: 4603 mov r3, r0 + 8001c62: 2b00 cmp r3, #0 + 8001c64: d007 beq.n 8001c76 + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 8001c66: 687b ldr r3, [r7, #4] + 8001c68: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001c6a: f043 0220 orr.w r2, r3, #32 + 8001c6e: 687b ldr r3, [r7, #4] + 8001c70: 65da str r2, [r3, #92] @ 0x5c + return HAL_ERROR; + 8001c72: 2301 movs r3, #1 + 8001c74: e095 b.n 8001da2 + } + else + { + tmp_Flag_End = (ADC_FLAG_EOC); + 8001c76: 2304 movs r3, #4 + 8001c78: 61fb str r3, [r7, #28] + } +#endif /* ADC_MULTIMODE_SUPPORT */ + } + + /* Get tick count */ + tickstart = HAL_GetTick(); + 8001c7a: f7ff fac9 bl 8001210 + 8001c7e: 6138 str r0, [r7, #16] + + /* Wait until End of unitary conversion or sequence conversions flag is raised */ + while ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 8001c80: e021 b.n 8001cc6 + { + /* Check if timeout is disabled (set to infinite wait) */ + if (Timeout != HAL_MAX_DELAY) + 8001c82: 683b ldr r3, [r7, #0] + 8001c84: f1b3 3fff cmp.w r3, #4294967295 + 8001c88: d01d beq.n 8001cc6 + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + 8001c8a: f7ff fac1 bl 8001210 + 8001c8e: 4602 mov r2, r0 + 8001c90: 693b ldr r3, [r7, #16] + 8001c92: 1ad3 subs r3, r2, r3 + 8001c94: 683a ldr r2, [r7, #0] + 8001c96: 429a cmp r2, r3 + 8001c98: d302 bcc.n 8001ca0 + 8001c9a: 683b ldr r3, [r7, #0] + 8001c9c: 2b00 cmp r3, #0 + 8001c9e: d112 bne.n 8001cc6 + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 8001ca0: 687b ldr r3, [r7, #4] + 8001ca2: 681b ldr r3, [r3, #0] + 8001ca4: 681a ldr r2, [r3, #0] + 8001ca6: 69fb ldr r3, [r7, #28] + 8001ca8: 4013 ands r3, r2 + 8001caa: 2b00 cmp r3, #0 + 8001cac: d10b bne.n 8001cc6 + { + /* Update ADC state machine to timeout */ + SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + 8001cae: 687b ldr r3, [r7, #4] + 8001cb0: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001cb2: f043 0204 orr.w r2, r3, #4 + 8001cb6: 687b ldr r3, [r7, #4] + 8001cb8: 65da str r2, [r3, #92] @ 0x5c + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + 8001cba: 687b ldr r3, [r7, #4] + 8001cbc: 2200 movs r2, #0 + 8001cbe: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + return HAL_TIMEOUT; + 8001cc2: 2303 movs r3, #3 + 8001cc4: e06d b.n 8001da2 + while ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 8001cc6: 687b ldr r3, [r7, #4] + 8001cc8: 681b ldr r3, [r3, #0] + 8001cca: 681a ldr r2, [r3, #0] + 8001ccc: 69fb ldr r3, [r7, #28] + 8001cce: 4013 ands r3, r2 + 8001cd0: 2b00 cmp r3, #0 + 8001cd2: d0d6 beq.n 8001c82 + } + } + } + + /* Update ADC state machine */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); + 8001cd4: 687b ldr r3, [r7, #4] + 8001cd6: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001cd8: f443 7200 orr.w r2, r3, #512 @ 0x200 + 8001cdc: 687b ldr r3, [r7, #4] + 8001cde: 65da str r2, [r3, #92] @ 0x5c + + /* Determine whether any further conversion upcoming on group regular */ + /* by external trigger, continuous mode or scan sequence on going. */ + if ((LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) + 8001ce0: 687b ldr r3, [r7, #4] + 8001ce2: 681b ldr r3, [r3, #0] + 8001ce4: 4618 mov r0, r3 + 8001ce6: f7ff fb71 bl 80013cc + 8001cea: 4603 mov r3, r0 + 8001cec: 2b00 cmp r3, #0 + 8001cee: d01c beq.n 8001d2a + && (hadc->Init.ContinuousConvMode == DISABLE) + 8001cf0: 687b ldr r3, [r7, #4] + 8001cf2: 7f5b ldrb r3, [r3, #29] + 8001cf4: 2b00 cmp r3, #0 + 8001cf6: d118 bne.n 8001d2a + ) + { + /* Check whether end of sequence is reached */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) + 8001cf8: 687b ldr r3, [r7, #4] + 8001cfa: 681b ldr r3, [r3, #0] + 8001cfc: 681b ldr r3, [r3, #0] + 8001cfe: f003 0308 and.w r3, r3, #8 + 8001d02: 2b08 cmp r3, #8 + 8001d04: d111 bne.n 8001d2a + { + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + 8001d06: 687b ldr r3, [r7, #4] + 8001d08: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001d0a: f423 7280 bic.w r2, r3, #256 @ 0x100 + 8001d0e: 687b ldr r3, [r7, #4] + 8001d10: 65da str r2, [r3, #92] @ 0x5c + + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + 8001d12: 687b ldr r3, [r7, #4] + 8001d14: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001d16: f403 5380 and.w r3, r3, #4096 @ 0x1000 + 8001d1a: 2b00 cmp r3, #0 + 8001d1c: d105 bne.n 8001d2a + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + 8001d1e: 687b ldr r3, [r7, #4] + 8001d20: 6ddb ldr r3, [r3, #92] @ 0x5c + 8001d22: f043 0201 orr.w r2, r3, #1 + 8001d26: 687b ldr r3, [r7, #4] + 8001d28: 65da str r2, [r3, #92] @ 0x5c + + /* Get relevant register CFGR in ADC instance of ADC master or slave */ + /* in function of multimode state (for devices with multimode */ + /* available). */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 8001d2a: 687b ldr r3, [r7, #4] + 8001d2c: 681b ldr r3, [r3, #0] + 8001d2e: 4a20 ldr r2, [pc, #128] @ (8001db0 ) + 8001d30: 4293 cmp r3, r2 + 8001d32: d002 beq.n 8001d3a + 8001d34: 687b ldr r3, [r7, #4] + 8001d36: 681b ldr r3, [r3, #0] + 8001d38: e001 b.n 8001d3e + 8001d3a: f04f 43a0 mov.w r3, #1342177280 @ 0x50000000 + 8001d3e: 687a ldr r2, [r7, #4] + 8001d40: 6812 ldr r2, [r2, #0] + 8001d42: 4293 cmp r3, r2 + 8001d44: d008 beq.n 8001d58 + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 8001d46: 697b ldr r3, [r7, #20] + 8001d48: 2b00 cmp r3, #0 + 8001d4a: d005 beq.n 8001d58 + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + 8001d4c: 697b ldr r3, [r7, #20] + 8001d4e: 2b05 cmp r3, #5 + 8001d50: d002 beq.n 8001d58 + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + 8001d52: 697b ldr r3, [r7, #20] + 8001d54: 2b09 cmp r3, #9 + 8001d56: d104 bne.n 8001d62 + ) + { + /* Retrieve handle ADC CFGR register */ + tmp_cfgr = READ_REG(hadc->Instance->CFGR); + 8001d58: 687b ldr r3, [r7, #4] + 8001d5a: 681b ldr r3, [r3, #0] + 8001d5c: 68db ldr r3, [r3, #12] + 8001d5e: 61bb str r3, [r7, #24] + 8001d60: e00d b.n 8001d7e + } + else + { + /* Retrieve Master ADC CFGR register */ + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + 8001d62: 687b ldr r3, [r7, #4] + 8001d64: 681b ldr r3, [r3, #0] + 8001d66: 4a12 ldr r2, [pc, #72] @ (8001db0 ) + 8001d68: 4293 cmp r3, r2 + 8001d6a: d002 beq.n 8001d72 + 8001d6c: 687b ldr r3, [r7, #4] + 8001d6e: 681b ldr r3, [r3, #0] + 8001d70: e001 b.n 8001d76 + 8001d72: f04f 43a0 mov.w r3, #1342177280 @ 0x50000000 + 8001d76: 60fb str r3, [r7, #12] + tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + 8001d78: 68fb ldr r3, [r7, #12] + 8001d7a: 68db ldr r3, [r3, #12] + 8001d7c: 61bb str r3, [r7, #24] + /* Retrieve handle ADC CFGR register */ + tmp_cfgr = READ_REG(hadc->Instance->CFGR); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Clear polled flag */ + if (tmp_Flag_End == ADC_FLAG_EOS) + 8001d7e: 69fb ldr r3, [r7, #28] + 8001d80: 2b08 cmp r3, #8 + 8001d82: d104 bne.n 8001d8e + { + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOS); + 8001d84: 687b ldr r3, [r7, #4] + 8001d86: 681b ldr r3, [r3, #0] + 8001d88: 2208 movs r2, #8 + 8001d8a: 601a str r2, [r3, #0] + 8001d8c: e008 b.n 8001da0 + else + { + /* Clear end of conversion EOC flag of regular group if low power feature */ + /* "LowPowerAutoWait " is disabled, to not interfere with this feature */ + /* until data register is read using function HAL_ADC_GetValue(). */ + if (READ_BIT(tmp_cfgr, ADC_CFGR_AUTDLY) == 0UL) + 8001d8e: 69bb ldr r3, [r7, #24] + 8001d90: f403 4380 and.w r3, r3, #16384 @ 0x4000 + 8001d94: 2b00 cmp r3, #0 + 8001d96: d103 bne.n 8001da0 + { + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); + 8001d98: 687b ldr r3, [r7, #4] + 8001d9a: 681b ldr r3, [r3, #0] + 8001d9c: 220c movs r2, #12 + 8001d9e: 601a str r2, [r3, #0] + } + } + + /* Return function status */ + return HAL_OK; + 8001da0: 2300 movs r3, #0 +} + 8001da2: 4618 mov r0, r3 + 8001da4: 3720 adds r7, #32 + 8001da6: 46bd mov sp, r7 + 8001da8: bd80 pop {r7, pc} + 8001daa: bf00 nop + 8001dac: 50000300 .word 0x50000300 + 8001db0: 50000100 .word 0x50000100 + +08001db4 : + * or @ref __HAL_ADC_CLEAR_FLAG(&hadc, ADC_FLAG_EOS). + * @param hadc ADC handle + * @retval ADC group regular conversion data + */ +uint32_t HAL_ADC_GetValue(const ADC_HandleTypeDef *hadc) +{ + 8001db4: b480 push {r7} + 8001db6: b083 sub sp, #12 + 8001db8: af00 add r7, sp, #0 + 8001dba: 6078 str r0, [r7, #4] + + /* Note: EOC flag is not cleared here by software because automatically */ + /* cleared by hardware when reading register DR. */ + + /* Return ADC converted value */ + return hadc->Instance->DR; + 8001dbc: 687b ldr r3, [r7, #4] + 8001dbe: 681b ldr r3, [r3, #0] + 8001dc0: 6c1b ldr r3, [r3, #64] @ 0x40 +} + 8001dc2: 4618 mov r0, r3 + 8001dc4: 370c adds r7, #12 + 8001dc6: 46bd mov sp, r7 + 8001dc8: f85d 7b04 ldr.w r7, [sp], #4 + 8001dcc: 4770 bx lr + ... + +08001dd0 : + * @param hadc ADC handle + * @param pConfig Structure of ADC channel assigned to ADC group regular. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, const ADC_ChannelConfTypeDef *pConfig) +{ + 8001dd0: b580 push {r7, lr} + 8001dd2: b0b6 sub sp, #216 @ 0xd8 + 8001dd4: af00 add r7, sp, #0 + 8001dd6: 6078 str r0, [r7, #4] + 8001dd8: 6039 str r1, [r7, #0] + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 8001dda: 2300 movs r3, #0 + 8001ddc: f887 30d7 strb.w r3, [r7, #215] @ 0xd7 + uint32_t tmpOffsetShifted; + uint32_t tmp_config_internal_channel; + __IO uint32_t wait_loop_index = 0UL; + 8001de0: 2300 movs r3, #0 + 8001de2: 60fb str r3, [r7, #12] + { + assert_param(IS_ADC_DIFF_CHANNEL(hadc, pConfig->Channel)); + } + + /* Process locked */ + __HAL_LOCK(hadc); + 8001de4: 687b ldr r3, [r7, #4] + 8001de6: f893 3058 ldrb.w r3, [r3, #88] @ 0x58 + 8001dea: 2b01 cmp r3, #1 + 8001dec: d101 bne.n 8001df2 + 8001dee: 2302 movs r3, #2 + 8001df0: e3c8 b.n 8002584 + 8001df2: 687b ldr r3, [r7, #4] + 8001df4: 2201 movs r2, #1 + 8001df6: f883 2058 strb.w r2, [r3, #88] @ 0x58 + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular group: */ + /* - Channel number */ + /* - Channel rank */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + 8001dfa: 687b ldr r3, [r7, #4] + 8001dfc: 681b ldr r3, [r3, #0] + 8001dfe: 4618 mov r0, r3 + 8001e00: f7ff fc52 bl 80016a8 + 8001e04: 4603 mov r3, r0 + 8001e06: 2b00 cmp r3, #0 + 8001e08: f040 83ad bne.w 8002566 + { + /* Set ADC group regular sequence: channel on the selected scan sequence rank */ + LL_ADC_REG_SetSequencerRanks(hadc->Instance, pConfig->Rank, pConfig->Channel); + 8001e0c: 687b ldr r3, [r7, #4] + 8001e0e: 6818 ldr r0, [r3, #0] + 8001e10: 683b ldr r3, [r7, #0] + 8001e12: 6859 ldr r1, [r3, #4] + 8001e14: 683b ldr r3, [r7, #0] + 8001e16: 681b ldr r3, [r3, #0] + 8001e18: 461a mov r2, r3 + 8001e1a: f7ff faea bl 80013f2 + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular group: */ + /* - Channel sampling time */ + /* - Channel offset */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 8001e1e: 687b ldr r3, [r7, #4] + 8001e20: 681b ldr r3, [r3, #0] + 8001e22: 4618 mov r0, r3 + 8001e24: f7ff fc40 bl 80016a8 + 8001e28: f8c7 00d0 str.w r0, [r7, #208] @ 0xd0 + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 8001e2c: 687b ldr r3, [r7, #4] + 8001e2e: 681b ldr r3, [r3, #0] + 8001e30: 4618 mov r0, r3 + 8001e32: f7ff fc60 bl 80016f6 + 8001e36: f8c7 00cc str.w r0, [r7, #204] @ 0xcc + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 8001e3a: f8d7 30d0 ldr.w r3, [r7, #208] @ 0xd0 + 8001e3e: 2b00 cmp r3, #0 + 8001e40: f040 81d9 bne.w 80021f6 + && (tmp_adc_is_conversion_on_going_injected == 0UL) + 8001e44: f8d7 30cc ldr.w r3, [r7, #204] @ 0xcc + 8001e48: 2b00 cmp r3, #0 + 8001e4a: f040 81d4 bne.w 80021f6 + ) + { + /* Manage specific case of sampling time 3.5 cycles replacing 2.5 cyles */ + if (pConfig->SamplingTime == ADC_SAMPLETIME_3CYCLES_5) + 8001e4e: 683b ldr r3, [r7, #0] + 8001e50: 689b ldr r3, [r3, #8] + 8001e52: f1b3 4f00 cmp.w r3, #2147483648 @ 0x80000000 + 8001e56: d10f bne.n 8001e78 + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfig->Channel, LL_ADC_SAMPLINGTIME_2CYCLES_5); + 8001e58: 687b ldr r3, [r7, #4] + 8001e5a: 6818 ldr r0, [r3, #0] + 8001e5c: 683b ldr r3, [r7, #0] + 8001e5e: 681b ldr r3, [r3, #0] + 8001e60: 2200 movs r2, #0 + 8001e62: 4619 mov r1, r3 + 8001e64: f7ff faf1 bl 800144a + + /* Set ADC sampling time common configuration */ + LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5); + 8001e68: 687b ldr r3, [r7, #4] + 8001e6a: 681b ldr r3, [r3, #0] + 8001e6c: f04f 4100 mov.w r1, #2147483648 @ 0x80000000 + 8001e70: 4618 mov r0, r3 + 8001e72: f7ff fa98 bl 80013a6 + 8001e76: e00e b.n 8001e96 + } + else + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfig->Channel, pConfig->SamplingTime); + 8001e78: 687b ldr r3, [r7, #4] + 8001e7a: 6818 ldr r0, [r3, #0] + 8001e7c: 683b ldr r3, [r7, #0] + 8001e7e: 6819 ldr r1, [r3, #0] + 8001e80: 683b ldr r3, [r7, #0] + 8001e82: 689b ldr r3, [r3, #8] + 8001e84: 461a mov r2, r3 + 8001e86: f7ff fae0 bl 800144a + + /* Set ADC sampling time common configuration */ + LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_DEFAULT); + 8001e8a: 687b ldr r3, [r7, #4] + 8001e8c: 681b ldr r3, [r3, #0] + 8001e8e: 2100 movs r1, #0 + 8001e90: 4618 mov r0, r3 + 8001e92: f7ff fa88 bl 80013a6 + + /* Configure the offset: offset enable/disable, channel, offset value */ + + /* Shift the offset with respect to the selected ADC resolution. */ + /* Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0 */ + tmpOffsetShifted = ADC_OFFSET_SHIFT_RESOLUTION(hadc, (uint32_t)pConfig->Offset); + 8001e96: 683b ldr r3, [r7, #0] + 8001e98: 695a ldr r2, [r3, #20] + 8001e9a: 687b ldr r3, [r7, #4] + 8001e9c: 681b ldr r3, [r3, #0] + 8001e9e: 68db ldr r3, [r3, #12] + 8001ea0: 08db lsrs r3, r3, #3 + 8001ea2: f003 0303 and.w r3, r3, #3 + 8001ea6: 005b lsls r3, r3, #1 + 8001ea8: fa02 f303 lsl.w r3, r2, r3 + 8001eac: f8c7 30c8 str.w r3, [r7, #200] @ 0xc8 + + if (pConfig->OffsetNumber != ADC_OFFSET_NONE) + 8001eb0: 683b ldr r3, [r7, #0] + 8001eb2: 691b ldr r3, [r3, #16] + 8001eb4: 2b04 cmp r3, #4 + 8001eb6: d022 beq.n 8001efe + { + /* Set ADC selected offset number */ + LL_ADC_SetOffset(hadc->Instance, pConfig->OffsetNumber, pConfig->Channel, tmpOffsetShifted); + 8001eb8: 687b ldr r3, [r7, #4] + 8001eba: 6818 ldr r0, [r3, #0] + 8001ebc: 683b ldr r3, [r7, #0] + 8001ebe: 6919 ldr r1, [r3, #16] + 8001ec0: 683b ldr r3, [r7, #0] + 8001ec2: 681a ldr r2, [r3, #0] + 8001ec4: f8d7 30c8 ldr.w r3, [r7, #200] @ 0xc8 + 8001ec8: f7ff f9e2 bl 8001290 + + assert_param(IS_ADC_OFFSET_SIGN(pConfig->OffsetSign)); + assert_param(IS_FUNCTIONAL_STATE(pConfig->OffsetSaturation)); + /* Set ADC selected offset sign & saturation */ + LL_ADC_SetOffsetSign(hadc->Instance, pConfig->OffsetNumber, pConfig->OffsetSign); + 8001ecc: 687b ldr r3, [r7, #4] + 8001ece: 6818 ldr r0, [r3, #0] + 8001ed0: 683b ldr r3, [r7, #0] + 8001ed2: 6919 ldr r1, [r3, #16] + 8001ed4: 683b ldr r3, [r7, #0] + 8001ed6: 699b ldr r3, [r3, #24] + 8001ed8: 461a mov r2, r3 + 8001eda: f7ff fa2e bl 800133a + LL_ADC_SetOffsetSaturation(hadc->Instance, pConfig->OffsetNumber, + 8001ede: 687b ldr r3, [r7, #4] + 8001ee0: 6818 ldr r0, [r3, #0] + 8001ee2: 683b ldr r3, [r7, #0] + 8001ee4: 6919 ldr r1, [r3, #16] + (pConfig->OffsetSaturation == ENABLE) ? + 8001ee6: 683b ldr r3, [r7, #0] + 8001ee8: 7f1b ldrb r3, [r3, #28] + LL_ADC_SetOffsetSaturation(hadc->Instance, pConfig->OffsetNumber, + 8001eea: 2b01 cmp r3, #1 + 8001eec: d102 bne.n 8001ef4 + 8001eee: f04f 7300 mov.w r3, #33554432 @ 0x2000000 + 8001ef2: e000 b.n 8001ef6 + 8001ef4: 2300 movs r3, #0 + 8001ef6: 461a mov r2, r3 + 8001ef8: f7ff fa3a bl 8001370 + 8001efc: e17b b.n 80021f6 + } + else + { + /* Scan each offset register to check if the selected channel is targeted. */ + /* If this is the case, the corresponding offset number is disabled. */ + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_1)) + 8001efe: 687b ldr r3, [r7, #4] + 8001f00: 681b ldr r3, [r3, #0] + 8001f02: 2100 movs r1, #0 + 8001f04: 4618 mov r0, r3 + 8001f06: f7ff f9e7 bl 80012d8 + 8001f0a: 4603 mov r3, r0 + 8001f0c: f3c3 0312 ubfx r3, r3, #0, #19 + 8001f10: 2b00 cmp r3, #0 + 8001f12: d10a bne.n 8001f2a + 8001f14: 687b ldr r3, [r7, #4] + 8001f16: 681b ldr r3, [r3, #0] + 8001f18: 2100 movs r1, #0 + 8001f1a: 4618 mov r0, r3 + 8001f1c: f7ff f9dc bl 80012d8 + 8001f20: 4603 mov r3, r0 + 8001f22: 0e9b lsrs r3, r3, #26 + 8001f24: f003 021f and.w r2, r3, #31 + 8001f28: e01e b.n 8001f68 + 8001f2a: 687b ldr r3, [r7, #4] + 8001f2c: 681b ldr r3, [r3, #0] + 8001f2e: 2100 movs r1, #0 + 8001f30: 4618 mov r0, r3 + 8001f32: f7ff f9d1 bl 80012d8 + 8001f36: 4603 mov r3, r0 + 8001f38: f8c7 30bc str.w r3, [r7, #188] @ 0xbc + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001f3c: f8d7 30bc ldr.w r3, [r7, #188] @ 0xbc + 8001f40: fa93 f3a3 rbit r3, r3 + 8001f44: f8c7 30c0 str.w r3, [r7, #192] @ 0xc0 + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; + 8001f48: f8d7 30c0 ldr.w r3, [r7, #192] @ 0xc0 + 8001f4c: f8c7 30b8 str.w r3, [r7, #184] @ 0xb8 + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + 8001f50: f8d7 30b8 ldr.w r3, [r7, #184] @ 0xb8 + 8001f54: 2b00 cmp r3, #0 + 8001f56: d101 bne.n 8001f5c + { + return 32U; + 8001f58: 2320 movs r3, #32 + 8001f5a: e004 b.n 8001f66 + } + return __builtin_clz(value); + 8001f5c: f8d7 30b8 ldr.w r3, [r7, #184] @ 0xb8 + 8001f60: fab3 f383 clz r3, r3 + 8001f64: b2db uxtb r3, r3 + 8001f66: 461a mov r2, r3 + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + 8001f68: 683b ldr r3, [r7, #0] + 8001f6a: 681b ldr r3, [r3, #0] + 8001f6c: f3c3 0312 ubfx r3, r3, #0, #19 + 8001f70: 2b00 cmp r3, #0 + 8001f72: d105 bne.n 8001f80 + 8001f74: 683b ldr r3, [r7, #0] + 8001f76: 681b ldr r3, [r3, #0] + 8001f78: 0e9b lsrs r3, r3, #26 + 8001f7a: f003 031f and.w r3, r3, #31 + 8001f7e: e018 b.n 8001fb2 + 8001f80: 683b ldr r3, [r7, #0] + 8001f82: 681b ldr r3, [r3, #0] + 8001f84: f8c7 30b0 str.w r3, [r7, #176] @ 0xb0 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001f88: f8d7 30b0 ldr.w r3, [r7, #176] @ 0xb0 + 8001f8c: fa93 f3a3 rbit r3, r3 + 8001f90: f8c7 30ac str.w r3, [r7, #172] @ 0xac + return result; + 8001f94: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 8001f98: f8c7 30b4 str.w r3, [r7, #180] @ 0xb4 + if (value == 0U) + 8001f9c: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 8001fa0: 2b00 cmp r3, #0 + 8001fa2: d101 bne.n 8001fa8 + return 32U; + 8001fa4: 2320 movs r3, #32 + 8001fa6: e004 b.n 8001fb2 + return __builtin_clz(value); + 8001fa8: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 8001fac: fab3 f383 clz r3, r3 + 8001fb0: b2db uxtb r3, r3 + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_1)) + 8001fb2: 429a cmp r2, r3 + 8001fb4: d106 bne.n 8001fc4 + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_1, LL_ADC_OFFSET_DISABLE); + 8001fb6: 687b ldr r3, [r7, #4] + 8001fb8: 681b ldr r3, [r3, #0] + 8001fba: 2200 movs r2, #0 + 8001fbc: 2100 movs r1, #0 + 8001fbe: 4618 mov r0, r3 + 8001fc0: f7ff f9a0 bl 8001304 + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_2)) + 8001fc4: 687b ldr r3, [r7, #4] + 8001fc6: 681b ldr r3, [r3, #0] + 8001fc8: 2101 movs r1, #1 + 8001fca: 4618 mov r0, r3 + 8001fcc: f7ff f984 bl 80012d8 + 8001fd0: 4603 mov r3, r0 + 8001fd2: f3c3 0312 ubfx r3, r3, #0, #19 + 8001fd6: 2b00 cmp r3, #0 + 8001fd8: d10a bne.n 8001ff0 + 8001fda: 687b ldr r3, [r7, #4] + 8001fdc: 681b ldr r3, [r3, #0] + 8001fde: 2101 movs r1, #1 + 8001fe0: 4618 mov r0, r3 + 8001fe2: f7ff f979 bl 80012d8 + 8001fe6: 4603 mov r3, r0 + 8001fe8: 0e9b lsrs r3, r3, #26 + 8001fea: f003 021f and.w r2, r3, #31 + 8001fee: e01e b.n 800202e + 8001ff0: 687b ldr r3, [r7, #4] + 8001ff2: 681b ldr r3, [r3, #0] + 8001ff4: 2101 movs r1, #1 + 8001ff6: 4618 mov r0, r3 + 8001ff8: f7ff f96e bl 80012d8 + 8001ffc: 4603 mov r3, r0 + 8001ffe: f8c7 30a4 str.w r3, [r7, #164] @ 0xa4 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8002002: f8d7 30a4 ldr.w r3, [r7, #164] @ 0xa4 + 8002006: fa93 f3a3 rbit r3, r3 + 800200a: f8c7 30a0 str.w r3, [r7, #160] @ 0xa0 + return result; + 800200e: f8d7 30a0 ldr.w r3, [r7, #160] @ 0xa0 + 8002012: f8c7 30a8 str.w r3, [r7, #168] @ 0xa8 + if (value == 0U) + 8002016: f8d7 30a8 ldr.w r3, [r7, #168] @ 0xa8 + 800201a: 2b00 cmp r3, #0 + 800201c: d101 bne.n 8002022 + return 32U; + 800201e: 2320 movs r3, #32 + 8002020: e004 b.n 800202c + return __builtin_clz(value); + 8002022: f8d7 30a8 ldr.w r3, [r7, #168] @ 0xa8 + 8002026: fab3 f383 clz r3, r3 + 800202a: b2db uxtb r3, r3 + 800202c: 461a mov r2, r3 + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + 800202e: 683b ldr r3, [r7, #0] + 8002030: 681b ldr r3, [r3, #0] + 8002032: f3c3 0312 ubfx r3, r3, #0, #19 + 8002036: 2b00 cmp r3, #0 + 8002038: d105 bne.n 8002046 + 800203a: 683b ldr r3, [r7, #0] + 800203c: 681b ldr r3, [r3, #0] + 800203e: 0e9b lsrs r3, r3, #26 + 8002040: f003 031f and.w r3, r3, #31 + 8002044: e018 b.n 8002078 + 8002046: 683b ldr r3, [r7, #0] + 8002048: 681b ldr r3, [r3, #0] + 800204a: f8c7 3098 str.w r3, [r7, #152] @ 0x98 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800204e: f8d7 3098 ldr.w r3, [r7, #152] @ 0x98 + 8002052: fa93 f3a3 rbit r3, r3 + 8002056: f8c7 3094 str.w r3, [r7, #148] @ 0x94 + return result; + 800205a: f8d7 3094 ldr.w r3, [r7, #148] @ 0x94 + 800205e: f8c7 309c str.w r3, [r7, #156] @ 0x9c + if (value == 0U) + 8002062: f8d7 309c ldr.w r3, [r7, #156] @ 0x9c + 8002066: 2b00 cmp r3, #0 + 8002068: d101 bne.n 800206e + return 32U; + 800206a: 2320 movs r3, #32 + 800206c: e004 b.n 8002078 + return __builtin_clz(value); + 800206e: f8d7 309c ldr.w r3, [r7, #156] @ 0x9c + 8002072: fab3 f383 clz r3, r3 + 8002076: b2db uxtb r3, r3 + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_2)) + 8002078: 429a cmp r2, r3 + 800207a: d106 bne.n 800208a + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_2, LL_ADC_OFFSET_DISABLE); + 800207c: 687b ldr r3, [r7, #4] + 800207e: 681b ldr r3, [r3, #0] + 8002080: 2200 movs r2, #0 + 8002082: 2101 movs r1, #1 + 8002084: 4618 mov r0, r3 + 8002086: f7ff f93d bl 8001304 + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_3)) + 800208a: 687b ldr r3, [r7, #4] + 800208c: 681b ldr r3, [r3, #0] + 800208e: 2102 movs r1, #2 + 8002090: 4618 mov r0, r3 + 8002092: f7ff f921 bl 80012d8 + 8002096: 4603 mov r3, r0 + 8002098: f3c3 0312 ubfx r3, r3, #0, #19 + 800209c: 2b00 cmp r3, #0 + 800209e: d10a bne.n 80020b6 + 80020a0: 687b ldr r3, [r7, #4] + 80020a2: 681b ldr r3, [r3, #0] + 80020a4: 2102 movs r1, #2 + 80020a6: 4618 mov r0, r3 + 80020a8: f7ff f916 bl 80012d8 + 80020ac: 4603 mov r3, r0 + 80020ae: 0e9b lsrs r3, r3, #26 + 80020b0: f003 021f and.w r2, r3, #31 + 80020b4: e01e b.n 80020f4 + 80020b6: 687b ldr r3, [r7, #4] + 80020b8: 681b ldr r3, [r3, #0] + 80020ba: 2102 movs r1, #2 + 80020bc: 4618 mov r0, r3 + 80020be: f7ff f90b bl 80012d8 + 80020c2: 4603 mov r3, r0 + 80020c4: f8c7 308c str.w r3, [r7, #140] @ 0x8c + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80020c8: f8d7 308c ldr.w r3, [r7, #140] @ 0x8c + 80020cc: fa93 f3a3 rbit r3, r3 + 80020d0: f8c7 3088 str.w r3, [r7, #136] @ 0x88 + return result; + 80020d4: f8d7 3088 ldr.w r3, [r7, #136] @ 0x88 + 80020d8: f8c7 3090 str.w r3, [r7, #144] @ 0x90 + if (value == 0U) + 80020dc: f8d7 3090 ldr.w r3, [r7, #144] @ 0x90 + 80020e0: 2b00 cmp r3, #0 + 80020e2: d101 bne.n 80020e8 + return 32U; + 80020e4: 2320 movs r3, #32 + 80020e6: e004 b.n 80020f2 + return __builtin_clz(value); + 80020e8: f8d7 3090 ldr.w r3, [r7, #144] @ 0x90 + 80020ec: fab3 f383 clz r3, r3 + 80020f0: b2db uxtb r3, r3 + 80020f2: 461a mov r2, r3 + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + 80020f4: 683b ldr r3, [r7, #0] + 80020f6: 681b ldr r3, [r3, #0] + 80020f8: f3c3 0312 ubfx r3, r3, #0, #19 + 80020fc: 2b00 cmp r3, #0 + 80020fe: d105 bne.n 800210c + 8002100: 683b ldr r3, [r7, #0] + 8002102: 681b ldr r3, [r3, #0] + 8002104: 0e9b lsrs r3, r3, #26 + 8002106: f003 031f and.w r3, r3, #31 + 800210a: e016 b.n 800213a + 800210c: 683b ldr r3, [r7, #0] + 800210e: 681b ldr r3, [r3, #0] + 8002110: f8c7 3080 str.w r3, [r7, #128] @ 0x80 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8002114: f8d7 3080 ldr.w r3, [r7, #128] @ 0x80 + 8002118: fa93 f3a3 rbit r3, r3 + 800211c: 67fb str r3, [r7, #124] @ 0x7c + return result; + 800211e: 6ffb ldr r3, [r7, #124] @ 0x7c + 8002120: f8c7 3084 str.w r3, [r7, #132] @ 0x84 + if (value == 0U) + 8002124: f8d7 3084 ldr.w r3, [r7, #132] @ 0x84 + 8002128: 2b00 cmp r3, #0 + 800212a: d101 bne.n 8002130 + return 32U; + 800212c: 2320 movs r3, #32 + 800212e: e004 b.n 800213a + return __builtin_clz(value); + 8002130: f8d7 3084 ldr.w r3, [r7, #132] @ 0x84 + 8002134: fab3 f383 clz r3, r3 + 8002138: b2db uxtb r3, r3 + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_3)) + 800213a: 429a cmp r2, r3 + 800213c: d106 bne.n 800214c + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_3, LL_ADC_OFFSET_DISABLE); + 800213e: 687b ldr r3, [r7, #4] + 8002140: 681b ldr r3, [r3, #0] + 8002142: 2200 movs r2, #0 + 8002144: 2102 movs r1, #2 + 8002146: 4618 mov r0, r3 + 8002148: f7ff f8dc bl 8001304 + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_4)) + 800214c: 687b ldr r3, [r7, #4] + 800214e: 681b ldr r3, [r3, #0] + 8002150: 2103 movs r1, #3 + 8002152: 4618 mov r0, r3 + 8002154: f7ff f8c0 bl 80012d8 + 8002158: 4603 mov r3, r0 + 800215a: f3c3 0312 ubfx r3, r3, #0, #19 + 800215e: 2b00 cmp r3, #0 + 8002160: d10a bne.n 8002178 + 8002162: 687b ldr r3, [r7, #4] + 8002164: 681b ldr r3, [r3, #0] + 8002166: 2103 movs r1, #3 + 8002168: 4618 mov r0, r3 + 800216a: f7ff f8b5 bl 80012d8 + 800216e: 4603 mov r3, r0 + 8002170: 0e9b lsrs r3, r3, #26 + 8002172: f003 021f and.w r2, r3, #31 + 8002176: e017 b.n 80021a8 + 8002178: 687b ldr r3, [r7, #4] + 800217a: 681b ldr r3, [r3, #0] + 800217c: 2103 movs r1, #3 + 800217e: 4618 mov r0, r3 + 8002180: f7ff f8aa bl 80012d8 + 8002184: 4603 mov r3, r0 + 8002186: 677b str r3, [r7, #116] @ 0x74 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8002188: 6f7b ldr r3, [r7, #116] @ 0x74 + 800218a: fa93 f3a3 rbit r3, r3 + 800218e: 673b str r3, [r7, #112] @ 0x70 + return result; + 8002190: 6f3b ldr r3, [r7, #112] @ 0x70 + 8002192: 67bb str r3, [r7, #120] @ 0x78 + if (value == 0U) + 8002194: 6fbb ldr r3, [r7, #120] @ 0x78 + 8002196: 2b00 cmp r3, #0 + 8002198: d101 bne.n 800219e + return 32U; + 800219a: 2320 movs r3, #32 + 800219c: e003 b.n 80021a6 + return __builtin_clz(value); + 800219e: 6fbb ldr r3, [r7, #120] @ 0x78 + 80021a0: fab3 f383 clz r3, r3 + 80021a4: b2db uxtb r3, r3 + 80021a6: 461a mov r2, r3 + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + 80021a8: 683b ldr r3, [r7, #0] + 80021aa: 681b ldr r3, [r3, #0] + 80021ac: f3c3 0312 ubfx r3, r3, #0, #19 + 80021b0: 2b00 cmp r3, #0 + 80021b2: d105 bne.n 80021c0 + 80021b4: 683b ldr r3, [r7, #0] + 80021b6: 681b ldr r3, [r3, #0] + 80021b8: 0e9b lsrs r3, r3, #26 + 80021ba: f003 031f and.w r3, r3, #31 + 80021be: e011 b.n 80021e4 + 80021c0: 683b ldr r3, [r7, #0] + 80021c2: 681b ldr r3, [r3, #0] + 80021c4: 66bb str r3, [r7, #104] @ 0x68 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80021c6: 6ebb ldr r3, [r7, #104] @ 0x68 + 80021c8: fa93 f3a3 rbit r3, r3 + 80021cc: 667b str r3, [r7, #100] @ 0x64 + return result; + 80021ce: 6e7b ldr r3, [r7, #100] @ 0x64 + 80021d0: 66fb str r3, [r7, #108] @ 0x6c + if (value == 0U) + 80021d2: 6efb ldr r3, [r7, #108] @ 0x6c + 80021d4: 2b00 cmp r3, #0 + 80021d6: d101 bne.n 80021dc + return 32U; + 80021d8: 2320 movs r3, #32 + 80021da: e003 b.n 80021e4 + return __builtin_clz(value); + 80021dc: 6efb ldr r3, [r7, #108] @ 0x6c + 80021de: fab3 f383 clz r3, r3 + 80021e2: b2db uxtb r3, r3 + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_4)) + 80021e4: 429a cmp r2, r3 + 80021e6: d106 bne.n 80021f6 + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_4, LL_ADC_OFFSET_DISABLE); + 80021e8: 687b ldr r3, [r7, #4] + 80021ea: 681b ldr r3, [r3, #0] + 80021ec: 2200 movs r2, #0 + 80021ee: 2103 movs r1, #3 + 80021f0: 4618 mov r0, r3 + 80021f2: f7ff f887 bl 8001304 + } + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated only when ADC is disabled: */ + /* - Single or differential mode */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 80021f6: 687b ldr r3, [r7, #4] + 80021f8: 681b ldr r3, [r3, #0] + 80021fa: 4618 mov r0, r3 + 80021fc: f7ff fa06 bl 800160c + 8002200: 4603 mov r3, r0 + 8002202: 2b00 cmp r3, #0 + 8002204: f040 8140 bne.w 8002488 + { + /* Set mode single-ended or differential input of the selected ADC channel */ + LL_ADC_SetChannelSingleDiff(hadc->Instance, pConfig->Channel, pConfig->SingleDiff); + 8002208: 687b ldr r3, [r7, #4] + 800220a: 6818 ldr r0, [r3, #0] + 800220c: 683b ldr r3, [r7, #0] + 800220e: 6819 ldr r1, [r3, #0] + 8002210: 683b ldr r3, [r7, #0] + 8002212: 68db ldr r3, [r3, #12] + 8002214: 461a mov r2, r3 + 8002216: f7ff f943 bl 80014a0 + + /* Configuration of differential mode */ + if (pConfig->SingleDiff == ADC_DIFFERENTIAL_ENDED) + 800221a: 683b ldr r3, [r7, #0] + 800221c: 68db ldr r3, [r3, #12] + 800221e: 4a8f ldr r2, [pc, #572] @ (800245c ) + 8002220: 4293 cmp r3, r2 + 8002222: f040 8131 bne.w 8002488 + { + /* Set sampling time of the selected ADC channel */ + /* Note: ADC channel number masked with value "0x1F" to ensure shift value within 32 bits range */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, + 8002226: 687b ldr r3, [r7, #4] + 8002228: 6818 ldr r0, [r3, #0] + (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL( + 800222a: 683b ldr r3, [r7, #0] + 800222c: 681b ldr r3, [r3, #0] + 800222e: f3c3 0312 ubfx r3, r3, #0, #19 + 8002232: 2b00 cmp r3, #0 + 8002234: d10b bne.n 800224e + 8002236: 683b ldr r3, [r7, #0] + 8002238: 681b ldr r3, [r3, #0] + 800223a: 0e9b lsrs r3, r3, #26 + 800223c: 3301 adds r3, #1 + 800223e: f003 031f and.w r3, r3, #31 + 8002242: 2b09 cmp r3, #9 + 8002244: bf94 ite ls + 8002246: 2301 movls r3, #1 + 8002248: 2300 movhi r3, #0 + 800224a: b2db uxtb r3, r3 + 800224c: e019 b.n 8002282 + 800224e: 683b ldr r3, [r7, #0] + 8002250: 681b ldr r3, [r3, #0] + 8002252: 65fb str r3, [r7, #92] @ 0x5c + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8002254: 6dfb ldr r3, [r7, #92] @ 0x5c + 8002256: fa93 f3a3 rbit r3, r3 + 800225a: 65bb str r3, [r7, #88] @ 0x58 + return result; + 800225c: 6dbb ldr r3, [r7, #88] @ 0x58 + 800225e: 663b str r3, [r7, #96] @ 0x60 + if (value == 0U) + 8002260: 6e3b ldr r3, [r7, #96] @ 0x60 + 8002262: 2b00 cmp r3, #0 + 8002264: d101 bne.n 800226a + return 32U; + 8002266: 2320 movs r3, #32 + 8002268: e003 b.n 8002272 + return __builtin_clz(value); + 800226a: 6e3b ldr r3, [r7, #96] @ 0x60 + 800226c: fab3 f383 clz r3, r3 + 8002270: b2db uxtb r3, r3 + 8002272: 3301 adds r3, #1 + 8002274: f003 031f and.w r3, r3, #31 + 8002278: 2b09 cmp r3, #9 + 800227a: bf94 ite ls + 800227c: 2301 movls r3, #1 + 800227e: 2300 movhi r3, #0 + 8002280: b2db uxtb r3, r3 + LL_ADC_SetChannelSamplingTime(hadc->Instance, + 8002282: 2b00 cmp r3, #0 + 8002284: d079 beq.n 800237a + (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL( + 8002286: 683b ldr r3, [r7, #0] + 8002288: 681b ldr r3, [r3, #0] + 800228a: f3c3 0312 ubfx r3, r3, #0, #19 + 800228e: 2b00 cmp r3, #0 + 8002290: d107 bne.n 80022a2 + 8002292: 683b ldr r3, [r7, #0] + 8002294: 681b ldr r3, [r3, #0] + 8002296: 0e9b lsrs r3, r3, #26 + 8002298: 3301 adds r3, #1 + 800229a: 069b lsls r3, r3, #26 + 800229c: f003 42f8 and.w r2, r3, #2080374784 @ 0x7c000000 + 80022a0: e015 b.n 80022ce + 80022a2: 683b ldr r3, [r7, #0] + 80022a4: 681b ldr r3, [r3, #0] + 80022a6: 653b str r3, [r7, #80] @ 0x50 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80022a8: 6d3b ldr r3, [r7, #80] @ 0x50 + 80022aa: fa93 f3a3 rbit r3, r3 + 80022ae: 64fb str r3, [r7, #76] @ 0x4c + return result; + 80022b0: 6cfb ldr r3, [r7, #76] @ 0x4c + 80022b2: 657b str r3, [r7, #84] @ 0x54 + if (value == 0U) + 80022b4: 6d7b ldr r3, [r7, #84] @ 0x54 + 80022b6: 2b00 cmp r3, #0 + 80022b8: d101 bne.n 80022be + return 32U; + 80022ba: 2320 movs r3, #32 + 80022bc: e003 b.n 80022c6 + return __builtin_clz(value); + 80022be: 6d7b ldr r3, [r7, #84] @ 0x54 + 80022c0: fab3 f383 clz r3, r3 + 80022c4: b2db uxtb r3, r3 + 80022c6: 3301 adds r3, #1 + 80022c8: 069b lsls r3, r3, #26 + 80022ca: f003 42f8 and.w r2, r3, #2080374784 @ 0x7c000000 + 80022ce: 683b ldr r3, [r7, #0] + 80022d0: 681b ldr r3, [r3, #0] + 80022d2: f3c3 0312 ubfx r3, r3, #0, #19 + 80022d6: 2b00 cmp r3, #0 + 80022d8: d109 bne.n 80022ee + 80022da: 683b ldr r3, [r7, #0] + 80022dc: 681b ldr r3, [r3, #0] + 80022de: 0e9b lsrs r3, r3, #26 + 80022e0: 3301 adds r3, #1 + 80022e2: f003 031f and.w r3, r3, #31 + 80022e6: 2101 movs r1, #1 + 80022e8: fa01 f303 lsl.w r3, r1, r3 + 80022ec: e017 b.n 800231e + 80022ee: 683b ldr r3, [r7, #0] + 80022f0: 681b ldr r3, [r3, #0] + 80022f2: 647b str r3, [r7, #68] @ 0x44 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80022f4: 6c7b ldr r3, [r7, #68] @ 0x44 + 80022f6: fa93 f3a3 rbit r3, r3 + 80022fa: 643b str r3, [r7, #64] @ 0x40 + return result; + 80022fc: 6c3b ldr r3, [r7, #64] @ 0x40 + 80022fe: 64bb str r3, [r7, #72] @ 0x48 + if (value == 0U) + 8002300: 6cbb ldr r3, [r7, #72] @ 0x48 + 8002302: 2b00 cmp r3, #0 + 8002304: d101 bne.n 800230a + return 32U; + 8002306: 2320 movs r3, #32 + 8002308: e003 b.n 8002312 + return __builtin_clz(value); + 800230a: 6cbb ldr r3, [r7, #72] @ 0x48 + 800230c: fab3 f383 clz r3, r3 + 8002310: b2db uxtb r3, r3 + 8002312: 3301 adds r3, #1 + 8002314: f003 031f and.w r3, r3, #31 + 8002318: 2101 movs r1, #1 + 800231a: fa01 f303 lsl.w r3, r1, r3 + 800231e: ea42 0103 orr.w r1, r2, r3 + 8002322: 683b ldr r3, [r7, #0] + 8002324: 681b ldr r3, [r3, #0] + 8002326: f3c3 0312 ubfx r3, r3, #0, #19 + 800232a: 2b00 cmp r3, #0 + 800232c: d10a bne.n 8002344 + 800232e: 683b ldr r3, [r7, #0] + 8002330: 681b ldr r3, [r3, #0] + 8002332: 0e9b lsrs r3, r3, #26 + 8002334: 3301 adds r3, #1 + 8002336: f003 021f and.w r2, r3, #31 + 800233a: 4613 mov r3, r2 + 800233c: 005b lsls r3, r3, #1 + 800233e: 4413 add r3, r2 + 8002340: 051b lsls r3, r3, #20 + 8002342: e018 b.n 8002376 + 8002344: 683b ldr r3, [r7, #0] + 8002346: 681b ldr r3, [r3, #0] + 8002348: 63bb str r3, [r7, #56] @ 0x38 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800234a: 6bbb ldr r3, [r7, #56] @ 0x38 + 800234c: fa93 f3a3 rbit r3, r3 + 8002350: 637b str r3, [r7, #52] @ 0x34 + return result; + 8002352: 6b7b ldr r3, [r7, #52] @ 0x34 + 8002354: 63fb str r3, [r7, #60] @ 0x3c + if (value == 0U) + 8002356: 6bfb ldr r3, [r7, #60] @ 0x3c + 8002358: 2b00 cmp r3, #0 + 800235a: d101 bne.n 8002360 + return 32U; + 800235c: 2320 movs r3, #32 + 800235e: e003 b.n 8002368 + return __builtin_clz(value); + 8002360: 6bfb ldr r3, [r7, #60] @ 0x3c + 8002362: fab3 f383 clz r3, r3 + 8002366: b2db uxtb r3, r3 + 8002368: 3301 adds r3, #1 + 800236a: f003 021f and.w r2, r3, #31 + 800236e: 4613 mov r3, r2 + 8002370: 005b lsls r3, r3, #1 + 8002372: 4413 add r3, r2 + 8002374: 051b lsls r3, r3, #20 + LL_ADC_SetChannelSamplingTime(hadc->Instance, + 8002376: 430b orrs r3, r1 + 8002378: e081 b.n 800247e + (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL( + 800237a: 683b ldr r3, [r7, #0] + 800237c: 681b ldr r3, [r3, #0] + 800237e: f3c3 0312 ubfx r3, r3, #0, #19 + 8002382: 2b00 cmp r3, #0 + 8002384: d107 bne.n 8002396 + 8002386: 683b ldr r3, [r7, #0] + 8002388: 681b ldr r3, [r3, #0] + 800238a: 0e9b lsrs r3, r3, #26 + 800238c: 3301 adds r3, #1 + 800238e: 069b lsls r3, r3, #26 + 8002390: f003 42f8 and.w r2, r3, #2080374784 @ 0x7c000000 + 8002394: e015 b.n 80023c2 + 8002396: 683b ldr r3, [r7, #0] + 8002398: 681b ldr r3, [r3, #0] + 800239a: 62fb str r3, [r7, #44] @ 0x2c + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800239c: 6afb ldr r3, [r7, #44] @ 0x2c + 800239e: fa93 f3a3 rbit r3, r3 + 80023a2: 62bb str r3, [r7, #40] @ 0x28 + return result; + 80023a4: 6abb ldr r3, [r7, #40] @ 0x28 + 80023a6: 633b str r3, [r7, #48] @ 0x30 + if (value == 0U) + 80023a8: 6b3b ldr r3, [r7, #48] @ 0x30 + 80023aa: 2b00 cmp r3, #0 + 80023ac: d101 bne.n 80023b2 + return 32U; + 80023ae: 2320 movs r3, #32 + 80023b0: e003 b.n 80023ba + return __builtin_clz(value); + 80023b2: 6b3b ldr r3, [r7, #48] @ 0x30 + 80023b4: fab3 f383 clz r3, r3 + 80023b8: b2db uxtb r3, r3 + 80023ba: 3301 adds r3, #1 + 80023bc: 069b lsls r3, r3, #26 + 80023be: f003 42f8 and.w r2, r3, #2080374784 @ 0x7c000000 + 80023c2: 683b ldr r3, [r7, #0] + 80023c4: 681b ldr r3, [r3, #0] + 80023c6: f3c3 0312 ubfx r3, r3, #0, #19 + 80023ca: 2b00 cmp r3, #0 + 80023cc: d109 bne.n 80023e2 + 80023ce: 683b ldr r3, [r7, #0] + 80023d0: 681b ldr r3, [r3, #0] + 80023d2: 0e9b lsrs r3, r3, #26 + 80023d4: 3301 adds r3, #1 + 80023d6: f003 031f and.w r3, r3, #31 + 80023da: 2101 movs r1, #1 + 80023dc: fa01 f303 lsl.w r3, r1, r3 + 80023e0: e017 b.n 8002412 + 80023e2: 683b ldr r3, [r7, #0] + 80023e4: 681b ldr r3, [r3, #0] + 80023e6: 623b str r3, [r7, #32] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80023e8: 6a3b ldr r3, [r7, #32] + 80023ea: fa93 f3a3 rbit r3, r3 + 80023ee: 61fb str r3, [r7, #28] + return result; + 80023f0: 69fb ldr r3, [r7, #28] + 80023f2: 627b str r3, [r7, #36] @ 0x24 + if (value == 0U) + 80023f4: 6a7b ldr r3, [r7, #36] @ 0x24 + 80023f6: 2b00 cmp r3, #0 + 80023f8: d101 bne.n 80023fe + return 32U; + 80023fa: 2320 movs r3, #32 + 80023fc: e003 b.n 8002406 + return __builtin_clz(value); + 80023fe: 6a7b ldr r3, [r7, #36] @ 0x24 + 8002400: fab3 f383 clz r3, r3 + 8002404: b2db uxtb r3, r3 + 8002406: 3301 adds r3, #1 + 8002408: f003 031f and.w r3, r3, #31 + 800240c: 2101 movs r1, #1 + 800240e: fa01 f303 lsl.w r3, r1, r3 + 8002412: ea42 0103 orr.w r1, r2, r3 + 8002416: 683b ldr r3, [r7, #0] + 8002418: 681b ldr r3, [r3, #0] + 800241a: f3c3 0312 ubfx r3, r3, #0, #19 + 800241e: 2b00 cmp r3, #0 + 8002420: d10d bne.n 800243e + 8002422: 683b ldr r3, [r7, #0] + 8002424: 681b ldr r3, [r3, #0] + 8002426: 0e9b lsrs r3, r3, #26 + 8002428: 3301 adds r3, #1 + 800242a: f003 021f and.w r2, r3, #31 + 800242e: 4613 mov r3, r2 + 8002430: 005b lsls r3, r3, #1 + 8002432: 4413 add r3, r2 + 8002434: 3b1e subs r3, #30 + 8002436: 051b lsls r3, r3, #20 + 8002438: f043 7300 orr.w r3, r3, #33554432 @ 0x2000000 + 800243c: e01e b.n 800247c + 800243e: 683b ldr r3, [r7, #0] + 8002440: 681b ldr r3, [r3, #0] + 8002442: 617b str r3, [r7, #20] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8002444: 697b ldr r3, [r7, #20] + 8002446: fa93 f3a3 rbit r3, r3 + 800244a: 613b str r3, [r7, #16] + return result; + 800244c: 693b ldr r3, [r7, #16] + 800244e: 61bb str r3, [r7, #24] + if (value == 0U) + 8002450: 69bb ldr r3, [r7, #24] + 8002452: 2b00 cmp r3, #0 + 8002454: d104 bne.n 8002460 + return 32U; + 8002456: 2320 movs r3, #32 + 8002458: e006 b.n 8002468 + 800245a: bf00 nop + 800245c: 407f0000 .word 0x407f0000 + return __builtin_clz(value); + 8002460: 69bb ldr r3, [r7, #24] + 8002462: fab3 f383 clz r3, r3 + 8002466: b2db uxtb r3, r3 + 8002468: 3301 adds r3, #1 + 800246a: f003 021f and.w r2, r3, #31 + 800246e: 4613 mov r3, r2 + 8002470: 005b lsls r3, r3, #1 + 8002472: 4413 add r3, r2 + 8002474: 3b1e subs r3, #30 + 8002476: 051b lsls r3, r3, #20 + 8002478: f043 7300 orr.w r3, r3, #33554432 @ 0x2000000 + LL_ADC_SetChannelSamplingTime(hadc->Instance, + 800247c: 430b orrs r3, r1 + (__LL_ADC_CHANNEL_TO_DECIMAL_NB((uint32_t)pConfig->Channel) + + 1UL) & 0x1FUL)), + pConfig->SamplingTime); + 800247e: 683a ldr r2, [r7, #0] + 8002480: 6892 ldr r2, [r2, #8] + LL_ADC_SetChannelSamplingTime(hadc->Instance, + 8002482: 4619 mov r1, r3 + 8002484: f7fe ffe1 bl 800144a + /* If internal channel selected, enable dedicated internal buffers and */ + /* paths. */ + /* Note: these internal measurement paths can be disabled using */ + /* HAL_ADC_DeInit(). */ + + if (__LL_ADC_IS_CHANNEL_INTERNAL(pConfig->Channel)) + 8002488: 683b ldr r3, [r7, #0] + 800248a: 681a ldr r2, [r3, #0] + 800248c: 4b3f ldr r3, [pc, #252] @ (800258c ) + 800248e: 4013 ands r3, r2 + 8002490: 2b00 cmp r3, #0 + 8002492: d071 beq.n 8002578 + { + tmp_config_internal_channel = LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 8002494: 483e ldr r0, [pc, #248] @ (8002590 ) + 8002496: f7fe feed bl 8001274 + 800249a: f8c7 00c4 str.w r0, [r7, #196] @ 0xc4 + + /* If the requested internal measurement path has already been enabled, */ + /* bypass the configuration processing. */ + if (((pConfig->Channel == ADC_CHANNEL_TEMPSENSOR_ADC1) || (pConfig->Channel == ADC_CHANNEL_TEMPSENSOR_ADC5)) + 800249e: 683b ldr r3, [r7, #0] + 80024a0: 681b ldr r3, [r3, #0] + 80024a2: 4a3c ldr r2, [pc, #240] @ (8002594 ) + 80024a4: 4293 cmp r3, r2 + 80024a6: d004 beq.n 80024b2 + 80024a8: 683b ldr r3, [r7, #0] + 80024aa: 681b ldr r3, [r3, #0] + 80024ac: 4a3a ldr r2, [pc, #232] @ (8002598 ) + 80024ae: 4293 cmp r3, r2 + 80024b0: d127 bne.n 8002502 + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) + 80024b2: f8d7 30c4 ldr.w r3, [r7, #196] @ 0xc4 + 80024b6: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 80024ba: 2b00 cmp r3, #0 + 80024bc: d121 bne.n 8002502 + { + if (ADC_TEMPERATURE_SENSOR_INSTANCE(hadc)) + 80024be: 687b ldr r3, [r7, #4] + 80024c0: 681b ldr r3, [r3, #0] + 80024c2: f1b3 4fa0 cmp.w r3, #1342177280 @ 0x50000000 + 80024c6: d157 bne.n 8002578 + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + 80024c8: f8d7 30c4 ldr.w r3, [r7, #196] @ 0xc4 + 80024cc: f443 0300 orr.w r3, r3, #8388608 @ 0x800000 + 80024d0: 4619 mov r1, r3 + 80024d2: 482f ldr r0, [pc, #188] @ (8002590 ) + 80024d4: f7fe febb bl 800124e + /* Delay for temperature sensor stabilization time */ + /* Wait loop initialization and execution */ + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL)); + 80024d8: 4b30 ldr r3, [pc, #192] @ (800259c ) + 80024da: 681b ldr r3, [r3, #0] + 80024dc: 099b lsrs r3, r3, #6 + 80024de: 4a30 ldr r2, [pc, #192] @ (80025a0 ) + 80024e0: fba2 2303 umull r2, r3, r2, r3 + 80024e4: 099b lsrs r3, r3, #6 + 80024e6: 1c5a adds r2, r3, #1 + 80024e8: 4613 mov r3, r2 + 80024ea: 005b lsls r3, r3, #1 + 80024ec: 4413 add r3, r2 + 80024ee: 009b lsls r3, r3, #2 + 80024f0: 60fb str r3, [r7, #12] + while (wait_loop_index != 0UL) + 80024f2: e002 b.n 80024fa + { + wait_loop_index--; + 80024f4: 68fb ldr r3, [r7, #12] + 80024f6: 3b01 subs r3, #1 + 80024f8: 60fb str r3, [r7, #12] + while (wait_loop_index != 0UL) + 80024fa: 68fb ldr r3, [r7, #12] + 80024fc: 2b00 cmp r3, #0 + 80024fe: d1f9 bne.n 80024f4 + if (ADC_TEMPERATURE_SENSOR_INSTANCE(hadc)) + 8002500: e03a b.n 8002578 + } + } + } + else if ((pConfig->Channel == ADC_CHANNEL_VBAT) + 8002502: 683b ldr r3, [r7, #0] + 8002504: 681b ldr r3, [r3, #0] + 8002506: 4a27 ldr r2, [pc, #156] @ (80025a4 ) + 8002508: 4293 cmp r3, r2 + 800250a: d113 bne.n 8002534 + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VBAT) == 0UL)) + 800250c: f8d7 30c4 ldr.w r3, [r7, #196] @ 0xc4 + 8002510: f003 7380 and.w r3, r3, #16777216 @ 0x1000000 + 8002514: 2b00 cmp r3, #0 + 8002516: d10d bne.n 8002534 + { + if (ADC_BATTERY_VOLTAGE_INSTANCE(hadc)) + 8002518: 687b ldr r3, [r7, #4] + 800251a: 681b ldr r3, [r3, #0] + 800251c: 4a22 ldr r2, [pc, #136] @ (80025a8 ) + 800251e: 4293 cmp r3, r2 + 8002520: d02a beq.n 8002578 + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + 8002522: f8d7 30c4 ldr.w r3, [r7, #196] @ 0xc4 + 8002526: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 800252a: 4619 mov r1, r3 + 800252c: 4818 ldr r0, [pc, #96] @ (8002590 ) + 800252e: f7fe fe8e bl 800124e + if (ADC_BATTERY_VOLTAGE_INSTANCE(hadc)) + 8002532: e021 b.n 8002578 + LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); + } + } + else if ((pConfig->Channel == ADC_CHANNEL_VREFINT) + 8002534: 683b ldr r3, [r7, #0] + 8002536: 681b ldr r3, [r3, #0] + 8002538: 4a1c ldr r2, [pc, #112] @ (80025ac ) + 800253a: 4293 cmp r3, r2 + 800253c: d11c bne.n 8002578 + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) + 800253e: f8d7 30c4 ldr.w r3, [r7, #196] @ 0xc4 + 8002542: f403 0380 and.w r3, r3, #4194304 @ 0x400000 + 8002546: 2b00 cmp r3, #0 + 8002548: d116 bne.n 8002578 + { + if (ADC_VREFINT_INSTANCE(hadc)) + 800254a: 687b ldr r3, [r7, #4] + 800254c: 681b ldr r3, [r3, #0] + 800254e: 4a16 ldr r2, [pc, #88] @ (80025a8 ) + 8002550: 4293 cmp r3, r2 + 8002552: d011 beq.n 8002578 + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + 8002554: f8d7 30c4 ldr.w r3, [r7, #196] @ 0xc4 + 8002558: f443 0380 orr.w r3, r3, #4194304 @ 0x400000 + 800255c: 4619 mov r1, r3 + 800255e: 480c ldr r0, [pc, #48] @ (8002590 ) + 8002560: f7fe fe75 bl 800124e + 8002564: e008 b.n 8002578 + /* channel could be done on neither of the channel configuration structure */ + /* parameters. */ + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 8002566: 687b ldr r3, [r7, #4] + 8002568: 6ddb ldr r3, [r3, #92] @ 0x5c + 800256a: f043 0220 orr.w r2, r3, #32 + 800256e: 687b ldr r3, [r7, #4] + 8002570: 65da str r2, [r3, #92] @ 0x5c + + tmp_hal_status = HAL_ERROR; + 8002572: 2301 movs r3, #1 + 8002574: f887 30d7 strb.w r3, [r7, #215] @ 0xd7 + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + 8002578: 687b ldr r3, [r7, #4] + 800257a: 2200 movs r2, #0 + 800257c: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + /* Return function status */ + return tmp_hal_status; + 8002580: f897 30d7 ldrb.w r3, [r7, #215] @ 0xd7 +} + 8002584: 4618 mov r0, r3 + 8002586: 37d8 adds r7, #216 @ 0xd8 + 8002588: 46bd mov sp, r7 + 800258a: bd80 pop {r7, pc} + 800258c: 80080000 .word 0x80080000 + 8002590: 50000300 .word 0x50000300 + 8002594: c3210000 .word 0xc3210000 + 8002598: 90c00010 .word 0x90c00010 + 800259c: 20000000 .word 0x20000000 + 80025a0: 053e2d63 .word 0x053e2d63 + 80025a4: c7520000 .word 0xc7520000 + 80025a8: 50000100 .word 0x50000100 + 80025ac: cb840000 .word 0xcb840000 + +080025b0 : + * @arg @ref ADC_INJECTED_GROUP ADC injected conversion type. + * @arg @ref ADC_REGULAR_INJECTED_GROUP ADC regular and injected conversion type. + * @retval HAL status. + */ +HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup) +{ + 80025b0: b580 push {r7, lr} + 80025b2: b088 sub sp, #32 + 80025b4: af00 add r7, sp, #0 + 80025b6: 6078 str r0, [r7, #4] + 80025b8: 6039 str r1, [r7, #0] + uint32_t tickstart; + uint32_t Conversion_Timeout_CPU_cycles = 0UL; + 80025ba: 2300 movs r3, #0 + 80025bc: 61fb str r3, [r7, #28] + uint32_t conversion_group_reassigned = ConversionGroup; + 80025be: 683b ldr r3, [r7, #0] + 80025c0: 61bb str r3, [r7, #24] + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_CONVERSION_GROUP(ConversionGroup)); + + /* Verification if ADC is not already stopped (on regular and injected */ + /* groups) to bypass this function if not needed. */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 80025c2: 687b ldr r3, [r7, #4] + 80025c4: 681b ldr r3, [r3, #0] + 80025c6: 4618 mov r0, r3 + 80025c8: f7ff f86e bl 80016a8 + 80025cc: 6138 str r0, [r7, #16] + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 80025ce: 687b ldr r3, [r7, #4] + 80025d0: 681b ldr r3, [r3, #0] + 80025d2: 4618 mov r0, r3 + 80025d4: f7ff f88f bl 80016f6 + 80025d8: 60f8 str r0, [r7, #12] + if ((tmp_adc_is_conversion_on_going_regular != 0UL) + 80025da: 693b ldr r3, [r7, #16] + 80025dc: 2b00 cmp r3, #0 + 80025de: d103 bne.n 80025e8 + || (tmp_adc_is_conversion_on_going_injected != 0UL) + 80025e0: 68fb ldr r3, [r7, #12] + 80025e2: 2b00 cmp r3, #0 + 80025e4: f000 8098 beq.w 8002718 + /* auto-delay mode. */ + /* In auto-injection mode, regular group stop ADC_CR_ADSTP is used (not */ + /* injected group stop ADC_CR_JADSTP). */ + /* Procedure to be followed: Wait until JEOS=1, clear JEOS, set ADSTP=1 */ + /* (see reference manual). */ + if (((hadc->Instance->CFGR & ADC_CFGR_JAUTO) != 0UL) + 80025e8: 687b ldr r3, [r7, #4] + 80025ea: 681b ldr r3, [r3, #0] + 80025ec: 68db ldr r3, [r3, #12] + 80025ee: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80025f2: 2b00 cmp r3, #0 + 80025f4: d02a beq.n 800264c + && (hadc->Init.ContinuousConvMode == ENABLE) + 80025f6: 687b ldr r3, [r7, #4] + 80025f8: 7f5b ldrb r3, [r3, #29] + 80025fa: 2b01 cmp r3, #1 + 80025fc: d126 bne.n 800264c + && (hadc->Init.LowPowerAutoWait == ENABLE) + 80025fe: 687b ldr r3, [r7, #4] + 8002600: 7f1b ldrb r3, [r3, #28] + 8002602: 2b01 cmp r3, #1 + 8002604: d122 bne.n 800264c + ) + { + /* Use stop of regular group */ + conversion_group_reassigned = ADC_REGULAR_GROUP; + 8002606: 2301 movs r3, #1 + 8002608: 61bb str r3, [r7, #24] + + /* Wait until JEOS=1 (maximum Timeout: 4 injected conversions) */ + while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS) == 0UL) + 800260a: e014 b.n 8002636 + { + if (Conversion_Timeout_CPU_cycles >= (ADC_CONVERSION_TIME_MAX_CPU_CYCLES * 4UL)) + 800260c: 69fb ldr r3, [r7, #28] + 800260e: 4a45 ldr r2, [pc, #276] @ (8002724 ) + 8002610: 4293 cmp r3, r2 + 8002612: d90d bls.n 8002630 + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 8002614: 687b ldr r3, [r7, #4] + 8002616: 6ddb ldr r3, [r3, #92] @ 0x5c + 8002618: f043 0210 orr.w r2, r3, #16 + 800261c: 687b ldr r3, [r7, #4] + 800261e: 65da str r2, [r3, #92] @ 0x5c + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 8002620: 687b ldr r3, [r7, #4] + 8002622: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002624: f043 0201 orr.w r2, r3, #1 + 8002628: 687b ldr r3, [r7, #4] + 800262a: 661a str r2, [r3, #96] @ 0x60 + + return HAL_ERROR; + 800262c: 2301 movs r3, #1 + 800262e: e074 b.n 800271a + } + Conversion_Timeout_CPU_cycles ++; + 8002630: 69fb ldr r3, [r7, #28] + 8002632: 3301 adds r3, #1 + 8002634: 61fb str r3, [r7, #28] + while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS) == 0UL) + 8002636: 687b ldr r3, [r7, #4] + 8002638: 681b ldr r3, [r3, #0] + 800263a: 681b ldr r3, [r3, #0] + 800263c: f003 0340 and.w r3, r3, #64 @ 0x40 + 8002640: 2b40 cmp r3, #64 @ 0x40 + 8002642: d1e3 bne.n 800260c + } + + /* Clear JEOS */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOS); + 8002644: 687b ldr r3, [r7, #4] + 8002646: 681b ldr r3, [r3, #0] + 8002648: 2240 movs r2, #64 @ 0x40 + 800264a: 601a str r2, [r3, #0] + } + + /* Stop potential conversion on going on ADC group regular */ + if (conversion_group_reassigned != ADC_INJECTED_GROUP) + 800264c: 69bb ldr r3, [r7, #24] + 800264e: 2b02 cmp r3, #2 + 8002650: d014 beq.n 800267c + { + /* Software is allowed to set ADSTP only when ADSTART=1 and ADDIS=0 */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) != 0UL) + 8002652: 687b ldr r3, [r7, #4] + 8002654: 681b ldr r3, [r3, #0] + 8002656: 4618 mov r0, r3 + 8002658: f7ff f826 bl 80016a8 + 800265c: 4603 mov r3, r0 + 800265e: 2b00 cmp r3, #0 + 8002660: d00c beq.n 800267c + { + if (LL_ADC_IsDisableOngoing(hadc->Instance) == 0UL) + 8002662: 687b ldr r3, [r7, #4] + 8002664: 681b ldr r3, [r3, #0] + 8002666: 4618 mov r0, r3 + 8002668: f7fe ffe3 bl 8001632 + 800266c: 4603 mov r3, r0 + 800266e: 2b00 cmp r3, #0 + 8002670: d104 bne.n 800267c + { + /* Stop ADC group regular conversion */ + LL_ADC_REG_StopConversion(hadc->Instance); + 8002672: 687b ldr r3, [r7, #4] + 8002674: 681b ldr r3, [r3, #0] + 8002676: 4618 mov r0, r3 + 8002678: f7ff f802 bl 8001680 + } + } + } + + /* Stop potential conversion on going on ADC group injected */ + if (conversion_group_reassigned != ADC_REGULAR_GROUP) + 800267c: 69bb ldr r3, [r7, #24] + 800267e: 2b01 cmp r3, #1 + 8002680: d014 beq.n 80026ac + { + /* Software is allowed to set JADSTP only when JADSTART=1 and ADDIS=0 */ + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) + 8002682: 687b ldr r3, [r7, #4] + 8002684: 681b ldr r3, [r3, #0] + 8002686: 4618 mov r0, r3 + 8002688: f7ff f835 bl 80016f6 + 800268c: 4603 mov r3, r0 + 800268e: 2b00 cmp r3, #0 + 8002690: d00c beq.n 80026ac + { + if (LL_ADC_IsDisableOngoing(hadc->Instance) == 0UL) + 8002692: 687b ldr r3, [r7, #4] + 8002694: 681b ldr r3, [r3, #0] + 8002696: 4618 mov r0, r3 + 8002698: f7fe ffcb bl 8001632 + 800269c: 4603 mov r3, r0 + 800269e: 2b00 cmp r3, #0 + 80026a0: d104 bne.n 80026ac + { + /* Stop ADC group injected conversion */ + LL_ADC_INJ_StopConversion(hadc->Instance); + 80026a2: 687b ldr r3, [r7, #4] + 80026a4: 681b ldr r3, [r3, #0] + 80026a6: 4618 mov r0, r3 + 80026a8: f7ff f811 bl 80016ce + } + } + } + + /* Selection of start and stop bits with respect to the regular or injected group */ + switch (conversion_group_reassigned) + 80026ac: 69bb ldr r3, [r7, #24] + 80026ae: 2b02 cmp r3, #2 + 80026b0: d005 beq.n 80026be + 80026b2: 69bb ldr r3, [r7, #24] + 80026b4: 2b03 cmp r3, #3 + 80026b6: d105 bne.n 80026c4 + { + case ADC_REGULAR_INJECTED_GROUP: + tmp_ADC_CR_ADSTART_JADSTART = (ADC_CR_ADSTART | ADC_CR_JADSTART); + 80026b8: 230c movs r3, #12 + 80026ba: 617b str r3, [r7, #20] + break; + 80026bc: e005 b.n 80026ca + case ADC_INJECTED_GROUP: + tmp_ADC_CR_ADSTART_JADSTART = ADC_CR_JADSTART; + 80026be: 2308 movs r3, #8 + 80026c0: 617b str r3, [r7, #20] + break; + 80026c2: e002 b.n 80026ca + /* Case ADC_REGULAR_GROUP only*/ + default: + tmp_ADC_CR_ADSTART_JADSTART = ADC_CR_ADSTART; + 80026c4: 2304 movs r3, #4 + 80026c6: 617b str r3, [r7, #20] + break; + 80026c8: bf00 nop + } + + /* Wait for conversion effectively stopped */ + tickstart = HAL_GetTick(); + 80026ca: f7fe fda1 bl 8001210 + 80026ce: 60b8 str r0, [r7, #8] + + while ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) + 80026d0: e01b b.n 800270a + { + if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) + 80026d2: f7fe fd9d bl 8001210 + 80026d6: 4602 mov r2, r0 + 80026d8: 68bb ldr r3, [r7, #8] + 80026da: 1ad3 subs r3, r2, r3 + 80026dc: 2b05 cmp r3, #5 + 80026de: d914 bls.n 800270a + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) + 80026e0: 687b ldr r3, [r7, #4] + 80026e2: 681b ldr r3, [r3, #0] + 80026e4: 689a ldr r2, [r3, #8] + 80026e6: 697b ldr r3, [r7, #20] + 80026e8: 4013 ands r3, r2 + 80026ea: 2b00 cmp r3, #0 + 80026ec: d00d beq.n 800270a + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 80026ee: 687b ldr r3, [r7, #4] + 80026f0: 6ddb ldr r3, [r3, #92] @ 0x5c + 80026f2: f043 0210 orr.w r2, r3, #16 + 80026f6: 687b ldr r3, [r7, #4] + 80026f8: 65da str r2, [r3, #92] @ 0x5c + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 80026fa: 687b ldr r3, [r7, #4] + 80026fc: 6e1b ldr r3, [r3, #96] @ 0x60 + 80026fe: f043 0201 orr.w r2, r3, #1 + 8002702: 687b ldr r3, [r7, #4] + 8002704: 661a str r2, [r3, #96] @ 0x60 + + return HAL_ERROR; + 8002706: 2301 movs r3, #1 + 8002708: e007 b.n 800271a + while ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) + 800270a: 687b ldr r3, [r7, #4] + 800270c: 681b ldr r3, [r3, #0] + 800270e: 689a ldr r2, [r3, #8] + 8002710: 697b ldr r3, [r7, #20] + 8002712: 4013 ands r3, r2 + 8002714: 2b00 cmp r3, #0 + 8002716: d1dc bne.n 80026d2 + } + + } + + /* Return HAL status */ + return HAL_OK; + 8002718: 2300 movs r3, #0 +} + 800271a: 4618 mov r0, r3 + 800271c: 3720 adds r7, #32 + 800271e: 46bd mov sp, r7 + 8002720: bd80 pop {r7, pc} + 8002722: bf00 nop + 8002724: a33fffff .word 0xa33fffff + +08002728 : + * and voltage regulator must be enabled (done into HAL_ADC_Init()). + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc) +{ + 8002728: b580 push {r7, lr} + 800272a: b084 sub sp, #16 + 800272c: af00 add r7, sp, #0 + 800272e: 6078 str r0, [r7, #4] + uint32_t tickstart; + __IO uint32_t wait_loop_index = 0UL; + 8002730: 2300 movs r3, #0 + 8002732: 60bb str r3, [r7, #8] + + /* ADC enable and wait for ADC ready (in case of ADC is disabled or */ + /* enabling phase not yet completed: flag ADC ready not yet set). */ + /* Timeout implemented to not be stuck if ADC cannot be enabled (possible */ + /* causes: ADC clock not running, ...). */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 8002734: 687b ldr r3, [r7, #4] + 8002736: 681b ldr r3, [r3, #0] + 8002738: 4618 mov r0, r3 + 800273a: f7fe ff67 bl 800160c + 800273e: 4603 mov r3, r0 + 8002740: 2b00 cmp r3, #0 + 8002742: d169 bne.n 8002818 + { + /* Check if conditions to enable the ADC are fulfilled */ + if ((hadc->Instance->CR & (ADC_CR_ADCAL | ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | ADC_CR_ADSTART + 8002744: 687b ldr r3, [r7, #4] + 8002746: 681b ldr r3, [r3, #0] + 8002748: 689a ldr r2, [r3, #8] + 800274a: 4b36 ldr r3, [pc, #216] @ (8002824 ) + 800274c: 4013 ands r3, r2 + 800274e: 2b00 cmp r3, #0 + 8002750: d00d beq.n 800276e + | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 8002752: 687b ldr r3, [r7, #4] + 8002754: 6ddb ldr r3, [r3, #92] @ 0x5c + 8002756: f043 0210 orr.w r2, r3, #16 + 800275a: 687b ldr r3, [r7, #4] + 800275c: 65da str r2, [r3, #92] @ 0x5c + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 800275e: 687b ldr r3, [r7, #4] + 8002760: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002762: f043 0201 orr.w r2, r3, #1 + 8002766: 687b ldr r3, [r7, #4] + 8002768: 661a str r2, [r3, #96] @ 0x60 + + return HAL_ERROR; + 800276a: 2301 movs r3, #1 + 800276c: e055 b.n 800281a + } + + /* Enable the ADC peripheral */ + LL_ADC_Enable(hadc->Instance); + 800276e: 687b ldr r3, [r7, #4] + 8002770: 681b ldr r3, [r3, #0] + 8002772: 4618 mov r0, r3 + 8002774: f7fe ff22 bl 80015bc + + if ((LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) + 8002778: 482b ldr r0, [pc, #172] @ (8002828 ) + 800277a: f7fe fd7b bl 8001274 + 800277e: 4603 mov r3, r0 + & LL_ADC_PATH_INTERNAL_TEMPSENSOR) != 0UL) + 8002780: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + if ((LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) + 8002784: 2b00 cmp r3, #0 + 8002786: d013 beq.n 80027b0 + + /* Wait loop initialization and execution */ + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL)); + 8002788: 4b28 ldr r3, [pc, #160] @ (800282c ) + 800278a: 681b ldr r3, [r3, #0] + 800278c: 099b lsrs r3, r3, #6 + 800278e: 4a28 ldr r2, [pc, #160] @ (8002830 ) + 8002790: fba2 2303 umull r2, r3, r2, r3 + 8002794: 099b lsrs r3, r3, #6 + 8002796: 1c5a adds r2, r3, #1 + 8002798: 4613 mov r3, r2 + 800279a: 005b lsls r3, r3, #1 + 800279c: 4413 add r3, r2 + 800279e: 009b lsls r3, r3, #2 + 80027a0: 60bb str r3, [r7, #8] + while (wait_loop_index != 0UL) + 80027a2: e002 b.n 80027aa + { + wait_loop_index--; + 80027a4: 68bb ldr r3, [r7, #8] + 80027a6: 3b01 subs r3, #1 + 80027a8: 60bb str r3, [r7, #8] + while (wait_loop_index != 0UL) + 80027aa: 68bb ldr r3, [r7, #8] + 80027ac: 2b00 cmp r3, #0 + 80027ae: d1f9 bne.n 80027a4 + } + } + + /* Wait for ADC effectively enabled */ + tickstart = HAL_GetTick(); + 80027b0: f7fe fd2e bl 8001210 + 80027b4: 60f8 str r0, [r7, #12] + + while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) + 80027b6: e028 b.n 800280a + The workaround is to continue setting ADEN until ADRDY is becomes 1. + Additionally, ADC_ENABLE_TIMEOUT is defined to encompass this + 4 ADC clock cycle duration */ + /* Note: Test of ADC enabled required due to hardware constraint to */ + /* not enable ADC if already enabled. */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 80027b8: 687b ldr r3, [r7, #4] + 80027ba: 681b ldr r3, [r3, #0] + 80027bc: 4618 mov r0, r3 + 80027be: f7fe ff25 bl 800160c + 80027c2: 4603 mov r3, r0 + 80027c4: 2b00 cmp r3, #0 + 80027c6: d104 bne.n 80027d2 + { + LL_ADC_Enable(hadc->Instance); + 80027c8: 687b ldr r3, [r7, #4] + 80027ca: 681b ldr r3, [r3, #0] + 80027cc: 4618 mov r0, r3 + 80027ce: f7fe fef5 bl 80015bc + } + + if ((HAL_GetTick() - tickstart) > ADC_ENABLE_TIMEOUT) + 80027d2: f7fe fd1d bl 8001210 + 80027d6: 4602 mov r2, r0 + 80027d8: 68fb ldr r3, [r7, #12] + 80027da: 1ad3 subs r3, r2, r3 + 80027dc: 2b02 cmp r3, #2 + 80027de: d914 bls.n 800280a + { + /* New check to avoid false timeout detection in case of preemption */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) + 80027e0: 687b ldr r3, [r7, #4] + 80027e2: 681b ldr r3, [r3, #0] + 80027e4: 681b ldr r3, [r3, #0] + 80027e6: f003 0301 and.w r3, r3, #1 + 80027ea: 2b01 cmp r3, #1 + 80027ec: d00d beq.n 800280a + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 80027ee: 687b ldr r3, [r7, #4] + 80027f0: 6ddb ldr r3, [r3, #92] @ 0x5c + 80027f2: f043 0210 orr.w r2, r3, #16 + 80027f6: 687b ldr r3, [r7, #4] + 80027f8: 65da str r2, [r3, #92] @ 0x5c + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 80027fa: 687b ldr r3, [r7, #4] + 80027fc: 6e1b ldr r3, [r3, #96] @ 0x60 + 80027fe: f043 0201 orr.w r2, r3, #1 + 8002802: 687b ldr r3, [r7, #4] + 8002804: 661a str r2, [r3, #96] @ 0x60 + + return HAL_ERROR; + 8002806: 2301 movs r3, #1 + 8002808: e007 b.n 800281a + while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) + 800280a: 687b ldr r3, [r7, #4] + 800280c: 681b ldr r3, [r3, #0] + 800280e: 681b ldr r3, [r3, #0] + 8002810: f003 0301 and.w r3, r3, #1 + 8002814: 2b01 cmp r3, #1 + 8002816: d1cf bne.n 80027b8 + } + } + } + + /* Return HAL status */ + return HAL_OK; + 8002818: 2300 movs r3, #0 +} + 800281a: 4618 mov r0, r3 + 800281c: 3710 adds r7, #16 + 800281e: 46bd mov sp, r7 + 8002820: bd80 pop {r7, pc} + 8002822: bf00 nop + 8002824: 8000003f .word 0x8000003f + 8002828: 50000300 .word 0x50000300 + 800282c: 20000000 .word 0x20000000 + 8002830: 053e2d63 .word 0x053e2d63 + +08002834 : + * stopped. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc) +{ + 8002834: b580 push {r7, lr} + 8002836: b084 sub sp, #16 + 8002838: af00 add r7, sp, #0 + 800283a: 6078 str r0, [r7, #4] + uint32_t tickstart; + const uint32_t tmp_adc_is_disable_on_going = LL_ADC_IsDisableOngoing(hadc->Instance); + 800283c: 687b ldr r3, [r7, #4] + 800283e: 681b ldr r3, [r3, #0] + 8002840: 4618 mov r0, r3 + 8002842: f7fe fef6 bl 8001632 + 8002846: 60f8 str r0, [r7, #12] + + /* Verification if ADC is not already disabled: */ + /* Note: forbidden to disable ADC (set bit ADC_CR_ADDIS) if ADC is already */ + /* disabled. */ + if ((LL_ADC_IsEnabled(hadc->Instance) != 0UL) + 8002848: 687b ldr r3, [r7, #4] + 800284a: 681b ldr r3, [r3, #0] + 800284c: 4618 mov r0, r3 + 800284e: f7fe fedd bl 800160c + 8002852: 4603 mov r3, r0 + 8002854: 2b00 cmp r3, #0 + 8002856: d047 beq.n 80028e8 + && (tmp_adc_is_disable_on_going == 0UL) + 8002858: 68fb ldr r3, [r7, #12] + 800285a: 2b00 cmp r3, #0 + 800285c: d144 bne.n 80028e8 + ) + { + /* Check if conditions to disable the ADC are fulfilled */ + if ((hadc->Instance->CR & (ADC_CR_JADSTART | ADC_CR_ADSTART | ADC_CR_ADEN)) == ADC_CR_ADEN) + 800285e: 687b ldr r3, [r7, #4] + 8002860: 681b ldr r3, [r3, #0] + 8002862: 689b ldr r3, [r3, #8] + 8002864: f003 030d and.w r3, r3, #13 + 8002868: 2b01 cmp r3, #1 + 800286a: d10c bne.n 8002886 + { + /* Disable the ADC peripheral */ + LL_ADC_Disable(hadc->Instance); + 800286c: 687b ldr r3, [r7, #4] + 800286e: 681b ldr r3, [r3, #0] + 8002870: 4618 mov r0, r3 + 8002872: f7fe feb7 bl 80015e4 + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOSMP | ADC_FLAG_RDY)); + 8002876: 687b ldr r3, [r7, #4] + 8002878: 681b ldr r3, [r3, #0] + 800287a: 2203 movs r2, #3 + 800287c: 601a str r2, [r3, #0] + return HAL_ERROR; + } + + /* Wait for ADC effectively disabled */ + /* Get tick count */ + tickstart = HAL_GetTick(); + 800287e: f7fe fcc7 bl 8001210 + 8002882: 60b8 str r0, [r7, #8] + + while ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) + 8002884: e029 b.n 80028da + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 8002886: 687b ldr r3, [r7, #4] + 8002888: 6ddb ldr r3, [r3, #92] @ 0x5c + 800288a: f043 0210 orr.w r2, r3, #16 + 800288e: 687b ldr r3, [r7, #4] + 8002890: 65da str r2, [r3, #92] @ 0x5c + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 8002892: 687b ldr r3, [r7, #4] + 8002894: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002896: f043 0201 orr.w r2, r3, #1 + 800289a: 687b ldr r3, [r7, #4] + 800289c: 661a str r2, [r3, #96] @ 0x60 + return HAL_ERROR; + 800289e: 2301 movs r3, #1 + 80028a0: e023 b.n 80028ea + { + if ((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT) + 80028a2: f7fe fcb5 bl 8001210 + 80028a6: 4602 mov r2, r0 + 80028a8: 68bb ldr r3, [r7, #8] + 80028aa: 1ad3 subs r3, r2, r3 + 80028ac: 2b02 cmp r3, #2 + 80028ae: d914 bls.n 80028da + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) + 80028b0: 687b ldr r3, [r7, #4] + 80028b2: 681b ldr r3, [r3, #0] + 80028b4: 689b ldr r3, [r3, #8] + 80028b6: f003 0301 and.w r3, r3, #1 + 80028ba: 2b00 cmp r3, #0 + 80028bc: d00d beq.n 80028da + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 80028be: 687b ldr r3, [r7, #4] + 80028c0: 6ddb ldr r3, [r3, #92] @ 0x5c + 80028c2: f043 0210 orr.w r2, r3, #16 + 80028c6: 687b ldr r3, [r7, #4] + 80028c8: 65da str r2, [r3, #92] @ 0x5c + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 80028ca: 687b ldr r3, [r7, #4] + 80028cc: 6e1b ldr r3, [r3, #96] @ 0x60 + 80028ce: f043 0201 orr.w r2, r3, #1 + 80028d2: 687b ldr r3, [r7, #4] + 80028d4: 661a str r2, [r3, #96] @ 0x60 + + return HAL_ERROR; + 80028d6: 2301 movs r3, #1 + 80028d8: e007 b.n 80028ea + while ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) + 80028da: 687b ldr r3, [r7, #4] + 80028dc: 681b ldr r3, [r3, #0] + 80028de: 689b ldr r3, [r3, #8] + 80028e0: f003 0301 and.w r3, r3, #1 + 80028e4: 2b00 cmp r3, #0 + 80028e6: d1dc bne.n 80028a2 + } + } + } + + /* Return HAL status */ + return HAL_OK; + 80028e8: 2300 movs r3, #0 +} + 80028ea: 4618 mov r0, r3 + 80028ec: 3710 adds r7, #16 + 80028ee: 46bd mov sp, r7 + 80028f0: bd80 pop {r7, pc} + +080028f2 : +{ + 80028f2: b480 push {r7} + 80028f4: b083 sub sp, #12 + 80028f6: af00 add r7, sp, #0 + 80028f8: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL); + 80028fa: 687b ldr r3, [r7, #4] + 80028fc: 689b ldr r3, [r3, #8] + 80028fe: f003 0301 and.w r3, r3, #1 + 8002902: 2b01 cmp r3, #1 + 8002904: d101 bne.n 800290a + 8002906: 2301 movs r3, #1 + 8002908: e000 b.n 800290c + 800290a: 2300 movs r3, #0 +} + 800290c: 4618 mov r0, r3 + 800290e: 370c adds r7, #12 + 8002910: 46bd mov sp, r7 + 8002912: f85d 7b04 ldr.w r7, [sp], #4 + 8002916: 4770 bx lr + +08002918 : +{ + 8002918: b480 push {r7} + 800291a: b083 sub sp, #12 + 800291c: af00 add r7, sp, #0 + 800291e: 6078 str r0, [r7, #4] + return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL); + 8002920: 687b ldr r3, [r7, #4] + 8002922: 689b ldr r3, [r3, #8] + 8002924: f003 0304 and.w r3, r3, #4 + 8002928: 2b04 cmp r3, #4 + 800292a: d101 bne.n 8002930 + 800292c: 2301 movs r3, #1 + 800292e: e000 b.n 8002932 + 8002930: 2300 movs r3, #0 +} + 8002932: 4618 mov r0, r3 + 8002934: 370c adds r7, #12 + 8002936: 46bd mov sp, r7 + 8002938: f85d 7b04 ldr.w r7, [sp], #4 + 800293c: 4770 bx lr + ... + +08002940 : + * @param hadc Master ADC handle + * @param pMultimode Structure of ADC multimode configuration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, const ADC_MultiModeTypeDef *pMultimode) +{ + 8002940: b590 push {r4, r7, lr} + 8002942: b0a1 sub sp, #132 @ 0x84 + 8002944: af00 add r7, sp, #0 + 8002946: 6078 str r0, [r7, #4] + 8002948: 6039 str r1, [r7, #0] + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 800294a: 2300 movs r3, #0 + 800294c: f887 307f strb.w r3, [r7, #127] @ 0x7f + assert_param(IS_ADC_DMA_ACCESS_MULTIMODE(pMultimode->DMAAccessMode)); + assert_param(IS_ADC_SAMPLING_DELAY(pMultimode->TwoSamplingDelay)); + } + + /* Process locked */ + __HAL_LOCK(hadc); + 8002950: 687b ldr r3, [r7, #4] + 8002952: f893 3058 ldrb.w r3, [r3, #88] @ 0x58 + 8002956: 2b01 cmp r3, #1 + 8002958: d101 bne.n 800295e + 800295a: 2302 movs r3, #2 + 800295c: e08b b.n 8002a76 + 800295e: 687b ldr r3, [r7, #4] + 8002960: 2201 movs r2, #1 + 8002962: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + /* Temporary handle minimum initialization */ + __HAL_ADC_RESET_HANDLE_STATE(&tmp_hadc_slave); + 8002966: 2300 movs r3, #0 + 8002968: 667b str r3, [r7, #100] @ 0x64 + ADC_CLEAR_ERRORCODE(&tmp_hadc_slave); + 800296a: 2300 movs r3, #0 + 800296c: 66bb str r3, [r7, #104] @ 0x68 + + ADC_MULTI_SLAVE(hadc, &tmp_hadc_slave); + 800296e: 687b ldr r3, [r7, #4] + 8002970: 681b ldr r3, [r3, #0] + 8002972: f1b3 4fa0 cmp.w r3, #1342177280 @ 0x50000000 + 8002976: d102 bne.n 800297e + 8002978: 4b41 ldr r3, [pc, #260] @ (8002a80 ) + 800297a: 60bb str r3, [r7, #8] + 800297c: e001 b.n 8002982 + 800297e: 2300 movs r3, #0 + 8002980: 60bb str r3, [r7, #8] + + if (tmp_hadc_slave.Instance == NULL) + 8002982: 68bb ldr r3, [r7, #8] + 8002984: 2b00 cmp r3, #0 + 8002986: d10b bne.n 80029a0 + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 8002988: 687b ldr r3, [r7, #4] + 800298a: 6ddb ldr r3, [r3, #92] @ 0x5c + 800298c: f043 0220 orr.w r2, r3, #32 + 8002990: 687b ldr r3, [r7, #4] + 8002992: 65da str r2, [r3, #92] @ 0x5c + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + 8002994: 687b ldr r3, [r7, #4] + 8002996: 2200 movs r2, #0 + 8002998: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + return HAL_ERROR; + 800299c: 2301 movs r3, #1 + 800299e: e06a b.n 8002a76 + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular group: */ + /* - Multimode DMA configuration */ + /* - Multimode DMA mode */ + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + 80029a0: 68bb ldr r3, [r7, #8] + 80029a2: 4618 mov r0, r3 + 80029a4: f7ff ffb8 bl 8002918 + 80029a8: 67b8 str r0, [r7, #120] @ 0x78 + if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + 80029aa: 687b ldr r3, [r7, #4] + 80029ac: 681b ldr r3, [r3, #0] + 80029ae: 4618 mov r0, r3 + 80029b0: f7ff ffb2 bl 8002918 + 80029b4: 4603 mov r3, r0 + 80029b6: 2b00 cmp r3, #0 + 80029b8: d14c bne.n 8002a54 + && (tmp_hadc_slave_conversion_on_going == 0UL)) + 80029ba: 6fbb ldr r3, [r7, #120] @ 0x78 + 80029bc: 2b00 cmp r3, #0 + 80029be: d149 bne.n 8002a54 + { + /* Pointer to the common control register */ + tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + 80029c0: 4b30 ldr r3, [pc, #192] @ (8002a84 ) + 80029c2: 677b str r3, [r7, #116] @ 0x74 + + /* If multimode is selected, configure all multimode parameters. */ + /* Otherwise, reset multimode parameters (can be used in case of */ + /* transition from multimode to independent mode). */ + if (pMultimode->Mode != ADC_MODE_INDEPENDENT) + 80029c4: 683b ldr r3, [r7, #0] + 80029c6: 681b ldr r3, [r3, #0] + 80029c8: 2b00 cmp r3, #0 + 80029ca: d028 beq.n 8002a1e + { + MODIFY_REG(tmpADC_Common->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, + 80029cc: 6f7b ldr r3, [r7, #116] @ 0x74 + 80029ce: 689b ldr r3, [r3, #8] + 80029d0: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 80029d4: 683b ldr r3, [r7, #0] + 80029d6: 6859 ldr r1, [r3, #4] + 80029d8: 687b ldr r3, [r7, #4] + 80029da: f893 3038 ldrb.w r3, [r3, #56] @ 0x38 + 80029de: 035b lsls r3, r3, #13 + 80029e0: 430b orrs r3, r1 + 80029e2: 431a orrs r2, r3 + 80029e4: 6f7b ldr r3, [r7, #116] @ 0x74 + 80029e6: 609a str r2, [r3, #8] + /* from 1 to 10 clock cycles for 10 bits, */ + /* from 1 to 8 clock cycles for 8 bits */ + /* from 1 to 6 clock cycles for 6 bits */ + /* If a higher delay is selected, it will be clipped to maximum delay */ + /* range */ + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 80029e8: f04f 40a0 mov.w r0, #1342177280 @ 0x50000000 + 80029ec: f7ff ff81 bl 80028f2 + 80029f0: 4604 mov r4, r0 + 80029f2: 4823 ldr r0, [pc, #140] @ (8002a80 ) + 80029f4: f7ff ff7d bl 80028f2 + 80029f8: 4603 mov r3, r0 + 80029fa: 4323 orrs r3, r4 + 80029fc: 2b00 cmp r3, #0 + 80029fe: d133 bne.n 8002a68 + { + MODIFY_REG(tmpADC_Common->CCR, + 8002a00: 6f7b ldr r3, [r7, #116] @ 0x74 + 8002a02: 689b ldr r3, [r3, #8] + 8002a04: f423 6371 bic.w r3, r3, #3856 @ 0xf10 + 8002a08: f023 030f bic.w r3, r3, #15 + 8002a0c: 683a ldr r2, [r7, #0] + 8002a0e: 6811 ldr r1, [r2, #0] + 8002a10: 683a ldr r2, [r7, #0] + 8002a12: 6892 ldr r2, [r2, #8] + 8002a14: 430a orrs r2, r1 + 8002a16: 431a orrs r2, r3 + 8002a18: 6f7b ldr r3, [r7, #116] @ 0x74 + 8002a1a: 609a str r2, [r3, #8] + if (pMultimode->Mode != ADC_MODE_INDEPENDENT) + 8002a1c: e024 b.n 8002a68 + ); + } + } + else /* ADC_MODE_INDEPENDENT */ + { + CLEAR_BIT(tmpADC_Common->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG); + 8002a1e: 6f7b ldr r3, [r7, #116] @ 0x74 + 8002a20: 689b ldr r3, [r3, #8] + 8002a22: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 8002a26: 6f7b ldr r3, [r7, #116] @ 0x74 + 8002a28: 609a str r2, [r3, #8] + + /* Parameters that can be updated only when ADC is disabled: */ + /* - Multimode mode selection */ + /* - Multimode delay */ + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 8002a2a: f04f 40a0 mov.w r0, #1342177280 @ 0x50000000 + 8002a2e: f7ff ff60 bl 80028f2 + 8002a32: 4604 mov r4, r0 + 8002a34: 4812 ldr r0, [pc, #72] @ (8002a80 ) + 8002a36: f7ff ff5c bl 80028f2 + 8002a3a: 4603 mov r3, r0 + 8002a3c: 4323 orrs r3, r4 + 8002a3e: 2b00 cmp r3, #0 + 8002a40: d112 bne.n 8002a68 + { + CLEAR_BIT(tmpADC_Common->CCR, ADC_CCR_DUAL | ADC_CCR_DELAY); + 8002a42: 6f7b ldr r3, [r7, #116] @ 0x74 + 8002a44: 689b ldr r3, [r3, #8] + 8002a46: f423 6371 bic.w r3, r3, #3856 @ 0xf10 + 8002a4a: f023 030f bic.w r3, r3, #15 + 8002a4e: 6f7a ldr r2, [r7, #116] @ 0x74 + 8002a50: 6093 str r3, [r2, #8] + if (pMultimode->Mode != ADC_MODE_INDEPENDENT) + 8002a52: e009 b.n 8002a68 + /* If one of the ADC sharing the same common group is enabled, no update */ + /* could be done on neither of the multimode structure parameters. */ + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 8002a54: 687b ldr r3, [r7, #4] + 8002a56: 6ddb ldr r3, [r3, #92] @ 0x5c + 8002a58: f043 0220 orr.w r2, r3, #32 + 8002a5c: 687b ldr r3, [r7, #4] + 8002a5e: 65da str r2, [r3, #92] @ 0x5c + + tmp_hal_status = HAL_ERROR; + 8002a60: 2301 movs r3, #1 + 8002a62: f887 307f strb.w r3, [r7, #127] @ 0x7f + 8002a66: e000 b.n 8002a6a + if (pMultimode->Mode != ADC_MODE_INDEPENDENT) + 8002a68: bf00 nop + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + 8002a6a: 687b ldr r3, [r7, #4] + 8002a6c: 2200 movs r2, #0 + 8002a6e: f883 2058 strb.w r2, [r3, #88] @ 0x58 + + /* Return function status */ + return tmp_hal_status; + 8002a72: f897 307f ldrb.w r3, [r7, #127] @ 0x7f +} + 8002a76: 4618 mov r0, r3 + 8002a78: 3784 adds r7, #132 @ 0x84 + 8002a7a: 46bd mov sp, r7 + 8002a7c: bd90 pop {r4, r7, pc} + 8002a7e: bf00 nop + 8002a80: 50000100 .word 0x50000100 + 8002a84: 50000300 .word 0x50000300 + +08002a88 <__NVIC_SetPriorityGrouping>: + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 8002a88: b480 push {r7} + 8002a8a: b085 sub sp, #20 + 8002a8c: af00 add r7, sp, #0 + 8002a8e: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8002a90: 687b ldr r3, [r7, #4] + 8002a92: f003 0307 and.w r3, r3, #7 + 8002a96: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 8002a98: 4b0c ldr r3, [pc, #48] @ (8002acc <__NVIC_SetPriorityGrouping+0x44>) + 8002a9a: 68db ldr r3, [r3, #12] + 8002a9c: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 8002a9e: 68ba ldr r2, [r7, #8] + 8002aa0: f64f 03ff movw r3, #63743 @ 0xf8ff + 8002aa4: 4013 ands r3, r2 + 8002aa6: 60bb str r3, [r7, #8] + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + 8002aa8: 68fb ldr r3, [r7, #12] + 8002aaa: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 8002aac: 68bb ldr r3, [r7, #8] + 8002aae: 4313 orrs r3, r2 + reg_value = (reg_value | + 8002ab0: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 + 8002ab4: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8002ab8: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 8002aba: 4a04 ldr r2, [pc, #16] @ (8002acc <__NVIC_SetPriorityGrouping+0x44>) + 8002abc: 68bb ldr r3, [r7, #8] + 8002abe: 60d3 str r3, [r2, #12] +} + 8002ac0: bf00 nop + 8002ac2: 3714 adds r7, #20 + 8002ac4: 46bd mov sp, r7 + 8002ac6: f85d 7b04 ldr.w r7, [sp], #4 + 8002aca: 4770 bx lr + 8002acc: e000ed00 .word 0xe000ed00 + +08002ad0 <__NVIC_GetPriorityGrouping>: + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + 8002ad0: b480 push {r7} + 8002ad2: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 8002ad4: 4b04 ldr r3, [pc, #16] @ (8002ae8 <__NVIC_GetPriorityGrouping+0x18>) + 8002ad6: 68db ldr r3, [r3, #12] + 8002ad8: 0a1b lsrs r3, r3, #8 + 8002ada: f003 0307 and.w r3, r3, #7 +} + 8002ade: 4618 mov r0, r3 + 8002ae0: 46bd mov sp, r7 + 8002ae2: f85d 7b04 ldr.w r7, [sp], #4 + 8002ae6: 4770 bx lr + 8002ae8: e000ed00 .word 0xe000ed00 + +08002aec <__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) +{ + 8002aec: b480 push {r7} + 8002aee: b083 sub sp, #12 + 8002af0: af00 add r7, sp, #0 + 8002af2: 4603 mov r3, r0 + 8002af4: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 8002af6: f997 3007 ldrsb.w r3, [r7, #7] + 8002afa: 2b00 cmp r3, #0 + 8002afc: db0b blt.n 8002b16 <__NVIC_EnableIRQ+0x2a> + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + 8002afe: 79fb ldrb r3, [r7, #7] + 8002b00: f003 021f and.w r2, r3, #31 + 8002b04: 4907 ldr r1, [pc, #28] @ (8002b24 <__NVIC_EnableIRQ+0x38>) + 8002b06: f997 3007 ldrsb.w r3, [r7, #7] + 8002b0a: 095b lsrs r3, r3, #5 + 8002b0c: 2001 movs r0, #1 + 8002b0e: fa00 f202 lsl.w r2, r0, r2 + 8002b12: f841 2023 str.w r2, [r1, r3, lsl #2] + __COMPILER_BARRIER(); + } +} + 8002b16: bf00 nop + 8002b18: 370c adds r7, #12 + 8002b1a: 46bd mov sp, r7 + 8002b1c: f85d 7b04 ldr.w r7, [sp], #4 + 8002b20: 4770 bx lr + 8002b22: bf00 nop + 8002b24: e000e100 .word 0xe000e100 + +08002b28 <__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) +{ + 8002b28: b480 push {r7} + 8002b2a: b083 sub sp, #12 + 8002b2c: af00 add r7, sp, #0 + 8002b2e: 4603 mov r3, r0 + 8002b30: 6039 str r1, [r7, #0] + 8002b32: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 8002b34: f997 3007 ldrsb.w r3, [r7, #7] + 8002b38: 2b00 cmp r3, #0 + 8002b3a: db0a blt.n 8002b52 <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8002b3c: 683b ldr r3, [r7, #0] + 8002b3e: b2da uxtb r2, r3 + 8002b40: 490c ldr r1, [pc, #48] @ (8002b74 <__NVIC_SetPriority+0x4c>) + 8002b42: f997 3007 ldrsb.w r3, [r7, #7] + 8002b46: 0112 lsls r2, r2, #4 + 8002b48: b2d2 uxtb r2, r2 + 8002b4a: 440b add r3, r1 + 8002b4c: f883 2300 strb.w r2, [r3, #768] @ 0x300 + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + 8002b50: e00a b.n 8002b68 <__NVIC_SetPriority+0x40> + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8002b52: 683b ldr r3, [r7, #0] + 8002b54: b2da uxtb r2, r3 + 8002b56: 4908 ldr r1, [pc, #32] @ (8002b78 <__NVIC_SetPriority+0x50>) + 8002b58: 79fb ldrb r3, [r7, #7] + 8002b5a: f003 030f and.w r3, r3, #15 + 8002b5e: 3b04 subs r3, #4 + 8002b60: 0112 lsls r2, r2, #4 + 8002b62: b2d2 uxtb r2, r2 + 8002b64: 440b add r3, r1 + 8002b66: 761a strb r2, [r3, #24] +} + 8002b68: bf00 nop + 8002b6a: 370c adds r7, #12 + 8002b6c: 46bd mov sp, r7 + 8002b6e: f85d 7b04 ldr.w r7, [sp], #4 + 8002b72: 4770 bx lr + 8002b74: e000e100 .word 0xe000e100 + 8002b78: e000ed00 .word 0xe000ed00 + +08002b7c : + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + 8002b7c: b480 push {r7} + 8002b7e: b089 sub sp, #36 @ 0x24 + 8002b80: af00 add r7, sp, #0 + 8002b82: 60f8 str r0, [r7, #12] + 8002b84: 60b9 str r1, [r7, #8] + 8002b86: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8002b88: 68fb ldr r3, [r7, #12] + 8002b8a: f003 0307 and.w r3, r3, #7 + 8002b8e: 61fb str r3, [r7, #28] + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + 8002b90: 69fb ldr r3, [r7, #28] + 8002b92: f1c3 0307 rsb r3, r3, #7 + 8002b96: 2b04 cmp r3, #4 + 8002b98: bf28 it cs + 8002b9a: 2304 movcs r3, #4 + 8002b9c: 61bb str r3, [r7, #24] + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + 8002b9e: 69fb ldr r3, [r7, #28] + 8002ba0: 3304 adds r3, #4 + 8002ba2: 2b06 cmp r3, #6 + 8002ba4: d902 bls.n 8002bac + 8002ba6: 69fb ldr r3, [r7, #28] + 8002ba8: 3b03 subs r3, #3 + 8002baa: e000 b.n 8002bae + 8002bac: 2300 movs r3, #0 + 8002bae: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8002bb0: f04f 32ff mov.w r2, #4294967295 + 8002bb4: 69bb ldr r3, [r7, #24] + 8002bb6: fa02 f303 lsl.w r3, r2, r3 + 8002bba: 43da mvns r2, r3 + 8002bbc: 68bb ldr r3, [r7, #8] + 8002bbe: 401a ands r2, r3 + 8002bc0: 697b ldr r3, [r7, #20] + 8002bc2: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 8002bc4: f04f 31ff mov.w r1, #4294967295 + 8002bc8: 697b ldr r3, [r7, #20] + 8002bca: fa01 f303 lsl.w r3, r1, r3 + 8002bce: 43d9 mvns r1, r3 + 8002bd0: 687b ldr r3, [r7, #4] + 8002bd2: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8002bd4: 4313 orrs r3, r2 + ); +} + 8002bd6: 4618 mov r0, r3 + 8002bd8: 3724 adds r7, #36 @ 0x24 + 8002bda: 46bd mov sp, r7 + 8002bdc: f85d 7b04 ldr.w r7, [sp], #4 + 8002be0: 4770 bx lr + ... + +08002be4 : + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + 8002be4: b580 push {r7, lr} + 8002be6: b082 sub sp, #8 + 8002be8: af00 add r7, sp, #0 + 8002bea: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 8002bec: 687b ldr r3, [r7, #4] + 8002bee: 3b01 subs r3, #1 + 8002bf0: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 8002bf4: d301 bcc.n 8002bfa + { + return (1UL); /* Reload value impossible */ + 8002bf6: 2301 movs r3, #1 + 8002bf8: e00f b.n 8002c1a + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 8002bfa: 4a0a ldr r2, [pc, #40] @ (8002c24 ) + 8002bfc: 687b ldr r3, [r7, #4] + 8002bfe: 3b01 subs r3, #1 + 8002c00: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 8002c02: 210f movs r1, #15 + 8002c04: f04f 30ff mov.w r0, #4294967295 + 8002c08: f7ff ff8e bl 8002b28 <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 8002c0c: 4b05 ldr r3, [pc, #20] @ (8002c24 ) + 8002c0e: 2200 movs r2, #0 + 8002c10: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 8002c12: 4b04 ldr r3, [pc, #16] @ (8002c24 ) + 8002c14: 2207 movs r2, #7 + 8002c16: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 8002c18: 2300 movs r3, #0 +} + 8002c1a: 4618 mov r0, r3 + 8002c1c: 3708 adds r7, #8 + 8002c1e: 46bd mov sp, r7 + 8002c20: bd80 pop {r7, pc} + 8002c22: bf00 nop + 8002c24: e000e010 .word 0xe000e010 + +08002c28 : + * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 8002c28: b580 push {r7, lr} + 8002c2a: b082 sub sp, #8 + 8002c2c: af00 add r7, sp, #0 + 8002c2e: 6078 str r0, [r7, #4] + /* Check the parameters */ + assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + + /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ + NVIC_SetPriorityGrouping(PriorityGroup); + 8002c30: 6878 ldr r0, [r7, #4] + 8002c32: f7ff ff29 bl 8002a88 <__NVIC_SetPriorityGrouping> +} + 8002c36: bf00 nop + 8002c38: 3708 adds r7, #8 + 8002c3a: 46bd mov sp, r7 + 8002c3c: bd80 pop {r7, pc} + +08002c3e : + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + 8002c3e: b580 push {r7, lr} + 8002c40: b086 sub sp, #24 + 8002c42: af00 add r7, sp, #0 + 8002c44: 4603 mov r3, r0 + 8002c46: 60b9 str r1, [r7, #8] + 8002c48: 607a str r2, [r7, #4] + 8002c4a: 73fb strb r3, [r7, #15] + + /* Check the parameters */ + assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); + assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); + + prioritygroup = NVIC_GetPriorityGrouping(); + 8002c4c: f7ff ff40 bl 8002ad0 <__NVIC_GetPriorityGrouping> + 8002c50: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 8002c52: 687a ldr r2, [r7, #4] + 8002c54: 68b9 ldr r1, [r7, #8] + 8002c56: 6978 ldr r0, [r7, #20] + 8002c58: f7ff ff90 bl 8002b7c + 8002c5c: 4602 mov r2, r0 + 8002c5e: f997 300f ldrsb.w r3, [r7, #15] + 8002c62: 4611 mov r1, r2 + 8002c64: 4618 mov r0, r3 + 8002c66: f7ff ff5f bl 8002b28 <__NVIC_SetPriority> +} + 8002c6a: bf00 nop + 8002c6c: 3718 adds r7, #24 + 8002c6e: 46bd mov sp, r7 + 8002c70: bd80 pop {r7, pc} + +08002c72 : + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval None + */ +void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) +{ + 8002c72: b580 push {r7, lr} + 8002c74: b082 sub sp, #8 + 8002c76: af00 add r7, sp, #0 + 8002c78: 4603 mov r3, r0 + 8002c7a: 71fb strb r3, [r7, #7] + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Enable interrupt */ + NVIC_EnableIRQ(IRQn); + 8002c7c: f997 3007 ldrsb.w r3, [r7, #7] + 8002c80: 4618 mov r0, r3 + 8002c82: f7ff ff33 bl 8002aec <__NVIC_EnableIRQ> +} + 8002c86: bf00 nop + 8002c88: 3708 adds r7, #8 + 8002c8a: 46bd mov sp, r7 + 8002c8c: bd80 pop {r7, pc} + +08002c8e : + * @param TicksNumb: Specifies the ticks Number of ticks between two interrupts. + * @retval status: - 0 Function succeeded. + * - 1 Function failed. + */ +uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) +{ + 8002c8e: b580 push {r7, lr} + 8002c90: b082 sub sp, #8 + 8002c92: af00 add r7, sp, #0 + 8002c94: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 8002c96: 6878 ldr r0, [r7, #4] + 8002c98: f7ff ffa4 bl 8002be4 + 8002c9c: 4603 mov r3, r0 +} + 8002c9e: 4618 mov r0, r3 + 8002ca0: 3708 adds r7, #8 + 8002ca2: 46bd mov sp, r7 + 8002ca4: bd80 pop {r7, pc} + +08002ca6 : + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) +{ + 8002ca6: b480 push {r7} + 8002ca8: b085 sub sp, #20 + 8002caa: af00 add r7, sp, #0 + 8002cac: 6078 str r0, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 8002cae: 2300 movs r3, #0 + 8002cb0: 73fb strb r3, [r7, #15] + + if(hdma->State != HAL_DMA_STATE_BUSY) + 8002cb2: 687b ldr r3, [r7, #4] + 8002cb4: f893 3025 ldrb.w r3, [r3, #37] @ 0x25 + 8002cb8: b2db uxtb r3, r3 + 8002cba: 2b02 cmp r3, #2 + 8002cbc: d005 beq.n 8002cca + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + 8002cbe: 687b ldr r3, [r7, #4] + 8002cc0: 2204 movs r2, #4 + 8002cc2: 63da str r2, [r3, #60] @ 0x3c + + status = HAL_ERROR; + 8002cc4: 2301 movs r3, #1 + 8002cc6: 73fb strb r3, [r7, #15] + 8002cc8: e037 b.n 8002d3a + } + else + { + /* Disable DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 8002cca: 687b ldr r3, [r7, #4] + 8002ccc: 681b ldr r3, [r3, #0] + 8002cce: 681a ldr r2, [r3, #0] + 8002cd0: 687b ldr r3, [r7, #4] + 8002cd2: 681b ldr r3, [r3, #0] + 8002cd4: f022 020e bic.w r2, r2, #14 + 8002cd8: 601a str r2, [r3, #0] + + /* disable the DMAMUX sync overrun IT*/ + hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + 8002cda: 687b ldr r3, [r7, #4] + 8002cdc: 6c9b ldr r3, [r3, #72] @ 0x48 + 8002cde: 681a ldr r2, [r3, #0] + 8002ce0: 687b ldr r3, [r7, #4] + 8002ce2: 6c9b ldr r3, [r3, #72] @ 0x48 + 8002ce4: f422 7280 bic.w r2, r2, #256 @ 0x100 + 8002ce8: 601a str r2, [r3, #0] + + /* Disable the channel */ + __HAL_DMA_DISABLE(hdma); + 8002cea: 687b ldr r3, [r7, #4] + 8002cec: 681b ldr r3, [r3, #0] + 8002cee: 681a ldr r2, [r3, #0] + 8002cf0: 687b ldr r3, [r7, #4] + 8002cf2: 681b ldr r3, [r3, #0] + 8002cf4: f022 0201 bic.w r2, r2, #1 + 8002cf8: 601a str r2, [r3, #0] + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 8002cfa: 687b ldr r3, [r7, #4] + 8002cfc: 6c5b ldr r3, [r3, #68] @ 0x44 + 8002cfe: f003 021f and.w r2, r3, #31 + 8002d02: 687b ldr r3, [r7, #4] + 8002d04: 6c1b ldr r3, [r3, #64] @ 0x40 + 8002d06: 2101 movs r1, #1 + 8002d08: fa01 f202 lsl.w r2, r1, r2 + 8002d0c: 605a str r2, [r3, #4] + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 8002d0e: 687b ldr r3, [r7, #4] + 8002d10: 6cdb ldr r3, [r3, #76] @ 0x4c + 8002d12: 687a ldr r2, [r7, #4] + 8002d14: 6d12 ldr r2, [r2, #80] @ 0x50 + 8002d16: 605a str r2, [r3, #4] + + if (hdma->DMAmuxRequestGen != 0U) + 8002d18: 687b ldr r3, [r7, #4] + 8002d1a: 6d5b ldr r3, [r3, #84] @ 0x54 + 8002d1c: 2b00 cmp r3, #0 + 8002d1e: d00c beq.n 8002d3a + { + /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/ + /* disable the request gen overrun IT*/ + hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + 8002d20: 687b ldr r3, [r7, #4] + 8002d22: 6d5b ldr r3, [r3, #84] @ 0x54 + 8002d24: 681a ldr r2, [r3, #0] + 8002d26: 687b ldr r3, [r7, #4] + 8002d28: 6d5b ldr r3, [r3, #84] @ 0x54 + 8002d2a: f422 7280 bic.w r2, r2, #256 @ 0x100 + 8002d2e: 601a str r2, [r3, #0] + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 8002d30: 687b ldr r3, [r7, #4] + 8002d32: 6d9b ldr r3, [r3, #88] @ 0x58 + 8002d34: 687a ldr r2, [r7, #4] + 8002d36: 6dd2 ldr r2, [r2, #92] @ 0x5c + 8002d38: 605a str r2, [r3, #4] + } + } + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8002d3a: 687b ldr r3, [r7, #4] + 8002d3c: 2201 movs r2, #1 + 8002d3e: f883 2025 strb.w r2, [r3, #37] @ 0x25 + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + 8002d42: 687b ldr r3, [r7, #4] + 8002d44: 2200 movs r2, #0 + 8002d46: f883 2024 strb.w r2, [r3, #36] @ 0x24 + + return status; + 8002d4a: 7bfb ldrb r3, [r7, #15] +} + 8002d4c: 4618 mov r0, r3 + 8002d4e: 3714 adds r7, #20 + 8002d50: 46bd mov sp, r7 + 8002d52: f85d 7b04 ldr.w r7, [sp], #4 + 8002d56: 4770 bx lr + +08002d58 : + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) +{ + 8002d58: b580 push {r7, lr} + 8002d5a: b084 sub sp, #16 + 8002d5c: af00 add r7, sp, #0 + 8002d5e: 6078 str r0, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 8002d60: 2300 movs r3, #0 + 8002d62: 73fb strb r3, [r7, #15] + + if (HAL_DMA_STATE_BUSY != hdma->State) + 8002d64: 687b ldr r3, [r7, #4] + 8002d66: f893 3025 ldrb.w r3, [r3, #37] @ 0x25 + 8002d6a: b2db uxtb r3, r3 + 8002d6c: 2b02 cmp r3, #2 + 8002d6e: d00d beq.n 8002d8c + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + 8002d70: 687b ldr r3, [r7, #4] + 8002d72: 2204 movs r2, #4 + 8002d74: 63da str r2, [r3, #60] @ 0x3c + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8002d76: 687b ldr r3, [r7, #4] + 8002d78: 2201 movs r2, #1 + 8002d7a: f883 2025 strb.w r2, [r3, #37] @ 0x25 + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + 8002d7e: 687b ldr r3, [r7, #4] + 8002d80: 2200 movs r2, #0 + 8002d82: f883 2024 strb.w r2, [r3, #36] @ 0x24 + + status = HAL_ERROR; + 8002d86: 2301 movs r3, #1 + 8002d88: 73fb strb r3, [r7, #15] + 8002d8a: e047 b.n 8002e1c + } + else + { + /* Disable DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 8002d8c: 687b ldr r3, [r7, #4] + 8002d8e: 681b ldr r3, [r3, #0] + 8002d90: 681a ldr r2, [r3, #0] + 8002d92: 687b ldr r3, [r7, #4] + 8002d94: 681b ldr r3, [r3, #0] + 8002d96: f022 020e bic.w r2, r2, #14 + 8002d9a: 601a str r2, [r3, #0] + + /* Disable the channel */ + __HAL_DMA_DISABLE(hdma); + 8002d9c: 687b ldr r3, [r7, #4] + 8002d9e: 681b ldr r3, [r3, #0] + 8002da0: 681a ldr r2, [r3, #0] + 8002da2: 687b ldr r3, [r7, #4] + 8002da4: 681b ldr r3, [r3, #0] + 8002da6: f022 0201 bic.w r2, r2, #1 + 8002daa: 601a str r2, [r3, #0] + + /* disable the DMAMUX sync overrun IT*/ + hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + 8002dac: 687b ldr r3, [r7, #4] + 8002dae: 6c9b ldr r3, [r3, #72] @ 0x48 + 8002db0: 681a ldr r2, [r3, #0] + 8002db2: 687b ldr r3, [r7, #4] + 8002db4: 6c9b ldr r3, [r3, #72] @ 0x48 + 8002db6: f422 7280 bic.w r2, r2, #256 @ 0x100 + 8002dba: 601a str r2, [r3, #0] + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 8002dbc: 687b ldr r3, [r7, #4] + 8002dbe: 6c5b ldr r3, [r3, #68] @ 0x44 + 8002dc0: f003 021f and.w r2, r3, #31 + 8002dc4: 687b ldr r3, [r7, #4] + 8002dc6: 6c1b ldr r3, [r3, #64] @ 0x40 + 8002dc8: 2101 movs r1, #1 + 8002dca: fa01 f202 lsl.w r2, r1, r2 + 8002dce: 605a str r2, [r3, #4] + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 8002dd0: 687b ldr r3, [r7, #4] + 8002dd2: 6cdb ldr r3, [r3, #76] @ 0x4c + 8002dd4: 687a ldr r2, [r7, #4] + 8002dd6: 6d12 ldr r2, [r2, #80] @ 0x50 + 8002dd8: 605a str r2, [r3, #4] + + if (hdma->DMAmuxRequestGen != 0U) + 8002dda: 687b ldr r3, [r7, #4] + 8002ddc: 6d5b ldr r3, [r3, #84] @ 0x54 + 8002dde: 2b00 cmp r3, #0 + 8002de0: d00c beq.n 8002dfc + { + /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/ + /* disable the request gen overrun IT*/ + hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + 8002de2: 687b ldr r3, [r7, #4] + 8002de4: 6d5b ldr r3, [r3, #84] @ 0x54 + 8002de6: 681a ldr r2, [r3, #0] + 8002de8: 687b ldr r3, [r7, #4] + 8002dea: 6d5b ldr r3, [r3, #84] @ 0x54 + 8002dec: f422 7280 bic.w r2, r2, #256 @ 0x100 + 8002df0: 601a str r2, [r3, #0] + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 8002df2: 687b ldr r3, [r7, #4] + 8002df4: 6d9b ldr r3, [r3, #88] @ 0x58 + 8002df6: 687a ldr r2, [r7, #4] + 8002df8: 6dd2 ldr r2, [r2, #92] @ 0x5c + 8002dfa: 605a str r2, [r3, #4] + } + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8002dfc: 687b ldr r3, [r7, #4] + 8002dfe: 2201 movs r2, #1 + 8002e00: f883 2025 strb.w r2, [r3, #37] @ 0x25 + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + 8002e04: 687b ldr r3, [r7, #4] + 8002e06: 2200 movs r2, #0 + 8002e08: f883 2024 strb.w r2, [r3, #36] @ 0x24 + + /* Call User Abort callback */ + if (hdma->XferAbortCallback != NULL) + 8002e0c: 687b ldr r3, [r7, #4] + 8002e0e: 6b9b ldr r3, [r3, #56] @ 0x38 + 8002e10: 2b00 cmp r3, #0 + 8002e12: d003 beq.n 8002e1c + { + hdma->XferAbortCallback(hdma); + 8002e14: 687b ldr r3, [r7, #4] + 8002e16: 6b9b ldr r3, [r3, #56] @ 0x38 + 8002e18: 6878 ldr r0, [r7, #4] + 8002e1a: 4798 blx r3 + } + } + return status; + 8002e1c: 7bfb ldrb r3, [r7, #15] +} + 8002e1e: 4618 mov r0, r3 + 8002e20: 3710 adds r7, #16 + 8002e22: 46bd mov sp, r7 + 8002e24: bd80 pop {r7, pc} + ... + +08002e28 : + * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains + * the configuration information for the specified GPIO peripheral. + * @retval None + */ +void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) +{ + 8002e28: b480 push {r7} + 8002e2a: b087 sub sp, #28 + 8002e2c: af00 add r7, sp, #0 + 8002e2e: 6078 str r0, [r7, #4] + 8002e30: 6039 str r1, [r7, #0] + uint32_t position = 0x00U; + 8002e32: 2300 movs r3, #0 + 8002e34: 617b str r3, [r7, #20] + assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); + assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); + + /* Configure the port pins */ + while (((GPIO_Init->Pin) >> position) != 0U) + 8002e36: e15a b.n 80030ee + { + /* Get current io position */ + iocurrent = (GPIO_Init->Pin) & (1UL << position); + 8002e38: 683b ldr r3, [r7, #0] + 8002e3a: 681a ldr r2, [r3, #0] + 8002e3c: 2101 movs r1, #1 + 8002e3e: 697b ldr r3, [r7, #20] + 8002e40: fa01 f303 lsl.w r3, r1, r3 + 8002e44: 4013 ands r3, r2 + 8002e46: 60fb str r3, [r7, #12] + + if (iocurrent != 0x00u) + 8002e48: 68fb ldr r3, [r7, #12] + 8002e4a: 2b00 cmp r3, #0 + 8002e4c: f000 814c beq.w 80030e8 + { + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Output or Alternate function mode selection */ + if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 8002e50: 683b ldr r3, [r7, #0] + 8002e52: 685b ldr r3, [r3, #4] + 8002e54: f003 0303 and.w r3, r3, #3 + 8002e58: 2b01 cmp r3, #1 + 8002e5a: d005 beq.n 8002e68 + ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 8002e5c: 683b ldr r3, [r7, #0] + 8002e5e: 685b ldr r3, [r3, #4] + 8002e60: f003 0303 and.w r3, r3, #3 + if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 8002e64: 2b02 cmp r3, #2 + 8002e66: d130 bne.n 8002eca + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + 8002e68: 687b ldr r3, [r7, #4] + 8002e6a: 689b ldr r3, [r3, #8] + 8002e6c: 613b str r3, [r7, #16] + temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U)); + 8002e6e: 697b ldr r3, [r7, #20] + 8002e70: 005b lsls r3, r3, #1 + 8002e72: 2203 movs r2, #3 + 8002e74: fa02 f303 lsl.w r3, r2, r3 + 8002e78: 43db mvns r3, r3 + 8002e7a: 693a ldr r2, [r7, #16] + 8002e7c: 4013 ands r3, r2 + 8002e7e: 613b str r3, [r7, #16] + temp |= (GPIO_Init->Speed << (position * 2U)); + 8002e80: 683b ldr r3, [r7, #0] + 8002e82: 68da ldr r2, [r3, #12] + 8002e84: 697b ldr r3, [r7, #20] + 8002e86: 005b lsls r3, r3, #1 + 8002e88: fa02 f303 lsl.w r3, r2, r3 + 8002e8c: 693a ldr r2, [r7, #16] + 8002e8e: 4313 orrs r3, r2 + 8002e90: 613b str r3, [r7, #16] + GPIOx->OSPEEDR = temp; + 8002e92: 687b ldr r3, [r7, #4] + 8002e94: 693a ldr r2, [r7, #16] + 8002e96: 609a str r2, [r3, #8] + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + 8002e98: 687b ldr r3, [r7, #4] + 8002e9a: 685b ldr r3, [r3, #4] + 8002e9c: 613b str r3, [r7, #16] + temp &= ~(GPIO_OTYPER_OT0 << position) ; + 8002e9e: 2201 movs r2, #1 + 8002ea0: 697b ldr r3, [r7, #20] + 8002ea2: fa02 f303 lsl.w r3, r2, r3 + 8002ea6: 43db mvns r3, r3 + 8002ea8: 693a ldr r2, [r7, #16] + 8002eaa: 4013 ands r3, r2 + 8002eac: 613b str r3, [r7, #16] + temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + 8002eae: 683b ldr r3, [r7, #0] + 8002eb0: 685b ldr r3, [r3, #4] + 8002eb2: 091b lsrs r3, r3, #4 + 8002eb4: f003 0201 and.w r2, r3, #1 + 8002eb8: 697b ldr r3, [r7, #20] + 8002eba: fa02 f303 lsl.w r3, r2, r3 + 8002ebe: 693a ldr r2, [r7, #16] + 8002ec0: 4313 orrs r3, r2 + 8002ec2: 613b str r3, [r7, #16] + GPIOx->OTYPER = temp; + 8002ec4: 687b ldr r3, [r7, #4] + 8002ec6: 693a ldr r2, [r7, #16] + 8002ec8: 605a str r2, [r3, #4] + } + + if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + 8002eca: 683b ldr r3, [r7, #0] + 8002ecc: 685b ldr r3, [r3, #4] + 8002ece: f003 0303 and.w r3, r3, #3 + 8002ed2: 2b03 cmp r3, #3 + 8002ed4: d017 beq.n 8002f06 + { + /* Check the Pull parameter */ + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + + /* Activate the Pull-up or Pull down resistor for the current IO */ + temp = GPIOx->PUPDR; + 8002ed6: 687b ldr r3, [r7, #4] + 8002ed8: 68db ldr r3, [r3, #12] + 8002eda: 613b str r3, [r7, #16] + temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); + 8002edc: 697b ldr r3, [r7, #20] + 8002ede: 005b lsls r3, r3, #1 + 8002ee0: 2203 movs r2, #3 + 8002ee2: fa02 f303 lsl.w r3, r2, r3 + 8002ee6: 43db mvns r3, r3 + 8002ee8: 693a ldr r2, [r7, #16] + 8002eea: 4013 ands r3, r2 + 8002eec: 613b str r3, [r7, #16] + temp |= ((GPIO_Init->Pull) << (position * 2U)); + 8002eee: 683b ldr r3, [r7, #0] + 8002ef0: 689a ldr r2, [r3, #8] + 8002ef2: 697b ldr r3, [r7, #20] + 8002ef4: 005b lsls r3, r3, #1 + 8002ef6: fa02 f303 lsl.w r3, r2, r3 + 8002efa: 693a ldr r2, [r7, #16] + 8002efc: 4313 orrs r3, r2 + 8002efe: 613b str r3, [r7, #16] + GPIOx->PUPDR = temp; + 8002f00: 687b ldr r3, [r7, #4] + 8002f02: 693a ldr r2, [r7, #16] + 8002f04: 60da str r2, [r3, #12] + } + + /* In case of Alternate function mode selection */ + if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + 8002f06: 683b ldr r3, [r7, #0] + 8002f08: 685b ldr r3, [r3, #4] + 8002f0a: f003 0303 and.w r3, r3, #3 + 8002f0e: 2b02 cmp r3, #2 + 8002f10: d123 bne.n 8002f5a + /* Check the Alternate function parameters */ + assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + + /* Configure Alternate function mapped with the current IO */ + temp = GPIOx->AFR[position >> 3U]; + 8002f12: 697b ldr r3, [r7, #20] + 8002f14: 08da lsrs r2, r3, #3 + 8002f16: 687b ldr r3, [r7, #4] + 8002f18: 3208 adds r2, #8 + 8002f1a: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8002f1e: 613b str r3, [r7, #16] + temp &= ~(0xFU << ((position & 0x07U) * 4U)); + 8002f20: 697b ldr r3, [r7, #20] + 8002f22: f003 0307 and.w r3, r3, #7 + 8002f26: 009b lsls r3, r3, #2 + 8002f28: 220f movs r2, #15 + 8002f2a: fa02 f303 lsl.w r3, r2, r3 + 8002f2e: 43db mvns r3, r3 + 8002f30: 693a ldr r2, [r7, #16] + 8002f32: 4013 ands r3, r2 + 8002f34: 613b str r3, [r7, #16] + temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U)); + 8002f36: 683b ldr r3, [r7, #0] + 8002f38: 691a ldr r2, [r3, #16] + 8002f3a: 697b ldr r3, [r7, #20] + 8002f3c: f003 0307 and.w r3, r3, #7 + 8002f40: 009b lsls r3, r3, #2 + 8002f42: fa02 f303 lsl.w r3, r2, r3 + 8002f46: 693a ldr r2, [r7, #16] + 8002f48: 4313 orrs r3, r2 + 8002f4a: 613b str r3, [r7, #16] + GPIOx->AFR[position >> 3U] = temp; + 8002f4c: 697b ldr r3, [r7, #20] + 8002f4e: 08da lsrs r2, r3, #3 + 8002f50: 687b ldr r3, [r7, #4] + 8002f52: 3208 adds r2, #8 + 8002f54: 6939 ldr r1, [r7, #16] + 8002f56: f843 1022 str.w r1, [r3, r2, lsl #2] + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + 8002f5a: 687b ldr r3, [r7, #4] + 8002f5c: 681b ldr r3, [r3, #0] + 8002f5e: 613b str r3, [r7, #16] + temp &= ~(GPIO_MODER_MODE0 << (position * 2U)); + 8002f60: 697b ldr r3, [r7, #20] + 8002f62: 005b lsls r3, r3, #1 + 8002f64: 2203 movs r2, #3 + 8002f66: fa02 f303 lsl.w r3, r2, r3 + 8002f6a: 43db mvns r3, r3 + 8002f6c: 693a ldr r2, [r7, #16] + 8002f6e: 4013 ands r3, r2 + 8002f70: 613b str r3, [r7, #16] + temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + 8002f72: 683b ldr r3, [r7, #0] + 8002f74: 685b ldr r3, [r3, #4] + 8002f76: f003 0203 and.w r2, r3, #3 + 8002f7a: 697b ldr r3, [r7, #20] + 8002f7c: 005b lsls r3, r3, #1 + 8002f7e: fa02 f303 lsl.w r3, r2, r3 + 8002f82: 693a ldr r2, [r7, #16] + 8002f84: 4313 orrs r3, r2 + 8002f86: 613b str r3, [r7, #16] + GPIOx->MODER = temp; + 8002f88: 687b ldr r3, [r7, #4] + 8002f8a: 693a ldr r2, [r7, #16] + 8002f8c: 601a str r2, [r3, #0] + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u) + 8002f8e: 683b ldr r3, [r7, #0] + 8002f90: 685b ldr r3, [r3, #4] + 8002f92: f403 3340 and.w r3, r3, #196608 @ 0x30000 + 8002f96: 2b00 cmp r3, #0 + 8002f98: f000 80a6 beq.w 80030e8 + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8002f9c: 4b5b ldr r3, [pc, #364] @ (800310c ) + 8002f9e: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002fa0: 4a5a ldr r2, [pc, #360] @ (800310c ) + 8002fa2: f043 0301 orr.w r3, r3, #1 + 8002fa6: 6613 str r3, [r2, #96] @ 0x60 + 8002fa8: 4b58 ldr r3, [pc, #352] @ (800310c ) + 8002faa: 6e1b ldr r3, [r3, #96] @ 0x60 + 8002fac: f003 0301 and.w r3, r3, #1 + 8002fb0: 60bb str r3, [r7, #8] + 8002fb2: 68bb ldr r3, [r7, #8] + + temp = SYSCFG->EXTICR[position >> 2U]; + 8002fb4: 4a56 ldr r2, [pc, #344] @ (8003110 ) + 8002fb6: 697b ldr r3, [r7, #20] + 8002fb8: 089b lsrs r3, r3, #2 + 8002fba: 3302 adds r3, #2 + 8002fbc: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8002fc0: 613b str r3, [r7, #16] + temp &= ~(0x0FUL << (4U * (position & 0x03U))); + 8002fc2: 697b ldr r3, [r7, #20] + 8002fc4: f003 0303 and.w r3, r3, #3 + 8002fc8: 009b lsls r3, r3, #2 + 8002fca: 220f movs r2, #15 + 8002fcc: fa02 f303 lsl.w r3, r2, r3 + 8002fd0: 43db mvns r3, r3 + 8002fd2: 693a ldr r2, [r7, #16] + 8002fd4: 4013 ands r3, r2 + 8002fd6: 613b str r3, [r7, #16] + temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 8002fd8: 687b ldr r3, [r7, #4] + 8002fda: f1b3 4f90 cmp.w r3, #1207959552 @ 0x48000000 + 8002fde: d01f beq.n 8003020 + 8002fe0: 687b ldr r3, [r7, #4] + 8002fe2: 4a4c ldr r2, [pc, #304] @ (8003114 ) + 8002fe4: 4293 cmp r3, r2 + 8002fe6: d019 beq.n 800301c + 8002fe8: 687b ldr r3, [r7, #4] + 8002fea: 4a4b ldr r2, [pc, #300] @ (8003118 ) + 8002fec: 4293 cmp r3, r2 + 8002fee: d013 beq.n 8003018 + 8002ff0: 687b ldr r3, [r7, #4] + 8002ff2: 4a4a ldr r2, [pc, #296] @ (800311c ) + 8002ff4: 4293 cmp r3, r2 + 8002ff6: d00d beq.n 8003014 + 8002ff8: 687b ldr r3, [r7, #4] + 8002ffa: 4a49 ldr r2, [pc, #292] @ (8003120 ) + 8002ffc: 4293 cmp r3, r2 + 8002ffe: d007 beq.n 8003010 + 8003000: 687b ldr r3, [r7, #4] + 8003002: 4a48 ldr r2, [pc, #288] @ (8003124 ) + 8003004: 4293 cmp r3, r2 + 8003006: d101 bne.n 800300c + 8003008: 2305 movs r3, #5 + 800300a: e00a b.n 8003022 + 800300c: 2306 movs r3, #6 + 800300e: e008 b.n 8003022 + 8003010: 2304 movs r3, #4 + 8003012: e006 b.n 8003022 + 8003014: 2303 movs r3, #3 + 8003016: e004 b.n 8003022 + 8003018: 2302 movs r3, #2 + 800301a: e002 b.n 8003022 + 800301c: 2301 movs r3, #1 + 800301e: e000 b.n 8003022 + 8003020: 2300 movs r3, #0 + 8003022: 697a ldr r2, [r7, #20] + 8003024: f002 0203 and.w r2, r2, #3 + 8003028: 0092 lsls r2, r2, #2 + 800302a: 4093 lsls r3, r2 + 800302c: 693a ldr r2, [r7, #16] + 800302e: 4313 orrs r3, r2 + 8003030: 613b str r3, [r7, #16] + SYSCFG->EXTICR[position >> 2U] = temp; + 8003032: 4937 ldr r1, [pc, #220] @ (8003110 ) + 8003034: 697b ldr r3, [r7, #20] + 8003036: 089b lsrs r3, r3, #2 + 8003038: 3302 adds r3, #2 + 800303a: 693a ldr r2, [r7, #16] + 800303c: f841 2023 str.w r2, [r1, r3, lsl #2] + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR1; + 8003040: 4b39 ldr r3, [pc, #228] @ (8003128 ) + 8003042: 689b ldr r3, [r3, #8] + 8003044: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 8003046: 68fb ldr r3, [r7, #12] + 8003048: 43db mvns r3, r3 + 800304a: 693a ldr r2, [r7, #16] + 800304c: 4013 ands r3, r2 + 800304e: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) + 8003050: 683b ldr r3, [r7, #0] + 8003052: 685b ldr r3, [r3, #4] + 8003054: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 8003058: 2b00 cmp r3, #0 + 800305a: d003 beq.n 8003064 + { + temp |= iocurrent; + 800305c: 693a ldr r2, [r7, #16] + 800305e: 68fb ldr r3, [r7, #12] + 8003060: 4313 orrs r3, r2 + 8003062: 613b str r3, [r7, #16] + } + EXTI->RTSR1 = temp; + 8003064: 4a30 ldr r2, [pc, #192] @ (8003128 ) + 8003066: 693b ldr r3, [r7, #16] + 8003068: 6093 str r3, [r2, #8] + + temp = EXTI->FTSR1; + 800306a: 4b2f ldr r3, [pc, #188] @ (8003128 ) + 800306c: 68db ldr r3, [r3, #12] + 800306e: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 8003070: 68fb ldr r3, [r7, #12] + 8003072: 43db mvns r3, r3 + 8003074: 693a ldr r2, [r7, #16] + 8003076: 4013 ands r3, r2 + 8003078: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) + 800307a: 683b ldr r3, [r7, #0] + 800307c: 685b ldr r3, [r3, #4] + 800307e: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 8003082: 2b00 cmp r3, #0 + 8003084: d003 beq.n 800308e + { + temp |= iocurrent; + 8003086: 693a ldr r2, [r7, #16] + 8003088: 68fb ldr r3, [r7, #12] + 800308a: 4313 orrs r3, r2 + 800308c: 613b str r3, [r7, #16] + } + EXTI->FTSR1 = temp; + 800308e: 4a26 ldr r2, [pc, #152] @ (8003128 ) + 8003090: 693b ldr r3, [r7, #16] + 8003092: 60d3 str r3, [r2, #12] + + temp = EXTI->EMR1; + 8003094: 4b24 ldr r3, [pc, #144] @ (8003128 ) + 8003096: 685b ldr r3, [r3, #4] + 8003098: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 800309a: 68fb ldr r3, [r7, #12] + 800309c: 43db mvns r3, r3 + 800309e: 693a ldr r2, [r7, #16] + 80030a0: 4013 ands r3, r2 + 80030a2: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) + 80030a4: 683b ldr r3, [r7, #0] + 80030a6: 685b ldr r3, [r3, #4] + 80030a8: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80030ac: 2b00 cmp r3, #0 + 80030ae: d003 beq.n 80030b8 + { + temp |= iocurrent; + 80030b0: 693a ldr r2, [r7, #16] + 80030b2: 68fb ldr r3, [r7, #12] + 80030b4: 4313 orrs r3, r2 + 80030b6: 613b str r3, [r7, #16] + } + EXTI->EMR1 = temp; + 80030b8: 4a1b ldr r2, [pc, #108] @ (8003128 ) + 80030ba: 693b ldr r3, [r7, #16] + 80030bc: 6053 str r3, [r2, #4] + + /* Clear EXTI line configuration */ + temp = EXTI->IMR1; + 80030be: 4b1a ldr r3, [pc, #104] @ (8003128 ) + 80030c0: 681b ldr r3, [r3, #0] + 80030c2: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 80030c4: 68fb ldr r3, [r7, #12] + 80030c6: 43db mvns r3, r3 + 80030c8: 693a ldr r2, [r7, #16] + 80030ca: 4013 ands r3, r2 + 80030cc: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) + 80030ce: 683b ldr r3, [r7, #0] + 80030d0: 685b ldr r3, [r3, #4] + 80030d2: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 80030d6: 2b00 cmp r3, #0 + 80030d8: d003 beq.n 80030e2 + { + temp |= iocurrent; + 80030da: 693a ldr r2, [r7, #16] + 80030dc: 68fb ldr r3, [r7, #12] + 80030de: 4313 orrs r3, r2 + 80030e0: 613b str r3, [r7, #16] + } + EXTI->IMR1 = temp; + 80030e2: 4a11 ldr r2, [pc, #68] @ (8003128 ) + 80030e4: 693b ldr r3, [r7, #16] + 80030e6: 6013 str r3, [r2, #0] + } + } + + position++; + 80030e8: 697b ldr r3, [r7, #20] + 80030ea: 3301 adds r3, #1 + 80030ec: 617b str r3, [r7, #20] + while (((GPIO_Init->Pin) >> position) != 0U) + 80030ee: 683b ldr r3, [r7, #0] + 80030f0: 681a ldr r2, [r3, #0] + 80030f2: 697b ldr r3, [r7, #20] + 80030f4: fa22 f303 lsr.w r3, r2, r3 + 80030f8: 2b00 cmp r3, #0 + 80030fa: f47f ae9d bne.w 8002e38 + } +} + 80030fe: bf00 nop + 8003100: bf00 nop + 8003102: 371c adds r7, #28 + 8003104: 46bd mov sp, r7 + 8003106: f85d 7b04 ldr.w r7, [sp], #4 + 800310a: 4770 bx lr + 800310c: 40021000 .word 0x40021000 + 8003110: 40010000 .word 0x40010000 + 8003114: 48000400 .word 0x48000400 + 8003118: 48000800 .word 0x48000800 + 800311c: 48000c00 .word 0x48000c00 + 8003120: 48001000 .word 0x48001000 + 8003124: 48001400 .word 0x48001400 + 8003128: 40010400 .word 0x40010400 + +0800312c : + * @arg GPIO_PIN_RESET: to clear the port pin + * @arg GPIO_PIN_SET: to set the port pin + * @retval None + */ +void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) +{ + 800312c: b480 push {r7} + 800312e: b083 sub sp, #12 + 8003130: af00 add r7, sp, #0 + 8003132: 6078 str r0, [r7, #4] + 8003134: 460b mov r3, r1 + 8003136: 807b strh r3, [r7, #2] + 8003138: 4613 mov r3, r2 + 800313a: 707b strb r3, [r7, #1] + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + assert_param(IS_GPIO_PIN_ACTION(PinState)); + + if (PinState != GPIO_PIN_RESET) + 800313c: 787b ldrb r3, [r7, #1] + 800313e: 2b00 cmp r3, #0 + 8003140: d003 beq.n 800314a + { + GPIOx->BSRR = (uint32_t)GPIO_Pin; + 8003142: 887a ldrh r2, [r7, #2] + 8003144: 687b ldr r3, [r7, #4] + 8003146: 619a str r2, [r3, #24] + } + else + { + GPIOx->BRR = (uint32_t)GPIO_Pin; + } +} + 8003148: e002 b.n 8003150 + GPIOx->BRR = (uint32_t)GPIO_Pin; + 800314a: 887a ldrh r2, [r7, #2] + 800314c: 687b ldr r3, [r7, #4] + 800314e: 629a str r2, [r3, #40] @ 0x28 +} + 8003150: bf00 nop + 8003152: 370c adds r7, #12 + 8003154: 46bd mov sp, r7 + 8003156: f85d 7b04 ldr.w r7, [sp], #4 + 800315a: 4770 bx lr + +0800315c : + * cleared before returning the status. If the flag is not cleared within + * 50 microseconds, HAL_TIMEOUT status is reported. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling) +{ + 800315c: b480 push {r7} + 800315e: b085 sub sp, #20 + 8003160: af00 add r7, sp, #0 + 8003162: 6078 str r0, [r7, #4] + uint32_t wait_loop_index; + + assert_param(IS_PWR_VOLTAGE_SCALING_RANGE(VoltageScaling)); + + if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) + 8003164: 687b ldr r3, [r7, #4] + 8003166: 2b00 cmp r3, #0 + 8003168: d141 bne.n 80031ee + { + /* If current range is range 2 */ + if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + 800316a: 4b4b ldr r3, [pc, #300] @ (8003298 ) + 800316c: 681b ldr r3, [r3, #0] + 800316e: f403 63c0 and.w r3, r3, #1536 @ 0x600 + 8003172: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8003176: d131 bne.n 80031dc + { + /* Make sure Range 1 Boost is enabled */ + CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); + 8003178: 4b47 ldr r3, [pc, #284] @ (8003298 ) + 800317a: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 800317e: 4a46 ldr r2, [pc, #280] @ (8003298 ) + 8003180: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8003184: f8c2 3080 str.w r3, [r2, #128] @ 0x80 + + /* Set Range 1 */ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); + 8003188: 4b43 ldr r3, [pc, #268] @ (8003298 ) + 800318a: 681b ldr r3, [r3, #0] + 800318c: f423 63c0 bic.w r3, r3, #1536 @ 0x600 + 8003190: 4a41 ldr r2, [pc, #260] @ (8003298 ) + 8003192: f443 7300 orr.w r3, r3, #512 @ 0x200 + 8003196: 6013 str r3, [r2, #0] + + /* Wait until VOSF is cleared */ + wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; + 8003198: 4b40 ldr r3, [pc, #256] @ (800329c ) + 800319a: 681b ldr r3, [r3, #0] + 800319c: 2232 movs r2, #50 @ 0x32 + 800319e: fb02 f303 mul.w r3, r2, r3 + 80031a2: 4a3f ldr r2, [pc, #252] @ (80032a0 ) + 80031a4: fba2 2303 umull r2, r3, r2, r3 + 80031a8: 0c9b lsrs r3, r3, #18 + 80031aa: 3301 adds r3, #1 + 80031ac: 60fb str r3, [r7, #12] + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 80031ae: e002 b.n 80031b6 + { + wait_loop_index--; + 80031b0: 68fb ldr r3, [r7, #12] + 80031b2: 3b01 subs r3, #1 + 80031b4: 60fb str r3, [r7, #12] + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 80031b6: 4b38 ldr r3, [pc, #224] @ (8003298 ) + 80031b8: 695b ldr r3, [r3, #20] + 80031ba: f403 6380 and.w r3, r3, #1024 @ 0x400 + 80031be: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 80031c2: d102 bne.n 80031ca + 80031c4: 68fb ldr r3, [r7, #12] + 80031c6: 2b00 cmp r3, #0 + 80031c8: d1f2 bne.n 80031b0 + } + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) + 80031ca: 4b33 ldr r3, [pc, #204] @ (8003298 ) + 80031cc: 695b ldr r3, [r3, #20] + 80031ce: f403 6380 and.w r3, r3, #1024 @ 0x400 + 80031d2: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 80031d6: d158 bne.n 800328a + { + return HAL_TIMEOUT; + 80031d8: 2303 movs r3, #3 + 80031da: e057 b.n 800328c + } + /* If current range is range 1 normal or boost mode */ + else + { + /* Enable Range 1 Boost (no issue if bit already reset) */ + CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); + 80031dc: 4b2e ldr r3, [pc, #184] @ (8003298 ) + 80031de: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 80031e2: 4a2d ldr r2, [pc, #180] @ (8003298 ) + 80031e4: f423 7380 bic.w r3, r3, #256 @ 0x100 + 80031e8: f8c2 3080 str.w r3, [r2, #128] @ 0x80 + 80031ec: e04d b.n 800328a + } + } + else if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1) + 80031ee: 687b ldr r3, [r7, #4] + 80031f0: f5b3 7f00 cmp.w r3, #512 @ 0x200 + 80031f4: d141 bne.n 800327a + { + /* If current range is range 2 */ + if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + 80031f6: 4b28 ldr r3, [pc, #160] @ (8003298 ) + 80031f8: 681b ldr r3, [r3, #0] + 80031fa: f403 63c0 and.w r3, r3, #1536 @ 0x600 + 80031fe: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8003202: d131 bne.n 8003268 + { + /* Make sure Range 1 Boost is disabled */ + SET_BIT(PWR->CR5, PWR_CR5_R1MODE); + 8003204: 4b24 ldr r3, [pc, #144] @ (8003298 ) + 8003206: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 800320a: 4a23 ldr r2, [pc, #140] @ (8003298 ) + 800320c: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8003210: f8c2 3080 str.w r3, [r2, #128] @ 0x80 + + /* Set Range 1 */ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); + 8003214: 4b20 ldr r3, [pc, #128] @ (8003298 ) + 8003216: 681b ldr r3, [r3, #0] + 8003218: f423 63c0 bic.w r3, r3, #1536 @ 0x600 + 800321c: 4a1e ldr r2, [pc, #120] @ (8003298 ) + 800321e: f443 7300 orr.w r3, r3, #512 @ 0x200 + 8003222: 6013 str r3, [r2, #0] + + /* Wait until VOSF is cleared */ + wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; + 8003224: 4b1d ldr r3, [pc, #116] @ (800329c ) + 8003226: 681b ldr r3, [r3, #0] + 8003228: 2232 movs r2, #50 @ 0x32 + 800322a: fb02 f303 mul.w r3, r2, r3 + 800322e: 4a1c ldr r2, [pc, #112] @ (80032a0 ) + 8003230: fba2 2303 umull r2, r3, r2, r3 + 8003234: 0c9b lsrs r3, r3, #18 + 8003236: 3301 adds r3, #1 + 8003238: 60fb str r3, [r7, #12] + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 800323a: e002 b.n 8003242 + { + wait_loop_index--; + 800323c: 68fb ldr r3, [r7, #12] + 800323e: 3b01 subs r3, #1 + 8003240: 60fb str r3, [r7, #12] + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 8003242: 4b15 ldr r3, [pc, #84] @ (8003298 ) + 8003244: 695b ldr r3, [r3, #20] + 8003246: f403 6380 and.w r3, r3, #1024 @ 0x400 + 800324a: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 800324e: d102 bne.n 8003256 + 8003250: 68fb ldr r3, [r7, #12] + 8003252: 2b00 cmp r3, #0 + 8003254: d1f2 bne.n 800323c + } + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) + 8003256: 4b10 ldr r3, [pc, #64] @ (8003298 ) + 8003258: 695b ldr r3, [r3, #20] + 800325a: f403 6380 and.w r3, r3, #1024 @ 0x400 + 800325e: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8003262: d112 bne.n 800328a + { + return HAL_TIMEOUT; + 8003264: 2303 movs r3, #3 + 8003266: e011 b.n 800328c + } + /* If current range is range 1 normal or boost mode */ + else + { + /* Disable Range 1 Boost (no issue if bit already set) */ + SET_BIT(PWR->CR5, PWR_CR5_R1MODE); + 8003268: 4b0b ldr r3, [pc, #44] @ (8003298 ) + 800326a: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 800326e: 4a0a ldr r2, [pc, #40] @ (8003298 ) + 8003270: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8003274: f8c2 3080 str.w r3, [r2, #128] @ 0x80 + 8003278: e007 b.n 800328a + } + } + else + { + /* Set Range 2 */ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE2); + 800327a: 4b07 ldr r3, [pc, #28] @ (8003298 ) + 800327c: 681b ldr r3, [r3, #0] + 800327e: f423 63c0 bic.w r3, r3, #1536 @ 0x600 + 8003282: 4a05 ldr r2, [pc, #20] @ (8003298 ) + 8003284: f443 6380 orr.w r3, r3, #1024 @ 0x400 + 8003288: 6013 str r3, [r2, #0] + /* No need to wait for VOSF to be cleared for this transition */ + /* PWR_CR5_R1MODE bit setting has no effect in Range 2 */ + } + + return HAL_OK; + 800328a: 2300 movs r3, #0 +} + 800328c: 4618 mov r0, r3 + 800328e: 3714 adds r7, #20 + 8003290: 46bd mov sp, r7 + 8003292: f85d 7b04 ldr.w r7, [sp], #4 + 8003296: 4770 bx lr + 8003298: 40007000 .word 0x40007000 + 800329c: 20000000 .word 0x20000000 + 80032a0: 431bde83 .word 0x431bde83 + +080032a4 : + * or to hand over control to the UCPD (which should therefore be + * initialized before doing the disable). + * @retval None + */ +void HAL_PWREx_DisableUCPDDeadBattery(void) +{ + 80032a4: b480 push {r7} + 80032a6: af00 add r7, sp, #0 + /* Write 1 to disable the USB Type-C dead battery pull-down behavior */ + SET_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); + 80032a8: 4b05 ldr r3, [pc, #20] @ (80032c0 ) + 80032aa: 689b ldr r3, [r3, #8] + 80032ac: 4a04 ldr r2, [pc, #16] @ (80032c0 ) + 80032ae: f443 4380 orr.w r3, r3, #16384 @ 0x4000 + 80032b2: 6093 str r3, [r2, #8] +} + 80032b4: bf00 nop + 80032b6: 46bd mov sp, r7 + 80032b8: f85d 7b04 ldr.w r7, [sp], #4 + 80032bc: 4770 bx lr + 80032be: bf00 nop + 80032c0: 40007000 .word 0x40007000 + +080032c4 : + * supported by this macro. User should request a transition to HSE Off + * first and then HSE On or HSE Bypass. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) +{ + 80032c4: b580 push {r7, lr} + 80032c6: b088 sub sp, #32 + 80032c8: af00 add r7, sp, #0 + 80032ca: 6078 str r0, [r7, #4] + uint32_t tickstart; + uint32_t temp_sysclksrc; + uint32_t temp_pllckcfg; + + /* Check Null pointer */ + if (RCC_OscInitStruct == NULL) + 80032cc: 687b ldr r3, [r7, #4] + 80032ce: 2b00 cmp r3, #0 + 80032d0: d101 bne.n 80032d6 + { + return HAL_ERROR; + 80032d2: 2301 movs r3, #1 + 80032d4: e2fe b.n 80038d4 + + /* Check the parameters */ + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + /*------------------------------- HSE Configuration ------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 80032d6: 687b ldr r3, [r7, #4] + 80032d8: 681b ldr r3, [r3, #0] + 80032da: f003 0301 and.w r3, r3, #1 + 80032de: 2b00 cmp r3, #0 + 80032e0: d075 beq.n 80033ce + { + /* Check the parameters */ + assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); + + temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE(); + 80032e2: 4b97 ldr r3, [pc, #604] @ (8003540 ) + 80032e4: 689b ldr r3, [r3, #8] + 80032e6: f003 030c and.w r3, r3, #12 + 80032ea: 61bb str r3, [r7, #24] + temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 80032ec: 4b94 ldr r3, [pc, #592] @ (8003540 ) + 80032ee: 68db ldr r3, [r3, #12] + 80032f0: f003 0303 and.w r3, r3, #3 + 80032f4: 617b str r3, [r7, #20] + + /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ + if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSE)) || (temp_sysclksrc == RCC_CFGR_SWS_HSE)) + 80032f6: 69bb ldr r3, [r7, #24] + 80032f8: 2b0c cmp r3, #12 + 80032fa: d102 bne.n 8003302 + 80032fc: 697b ldr r3, [r7, #20] + 80032fe: 2b03 cmp r3, #3 + 8003300: d002 beq.n 8003308 + 8003302: 69bb ldr r3, [r7, #24] + 8003304: 2b08 cmp r3, #8 + 8003306: d10b bne.n 8003320 + { + if ((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 8003308: 4b8d ldr r3, [pc, #564] @ (8003540 ) + 800330a: 681b ldr r3, [r3, #0] + 800330c: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8003310: 2b00 cmp r3, #0 + 8003312: d05b beq.n 80033cc + 8003314: 687b ldr r3, [r7, #4] + 8003316: 685b ldr r3, [r3, #4] + 8003318: 2b00 cmp r3, #0 + 800331a: d157 bne.n 80033cc + { + return HAL_ERROR; + 800331c: 2301 movs r3, #1 + 800331e: e2d9 b.n 80038d4 + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 8003320: 687b ldr r3, [r7, #4] + 8003322: 685b ldr r3, [r3, #4] + 8003324: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 8003328: d106 bne.n 8003338 + 800332a: 4b85 ldr r3, [pc, #532] @ (8003540 ) + 800332c: 681b ldr r3, [r3, #0] + 800332e: 4a84 ldr r2, [pc, #528] @ (8003540 ) + 8003330: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8003334: 6013 str r3, [r2, #0] + 8003336: e01d b.n 8003374 + 8003338: 687b ldr r3, [r7, #4] + 800333a: 685b ldr r3, [r3, #4] + 800333c: f5b3 2fa0 cmp.w r3, #327680 @ 0x50000 + 8003340: d10c bne.n 800335c + 8003342: 4b7f ldr r3, [pc, #508] @ (8003540 ) + 8003344: 681b ldr r3, [r3, #0] + 8003346: 4a7e ldr r2, [pc, #504] @ (8003540 ) + 8003348: f443 2380 orr.w r3, r3, #262144 @ 0x40000 + 800334c: 6013 str r3, [r2, #0] + 800334e: 4b7c ldr r3, [pc, #496] @ (8003540 ) + 8003350: 681b ldr r3, [r3, #0] + 8003352: 4a7b ldr r2, [pc, #492] @ (8003540 ) + 8003354: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8003358: 6013 str r3, [r2, #0] + 800335a: e00b b.n 8003374 + 800335c: 4b78 ldr r3, [pc, #480] @ (8003540 ) + 800335e: 681b ldr r3, [r3, #0] + 8003360: 4a77 ldr r2, [pc, #476] @ (8003540 ) + 8003362: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8003366: 6013 str r3, [r2, #0] + 8003368: 4b75 ldr r3, [pc, #468] @ (8003540 ) + 800336a: 681b ldr r3, [r3, #0] + 800336c: 4a74 ldr r2, [pc, #464] @ (8003540 ) + 800336e: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 8003372: 6013 str r3, [r2, #0] + + /* Check the HSE State */ + if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 8003374: 687b ldr r3, [r7, #4] + 8003376: 685b ldr r3, [r3, #4] + 8003378: 2b00 cmp r3, #0 + 800337a: d013 beq.n 80033a4 + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800337c: f7fd ff48 bl 8001210 + 8003380: 6138 str r0, [r7, #16] + + /* Wait till HSE is ready */ + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + 8003382: e008 b.n 8003396 + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 8003384: f7fd ff44 bl 8001210 + 8003388: 4602 mov r2, r0 + 800338a: 693b ldr r3, [r7, #16] + 800338c: 1ad3 subs r3, r2, r3 + 800338e: 2b64 cmp r3, #100 @ 0x64 + 8003390: d901 bls.n 8003396 + { + return HAL_TIMEOUT; + 8003392: 2303 movs r3, #3 + 8003394: e29e b.n 80038d4 + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + 8003396: 4b6a ldr r3, [pc, #424] @ (8003540 ) + 8003398: 681b ldr r3, [r3, #0] + 800339a: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 800339e: 2b00 cmp r3, #0 + 80033a0: d0f0 beq.n 8003384 + 80033a2: e014 b.n 80033ce + } + } + else + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80033a4: f7fd ff34 bl 8001210 + 80033a8: 6138 str r0, [r7, #16] + + /* Wait till HSE is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) + 80033aa: e008 b.n 80033be + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 80033ac: f7fd ff30 bl 8001210 + 80033b0: 4602 mov r2, r0 + 80033b2: 693b ldr r3, [r7, #16] + 80033b4: 1ad3 subs r3, r2, r3 + 80033b6: 2b64 cmp r3, #100 @ 0x64 + 80033b8: d901 bls.n 80033be + { + return HAL_TIMEOUT; + 80033ba: 2303 movs r3, #3 + 80033bc: e28a b.n 80038d4 + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) + 80033be: 4b60 ldr r3, [pc, #384] @ (8003540 ) + 80033c0: 681b ldr r3, [r3, #0] + 80033c2: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80033c6: 2b00 cmp r3, #0 + 80033c8: d1f0 bne.n 80033ac + 80033ca: e000 b.n 80033ce + if ((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 80033cc: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 80033ce: 687b ldr r3, [r7, #4] + 80033d0: 681b ldr r3, [r3, #0] + 80033d2: f003 0302 and.w r3, r3, #2 + 80033d6: 2b00 cmp r3, #0 + 80033d8: d075 beq.n 80034c6 + /* Check the parameters */ + assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); + assert_param(IS_RCC_HSI_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + + /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ + temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE(); + 80033da: 4b59 ldr r3, [pc, #356] @ (8003540 ) + 80033dc: 689b ldr r3, [r3, #8] + 80033de: f003 030c and.w r3, r3, #12 + 80033e2: 61bb str r3, [r7, #24] + temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 80033e4: 4b56 ldr r3, [pc, #344] @ (8003540 ) + 80033e6: 68db ldr r3, [r3, #12] + 80033e8: f003 0303 and.w r3, r3, #3 + 80033ec: 617b str r3, [r7, #20] + if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSI)) || (temp_sysclksrc == RCC_CFGR_SWS_HSI)) + 80033ee: 69bb ldr r3, [r7, #24] + 80033f0: 2b0c cmp r3, #12 + 80033f2: d102 bne.n 80033fa + 80033f4: 697b ldr r3, [r7, #20] + 80033f6: 2b02 cmp r3, #2 + 80033f8: d002 beq.n 8003400 + 80033fa: 69bb ldr r3, [r7, #24] + 80033fc: 2b04 cmp r3, #4 + 80033fe: d11f bne.n 8003440 + { + /* When HSI is used as system clock it will not be disabled */ + if ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) + 8003400: 4b4f ldr r3, [pc, #316] @ (8003540 ) + 8003402: 681b ldr r3, [r3, #0] + 8003404: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8003408: 2b00 cmp r3, #0 + 800340a: d005 beq.n 8003418 + 800340c: 687b ldr r3, [r7, #4] + 800340e: 68db ldr r3, [r3, #12] + 8003410: 2b00 cmp r3, #0 + 8003412: d101 bne.n 8003418 + { + return HAL_ERROR; + 8003414: 2301 movs r3, #1 + 8003416: e25d b.n 80038d4 + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 8003418: 4b49 ldr r3, [pc, #292] @ (8003540 ) + 800341a: 685b ldr r3, [r3, #4] + 800341c: f023 42fe bic.w r2, r3, #2130706432 @ 0x7f000000 + 8003420: 687b ldr r3, [r7, #4] + 8003422: 691b ldr r3, [r3, #16] + 8003424: 061b lsls r3, r3, #24 + 8003426: 4946 ldr r1, [pc, #280] @ (8003540 ) + 8003428: 4313 orrs r3, r2 + 800342a: 604b str r3, [r1, #4] + + /* Adapt Systick interrupt period */ + if (HAL_InitTick(uwTickPrio) != HAL_OK) + 800342c: 4b45 ldr r3, [pc, #276] @ (8003544 ) + 800342e: 681b ldr r3, [r3, #0] + 8003430: 4618 mov r0, r3 + 8003432: f7fd fea1 bl 8001178 + 8003436: 4603 mov r3, r0 + 8003438: 2b00 cmp r3, #0 + 800343a: d043 beq.n 80034c4 + { + return HAL_ERROR; + 800343c: 2301 movs r3, #1 + 800343e: e249 b.n 80038d4 + } + } + else + { + /* Check the HSI State */ + if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 8003440: 687b ldr r3, [r7, #4] + 8003442: 68db ldr r3, [r3, #12] + 8003444: 2b00 cmp r3, #0 + 8003446: d023 beq.n 8003490 + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 8003448: 4b3d ldr r3, [pc, #244] @ (8003540 ) + 800344a: 681b ldr r3, [r3, #0] + 800344c: 4a3c ldr r2, [pc, #240] @ (8003540 ) + 800344e: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8003452: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003454: f7fd fedc bl 8001210 + 8003458: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + 800345a: e008 b.n 800346e + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 800345c: f7fd fed8 bl 8001210 + 8003460: 4602 mov r2, r0 + 8003462: 693b ldr r3, [r7, #16] + 8003464: 1ad3 subs r3, r2, r3 + 8003466: 2b02 cmp r3, #2 + 8003468: d901 bls.n 800346e + { + return HAL_TIMEOUT; + 800346a: 2303 movs r3, #3 + 800346c: e232 b.n 80038d4 + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + 800346e: 4b34 ldr r3, [pc, #208] @ (8003540 ) + 8003470: 681b ldr r3, [r3, #0] + 8003472: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8003476: 2b00 cmp r3, #0 + 8003478: d0f0 beq.n 800345c + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 800347a: 4b31 ldr r3, [pc, #196] @ (8003540 ) + 800347c: 685b ldr r3, [r3, #4] + 800347e: f023 42fe bic.w r2, r3, #2130706432 @ 0x7f000000 + 8003482: 687b ldr r3, [r7, #4] + 8003484: 691b ldr r3, [r3, #16] + 8003486: 061b lsls r3, r3, #24 + 8003488: 492d ldr r1, [pc, #180] @ (8003540 ) + 800348a: 4313 orrs r3, r2 + 800348c: 604b str r3, [r1, #4] + 800348e: e01a b.n 80034c6 + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 8003490: 4b2b ldr r3, [pc, #172] @ (8003540 ) + 8003492: 681b ldr r3, [r3, #0] + 8003494: 4a2a ldr r2, [pc, #168] @ (8003540 ) + 8003496: f423 7380 bic.w r3, r3, #256 @ 0x100 + 800349a: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800349c: f7fd feb8 bl 8001210 + 80034a0: 6138 str r0, [r7, #16] + + /* Wait till HSI is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) + 80034a2: e008 b.n 80034b6 + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 80034a4: f7fd feb4 bl 8001210 + 80034a8: 4602 mov r2, r0 + 80034aa: 693b ldr r3, [r7, #16] + 80034ac: 1ad3 subs r3, r2, r3 + 80034ae: 2b02 cmp r3, #2 + 80034b0: d901 bls.n 80034b6 + { + return HAL_TIMEOUT; + 80034b2: 2303 movs r3, #3 + 80034b4: e20e b.n 80038d4 + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) + 80034b6: 4b22 ldr r3, [pc, #136] @ (8003540 ) + 80034b8: 681b ldr r3, [r3, #0] + 80034ba: f403 6380 and.w r3, r3, #1024 @ 0x400 + 80034be: 2b00 cmp r3, #0 + 80034c0: d1f0 bne.n 80034a4 + 80034c2: e000 b.n 80034c6 + if ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) + 80034c4: bf00 nop + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 80034c6: 687b ldr r3, [r7, #4] + 80034c8: 681b ldr r3, [r3, #0] + 80034ca: f003 0308 and.w r3, r3, #8 + 80034ce: 2b00 cmp r3, #0 + 80034d0: d041 beq.n 8003556 + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 80034d2: 687b ldr r3, [r7, #4] + 80034d4: 695b ldr r3, [r3, #20] + 80034d6: 2b00 cmp r3, #0 + 80034d8: d01c beq.n 8003514 + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 80034da: 4b19 ldr r3, [pc, #100] @ (8003540 ) + 80034dc: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 80034e0: 4a17 ldr r2, [pc, #92] @ (8003540 ) + 80034e2: f043 0301 orr.w r3, r3, #1 + 80034e6: f8c2 3094 str.w r3, [r2, #148] @ 0x94 + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80034ea: f7fd fe91 bl 8001210 + 80034ee: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while (READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) + 80034f0: e008 b.n 8003504 + { + if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 80034f2: f7fd fe8d bl 8001210 + 80034f6: 4602 mov r2, r0 + 80034f8: 693b ldr r3, [r7, #16] + 80034fa: 1ad3 subs r3, r2, r3 + 80034fc: 2b02 cmp r3, #2 + 80034fe: d901 bls.n 8003504 + { + return HAL_TIMEOUT; + 8003500: 2303 movs r3, #3 + 8003502: e1e7 b.n 80038d4 + while (READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) + 8003504: 4b0e ldr r3, [pc, #56] @ (8003540 ) + 8003506: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 800350a: f003 0302 and.w r3, r3, #2 + 800350e: 2b00 cmp r3, #0 + 8003510: d0ef beq.n 80034f2 + 8003512: e020 b.n 8003556 + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 8003514: 4b0a ldr r3, [pc, #40] @ (8003540 ) + 8003516: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 800351a: 4a09 ldr r2, [pc, #36] @ (8003540 ) + 800351c: f023 0301 bic.w r3, r3, #1 + 8003520: f8c2 3094 str.w r3, [r2, #148] @ 0x94 + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003524: f7fd fe74 bl 8001210 + 8003528: 6138 str r0, [r7, #16] + + /* Wait till LSI is disabled */ + while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) + 800352a: e00d b.n 8003548 + { + if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 800352c: f7fd fe70 bl 8001210 + 8003530: 4602 mov r2, r0 + 8003532: 693b ldr r3, [r7, #16] + 8003534: 1ad3 subs r3, r2, r3 + 8003536: 2b02 cmp r3, #2 + 8003538: d906 bls.n 8003548 + { + return HAL_TIMEOUT; + 800353a: 2303 movs r3, #3 + 800353c: e1ca b.n 80038d4 + 800353e: bf00 nop + 8003540: 40021000 .word 0x40021000 + 8003544: 20000004 .word 0x20000004 + while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) + 8003548: 4b8c ldr r3, [pc, #560] @ (800377c ) + 800354a: f8d3 3094 ldr.w r3, [r3, #148] @ 0x94 + 800354e: f003 0302 and.w r3, r3, #2 + 8003552: 2b00 cmp r3, #0 + 8003554: d1ea bne.n 800352c + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 8003556: 687b ldr r3, [r7, #4] + 8003558: 681b ldr r3, [r3, #0] + 800355a: f003 0304 and.w r3, r3, #4 + 800355e: 2b00 cmp r3, #0 + 8003560: f000 80a6 beq.w 80036b0 + { + FlagStatus pwrclkchanged = RESET; + 8003564: 2300 movs r3, #0 + 8003566: 77fb strb r3, [r7, #31] + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain if necessary */ + if (__HAL_RCC_PWR_IS_CLK_DISABLED() != 0U) + 8003568: 4b84 ldr r3, [pc, #528] @ (800377c ) + 800356a: 6d9b ldr r3, [r3, #88] @ 0x58 + 800356c: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8003570: 2b00 cmp r3, #0 + 8003572: d101 bne.n 8003578 + 8003574: 2301 movs r3, #1 + 8003576: e000 b.n 800357a + 8003578: 2300 movs r3, #0 + 800357a: 2b00 cmp r3, #0 + 800357c: d00d beq.n 800359a + { + __HAL_RCC_PWR_CLK_ENABLE(); + 800357e: 4b7f ldr r3, [pc, #508] @ (800377c ) + 8003580: 6d9b ldr r3, [r3, #88] @ 0x58 + 8003582: 4a7e ldr r2, [pc, #504] @ (800377c ) + 8003584: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8003588: 6593 str r3, [r2, #88] @ 0x58 + 800358a: 4b7c ldr r3, [pc, #496] @ (800377c ) + 800358c: 6d9b ldr r3, [r3, #88] @ 0x58 + 800358e: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8003592: 60fb str r3, [r7, #12] + 8003594: 68fb ldr r3, [r7, #12] + pwrclkchanged = SET; + 8003596: 2301 movs r3, #1 + 8003598: 77fb strb r3, [r7, #31] + } + + if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 800359a: 4b79 ldr r3, [pc, #484] @ (8003780 ) + 800359c: 681b ldr r3, [r3, #0] + 800359e: f403 7380 and.w r3, r3, #256 @ 0x100 + 80035a2: 2b00 cmp r3, #0 + 80035a4: d118 bne.n 80035d8 + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR1, PWR_CR1_DBP); + 80035a6: 4b76 ldr r3, [pc, #472] @ (8003780 ) + 80035a8: 681b ldr r3, [r3, #0] + 80035aa: 4a75 ldr r2, [pc, #468] @ (8003780 ) + 80035ac: f443 7380 orr.w r3, r3, #256 @ 0x100 + 80035b0: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 80035b2: f7fd fe2d bl 8001210 + 80035b6: 6138 str r0, [r7, #16] + + while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 80035b8: e008 b.n 80035cc + { + if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 80035ba: f7fd fe29 bl 8001210 + 80035be: 4602 mov r2, r0 + 80035c0: 693b ldr r3, [r7, #16] + 80035c2: 1ad3 subs r3, r2, r3 + 80035c4: 2b02 cmp r3, #2 + 80035c6: d901 bls.n 80035cc + { + return HAL_TIMEOUT; + 80035c8: 2303 movs r3, #3 + 80035ca: e183 b.n 80038d4 + while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 80035cc: 4b6c ldr r3, [pc, #432] @ (8003780 ) + 80035ce: 681b ldr r3, [r3, #0] + 80035d0: f403 7380 and.w r3, r3, #256 @ 0x100 + 80035d4: 2b00 cmp r3, #0 + 80035d6: d0f0 beq.n 80035ba + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 80035d8: 687b ldr r3, [r7, #4] + 80035da: 689b ldr r3, [r3, #8] + 80035dc: 2b01 cmp r3, #1 + 80035de: d108 bne.n 80035f2 + 80035e0: 4b66 ldr r3, [pc, #408] @ (800377c ) + 80035e2: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 80035e6: 4a65 ldr r2, [pc, #404] @ (800377c ) + 80035e8: f043 0301 orr.w r3, r3, #1 + 80035ec: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 80035f0: e024 b.n 800363c + 80035f2: 687b ldr r3, [r7, #4] + 80035f4: 689b ldr r3, [r3, #8] + 80035f6: 2b05 cmp r3, #5 + 80035f8: d110 bne.n 800361c + 80035fa: 4b60 ldr r3, [pc, #384] @ (800377c ) + 80035fc: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003600: 4a5e ldr r2, [pc, #376] @ (800377c ) + 8003602: f043 0304 orr.w r3, r3, #4 + 8003606: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 800360a: 4b5c ldr r3, [pc, #368] @ (800377c ) + 800360c: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003610: 4a5a ldr r2, [pc, #360] @ (800377c ) + 8003612: f043 0301 orr.w r3, r3, #1 + 8003616: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 800361a: e00f b.n 800363c + 800361c: 4b57 ldr r3, [pc, #348] @ (800377c ) + 800361e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003622: 4a56 ldr r2, [pc, #344] @ (800377c ) + 8003624: f023 0301 bic.w r3, r3, #1 + 8003628: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + 800362c: 4b53 ldr r3, [pc, #332] @ (800377c ) + 800362e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003632: 4a52 ldr r2, [pc, #328] @ (800377c ) + 8003634: f023 0304 bic.w r3, r3, #4 + 8003638: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + + /* Check the LSE State */ + if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 800363c: 687b ldr r3, [r7, #4] + 800363e: 689b ldr r3, [r3, #8] + 8003640: 2b00 cmp r3, #0 + 8003642: d016 beq.n 8003672 + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003644: f7fd fde4 bl 8001210 + 8003648: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + 800364a: e00a b.n 8003662 + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 800364c: f7fd fde0 bl 8001210 + 8003650: 4602 mov r2, r0 + 8003652: 693b ldr r3, [r7, #16] + 8003654: 1ad3 subs r3, r2, r3 + 8003656: f241 3288 movw r2, #5000 @ 0x1388 + 800365a: 4293 cmp r3, r2 + 800365c: d901 bls.n 8003662 + { + return HAL_TIMEOUT; + 800365e: 2303 movs r3, #3 + 8003660: e138 b.n 80038d4 + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + 8003662: 4b46 ldr r3, [pc, #280] @ (800377c ) + 8003664: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003668: f003 0302 and.w r3, r3, #2 + 800366c: 2b00 cmp r3, #0 + 800366e: d0ed beq.n 800364c + 8003670: e015 b.n 800369e + } + } + else + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003672: f7fd fdcd bl 8001210 + 8003676: 6138 str r0, [r7, #16] + + /* Wait till LSE is disabled */ + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) + 8003678: e00a b.n 8003690 + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 800367a: f7fd fdc9 bl 8001210 + 800367e: 4602 mov r2, r0 + 8003680: 693b ldr r3, [r7, #16] + 8003682: 1ad3 subs r3, r2, r3 + 8003684: f241 3288 movw r2, #5000 @ 0x1388 + 8003688: 4293 cmp r3, r2 + 800368a: d901 bls.n 8003690 + { + return HAL_TIMEOUT; + 800368c: 2303 movs r3, #3 + 800368e: e121 b.n 80038d4 + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) + 8003690: 4b3a ldr r3, [pc, #232] @ (800377c ) + 8003692: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003696: f003 0302 and.w r3, r3, #2 + 800369a: 2b00 cmp r3, #0 + 800369c: d1ed bne.n 800367a + } + } + } + + /* Restore clock configuration if changed */ + if (pwrclkchanged == SET) + 800369e: 7ffb ldrb r3, [r7, #31] + 80036a0: 2b01 cmp r3, #1 + 80036a2: d105 bne.n 80036b0 + { + __HAL_RCC_PWR_CLK_DISABLE(); + 80036a4: 4b35 ldr r3, [pc, #212] @ (800377c ) + 80036a6: 6d9b ldr r3, [r3, #88] @ 0x58 + 80036a8: 4a34 ldr r2, [pc, #208] @ (800377c ) + 80036aa: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 80036ae: 6593 str r3, [r2, #88] @ 0x58 + } + } + + /*------------------------------ HSI48 Configuration -----------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI48) == RCC_OSCILLATORTYPE_HSI48) + 80036b0: 687b ldr r3, [r7, #4] + 80036b2: 681b ldr r3, [r3, #0] + 80036b4: f003 0320 and.w r3, r3, #32 + 80036b8: 2b00 cmp r3, #0 + 80036ba: d03c beq.n 8003736 + { + /* Check the parameters */ + assert_param(IS_RCC_HSI48(RCC_OscInitStruct->HSI48State)); + + /* Check the HSI48 State */ + if(RCC_OscInitStruct->HSI48State != RCC_HSI48_OFF) + 80036bc: 687b ldr r3, [r7, #4] + 80036be: 699b ldr r3, [r3, #24] + 80036c0: 2b00 cmp r3, #0 + 80036c2: d01c beq.n 80036fe + { + /* Enable the Internal Low Speed oscillator (HSI48). */ + __HAL_RCC_HSI48_ENABLE(); + 80036c4: 4b2d ldr r3, [pc, #180] @ (800377c ) + 80036c6: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 80036ca: 4a2c ldr r2, [pc, #176] @ (800377c ) + 80036cc: f043 0301 orr.w r3, r3, #1 + 80036d0: f8c2 3098 str.w r3, [r2, #152] @ 0x98 + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80036d4: f7fd fd9c bl 8001210 + 80036d8: 6138 str r0, [r7, #16] + + /* Wait till HSI48 is ready */ + while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == 0U) + 80036da: e008 b.n 80036ee + { + if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) + 80036dc: f7fd fd98 bl 8001210 + 80036e0: 4602 mov r2, r0 + 80036e2: 693b ldr r3, [r7, #16] + 80036e4: 1ad3 subs r3, r2, r3 + 80036e6: 2b02 cmp r3, #2 + 80036e8: d901 bls.n 80036ee + { + return HAL_TIMEOUT; + 80036ea: 2303 movs r3, #3 + 80036ec: e0f2 b.n 80038d4 + while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == 0U) + 80036ee: 4b23 ldr r3, [pc, #140] @ (800377c ) + 80036f0: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 80036f4: f003 0302 and.w r3, r3, #2 + 80036f8: 2b00 cmp r3, #0 + 80036fa: d0ef beq.n 80036dc + 80036fc: e01b b.n 8003736 + } + } + else + { + /* Disable the Internal Low Speed oscillator (HSI48). */ + __HAL_RCC_HSI48_DISABLE(); + 80036fe: 4b1f ldr r3, [pc, #124] @ (800377c ) + 8003700: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 8003704: 4a1d ldr r2, [pc, #116] @ (800377c ) + 8003706: f023 0301 bic.w r3, r3, #1 + 800370a: f8c2 3098 str.w r3, [r2, #152] @ 0x98 + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800370e: f7fd fd7f bl 8001210 + 8003712: 6138 str r0, [r7, #16] + + /* Wait till HSI48 is disabled */ + while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) != 0U) + 8003714: e008 b.n 8003728 + { + if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) + 8003716: f7fd fd7b bl 8001210 + 800371a: 4602 mov r2, r0 + 800371c: 693b ldr r3, [r7, #16] + 800371e: 1ad3 subs r3, r2, r3 + 8003720: 2b02 cmp r3, #2 + 8003722: d901 bls.n 8003728 + { + return HAL_TIMEOUT; + 8003724: 2303 movs r3, #3 + 8003726: e0d5 b.n 80038d4 + while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) != 0U) + 8003728: 4b14 ldr r3, [pc, #80] @ (800377c ) + 800372a: f8d3 3098 ldr.w r3, [r3, #152] @ 0x98 + 800372e: f003 0302 and.w r3, r3, #2 + 8003732: 2b00 cmp r3, #0 + 8003734: d1ef bne.n 8003716 + + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + + if (RCC_OscInitStruct->PLL.PLLState != RCC_PLL_NONE) + 8003736: 687b ldr r3, [r7, #4] + 8003738: 69db ldr r3, [r3, #28] + 800373a: 2b00 cmp r3, #0 + 800373c: f000 80c9 beq.w 80038d2 + { + /* Check if the PLL is used as system clock or not */ + if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_CFGR_SWS_PLL) + 8003740: 4b0e ldr r3, [pc, #56] @ (800377c ) + 8003742: 689b ldr r3, [r3, #8] + 8003744: f003 030c and.w r3, r3, #12 + 8003748: 2b0c cmp r3, #12 + 800374a: f000 8083 beq.w 8003854 + { + if (RCC_OscInitStruct->PLL.PLLState == RCC_PLL_ON) + 800374e: 687b ldr r3, [r7, #4] + 8003750: 69db ldr r3, [r3, #28] + 8003752: 2b02 cmp r3, #2 + 8003754: d15e bne.n 8003814 + assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->PLL.PLLP)); + assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); + assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8003756: 4b09 ldr r3, [pc, #36] @ (800377c ) + 8003758: 681b ldr r3, [r3, #0] + 800375a: 4a08 ldr r2, [pc, #32] @ (800377c ) + 800375c: f023 7380 bic.w r3, r3, #16777216 @ 0x1000000 + 8003760: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003762: f7fd fd55 bl 8001210 + 8003766: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 8003768: e00c b.n 8003784 + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 800376a: f7fd fd51 bl 8001210 + 800376e: 4602 mov r2, r0 + 8003770: 693b ldr r3, [r7, #16] + 8003772: 1ad3 subs r3, r2, r3 + 8003774: 2b02 cmp r3, #2 + 8003776: d905 bls.n 8003784 + { + return HAL_TIMEOUT; + 8003778: 2303 movs r3, #3 + 800377a: e0ab b.n 80038d4 + 800377c: 40021000 .word 0x40021000 + 8003780: 40007000 .word 0x40007000 + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 8003784: 4b55 ldr r3, [pc, #340] @ (80038dc ) + 8003786: 681b ldr r3, [r3, #0] + 8003788: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800378c: 2b00 cmp r3, #0 + 800378e: d1ec bne.n 800376a + } + } + + /* Configure the main PLL clock source, multiplication and division factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 8003790: 4b52 ldr r3, [pc, #328] @ (80038dc ) + 8003792: 68da ldr r2, [r3, #12] + 8003794: 4b52 ldr r3, [pc, #328] @ (80038e0 ) + 8003796: 4013 ands r3, r2 + 8003798: 687a ldr r2, [r7, #4] + 800379a: 6a11 ldr r1, [r2, #32] + 800379c: 687a ldr r2, [r7, #4] + 800379e: 6a52 ldr r2, [r2, #36] @ 0x24 + 80037a0: 3a01 subs r2, #1 + 80037a2: 0112 lsls r2, r2, #4 + 80037a4: 4311 orrs r1, r2 + 80037a6: 687a ldr r2, [r7, #4] + 80037a8: 6a92 ldr r2, [r2, #40] @ 0x28 + 80037aa: 0212 lsls r2, r2, #8 + 80037ac: 4311 orrs r1, r2 + 80037ae: 687a ldr r2, [r7, #4] + 80037b0: 6b12 ldr r2, [r2, #48] @ 0x30 + 80037b2: 0852 lsrs r2, r2, #1 + 80037b4: 3a01 subs r2, #1 + 80037b6: 0552 lsls r2, r2, #21 + 80037b8: 4311 orrs r1, r2 + 80037ba: 687a ldr r2, [r7, #4] + 80037bc: 6b52 ldr r2, [r2, #52] @ 0x34 + 80037be: 0852 lsrs r2, r2, #1 + 80037c0: 3a01 subs r2, #1 + 80037c2: 0652 lsls r2, r2, #25 + 80037c4: 4311 orrs r1, r2 + 80037c6: 687a ldr r2, [r7, #4] + 80037c8: 6ad2 ldr r2, [r2, #44] @ 0x2c + 80037ca: 06d2 lsls r2, r2, #27 + 80037cc: 430a orrs r2, r1 + 80037ce: 4943 ldr r1, [pc, #268] @ (80038dc ) + 80037d0: 4313 orrs r3, r2 + 80037d2: 60cb str r3, [r1, #12] + RCC_OscInitStruct->PLL.PLLP, + RCC_OscInitStruct->PLL.PLLQ, + RCC_OscInitStruct->PLL.PLLR); + + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 80037d4: 4b41 ldr r3, [pc, #260] @ (80038dc ) + 80037d6: 681b ldr r3, [r3, #0] + 80037d8: 4a40 ldr r2, [pc, #256] @ (80038dc ) + 80037da: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 80037de: 6013 str r3, [r2, #0] + + /* Enable PLL System Clock output. */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); + 80037e0: 4b3e ldr r3, [pc, #248] @ (80038dc ) + 80037e2: 68db ldr r3, [r3, #12] + 80037e4: 4a3d ldr r2, [pc, #244] @ (80038dc ) + 80037e6: f043 7380 orr.w r3, r3, #16777216 @ 0x1000000 + 80037ea: 60d3 str r3, [r2, #12] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80037ec: f7fd fd10 bl 8001210 + 80037f0: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + 80037f2: e008 b.n 8003806 + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 80037f4: f7fd fd0c bl 8001210 + 80037f8: 4602 mov r2, r0 + 80037fa: 693b ldr r3, [r7, #16] + 80037fc: 1ad3 subs r3, r2, r3 + 80037fe: 2b02 cmp r3, #2 + 8003800: d901 bls.n 8003806 + { + return HAL_TIMEOUT; + 8003802: 2303 movs r3, #3 + 8003804: e066 b.n 80038d4 + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + 8003806: 4b35 ldr r3, [pc, #212] @ (80038dc ) + 8003808: 681b ldr r3, [r3, #0] + 800380a: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800380e: 2b00 cmp r3, #0 + 8003810: d0f0 beq.n 80037f4 + 8003812: e05e b.n 80038d2 + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8003814: 4b31 ldr r3, [pc, #196] @ (80038dc ) + 8003816: 681b ldr r3, [r3, #0] + 8003818: 4a30 ldr r2, [pc, #192] @ (80038dc ) + 800381a: f023 7380 bic.w r3, r3, #16777216 @ 0x1000000 + 800381e: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003820: f7fd fcf6 bl 8001210 + 8003824: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 8003826: e008 b.n 800383a + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 8003828: f7fd fcf2 bl 8001210 + 800382c: 4602 mov r2, r0 + 800382e: 693b ldr r3, [r7, #16] + 8003830: 1ad3 subs r3, r2, r3 + 8003832: 2b02 cmp r3, #2 + 8003834: d901 bls.n 800383a + { + return HAL_TIMEOUT; + 8003836: 2303 movs r3, #3 + 8003838: e04c b.n 80038d4 + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 800383a: 4b28 ldr r3, [pc, #160] @ (80038dc ) + 800383c: 681b ldr r3, [r3, #0] + 800383e: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 8003842: 2b00 cmp r3, #0 + 8003844: d1f0 bne.n 8003828 + } + } + + /* Unselect PLL clock source and disable outputs to save power */ + RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_ADCCLK); + 8003846: 4b25 ldr r3, [pc, #148] @ (80038dc ) + 8003848: 68da ldr r2, [r3, #12] + 800384a: 4924 ldr r1, [pc, #144] @ (80038dc ) + 800384c: 4b25 ldr r3, [pc, #148] @ (80038e4 ) + 800384e: 4013 ands r3, r2 + 8003850: 60cb str r3, [r1, #12] + 8003852: e03e b.n 80038d2 + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 8003854: 687b ldr r3, [r7, #4] + 8003856: 69db ldr r3, [r3, #28] + 8003858: 2b01 cmp r3, #1 + 800385a: d101 bne.n 8003860 + { + return HAL_ERROR; + 800385c: 2301 movs r3, #1 + 800385e: e039 b.n 80038d4 + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + temp_pllckcfg = RCC->PLLCFGR; + 8003860: 4b1e ldr r3, [pc, #120] @ (80038dc ) + 8003862: 68db ldr r3, [r3, #12] + 8003864: 617b str r3, [r7, #20] + if((READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8003866: 697b ldr r3, [r7, #20] + 8003868: f003 0203 and.w r2, r3, #3 + 800386c: 687b ldr r3, [r7, #4] + 800386e: 6a1b ldr r3, [r3, #32] + 8003870: 429a cmp r2, r3 + 8003872: d12c bne.n 80038ce + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC_PLLCFGR_PLLM_Pos)) || + 8003874: 697b ldr r3, [r7, #20] + 8003876: f003 02f0 and.w r2, r3, #240 @ 0xf0 + 800387a: 687b ldr r3, [r7, #4] + 800387c: 6a5b ldr r3, [r3, #36] @ 0x24 + 800387e: 3b01 subs r3, #1 + 8003880: 011b lsls r3, r3, #4 + if((READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8003882: 429a cmp r2, r3 + 8003884: d123 bne.n 80038ce + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFGR_PLLN_Pos)) || + 8003886: 697b ldr r3, [r7, #20] + 8003888: f403 42fe and.w r2, r3, #32512 @ 0x7f00 + 800388c: 687b ldr r3, [r7, #4] + 800388e: 6a9b ldr r3, [r3, #40] @ 0x28 + 8003890: 021b lsls r3, r3, #8 + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC_PLLCFGR_PLLM_Pos)) || + 8003892: 429a cmp r2, r3 + 8003894: d11b bne.n 80038ce + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLLCFGR_PLLPDIV_Pos)) || + 8003896: 697b ldr r3, [r7, #20] + 8003898: f003 4278 and.w r2, r3, #4160749568 @ 0xf8000000 + 800389c: 687b ldr r3, [r7, #4] + 800389e: 6adb ldr r3, [r3, #44] @ 0x2c + 80038a0: 06db lsls r3, r3, #27 + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFGR_PLLN_Pos)) || + 80038a2: 429a cmp r2, r3 + 80038a4: d113 bne.n 80038ce + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || + 80038a6: 697b ldr r3, [r7, #20] + 80038a8: f403 02c0 and.w r2, r3, #6291456 @ 0x600000 + 80038ac: 687b ldr r3, [r7, #4] + 80038ae: 6b1b ldr r3, [r3, #48] @ 0x30 + 80038b0: 085b lsrs r3, r3, #1 + 80038b2: 3b01 subs r3, #1 + 80038b4: 055b lsls r3, r3, #21 + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLLCFGR_PLLPDIV_Pos)) || + 80038b6: 429a cmp r2, r3 + 80038b8: d109 bne.n 80038ce + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U) << RCC_PLLCFGR_PLLR_Pos))) + 80038ba: 697b ldr r3, [r7, #20] + 80038bc: f003 62c0 and.w r2, r3, #100663296 @ 0x6000000 + 80038c0: 687b ldr r3, [r7, #4] + 80038c2: 6b5b ldr r3, [r3, #52] @ 0x34 + 80038c4: 085b lsrs r3, r3, #1 + 80038c6: 3b01 subs r3, #1 + 80038c8: 065b lsls r3, r3, #25 + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || + 80038ca: 429a cmp r2, r3 + 80038cc: d001 beq.n 80038d2 + { + return HAL_ERROR; + 80038ce: 2301 movs r3, #1 + 80038d0: e000 b.n 80038d4 + } + } + } + } + + return HAL_OK; + 80038d2: 2300 movs r3, #0 +} + 80038d4: 4618 mov r0, r3 + 80038d6: 3720 adds r7, #32 + 80038d8: 46bd mov sp, r7 + 80038da: bd80 pop {r7, pc} + 80038dc: 40021000 .word 0x40021000 + 80038e0: 019f800c .word 0x019f800c + 80038e4: feeefffc .word 0xfeeefffc + +080038e8 : + * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + * (for more details refer to section above "Initialization/de-initialization functions") + * @retval None + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + 80038e8: b580 push {r7, lr} + 80038ea: b086 sub sp, #24 + 80038ec: af00 add r7, sp, #0 + 80038ee: 6078 str r0, [r7, #4] + 80038f0: 6039 str r1, [r7, #0] + uint32_t tickstart; + uint32_t pllfreq; + uint32_t hpre = RCC_SYSCLK_DIV1; + 80038f2: 2300 movs r3, #0 + 80038f4: 617b str r3, [r7, #20] + + /* Check Null pointer */ + if (RCC_ClkInitStruct == NULL) + 80038f6: 687b ldr r3, [r7, #4] + 80038f8: 2b00 cmp r3, #0 + 80038fa: d101 bne.n 8003900 + { + return HAL_ERROR; + 80038fc: 2301 movs r3, #1 + 80038fe: e11e b.n 8003b3e + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + + /* Increasing the number of wait states because of higher CPU frequency */ + if (FLatency > __HAL_FLASH_GET_LATENCY()) + 8003900: 4b91 ldr r3, [pc, #580] @ (8003b48 ) + 8003902: 681b ldr r3, [r3, #0] + 8003904: f003 030f and.w r3, r3, #15 + 8003908: 683a ldr r2, [r7, #0] + 800390a: 429a cmp r2, r3 + 800390c: d910 bls.n 8003930 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 800390e: 4b8e ldr r3, [pc, #568] @ (8003b48 ) + 8003910: 681b ldr r3, [r3, #0] + 8003912: f023 020f bic.w r2, r3, #15 + 8003916: 498c ldr r1, [pc, #560] @ (8003b48 ) + 8003918: 683b ldr r3, [r7, #0] + 800391a: 4313 orrs r3, r2 + 800391c: 600b str r3, [r1, #0] + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if (__HAL_FLASH_GET_LATENCY() != FLatency) + 800391e: 4b8a ldr r3, [pc, #552] @ (8003b48 ) + 8003920: 681b ldr r3, [r3, #0] + 8003922: f003 030f and.w r3, r3, #15 + 8003926: 683a ldr r2, [r7, #0] + 8003928: 429a cmp r2, r3 + 800392a: d001 beq.n 8003930 + { + return HAL_ERROR; + 800392c: 2301 movs r3, #1 + 800392e: e106 b.n 8003b3e + } + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 8003930: 687b ldr r3, [r7, #4] + 8003932: 681b ldr r3, [r3, #0] + 8003934: f003 0301 and.w r3, r3, #1 + 8003938: 2b00 cmp r3, #0 + 800393a: d073 beq.n 8003a24 + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* PLL is selected as System Clock Source */ + if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 800393c: 687b ldr r3, [r7, #4] + 800393e: 685b ldr r3, [r3, #4] + 8003940: 2b03 cmp r3, #3 + 8003942: d129 bne.n 8003998 + { + /* Check the PLL ready flag */ + if (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + 8003944: 4b81 ldr r3, [pc, #516] @ (8003b4c ) + 8003946: 681b ldr r3, [r3, #0] + 8003948: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800394c: 2b00 cmp r3, #0 + 800394e: d101 bne.n 8003954 + { + return HAL_ERROR; + 8003950: 2301 movs r3, #1 + 8003952: e0f4 b.n 8003b3e + } + /* Undershoot management when selection PLL as SYSCLK source and frequency above 80Mhz */ + /* Compute target PLL output frequency */ + pllfreq = RCC_GetSysClockFreqFromPLLSource(); + 8003954: f000 f99e bl 8003c94 + 8003958: 6138 str r0, [r7, #16] + + /* Intermediate step with HCLK prescaler 2 necessary before to go over 80Mhz */ + if(pllfreq > 80000000U) + 800395a: 693b ldr r3, [r7, #16] + 800395c: 4a7c ldr r2, [pc, #496] @ (8003b50 ) + 800395e: 4293 cmp r3, r2 + 8003960: d93f bls.n 80039e2 + { + if (((READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1)) || + 8003962: 4b7a ldr r3, [pc, #488] @ (8003b4c ) + 8003964: 689b ldr r3, [r3, #8] + 8003966: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 800396a: 2b00 cmp r3, #0 + 800396c: d009 beq.n 8003982 + (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 800396e: 687b ldr r3, [r7, #4] + 8003970: 681b ldr r3, [r3, #0] + 8003972: f003 0302 and.w r3, r3, #2 + if (((READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1)) || + 8003976: 2b00 cmp r3, #0 + 8003978: d033 beq.n 80039e2 + (RCC_ClkInitStruct->AHBCLKDivider == RCC_SYSCLK_DIV1)))) + 800397a: 687b ldr r3, [r7, #4] + 800397c: 689b ldr r3, [r3, #8] + (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 800397e: 2b00 cmp r3, #0 + 8003980: d12f bne.n 80039e2 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); + 8003982: 4b72 ldr r3, [pc, #456] @ (8003b4c ) + 8003984: 689b ldr r3, [r3, #8] + 8003986: f023 03f0 bic.w r3, r3, #240 @ 0xf0 + 800398a: 4a70 ldr r2, [pc, #448] @ (8003b4c ) + 800398c: f043 0380 orr.w r3, r3, #128 @ 0x80 + 8003990: 6093 str r3, [r2, #8] + hpre = RCC_SYSCLK_DIV2; + 8003992: 2380 movs r3, #128 @ 0x80 + 8003994: 617b str r3, [r7, #20] + 8003996: e024 b.n 80039e2 + } + } + else + { + /* HSE is selected as System Clock Source */ + if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 8003998: 687b ldr r3, [r7, #4] + 800399a: 685b ldr r3, [r3, #4] + 800399c: 2b02 cmp r3, #2 + 800399e: d107 bne.n 80039b0 + { + /* Check the HSE ready flag */ + if(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + 80039a0: 4b6a ldr r3, [pc, #424] @ (8003b4c ) + 80039a2: 681b ldr r3, [r3, #0] + 80039a4: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80039a8: 2b00 cmp r3, #0 + 80039aa: d109 bne.n 80039c0 + { + return HAL_ERROR; + 80039ac: 2301 movs r3, #1 + 80039ae: e0c6 b.n 8003b3e + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + 80039b0: 4b66 ldr r3, [pc, #408] @ (8003b4c ) + 80039b2: 681b ldr r3, [r3, #0] + 80039b4: f403 6380 and.w r3, r3, #1024 @ 0x400 + 80039b8: 2b00 cmp r3, #0 + 80039ba: d101 bne.n 80039c0 + { + return HAL_ERROR; + 80039bc: 2301 movs r3, #1 + 80039be: e0be b.n 8003b3e + } + } + /* Overshoot management when going down from PLL as SYSCLK source and frequency above 80Mhz */ + pllfreq = HAL_RCC_GetSysClockFreq(); + 80039c0: f000 f8ce bl 8003b60 + 80039c4: 6138 str r0, [r7, #16] + + /* Intermediate step with HCLK prescaler 2 necessary before to go under 80Mhz */ + if(pllfreq > 80000000U) + 80039c6: 693b ldr r3, [r7, #16] + 80039c8: 4a61 ldr r2, [pc, #388] @ (8003b50 ) + 80039ca: 4293 cmp r3, r2 + 80039cc: d909 bls.n 80039e2 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); + 80039ce: 4b5f ldr r3, [pc, #380] @ (8003b4c ) + 80039d0: 689b ldr r3, [r3, #8] + 80039d2: f023 03f0 bic.w r3, r3, #240 @ 0xf0 + 80039d6: 4a5d ldr r2, [pc, #372] @ (8003b4c ) + 80039d8: f043 0380 orr.w r3, r3, #128 @ 0x80 + 80039dc: 6093 str r3, [r2, #8] + hpre = RCC_SYSCLK_DIV2; + 80039de: 2380 movs r3, #128 @ 0x80 + 80039e0: 617b str r3, [r7, #20] + } + + } + + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource); + 80039e2: 4b5a ldr r3, [pc, #360] @ (8003b4c ) + 80039e4: 689b ldr r3, [r3, #8] + 80039e6: f023 0203 bic.w r2, r3, #3 + 80039ea: 687b ldr r3, [r7, #4] + 80039ec: 685b ldr r3, [r3, #4] + 80039ee: 4957 ldr r1, [pc, #348] @ (8003b4c ) + 80039f0: 4313 orrs r3, r2 + 80039f2: 608b str r3, [r1, #8] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80039f4: f7fd fc0c bl 8001210 + 80039f8: 60f8 str r0, [r7, #12] + + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 80039fa: e00a b.n 8003a12 + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 80039fc: f7fd fc08 bl 8001210 + 8003a00: 4602 mov r2, r0 + 8003a02: 68fb ldr r3, [r7, #12] + 8003a04: 1ad3 subs r3, r2, r3 + 8003a06: f241 3288 movw r2, #5000 @ 0x1388 + 8003a0a: 4293 cmp r3, r2 + 8003a0c: d901 bls.n 8003a12 + { + return HAL_TIMEOUT; + 8003a0e: 2303 movs r3, #3 + 8003a10: e095 b.n 8003b3e + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8003a12: 4b4e ldr r3, [pc, #312] @ (8003b4c ) + 8003a14: 689b ldr r3, [r3, #8] + 8003a16: f003 020c and.w r2, r3, #12 + 8003a1a: 687b ldr r3, [r7, #4] + 8003a1c: 685b ldr r3, [r3, #4] + 8003a1e: 009b lsls r3, r3, #2 + 8003a20: 429a cmp r2, r3 + 8003a22: d1eb bne.n 80039fc + } + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 8003a24: 687b ldr r3, [r7, #4] + 8003a26: 681b ldr r3, [r3, #0] + 8003a28: f003 0302 and.w r3, r3, #2 + 8003a2c: 2b00 cmp r3, #0 + 8003a2e: d023 beq.n 8003a78 + { + /* Set the highest APB divider in order to ensure that we do not go through + a non-spec phase whatever we decrease or increase HCLK. */ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8003a30: 687b ldr r3, [r7, #4] + 8003a32: 681b ldr r3, [r3, #0] + 8003a34: f003 0304 and.w r3, r3, #4 + 8003a38: 2b00 cmp r3, #0 + 8003a3a: d005 beq.n 8003a48 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + 8003a3c: 4b43 ldr r3, [pc, #268] @ (8003b4c ) + 8003a3e: 689b ldr r3, [r3, #8] + 8003a40: 4a42 ldr r2, [pc, #264] @ (8003b4c ) + 8003a42: f443 63e0 orr.w r3, r3, #1792 @ 0x700 + 8003a46: 6093 str r3, [r2, #8] + } + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8003a48: 687b ldr r3, [r7, #4] + 8003a4a: 681b ldr r3, [r3, #0] + 8003a4c: f003 0308 and.w r3, r3, #8 + 8003a50: 2b00 cmp r3, #0 + 8003a52: d007 beq.n 8003a64 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, RCC_HCLK_DIV16); + 8003a54: 4b3d ldr r3, [pc, #244] @ (8003b4c ) + 8003a56: 689b ldr r3, [r3, #8] + 8003a58: f423 537c bic.w r3, r3, #16128 @ 0x3f00 + 8003a5c: 4a3b ldr r2, [pc, #236] @ (8003b4c ) + 8003a5e: f443 63e0 orr.w r3, r3, #1792 @ 0x700 + 8003a62: 6093 str r3, [r2, #8] + } + + /* Set the new HCLK clock divider */ + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 8003a64: 4b39 ldr r3, [pc, #228] @ (8003b4c ) + 8003a66: 689b ldr r3, [r3, #8] + 8003a68: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 8003a6c: 687b ldr r3, [r7, #4] + 8003a6e: 689b ldr r3, [r3, #8] + 8003a70: 4936 ldr r1, [pc, #216] @ (8003b4c ) + 8003a72: 4313 orrs r3, r2 + 8003a74: 608b str r3, [r1, #8] + 8003a76: e008 b.n 8003a8a + } + else + { + /* Is intermediate HCLK prescaler 2 applied internally, complete with HCLK prescaler 1 */ + if(hpre == RCC_SYSCLK_DIV2) + 8003a78: 697b ldr r3, [r7, #20] + 8003a7a: 2b80 cmp r3, #128 @ 0x80 + 8003a7c: d105 bne.n 8003a8a + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV1); + 8003a7e: 4b33 ldr r3, [pc, #204] @ (8003b4c ) + 8003a80: 689b ldr r3, [r3, #8] + 8003a82: 4a32 ldr r2, [pc, #200] @ (8003b4c ) + 8003a84: f023 03f0 bic.w r3, r3, #240 @ 0xf0 + 8003a88: 6093 str r3, [r2, #8] + } + } + + /* Decreasing the number of wait states because of lower CPU frequency */ + if (FLatency < __HAL_FLASH_GET_LATENCY()) + 8003a8a: 4b2f ldr r3, [pc, #188] @ (8003b48 ) + 8003a8c: 681b ldr r3, [r3, #0] + 8003a8e: f003 030f and.w r3, r3, #15 + 8003a92: 683a ldr r2, [r7, #0] + 8003a94: 429a cmp r2, r3 + 8003a96: d21d bcs.n 8003ad4 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8003a98: 4b2b ldr r3, [pc, #172] @ (8003b48 ) + 8003a9a: 681b ldr r3, [r3, #0] + 8003a9c: f023 020f bic.w r2, r3, #15 + 8003aa0: 4929 ldr r1, [pc, #164] @ (8003b48 ) + 8003aa2: 683b ldr r3, [r7, #0] + 8003aa4: 4313 orrs r3, r2 + 8003aa6: 600b str r3, [r1, #0] + + /* Check that the new number of wait states is taken into account to access the Flash + memory by polling the FLASH_ACR register */ + tickstart = HAL_GetTick(); + 8003aa8: f7fd fbb2 bl 8001210 + 8003aac: 60f8 str r0, [r7, #12] + + while (__HAL_FLASH_GET_LATENCY() != FLatency) + 8003aae: e00a b.n 8003ac6 + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 8003ab0: f7fd fbae bl 8001210 + 8003ab4: 4602 mov r2, r0 + 8003ab6: 68fb ldr r3, [r7, #12] + 8003ab8: 1ad3 subs r3, r2, r3 + 8003aba: f241 3288 movw r2, #5000 @ 0x1388 + 8003abe: 4293 cmp r3, r2 + 8003ac0: d901 bls.n 8003ac6 + { + return HAL_TIMEOUT; + 8003ac2: 2303 movs r3, #3 + 8003ac4: e03b b.n 8003b3e + while (__HAL_FLASH_GET_LATENCY() != FLatency) + 8003ac6: 4b20 ldr r3, [pc, #128] @ (8003b48 ) + 8003ac8: 681b ldr r3, [r3, #0] + 8003aca: f003 030f and.w r3, r3, #15 + 8003ace: 683a ldr r2, [r7, #0] + 8003ad0: 429a cmp r2, r3 + 8003ad2: d1ed bne.n 8003ab0 + } + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8003ad4: 687b ldr r3, [r7, #4] + 8003ad6: 681b ldr r3, [r3, #0] + 8003ad8: f003 0304 and.w r3, r3, #4 + 8003adc: 2b00 cmp r3, #0 + 8003ade: d008 beq.n 8003af2 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 8003ae0: 4b1a ldr r3, [pc, #104] @ (8003b4c ) + 8003ae2: 689b ldr r3, [r3, #8] + 8003ae4: f423 62e0 bic.w r2, r3, #1792 @ 0x700 + 8003ae8: 687b ldr r3, [r7, #4] + 8003aea: 68db ldr r3, [r3, #12] + 8003aec: 4917 ldr r1, [pc, #92] @ (8003b4c ) + 8003aee: 4313 orrs r3, r2 + 8003af0: 608b str r3, [r1, #8] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8003af2: 687b ldr r3, [r7, #4] + 8003af4: 681b ldr r3, [r3, #0] + 8003af6: f003 0308 and.w r3, r3, #8 + 8003afa: 2b00 cmp r3, #0 + 8003afc: d009 beq.n 8003b12 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + 8003afe: 4b13 ldr r3, [pc, #76] @ (8003b4c ) + 8003b00: 689b ldr r3, [r3, #8] + 8003b02: f423 5260 bic.w r2, r3, #14336 @ 0x3800 + 8003b06: 687b ldr r3, [r7, #4] + 8003b08: 691b ldr r3, [r3, #16] + 8003b0a: 00db lsls r3, r3, #3 + 8003b0c: 490f ldr r1, [pc, #60] @ (8003b4c ) + 8003b0e: 4313 orrs r3, r2 + 8003b10: 608b str r3, [r1, #8] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU); + 8003b12: f000 f825 bl 8003b60 + 8003b16: 4602 mov r2, r0 + 8003b18: 4b0c ldr r3, [pc, #48] @ (8003b4c ) + 8003b1a: 689b ldr r3, [r3, #8] + 8003b1c: 091b lsrs r3, r3, #4 + 8003b1e: f003 030f and.w r3, r3, #15 + 8003b22: 490c ldr r1, [pc, #48] @ (8003b54 ) + 8003b24: 5ccb ldrb r3, [r1, r3] + 8003b26: f003 031f and.w r3, r3, #31 + 8003b2a: fa22 f303 lsr.w r3, r2, r3 + 8003b2e: 4a0a ldr r2, [pc, #40] @ (8003b58 ) + 8003b30: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + return HAL_InitTick(uwTickPrio); + 8003b32: 4b0a ldr r3, [pc, #40] @ (8003b5c ) + 8003b34: 681b ldr r3, [r3, #0] + 8003b36: 4618 mov r0, r3 + 8003b38: f7fd fb1e bl 8001178 + 8003b3c: 4603 mov r3, r0 +} + 8003b3e: 4618 mov r0, r3 + 8003b40: 3718 adds r7, #24 + 8003b42: 46bd mov sp, r7 + 8003b44: bd80 pop {r7, pc} + 8003b46: bf00 nop + 8003b48: 40022000 .word 0x40022000 + 8003b4c: 40021000 .word 0x40021000 + 8003b50: 04c4b400 .word 0x04c4b400 + 8003b54: 08006d34 .word 0x08006d34 + 8003b58: 20000000 .word 0x20000000 + 8003b5c: 20000004 .word 0x20000004 + +08003b60 : + * + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 8003b60: b480 push {r7} + 8003b62: b087 sub sp, #28 + 8003b64: af00 add r7, sp, #0 + uint32_t pllvco, pllsource, pllr, pllm; + uint32_t sysclockfreq; + + if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) + 8003b66: 4b2c ldr r3, [pc, #176] @ (8003c18 ) + 8003b68: 689b ldr r3, [r3, #8] + 8003b6a: f003 030c and.w r3, r3, #12 + 8003b6e: 2b04 cmp r3, #4 + 8003b70: d102 bne.n 8003b78 + { + /* HSI used as system clock source */ + sysclockfreq = HSI_VALUE; + 8003b72: 4b2a ldr r3, [pc, #168] @ (8003c1c ) + 8003b74: 613b str r3, [r7, #16] + 8003b76: e047 b.n 8003c08 + } + else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) + 8003b78: 4b27 ldr r3, [pc, #156] @ (8003c18 ) + 8003b7a: 689b ldr r3, [r3, #8] + 8003b7c: f003 030c and.w r3, r3, #12 + 8003b80: 2b08 cmp r3, #8 + 8003b82: d102 bne.n 8003b8a + { + /* HSE used as system clock source */ + sysclockfreq = HSE_VALUE; + 8003b84: 4b26 ldr r3, [pc, #152] @ (8003c20 ) + 8003b86: 613b str r3, [r7, #16] + 8003b88: e03e b.n 8003c08 + } + else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) + 8003b8a: 4b23 ldr r3, [pc, #140] @ (8003c18 ) + 8003b8c: 689b ldr r3, [r3, #8] + 8003b8e: f003 030c and.w r3, r3, #12 + 8003b92: 2b0c cmp r3, #12 + 8003b94: d136 bne.n 8003c04 + /* PLL used as system clock source */ + + /* PLL_VCO = ((HSE_VALUE or HSI_VALUE)/ PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); + 8003b96: 4b20 ldr r3, [pc, #128] @ (8003c18 ) + 8003b98: 68db ldr r3, [r3, #12] + 8003b9a: f003 0303 and.w r3, r3, #3 + 8003b9e: 60fb str r3, [r7, #12] + pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + 8003ba0: 4b1d ldr r3, [pc, #116] @ (8003c18 ) + 8003ba2: 68db ldr r3, [r3, #12] + 8003ba4: 091b lsrs r3, r3, #4 + 8003ba6: f003 030f and.w r3, r3, #15 + 8003baa: 3301 adds r3, #1 + 8003bac: 60bb str r3, [r7, #8] + + switch (pllsource) + 8003bae: 68fb ldr r3, [r7, #12] + 8003bb0: 2b03 cmp r3, #3 + 8003bb2: d10c bne.n 8003bce + { + case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + 8003bb4: 4a1a ldr r2, [pc, #104] @ (8003c20 ) + 8003bb6: 68bb ldr r3, [r7, #8] + 8003bb8: fbb2 f3f3 udiv r3, r2, r3 + 8003bbc: 4a16 ldr r2, [pc, #88] @ (8003c18 ) + 8003bbe: 68d2 ldr r2, [r2, #12] + 8003bc0: 0a12 lsrs r2, r2, #8 + 8003bc2: f002 027f and.w r2, r2, #127 @ 0x7f + 8003bc6: fb02 f303 mul.w r3, r2, r3 + 8003bca: 617b str r3, [r7, #20] + break; + 8003bcc: e00c b.n 8003be8 + + case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ + default: + pllvco = (HSI_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + 8003bce: 4a13 ldr r2, [pc, #76] @ (8003c1c ) + 8003bd0: 68bb ldr r3, [r7, #8] + 8003bd2: fbb2 f3f3 udiv r3, r2, r3 + 8003bd6: 4a10 ldr r2, [pc, #64] @ (8003c18 ) + 8003bd8: 68d2 ldr r2, [r2, #12] + 8003bda: 0a12 lsrs r2, r2, #8 + 8003bdc: f002 027f and.w r2, r2, #127 @ 0x7f + 8003be0: fb02 f303 mul.w r3, r2, r3 + 8003be4: 617b str r3, [r7, #20] + break; + 8003be6: bf00 nop + } + pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; + 8003be8: 4b0b ldr r3, [pc, #44] @ (8003c18 ) + 8003bea: 68db ldr r3, [r3, #12] + 8003bec: 0e5b lsrs r3, r3, #25 + 8003bee: f003 0303 and.w r3, r3, #3 + 8003bf2: 3301 adds r3, #1 + 8003bf4: 005b lsls r3, r3, #1 + 8003bf6: 607b str r3, [r7, #4] + sysclockfreq = pllvco/pllr; + 8003bf8: 697a ldr r2, [r7, #20] + 8003bfa: 687b ldr r3, [r7, #4] + 8003bfc: fbb2 f3f3 udiv r3, r2, r3 + 8003c00: 613b str r3, [r7, #16] + 8003c02: e001 b.n 8003c08 + } + else + { + sysclockfreq = 0U; + 8003c04: 2300 movs r3, #0 + 8003c06: 613b str r3, [r7, #16] + } + + return sysclockfreq; + 8003c08: 693b ldr r3, [r7, #16] +} + 8003c0a: 4618 mov r0, r3 + 8003c0c: 371c adds r7, #28 + 8003c0e: 46bd mov sp, r7 + 8003c10: f85d 7b04 ldr.w r7, [sp], #4 + 8003c14: 4770 bx lr + 8003c16: bf00 nop + 8003c18: 40021000 .word 0x40021000 + 8003c1c: 00f42400 .word 0x00f42400 + 8003c20: 007a1200 .word 0x007a1200 + +08003c24 : + * + * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. + * @retval HCLK frequency in Hz + */ +uint32_t HAL_RCC_GetHCLKFreq(void) +{ + 8003c24: b480 push {r7} + 8003c26: af00 add r7, sp, #0 + return SystemCoreClock; + 8003c28: 4b03 ldr r3, [pc, #12] @ (8003c38 ) + 8003c2a: 681b ldr r3, [r3, #0] +} + 8003c2c: 4618 mov r0, r3 + 8003c2e: 46bd mov sp, r7 + 8003c30: f85d 7b04 ldr.w r7, [sp], #4 + 8003c34: 4770 bx lr + 8003c36: bf00 nop + 8003c38: 20000000 .word 0x20000000 + +08003c3c : + * @note Each time PCLK1 changes, this function must be called to update the + * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. + * @retval PCLK1 frequency in Hz + */ +uint32_t HAL_RCC_GetPCLK1Freq(void) +{ + 8003c3c: b580 push {r7, lr} + 8003c3e: af00 add r7, sp, #0 + /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq() >> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos] & 0x1FU)); + 8003c40: f7ff fff0 bl 8003c24 + 8003c44: 4602 mov r2, r0 + 8003c46: 4b06 ldr r3, [pc, #24] @ (8003c60 ) + 8003c48: 689b ldr r3, [r3, #8] + 8003c4a: 0a1b lsrs r3, r3, #8 + 8003c4c: f003 0307 and.w r3, r3, #7 + 8003c50: 4904 ldr r1, [pc, #16] @ (8003c64 ) + 8003c52: 5ccb ldrb r3, [r1, r3] + 8003c54: f003 031f and.w r3, r3, #31 + 8003c58: fa22 f303 lsr.w r3, r2, r3 +} + 8003c5c: 4618 mov r0, r3 + 8003c5e: bd80 pop {r7, pc} + 8003c60: 40021000 .word 0x40021000 + 8003c64: 08006d44 .word 0x08006d44 + +08003c68 : + * @note Each time PCLK2 changes, this function must be called to update the + * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. + * @retval PCLK2 frequency in Hz + */ +uint32_t HAL_RCC_GetPCLK2Freq(void) +{ + 8003c68: b580 push {r7, lr} + 8003c6a: af00 add r7, sp, #0 + /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq()>> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos] & 0x1FU)); + 8003c6c: f7ff ffda bl 8003c24 + 8003c70: 4602 mov r2, r0 + 8003c72: 4b06 ldr r3, [pc, #24] @ (8003c8c ) + 8003c74: 689b ldr r3, [r3, #8] + 8003c76: 0adb lsrs r3, r3, #11 + 8003c78: f003 0307 and.w r3, r3, #7 + 8003c7c: 4904 ldr r1, [pc, #16] @ (8003c90 ) + 8003c7e: 5ccb ldrb r3, [r1, r3] + 8003c80: f003 031f and.w r3, r3, #31 + 8003c84: fa22 f303 lsr.w r3, r2, r3 +} + 8003c88: 4618 mov r0, r3 + 8003c8a: bd80 pop {r7, pc} + 8003c8c: 40021000 .word 0x40021000 + 8003c90: 08006d44 .word 0x08006d44 + +08003c94 : +/** + * @brief Compute SYSCLK frequency based on PLL SYSCLK source. + * @retval SYSCLK frequency + */ +static uint32_t RCC_GetSysClockFreqFromPLLSource(void) +{ + 8003c94: b480 push {r7} + 8003c96: b087 sub sp, #28 + 8003c98: af00 add r7, sp, #0 + uint32_t sysclockfreq; + + /* PLL_VCO = (HSE_VALUE or HSI_VALUE/ PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); + 8003c9a: 4b1e ldr r3, [pc, #120] @ (8003d14 ) + 8003c9c: 68db ldr r3, [r3, #12] + 8003c9e: f003 0303 and.w r3, r3, #3 + 8003ca2: 613b str r3, [r7, #16] + pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + 8003ca4: 4b1b ldr r3, [pc, #108] @ (8003d14 ) + 8003ca6: 68db ldr r3, [r3, #12] + 8003ca8: 091b lsrs r3, r3, #4 + 8003caa: f003 030f and.w r3, r3, #15 + 8003cae: 3301 adds r3, #1 + 8003cb0: 60fb str r3, [r7, #12] + + switch (pllsource) + 8003cb2: 693b ldr r3, [r7, #16] + 8003cb4: 2b03 cmp r3, #3 + 8003cb6: d10c bne.n 8003cd2 + { + case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + 8003cb8: 4a17 ldr r2, [pc, #92] @ (8003d18 ) + 8003cba: 68fb ldr r3, [r7, #12] + 8003cbc: fbb2 f3f3 udiv r3, r2, r3 + 8003cc0: 4a14 ldr r2, [pc, #80] @ (8003d14 ) + 8003cc2: 68d2 ldr r2, [r2, #12] + 8003cc4: 0a12 lsrs r2, r2, #8 + 8003cc6: f002 027f and.w r2, r2, #127 @ 0x7f + 8003cca: fb02 f303 mul.w r3, r2, r3 + 8003cce: 617b str r3, [r7, #20] + break; + 8003cd0: e00c b.n 8003cec + + case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ + default: + pllvco = (HSI_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + 8003cd2: 4a12 ldr r2, [pc, #72] @ (8003d1c ) + 8003cd4: 68fb ldr r3, [r7, #12] + 8003cd6: fbb2 f3f3 udiv r3, r2, r3 + 8003cda: 4a0e ldr r2, [pc, #56] @ (8003d14 ) + 8003cdc: 68d2 ldr r2, [r2, #12] + 8003cde: 0a12 lsrs r2, r2, #8 + 8003ce0: f002 027f and.w r2, r2, #127 @ 0x7f + 8003ce4: fb02 f303 mul.w r3, r2, r3 + 8003ce8: 617b str r3, [r7, #20] + break; + 8003cea: bf00 nop + } + + pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; + 8003cec: 4b09 ldr r3, [pc, #36] @ (8003d14 ) + 8003cee: 68db ldr r3, [r3, #12] + 8003cf0: 0e5b lsrs r3, r3, #25 + 8003cf2: f003 0303 and.w r3, r3, #3 + 8003cf6: 3301 adds r3, #1 + 8003cf8: 005b lsls r3, r3, #1 + 8003cfa: 60bb str r3, [r7, #8] + sysclockfreq = pllvco/pllr; + 8003cfc: 697a ldr r2, [r7, #20] + 8003cfe: 68bb ldr r3, [r7, #8] + 8003d00: fbb2 f3f3 udiv r3, r2, r3 + 8003d04: 607b str r3, [r7, #4] + + return sysclockfreq; + 8003d06: 687b ldr r3, [r7, #4] +} + 8003d08: 4618 mov r0, r3 + 8003d0a: 371c adds r7, #28 + 8003d0c: 46bd mov sp, r7 + 8003d0e: f85d 7b04 ldr.w r7, [sp], #4 + 8003d12: 4770 bx lr + 8003d14: 40021000 .word 0x40021000 + 8003d18: 007a1200 .word 0x007a1200 + 8003d1c: 00f42400 .word 0x00f42400 + +08003d20 : + * the RTC clock source: in this case the access to Backup domain is enabled. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + 8003d20: b580 push {r7, lr} + 8003d22: b086 sub sp, #24 + 8003d24: af00 add r7, sp, #0 + 8003d26: 6078 str r0, [r7, #4] + uint32_t tmpregister; + uint32_t tickstart; + HAL_StatusTypeDef ret = HAL_OK; /* Intermediate status */ + 8003d28: 2300 movs r3, #0 + 8003d2a: 74fb strb r3, [r7, #19] + HAL_StatusTypeDef status = HAL_OK; /* Final status */ + 8003d2c: 2300 movs r3, #0 + 8003d2e: 74bb strb r3, [r7, #18] + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); + + /*-------------------------- RTC clock source configuration ----------------------*/ + if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) + 8003d30: 687b ldr r3, [r7, #4] + 8003d32: 681b ldr r3, [r3, #0] + 8003d34: f403 2300 and.w r3, r3, #524288 @ 0x80000 + 8003d38: 2b00 cmp r3, #0 + 8003d3a: f000 8098 beq.w 8003e6e + { + FlagStatus pwrclkchanged = RESET; + 8003d3e: 2300 movs r3, #0 + 8003d40: 747b strb r3, [r7, #17] + + /* Check for RTC Parameters used to output RTCCLK */ + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + + /* Enable Power Clock */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 8003d42: 4b43 ldr r3, [pc, #268] @ (8003e50 ) + 8003d44: 6d9b ldr r3, [r3, #88] @ 0x58 + 8003d46: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8003d4a: 2b00 cmp r3, #0 + 8003d4c: d10d bne.n 8003d6a + { + __HAL_RCC_PWR_CLK_ENABLE(); + 8003d4e: 4b40 ldr r3, [pc, #256] @ (8003e50 ) + 8003d50: 6d9b ldr r3, [r3, #88] @ 0x58 + 8003d52: 4a3f ldr r2, [pc, #252] @ (8003e50 ) + 8003d54: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8003d58: 6593 str r3, [r2, #88] @ 0x58 + 8003d5a: 4b3d ldr r3, [pc, #244] @ (8003e50 ) + 8003d5c: 6d9b ldr r3, [r3, #88] @ 0x58 + 8003d5e: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8003d62: 60bb str r3, [r7, #8] + 8003d64: 68bb ldr r3, [r7, #8] + pwrclkchanged = SET; + 8003d66: 2301 movs r3, #1 + 8003d68: 747b strb r3, [r7, #17] + } + + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR1, PWR_CR1_DBP); + 8003d6a: 4b3a ldr r3, [pc, #232] @ (8003e54 ) + 8003d6c: 681b ldr r3, [r3, #0] + 8003d6e: 4a39 ldr r2, [pc, #228] @ (8003e54 ) + 8003d70: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8003d74: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 8003d76: f7fd fa4b bl 8001210 + 8003d7a: 60f8 str r0, [r7, #12] + + while((PWR->CR1 & PWR_CR1_DBP) == 0U) + 8003d7c: e009 b.n 8003d92 + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 8003d7e: f7fd fa47 bl 8001210 + 8003d82: 4602 mov r2, r0 + 8003d84: 68fb ldr r3, [r7, #12] + 8003d86: 1ad3 subs r3, r2, r3 + 8003d88: 2b02 cmp r3, #2 + 8003d8a: d902 bls.n 8003d92 + { + ret = HAL_TIMEOUT; + 8003d8c: 2303 movs r3, #3 + 8003d8e: 74fb strb r3, [r7, #19] + break; + 8003d90: e005 b.n 8003d9e + while((PWR->CR1 & PWR_CR1_DBP) == 0U) + 8003d92: 4b30 ldr r3, [pc, #192] @ (8003e54 ) + 8003d94: 681b ldr r3, [r3, #0] + 8003d96: f403 7380 and.w r3, r3, #256 @ 0x100 + 8003d9a: 2b00 cmp r3, #0 + 8003d9c: d0ef beq.n 8003d7e + } + } + + if(ret == HAL_OK) + 8003d9e: 7cfb ldrb r3, [r7, #19] + 8003da0: 2b00 cmp r3, #0 + 8003da2: d159 bne.n 8003e58 + { + /* Reset the Backup domain only if the RTC Clock source selection is modified from default */ + tmpregister = READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL); + 8003da4: 4b2a ldr r3, [pc, #168] @ (8003e50 ) + 8003da6: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003daa: f403 7340 and.w r3, r3, #768 @ 0x300 + 8003dae: 617b str r3, [r7, #20] + + if((tmpregister != RCC_RTCCLKSOURCE_NONE) && (tmpregister != PeriphClkInit->RTCClockSelection)) + 8003db0: 697b ldr r3, [r7, #20] + 8003db2: 2b00 cmp r3, #0 + 8003db4: d01e beq.n 8003df4 + 8003db6: 687b ldr r3, [r7, #4] + 8003db8: 6c1b ldr r3, [r3, #64] @ 0x40 + 8003dba: 697a ldr r2, [r7, #20] + 8003dbc: 429a cmp r2, r3 + 8003dbe: d019 beq.n 8003df4 + { + /* Store the content of BDCR register before the reset of Backup Domain */ + tmpregister = READ_BIT(RCC->BDCR, ~(RCC_BDCR_RTCSEL)); + 8003dc0: 4b23 ldr r3, [pc, #140] @ (8003e50 ) + 8003dc2: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003dc6: f423 7340 bic.w r3, r3, #768 @ 0x300 + 8003dca: 617b str r3, [r7, #20] + /* RTC Clock selection can be changed only if the Backup Domain is reset */ + __HAL_RCC_BACKUPRESET_FORCE(); + 8003dcc: 4b20 ldr r3, [pc, #128] @ (8003e50 ) + 8003dce: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003dd2: 4a1f ldr r2, [pc, #124] @ (8003e50 ) + 8003dd4: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8003dd8: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + __HAL_RCC_BACKUPRESET_RELEASE(); + 8003ddc: 4b1c ldr r3, [pc, #112] @ (8003e50 ) + 8003dde: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003de2: 4a1b ldr r2, [pc, #108] @ (8003e50 ) + 8003de4: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8003de8: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + /* Restore the Content of BDCR register */ + RCC->BDCR = tmpregister; + 8003dec: 4a18 ldr r2, [pc, #96] @ (8003e50 ) + 8003dee: 697b ldr r3, [r7, #20] + 8003df0: f8c2 3090 str.w r3, [r2, #144] @ 0x90 + } + + /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ + if (HAL_IS_BIT_SET(tmpregister, RCC_BDCR_LSEON)) + 8003df4: 697b ldr r3, [r7, #20] + 8003df6: f003 0301 and.w r3, r3, #1 + 8003dfa: 2b00 cmp r3, #0 + 8003dfc: d016 beq.n 8003e2c + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8003dfe: f7fd fa07 bl 8001210 + 8003e02: 60f8 str r0, [r7, #12] + + /* Wait till LSE is ready */ + while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + 8003e04: e00b b.n 8003e1e + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 8003e06: f7fd fa03 bl 8001210 + 8003e0a: 4602 mov r2, r0 + 8003e0c: 68fb ldr r3, [r7, #12] + 8003e0e: 1ad3 subs r3, r2, r3 + 8003e10: f241 3288 movw r2, #5000 @ 0x1388 + 8003e14: 4293 cmp r3, r2 + 8003e16: d902 bls.n 8003e1e + { + ret = HAL_TIMEOUT; + 8003e18: 2303 movs r3, #3 + 8003e1a: 74fb strb r3, [r7, #19] + break; + 8003e1c: e006 b.n 8003e2c + while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + 8003e1e: 4b0c ldr r3, [pc, #48] @ (8003e50 ) + 8003e20: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003e24: f003 0302 and.w r3, r3, #2 + 8003e28: 2b00 cmp r3, #0 + 8003e2a: d0ec beq.n 8003e06 + } + } + } + + if(ret == HAL_OK) + 8003e2c: 7cfb ldrb r3, [r7, #19] + 8003e2e: 2b00 cmp r3, #0 + 8003e30: d10b bne.n 8003e4a + { + /* Apply new RTC clock source selection */ + __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); + 8003e32: 4b07 ldr r3, [pc, #28] @ (8003e50 ) + 8003e34: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8003e38: f423 7240 bic.w r2, r3, #768 @ 0x300 + 8003e3c: 687b ldr r3, [r7, #4] + 8003e3e: 6c1b ldr r3, [r3, #64] @ 0x40 + 8003e40: 4903 ldr r1, [pc, #12] @ (8003e50 ) + 8003e42: 4313 orrs r3, r2 + 8003e44: f8c1 3090 str.w r3, [r1, #144] @ 0x90 + 8003e48: e008 b.n 8003e5c + } + else + { + /* set overall return value */ + status = ret; + 8003e4a: 7cfb ldrb r3, [r7, #19] + 8003e4c: 74bb strb r3, [r7, #18] + 8003e4e: e005 b.n 8003e5c + 8003e50: 40021000 .word 0x40021000 + 8003e54: 40007000 .word 0x40007000 + } + } + else + { + /* set overall return value */ + status = ret; + 8003e58: 7cfb ldrb r3, [r7, #19] + 8003e5a: 74bb strb r3, [r7, #18] + } + + /* Restore clock configuration if changed */ + if(pwrclkchanged == SET) + 8003e5c: 7c7b ldrb r3, [r7, #17] + 8003e5e: 2b01 cmp r3, #1 + 8003e60: d105 bne.n 8003e6e + { + __HAL_RCC_PWR_CLK_DISABLE(); + 8003e62: 4ba6 ldr r3, [pc, #664] @ (80040fc ) + 8003e64: 6d9b ldr r3, [r3, #88] @ 0x58 + 8003e66: 4aa5 ldr r2, [pc, #660] @ (80040fc ) + 8003e68: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8003e6c: 6593 str r3, [r2, #88] @ 0x58 + } + } + + /*-------------------------- USART1 clock source configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) + 8003e6e: 687b ldr r3, [r7, #4] + 8003e70: 681b ldr r3, [r3, #0] + 8003e72: f003 0301 and.w r3, r3, #1 + 8003e76: 2b00 cmp r3, #0 + 8003e78: d00a beq.n 8003e90 + { + /* Check the parameters */ + assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); + + /* Configure the USART1 clock source */ + __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); + 8003e7a: 4ba0 ldr r3, [pc, #640] @ (80040fc ) + 8003e7c: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003e80: f023 0203 bic.w r2, r3, #3 + 8003e84: 687b ldr r3, [r7, #4] + 8003e86: 685b ldr r3, [r3, #4] + 8003e88: 499c ldr r1, [pc, #624] @ (80040fc ) + 8003e8a: 4313 orrs r3, r2 + 8003e8c: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + + /*-------------------------- USART2 clock source configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) + 8003e90: 687b ldr r3, [r7, #4] + 8003e92: 681b ldr r3, [r3, #0] + 8003e94: f003 0302 and.w r3, r3, #2 + 8003e98: 2b00 cmp r3, #0 + 8003e9a: d00a beq.n 8003eb2 + { + /* Check the parameters */ + assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); + + /* Configure the USART2 clock source */ + __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); + 8003e9c: 4b97 ldr r3, [pc, #604] @ (80040fc ) + 8003e9e: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003ea2: f023 020c bic.w r2, r3, #12 + 8003ea6: 687b ldr r3, [r7, #4] + 8003ea8: 689b ldr r3, [r3, #8] + 8003eaa: 4994 ldr r1, [pc, #592] @ (80040fc ) + 8003eac: 4313 orrs r3, r2 + 8003eae: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + +#if defined(USART3) + + /*-------------------------- USART3 clock source configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) + 8003eb2: 687b ldr r3, [r7, #4] + 8003eb4: 681b ldr r3, [r3, #0] + 8003eb6: f003 0304 and.w r3, r3, #4 + 8003eba: 2b00 cmp r3, #0 + 8003ebc: d00a beq.n 8003ed4 + { + /* Check the parameters */ + assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); + + /* Configure the USART3 clock source */ + __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); + 8003ebe: 4b8f ldr r3, [pc, #572] @ (80040fc ) + 8003ec0: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003ec4: f023 0230 bic.w r2, r3, #48 @ 0x30 + 8003ec8: 687b ldr r3, [r7, #4] + 8003eca: 68db ldr r3, [r3, #12] + 8003ecc: 498b ldr r1, [pc, #556] @ (80040fc ) + 8003ece: 4313 orrs r3, r2 + 8003ed0: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + +#endif /* USART3 */ + +#if defined(UART4) + /*-------------------------- UART4 clock source configuration --------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) + 8003ed4: 687b ldr r3, [r7, #4] + 8003ed6: 681b ldr r3, [r3, #0] + 8003ed8: f003 0308 and.w r3, r3, #8 + 8003edc: 2b00 cmp r3, #0 + 8003ede: d00a beq.n 8003ef6 + { + /* Check the parameters */ + assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); + + /* Configure the UART4 clock source */ + __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); + 8003ee0: 4b86 ldr r3, [pc, #536] @ (80040fc ) + 8003ee2: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003ee6: f023 02c0 bic.w r2, r3, #192 @ 0xc0 + 8003eea: 687b ldr r3, [r7, #4] + 8003eec: 691b ldr r3, [r3, #16] + 8003eee: 4983 ldr r1, [pc, #524] @ (80040fc ) + 8003ef0: 4313 orrs r3, r2 + 8003ef2: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + +#endif /* UART5 */ + + /*-------------------------- LPUART1 clock source configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) + 8003ef6: 687b ldr r3, [r7, #4] + 8003ef8: 681b ldr r3, [r3, #0] + 8003efa: f003 0320 and.w r3, r3, #32 + 8003efe: 2b00 cmp r3, #0 + 8003f00: d00a beq.n 8003f18 + { + /* Check the parameters */ + assert_param(IS_RCC_LPUART1CLKSOURCE(PeriphClkInit->Lpuart1ClockSelection)); + + /* Configure the LPUAR1 clock source */ + __HAL_RCC_LPUART1_CONFIG(PeriphClkInit->Lpuart1ClockSelection); + 8003f02: 4b7e ldr r3, [pc, #504] @ (80040fc ) + 8003f04: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003f08: f423 6240 bic.w r2, r3, #3072 @ 0xc00 + 8003f0c: 687b ldr r3, [r7, #4] + 8003f0e: 695b ldr r3, [r3, #20] + 8003f10: 497a ldr r1, [pc, #488] @ (80040fc ) + 8003f12: 4313 orrs r3, r2 + 8003f14: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + + /*-------------------------- I2C1 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) + 8003f18: 687b ldr r3, [r7, #4] + 8003f1a: 681b ldr r3, [r3, #0] + 8003f1c: f003 0340 and.w r3, r3, #64 @ 0x40 + 8003f20: 2b00 cmp r3, #0 + 8003f22: d00a beq.n 8003f3a + { + /* Check the parameters */ + assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); + + /* Configure the I2C1 clock source */ + __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); + 8003f24: 4b75 ldr r3, [pc, #468] @ (80040fc ) + 8003f26: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003f2a: f423 5240 bic.w r2, r3, #12288 @ 0x3000 + 8003f2e: 687b ldr r3, [r7, #4] + 8003f30: 699b ldr r3, [r3, #24] + 8003f32: 4972 ldr r1, [pc, #456] @ (80040fc ) + 8003f34: 4313 orrs r3, r2 + 8003f36: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + + /*-------------------------- I2C2 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) + 8003f3a: 687b ldr r3, [r7, #4] + 8003f3c: 681b ldr r3, [r3, #0] + 8003f3e: f003 0380 and.w r3, r3, #128 @ 0x80 + 8003f42: 2b00 cmp r3, #0 + 8003f44: d00a beq.n 8003f5c + { + /* Check the parameters */ + assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); + + /* Configure the I2C2 clock source */ + __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); + 8003f46: 4b6d ldr r3, [pc, #436] @ (80040fc ) + 8003f48: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003f4c: f423 4240 bic.w r2, r3, #49152 @ 0xc000 + 8003f50: 687b ldr r3, [r7, #4] + 8003f52: 69db ldr r3, [r3, #28] + 8003f54: 4969 ldr r1, [pc, #420] @ (80040fc ) + 8003f56: 4313 orrs r3, r2 + 8003f58: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } +#if defined(I2C3) + + /*-------------------------- I2C3 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) + 8003f5c: 687b ldr r3, [r7, #4] + 8003f5e: 681b ldr r3, [r3, #0] + 8003f60: f403 7380 and.w r3, r3, #256 @ 0x100 + 8003f64: 2b00 cmp r3, #0 + 8003f66: d00a beq.n 8003f7e + { + /* Check the parameters */ + assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); + + /* Configure the I2C3 clock source */ + __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); + 8003f68: 4b64 ldr r3, [pc, #400] @ (80040fc ) + 8003f6a: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003f6e: f423 3240 bic.w r2, r3, #196608 @ 0x30000 + 8003f72: 687b ldr r3, [r7, #4] + 8003f74: 6a1b ldr r3, [r3, #32] + 8003f76: 4961 ldr r1, [pc, #388] @ (80040fc ) + 8003f78: 4313 orrs r3, r2 + 8003f7a: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + +#endif /* I2C4 */ + + /*-------------------------- LPTIM1 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) + 8003f7e: 687b ldr r3, [r7, #4] + 8003f80: 681b ldr r3, [r3, #0] + 8003f82: f403 7300 and.w r3, r3, #512 @ 0x200 + 8003f86: 2b00 cmp r3, #0 + 8003f88: d00a beq.n 8003fa0 + { + /* Check the parameters */ + assert_param(IS_RCC_LPTIM1CLKSOURCE(PeriphClkInit->Lptim1ClockSelection)); + + /* Configure the LPTIM1 clock source */ + __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); + 8003f8a: 4b5c ldr r3, [pc, #368] @ (80040fc ) + 8003f8c: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003f90: f423 2240 bic.w r2, r3, #786432 @ 0xc0000 + 8003f94: 687b ldr r3, [r7, #4] + 8003f96: 6a5b ldr r3, [r3, #36] @ 0x24 + 8003f98: 4958 ldr r1, [pc, #352] @ (80040fc ) + 8003f9a: 4313 orrs r3, r2 + 8003f9c: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + } + +#if defined(SAI1) + /*-------------------------- SAI1 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) + 8003fa0: 687b ldr r3, [r7, #4] + 8003fa2: 681b ldr r3, [r3, #0] + 8003fa4: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8003fa8: 2b00 cmp r3, #0 + 8003faa: d015 beq.n 8003fd8 + { + /* Check the parameters */ + assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); + + /* Configure the SAI1 interface clock source */ + __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); + 8003fac: 4b53 ldr r3, [pc, #332] @ (80040fc ) + 8003fae: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003fb2: f423 1240 bic.w r2, r3, #3145728 @ 0x300000 + 8003fb6: 687b ldr r3, [r7, #4] + 8003fb8: 6a9b ldr r3, [r3, #40] @ 0x28 + 8003fba: 4950 ldr r1, [pc, #320] @ (80040fc ) + 8003fbc: 4313 orrs r3, r2 + 8003fbe: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + + if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLL) + 8003fc2: 687b ldr r3, [r7, #4] + 8003fc4: 6a9b ldr r3, [r3, #40] @ 0x28 + 8003fc6: f5b3 1f80 cmp.w r3, #1048576 @ 0x100000 + 8003fca: d105 bne.n 8003fd8 + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 8003fcc: 4b4b ldr r3, [pc, #300] @ (80040fc ) + 8003fce: 68db ldr r3, [r3, #12] + 8003fd0: 4a4a ldr r2, [pc, #296] @ (80040fc ) + 8003fd2: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 + 8003fd6: 60d3 str r3, [r2, #12] + +#endif /* SAI1 */ + +#if defined(SPI_I2S_SUPPORT) + /*-------------------------- I2S clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) + 8003fd8: 687b ldr r3, [r7, #4] + 8003fda: 681b ldr r3, [r3, #0] + 8003fdc: f403 6300 and.w r3, r3, #2048 @ 0x800 + 8003fe0: 2b00 cmp r3, #0 + 8003fe2: d015 beq.n 8004010 + { + /* Check the parameters */ + assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); + + /* Configure the I2S interface clock source */ + __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); + 8003fe4: 4b45 ldr r3, [pc, #276] @ (80040fc ) + 8003fe6: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8003fea: f423 0240 bic.w r2, r3, #12582912 @ 0xc00000 + 8003fee: 687b ldr r3, [r7, #4] + 8003ff0: 6adb ldr r3, [r3, #44] @ 0x2c + 8003ff2: 4942 ldr r1, [pc, #264] @ (80040fc ) + 8003ff4: 4313 orrs r3, r2 + 8003ff6: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + + if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLL) + 8003ffa: 687b ldr r3, [r7, #4] + 8003ffc: 6adb ldr r3, [r3, #44] @ 0x2c + 8003ffe: f5b3 0f80 cmp.w r3, #4194304 @ 0x400000 + 8004002: d105 bne.n 8004010 + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 8004004: 4b3d ldr r3, [pc, #244] @ (80040fc ) + 8004006: 68db ldr r3, [r3, #12] + 8004008: 4a3c ldr r2, [pc, #240] @ (80040fc ) + 800400a: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 + 800400e: 60d3 str r3, [r2, #12] + +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) + /*-------------------------- FDCAN clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) + 8004010: 687b ldr r3, [r7, #4] + 8004012: 681b ldr r3, [r3, #0] + 8004014: f403 5380 and.w r3, r3, #4096 @ 0x1000 + 8004018: 2b00 cmp r3, #0 + 800401a: d015 beq.n 8004048 + { + /* Check the parameters */ + assert_param(IS_RCC_FDCANCLKSOURCE(PeriphClkInit->FdcanClockSelection)); + + /* Configure the FDCAN interface clock source */ + __HAL_RCC_FDCAN_CONFIG(PeriphClkInit->FdcanClockSelection); + 800401c: 4b37 ldr r3, [pc, #220] @ (80040fc ) + 800401e: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8004022: f023 7240 bic.w r2, r3, #50331648 @ 0x3000000 + 8004026: 687b ldr r3, [r7, #4] + 8004028: 6b1b ldr r3, [r3, #48] @ 0x30 + 800402a: 4934 ldr r1, [pc, #208] @ (80040fc ) + 800402c: 4313 orrs r3, r2 + 800402e: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + + if(PeriphClkInit->FdcanClockSelection == RCC_FDCANCLKSOURCE_PLL) + 8004032: 687b ldr r3, [r7, #4] + 8004034: 6b1b ldr r3, [r3, #48] @ 0x30 + 8004036: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 800403a: d105 bne.n 8004048 + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 800403c: 4b2f ldr r3, [pc, #188] @ (80040fc ) + 800403e: 68db ldr r3, [r3, #12] + 8004040: 4a2e ldr r2, [pc, #184] @ (80040fc ) + 8004042: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 + 8004046: 60d3 str r3, [r2, #12] +#endif /* FDCAN1 */ + +#if defined(USB) + + /*-------------------------- USB clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == (RCC_PERIPHCLK_USB)) + 8004048: 687b ldr r3, [r7, #4] + 800404a: 681b ldr r3, [r3, #0] + 800404c: f403 5300 and.w r3, r3, #8192 @ 0x2000 + 8004050: 2b00 cmp r3, #0 + 8004052: d015 beq.n 8004080 + { + assert_param(IS_RCC_USBCLKSOURCE(PeriphClkInit->UsbClockSelection)); + __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection); + 8004054: 4b29 ldr r3, [pc, #164] @ (80040fc ) + 8004056: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 800405a: f023 6240 bic.w r2, r3, #201326592 @ 0xc000000 + 800405e: 687b ldr r3, [r7, #4] + 8004060: 6b5b ldr r3, [r3, #52] @ 0x34 + 8004062: 4926 ldr r1, [pc, #152] @ (80040fc ) + 8004064: 4313 orrs r3, r2 + 8004066: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + + if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLL) + 800406a: 687b ldr r3, [r7, #4] + 800406c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800406e: f1b3 6f00 cmp.w r3, #134217728 @ 0x8000000 + 8004072: d105 bne.n 8004080 + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 8004074: 4b21 ldr r3, [pc, #132] @ (80040fc ) + 8004076: 68db ldr r3, [r3, #12] + 8004078: 4a20 ldr r2, [pc, #128] @ (80040fc ) + 800407a: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 + 800407e: 60d3 str r3, [r2, #12] + } + +#endif /* USB */ + + /*-------------------------- RNG clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RNG) == (RCC_PERIPHCLK_RNG)) + 8004080: 687b ldr r3, [r7, #4] + 8004082: 681b ldr r3, [r3, #0] + 8004084: f403 4380 and.w r3, r3, #16384 @ 0x4000 + 8004088: 2b00 cmp r3, #0 + 800408a: d015 beq.n 80040b8 + { + assert_param(IS_RCC_RNGCLKSOURCE(PeriphClkInit->RngClockSelection)); + __HAL_RCC_RNG_CONFIG(PeriphClkInit->RngClockSelection); + 800408c: 4b1b ldr r3, [pc, #108] @ (80040fc ) + 800408e: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8004092: f023 6240 bic.w r2, r3, #201326592 @ 0xc000000 + 8004096: 687b ldr r3, [r7, #4] + 8004098: 6b9b ldr r3, [r3, #56] @ 0x38 + 800409a: 4918 ldr r1, [pc, #96] @ (80040fc ) + 800409c: 4313 orrs r3, r2 + 800409e: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + + if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLL) + 80040a2: 687b ldr r3, [r7, #4] + 80040a4: 6b9b ldr r3, [r3, #56] @ 0x38 + 80040a6: f1b3 6f00 cmp.w r3, #134217728 @ 0x8000000 + 80040aa: d105 bne.n 80040b8 + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 80040ac: 4b13 ldr r3, [pc, #76] @ (80040fc ) + 80040ae: 68db ldr r3, [r3, #12] + 80040b0: 4a12 ldr r2, [pc, #72] @ (80040fc ) + 80040b2: f443 1380 orr.w r3, r3, #1048576 @ 0x100000 + 80040b6: 60d3 str r3, [r2, #12] + } + } + + /*-------------------------- ADC12 clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) + 80040b8: 687b ldr r3, [r7, #4] + 80040ba: 681b ldr r3, [r3, #0] + 80040bc: f403 4300 and.w r3, r3, #32768 @ 0x8000 + 80040c0: 2b00 cmp r3, #0 + 80040c2: d015 beq.n 80040f0 + { + /* Check the parameters */ + assert_param(IS_RCC_ADC12CLKSOURCE(PeriphClkInit->Adc12ClockSelection)); + + /* Configure the ADC12 interface clock source */ + __HAL_RCC_ADC12_CONFIG(PeriphClkInit->Adc12ClockSelection); + 80040c4: 4b0d ldr r3, [pc, #52] @ (80040fc ) + 80040c6: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 80040ca: f023 5240 bic.w r2, r3, #805306368 @ 0x30000000 + 80040ce: 687b ldr r3, [r7, #4] + 80040d0: 6bdb ldr r3, [r3, #60] @ 0x3c + 80040d2: 490a ldr r1, [pc, #40] @ (80040fc ) + 80040d4: 4313 orrs r3, r2 + 80040d6: f8c1 3088 str.w r3, [r1, #136] @ 0x88 + + if(PeriphClkInit->Adc12ClockSelection == RCC_ADC12CLKSOURCE_PLL) + 80040da: 687b ldr r3, [r7, #4] + 80040dc: 6bdb ldr r3, [r3, #60] @ 0x3c + 80040de: f1b3 5f80 cmp.w r3, #268435456 @ 0x10000000 + 80040e2: d105 bne.n 80040f0 + { + /* Enable PLLADCCLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK); + 80040e4: 4b05 ldr r3, [pc, #20] @ (80040fc ) + 80040e6: 68db ldr r3, [r3, #12] + 80040e8: 4a04 ldr r2, [pc, #16] @ (80040fc ) + 80040ea: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 80040ee: 60d3 str r3, [r2, #12] + } + } + +#endif /* QUADSPI */ + + return status; + 80040f0: 7cbb ldrb r3, [r7, #18] +} + 80040f2: 4618 mov r0, r3 + 80040f4: 3718 adds r7, #24 + 80040f6: 46bd mov sp, r7 + 80040f8: bd80 pop {r7, pc} + 80040fa: bf00 nop + 80040fc: 40021000 .word 0x40021000 + +08004100 : + * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) +{ + 8004100: b580 push {r7, lr} + 8004102: b082 sub sp, #8 + 8004104: af00 add r7, sp, #0 + 8004106: 6078 str r0, [r7, #4] + /* Check the TIM handle allocation */ + if (htim == NULL) + 8004108: 687b ldr r3, [r7, #4] + 800410a: 2b00 cmp r3, #0 + 800410c: d101 bne.n 8004112 + { + return HAL_ERROR; + 800410e: 2301 movs r3, #1 + 8004110: e049 b.n 80041a6 + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + 8004112: 687b ldr r3, [r7, #4] + 8004114: f893 303d ldrb.w r3, [r3, #61] @ 0x3d + 8004118: b2db uxtb r3, r3 + 800411a: 2b00 cmp r3, #0 + 800411c: d106 bne.n 800412c + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + 800411e: 687b ldr r3, [r7, #4] + 8004120: 2200 movs r2, #0 + 8004122: f883 203c strb.w r2, [r3, #60] @ 0x3c + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->Base_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + HAL_TIM_Base_MspInit(htim); + 8004126: 6878 ldr r0, [r7, #4] + 8004128: f7fc ff0a bl 8000f40 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + 800412c: 687b ldr r3, [r7, #4] + 800412e: 2202 movs r2, #2 + 8004130: f883 203d strb.w r2, [r3, #61] @ 0x3d + + /* Set the Time Base configuration */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + 8004134: 687b ldr r3, [r7, #4] + 8004136: 681a ldr r2, [r3, #0] + 8004138: 687b ldr r3, [r7, #4] + 800413a: 3304 adds r3, #4 + 800413c: 4619 mov r1, r3 + 800413e: 4610 mov r0, r2 + 8004140: f000 fab0 bl 80046a4 + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + 8004144: 687b ldr r3, [r7, #4] + 8004146: 2201 movs r2, #1 + 8004148: f883 2048 strb.w r2, [r3, #72] @ 0x48 + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 800414c: 687b ldr r3, [r7, #4] + 800414e: 2201 movs r2, #1 + 8004150: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8004154: 687b ldr r3, [r7, #4] + 8004156: 2201 movs r2, #1 + 8004158: f883 203f strb.w r2, [r3, #63] @ 0x3f + 800415c: 687b ldr r3, [r7, #4] + 800415e: 2201 movs r2, #1 + 8004160: f883 2040 strb.w r2, [r3, #64] @ 0x40 + 8004164: 687b ldr r3, [r7, #4] + 8004166: 2201 movs r2, #1 + 8004168: f883 2041 strb.w r2, [r3, #65] @ 0x41 + 800416c: 687b ldr r3, [r7, #4] + 800416e: 2201 movs r2, #1 + 8004170: f883 2042 strb.w r2, [r3, #66] @ 0x42 + 8004174: 687b ldr r3, [r7, #4] + 8004176: 2201 movs r2, #1 + 8004178: f883 2043 strb.w r2, [r3, #67] @ 0x43 + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 800417c: 687b ldr r3, [r7, #4] + 800417e: 2201 movs r2, #1 + 8004180: f883 2044 strb.w r2, [r3, #68] @ 0x44 + 8004184: 687b ldr r3, [r7, #4] + 8004186: 2201 movs r2, #1 + 8004188: f883 2045 strb.w r2, [r3, #69] @ 0x45 + 800418c: 687b ldr r3, [r7, #4] + 800418e: 2201 movs r2, #1 + 8004190: f883 2046 strb.w r2, [r3, #70] @ 0x46 + 8004194: 687b ldr r3, [r7, #4] + 8004196: 2201 movs r2, #1 + 8004198: f883 2047 strb.w r2, [r3, #71] @ 0x47 + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + 800419c: 687b ldr r3, [r7, #4] + 800419e: 2201 movs r2, #1 + 80041a0: f883 203d strb.w r2, [r3, #61] @ 0x3d + + return HAL_OK; + 80041a4: 2300 movs r3, #0 +} + 80041a6: 4618 mov r0, r3 + 80041a8: 3708 adds r7, #8 + 80041aa: 46bd mov sp, r7 + 80041ac: bd80 pop {r7, pc} + +080041ae : + * @brief This function handles TIM interrupts requests. + * @param htim TIM handle + * @retval None + */ +void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) +{ + 80041ae: b580 push {r7, lr} + 80041b0: b084 sub sp, #16 + 80041b2: af00 add r7, sp, #0 + 80041b4: 6078 str r0, [r7, #4] + uint32_t itsource = htim->Instance->DIER; + 80041b6: 687b ldr r3, [r7, #4] + 80041b8: 681b ldr r3, [r3, #0] + 80041ba: 68db ldr r3, [r3, #12] + 80041bc: 60fb str r3, [r7, #12] + uint32_t itflag = htim->Instance->SR; + 80041be: 687b ldr r3, [r7, #4] + 80041c0: 681b ldr r3, [r3, #0] + 80041c2: 691b ldr r3, [r3, #16] + 80041c4: 60bb str r3, [r7, #8] + + /* Capture compare 1 event */ + if ((itflag & (TIM_FLAG_CC1)) == (TIM_FLAG_CC1)) + 80041c6: 68bb ldr r3, [r7, #8] + 80041c8: f003 0302 and.w r3, r3, #2 + 80041cc: 2b00 cmp r3, #0 + 80041ce: d020 beq.n 8004212 + { + if ((itsource & (TIM_IT_CC1)) == (TIM_IT_CC1)) + 80041d0: 68fb ldr r3, [r7, #12] + 80041d2: f003 0302 and.w r3, r3, #2 + 80041d6: 2b00 cmp r3, #0 + 80041d8: d01b beq.n 8004212 + { + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC1); + 80041da: 687b ldr r3, [r7, #4] + 80041dc: 681b ldr r3, [r3, #0] + 80041de: f06f 0202 mvn.w r2, #2 + 80041e2: 611a str r2, [r3, #16] + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + 80041e4: 687b ldr r3, [r7, #4] + 80041e6: 2201 movs r2, #1 + 80041e8: 771a strb r2, [r3, #28] + + /* Input capture event */ + if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) + 80041ea: 687b ldr r3, [r7, #4] + 80041ec: 681b ldr r3, [r3, #0] + 80041ee: 699b ldr r3, [r3, #24] + 80041f0: f003 0303 and.w r3, r3, #3 + 80041f4: 2b00 cmp r3, #0 + 80041f6: d003 beq.n 8004200 + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); + 80041f8: 6878 ldr r0, [r7, #4] + 80041fa: f000 fa35 bl 8004668 + 80041fe: e005 b.n 800420c + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + 8004200: 6878 ldr r0, [r7, #4] + 8004202: f000 fa27 bl 8004654 + HAL_TIM_PWM_PulseFinishedCallback(htim); + 8004206: 6878 ldr r0, [r7, #4] + 8004208: f000 fa38 bl 800467c +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + 800420c: 687b ldr r3, [r7, #4] + 800420e: 2200 movs r2, #0 + 8004210: 771a strb r2, [r3, #28] + } + } + } + /* Capture compare 2 event */ + if ((itflag & (TIM_FLAG_CC2)) == (TIM_FLAG_CC2)) + 8004212: 68bb ldr r3, [r7, #8] + 8004214: f003 0304 and.w r3, r3, #4 + 8004218: 2b00 cmp r3, #0 + 800421a: d020 beq.n 800425e + { + if ((itsource & (TIM_IT_CC2)) == (TIM_IT_CC2)) + 800421c: 68fb ldr r3, [r7, #12] + 800421e: f003 0304 and.w r3, r3, #4 + 8004222: 2b00 cmp r3, #0 + 8004224: d01b beq.n 800425e + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC2); + 8004226: 687b ldr r3, [r7, #4] + 8004228: 681b ldr r3, [r3, #0] + 800422a: f06f 0204 mvn.w r2, #4 + 800422e: 611a str r2, [r3, #16] + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + 8004230: 687b ldr r3, [r7, #4] + 8004232: 2202 movs r2, #2 + 8004234: 771a strb r2, [r3, #28] + /* Input capture event */ + if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) + 8004236: 687b ldr r3, [r7, #4] + 8004238: 681b ldr r3, [r3, #0] + 800423a: 699b ldr r3, [r3, #24] + 800423c: f403 7340 and.w r3, r3, #768 @ 0x300 + 8004240: 2b00 cmp r3, #0 + 8004242: d003 beq.n 800424c + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); + 8004244: 6878 ldr r0, [r7, #4] + 8004246: f000 fa0f bl 8004668 + 800424a: e005 b.n 8004258 + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + 800424c: 6878 ldr r0, [r7, #4] + 800424e: f000 fa01 bl 8004654 + HAL_TIM_PWM_PulseFinishedCallback(htim); + 8004252: 6878 ldr r0, [r7, #4] + 8004254: f000 fa12 bl 800467c +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + 8004258: 687b ldr r3, [r7, #4] + 800425a: 2200 movs r2, #0 + 800425c: 771a strb r2, [r3, #28] + } + } + /* Capture compare 3 event */ + if ((itflag & (TIM_FLAG_CC3)) == (TIM_FLAG_CC3)) + 800425e: 68bb ldr r3, [r7, #8] + 8004260: f003 0308 and.w r3, r3, #8 + 8004264: 2b00 cmp r3, #0 + 8004266: d020 beq.n 80042aa + { + if ((itsource & (TIM_IT_CC3)) == (TIM_IT_CC3)) + 8004268: 68fb ldr r3, [r7, #12] + 800426a: f003 0308 and.w r3, r3, #8 + 800426e: 2b00 cmp r3, #0 + 8004270: d01b beq.n 80042aa + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC3); + 8004272: 687b ldr r3, [r7, #4] + 8004274: 681b ldr r3, [r3, #0] + 8004276: f06f 0208 mvn.w r2, #8 + 800427a: 611a str r2, [r3, #16] + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + 800427c: 687b ldr r3, [r7, #4] + 800427e: 2204 movs r2, #4 + 8004280: 771a strb r2, [r3, #28] + /* Input capture event */ + if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) + 8004282: 687b ldr r3, [r7, #4] + 8004284: 681b ldr r3, [r3, #0] + 8004286: 69db ldr r3, [r3, #28] + 8004288: f003 0303 and.w r3, r3, #3 + 800428c: 2b00 cmp r3, #0 + 800428e: d003 beq.n 8004298 + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); + 8004290: 6878 ldr r0, [r7, #4] + 8004292: f000 f9e9 bl 8004668 + 8004296: e005 b.n 80042a4 + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + 8004298: 6878 ldr r0, [r7, #4] + 800429a: f000 f9db bl 8004654 + HAL_TIM_PWM_PulseFinishedCallback(htim); + 800429e: 6878 ldr r0, [r7, #4] + 80042a0: f000 f9ec bl 800467c +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + 80042a4: 687b ldr r3, [r7, #4] + 80042a6: 2200 movs r2, #0 + 80042a8: 771a strb r2, [r3, #28] + } + } + /* Capture compare 4 event */ + if ((itflag & (TIM_FLAG_CC4)) == (TIM_FLAG_CC4)) + 80042aa: 68bb ldr r3, [r7, #8] + 80042ac: f003 0310 and.w r3, r3, #16 + 80042b0: 2b00 cmp r3, #0 + 80042b2: d020 beq.n 80042f6 + { + if ((itsource & (TIM_IT_CC4)) == (TIM_IT_CC4)) + 80042b4: 68fb ldr r3, [r7, #12] + 80042b6: f003 0310 and.w r3, r3, #16 + 80042ba: 2b00 cmp r3, #0 + 80042bc: d01b beq.n 80042f6 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC4); + 80042be: 687b ldr r3, [r7, #4] + 80042c0: 681b ldr r3, [r3, #0] + 80042c2: f06f 0210 mvn.w r2, #16 + 80042c6: 611a str r2, [r3, #16] + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + 80042c8: 687b ldr r3, [r7, #4] + 80042ca: 2208 movs r2, #8 + 80042cc: 771a strb r2, [r3, #28] + /* Input capture event */ + if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) + 80042ce: 687b ldr r3, [r7, #4] + 80042d0: 681b ldr r3, [r3, #0] + 80042d2: 69db ldr r3, [r3, #28] + 80042d4: f403 7340 and.w r3, r3, #768 @ 0x300 + 80042d8: 2b00 cmp r3, #0 + 80042da: d003 beq.n 80042e4 + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); + 80042dc: 6878 ldr r0, [r7, #4] + 80042de: f000 f9c3 bl 8004668 + 80042e2: e005 b.n 80042f0 + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + 80042e4: 6878 ldr r0, [r7, #4] + 80042e6: f000 f9b5 bl 8004654 + HAL_TIM_PWM_PulseFinishedCallback(htim); + 80042ea: 6878 ldr r0, [r7, #4] + 80042ec: f000 f9c6 bl 800467c +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + 80042f0: 687b ldr r3, [r7, #4] + 80042f2: 2200 movs r2, #0 + 80042f4: 771a strb r2, [r3, #28] + } + } + /* TIM Update event */ + if ((itflag & (TIM_FLAG_UPDATE)) == (TIM_FLAG_UPDATE)) + 80042f6: 68bb ldr r3, [r7, #8] + 80042f8: f003 0301 and.w r3, r3, #1 + 80042fc: 2b00 cmp r3, #0 + 80042fe: d00c beq.n 800431a + { + if ((itsource & (TIM_IT_UPDATE)) == (TIM_IT_UPDATE)) + 8004300: 68fb ldr r3, [r7, #12] + 8004302: f003 0301 and.w r3, r3, #1 + 8004306: 2b00 cmp r3, #0 + 8004308: d007 beq.n 800431a + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_UPDATE); + 800430a: 687b ldr r3, [r7, #4] + 800430c: 681b ldr r3, [r3, #0] + 800430e: f06f 0201 mvn.w r2, #1 + 8004312: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PeriodElapsedCallback(htim); +#else + HAL_TIM_PeriodElapsedCallback(htim); + 8004314: 6878 ldr r0, [r7, #4] + 8004316: f000 f993 bl 8004640 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Break input event */ + if (((itflag & (TIM_FLAG_BREAK)) == (TIM_FLAG_BREAK)) || \ + 800431a: 68bb ldr r3, [r7, #8] + 800431c: f003 0380 and.w r3, r3, #128 @ 0x80 + 8004320: 2b00 cmp r3, #0 + 8004322: d104 bne.n 800432e + ((itflag & (TIM_FLAG_SYSTEM_BREAK)) == (TIM_FLAG_SYSTEM_BREAK))) + 8004324: 68bb ldr r3, [r7, #8] + 8004326: f403 5300 and.w r3, r3, #8192 @ 0x2000 + if (((itflag & (TIM_FLAG_BREAK)) == (TIM_FLAG_BREAK)) || \ + 800432a: 2b00 cmp r3, #0 + 800432c: d00c beq.n 8004348 + { + if ((itsource & (TIM_IT_BREAK)) == (TIM_IT_BREAK)) + 800432e: 68fb ldr r3, [r7, #12] + 8004330: f003 0380 and.w r3, r3, #128 @ 0x80 + 8004334: 2b00 cmp r3, #0 + 8004336: d007 beq.n 8004348 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK | TIM_FLAG_SYSTEM_BREAK); + 8004338: 687b ldr r3, [r7, #4] + 800433a: 681b ldr r3, [r3, #0] + 800433c: f46f 5202 mvn.w r2, #8320 @ 0x2080 + 8004340: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->BreakCallback(htim); +#else + HAL_TIMEx_BreakCallback(htim); + 8004342: 6878 ldr r0, [r7, #4] + 8004344: f000 fb72 bl 8004a2c +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Break2 input event */ + if ((itflag & (TIM_FLAG_BREAK2)) == (TIM_FLAG_BREAK2)) + 8004348: 68bb ldr r3, [r7, #8] + 800434a: f403 7380 and.w r3, r3, #256 @ 0x100 + 800434e: 2b00 cmp r3, #0 + 8004350: d00c beq.n 800436c + { + if ((itsource & (TIM_IT_BREAK)) == (TIM_IT_BREAK)) + 8004352: 68fb ldr r3, [r7, #12] + 8004354: f003 0380 and.w r3, r3, #128 @ 0x80 + 8004358: 2b00 cmp r3, #0 + 800435a: d007 beq.n 800436c + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2); + 800435c: 687b ldr r3, [r7, #4] + 800435e: 681b ldr r3, [r3, #0] + 8004360: f46f 7280 mvn.w r2, #256 @ 0x100 + 8004364: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->Break2Callback(htim); +#else + HAL_TIMEx_Break2Callback(htim); + 8004366: 6878 ldr r0, [r7, #4] + 8004368: f000 fb6a bl 8004a40 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Trigger detection event */ + if ((itflag & (TIM_FLAG_TRIGGER)) == (TIM_FLAG_TRIGGER)) + 800436c: 68bb ldr r3, [r7, #8] + 800436e: f003 0340 and.w r3, r3, #64 @ 0x40 + 8004372: 2b00 cmp r3, #0 + 8004374: d00c beq.n 8004390 + { + if ((itsource & (TIM_IT_TRIGGER)) == (TIM_IT_TRIGGER)) + 8004376: 68fb ldr r3, [r7, #12] + 8004378: f003 0340 and.w r3, r3, #64 @ 0x40 + 800437c: 2b00 cmp r3, #0 + 800437e: d007 beq.n 8004390 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_TRIGGER); + 8004380: 687b ldr r3, [r7, #4] + 8004382: 681b ldr r3, [r3, #0] + 8004384: f06f 0240 mvn.w r2, #64 @ 0x40 + 8004388: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->TriggerCallback(htim); +#else + HAL_TIM_TriggerCallback(htim); + 800438a: 6878 ldr r0, [r7, #4] + 800438c: f000 f980 bl 8004690 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM commutation event */ + if ((itflag & (TIM_FLAG_COM)) == (TIM_FLAG_COM)) + 8004390: 68bb ldr r3, [r7, #8] + 8004392: f003 0320 and.w r3, r3, #32 + 8004396: 2b00 cmp r3, #0 + 8004398: d00c beq.n 80043b4 + { + if ((itsource & (TIM_IT_COM)) == (TIM_IT_COM)) + 800439a: 68fb ldr r3, [r7, #12] + 800439c: f003 0320 and.w r3, r3, #32 + 80043a0: 2b00 cmp r3, #0 + 80043a2: d007 beq.n 80043b4 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_COM); + 80043a4: 687b ldr r3, [r7, #4] + 80043a6: 681b ldr r3, [r3, #0] + 80043a8: f06f 0220 mvn.w r2, #32 + 80043ac: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->CommutationCallback(htim); +#else + HAL_TIMEx_CommutCallback(htim); + 80043ae: 6878 ldr r0, [r7, #4] + 80043b0: f000 fb32 bl 8004a18 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Encoder index event */ + if ((itflag & (TIM_FLAG_IDX)) == (TIM_FLAG_IDX)) + 80043b4: 68bb ldr r3, [r7, #8] + 80043b6: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 80043ba: 2b00 cmp r3, #0 + 80043bc: d00c beq.n 80043d8 + { + if ((itsource & (TIM_IT_IDX)) == (TIM_IT_IDX)) + 80043be: 68fb ldr r3, [r7, #12] + 80043c0: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 80043c4: 2b00 cmp r3, #0 + 80043c6: d007 beq.n 80043d8 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_IDX); + 80043c8: 687b ldr r3, [r7, #4] + 80043ca: 681b ldr r3, [r3, #0] + 80043cc: f46f 1280 mvn.w r2, #1048576 @ 0x100000 + 80043d0: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->EncoderIndexCallback(htim); +#else + HAL_TIMEx_EncoderIndexCallback(htim); + 80043d2: 6878 ldr r0, [r7, #4] + 80043d4: f000 fb3e bl 8004a54 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Direction change event */ + if ((itflag & (TIM_FLAG_DIR)) == (TIM_FLAG_DIR)) + 80043d8: 68bb ldr r3, [r7, #8] + 80043da: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 80043de: 2b00 cmp r3, #0 + 80043e0: d00c beq.n 80043fc + { + if ((itsource & (TIM_IT_DIR)) == (TIM_IT_DIR)) + 80043e2: 68fb ldr r3, [r7, #12] + 80043e4: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 80043e8: 2b00 cmp r3, #0 + 80043ea: d007 beq.n 80043fc + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_DIR); + 80043ec: 687b ldr r3, [r7, #4] + 80043ee: 681b ldr r3, [r3, #0] + 80043f0: f46f 1200 mvn.w r2, #2097152 @ 0x200000 + 80043f4: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->DirectionChangeCallback(htim); +#else + HAL_TIMEx_DirectionChangeCallback(htim); + 80043f6: 6878 ldr r0, [r7, #4] + 80043f8: f000 fb36 bl 8004a68 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Index error event */ + if ((itflag & (TIM_FLAG_IERR)) == (TIM_FLAG_IERR)) + 80043fc: 68bb ldr r3, [r7, #8] + 80043fe: f403 0380 and.w r3, r3, #4194304 @ 0x400000 + 8004402: 2b00 cmp r3, #0 + 8004404: d00c beq.n 8004420 + { + if ((itsource & (TIM_IT_IERR)) == (TIM_IT_IERR)) + 8004406: 68fb ldr r3, [r7, #12] + 8004408: f403 0380 and.w r3, r3, #4194304 @ 0x400000 + 800440c: 2b00 cmp r3, #0 + 800440e: d007 beq.n 8004420 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_IERR); + 8004410: 687b ldr r3, [r7, #4] + 8004412: 681b ldr r3, [r3, #0] + 8004414: f46f 0280 mvn.w r2, #4194304 @ 0x400000 + 8004418: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IndexErrorCallback(htim); +#else + HAL_TIMEx_IndexErrorCallback(htim); + 800441a: 6878 ldr r0, [r7, #4] + 800441c: f000 fb2e bl 8004a7c +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Transition error event */ + if ((itflag & (TIM_FLAG_TERR)) == (TIM_FLAG_TERR)) + 8004420: 68bb ldr r3, [r7, #8] + 8004422: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 8004426: 2b00 cmp r3, #0 + 8004428: d00c beq.n 8004444 + { + if ((itsource & (TIM_IT_TERR)) == (TIM_IT_TERR)) + 800442a: 68fb ldr r3, [r7, #12] + 800442c: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 8004430: 2b00 cmp r3, #0 + 8004432: d007 beq.n 8004444 + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_TERR); + 8004434: 687b ldr r3, [r7, #4] + 8004436: 681b ldr r3, [r3, #0] + 8004438: f46f 0200 mvn.w r2, #8388608 @ 0x800000 + 800443c: 611a str r2, [r3, #16] +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->TransitionErrorCallback(htim); +#else + HAL_TIMEx_TransitionErrorCallback(htim); + 800443e: 6878 ldr r0, [r7, #4] + 8004440: f000 fb26 bl 8004a90 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } +} + 8004444: bf00 nop + 8004446: 3710 adds r7, #16 + 8004448: 46bd mov sp, r7 + 800444a: bd80 pop {r7, pc} + +0800444c : + * @param sClockSourceConfig pointer to a TIM_ClockConfigTypeDef structure that + * contains the clock source information for the TIM peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig) +{ + 800444c: b580 push {r7, lr} + 800444e: b084 sub sp, #16 + 8004450: af00 add r7, sp, #0 + 8004452: 6078 str r0, [r7, #4] + 8004454: 6039 str r1, [r7, #0] + HAL_StatusTypeDef status = HAL_OK; + 8004456: 2300 movs r3, #0 + 8004458: 73fb strb r3, [r7, #15] + uint32_t tmpsmcr; + + /* Process Locked */ + __HAL_LOCK(htim); + 800445a: 687b ldr r3, [r7, #4] + 800445c: f893 303c ldrb.w r3, [r3, #60] @ 0x3c + 8004460: 2b01 cmp r3, #1 + 8004462: d101 bne.n 8004468 + 8004464: 2302 movs r3, #2 + 8004466: e0de b.n 8004626 + 8004468: 687b ldr r3, [r7, #4] + 800446a: 2201 movs r2, #1 + 800446c: f883 203c strb.w r2, [r3, #60] @ 0x3c + + htim->State = HAL_TIM_STATE_BUSY; + 8004470: 687b ldr r3, [r7, #4] + 8004472: 2202 movs r2, #2 + 8004474: f883 203d strb.w r2, [r3, #61] @ 0x3d + + /* Check the parameters */ + assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource)); + + /* Reset the SMS, TS, ECE, ETPS and ETRF bits */ + tmpsmcr = htim->Instance->SMCR; + 8004478: 687b ldr r3, [r7, #4] + 800447a: 681b ldr r3, [r3, #0] + 800447c: 689b ldr r3, [r3, #8] + 800447e: 60bb str r3, [r7, #8] + tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + 8004480: 68bb ldr r3, [r7, #8] + 8004482: f423 1344 bic.w r3, r3, #3211264 @ 0x310000 + 8004486: f023 0377 bic.w r3, r3, #119 @ 0x77 + 800448a: 60bb str r3, [r7, #8] + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 800448c: 68bb ldr r3, [r7, #8] + 800448e: f423 437f bic.w r3, r3, #65280 @ 0xff00 + 8004492: 60bb str r3, [r7, #8] + htim->Instance->SMCR = tmpsmcr; + 8004494: 687b ldr r3, [r7, #4] + 8004496: 681b ldr r3, [r3, #0] + 8004498: 68ba ldr r2, [r7, #8] + 800449a: 609a str r2, [r3, #8] + + switch (sClockSourceConfig->ClockSource) + 800449c: 683b ldr r3, [r7, #0] + 800449e: 681b ldr r3, [r3, #0] + 80044a0: 4a63 ldr r2, [pc, #396] @ (8004630 ) + 80044a2: 4293 cmp r3, r2 + 80044a4: f000 80a9 beq.w 80045fa + 80044a8: 4a61 ldr r2, [pc, #388] @ (8004630 ) + 80044aa: 4293 cmp r3, r2 + 80044ac: f200 80ae bhi.w 800460c + 80044b0: 4a60 ldr r2, [pc, #384] @ (8004634 ) + 80044b2: 4293 cmp r3, r2 + 80044b4: f000 80a1 beq.w 80045fa + 80044b8: 4a5e ldr r2, [pc, #376] @ (8004634 ) + 80044ba: 4293 cmp r3, r2 + 80044bc: f200 80a6 bhi.w 800460c + 80044c0: 4a5d ldr r2, [pc, #372] @ (8004638 ) + 80044c2: 4293 cmp r3, r2 + 80044c4: f000 8099 beq.w 80045fa + 80044c8: 4a5b ldr r2, [pc, #364] @ (8004638 ) + 80044ca: 4293 cmp r3, r2 + 80044cc: f200 809e bhi.w 800460c + 80044d0: 4a5a ldr r2, [pc, #360] @ (800463c ) + 80044d2: 4293 cmp r3, r2 + 80044d4: f000 8091 beq.w 80045fa + 80044d8: 4a58 ldr r2, [pc, #352] @ (800463c ) + 80044da: 4293 cmp r3, r2 + 80044dc: f200 8096 bhi.w 800460c + 80044e0: f1b3 1f10 cmp.w r3, #1048592 @ 0x100010 + 80044e4: f000 8089 beq.w 80045fa + 80044e8: f1b3 1f10 cmp.w r3, #1048592 @ 0x100010 + 80044ec: f200 808e bhi.w 800460c + 80044f0: f5b3 5f00 cmp.w r3, #8192 @ 0x2000 + 80044f4: d03e beq.n 8004574 + 80044f6: f5b3 5f00 cmp.w r3, #8192 @ 0x2000 + 80044fa: f200 8087 bhi.w 800460c + 80044fe: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 8004502: f000 8086 beq.w 8004612 + 8004506: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 800450a: d87f bhi.n 800460c + 800450c: 2b70 cmp r3, #112 @ 0x70 + 800450e: d01a beq.n 8004546 + 8004510: 2b70 cmp r3, #112 @ 0x70 + 8004512: d87b bhi.n 800460c + 8004514: 2b60 cmp r3, #96 @ 0x60 + 8004516: d050 beq.n 80045ba + 8004518: 2b60 cmp r3, #96 @ 0x60 + 800451a: d877 bhi.n 800460c + 800451c: 2b50 cmp r3, #80 @ 0x50 + 800451e: d03c beq.n 800459a + 8004520: 2b50 cmp r3, #80 @ 0x50 + 8004522: d873 bhi.n 800460c + 8004524: 2b40 cmp r3, #64 @ 0x40 + 8004526: d058 beq.n 80045da + 8004528: 2b40 cmp r3, #64 @ 0x40 + 800452a: d86f bhi.n 800460c + 800452c: 2b30 cmp r3, #48 @ 0x30 + 800452e: d064 beq.n 80045fa + 8004530: 2b30 cmp r3, #48 @ 0x30 + 8004532: d86b bhi.n 800460c + 8004534: 2b20 cmp r3, #32 + 8004536: d060 beq.n 80045fa + 8004538: 2b20 cmp r3, #32 + 800453a: d867 bhi.n 800460c + 800453c: 2b00 cmp r3, #0 + 800453e: d05c beq.n 80045fa + 8004540: 2b10 cmp r3, #16 + 8004542: d05a beq.n 80045fa + 8004544: e062 b.n 800460c + assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler)); + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + /* Configure the ETR Clock source */ + TIM_ETR_SetConfig(htim->Instance, + 8004546: 687b ldr r3, [r7, #4] + 8004548: 6818 ldr r0, [r3, #0] + sClockSourceConfig->ClockPrescaler, + 800454a: 683b ldr r3, [r7, #0] + 800454c: 6899 ldr r1, [r3, #8] + sClockSourceConfig->ClockPolarity, + 800454e: 683b ldr r3, [r7, #0] + 8004550: 685a ldr r2, [r3, #4] + sClockSourceConfig->ClockFilter); + 8004552: 683b ldr r3, [r7, #0] + 8004554: 68db ldr r3, [r3, #12] + TIM_ETR_SetConfig(htim->Instance, + 8004556: f000 f9bd bl 80048d4 + + /* Select the External clock mode1 and the ETRF trigger */ + tmpsmcr = htim->Instance->SMCR; + 800455a: 687b ldr r3, [r7, #4] + 800455c: 681b ldr r3, [r3, #0] + 800455e: 689b ldr r3, [r3, #8] + 8004560: 60bb str r3, [r7, #8] + tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + 8004562: 68bb ldr r3, [r7, #8] + 8004564: f043 0377 orr.w r3, r3, #119 @ 0x77 + 8004568: 60bb str r3, [r7, #8] + /* Write to TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + 800456a: 687b ldr r3, [r7, #4] + 800456c: 681b ldr r3, [r3, #0] + 800456e: 68ba ldr r2, [r7, #8] + 8004570: 609a str r2, [r3, #8] + break; + 8004572: e04f b.n 8004614 + assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler)); + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + /* Configure the ETR Clock source */ + TIM_ETR_SetConfig(htim->Instance, + 8004574: 687b ldr r3, [r7, #4] + 8004576: 6818 ldr r0, [r3, #0] + sClockSourceConfig->ClockPrescaler, + 8004578: 683b ldr r3, [r7, #0] + 800457a: 6899 ldr r1, [r3, #8] + sClockSourceConfig->ClockPolarity, + 800457c: 683b ldr r3, [r7, #0] + 800457e: 685a ldr r2, [r3, #4] + sClockSourceConfig->ClockFilter); + 8004580: 683b ldr r3, [r7, #0] + 8004582: 68db ldr r3, [r3, #12] + TIM_ETR_SetConfig(htim->Instance, + 8004584: f000 f9a6 bl 80048d4 + /* Enable the External clock mode2 */ + htim->Instance->SMCR |= TIM_SMCR_ECE; + 8004588: 687b ldr r3, [r7, #4] + 800458a: 681b ldr r3, [r3, #0] + 800458c: 689a ldr r2, [r3, #8] + 800458e: 687b ldr r3, [r7, #4] + 8004590: 681b ldr r3, [r3, #0] + 8004592: f442 4280 orr.w r2, r2, #16384 @ 0x4000 + 8004596: 609a str r2, [r3, #8] + break; + 8004598: e03c b.n 8004614 + + /* Check TI1 input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + TIM_TI1_ConfigInputStage(htim->Instance, + 800459a: 687b ldr r3, [r7, #4] + 800459c: 6818 ldr r0, [r3, #0] + sClockSourceConfig->ClockPolarity, + 800459e: 683b ldr r3, [r7, #0] + 80045a0: 6859 ldr r1, [r3, #4] + sClockSourceConfig->ClockFilter); + 80045a2: 683b ldr r3, [r7, #0] + 80045a4: 68db ldr r3, [r3, #12] + TIM_TI1_ConfigInputStage(htim->Instance, + 80045a6: 461a mov r2, r3 + 80045a8: f000 f918 bl 80047dc + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1); + 80045ac: 687b ldr r3, [r7, #4] + 80045ae: 681b ldr r3, [r3, #0] + 80045b0: 2150 movs r1, #80 @ 0x50 + 80045b2: 4618 mov r0, r3 + 80045b4: f000 f971 bl 800489a + break; + 80045b8: e02c b.n 8004614 + + /* Check TI2 input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + TIM_TI2_ConfigInputStage(htim->Instance, + 80045ba: 687b ldr r3, [r7, #4] + 80045bc: 6818 ldr r0, [r3, #0] + sClockSourceConfig->ClockPolarity, + 80045be: 683b ldr r3, [r7, #0] + 80045c0: 6859 ldr r1, [r3, #4] + sClockSourceConfig->ClockFilter); + 80045c2: 683b ldr r3, [r7, #0] + 80045c4: 68db ldr r3, [r3, #12] + TIM_TI2_ConfigInputStage(htim->Instance, + 80045c6: 461a mov r2, r3 + 80045c8: f000 f937 bl 800483a + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2); + 80045cc: 687b ldr r3, [r7, #4] + 80045ce: 681b ldr r3, [r3, #0] + 80045d0: 2160 movs r1, #96 @ 0x60 + 80045d2: 4618 mov r0, r3 + 80045d4: f000 f961 bl 800489a + break; + 80045d8: e01c b.n 8004614 + + /* Check TI1 input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + TIM_TI1_ConfigInputStage(htim->Instance, + 80045da: 687b ldr r3, [r7, #4] + 80045dc: 6818 ldr r0, [r3, #0] + sClockSourceConfig->ClockPolarity, + 80045de: 683b ldr r3, [r7, #0] + 80045e0: 6859 ldr r1, [r3, #4] + sClockSourceConfig->ClockFilter); + 80045e2: 683b ldr r3, [r7, #0] + 80045e4: 68db ldr r3, [r3, #12] + TIM_TI1_ConfigInputStage(htim->Instance, + 80045e6: 461a mov r2, r3 + 80045e8: f000 f8f8 bl 80047dc + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED); + 80045ec: 687b ldr r3, [r7, #4] + 80045ee: 681b ldr r3, [r3, #0] + 80045f0: 2140 movs r1, #64 @ 0x40 + 80045f2: 4618 mov r0, r3 + 80045f4: f000 f951 bl 800489a + break; + 80045f8: e00c b.n 8004614 + case TIM_CLOCKSOURCE_ITR11: + { + /* Check whether or not the timer instance supports internal trigger input */ + assert_param(IS_TIM_CLOCKSOURCE_INSTANCE((htim->Instance), sClockSourceConfig->ClockSource)); + + TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); + 80045fa: 687b ldr r3, [r7, #4] + 80045fc: 681a ldr r2, [r3, #0] + 80045fe: 683b ldr r3, [r7, #0] + 8004600: 681b ldr r3, [r3, #0] + 8004602: 4619 mov r1, r3 + 8004604: 4610 mov r0, r2 + 8004606: f000 f948 bl 800489a + break; + 800460a: e003 b.n 8004614 + } + + default: + status = HAL_ERROR; + 800460c: 2301 movs r3, #1 + 800460e: 73fb strb r3, [r7, #15] + break; + 8004610: e000 b.n 8004614 + break; + 8004612: bf00 nop + } + htim->State = HAL_TIM_STATE_READY; + 8004614: 687b ldr r3, [r7, #4] + 8004616: 2201 movs r2, #1 + 8004618: f883 203d strb.w r2, [r3, #61] @ 0x3d + + __HAL_UNLOCK(htim); + 800461c: 687b ldr r3, [r7, #4] + 800461e: 2200 movs r2, #0 + 8004620: f883 203c strb.w r2, [r3, #60] @ 0x3c + + return status; + 8004624: 7bfb ldrb r3, [r7, #15] +} + 8004626: 4618 mov r0, r3 + 8004628: 3710 adds r7, #16 + 800462a: 46bd mov sp, r7 + 800462c: bd80 pop {r7, pc} + 800462e: bf00 nop + 8004630: 00100070 .word 0x00100070 + 8004634: 00100040 .word 0x00100040 + 8004638: 00100030 .word 0x00100030 + 800463c: 00100020 .word 0x00100020 + +08004640 : + * @brief Period elapsed callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +{ + 8004640: b480 push {r7} + 8004642: b083 sub sp, #12 + 8004644: af00 add r7, sp, #0 + 8004646: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PeriodElapsedCallback could be implemented in the user file + */ +} + 8004648: bf00 nop + 800464a: 370c adds r7, #12 + 800464c: 46bd mov sp, r7 + 800464e: f85d 7b04 ldr.w r7, [sp], #4 + 8004652: 4770 bx lr + +08004654 : + * @brief Output Compare callback in non-blocking mode + * @param htim TIM OC handle + * @retval None + */ +__weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) +{ + 8004654: b480 push {r7} + 8004656: b083 sub sp, #12 + 8004658: af00 add r7, sp, #0 + 800465a: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file + */ +} + 800465c: bf00 nop + 800465e: 370c adds r7, #12 + 8004660: 46bd mov sp, r7 + 8004662: f85d 7b04 ldr.w r7, [sp], #4 + 8004666: 4770 bx lr + +08004668 : + * @brief Input Capture callback in non-blocking mode + * @param htim TIM IC handle + * @retval None + */ +__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) +{ + 8004668: b480 push {r7} + 800466a: b083 sub sp, #12 + 800466c: af00 add r7, sp, #0 + 800466e: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_IC_CaptureCallback could be implemented in the user file + */ +} + 8004670: bf00 nop + 8004672: 370c adds r7, #12 + 8004674: 46bd mov sp, r7 + 8004676: f85d 7b04 ldr.w r7, [sp], #4 + 800467a: 4770 bx lr + +0800467c : + * @brief PWM Pulse finished callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) +{ + 800467c: b480 push {r7} + 800467e: b083 sub sp, #12 + 8004680: af00 add r7, sp, #0 + 8004682: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file + */ +} + 8004684: bf00 nop + 8004686: 370c adds r7, #12 + 8004688: 46bd mov sp, r7 + 800468a: f85d 7b04 ldr.w r7, [sp], #4 + 800468e: 4770 bx lr + +08004690 : + * @brief Hall Trigger detection callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) +{ + 8004690: b480 push {r7} + 8004692: b083 sub sp, #12 + 8004694: af00 add r7, sp, #0 + 8004696: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_TriggerCallback could be implemented in the user file + */ +} + 8004698: bf00 nop + 800469a: 370c adds r7, #12 + 800469c: 46bd mov sp, r7 + 800469e: f85d 7b04 ldr.w r7, [sp], #4 + 80046a2: 4770 bx lr + +080046a4 : + * @param TIMx TIM peripheral + * @param Structure TIM Base configuration structure + * @retval None + */ +void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure) +{ + 80046a4: b480 push {r7} + 80046a6: b085 sub sp, #20 + 80046a8: af00 add r7, sp, #0 + 80046aa: 6078 str r0, [r7, #4] + 80046ac: 6039 str r1, [r7, #0] + uint32_t tmpcr1; + tmpcr1 = TIMx->CR1; + 80046ae: 687b ldr r3, [r7, #4] + 80046b0: 681b ldr r3, [r3, #0] + 80046b2: 60fb str r3, [r7, #12] + + /* Set TIM Time Base Unit parameters ---------------------------------------*/ + if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) + 80046b4: 687b ldr r3, [r7, #4] + 80046b6: 4a42 ldr r2, [pc, #264] @ (80047c0 ) + 80046b8: 4293 cmp r3, r2 + 80046ba: d00f beq.n 80046dc + 80046bc: 687b ldr r3, [r7, #4] + 80046be: f1b3 4f80 cmp.w r3, #1073741824 @ 0x40000000 + 80046c2: d00b beq.n 80046dc + 80046c4: 687b ldr r3, [r7, #4] + 80046c6: 4a3f ldr r2, [pc, #252] @ (80047c4 ) + 80046c8: 4293 cmp r3, r2 + 80046ca: d007 beq.n 80046dc + 80046cc: 687b ldr r3, [r7, #4] + 80046ce: 4a3e ldr r2, [pc, #248] @ (80047c8 ) + 80046d0: 4293 cmp r3, r2 + 80046d2: d003 beq.n 80046dc + 80046d4: 687b ldr r3, [r7, #4] + 80046d6: 4a3d ldr r2, [pc, #244] @ (80047cc ) + 80046d8: 4293 cmp r3, r2 + 80046da: d108 bne.n 80046ee + { + /* Select the Counter Mode */ + tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); + 80046dc: 68fb ldr r3, [r7, #12] + 80046de: f023 0370 bic.w r3, r3, #112 @ 0x70 + 80046e2: 60fb str r3, [r7, #12] + tmpcr1 |= Structure->CounterMode; + 80046e4: 683b ldr r3, [r7, #0] + 80046e6: 685b ldr r3, [r3, #4] + 80046e8: 68fa ldr r2, [r7, #12] + 80046ea: 4313 orrs r3, r2 + 80046ec: 60fb str r3, [r7, #12] + } + + if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) + 80046ee: 687b ldr r3, [r7, #4] + 80046f0: 4a33 ldr r2, [pc, #204] @ (80047c0 ) + 80046f2: 4293 cmp r3, r2 + 80046f4: d01b beq.n 800472e + 80046f6: 687b ldr r3, [r7, #4] + 80046f8: f1b3 4f80 cmp.w r3, #1073741824 @ 0x40000000 + 80046fc: d017 beq.n 800472e + 80046fe: 687b ldr r3, [r7, #4] + 8004700: 4a30 ldr r2, [pc, #192] @ (80047c4 ) + 8004702: 4293 cmp r3, r2 + 8004704: d013 beq.n 800472e + 8004706: 687b ldr r3, [r7, #4] + 8004708: 4a2f ldr r2, [pc, #188] @ (80047c8 ) + 800470a: 4293 cmp r3, r2 + 800470c: d00f beq.n 800472e + 800470e: 687b ldr r3, [r7, #4] + 8004710: 4a2e ldr r2, [pc, #184] @ (80047cc ) + 8004712: 4293 cmp r3, r2 + 8004714: d00b beq.n 800472e + 8004716: 687b ldr r3, [r7, #4] + 8004718: 4a2d ldr r2, [pc, #180] @ (80047d0 ) + 800471a: 4293 cmp r3, r2 + 800471c: d007 beq.n 800472e + 800471e: 687b ldr r3, [r7, #4] + 8004720: 4a2c ldr r2, [pc, #176] @ (80047d4 ) + 8004722: 4293 cmp r3, r2 + 8004724: d003 beq.n 800472e + 8004726: 687b ldr r3, [r7, #4] + 8004728: 4a2b ldr r2, [pc, #172] @ (80047d8 ) + 800472a: 4293 cmp r3, r2 + 800472c: d108 bne.n 8004740 + { + /* Set the clock division */ + tmpcr1 &= ~TIM_CR1_CKD; + 800472e: 68fb ldr r3, [r7, #12] + 8004730: f423 7340 bic.w r3, r3, #768 @ 0x300 + 8004734: 60fb str r3, [r7, #12] + tmpcr1 |= (uint32_t)Structure->ClockDivision; + 8004736: 683b ldr r3, [r7, #0] + 8004738: 68db ldr r3, [r3, #12] + 800473a: 68fa ldr r2, [r7, #12] + 800473c: 4313 orrs r3, r2 + 800473e: 60fb str r3, [r7, #12] + } + + /* Set the auto-reload preload */ + MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); + 8004740: 68fb ldr r3, [r7, #12] + 8004742: f023 0280 bic.w r2, r3, #128 @ 0x80 + 8004746: 683b ldr r3, [r7, #0] + 8004748: 695b ldr r3, [r3, #20] + 800474a: 4313 orrs r3, r2 + 800474c: 60fb str r3, [r7, #12] + + TIMx->CR1 = tmpcr1; + 800474e: 687b ldr r3, [r7, #4] + 8004750: 68fa ldr r2, [r7, #12] + 8004752: 601a str r2, [r3, #0] + + /* Set the Autoreload value */ + TIMx->ARR = (uint32_t)Structure->Period ; + 8004754: 683b ldr r3, [r7, #0] + 8004756: 689a ldr r2, [r3, #8] + 8004758: 687b ldr r3, [r7, #4] + 800475a: 62da str r2, [r3, #44] @ 0x2c + + /* Set the Prescaler value */ + TIMx->PSC = Structure->Prescaler; + 800475c: 683b ldr r3, [r7, #0] + 800475e: 681a ldr r2, [r3, #0] + 8004760: 687b ldr r3, [r7, #4] + 8004762: 629a str r2, [r3, #40] @ 0x28 + + if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) + 8004764: 687b ldr r3, [r7, #4] + 8004766: 4a16 ldr r2, [pc, #88] @ (80047c0 ) + 8004768: 4293 cmp r3, r2 + 800476a: d00f beq.n 800478c + 800476c: 687b ldr r3, [r7, #4] + 800476e: 4a17 ldr r2, [pc, #92] @ (80047cc ) + 8004770: 4293 cmp r3, r2 + 8004772: d00b beq.n 800478c + 8004774: 687b ldr r3, [r7, #4] + 8004776: 4a16 ldr r2, [pc, #88] @ (80047d0 ) + 8004778: 4293 cmp r3, r2 + 800477a: d007 beq.n 800478c + 800477c: 687b ldr r3, [r7, #4] + 800477e: 4a15 ldr r2, [pc, #84] @ (80047d4 ) + 8004780: 4293 cmp r3, r2 + 8004782: d003 beq.n 800478c + 8004784: 687b ldr r3, [r7, #4] + 8004786: 4a14 ldr r2, [pc, #80] @ (80047d8 ) + 8004788: 4293 cmp r3, r2 + 800478a: d103 bne.n 8004794 + { + /* Set the Repetition Counter value */ + TIMx->RCR = Structure->RepetitionCounter; + 800478c: 683b ldr r3, [r7, #0] + 800478e: 691a ldr r2, [r3, #16] + 8004790: 687b ldr r3, [r7, #4] + 8004792: 631a str r2, [r3, #48] @ 0x30 + } + + /* Generate an update event to reload the Prescaler + and the repetition counter (only for advanced timer) value immediately */ + TIMx->EGR = TIM_EGR_UG; + 8004794: 687b ldr r3, [r7, #4] + 8004796: 2201 movs r2, #1 + 8004798: 615a str r2, [r3, #20] + + /* Check if the update flag is set after the Update Generation, if so clear the UIF flag */ + if (HAL_IS_BIT_SET(TIMx->SR, TIM_FLAG_UPDATE)) + 800479a: 687b ldr r3, [r7, #4] + 800479c: 691b ldr r3, [r3, #16] + 800479e: f003 0301 and.w r3, r3, #1 + 80047a2: 2b01 cmp r3, #1 + 80047a4: d105 bne.n 80047b2 + { + /* Clear the update flag */ + CLEAR_BIT(TIMx->SR, TIM_FLAG_UPDATE); + 80047a6: 687b ldr r3, [r7, #4] + 80047a8: 691b ldr r3, [r3, #16] + 80047aa: f023 0201 bic.w r2, r3, #1 + 80047ae: 687b ldr r3, [r7, #4] + 80047b0: 611a str r2, [r3, #16] + } +} + 80047b2: bf00 nop + 80047b4: 3714 adds r7, #20 + 80047b6: 46bd mov sp, r7 + 80047b8: f85d 7b04 ldr.w r7, [sp], #4 + 80047bc: 4770 bx lr + 80047be: bf00 nop + 80047c0: 40012c00 .word 0x40012c00 + 80047c4: 40000400 .word 0x40000400 + 80047c8: 40000800 .word 0x40000800 + 80047cc: 40013400 .word 0x40013400 + 80047d0: 40014000 .word 0x40014000 + 80047d4: 40014400 .word 0x40014400 + 80047d8: 40014800 .word 0x40014800 + +080047dc : + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + 80047dc: b480 push {r7} + 80047de: b087 sub sp, #28 + 80047e0: af00 add r7, sp, #0 + 80047e2: 60f8 str r0, [r7, #12] + 80047e4: 60b9 str r1, [r7, #8] + 80047e6: 607a str r2, [r7, #4] + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 1: Reset the CC1E Bit */ + tmpccer = TIMx->CCER; + 80047e8: 68fb ldr r3, [r7, #12] + 80047ea: 6a1b ldr r3, [r3, #32] + 80047ec: 617b str r3, [r7, #20] + TIMx->CCER &= ~TIM_CCER_CC1E; + 80047ee: 68fb ldr r3, [r7, #12] + 80047f0: 6a1b ldr r3, [r3, #32] + 80047f2: f023 0201 bic.w r2, r3, #1 + 80047f6: 68fb ldr r3, [r7, #12] + 80047f8: 621a str r2, [r3, #32] + tmpccmr1 = TIMx->CCMR1; + 80047fa: 68fb ldr r3, [r7, #12] + 80047fc: 699b ldr r3, [r3, #24] + 80047fe: 613b str r3, [r7, #16] + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC1F; + 8004800: 693b ldr r3, [r7, #16] + 8004802: f023 03f0 bic.w r3, r3, #240 @ 0xf0 + 8004806: 613b str r3, [r7, #16] + tmpccmr1 |= (TIM_ICFilter << 4U); + 8004808: 687b ldr r3, [r7, #4] + 800480a: 011b lsls r3, r3, #4 + 800480c: 693a ldr r2, [r7, #16] + 800480e: 4313 orrs r3, r2 + 8004810: 613b str r3, [r7, #16] + + /* Select the Polarity and set the CC1E Bit */ + tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); + 8004812: 697b ldr r3, [r7, #20] + 8004814: f023 030a bic.w r3, r3, #10 + 8004818: 617b str r3, [r7, #20] + tmpccer |= TIM_ICPolarity; + 800481a: 697a ldr r2, [r7, #20] + 800481c: 68bb ldr r3, [r7, #8] + 800481e: 4313 orrs r3, r2 + 8004820: 617b str r3, [r7, #20] + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1; + 8004822: 68fb ldr r3, [r7, #12] + 8004824: 693a ldr r2, [r7, #16] + 8004826: 619a str r2, [r3, #24] + TIMx->CCER = tmpccer; + 8004828: 68fb ldr r3, [r7, #12] + 800482a: 697a ldr r2, [r7, #20] + 800482c: 621a str r2, [r3, #32] +} + 800482e: bf00 nop + 8004830: 371c adds r7, #28 + 8004832: 46bd mov sp, r7 + 8004834: f85d 7b04 ldr.w r7, [sp], #4 + 8004838: 4770 bx lr + +0800483a : + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + 800483a: b480 push {r7} + 800483c: b087 sub sp, #28 + 800483e: af00 add r7, sp, #0 + 8004840: 60f8 str r0, [r7, #12] + 8004842: 60b9 str r1, [r7, #8] + 8004844: 607a str r2, [r7, #4] + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 2: Reset the CC2E Bit */ + tmpccer = TIMx->CCER; + 8004846: 68fb ldr r3, [r7, #12] + 8004848: 6a1b ldr r3, [r3, #32] + 800484a: 617b str r3, [r7, #20] + TIMx->CCER &= ~TIM_CCER_CC2E; + 800484c: 68fb ldr r3, [r7, #12] + 800484e: 6a1b ldr r3, [r3, #32] + 8004850: f023 0210 bic.w r2, r3, #16 + 8004854: 68fb ldr r3, [r7, #12] + 8004856: 621a str r2, [r3, #32] + tmpccmr1 = TIMx->CCMR1; + 8004858: 68fb ldr r3, [r7, #12] + 800485a: 699b ldr r3, [r3, #24] + 800485c: 613b str r3, [r7, #16] + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC2F; + 800485e: 693b ldr r3, [r7, #16] + 8004860: f423 4370 bic.w r3, r3, #61440 @ 0xf000 + 8004864: 613b str r3, [r7, #16] + tmpccmr1 |= (TIM_ICFilter << 12U); + 8004866: 687b ldr r3, [r7, #4] + 8004868: 031b lsls r3, r3, #12 + 800486a: 693a ldr r2, [r7, #16] + 800486c: 4313 orrs r3, r2 + 800486e: 613b str r3, [r7, #16] + + /* Select the Polarity and set the CC2E Bit */ + tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + 8004870: 697b ldr r3, [r7, #20] + 8004872: f023 03a0 bic.w r3, r3, #160 @ 0xa0 + 8004876: 617b str r3, [r7, #20] + tmpccer |= (TIM_ICPolarity << 4U); + 8004878: 68bb ldr r3, [r7, #8] + 800487a: 011b lsls r3, r3, #4 + 800487c: 697a ldr r2, [r7, #20] + 800487e: 4313 orrs r3, r2 + 8004880: 617b str r3, [r7, #20] + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1 ; + 8004882: 68fb ldr r3, [r7, #12] + 8004884: 693a ldr r2, [r7, #16] + 8004886: 619a str r2, [r3, #24] + TIMx->CCER = tmpccer; + 8004888: 68fb ldr r3, [r7, #12] + 800488a: 697a ldr r2, [r7, #20] + 800488c: 621a str r2, [r3, #32] +} + 800488e: bf00 nop + 8004890: 371c adds r7, #28 + 8004892: 46bd mov sp, r7 + 8004894: f85d 7b04 ldr.w r7, [sp], #4 + 8004898: 4770 bx lr + +0800489a : + * (*) Value not defined in all devices. + * + * @retval None + */ +static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource) +{ + 800489a: b480 push {r7} + 800489c: b085 sub sp, #20 + 800489e: af00 add r7, sp, #0 + 80048a0: 6078 str r0, [r7, #4] + 80048a2: 6039 str r1, [r7, #0] + uint32_t tmpsmcr; + + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + 80048a4: 687b ldr r3, [r7, #4] + 80048a6: 689b ldr r3, [r3, #8] + 80048a8: 60fb str r3, [r7, #12] + /* Reset the TS Bits */ + tmpsmcr &= ~TIM_SMCR_TS; + 80048aa: 68fb ldr r3, [r7, #12] + 80048ac: f423 1340 bic.w r3, r3, #3145728 @ 0x300000 + 80048b0: f023 0370 bic.w r3, r3, #112 @ 0x70 + 80048b4: 60fb str r3, [r7, #12] + /* Set the Input Trigger source and the slave mode*/ + tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1); + 80048b6: 683a ldr r2, [r7, #0] + 80048b8: 68fb ldr r3, [r7, #12] + 80048ba: 4313 orrs r3, r2 + 80048bc: f043 0307 orr.w r3, r3, #7 + 80048c0: 60fb str r3, [r7, #12] + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + 80048c2: 687b ldr r3, [r7, #4] + 80048c4: 68fa ldr r2, [r7, #12] + 80048c6: 609a str r2, [r3, #8] +} + 80048c8: bf00 nop + 80048ca: 3714 adds r7, #20 + 80048cc: 46bd mov sp, r7 + 80048ce: f85d 7b04 ldr.w r7, [sp], #4 + 80048d2: 4770 bx lr + +080048d4 : + * This parameter must be a value between 0x00 and 0x0F + * @retval None + */ +void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, + uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter) +{ + 80048d4: b480 push {r7} + 80048d6: b087 sub sp, #28 + 80048d8: af00 add r7, sp, #0 + 80048da: 60f8 str r0, [r7, #12] + 80048dc: 60b9 str r1, [r7, #8] + 80048de: 607a str r2, [r7, #4] + 80048e0: 603b str r3, [r7, #0] + uint32_t tmpsmcr; + + tmpsmcr = TIMx->SMCR; + 80048e2: 68fb ldr r3, [r7, #12] + 80048e4: 689b ldr r3, [r3, #8] + 80048e6: 617b str r3, [r7, #20] + + /* Reset the ETR Bits */ + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 80048e8: 697b ldr r3, [r7, #20] + 80048ea: f423 437f bic.w r3, r3, #65280 @ 0xff00 + 80048ee: 617b str r3, [r7, #20] + + /* Set the Prescaler, the Filter value and the Polarity */ + tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U))); + 80048f0: 683b ldr r3, [r7, #0] + 80048f2: 021a lsls r2, r3, #8 + 80048f4: 687b ldr r3, [r7, #4] + 80048f6: 431a orrs r2, r3 + 80048f8: 68bb ldr r3, [r7, #8] + 80048fa: 4313 orrs r3, r2 + 80048fc: 697a ldr r2, [r7, #20] + 80048fe: 4313 orrs r3, r2 + 8004900: 617b str r3, [r7, #20] + + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + 8004902: 68fb ldr r3, [r7, #12] + 8004904: 697a ldr r2, [r7, #20] + 8004906: 609a str r2, [r3, #8] +} + 8004908: bf00 nop + 800490a: 371c adds r7, #28 + 800490c: 46bd mov sp, r7 + 800490e: f85d 7b04 ldr.w r7, [sp], #4 + 8004912: 4770 bx lr + +08004914 : + * mode. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, + const TIM_MasterConfigTypeDef *sMasterConfig) +{ + 8004914: b480 push {r7} + 8004916: b085 sub sp, #20 + 8004918: af00 add r7, sp, #0 + 800491a: 6078 str r0, [r7, #4] + 800491c: 6039 str r1, [r7, #0] + assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); + assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); + + /* Check input state */ + __HAL_LOCK(htim); + 800491e: 687b ldr r3, [r7, #4] + 8004920: f893 303c ldrb.w r3, [r3, #60] @ 0x3c + 8004924: 2b01 cmp r3, #1 + 8004926: d101 bne.n 800492c + 8004928: 2302 movs r3, #2 + 800492a: e065 b.n 80049f8 + 800492c: 687b ldr r3, [r7, #4] + 800492e: 2201 movs r2, #1 + 8004930: f883 203c strb.w r2, [r3, #60] @ 0x3c + + /* Change the handler state */ + htim->State = HAL_TIM_STATE_BUSY; + 8004934: 687b ldr r3, [r7, #4] + 8004936: 2202 movs r2, #2 + 8004938: f883 203d strb.w r2, [r3, #61] @ 0x3d + + /* Get the TIMx CR2 register value */ + tmpcr2 = htim->Instance->CR2; + 800493c: 687b ldr r3, [r7, #4] + 800493e: 681b ldr r3, [r3, #0] + 8004940: 685b ldr r3, [r3, #4] + 8004942: 60fb str r3, [r7, #12] + + /* Get the TIMx SMCR register value */ + tmpsmcr = htim->Instance->SMCR; + 8004944: 687b ldr r3, [r7, #4] + 8004946: 681b ldr r3, [r3, #0] + 8004948: 689b ldr r3, [r3, #8] + 800494a: 60bb str r3, [r7, #8] + + /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ + if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) + 800494c: 687b ldr r3, [r7, #4] + 800494e: 681b ldr r3, [r3, #0] + 8004950: 4a2c ldr r2, [pc, #176] @ (8004a04 ) + 8004952: 4293 cmp r3, r2 + 8004954: d004 beq.n 8004960 + 8004956: 687b ldr r3, [r7, #4] + 8004958: 681b ldr r3, [r3, #0] + 800495a: 4a2b ldr r2, [pc, #172] @ (8004a08 ) + 800495c: 4293 cmp r3, r2 + 800495e: d108 bne.n 8004972 + { + /* Check the parameters */ + assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); + + /* Clear the MMS2 bits */ + tmpcr2 &= ~TIM_CR2_MMS2; + 8004960: 68fb ldr r3, [r7, #12] + 8004962: f423 0370 bic.w r3, r3, #15728640 @ 0xf00000 + 8004966: 60fb str r3, [r7, #12] + /* Select the TRGO2 source*/ + tmpcr2 |= sMasterConfig->MasterOutputTrigger2; + 8004968: 683b ldr r3, [r7, #0] + 800496a: 685b ldr r3, [r3, #4] + 800496c: 68fa ldr r2, [r7, #12] + 800496e: 4313 orrs r3, r2 + 8004970: 60fb str r3, [r7, #12] + } + + /* Reset the MMS Bits */ + tmpcr2 &= ~TIM_CR2_MMS; + 8004972: 68fb ldr r3, [r7, #12] + 8004974: f023 7300 bic.w r3, r3, #33554432 @ 0x2000000 + 8004978: f023 0370 bic.w r3, r3, #112 @ 0x70 + 800497c: 60fb str r3, [r7, #12] + /* Select the TRGO source */ + tmpcr2 |= sMasterConfig->MasterOutputTrigger; + 800497e: 683b ldr r3, [r7, #0] + 8004980: 681b ldr r3, [r3, #0] + 8004982: 68fa ldr r2, [r7, #12] + 8004984: 4313 orrs r3, r2 + 8004986: 60fb str r3, [r7, #12] + + /* Update TIMx CR2 */ + htim->Instance->CR2 = tmpcr2; + 8004988: 687b ldr r3, [r7, #4] + 800498a: 681b ldr r3, [r3, #0] + 800498c: 68fa ldr r2, [r7, #12] + 800498e: 605a str r2, [r3, #4] + + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 8004990: 687b ldr r3, [r7, #4] + 8004992: 681b ldr r3, [r3, #0] + 8004994: 4a1b ldr r2, [pc, #108] @ (8004a04 ) + 8004996: 4293 cmp r3, r2 + 8004998: d018 beq.n 80049cc + 800499a: 687b ldr r3, [r7, #4] + 800499c: 681b ldr r3, [r3, #0] + 800499e: f1b3 4f80 cmp.w r3, #1073741824 @ 0x40000000 + 80049a2: d013 beq.n 80049cc + 80049a4: 687b ldr r3, [r7, #4] + 80049a6: 681b ldr r3, [r3, #0] + 80049a8: 4a18 ldr r2, [pc, #96] @ (8004a0c ) + 80049aa: 4293 cmp r3, r2 + 80049ac: d00e beq.n 80049cc + 80049ae: 687b ldr r3, [r7, #4] + 80049b0: 681b ldr r3, [r3, #0] + 80049b2: 4a17 ldr r2, [pc, #92] @ (8004a10 ) + 80049b4: 4293 cmp r3, r2 + 80049b6: d009 beq.n 80049cc + 80049b8: 687b ldr r3, [r7, #4] + 80049ba: 681b ldr r3, [r3, #0] + 80049bc: 4a12 ldr r2, [pc, #72] @ (8004a08 ) + 80049be: 4293 cmp r3, r2 + 80049c0: d004 beq.n 80049cc + 80049c2: 687b ldr r3, [r7, #4] + 80049c4: 681b ldr r3, [r3, #0] + 80049c6: 4a13 ldr r2, [pc, #76] @ (8004a14 ) + 80049c8: 4293 cmp r3, r2 + 80049ca: d10c bne.n 80049e6 + { + /* Reset the MSM Bit */ + tmpsmcr &= ~TIM_SMCR_MSM; + 80049cc: 68bb ldr r3, [r7, #8] + 80049ce: f023 0380 bic.w r3, r3, #128 @ 0x80 + 80049d2: 60bb str r3, [r7, #8] + /* Set master mode */ + tmpsmcr |= sMasterConfig->MasterSlaveMode; + 80049d4: 683b ldr r3, [r7, #0] + 80049d6: 689b ldr r3, [r3, #8] + 80049d8: 68ba ldr r2, [r7, #8] + 80049da: 4313 orrs r3, r2 + 80049dc: 60bb str r3, [r7, #8] + + /* Update TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + 80049de: 687b ldr r3, [r7, #4] + 80049e0: 681b ldr r3, [r3, #0] + 80049e2: 68ba ldr r2, [r7, #8] + 80049e4: 609a str r2, [r3, #8] + } + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + 80049e6: 687b ldr r3, [r7, #4] + 80049e8: 2201 movs r2, #1 + 80049ea: f883 203d strb.w r2, [r3, #61] @ 0x3d + + __HAL_UNLOCK(htim); + 80049ee: 687b ldr r3, [r7, #4] + 80049f0: 2200 movs r2, #0 + 80049f2: f883 203c strb.w r2, [r3, #60] @ 0x3c + + return HAL_OK; + 80049f6: 2300 movs r3, #0 +} + 80049f8: 4618 mov r0, r3 + 80049fa: 3714 adds r7, #20 + 80049fc: 46bd mov sp, r7 + 80049fe: f85d 7b04 ldr.w r7, [sp], #4 + 8004a02: 4770 bx lr + 8004a04: 40012c00 .word 0x40012c00 + 8004a08: 40013400 .word 0x40013400 + 8004a0c: 40000400 .word 0x40000400 + 8004a10: 40000800 .word 0x40000800 + 8004a14: 40014000 .word 0x40014000 + +08004a18 : + * @brief Commutation callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) +{ + 8004a18: b480 push {r7} + 8004a1a: b083 sub sp, #12 + 8004a1c: af00 add r7, sp, #0 + 8004a1e: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_CommutCallback could be implemented in the user file + */ +} + 8004a20: bf00 nop + 8004a22: 370c adds r7, #12 + 8004a24: 46bd mov sp, r7 + 8004a26: f85d 7b04 ldr.w r7, [sp], #4 + 8004a2a: 4770 bx lr + +08004a2c : + * @brief Break detection callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) +{ + 8004a2c: b480 push {r7} + 8004a2e: b083 sub sp, #12 + 8004a30: af00 add r7, sp, #0 + 8004a32: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_BreakCallback could be implemented in the user file + */ +} + 8004a34: bf00 nop + 8004a36: 370c adds r7, #12 + 8004a38: 46bd mov sp, r7 + 8004a3a: f85d 7b04 ldr.w r7, [sp], #4 + 8004a3e: 4770 bx lr + +08004a40 : + * @brief Break2 detection callback in non blocking mode + * @param htim: TIM handle + * @retval None + */ +__weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim) +{ + 8004a40: b480 push {r7} + 8004a42: b083 sub sp, #12 + 8004a44: af00 add r7, sp, #0 + 8004a46: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_TIMEx_Break2Callback could be implemented in the user file + */ +} + 8004a48: bf00 nop + 8004a4a: 370c adds r7, #12 + 8004a4c: 46bd mov sp, r7 + 8004a4e: f85d 7b04 ldr.w r7, [sp], #4 + 8004a52: 4770 bx lr + +08004a54 : + * @brief Encoder index callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_EncoderIndexCallback(TIM_HandleTypeDef *htim) +{ + 8004a54: b480 push {r7} + 8004a56: b083 sub sp, #12 + 8004a58: af00 add r7, sp, #0 + 8004a5a: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_EncoderIndexCallback could be implemented in the user file + */ +} + 8004a5c: bf00 nop + 8004a5e: 370c adds r7, #12 + 8004a60: 46bd mov sp, r7 + 8004a62: f85d 7b04 ldr.w r7, [sp], #4 + 8004a66: 4770 bx lr + +08004a68 : + * @brief Direction change callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_DirectionChangeCallback(TIM_HandleTypeDef *htim) +{ + 8004a68: b480 push {r7} + 8004a6a: b083 sub sp, #12 + 8004a6c: af00 add r7, sp, #0 + 8004a6e: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_DirectionChangeCallback could be implemented in the user file + */ +} + 8004a70: bf00 nop + 8004a72: 370c adds r7, #12 + 8004a74: 46bd mov sp, r7 + 8004a76: f85d 7b04 ldr.w r7, [sp], #4 + 8004a7a: 4770 bx lr + +08004a7c : + * @brief Index error callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_IndexErrorCallback(TIM_HandleTypeDef *htim) +{ + 8004a7c: b480 push {r7} + 8004a7e: b083 sub sp, #12 + 8004a80: af00 add r7, sp, #0 + 8004a82: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_IndexErrorCallback could be implemented in the user file + */ +} + 8004a84: bf00 nop + 8004a86: 370c adds r7, #12 + 8004a88: 46bd mov sp, r7 + 8004a8a: f85d 7b04 ldr.w r7, [sp], #4 + 8004a8e: 4770 bx lr + +08004a90 : + * @brief Transition error callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_TransitionErrorCallback(TIM_HandleTypeDef *htim) +{ + 8004a90: b480 push {r7} + 8004a92: b083 sub sp, #12 + 8004a94: af00 add r7, sp, #0 + 8004a96: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_TransitionErrorCallback could be implemented in the user file + */ +} + 8004a98: bf00 nop + 8004a9a: 370c adds r7, #12 + 8004a9c: 46bd mov sp, r7 + 8004a9e: f85d 7b04 ldr.w r7, [sp], #4 + 8004aa2: 4770 bx lr + +08004aa4 : + * parameters in the UART_InitTypeDef and initialize the associated handle. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) +{ + 8004aa4: b580 push {r7, lr} + 8004aa6: b082 sub sp, #8 + 8004aa8: af00 add r7, sp, #0 + 8004aaa: 6078 str r0, [r7, #4] + /* Check the UART handle allocation */ + if (huart == NULL) + 8004aac: 687b ldr r3, [r7, #4] + 8004aae: 2b00 cmp r3, #0 + 8004ab0: d101 bne.n 8004ab6 + { + return HAL_ERROR; + 8004ab2: 2301 movs r3, #1 + 8004ab4: e042 b.n 8004b3c + { + /* Check the parameters */ + assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); + } + + if (huart->gState == HAL_UART_STATE_RESET) + 8004ab6: 687b ldr r3, [r7, #4] + 8004ab8: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8004abc: 2b00 cmp r3, #0 + 8004abe: d106 bne.n 8004ace + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + 8004ac0: 687b ldr r3, [r7, #4] + 8004ac2: 2200 movs r2, #0 + 8004ac4: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK */ + HAL_UART_MspInit(huart); + 8004ac8: 6878 ldr r0, [r7, #4] + 8004aca: f7fc fa5d bl 8000f88 +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + 8004ace: 687b ldr r3, [r7, #4] + 8004ad0: 2224 movs r2, #36 @ 0x24 + 8004ad2: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + __HAL_UART_DISABLE(huart); + 8004ad6: 687b ldr r3, [r7, #4] + 8004ad8: 681b ldr r3, [r3, #0] + 8004ada: 681a ldr r2, [r3, #0] + 8004adc: 687b ldr r3, [r7, #4] + 8004ade: 681b ldr r3, [r3, #0] + 8004ae0: f022 0201 bic.w r2, r2, #1 + 8004ae4: 601a str r2, [r3, #0] + + /* Perform advanced settings configuration */ + /* For some items, configuration requires to be done prior TE and RE bits are set */ + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 8004ae6: 687b ldr r3, [r7, #4] + 8004ae8: 6a9b ldr r3, [r3, #40] @ 0x28 + 8004aea: 2b00 cmp r3, #0 + 8004aec: d002 beq.n 8004af4 + { + UART_AdvFeatureConfig(huart); + 8004aee: 6878 ldr r0, [r7, #4] + 8004af0: f000 ff26 bl 8005940 + } + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + 8004af4: 6878 ldr r0, [r7, #4] + 8004af6: f000 fc57 bl 80053a8 + 8004afa: 4603 mov r3, r0 + 8004afc: 2b01 cmp r3, #1 + 8004afe: d101 bne.n 8004b04 + { + return HAL_ERROR; + 8004b00: 2301 movs r3, #1 + 8004b02: e01b b.n 8004b3c + } + + /* In asynchronous mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ + CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + 8004b04: 687b ldr r3, [r7, #4] + 8004b06: 681b ldr r3, [r3, #0] + 8004b08: 685a ldr r2, [r3, #4] + 8004b0a: 687b ldr r3, [r7, #4] + 8004b0c: 681b ldr r3, [r3, #0] + 8004b0e: f422 4290 bic.w r2, r2, #18432 @ 0x4800 + 8004b12: 605a str r2, [r3, #4] + CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + 8004b14: 687b ldr r3, [r7, #4] + 8004b16: 681b ldr r3, [r3, #0] + 8004b18: 689a ldr r2, [r3, #8] + 8004b1a: 687b ldr r3, [r7, #4] + 8004b1c: 681b ldr r3, [r3, #0] + 8004b1e: f022 022a bic.w r2, r2, #42 @ 0x2a + 8004b22: 609a str r2, [r3, #8] + + __HAL_UART_ENABLE(huart); + 8004b24: 687b ldr r3, [r7, #4] + 8004b26: 681b ldr r3, [r3, #0] + 8004b28: 681a ldr r2, [r3, #0] + 8004b2a: 687b ldr r3, [r7, #4] + 8004b2c: 681b ldr r3, [r3, #0] + 8004b2e: f042 0201 orr.w r2, r2, #1 + 8004b32: 601a str r2, [r3, #0] + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); + 8004b34: 6878 ldr r0, [r7, #4] + 8004b36: f000 ffa5 bl 8005a84 + 8004b3a: 4603 mov r3, r0 +} + 8004b3c: 4618 mov r0, r3 + 8004b3e: 3708 adds r7, #8 + 8004b40: 46bd mov sp, r7 + 8004b42: bd80 pop {r7, pc} + +08004b44 : + * @param Size Amount of data elements (u8 or u16) to be sent. + * @param Timeout Timeout duration. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + 8004b44: b580 push {r7, lr} + 8004b46: b08a sub sp, #40 @ 0x28 + 8004b48: af02 add r7, sp, #8 + 8004b4a: 60f8 str r0, [r7, #12] + 8004b4c: 60b9 str r1, [r7, #8] + 8004b4e: 603b str r3, [r7, #0] + 8004b50: 4613 mov r3, r2 + 8004b52: 80fb strh r3, [r7, #6] + const uint8_t *pdata8bits; + const uint16_t *pdata16bits; + uint32_t tickstart; + + /* Check that a Tx process is not already ongoing */ + if (huart->gState == HAL_UART_STATE_READY) + 8004b54: 68fb ldr r3, [r7, #12] + 8004b56: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8004b5a: 2b20 cmp r3, #32 + 8004b5c: d17b bne.n 8004c56 + { + if ((pData == NULL) || (Size == 0U)) + 8004b5e: 68bb ldr r3, [r7, #8] + 8004b60: 2b00 cmp r3, #0 + 8004b62: d002 beq.n 8004b6a + 8004b64: 88fb ldrh r3, [r7, #6] + 8004b66: 2b00 cmp r3, #0 + 8004b68: d101 bne.n 8004b6e + { + return HAL_ERROR; + 8004b6a: 2301 movs r3, #1 + 8004b6c: e074 b.n 8004c58 + } + + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8004b6e: 68fb ldr r3, [r7, #12] + 8004b70: 2200 movs r2, #0 + 8004b72: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + huart->gState = HAL_UART_STATE_BUSY_TX; + 8004b76: 68fb ldr r3, [r7, #12] + 8004b78: 2221 movs r2, #33 @ 0x21 + 8004b7a: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + 8004b7e: f7fc fb47 bl 8001210 + 8004b82: 6178 str r0, [r7, #20] + + huart->TxXferSize = Size; + 8004b84: 68fb ldr r3, [r7, #12] + 8004b86: 88fa ldrh r2, [r7, #6] + 8004b88: f8a3 2054 strh.w r2, [r3, #84] @ 0x54 + huart->TxXferCount = Size; + 8004b8c: 68fb ldr r3, [r7, #12] + 8004b8e: 88fa ldrh r2, [r7, #6] + 8004b90: f8a3 2056 strh.w r2, [r3, #86] @ 0x56 + + /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + 8004b94: 68fb ldr r3, [r7, #12] + 8004b96: 689b ldr r3, [r3, #8] + 8004b98: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 8004b9c: d108 bne.n 8004bb0 + 8004b9e: 68fb ldr r3, [r7, #12] + 8004ba0: 691b ldr r3, [r3, #16] + 8004ba2: 2b00 cmp r3, #0 + 8004ba4: d104 bne.n 8004bb0 + { + pdata8bits = NULL; + 8004ba6: 2300 movs r3, #0 + 8004ba8: 61fb str r3, [r7, #28] + pdata16bits = (const uint16_t *) pData; + 8004baa: 68bb ldr r3, [r7, #8] + 8004bac: 61bb str r3, [r7, #24] + 8004bae: e003 b.n 8004bb8 + } + else + { + pdata8bits = pData; + 8004bb0: 68bb ldr r3, [r7, #8] + 8004bb2: 61fb str r3, [r7, #28] + pdata16bits = NULL; + 8004bb4: 2300 movs r3, #0 + 8004bb6: 61bb str r3, [r7, #24] + } + + while (huart->TxXferCount > 0U) + 8004bb8: e030 b.n 8004c1c + { + if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) + 8004bba: 683b ldr r3, [r7, #0] + 8004bbc: 9300 str r3, [sp, #0] + 8004bbe: 697b ldr r3, [r7, #20] + 8004bc0: 2200 movs r2, #0 + 8004bc2: 2180 movs r1, #128 @ 0x80 + 8004bc4: 68f8 ldr r0, [r7, #12] + 8004bc6: f001 f807 bl 8005bd8 + 8004bca: 4603 mov r3, r0 + 8004bcc: 2b00 cmp r3, #0 + 8004bce: d005 beq.n 8004bdc + { + + huart->gState = HAL_UART_STATE_READY; + 8004bd0: 68fb ldr r3, [r7, #12] + 8004bd2: 2220 movs r2, #32 + 8004bd4: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + return HAL_TIMEOUT; + 8004bd8: 2303 movs r3, #3 + 8004bda: e03d b.n 8004c58 + } + if (pdata8bits == NULL) + 8004bdc: 69fb ldr r3, [r7, #28] + 8004bde: 2b00 cmp r3, #0 + 8004be0: d10b bne.n 8004bfa + { + huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); + 8004be2: 69bb ldr r3, [r7, #24] + 8004be4: 881b ldrh r3, [r3, #0] + 8004be6: 461a mov r2, r3 + 8004be8: 68fb ldr r3, [r7, #12] + 8004bea: 681b ldr r3, [r3, #0] + 8004bec: f3c2 0208 ubfx r2, r2, #0, #9 + 8004bf0: 629a str r2, [r3, #40] @ 0x28 + pdata16bits++; + 8004bf2: 69bb ldr r3, [r7, #24] + 8004bf4: 3302 adds r3, #2 + 8004bf6: 61bb str r3, [r7, #24] + 8004bf8: e007 b.n 8004c0a + } + else + { + huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); + 8004bfa: 69fb ldr r3, [r7, #28] + 8004bfc: 781a ldrb r2, [r3, #0] + 8004bfe: 68fb ldr r3, [r7, #12] + 8004c00: 681b ldr r3, [r3, #0] + 8004c02: 629a str r2, [r3, #40] @ 0x28 + pdata8bits++; + 8004c04: 69fb ldr r3, [r7, #28] + 8004c06: 3301 adds r3, #1 + 8004c08: 61fb str r3, [r7, #28] + } + huart->TxXferCount--; + 8004c0a: 68fb ldr r3, [r7, #12] + 8004c0c: f8b3 3056 ldrh.w r3, [r3, #86] @ 0x56 + 8004c10: b29b uxth r3, r3 + 8004c12: 3b01 subs r3, #1 + 8004c14: b29a uxth r2, r3 + 8004c16: 68fb ldr r3, [r7, #12] + 8004c18: f8a3 2056 strh.w r2, [r3, #86] @ 0x56 + while (huart->TxXferCount > 0U) + 8004c1c: 68fb ldr r3, [r7, #12] + 8004c1e: f8b3 3056 ldrh.w r3, [r3, #86] @ 0x56 + 8004c22: b29b uxth r3, r3 + 8004c24: 2b00 cmp r3, #0 + 8004c26: d1c8 bne.n 8004bba + } + + if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) + 8004c28: 683b ldr r3, [r7, #0] + 8004c2a: 9300 str r3, [sp, #0] + 8004c2c: 697b ldr r3, [r7, #20] + 8004c2e: 2200 movs r2, #0 + 8004c30: 2140 movs r1, #64 @ 0x40 + 8004c32: 68f8 ldr r0, [r7, #12] + 8004c34: f000 ffd0 bl 8005bd8 + 8004c38: 4603 mov r3, r0 + 8004c3a: 2b00 cmp r3, #0 + 8004c3c: d005 beq.n 8004c4a + { + huart->gState = HAL_UART_STATE_READY; + 8004c3e: 68fb ldr r3, [r7, #12] + 8004c40: 2220 movs r2, #32 + 8004c42: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + return HAL_TIMEOUT; + 8004c46: 2303 movs r3, #3 + 8004c48: e006 b.n 8004c58 + } + + /* At end of Tx process, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + 8004c4a: 68fb ldr r3, [r7, #12] + 8004c4c: 2220 movs r2, #32 + 8004c4e: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + return HAL_OK; + 8004c52: 2300 movs r3, #0 + 8004c54: e000 b.n 8004c58 + } + else + { + return HAL_BUSY; + 8004c56: 2302 movs r3, #2 + } +} + 8004c58: 4618 mov r0, r3 + 8004c5a: 3720 adds r7, #32 + 8004c5c: 46bd mov sp, r7 + 8004c5e: bd80 pop {r7, pc} + +08004c60 : + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + 8004c60: b580 push {r7, lr} + 8004c62: b08a sub sp, #40 @ 0x28 + 8004c64: af00 add r7, sp, #0 + 8004c66: 60f8 str r0, [r7, #12] + 8004c68: 60b9 str r1, [r7, #8] + 8004c6a: 4613 mov r3, r2 + 8004c6c: 80fb strh r3, [r7, #6] + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + 8004c6e: 68fb ldr r3, [r7, #12] + 8004c70: f8d3 308c ldr.w r3, [r3, #140] @ 0x8c + 8004c74: 2b20 cmp r3, #32 + 8004c76: d137 bne.n 8004ce8 + { + if ((pData == NULL) || (Size == 0U)) + 8004c78: 68bb ldr r3, [r7, #8] + 8004c7a: 2b00 cmp r3, #0 + 8004c7c: d002 beq.n 8004c84 + 8004c7e: 88fb ldrh r3, [r7, #6] + 8004c80: 2b00 cmp r3, #0 + 8004c82: d101 bne.n 8004c88 + { + return HAL_ERROR; + 8004c84: 2301 movs r3, #1 + 8004c86: e030 b.n 8004cea + } + + /* Set Reception type to Standard reception */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8004c88: 68fb ldr r3, [r7, #12] + 8004c8a: 2200 movs r2, #0 + 8004c8c: 66da str r2, [r3, #108] @ 0x6c + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + 8004c8e: 68fb ldr r3, [r7, #12] + 8004c90: 681b ldr r3, [r3, #0] + 8004c92: 4a18 ldr r2, [pc, #96] @ (8004cf4 ) + 8004c94: 4293 cmp r3, r2 + 8004c96: d01f beq.n 8004cd8 + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + 8004c98: 68fb ldr r3, [r7, #12] + 8004c9a: 681b ldr r3, [r3, #0] + 8004c9c: 685b ldr r3, [r3, #4] + 8004c9e: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 8004ca2: 2b00 cmp r3, #0 + 8004ca4: d018 beq.n 8004cd8 + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + 8004ca6: 68fb ldr r3, [r7, #12] + 8004ca8: 681b ldr r3, [r3, #0] + 8004caa: 617b str r3, [r7, #20] + */ +__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8004cac: 697b ldr r3, [r7, #20] + 8004cae: e853 3f00 ldrex r3, [r3] + 8004cb2: 613b str r3, [r7, #16] + return(result); + 8004cb4: 693b ldr r3, [r7, #16] + 8004cb6: f043 6380 orr.w r3, r3, #67108864 @ 0x4000000 + 8004cba: 627b str r3, [r7, #36] @ 0x24 + 8004cbc: 68fb ldr r3, [r7, #12] + 8004cbe: 681b ldr r3, [r3, #0] + 8004cc0: 461a mov r2, r3 + 8004cc2: 6a7b ldr r3, [r7, #36] @ 0x24 + 8004cc4: 623b str r3, [r7, #32] + 8004cc6: 61fa str r2, [r7, #28] + */ +__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8004cc8: 69f9 ldr r1, [r7, #28] + 8004cca: 6a3a ldr r2, [r7, #32] + 8004ccc: e841 2300 strex r3, r2, [r1] + 8004cd0: 61bb str r3, [r7, #24] + return(result); + 8004cd2: 69bb ldr r3, [r7, #24] + 8004cd4: 2b00 cmp r3, #0 + 8004cd6: d1e6 bne.n 8004ca6 + } + } + + return (UART_Start_Receive_IT(huart, pData, Size)); + 8004cd8: 88fb ldrh r3, [r7, #6] + 8004cda: 461a mov r2, r3 + 8004cdc: 68b9 ldr r1, [r7, #8] + 8004cde: 68f8 ldr r0, [r7, #12] + 8004ce0: f000 ffe8 bl 8005cb4 + 8004ce4: 4603 mov r3, r0 + 8004ce6: e000 b.n 8004cea + } + else + { + return HAL_BUSY; + 8004ce8: 2302 movs r3, #2 + } +} + 8004cea: 4618 mov r0, r3 + 8004cec: 3728 adds r7, #40 @ 0x28 + 8004cee: 46bd mov sp, r7 + 8004cf0: bd80 pop {r7, pc} + 8004cf2: bf00 nop + 8004cf4: 40008000 .word 0x40008000 + +08004cf8 : + * @brief Handle UART interrupt request. + * @param huart UART handle. + * @retval None + */ +void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) +{ + 8004cf8: b580 push {r7, lr} + 8004cfa: b0ba sub sp, #232 @ 0xe8 + 8004cfc: af00 add r7, sp, #0 + 8004cfe: 6078 str r0, [r7, #4] + uint32_t isrflags = READ_REG(huart->Instance->ISR); + 8004d00: 687b ldr r3, [r7, #4] + 8004d02: 681b ldr r3, [r3, #0] + 8004d04: 69db ldr r3, [r3, #28] + 8004d06: f8c7 30e4 str.w r3, [r7, #228] @ 0xe4 + uint32_t cr1its = READ_REG(huart->Instance->CR1); + 8004d0a: 687b ldr r3, [r7, #4] + 8004d0c: 681b ldr r3, [r3, #0] + 8004d0e: 681b ldr r3, [r3, #0] + 8004d10: f8c7 30e0 str.w r3, [r7, #224] @ 0xe0 + uint32_t cr3its = READ_REG(huart->Instance->CR3); + 8004d14: 687b ldr r3, [r7, #4] + 8004d16: 681b ldr r3, [r3, #0] + 8004d18: 689b ldr r3, [r3, #8] + 8004d1a: f8c7 30dc str.w r3, [r7, #220] @ 0xdc + + uint32_t errorflags; + uint32_t errorcode; + + /* If no error occurs */ + errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF)); + 8004d1e: f8d7 20e4 ldr.w r2, [r7, #228] @ 0xe4 + 8004d22: f640 030f movw r3, #2063 @ 0x80f + 8004d26: 4013 ands r3, r2 + 8004d28: f8c7 30d8 str.w r3, [r7, #216] @ 0xd8 + if (errorflags == 0U) + 8004d2c: f8d7 30d8 ldr.w r3, [r7, #216] @ 0xd8 + 8004d30: 2b00 cmp r3, #0 + 8004d32: d11b bne.n 8004d6c + { + /* UART in mode Receiver ---------------------------------------------------*/ + if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) + 8004d34: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004d38: f003 0320 and.w r3, r3, #32 + 8004d3c: 2b00 cmp r3, #0 + 8004d3e: d015 beq.n 8004d6c + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + 8004d40: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8004d44: f003 0320 and.w r3, r3, #32 + 8004d48: 2b00 cmp r3, #0 + 8004d4a: d105 bne.n 8004d58 + || ((cr3its & USART_CR3_RXFTIE) != 0U))) + 8004d4c: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc + 8004d50: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8004d54: 2b00 cmp r3, #0 + 8004d56: d009 beq.n 8004d6c + { + if (huart->RxISR != NULL) + 8004d58: 687b ldr r3, [r7, #4] + 8004d5a: 6f5b ldr r3, [r3, #116] @ 0x74 + 8004d5c: 2b00 cmp r3, #0 + 8004d5e: f000 8300 beq.w 8005362 + { + huart->RxISR(huart); + 8004d62: 687b ldr r3, [r7, #4] + 8004d64: 6f5b ldr r3, [r3, #116] @ 0x74 + 8004d66: 6878 ldr r0, [r7, #4] + 8004d68: 4798 blx r3 + } + return; + 8004d6a: e2fa b.n 8005362 + } + } + + /* If some errors occur */ + if ((errorflags != 0U) + 8004d6c: f8d7 30d8 ldr.w r3, [r7, #216] @ 0xd8 + 8004d70: 2b00 cmp r3, #0 + 8004d72: f000 8123 beq.w 8004fbc + && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U) + 8004d76: f8d7 20dc ldr.w r2, [r7, #220] @ 0xdc + 8004d7a: 4b8d ldr r3, [pc, #564] @ (8004fb0 ) + 8004d7c: 4013 ands r3, r2 + 8004d7e: 2b00 cmp r3, #0 + 8004d80: d106 bne.n 8004d90 + || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) + 8004d82: f8d7 20e0 ldr.w r2, [r7, #224] @ 0xe0 + 8004d86: 4b8b ldr r3, [pc, #556] @ (8004fb4 ) + 8004d88: 4013 ands r3, r2 + 8004d8a: 2b00 cmp r3, #0 + 8004d8c: f000 8116 beq.w 8004fbc + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + 8004d90: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004d94: f003 0301 and.w r3, r3, #1 + 8004d98: 2b00 cmp r3, #0 + 8004d9a: d011 beq.n 8004dc0 + 8004d9c: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8004da0: f403 7380 and.w r3, r3, #256 @ 0x100 + 8004da4: 2b00 cmp r3, #0 + 8004da6: d00b beq.n 8004dc0 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + 8004da8: 687b ldr r3, [r7, #4] + 8004daa: 681b ldr r3, [r3, #0] + 8004dac: 2201 movs r2, #1 + 8004dae: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_PE; + 8004db0: 687b ldr r3, [r7, #4] + 8004db2: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004db6: f043 0201 orr.w r2, r3, #1 + 8004dba: 687b ldr r3, [r7, #4] + 8004dbc: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 8004dc0: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004dc4: f003 0302 and.w r3, r3, #2 + 8004dc8: 2b00 cmp r3, #0 + 8004dca: d011 beq.n 8004df0 + 8004dcc: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc + 8004dd0: f003 0301 and.w r3, r3, #1 + 8004dd4: 2b00 cmp r3, #0 + 8004dd6: d00b beq.n 8004df0 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + 8004dd8: 687b ldr r3, [r7, #4] + 8004dda: 681b ldr r3, [r3, #0] + 8004ddc: 2202 movs r2, #2 + 8004dde: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_FE; + 8004de0: 687b ldr r3, [r7, #4] + 8004de2: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004de6: f043 0204 orr.w r2, r3, #4 + 8004dea: 687b ldr r3, [r7, #4] + 8004dec: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 8004df0: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004df4: f003 0304 and.w r3, r3, #4 + 8004df8: 2b00 cmp r3, #0 + 8004dfa: d011 beq.n 8004e20 + 8004dfc: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc + 8004e00: f003 0301 and.w r3, r3, #1 + 8004e04: 2b00 cmp r3, #0 + 8004e06: d00b beq.n 8004e20 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + 8004e08: 687b ldr r3, [r7, #4] + 8004e0a: 681b ldr r3, [r3, #0] + 8004e0c: 2204 movs r2, #4 + 8004e0e: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_NE; + 8004e10: 687b ldr r3, [r7, #4] + 8004e12: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004e16: f043 0202 orr.w r2, r3, #2 + 8004e1a: 687b ldr r3, [r7, #4] + 8004e1c: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART Over-Run interrupt occurred -----------------------------------------*/ + if (((isrflags & USART_ISR_ORE) != 0U) + 8004e20: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004e24: f003 0308 and.w r3, r3, #8 + 8004e28: 2b00 cmp r3, #0 + 8004e2a: d017 beq.n 8004e5c + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || + 8004e2c: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8004e30: f003 0320 and.w r3, r3, #32 + 8004e34: 2b00 cmp r3, #0 + 8004e36: d105 bne.n 8004e44 + ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) + 8004e38: f8d7 20dc ldr.w r2, [r7, #220] @ 0xdc + 8004e3c: 4b5c ldr r3, [pc, #368] @ (8004fb0 ) + 8004e3e: 4013 ands r3, r2 + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || + 8004e40: 2b00 cmp r3, #0 + 8004e42: d00b beq.n 8004e5c + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); + 8004e44: 687b ldr r3, [r7, #4] + 8004e46: 681b ldr r3, [r3, #0] + 8004e48: 2208 movs r2, #8 + 8004e4a: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_ORE; + 8004e4c: 687b ldr r3, [r7, #4] + 8004e4e: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004e52: f043 0208 orr.w r2, r3, #8 + 8004e56: 687b ldr r3, [r7, #4] + 8004e58: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART Receiver Timeout interrupt occurred ---------------------------------*/ + if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) + 8004e5c: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004e60: f403 6300 and.w r3, r3, #2048 @ 0x800 + 8004e64: 2b00 cmp r3, #0 + 8004e66: d012 beq.n 8004e8e + 8004e68: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8004e6c: f003 6380 and.w r3, r3, #67108864 @ 0x4000000 + 8004e70: 2b00 cmp r3, #0 + 8004e72: d00c beq.n 8004e8e + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); + 8004e74: 687b ldr r3, [r7, #4] + 8004e76: 681b ldr r3, [r3, #0] + 8004e78: f44f 6200 mov.w r2, #2048 @ 0x800 + 8004e7c: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_RTO; + 8004e7e: 687b ldr r3, [r7, #4] + 8004e80: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004e84: f043 0220 orr.w r2, r3, #32 + 8004e88: 687b ldr r3, [r7, #4] + 8004e8a: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* Call UART Error Call back function if need be ----------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + 8004e8e: 687b ldr r3, [r7, #4] + 8004e90: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004e94: 2b00 cmp r3, #0 + 8004e96: f000 8266 beq.w 8005366 + { + /* UART in mode Receiver --------------------------------------------------*/ + if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) + 8004e9a: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004e9e: f003 0320 and.w r3, r3, #32 + 8004ea2: 2b00 cmp r3, #0 + 8004ea4: d013 beq.n 8004ece + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + 8004ea6: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8004eaa: f003 0320 and.w r3, r3, #32 + 8004eae: 2b00 cmp r3, #0 + 8004eb0: d105 bne.n 8004ebe + || ((cr3its & USART_CR3_RXFTIE) != 0U))) + 8004eb2: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc + 8004eb6: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8004eba: 2b00 cmp r3, #0 + 8004ebc: d007 beq.n 8004ece + { + if (huart->RxISR != NULL) + 8004ebe: 687b ldr r3, [r7, #4] + 8004ec0: 6f5b ldr r3, [r3, #116] @ 0x74 + 8004ec2: 2b00 cmp r3, #0 + 8004ec4: d003 beq.n 8004ece + { + huart->RxISR(huart); + 8004ec6: 687b ldr r3, [r7, #4] + 8004ec8: 6f5b ldr r3, [r3, #116] @ 0x74 + 8004eca: 6878 ldr r0, [r7, #4] + 8004ecc: 4798 blx r3 + /* If Error is to be considered as blocking : + - Receiver Timeout error in Reception + - Overrun error in Reception + - any error occurs in DMA mode reception + */ + errorcode = huart->ErrorCode; + 8004ece: 687b ldr r3, [r7, #4] + 8004ed0: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8004ed4: f8c7 30d4 str.w r3, [r7, #212] @ 0xd4 + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + 8004ed8: 687b ldr r3, [r7, #4] + 8004eda: 681b ldr r3, [r3, #0] + 8004edc: 689b ldr r3, [r3, #8] + 8004ede: f003 0340 and.w r3, r3, #64 @ 0x40 + 8004ee2: 2b40 cmp r3, #64 @ 0x40 + 8004ee4: d005 beq.n 8004ef2 + ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) + 8004ee6: f8d7 30d4 ldr.w r3, [r7, #212] @ 0xd4 + 8004eea: f003 0328 and.w r3, r3, #40 @ 0x28 + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + 8004eee: 2b00 cmp r3, #0 + 8004ef0: d054 beq.n 8004f9c + { + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ + UART_EndRxTransfer(huart); + 8004ef2: 6878 ldr r0, [r7, #4] + 8004ef4: f001 f800 bl 8005ef8 + + /* Abort the UART DMA Rx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8004ef8: 687b ldr r3, [r7, #4] + 8004efa: 681b ldr r3, [r3, #0] + 8004efc: 689b ldr r3, [r3, #8] + 8004efe: f003 0340 and.w r3, r3, #64 @ 0x40 + 8004f02: 2b40 cmp r3, #64 @ 0x40 + 8004f04: d146 bne.n 8004f94 + { + /* Disable the UART DMA Rx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + 8004f06: 687b ldr r3, [r7, #4] + 8004f08: 681b ldr r3, [r3, #0] + 8004f0a: 3308 adds r3, #8 + 8004f0c: f8c7 309c str.w r3, [r7, #156] @ 0x9c + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8004f10: f8d7 309c ldr.w r3, [r7, #156] @ 0x9c + 8004f14: e853 3f00 ldrex r3, [r3] + 8004f18: f8c7 3098 str.w r3, [r7, #152] @ 0x98 + return(result); + 8004f1c: f8d7 3098 ldr.w r3, [r7, #152] @ 0x98 + 8004f20: f023 0340 bic.w r3, r3, #64 @ 0x40 + 8004f24: f8c7 30d0 str.w r3, [r7, #208] @ 0xd0 + 8004f28: 687b ldr r3, [r7, #4] + 8004f2a: 681b ldr r3, [r3, #0] + 8004f2c: 3308 adds r3, #8 + 8004f2e: f8d7 20d0 ldr.w r2, [r7, #208] @ 0xd0 + 8004f32: f8c7 20a8 str.w r2, [r7, #168] @ 0xa8 + 8004f36: f8c7 30a4 str.w r3, [r7, #164] @ 0xa4 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8004f3a: f8d7 10a4 ldr.w r1, [r7, #164] @ 0xa4 + 8004f3e: f8d7 20a8 ldr.w r2, [r7, #168] @ 0xa8 + 8004f42: e841 2300 strex r3, r2, [r1] + 8004f46: f8c7 30a0 str.w r3, [r7, #160] @ 0xa0 + return(result); + 8004f4a: f8d7 30a0 ldr.w r3, [r7, #160] @ 0xa0 + 8004f4e: 2b00 cmp r3, #0 + 8004f50: d1d9 bne.n 8004f06 + + /* Abort the UART DMA Rx channel */ + if (huart->hdmarx != NULL) + 8004f52: 687b ldr r3, [r7, #4] + 8004f54: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8004f58: 2b00 cmp r3, #0 + 8004f5a: d017 beq.n 8004f8c + { + /* Set the UART DMA Abort callback : + will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ + huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; + 8004f5c: 687b ldr r3, [r7, #4] + 8004f5e: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8004f62: 4a15 ldr r2, [pc, #84] @ (8004fb8 ) + 8004f64: 639a str r2, [r3, #56] @ 0x38 + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) + 8004f66: 687b ldr r3, [r7, #4] + 8004f68: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8004f6c: 4618 mov r0, r3 + 8004f6e: f7fd fef3 bl 8002d58 + 8004f72: 4603 mov r3, r0 + 8004f74: 2b00 cmp r3, #0 + 8004f76: d019 beq.n 8004fac + { + /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ + huart->hdmarx->XferAbortCallback(huart->hdmarx); + 8004f78: 687b ldr r3, [r7, #4] + 8004f7a: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8004f7e: 6b9b ldr r3, [r3, #56] @ 0x38 + 8004f80: 687a ldr r2, [r7, #4] + 8004f82: f8d2 2080 ldr.w r2, [r2, #128] @ 0x80 + 8004f86: 4610 mov r0, r2 + 8004f88: 4798 blx r3 + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8004f8a: e00f b.n 8004fac +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8004f8c: 6878 ldr r0, [r7, #4] + 8004f8e: f000 f9f5 bl 800537c + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8004f92: e00b b.n 8004fac +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8004f94: 6878 ldr r0, [r7, #4] + 8004f96: f000 f9f1 bl 800537c + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8004f9a: e007 b.n 8004fac +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8004f9c: 6878 ldr r0, [r7, #4] + 8004f9e: f000 f9ed bl 800537c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8004fa2: 687b ldr r3, [r7, #4] + 8004fa4: 2200 movs r2, #0 + 8004fa6: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + } + return; + 8004faa: e1dc b.n 8005366 + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8004fac: bf00 nop + return; + 8004fae: e1da b.n 8005366 + 8004fb0: 10000001 .word 0x10000001 + 8004fb4: 04000120 .word 0x04000120 + 8004fb8: 08005fc5 .word 0x08005fc5 + + } /* End if some error occurs */ + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 8004fbc: 687b ldr r3, [r7, #4] + 8004fbe: 6edb ldr r3, [r3, #108] @ 0x6c + 8004fc0: 2b01 cmp r3, #1 + 8004fc2: f040 8170 bne.w 80052a6 + && ((isrflags & USART_ISR_IDLE) != 0U) + 8004fc6: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 8004fca: f003 0310 and.w r3, r3, #16 + 8004fce: 2b00 cmp r3, #0 + 8004fd0: f000 8169 beq.w 80052a6 + && ((cr1its & USART_ISR_IDLE) != 0U)) + 8004fd4: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8004fd8: f003 0310 and.w r3, r3, #16 + 8004fdc: 2b00 cmp r3, #0 + 8004fde: f000 8162 beq.w 80052a6 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 8004fe2: 687b ldr r3, [r7, #4] + 8004fe4: 681b ldr r3, [r3, #0] + 8004fe6: 2210 movs r2, #16 + 8004fe8: 621a str r2, [r3, #32] + + /* Check if DMA mode is enabled in UART */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8004fea: 687b ldr r3, [r7, #4] + 8004fec: 681b ldr r3, [r3, #0] + 8004fee: 689b ldr r3, [r3, #8] + 8004ff0: f003 0340 and.w r3, r3, #64 @ 0x40 + 8004ff4: 2b40 cmp r3, #64 @ 0x40 + 8004ff6: f040 80d8 bne.w 80051aa + { + /* DMA mode enabled */ + /* Check received length : If all expected data are received, do nothing, + (DMA cplt callback will be called). + Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ + uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); + 8004ffa: 687b ldr r3, [r7, #4] + 8004ffc: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8005000: 681b ldr r3, [r3, #0] + 8005002: 685b ldr r3, [r3, #4] + 8005004: f8a7 30be strh.w r3, [r7, #190] @ 0xbe + if ((nb_remaining_rx_data > 0U) + 8005008: f8b7 30be ldrh.w r3, [r7, #190] @ 0xbe + 800500c: 2b00 cmp r3, #0 + 800500e: f000 80af beq.w 8005170 + && (nb_remaining_rx_data < huart->RxXferSize)) + 8005012: 687b ldr r3, [r7, #4] + 8005014: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 8005018: f8b7 20be ldrh.w r2, [r7, #190] @ 0xbe + 800501c: 429a cmp r2, r3 + 800501e: f080 80a7 bcs.w 8005170 + { + /* Reception is not complete */ + huart->RxXferCount = nb_remaining_rx_data; + 8005022: 687b ldr r3, [r7, #4] + 8005024: f8b7 20be ldrh.w r2, [r7, #190] @ 0xbe + 8005028: f8a3 205e strh.w r2, [r3, #94] @ 0x5e + + /* In Normal mode, end DMA xfer and HAL UART Rx process*/ + if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) + 800502c: 687b ldr r3, [r7, #4] + 800502e: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8005032: 681b ldr r3, [r3, #0] + 8005034: 681b ldr r3, [r3, #0] + 8005036: f003 0320 and.w r3, r3, #32 + 800503a: 2b00 cmp r3, #0 + 800503c: f040 8087 bne.w 800514e + { + /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + 8005040: 687b ldr r3, [r7, #4] + 8005042: 681b ldr r3, [r3, #0] + 8005044: f8c7 3088 str.w r3, [r7, #136] @ 0x88 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005048: f8d7 3088 ldr.w r3, [r7, #136] @ 0x88 + 800504c: e853 3f00 ldrex r3, [r3] + 8005050: f8c7 3084 str.w r3, [r7, #132] @ 0x84 + return(result); + 8005054: f8d7 3084 ldr.w r3, [r7, #132] @ 0x84 + 8005058: f423 7380 bic.w r3, r3, #256 @ 0x100 + 800505c: f8c7 30b8 str.w r3, [r7, #184] @ 0xb8 + 8005060: 687b ldr r3, [r7, #4] + 8005062: 681b ldr r3, [r3, #0] + 8005064: 461a mov r2, r3 + 8005066: f8d7 30b8 ldr.w r3, [r7, #184] @ 0xb8 + 800506a: f8c7 3094 str.w r3, [r7, #148] @ 0x94 + 800506e: f8c7 2090 str.w r2, [r7, #144] @ 0x90 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005072: f8d7 1090 ldr.w r1, [r7, #144] @ 0x90 + 8005076: f8d7 2094 ldr.w r2, [r7, #148] @ 0x94 + 800507a: e841 2300 strex r3, r2, [r1] + 800507e: f8c7 308c str.w r3, [r7, #140] @ 0x8c + return(result); + 8005082: f8d7 308c ldr.w r3, [r7, #140] @ 0x8c + 8005086: 2b00 cmp r3, #0 + 8005088: d1da bne.n 8005040 + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 800508a: 687b ldr r3, [r7, #4] + 800508c: 681b ldr r3, [r3, #0] + 800508e: 3308 adds r3, #8 + 8005090: 677b str r3, [r7, #116] @ 0x74 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005092: 6f7b ldr r3, [r7, #116] @ 0x74 + 8005094: e853 3f00 ldrex r3, [r3] + 8005098: 673b str r3, [r7, #112] @ 0x70 + return(result); + 800509a: 6f3b ldr r3, [r7, #112] @ 0x70 + 800509c: f023 0301 bic.w r3, r3, #1 + 80050a0: f8c7 30b4 str.w r3, [r7, #180] @ 0xb4 + 80050a4: 687b ldr r3, [r7, #4] + 80050a6: 681b ldr r3, [r3, #0] + 80050a8: 3308 adds r3, #8 + 80050aa: f8d7 20b4 ldr.w r2, [r7, #180] @ 0xb4 + 80050ae: f8c7 2080 str.w r2, [r7, #128] @ 0x80 + 80050b2: 67fb str r3, [r7, #124] @ 0x7c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80050b4: 6ff9 ldr r1, [r7, #124] @ 0x7c + 80050b6: f8d7 2080 ldr.w r2, [r7, #128] @ 0x80 + 80050ba: e841 2300 strex r3, r2, [r1] + 80050be: 67bb str r3, [r7, #120] @ 0x78 + return(result); + 80050c0: 6fbb ldr r3, [r7, #120] @ 0x78 + 80050c2: 2b00 cmp r3, #0 + 80050c4: d1e1 bne.n 800508a + + /* Disable the DMA transfer for the receiver request by resetting the DMAR bit + in the UART CR3 register */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + 80050c6: 687b ldr r3, [r7, #4] + 80050c8: 681b ldr r3, [r3, #0] + 80050ca: 3308 adds r3, #8 + 80050cc: 663b str r3, [r7, #96] @ 0x60 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80050ce: 6e3b ldr r3, [r7, #96] @ 0x60 + 80050d0: e853 3f00 ldrex r3, [r3] + 80050d4: 65fb str r3, [r7, #92] @ 0x5c + return(result); + 80050d6: 6dfb ldr r3, [r7, #92] @ 0x5c + 80050d8: f023 0340 bic.w r3, r3, #64 @ 0x40 + 80050dc: f8c7 30b0 str.w r3, [r7, #176] @ 0xb0 + 80050e0: 687b ldr r3, [r7, #4] + 80050e2: 681b ldr r3, [r3, #0] + 80050e4: 3308 adds r3, #8 + 80050e6: f8d7 20b0 ldr.w r2, [r7, #176] @ 0xb0 + 80050ea: 66fa str r2, [r7, #108] @ 0x6c + 80050ec: 66bb str r3, [r7, #104] @ 0x68 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80050ee: 6eb9 ldr r1, [r7, #104] @ 0x68 + 80050f0: 6efa ldr r2, [r7, #108] @ 0x6c + 80050f2: e841 2300 strex r3, r2, [r1] + 80050f6: 667b str r3, [r7, #100] @ 0x64 + return(result); + 80050f8: 6e7b ldr r3, [r7, #100] @ 0x64 + 80050fa: 2b00 cmp r3, #0 + 80050fc: d1e3 bne.n 80050c6 + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 80050fe: 687b ldr r3, [r7, #4] + 8005100: 2220 movs r2, #32 + 8005102: f8c3 208c str.w r2, [r3, #140] @ 0x8c + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8005106: 687b ldr r3, [r7, #4] + 8005108: 2200 movs r2, #0 + 800510a: 66da str r2, [r3, #108] @ 0x6c + + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 800510c: 687b ldr r3, [r7, #4] + 800510e: 681b ldr r3, [r3, #0] + 8005110: 64fb str r3, [r7, #76] @ 0x4c + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005112: 6cfb ldr r3, [r7, #76] @ 0x4c + 8005114: e853 3f00 ldrex r3, [r3] + 8005118: 64bb str r3, [r7, #72] @ 0x48 + return(result); + 800511a: 6cbb ldr r3, [r7, #72] @ 0x48 + 800511c: f023 0310 bic.w r3, r3, #16 + 8005120: f8c7 30ac str.w r3, [r7, #172] @ 0xac + 8005124: 687b ldr r3, [r7, #4] + 8005126: 681b ldr r3, [r3, #0] + 8005128: 461a mov r2, r3 + 800512a: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 800512e: 65bb str r3, [r7, #88] @ 0x58 + 8005130: 657a str r2, [r7, #84] @ 0x54 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005132: 6d79 ldr r1, [r7, #84] @ 0x54 + 8005134: 6dba ldr r2, [r7, #88] @ 0x58 + 8005136: e841 2300 strex r3, r2, [r1] + 800513a: 653b str r3, [r7, #80] @ 0x50 + return(result); + 800513c: 6d3b ldr r3, [r7, #80] @ 0x50 + 800513e: 2b00 cmp r3, #0 + 8005140: d1e4 bne.n 800510c + + /* Last bytes received, so no need as the abort is immediate */ + (void)HAL_DMA_Abort(huart->hdmarx); + 8005142: 687b ldr r3, [r7, #4] + 8005144: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8005148: 4618 mov r0, r3 + 800514a: f7fd fdac bl 8002ca6 + } + + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Idle Event */ + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + 800514e: 687b ldr r3, [r7, #4] + 8005150: 2202 movs r2, #2 + 8005152: 671a str r2, [r3, #112] @ 0x70 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); + 8005154: 687b ldr r3, [r7, #4] + 8005156: f8b3 205c ldrh.w r2, [r3, #92] @ 0x5c + 800515a: 687b ldr r3, [r7, #4] + 800515c: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8005160: b29b uxth r3, r3 + 8005162: 1ad3 subs r3, r2, r3 + 8005164: b29b uxth r3, r3 + 8005166: 4619 mov r1, r3 + 8005168: 6878 ldr r0, [r7, #4] + 800516a: f000 f911 bl 8005390 + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + } + } + return; + 800516e: e0fc b.n 800536a + if (nb_remaining_rx_data == huart->RxXferSize) + 8005170: 687b ldr r3, [r7, #4] + 8005172: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 8005176: f8b7 20be ldrh.w r2, [r7, #190] @ 0xbe + 800517a: 429a cmp r2, r3 + 800517c: f040 80f5 bne.w 800536a + if (HAL_IS_BIT_SET(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) + 8005180: 687b ldr r3, [r7, #4] + 8005182: f8d3 3080 ldr.w r3, [r3, #128] @ 0x80 + 8005186: 681b ldr r3, [r3, #0] + 8005188: 681b ldr r3, [r3, #0] + 800518a: f003 0320 and.w r3, r3, #32 + 800518e: 2b20 cmp r3, #32 + 8005190: f040 80eb bne.w 800536a + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + 8005194: 687b ldr r3, [r7, #4] + 8005196: 2202 movs r2, #2 + 8005198: 671a str r2, [r3, #112] @ 0x70 + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); + 800519a: 687b ldr r3, [r7, #4] + 800519c: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 80051a0: 4619 mov r1, r3 + 80051a2: 6878 ldr r0, [r7, #4] + 80051a4: f000 f8f4 bl 8005390 + return; + 80051a8: e0df b.n 800536a + else + { + /* DMA mode not enabled */ + /* Check received length : If all expected data are received, do nothing. + Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ + uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; + 80051aa: 687b ldr r3, [r7, #4] + 80051ac: f8b3 205c ldrh.w r2, [r3, #92] @ 0x5c + 80051b0: 687b ldr r3, [r7, #4] + 80051b2: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 80051b6: b29b uxth r3, r3 + 80051b8: 1ad3 subs r3, r2, r3 + 80051ba: f8a7 30ce strh.w r3, [r7, #206] @ 0xce + if ((huart->RxXferCount > 0U) + 80051be: 687b ldr r3, [r7, #4] + 80051c0: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 80051c4: b29b uxth r3, r3 + 80051c6: 2b00 cmp r3, #0 + 80051c8: f000 80d1 beq.w 800536e + && (nb_rx_data > 0U)) + 80051cc: f8b7 30ce ldrh.w r3, [r7, #206] @ 0xce + 80051d0: 2b00 cmp r3, #0 + 80051d2: f000 80cc beq.w 800536e + { + /* Disable the UART Parity Error Interrupt and RXNE interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + 80051d6: 687b ldr r3, [r7, #4] + 80051d8: 681b ldr r3, [r3, #0] + 80051da: 63bb str r3, [r7, #56] @ 0x38 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80051dc: 6bbb ldr r3, [r7, #56] @ 0x38 + 80051de: e853 3f00 ldrex r3, [r3] + 80051e2: 637b str r3, [r7, #52] @ 0x34 + return(result); + 80051e4: 6b7b ldr r3, [r7, #52] @ 0x34 + 80051e6: f423 7390 bic.w r3, r3, #288 @ 0x120 + 80051ea: f8c7 30c8 str.w r3, [r7, #200] @ 0xc8 + 80051ee: 687b ldr r3, [r7, #4] + 80051f0: 681b ldr r3, [r3, #0] + 80051f2: 461a mov r2, r3 + 80051f4: f8d7 30c8 ldr.w r3, [r7, #200] @ 0xc8 + 80051f8: 647b str r3, [r7, #68] @ 0x44 + 80051fa: 643a str r2, [r7, #64] @ 0x40 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80051fc: 6c39 ldr r1, [r7, #64] @ 0x40 + 80051fe: 6c7a ldr r2, [r7, #68] @ 0x44 + 8005200: e841 2300 strex r3, r2, [r1] + 8005204: 63fb str r3, [r7, #60] @ 0x3c + return(result); + 8005206: 6bfb ldr r3, [r7, #60] @ 0x3c + 8005208: 2b00 cmp r3, #0 + 800520a: d1e4 bne.n 80051d6 + + /* Disable the UART Error Interrupt:(Frame error, noise error, overrun error) and RX FIFO Threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 800520c: 687b ldr r3, [r7, #4] + 800520e: 681b ldr r3, [r3, #0] + 8005210: 3308 adds r3, #8 + 8005212: 627b str r3, [r7, #36] @ 0x24 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005214: 6a7b ldr r3, [r7, #36] @ 0x24 + 8005216: e853 3f00 ldrex r3, [r3] + 800521a: 623b str r3, [r7, #32] + return(result); + 800521c: 6a3b ldr r3, [r7, #32] + 800521e: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8005222: f023 0301 bic.w r3, r3, #1 + 8005226: f8c7 30c4 str.w r3, [r7, #196] @ 0xc4 + 800522a: 687b ldr r3, [r7, #4] + 800522c: 681b ldr r3, [r3, #0] + 800522e: 3308 adds r3, #8 + 8005230: f8d7 20c4 ldr.w r2, [r7, #196] @ 0xc4 + 8005234: 633a str r2, [r7, #48] @ 0x30 + 8005236: 62fb str r3, [r7, #44] @ 0x2c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005238: 6af9 ldr r1, [r7, #44] @ 0x2c + 800523a: 6b3a ldr r2, [r7, #48] @ 0x30 + 800523c: e841 2300 strex r3, r2, [r1] + 8005240: 62bb str r3, [r7, #40] @ 0x28 + return(result); + 8005242: 6abb ldr r3, [r7, #40] @ 0x28 + 8005244: 2b00 cmp r3, #0 + 8005246: d1e1 bne.n 800520c + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 8005248: 687b ldr r3, [r7, #4] + 800524a: 2220 movs r2, #32 + 800524c: f8c3 208c str.w r2, [r3, #140] @ 0x8c + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8005250: 687b ldr r3, [r7, #4] + 8005252: 2200 movs r2, #0 + 8005254: 66da str r2, [r3, #108] @ 0x6c + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + 8005256: 687b ldr r3, [r7, #4] + 8005258: 2200 movs r2, #0 + 800525a: 675a str r2, [r3, #116] @ 0x74 + + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 800525c: 687b ldr r3, [r7, #4] + 800525e: 681b ldr r3, [r3, #0] + 8005260: 613b str r3, [r7, #16] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005262: 693b ldr r3, [r7, #16] + 8005264: e853 3f00 ldrex r3, [r3] + 8005268: 60fb str r3, [r7, #12] + return(result); + 800526a: 68fb ldr r3, [r7, #12] + 800526c: f023 0310 bic.w r3, r3, #16 + 8005270: f8c7 30c0 str.w r3, [r7, #192] @ 0xc0 + 8005274: 687b ldr r3, [r7, #4] + 8005276: 681b ldr r3, [r3, #0] + 8005278: 461a mov r2, r3 + 800527a: f8d7 30c0 ldr.w r3, [r7, #192] @ 0xc0 + 800527e: 61fb str r3, [r7, #28] + 8005280: 61ba str r2, [r7, #24] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005282: 69b9 ldr r1, [r7, #24] + 8005284: 69fa ldr r2, [r7, #28] + 8005286: e841 2300 strex r3, r2, [r1] + 800528a: 617b str r3, [r7, #20] + return(result); + 800528c: 697b ldr r3, [r7, #20] + 800528e: 2b00 cmp r3, #0 + 8005290: d1e4 bne.n 800525c + + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Idle Event */ + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + 8005292: 687b ldr r3, [r7, #4] + 8005294: 2202 movs r2, #2 + 8005296: 671a str r2, [r3, #112] @ 0x70 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxEventCallback(huart, nb_rx_data); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, nb_rx_data); + 8005298: f8b7 30ce ldrh.w r3, [r7, #206] @ 0xce + 800529c: 4619 mov r1, r3 + 800529e: 6878 ldr r0, [r7, #4] + 80052a0: f000 f876 bl 8005390 +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + return; + 80052a4: e063 b.n 800536e + } + } + + /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ + if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) + 80052a6: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 80052aa: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 80052ae: 2b00 cmp r3, #0 + 80052b0: d00e beq.n 80052d0 + 80052b2: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc + 80052b6: f403 0380 and.w r3, r3, #4194304 @ 0x400000 + 80052ba: 2b00 cmp r3, #0 + 80052bc: d008 beq.n 80052d0 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); + 80052be: 687b ldr r3, [r7, #4] + 80052c0: 681b ldr r3, [r3, #0] + 80052c2: f44f 1280 mov.w r2, #1048576 @ 0x100000 + 80052c6: 621a str r2, [r3, #32] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Wakeup Callback */ + huart->WakeupCallback(huart); +#else + /* Call legacy weak Wakeup Callback */ + HAL_UARTEx_WakeupCallback(huart); + 80052c8: 6878 ldr r0, [r7, #4] + 80052ca: f001 fbd9 bl 8006a80 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + return; + 80052ce: e051 b.n 8005374 + } + + /* UART in mode Transmitter ------------------------------------------------*/ + if (((isrflags & USART_ISR_TXE_TXFNF) != 0U) + 80052d0: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 80052d4: f003 0380 and.w r3, r3, #128 @ 0x80 + 80052d8: 2b00 cmp r3, #0 + 80052da: d014 beq.n 8005306 + && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) + 80052dc: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 80052e0: f003 0380 and.w r3, r3, #128 @ 0x80 + 80052e4: 2b00 cmp r3, #0 + 80052e6: d105 bne.n 80052f4 + || ((cr3its & USART_CR3_TXFTIE) != 0U))) + 80052e8: f8d7 30dc ldr.w r3, [r7, #220] @ 0xdc + 80052ec: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 80052f0: 2b00 cmp r3, #0 + 80052f2: d008 beq.n 8005306 + { + if (huart->TxISR != NULL) + 80052f4: 687b ldr r3, [r7, #4] + 80052f6: 6f9b ldr r3, [r3, #120] @ 0x78 + 80052f8: 2b00 cmp r3, #0 + 80052fa: d03a beq.n 8005372 + { + huart->TxISR(huart); + 80052fc: 687b ldr r3, [r7, #4] + 80052fe: 6f9b ldr r3, [r3, #120] @ 0x78 + 8005300: 6878 ldr r0, [r7, #4] + 8005302: 4798 blx r3 + } + return; + 8005304: e035 b.n 8005372 + } + + /* UART in mode Transmitter (transmission end) -----------------------------*/ + if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) + 8005306: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 800530a: f003 0340 and.w r3, r3, #64 @ 0x40 + 800530e: 2b00 cmp r3, #0 + 8005310: d009 beq.n 8005326 + 8005312: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8005316: f003 0340 and.w r3, r3, #64 @ 0x40 + 800531a: 2b00 cmp r3, #0 + 800531c: d003 beq.n 8005326 + { + UART_EndTransmit_IT(huart); + 800531e: 6878 ldr r0, [r7, #4] + 8005320: f000 fe62 bl 8005fe8 + return; + 8005324: e026 b.n 8005374 + } + + /* UART TX Fifo Empty occurred ----------------------------------------------*/ + if (((isrflags & USART_ISR_TXFE) != 0U) && ((cr1its & USART_CR1_TXFEIE) != 0U)) + 8005326: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 800532a: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 800532e: 2b00 cmp r3, #0 + 8005330: d009 beq.n 8005346 + 8005332: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8005336: f003 4380 and.w r3, r3, #1073741824 @ 0x40000000 + 800533a: 2b00 cmp r3, #0 + 800533c: d003 beq.n 8005346 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Tx Fifo Empty Callback */ + huart->TxFifoEmptyCallback(huart); +#else + /* Call legacy weak Tx Fifo Empty Callback */ + HAL_UARTEx_TxFifoEmptyCallback(huart); + 800533e: 6878 ldr r0, [r7, #4] + 8005340: f001 fbb2 bl 8006aa8 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + return; + 8005344: e016 b.n 8005374 + } + + /* UART RX Fifo Full occurred ----------------------------------------------*/ + if (((isrflags & USART_ISR_RXFF) != 0U) && ((cr1its & USART_CR1_RXFFIE) != 0U)) + 8005346: f8d7 30e4 ldr.w r3, [r7, #228] @ 0xe4 + 800534a: f003 7380 and.w r3, r3, #16777216 @ 0x1000000 + 800534e: 2b00 cmp r3, #0 + 8005350: d010 beq.n 8005374 + 8005352: f8d7 30e0 ldr.w r3, [r7, #224] @ 0xe0 + 8005356: 2b00 cmp r3, #0 + 8005358: da0c bge.n 8005374 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Rx Fifo Full Callback */ + huart->RxFifoFullCallback(huart); +#else + /* Call legacy weak Rx Fifo Full Callback */ + HAL_UARTEx_RxFifoFullCallback(huart); + 800535a: 6878 ldr r0, [r7, #4] + 800535c: f001 fb9a bl 8006a94 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + return; + 8005360: e008 b.n 8005374 + return; + 8005362: bf00 nop + 8005364: e006 b.n 8005374 + return; + 8005366: bf00 nop + 8005368: e004 b.n 8005374 + return; + 800536a: bf00 nop + 800536c: e002 b.n 8005374 + return; + 800536e: bf00 nop + 8005370: e000 b.n 8005374 + return; + 8005372: bf00 nop + } +} + 8005374: 37e8 adds r7, #232 @ 0xe8 + 8005376: 46bd mov sp, r7 + 8005378: bd80 pop {r7, pc} + 800537a: bf00 nop + +0800537c : + * @brief UART error callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) +{ + 800537c: b480 push {r7} + 800537e: b083 sub sp, #12 + 8005380: af00 add r7, sp, #0 + 8005382: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_ErrorCallback can be implemented in the user file. + */ +} + 8005384: bf00 nop + 8005386: 370c adds r7, #12 + 8005388: 46bd mov sp, r7 + 800538a: f85d 7b04 ldr.w r7, [sp], #4 + 800538e: 4770 bx lr + +08005390 : + * @param Size Number of data available in application reception buffer (indicates a position in + * reception buffer until which, data are available) + * @retval None + */ +__weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) +{ + 8005390: b480 push {r7} + 8005392: b083 sub sp, #12 + 8005394: af00 add r7, sp, #0 + 8005396: 6078 str r0, [r7, #4] + 8005398: 460b mov r3, r1 + 800539a: 807b strh r3, [r7, #2] + UNUSED(Size); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_RxEventCallback can be implemented in the user file. + */ +} + 800539c: bf00 nop + 800539e: 370c adds r7, #12 + 80053a0: 46bd mov sp, r7 + 80053a2: f85d 7b04 ldr.w r7, [sp], #4 + 80053a6: 4770 bx lr + +080053a8 : + * @brief Configure the UART peripheral. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) +{ + 80053a8: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} + 80053ac: b08c sub sp, #48 @ 0x30 + 80053ae: af00 add r7, sp, #0 + 80053b0: 6178 str r0, [r7, #20] + uint32_t tmpreg; + uint16_t brrtemp; + UART_ClockSourceTypeDef clocksource; + uint32_t usartdiv; + HAL_StatusTypeDef ret = HAL_OK; + 80053b2: 2300 movs r3, #0 + 80053b4: f887 302a strb.w r3, [r7, #42] @ 0x2a + * the UART Word Length, Parity, Mode and oversampling: + * set the M bits according to huart->Init.WordLength value + * set PCE and PS bits according to huart->Init.Parity value + * set TE and RE bits according to huart->Init.Mode value + * set OVER8 bit according to huart->Init.OverSampling value */ + tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; + 80053b8: 697b ldr r3, [r7, #20] + 80053ba: 689a ldr r2, [r3, #8] + 80053bc: 697b ldr r3, [r7, #20] + 80053be: 691b ldr r3, [r3, #16] + 80053c0: 431a orrs r2, r3 + 80053c2: 697b ldr r3, [r7, #20] + 80053c4: 695b ldr r3, [r3, #20] + 80053c6: 431a orrs r2, r3 + 80053c8: 697b ldr r3, [r7, #20] + 80053ca: 69db ldr r3, [r3, #28] + 80053cc: 4313 orrs r3, r2 + 80053ce: 62fb str r3, [r7, #44] @ 0x2c + MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 80053d0: 697b ldr r3, [r7, #20] + 80053d2: 681b ldr r3, [r3, #0] + 80053d4: 681a ldr r2, [r3, #0] + 80053d6: 4bab ldr r3, [pc, #684] @ (8005684 ) + 80053d8: 4013 ands r3, r2 + 80053da: 697a ldr r2, [r7, #20] + 80053dc: 6812 ldr r2, [r2, #0] + 80053de: 6af9 ldr r1, [r7, #44] @ 0x2c + 80053e0: 430b orrs r3, r1 + 80053e2: 6013 str r3, [r2, #0] + + /*-------------------------- USART CR2 Configuration -----------------------*/ + /* Configure the UART Stop Bits: Set STOP[13:12] bits according + * to huart->Init.StopBits value */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); + 80053e4: 697b ldr r3, [r7, #20] + 80053e6: 681b ldr r3, [r3, #0] + 80053e8: 685b ldr r3, [r3, #4] + 80053ea: f423 5140 bic.w r1, r3, #12288 @ 0x3000 + 80053ee: 697b ldr r3, [r7, #20] + 80053f0: 68da ldr r2, [r3, #12] + 80053f2: 697b ldr r3, [r7, #20] + 80053f4: 681b ldr r3, [r3, #0] + 80053f6: 430a orrs r2, r1 + 80053f8: 605a str r2, [r3, #4] + /* Configure + * - UART HardWare Flow Control: set CTSE and RTSE bits according + * to huart->Init.HwFlowCtl value + * - one-bit sampling method versus three samples' majority rule according + * to huart->Init.OneBitSampling (not applicable to LPUART) */ + tmpreg = (uint32_t)huart->Init.HwFlowCtl; + 80053fa: 697b ldr r3, [r7, #20] + 80053fc: 699b ldr r3, [r3, #24] + 80053fe: 62fb str r3, [r7, #44] @ 0x2c + + if (!(UART_INSTANCE_LOWPOWER(huart))) + 8005400: 697b ldr r3, [r7, #20] + 8005402: 681b ldr r3, [r3, #0] + 8005404: 4aa0 ldr r2, [pc, #640] @ (8005688 ) + 8005406: 4293 cmp r3, r2 + 8005408: d004 beq.n 8005414 + { + tmpreg |= huart->Init.OneBitSampling; + 800540a: 697b ldr r3, [r7, #20] + 800540c: 6a1b ldr r3, [r3, #32] + 800540e: 6afa ldr r2, [r7, #44] @ 0x2c + 8005410: 4313 orrs r3, r2 + 8005412: 62fb str r3, [r7, #44] @ 0x2c + } + MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); + 8005414: 697b ldr r3, [r7, #20] + 8005416: 681b ldr r3, [r3, #0] + 8005418: 689b ldr r3, [r3, #8] + 800541a: f023 436e bic.w r3, r3, #3992977408 @ 0xee000000 + 800541e: f423 6330 bic.w r3, r3, #2816 @ 0xb00 + 8005422: 697a ldr r2, [r7, #20] + 8005424: 6812 ldr r2, [r2, #0] + 8005426: 6af9 ldr r1, [r7, #44] @ 0x2c + 8005428: 430b orrs r3, r1 + 800542a: 6093 str r3, [r2, #8] + + /*-------------------------- USART PRESC Configuration -----------------------*/ + /* Configure + * - UART Clock Prescaler : set PRESCALER according to huart->Init.ClockPrescaler value */ + MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); + 800542c: 697b ldr r3, [r7, #20] + 800542e: 681b ldr r3, [r3, #0] + 8005430: 6adb ldr r3, [r3, #44] @ 0x2c + 8005432: f023 010f bic.w r1, r3, #15 + 8005436: 697b ldr r3, [r7, #20] + 8005438: 6a5a ldr r2, [r3, #36] @ 0x24 + 800543a: 697b ldr r3, [r7, #20] + 800543c: 681b ldr r3, [r3, #0] + 800543e: 430a orrs r2, r1 + 8005440: 62da str r2, [r3, #44] @ 0x2c + + /*-------------------------- USART BRR Configuration -----------------------*/ + UART_GETCLOCKSOURCE(huart, clocksource); + 8005442: 697b ldr r3, [r7, #20] + 8005444: 681b ldr r3, [r3, #0] + 8005446: 4a91 ldr r2, [pc, #580] @ (800568c ) + 8005448: 4293 cmp r3, r2 + 800544a: d125 bne.n 8005498 + 800544c: 4b90 ldr r3, [pc, #576] @ (8005690 ) + 800544e: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8005452: f003 0303 and.w r3, r3, #3 + 8005456: 2b03 cmp r3, #3 + 8005458: d81a bhi.n 8005490 + 800545a: a201 add r2, pc, #4 @ (adr r2, 8005460 ) + 800545c: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8005460: 08005471 .word 0x08005471 + 8005464: 08005481 .word 0x08005481 + 8005468: 08005479 .word 0x08005479 + 800546c: 08005489 .word 0x08005489 + 8005470: 2301 movs r3, #1 + 8005472: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005476: e0d6 b.n 8005626 + 8005478: 2302 movs r3, #2 + 800547a: f887 302b strb.w r3, [r7, #43] @ 0x2b + 800547e: e0d2 b.n 8005626 + 8005480: 2304 movs r3, #4 + 8005482: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005486: e0ce b.n 8005626 + 8005488: 2308 movs r3, #8 + 800548a: f887 302b strb.w r3, [r7, #43] @ 0x2b + 800548e: e0ca b.n 8005626 + 8005490: 2310 movs r3, #16 + 8005492: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005496: e0c6 b.n 8005626 + 8005498: 697b ldr r3, [r7, #20] + 800549a: 681b ldr r3, [r3, #0] + 800549c: 4a7d ldr r2, [pc, #500] @ (8005694 ) + 800549e: 4293 cmp r3, r2 + 80054a0: d138 bne.n 8005514 + 80054a2: 4b7b ldr r3, [pc, #492] @ (8005690 ) + 80054a4: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 80054a8: f003 030c and.w r3, r3, #12 + 80054ac: 2b0c cmp r3, #12 + 80054ae: d82d bhi.n 800550c + 80054b0: a201 add r2, pc, #4 @ (adr r2, 80054b8 ) + 80054b2: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80054b6: bf00 nop + 80054b8: 080054ed .word 0x080054ed + 80054bc: 0800550d .word 0x0800550d + 80054c0: 0800550d .word 0x0800550d + 80054c4: 0800550d .word 0x0800550d + 80054c8: 080054fd .word 0x080054fd + 80054cc: 0800550d .word 0x0800550d + 80054d0: 0800550d .word 0x0800550d + 80054d4: 0800550d .word 0x0800550d + 80054d8: 080054f5 .word 0x080054f5 + 80054dc: 0800550d .word 0x0800550d + 80054e0: 0800550d .word 0x0800550d + 80054e4: 0800550d .word 0x0800550d + 80054e8: 08005505 .word 0x08005505 + 80054ec: 2300 movs r3, #0 + 80054ee: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80054f2: e098 b.n 8005626 + 80054f4: 2302 movs r3, #2 + 80054f6: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80054fa: e094 b.n 8005626 + 80054fc: 2304 movs r3, #4 + 80054fe: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005502: e090 b.n 8005626 + 8005504: 2308 movs r3, #8 + 8005506: f887 302b strb.w r3, [r7, #43] @ 0x2b + 800550a: e08c b.n 8005626 + 800550c: 2310 movs r3, #16 + 800550e: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005512: e088 b.n 8005626 + 8005514: 697b ldr r3, [r7, #20] + 8005516: 681b ldr r3, [r3, #0] + 8005518: 4a5f ldr r2, [pc, #380] @ (8005698 ) + 800551a: 4293 cmp r3, r2 + 800551c: d125 bne.n 800556a + 800551e: 4b5c ldr r3, [pc, #368] @ (8005690 ) + 8005520: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 8005524: f003 0330 and.w r3, r3, #48 @ 0x30 + 8005528: 2b30 cmp r3, #48 @ 0x30 + 800552a: d016 beq.n 800555a + 800552c: 2b30 cmp r3, #48 @ 0x30 + 800552e: d818 bhi.n 8005562 + 8005530: 2b20 cmp r3, #32 + 8005532: d00a beq.n 800554a + 8005534: 2b20 cmp r3, #32 + 8005536: d814 bhi.n 8005562 + 8005538: 2b00 cmp r3, #0 + 800553a: d002 beq.n 8005542 + 800553c: 2b10 cmp r3, #16 + 800553e: d008 beq.n 8005552 + 8005540: e00f b.n 8005562 + 8005542: 2300 movs r3, #0 + 8005544: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005548: e06d b.n 8005626 + 800554a: 2302 movs r3, #2 + 800554c: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005550: e069 b.n 8005626 + 8005552: 2304 movs r3, #4 + 8005554: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005558: e065 b.n 8005626 + 800555a: 2308 movs r3, #8 + 800555c: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005560: e061 b.n 8005626 + 8005562: 2310 movs r3, #16 + 8005564: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005568: e05d b.n 8005626 + 800556a: 697b ldr r3, [r7, #20] + 800556c: 681b ldr r3, [r3, #0] + 800556e: 4a4b ldr r2, [pc, #300] @ (800569c ) + 8005570: 4293 cmp r3, r2 + 8005572: d125 bne.n 80055c0 + 8005574: 4b46 ldr r3, [pc, #280] @ (8005690 ) + 8005576: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 800557a: f003 03c0 and.w r3, r3, #192 @ 0xc0 + 800557e: 2bc0 cmp r3, #192 @ 0xc0 + 8005580: d016 beq.n 80055b0 + 8005582: 2bc0 cmp r3, #192 @ 0xc0 + 8005584: d818 bhi.n 80055b8 + 8005586: 2b80 cmp r3, #128 @ 0x80 + 8005588: d00a beq.n 80055a0 + 800558a: 2b80 cmp r3, #128 @ 0x80 + 800558c: d814 bhi.n 80055b8 + 800558e: 2b00 cmp r3, #0 + 8005590: d002 beq.n 8005598 + 8005592: 2b40 cmp r3, #64 @ 0x40 + 8005594: d008 beq.n 80055a8 + 8005596: e00f b.n 80055b8 + 8005598: 2300 movs r3, #0 + 800559a: f887 302b strb.w r3, [r7, #43] @ 0x2b + 800559e: e042 b.n 8005626 + 80055a0: 2302 movs r3, #2 + 80055a2: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80055a6: e03e b.n 8005626 + 80055a8: 2304 movs r3, #4 + 80055aa: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80055ae: e03a b.n 8005626 + 80055b0: 2308 movs r3, #8 + 80055b2: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80055b6: e036 b.n 8005626 + 80055b8: 2310 movs r3, #16 + 80055ba: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80055be: e032 b.n 8005626 + 80055c0: 697b ldr r3, [r7, #20] + 80055c2: 681b ldr r3, [r3, #0] + 80055c4: 4a30 ldr r2, [pc, #192] @ (8005688 ) + 80055c6: 4293 cmp r3, r2 + 80055c8: d12a bne.n 8005620 + 80055ca: 4b31 ldr r3, [pc, #196] @ (8005690 ) + 80055cc: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88 + 80055d0: f403 6340 and.w r3, r3, #3072 @ 0xc00 + 80055d4: f5b3 6f40 cmp.w r3, #3072 @ 0xc00 + 80055d8: d01a beq.n 8005610 + 80055da: f5b3 6f40 cmp.w r3, #3072 @ 0xc00 + 80055de: d81b bhi.n 8005618 + 80055e0: f5b3 6f00 cmp.w r3, #2048 @ 0x800 + 80055e4: d00c beq.n 8005600 + 80055e6: f5b3 6f00 cmp.w r3, #2048 @ 0x800 + 80055ea: d815 bhi.n 8005618 + 80055ec: 2b00 cmp r3, #0 + 80055ee: d003 beq.n 80055f8 + 80055f0: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 80055f4: d008 beq.n 8005608 + 80055f6: e00f b.n 8005618 + 80055f8: 2300 movs r3, #0 + 80055fa: f887 302b strb.w r3, [r7, #43] @ 0x2b + 80055fe: e012 b.n 8005626 + 8005600: 2302 movs r3, #2 + 8005602: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005606: e00e b.n 8005626 + 8005608: 2304 movs r3, #4 + 800560a: f887 302b strb.w r3, [r7, #43] @ 0x2b + 800560e: e00a b.n 8005626 + 8005610: 2308 movs r3, #8 + 8005612: f887 302b strb.w r3, [r7, #43] @ 0x2b + 8005616: e006 b.n 8005626 + 8005618: 2310 movs r3, #16 + 800561a: f887 302b strb.w r3, [r7, #43] @ 0x2b + 800561e: e002 b.n 8005626 + 8005620: 2310 movs r3, #16 + 8005622: f887 302b strb.w r3, [r7, #43] @ 0x2b + + /* Check LPUART instance */ + if (UART_INSTANCE_LOWPOWER(huart)) + 8005626: 697b ldr r3, [r7, #20] + 8005628: 681b ldr r3, [r3, #0] + 800562a: 4a17 ldr r2, [pc, #92] @ (8005688 ) + 800562c: 4293 cmp r3, r2 + 800562e: f040 80a8 bne.w 8005782 + { + /* Retrieve frequency clock */ + switch (clocksource) + 8005632: f897 302b ldrb.w r3, [r7, #43] @ 0x2b + 8005636: 2b08 cmp r3, #8 + 8005638: d834 bhi.n 80056a4 + 800563a: a201 add r2, pc, #4 @ (adr r2, 8005640 ) + 800563c: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8005640: 08005665 .word 0x08005665 + 8005644: 080056a5 .word 0x080056a5 + 8005648: 0800566d .word 0x0800566d + 800564c: 080056a5 .word 0x080056a5 + 8005650: 08005673 .word 0x08005673 + 8005654: 080056a5 .word 0x080056a5 + 8005658: 080056a5 .word 0x080056a5 + 800565c: 080056a5 .word 0x080056a5 + 8005660: 0800567b .word 0x0800567b + { + case UART_CLOCKSOURCE_PCLK1: + pclk = HAL_RCC_GetPCLK1Freq(); + 8005664: f7fe faea bl 8003c3c + 8005668: 6278 str r0, [r7, #36] @ 0x24 + break; + 800566a: e021 b.n 80056b0 + case UART_CLOCKSOURCE_HSI: + pclk = (uint32_t) HSI_VALUE; + 800566c: 4b0c ldr r3, [pc, #48] @ (80056a0 ) + 800566e: 627b str r3, [r7, #36] @ 0x24 + break; + 8005670: e01e b.n 80056b0 + case UART_CLOCKSOURCE_SYSCLK: + pclk = HAL_RCC_GetSysClockFreq(); + 8005672: f7fe fa75 bl 8003b60 + 8005676: 6278 str r0, [r7, #36] @ 0x24 + break; + 8005678: e01a b.n 80056b0 + case UART_CLOCKSOURCE_LSE: + pclk = (uint32_t) LSE_VALUE; + 800567a: f44f 4300 mov.w r3, #32768 @ 0x8000 + 800567e: 627b str r3, [r7, #36] @ 0x24 + break; + 8005680: e016 b.n 80056b0 + 8005682: bf00 nop + 8005684: cfff69f3 .word 0xcfff69f3 + 8005688: 40008000 .word 0x40008000 + 800568c: 40013800 .word 0x40013800 + 8005690: 40021000 .word 0x40021000 + 8005694: 40004400 .word 0x40004400 + 8005698: 40004800 .word 0x40004800 + 800569c: 40004c00 .word 0x40004c00 + 80056a0: 00f42400 .word 0x00f42400 + default: + pclk = 0U; + 80056a4: 2300 movs r3, #0 + 80056a6: 627b str r3, [r7, #36] @ 0x24 + ret = HAL_ERROR; + 80056a8: 2301 movs r3, #1 + 80056aa: f887 302a strb.w r3, [r7, #42] @ 0x2a + break; + 80056ae: bf00 nop + } + + /* If proper clock source reported */ + if (pclk != 0U) + 80056b0: 6a7b ldr r3, [r7, #36] @ 0x24 + 80056b2: 2b00 cmp r3, #0 + 80056b4: f000 812a beq.w 800590c + { + /* Compute clock after Prescaler */ + lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); + 80056b8: 697b ldr r3, [r7, #20] + 80056ba: 6a5b ldr r3, [r3, #36] @ 0x24 + 80056bc: 4a9e ldr r2, [pc, #632] @ (8005938 ) + 80056be: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 80056c2: 461a mov r2, r3 + 80056c4: 6a7b ldr r3, [r7, #36] @ 0x24 + 80056c6: fbb3 f3f2 udiv r3, r3, r2 + 80056ca: 61bb str r3, [r7, #24] + + /* Ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */ + if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || + 80056cc: 697b ldr r3, [r7, #20] + 80056ce: 685a ldr r2, [r3, #4] + 80056d0: 4613 mov r3, r2 + 80056d2: 005b lsls r3, r3, #1 + 80056d4: 4413 add r3, r2 + 80056d6: 69ba ldr r2, [r7, #24] + 80056d8: 429a cmp r2, r3 + 80056da: d305 bcc.n 80056e8 + (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + 80056dc: 697b ldr r3, [r7, #20] + 80056de: 685b ldr r3, [r3, #4] + 80056e0: 031b lsls r3, r3, #12 + if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || + 80056e2: 69ba ldr r2, [r7, #24] + 80056e4: 429a cmp r2, r3 + 80056e6: d903 bls.n 80056f0 + { + ret = HAL_ERROR; + 80056e8: 2301 movs r3, #1 + 80056ea: f887 302a strb.w r3, [r7, #42] @ 0x2a + 80056ee: e10d b.n 800590c + } + else + { + /* Check computed UsartDiv value is in allocated range + (it is forbidden to write values lower than 0x300 in the LPUART_BRR register) */ + usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); + 80056f0: 6a7b ldr r3, [r7, #36] @ 0x24 + 80056f2: 2200 movs r2, #0 + 80056f4: 60bb str r3, [r7, #8] + 80056f6: 60fa str r2, [r7, #12] + 80056f8: 697b ldr r3, [r7, #20] + 80056fa: 6a5b ldr r3, [r3, #36] @ 0x24 + 80056fc: 4a8e ldr r2, [pc, #568] @ (8005938 ) + 80056fe: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 8005702: b29b uxth r3, r3 + 8005704: 2200 movs r2, #0 + 8005706: 603b str r3, [r7, #0] + 8005708: 607a str r2, [r7, #4] + 800570a: e9d7 2300 ldrd r2, r3, [r7] + 800570e: e9d7 0102 ldrd r0, r1, [r7, #8] + 8005712: f7fa fd81 bl 8000218 <__aeabi_uldivmod> + 8005716: 4602 mov r2, r0 + 8005718: 460b mov r3, r1 + 800571a: 4610 mov r0, r2 + 800571c: 4619 mov r1, r3 + 800571e: f04f 0200 mov.w r2, #0 + 8005722: f04f 0300 mov.w r3, #0 + 8005726: 020b lsls r3, r1, #8 + 8005728: ea43 6310 orr.w r3, r3, r0, lsr #24 + 800572c: 0202 lsls r2, r0, #8 + 800572e: 6979 ldr r1, [r7, #20] + 8005730: 6849 ldr r1, [r1, #4] + 8005732: 0849 lsrs r1, r1, #1 + 8005734: 2000 movs r0, #0 + 8005736: 460c mov r4, r1 + 8005738: 4605 mov r5, r0 + 800573a: eb12 0804 adds.w r8, r2, r4 + 800573e: eb43 0905 adc.w r9, r3, r5 + 8005742: 697b ldr r3, [r7, #20] + 8005744: 685b ldr r3, [r3, #4] + 8005746: 2200 movs r2, #0 + 8005748: 469a mov sl, r3 + 800574a: 4693 mov fp, r2 + 800574c: 4652 mov r2, sl + 800574e: 465b mov r3, fp + 8005750: 4640 mov r0, r8 + 8005752: 4649 mov r1, r9 + 8005754: f7fa fd60 bl 8000218 <__aeabi_uldivmod> + 8005758: 4602 mov r2, r0 + 800575a: 460b mov r3, r1 + 800575c: 4613 mov r3, r2 + 800575e: 623b str r3, [r7, #32] + if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) + 8005760: 6a3b ldr r3, [r7, #32] + 8005762: f5b3 7f40 cmp.w r3, #768 @ 0x300 + 8005766: d308 bcc.n 800577a + 8005768: 6a3b ldr r3, [r7, #32] + 800576a: f5b3 1f80 cmp.w r3, #1048576 @ 0x100000 + 800576e: d204 bcs.n 800577a + { + huart->Instance->BRR = usartdiv; + 8005770: 697b ldr r3, [r7, #20] + 8005772: 681b ldr r3, [r3, #0] + 8005774: 6a3a ldr r2, [r7, #32] + 8005776: 60da str r2, [r3, #12] + 8005778: e0c8 b.n 800590c + } + else + { + ret = HAL_ERROR; + 800577a: 2301 movs r3, #1 + 800577c: f887 302a strb.w r3, [r7, #42] @ 0x2a + 8005780: e0c4 b.n 800590c + } /* if ( (lpuart_ker_ck_pres < (3 * huart->Init.BaudRate) ) || + (lpuart_ker_ck_pres > (4096 * huart->Init.BaudRate) )) */ + } /* if (pclk != 0) */ + } + /* Check UART Over Sampling to set Baud Rate Register */ + else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) + 8005782: 697b ldr r3, [r7, #20] + 8005784: 69db ldr r3, [r3, #28] + 8005786: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 800578a: d167 bne.n 800585c + { + switch (clocksource) + 800578c: f897 302b ldrb.w r3, [r7, #43] @ 0x2b + 8005790: 2b08 cmp r3, #8 + 8005792: d828 bhi.n 80057e6 + 8005794: a201 add r2, pc, #4 @ (adr r2, 800579c ) + 8005796: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800579a: bf00 nop + 800579c: 080057c1 .word 0x080057c1 + 80057a0: 080057c9 .word 0x080057c9 + 80057a4: 080057d1 .word 0x080057d1 + 80057a8: 080057e7 .word 0x080057e7 + 80057ac: 080057d7 .word 0x080057d7 + 80057b0: 080057e7 .word 0x080057e7 + 80057b4: 080057e7 .word 0x080057e7 + 80057b8: 080057e7 .word 0x080057e7 + 80057bc: 080057df .word 0x080057df + { + case UART_CLOCKSOURCE_PCLK1: + pclk = HAL_RCC_GetPCLK1Freq(); + 80057c0: f7fe fa3c bl 8003c3c + 80057c4: 6278 str r0, [r7, #36] @ 0x24 + break; + 80057c6: e014 b.n 80057f2 + case UART_CLOCKSOURCE_PCLK2: + pclk = HAL_RCC_GetPCLK2Freq(); + 80057c8: f7fe fa4e bl 8003c68 + 80057cc: 6278 str r0, [r7, #36] @ 0x24 + break; + 80057ce: e010 b.n 80057f2 + case UART_CLOCKSOURCE_HSI: + pclk = (uint32_t) HSI_VALUE; + 80057d0: 4b5a ldr r3, [pc, #360] @ (800593c ) + 80057d2: 627b str r3, [r7, #36] @ 0x24 + break; + 80057d4: e00d b.n 80057f2 + case UART_CLOCKSOURCE_SYSCLK: + pclk = HAL_RCC_GetSysClockFreq(); + 80057d6: f7fe f9c3 bl 8003b60 + 80057da: 6278 str r0, [r7, #36] @ 0x24 + break; + 80057dc: e009 b.n 80057f2 + case UART_CLOCKSOURCE_LSE: + pclk = (uint32_t) LSE_VALUE; + 80057de: f44f 4300 mov.w r3, #32768 @ 0x8000 + 80057e2: 627b str r3, [r7, #36] @ 0x24 + break; + 80057e4: e005 b.n 80057f2 + default: + pclk = 0U; + 80057e6: 2300 movs r3, #0 + 80057e8: 627b str r3, [r7, #36] @ 0x24 + ret = HAL_ERROR; + 80057ea: 2301 movs r3, #1 + 80057ec: f887 302a strb.w r3, [r7, #42] @ 0x2a + break; + 80057f0: bf00 nop + } + + /* USARTDIV must be greater than or equal to 0d16 */ + if (pclk != 0U) + 80057f2: 6a7b ldr r3, [r7, #36] @ 0x24 + 80057f4: 2b00 cmp r3, #0 + 80057f6: f000 8089 beq.w 800590c + { + usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); + 80057fa: 697b ldr r3, [r7, #20] + 80057fc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80057fe: 4a4e ldr r2, [pc, #312] @ (8005938 ) + 8005800: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 8005804: 461a mov r2, r3 + 8005806: 6a7b ldr r3, [r7, #36] @ 0x24 + 8005808: fbb3 f3f2 udiv r3, r3, r2 + 800580c: 005a lsls r2, r3, #1 + 800580e: 697b ldr r3, [r7, #20] + 8005810: 685b ldr r3, [r3, #4] + 8005812: 085b lsrs r3, r3, #1 + 8005814: 441a add r2, r3 + 8005816: 697b ldr r3, [r7, #20] + 8005818: 685b ldr r3, [r3, #4] + 800581a: fbb2 f3f3 udiv r3, r2, r3 + 800581e: 623b str r3, [r7, #32] + if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 8005820: 6a3b ldr r3, [r7, #32] + 8005822: 2b0f cmp r3, #15 + 8005824: d916 bls.n 8005854 + 8005826: 6a3b ldr r3, [r7, #32] + 8005828: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 800582c: d212 bcs.n 8005854 + { + brrtemp = (uint16_t)(usartdiv & 0xFFF0U); + 800582e: 6a3b ldr r3, [r7, #32] + 8005830: b29b uxth r3, r3 + 8005832: f023 030f bic.w r3, r3, #15 + 8005836: 83fb strh r3, [r7, #30] + brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + 8005838: 6a3b ldr r3, [r7, #32] + 800583a: 085b lsrs r3, r3, #1 + 800583c: b29b uxth r3, r3 + 800583e: f003 0307 and.w r3, r3, #7 + 8005842: b29a uxth r2, r3 + 8005844: 8bfb ldrh r3, [r7, #30] + 8005846: 4313 orrs r3, r2 + 8005848: 83fb strh r3, [r7, #30] + huart->Instance->BRR = brrtemp; + 800584a: 697b ldr r3, [r7, #20] + 800584c: 681b ldr r3, [r3, #0] + 800584e: 8bfa ldrh r2, [r7, #30] + 8005850: 60da str r2, [r3, #12] + 8005852: e05b b.n 800590c + } + else + { + ret = HAL_ERROR; + 8005854: 2301 movs r3, #1 + 8005856: f887 302a strb.w r3, [r7, #42] @ 0x2a + 800585a: e057 b.n 800590c + } + } + } + else + { + switch (clocksource) + 800585c: f897 302b ldrb.w r3, [r7, #43] @ 0x2b + 8005860: 2b08 cmp r3, #8 + 8005862: d828 bhi.n 80058b6 + 8005864: a201 add r2, pc, #4 @ (adr r2, 800586c ) + 8005866: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800586a: bf00 nop + 800586c: 08005891 .word 0x08005891 + 8005870: 08005899 .word 0x08005899 + 8005874: 080058a1 .word 0x080058a1 + 8005878: 080058b7 .word 0x080058b7 + 800587c: 080058a7 .word 0x080058a7 + 8005880: 080058b7 .word 0x080058b7 + 8005884: 080058b7 .word 0x080058b7 + 8005888: 080058b7 .word 0x080058b7 + 800588c: 080058af .word 0x080058af + { + case UART_CLOCKSOURCE_PCLK1: + pclk = HAL_RCC_GetPCLK1Freq(); + 8005890: f7fe f9d4 bl 8003c3c + 8005894: 6278 str r0, [r7, #36] @ 0x24 + break; + 8005896: e014 b.n 80058c2 + case UART_CLOCKSOURCE_PCLK2: + pclk = HAL_RCC_GetPCLK2Freq(); + 8005898: f7fe f9e6 bl 8003c68 + 800589c: 6278 str r0, [r7, #36] @ 0x24 + break; + 800589e: e010 b.n 80058c2 + case UART_CLOCKSOURCE_HSI: + pclk = (uint32_t) HSI_VALUE; + 80058a0: 4b26 ldr r3, [pc, #152] @ (800593c ) + 80058a2: 627b str r3, [r7, #36] @ 0x24 + break; + 80058a4: e00d b.n 80058c2 + case UART_CLOCKSOURCE_SYSCLK: + pclk = HAL_RCC_GetSysClockFreq(); + 80058a6: f7fe f95b bl 8003b60 + 80058aa: 6278 str r0, [r7, #36] @ 0x24 + break; + 80058ac: e009 b.n 80058c2 + case UART_CLOCKSOURCE_LSE: + pclk = (uint32_t) LSE_VALUE; + 80058ae: f44f 4300 mov.w r3, #32768 @ 0x8000 + 80058b2: 627b str r3, [r7, #36] @ 0x24 + break; + 80058b4: e005 b.n 80058c2 + default: + pclk = 0U; + 80058b6: 2300 movs r3, #0 + 80058b8: 627b str r3, [r7, #36] @ 0x24 + ret = HAL_ERROR; + 80058ba: 2301 movs r3, #1 + 80058bc: f887 302a strb.w r3, [r7, #42] @ 0x2a + break; + 80058c0: bf00 nop + } + + if (pclk != 0U) + 80058c2: 6a7b ldr r3, [r7, #36] @ 0x24 + 80058c4: 2b00 cmp r3, #0 + 80058c6: d021 beq.n 800590c + { + /* USARTDIV must be greater than or equal to 0d16 */ + usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); + 80058c8: 697b ldr r3, [r7, #20] + 80058ca: 6a5b ldr r3, [r3, #36] @ 0x24 + 80058cc: 4a1a ldr r2, [pc, #104] @ (8005938 ) + 80058ce: f832 3013 ldrh.w r3, [r2, r3, lsl #1] + 80058d2: 461a mov r2, r3 + 80058d4: 6a7b ldr r3, [r7, #36] @ 0x24 + 80058d6: fbb3 f2f2 udiv r2, r3, r2 + 80058da: 697b ldr r3, [r7, #20] + 80058dc: 685b ldr r3, [r3, #4] + 80058de: 085b lsrs r3, r3, #1 + 80058e0: 441a add r2, r3 + 80058e2: 697b ldr r3, [r7, #20] + 80058e4: 685b ldr r3, [r3, #4] + 80058e6: fbb2 f3f3 udiv r3, r2, r3 + 80058ea: 623b str r3, [r7, #32] + if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 80058ec: 6a3b ldr r3, [r7, #32] + 80058ee: 2b0f cmp r3, #15 + 80058f0: d909 bls.n 8005906 + 80058f2: 6a3b ldr r3, [r7, #32] + 80058f4: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 80058f8: d205 bcs.n 8005906 + { + huart->Instance->BRR = (uint16_t)usartdiv; + 80058fa: 6a3b ldr r3, [r7, #32] + 80058fc: b29a uxth r2, r3 + 80058fe: 697b ldr r3, [r7, #20] + 8005900: 681b ldr r3, [r3, #0] + 8005902: 60da str r2, [r3, #12] + 8005904: e002 b.n 800590c + } + else + { + ret = HAL_ERROR; + 8005906: 2301 movs r3, #1 + 8005908: f887 302a strb.w r3, [r7, #42] @ 0x2a + } + } + } + + /* Initialize the number of data to process during RX/TX ISR execution */ + huart->NbTxDataToProcess = 1; + 800590c: 697b ldr r3, [r7, #20] + 800590e: 2201 movs r2, #1 + 8005910: f8a3 206a strh.w r2, [r3, #106] @ 0x6a + huart->NbRxDataToProcess = 1; + 8005914: 697b ldr r3, [r7, #20] + 8005916: 2201 movs r2, #1 + 8005918: f8a3 2068 strh.w r2, [r3, #104] @ 0x68 + + /* Clear ISR function pointers */ + huart->RxISR = NULL; + 800591c: 697b ldr r3, [r7, #20] + 800591e: 2200 movs r2, #0 + 8005920: 675a str r2, [r3, #116] @ 0x74 + huart->TxISR = NULL; + 8005922: 697b ldr r3, [r7, #20] + 8005924: 2200 movs r2, #0 + 8005926: 679a str r2, [r3, #120] @ 0x78 + + return ret; + 8005928: f897 302a ldrb.w r3, [r7, #42] @ 0x2a +} + 800592c: 4618 mov r0, r3 + 800592e: 3730 adds r7, #48 @ 0x30 + 8005930: 46bd mov sp, r7 + 8005932: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} + 8005936: bf00 nop + 8005938: 08006d4c .word 0x08006d4c + 800593c: 00f42400 .word 0x00f42400 + +08005940 : + * @brief Configure the UART peripheral advanced features. + * @param huart UART handle. + * @retval None + */ +void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) +{ + 8005940: b480 push {r7} + 8005942: b083 sub sp, #12 + 8005944: af00 add r7, sp, #0 + 8005946: 6078 str r0, [r7, #4] + /* Check whether the set of advanced features to configure is properly set */ + assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); + + /* if required, configure RX/TX pins swap */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) + 8005948: 687b ldr r3, [r7, #4] + 800594a: 6a9b ldr r3, [r3, #40] @ 0x28 + 800594c: f003 0308 and.w r3, r3, #8 + 8005950: 2b00 cmp r3, #0 + 8005952: d00a beq.n 800596a + { + assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); + 8005954: 687b ldr r3, [r7, #4] + 8005956: 681b ldr r3, [r3, #0] + 8005958: 685b ldr r3, [r3, #4] + 800595a: f423 4100 bic.w r1, r3, #32768 @ 0x8000 + 800595e: 687b ldr r3, [r7, #4] + 8005960: 6b9a ldr r2, [r3, #56] @ 0x38 + 8005962: 687b ldr r3, [r7, #4] + 8005964: 681b ldr r3, [r3, #0] + 8005966: 430a orrs r2, r1 + 8005968: 605a str r2, [r3, #4] + } + + /* if required, configure TX pin active level inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) + 800596a: 687b ldr r3, [r7, #4] + 800596c: 6a9b ldr r3, [r3, #40] @ 0x28 + 800596e: f003 0301 and.w r3, r3, #1 + 8005972: 2b00 cmp r3, #0 + 8005974: d00a beq.n 800598c + { + assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); + 8005976: 687b ldr r3, [r7, #4] + 8005978: 681b ldr r3, [r3, #0] + 800597a: 685b ldr r3, [r3, #4] + 800597c: f423 3100 bic.w r1, r3, #131072 @ 0x20000 + 8005980: 687b ldr r3, [r7, #4] + 8005982: 6ada ldr r2, [r3, #44] @ 0x2c + 8005984: 687b ldr r3, [r7, #4] + 8005986: 681b ldr r3, [r3, #0] + 8005988: 430a orrs r2, r1 + 800598a: 605a str r2, [r3, #4] + } + + /* if required, configure RX pin active level inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) + 800598c: 687b ldr r3, [r7, #4] + 800598e: 6a9b ldr r3, [r3, #40] @ 0x28 + 8005990: f003 0302 and.w r3, r3, #2 + 8005994: 2b00 cmp r3, #0 + 8005996: d00a beq.n 80059ae + { + assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); + 8005998: 687b ldr r3, [r7, #4] + 800599a: 681b ldr r3, [r3, #0] + 800599c: 685b ldr r3, [r3, #4] + 800599e: f423 3180 bic.w r1, r3, #65536 @ 0x10000 + 80059a2: 687b ldr r3, [r7, #4] + 80059a4: 6b1a ldr r2, [r3, #48] @ 0x30 + 80059a6: 687b ldr r3, [r7, #4] + 80059a8: 681b ldr r3, [r3, #0] + 80059aa: 430a orrs r2, r1 + 80059ac: 605a str r2, [r3, #4] + } + + /* if required, configure data inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) + 80059ae: 687b ldr r3, [r7, #4] + 80059b0: 6a9b ldr r3, [r3, #40] @ 0x28 + 80059b2: f003 0304 and.w r3, r3, #4 + 80059b6: 2b00 cmp r3, #0 + 80059b8: d00a beq.n 80059d0 + { + assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); + 80059ba: 687b ldr r3, [r7, #4] + 80059bc: 681b ldr r3, [r3, #0] + 80059be: 685b ldr r3, [r3, #4] + 80059c0: f423 2180 bic.w r1, r3, #262144 @ 0x40000 + 80059c4: 687b ldr r3, [r7, #4] + 80059c6: 6b5a ldr r2, [r3, #52] @ 0x34 + 80059c8: 687b ldr r3, [r7, #4] + 80059ca: 681b ldr r3, [r3, #0] + 80059cc: 430a orrs r2, r1 + 80059ce: 605a str r2, [r3, #4] + } + + /* if required, configure RX overrun detection disabling */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) + 80059d0: 687b ldr r3, [r7, #4] + 80059d2: 6a9b ldr r3, [r3, #40] @ 0x28 + 80059d4: f003 0310 and.w r3, r3, #16 + 80059d8: 2b00 cmp r3, #0 + 80059da: d00a beq.n 80059f2 + { + assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); + MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); + 80059dc: 687b ldr r3, [r7, #4] + 80059de: 681b ldr r3, [r3, #0] + 80059e0: 689b ldr r3, [r3, #8] + 80059e2: f423 5180 bic.w r1, r3, #4096 @ 0x1000 + 80059e6: 687b ldr r3, [r7, #4] + 80059e8: 6bda ldr r2, [r3, #60] @ 0x3c + 80059ea: 687b ldr r3, [r7, #4] + 80059ec: 681b ldr r3, [r3, #0] + 80059ee: 430a orrs r2, r1 + 80059f0: 609a str r2, [r3, #8] + } + + /* if required, configure DMA disabling on reception error */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) + 80059f2: 687b ldr r3, [r7, #4] + 80059f4: 6a9b ldr r3, [r3, #40] @ 0x28 + 80059f6: f003 0320 and.w r3, r3, #32 + 80059fa: 2b00 cmp r3, #0 + 80059fc: d00a beq.n 8005a14 + { + assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); + MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); + 80059fe: 687b ldr r3, [r7, #4] + 8005a00: 681b ldr r3, [r3, #0] + 8005a02: 689b ldr r3, [r3, #8] + 8005a04: f423 5100 bic.w r1, r3, #8192 @ 0x2000 + 8005a08: 687b ldr r3, [r7, #4] + 8005a0a: 6c1a ldr r2, [r3, #64] @ 0x40 + 8005a0c: 687b ldr r3, [r7, #4] + 8005a0e: 681b ldr r3, [r3, #0] + 8005a10: 430a orrs r2, r1 + 8005a12: 609a str r2, [r3, #8] + } + + /* if required, configure auto Baud rate detection scheme */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) + 8005a14: 687b ldr r3, [r7, #4] + 8005a16: 6a9b ldr r3, [r3, #40] @ 0x28 + 8005a18: f003 0340 and.w r3, r3, #64 @ 0x40 + 8005a1c: 2b00 cmp r3, #0 + 8005a1e: d01a beq.n 8005a56 + { + assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); + assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); + 8005a20: 687b ldr r3, [r7, #4] + 8005a22: 681b ldr r3, [r3, #0] + 8005a24: 685b ldr r3, [r3, #4] + 8005a26: f423 1180 bic.w r1, r3, #1048576 @ 0x100000 + 8005a2a: 687b ldr r3, [r7, #4] + 8005a2c: 6c5a ldr r2, [r3, #68] @ 0x44 + 8005a2e: 687b ldr r3, [r7, #4] + 8005a30: 681b ldr r3, [r3, #0] + 8005a32: 430a orrs r2, r1 + 8005a34: 605a str r2, [r3, #4] + /* set auto Baudrate detection parameters if detection is enabled */ + if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) + 8005a36: 687b ldr r3, [r7, #4] + 8005a38: 6c5b ldr r3, [r3, #68] @ 0x44 + 8005a3a: f5b3 1f80 cmp.w r3, #1048576 @ 0x100000 + 8005a3e: d10a bne.n 8005a56 + { + assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); + 8005a40: 687b ldr r3, [r7, #4] + 8005a42: 681b ldr r3, [r3, #0] + 8005a44: 685b ldr r3, [r3, #4] + 8005a46: f423 01c0 bic.w r1, r3, #6291456 @ 0x600000 + 8005a4a: 687b ldr r3, [r7, #4] + 8005a4c: 6c9a ldr r2, [r3, #72] @ 0x48 + 8005a4e: 687b ldr r3, [r7, #4] + 8005a50: 681b ldr r3, [r3, #0] + 8005a52: 430a orrs r2, r1 + 8005a54: 605a str r2, [r3, #4] + } + } + + /* if required, configure MSB first on communication line */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) + 8005a56: 687b ldr r3, [r7, #4] + 8005a58: 6a9b ldr r3, [r3, #40] @ 0x28 + 8005a5a: f003 0380 and.w r3, r3, #128 @ 0x80 + 8005a5e: 2b00 cmp r3, #0 + 8005a60: d00a beq.n 8005a78 + { + assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); + 8005a62: 687b ldr r3, [r7, #4] + 8005a64: 681b ldr r3, [r3, #0] + 8005a66: 685b ldr r3, [r3, #4] + 8005a68: f423 2100 bic.w r1, r3, #524288 @ 0x80000 + 8005a6c: 687b ldr r3, [r7, #4] + 8005a6e: 6cda ldr r2, [r3, #76] @ 0x4c + 8005a70: 687b ldr r3, [r7, #4] + 8005a72: 681b ldr r3, [r3, #0] + 8005a74: 430a orrs r2, r1 + 8005a76: 605a str r2, [r3, #4] + } +} + 8005a78: bf00 nop + 8005a7a: 370c adds r7, #12 + 8005a7c: 46bd mov sp, r7 + 8005a7e: f85d 7b04 ldr.w r7, [sp], #4 + 8005a82: 4770 bx lr + +08005a84 : + * @brief Check the UART Idle State. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) +{ + 8005a84: b580 push {r7, lr} + 8005a86: b098 sub sp, #96 @ 0x60 + 8005a88: af02 add r7, sp, #8 + 8005a8a: 6078 str r0, [r7, #4] + uint32_t tickstart; + + /* Initialize the UART ErrorCode */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8005a8c: 687b ldr r3, [r7, #4] + 8005a8e: 2200 movs r2, #0 + 8005a90: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + 8005a94: f7fb fbbc bl 8001210 + 8005a98: 6578 str r0, [r7, #84] @ 0x54 + + /* Check if the Transmitter is enabled */ + if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) + 8005a9a: 687b ldr r3, [r7, #4] + 8005a9c: 681b ldr r3, [r3, #0] + 8005a9e: 681b ldr r3, [r3, #0] + 8005aa0: f003 0308 and.w r3, r3, #8 + 8005aa4: 2b08 cmp r3, #8 + 8005aa6: d12f bne.n 8005b08 + { + /* Wait until TEACK flag is set */ + if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) + 8005aa8: f06f 437e mvn.w r3, #4261412864 @ 0xfe000000 + 8005aac: 9300 str r3, [sp, #0] + 8005aae: 6d7b ldr r3, [r7, #84] @ 0x54 + 8005ab0: 2200 movs r2, #0 + 8005ab2: f44f 1100 mov.w r1, #2097152 @ 0x200000 + 8005ab6: 6878 ldr r0, [r7, #4] + 8005ab8: f000 f88e bl 8005bd8 + 8005abc: 4603 mov r3, r0 + 8005abe: 2b00 cmp r3, #0 + 8005ac0: d022 beq.n 8005b08 + { + /* Disable TXE interrupt for the interrupt process */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); + 8005ac2: 687b ldr r3, [r7, #4] + 8005ac4: 681b ldr r3, [r3, #0] + 8005ac6: 63bb str r3, [r7, #56] @ 0x38 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005ac8: 6bbb ldr r3, [r7, #56] @ 0x38 + 8005aca: e853 3f00 ldrex r3, [r3] + 8005ace: 637b str r3, [r7, #52] @ 0x34 + return(result); + 8005ad0: 6b7b ldr r3, [r7, #52] @ 0x34 + 8005ad2: f023 0380 bic.w r3, r3, #128 @ 0x80 + 8005ad6: 653b str r3, [r7, #80] @ 0x50 + 8005ad8: 687b ldr r3, [r7, #4] + 8005ada: 681b ldr r3, [r3, #0] + 8005adc: 461a mov r2, r3 + 8005ade: 6d3b ldr r3, [r7, #80] @ 0x50 + 8005ae0: 647b str r3, [r7, #68] @ 0x44 + 8005ae2: 643a str r2, [r7, #64] @ 0x40 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005ae4: 6c39 ldr r1, [r7, #64] @ 0x40 + 8005ae6: 6c7a ldr r2, [r7, #68] @ 0x44 + 8005ae8: e841 2300 strex r3, r2, [r1] + 8005aec: 63fb str r3, [r7, #60] @ 0x3c + return(result); + 8005aee: 6bfb ldr r3, [r7, #60] @ 0x3c + 8005af0: 2b00 cmp r3, #0 + 8005af2: d1e6 bne.n 8005ac2 + + huart->gState = HAL_UART_STATE_READY; + 8005af4: 687b ldr r3, [r7, #4] + 8005af6: 2220 movs r2, #32 + 8005af8: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + __HAL_UNLOCK(huart); + 8005afc: 687b ldr r3, [r7, #4] + 8005afe: 2200 movs r2, #0 + 8005b00: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + /* Timeout occurred */ + return HAL_TIMEOUT; + 8005b04: 2303 movs r3, #3 + 8005b06: e063 b.n 8005bd0 + } + } + + /* Check if the Receiver is enabled */ + if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) + 8005b08: 687b ldr r3, [r7, #4] + 8005b0a: 681b ldr r3, [r3, #0] + 8005b0c: 681b ldr r3, [r3, #0] + 8005b0e: f003 0304 and.w r3, r3, #4 + 8005b12: 2b04 cmp r3, #4 + 8005b14: d149 bne.n 8005baa + { + /* Wait until REACK flag is set */ + if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) + 8005b16: f06f 437e mvn.w r3, #4261412864 @ 0xfe000000 + 8005b1a: 9300 str r3, [sp, #0] + 8005b1c: 6d7b ldr r3, [r7, #84] @ 0x54 + 8005b1e: 2200 movs r2, #0 + 8005b20: f44f 0180 mov.w r1, #4194304 @ 0x400000 + 8005b24: 6878 ldr r0, [r7, #4] + 8005b26: f000 f857 bl 8005bd8 + 8005b2a: 4603 mov r3, r0 + 8005b2c: 2b00 cmp r3, #0 + 8005b2e: d03c beq.n 8005baa + { + /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) + interrupts for the interrupt process */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + 8005b30: 687b ldr r3, [r7, #4] + 8005b32: 681b ldr r3, [r3, #0] + 8005b34: 627b str r3, [r7, #36] @ 0x24 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005b36: 6a7b ldr r3, [r7, #36] @ 0x24 + 8005b38: e853 3f00 ldrex r3, [r3] + 8005b3c: 623b str r3, [r7, #32] + return(result); + 8005b3e: 6a3b ldr r3, [r7, #32] + 8005b40: f423 7390 bic.w r3, r3, #288 @ 0x120 + 8005b44: 64fb str r3, [r7, #76] @ 0x4c + 8005b46: 687b ldr r3, [r7, #4] + 8005b48: 681b ldr r3, [r3, #0] + 8005b4a: 461a mov r2, r3 + 8005b4c: 6cfb ldr r3, [r7, #76] @ 0x4c + 8005b4e: 633b str r3, [r7, #48] @ 0x30 + 8005b50: 62fa str r2, [r7, #44] @ 0x2c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005b52: 6af9 ldr r1, [r7, #44] @ 0x2c + 8005b54: 6b3a ldr r2, [r7, #48] @ 0x30 + 8005b56: e841 2300 strex r3, r2, [r1] + 8005b5a: 62bb str r3, [r7, #40] @ 0x28 + return(result); + 8005b5c: 6abb ldr r3, [r7, #40] @ 0x28 + 8005b5e: 2b00 cmp r3, #0 + 8005b60: d1e6 bne.n 8005b30 + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8005b62: 687b ldr r3, [r7, #4] + 8005b64: 681b ldr r3, [r3, #0] + 8005b66: 3308 adds r3, #8 + 8005b68: 613b str r3, [r7, #16] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005b6a: 693b ldr r3, [r7, #16] + 8005b6c: e853 3f00 ldrex r3, [r3] + 8005b70: 60fb str r3, [r7, #12] + return(result); + 8005b72: 68fb ldr r3, [r7, #12] + 8005b74: f023 0301 bic.w r3, r3, #1 + 8005b78: 64bb str r3, [r7, #72] @ 0x48 + 8005b7a: 687b ldr r3, [r7, #4] + 8005b7c: 681b ldr r3, [r3, #0] + 8005b7e: 3308 adds r3, #8 + 8005b80: 6cba ldr r2, [r7, #72] @ 0x48 + 8005b82: 61fa str r2, [r7, #28] + 8005b84: 61bb str r3, [r7, #24] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005b86: 69b9 ldr r1, [r7, #24] + 8005b88: 69fa ldr r2, [r7, #28] + 8005b8a: e841 2300 strex r3, r2, [r1] + 8005b8e: 617b str r3, [r7, #20] + return(result); + 8005b90: 697b ldr r3, [r7, #20] + 8005b92: 2b00 cmp r3, #0 + 8005b94: d1e5 bne.n 8005b62 + + huart->RxState = HAL_UART_STATE_READY; + 8005b96: 687b ldr r3, [r7, #4] + 8005b98: 2220 movs r2, #32 + 8005b9a: f8c3 208c str.w r2, [r3, #140] @ 0x8c + + __HAL_UNLOCK(huart); + 8005b9e: 687b ldr r3, [r7, #4] + 8005ba0: 2200 movs r2, #0 + 8005ba2: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + /* Timeout occurred */ + return HAL_TIMEOUT; + 8005ba6: 2303 movs r3, #3 + 8005ba8: e012 b.n 8005bd0 + } + } + + /* Initialize the UART State */ + huart->gState = HAL_UART_STATE_READY; + 8005baa: 687b ldr r3, [r7, #4] + 8005bac: 2220 movs r2, #32 + 8005bae: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + huart->RxState = HAL_UART_STATE_READY; + 8005bb2: 687b ldr r3, [r7, #4] + 8005bb4: 2220 movs r2, #32 + 8005bb6: f8c3 208c str.w r2, [r3, #140] @ 0x8c + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8005bba: 687b ldr r3, [r7, #4] + 8005bbc: 2200 movs r2, #0 + 8005bbe: 66da str r2, [r3, #108] @ 0x6c + huart->RxEventType = HAL_UART_RXEVENT_TC; + 8005bc0: 687b ldr r3, [r7, #4] + 8005bc2: 2200 movs r2, #0 + 8005bc4: 671a str r2, [r3, #112] @ 0x70 + + __HAL_UNLOCK(huart); + 8005bc6: 687b ldr r3, [r7, #4] + 8005bc8: 2200 movs r2, #0 + 8005bca: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + return HAL_OK; + 8005bce: 2300 movs r3, #0 +} + 8005bd0: 4618 mov r0, r3 + 8005bd2: 3758 adds r7, #88 @ 0x58 + 8005bd4: 46bd mov sp, r7 + 8005bd6: bd80 pop {r7, pc} + +08005bd8 : + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, + uint32_t Tickstart, uint32_t Timeout) +{ + 8005bd8: b580 push {r7, lr} + 8005bda: b084 sub sp, #16 + 8005bdc: af00 add r7, sp, #0 + 8005bde: 60f8 str r0, [r7, #12] + 8005be0: 60b9 str r1, [r7, #8] + 8005be2: 603b str r3, [r7, #0] + 8005be4: 4613 mov r3, r2 + 8005be6: 71fb strb r3, [r7, #7] + /* Wait until flag is set */ + while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) + 8005be8: e04f b.n 8005c8a + { + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + 8005bea: 69bb ldr r3, [r7, #24] + 8005bec: f1b3 3fff cmp.w r3, #4294967295 + 8005bf0: d04b beq.n 8005c8a + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + 8005bf2: f7fb fb0d bl 8001210 + 8005bf6: 4602 mov r2, r0 + 8005bf8: 683b ldr r3, [r7, #0] + 8005bfa: 1ad3 subs r3, r2, r3 + 8005bfc: 69ba ldr r2, [r7, #24] + 8005bfe: 429a cmp r2, r3 + 8005c00: d302 bcc.n 8005c08 + 8005c02: 69bb ldr r3, [r7, #24] + 8005c04: 2b00 cmp r3, #0 + 8005c06: d101 bne.n 8005c0c + { + + return HAL_TIMEOUT; + 8005c08: 2303 movs r3, #3 + 8005c0a: e04e b.n 8005caa + } + + if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UART_FLAG_TC)) + 8005c0c: 68fb ldr r3, [r7, #12] + 8005c0e: 681b ldr r3, [r3, #0] + 8005c10: 681b ldr r3, [r3, #0] + 8005c12: f003 0304 and.w r3, r3, #4 + 8005c16: 2b00 cmp r3, #0 + 8005c18: d037 beq.n 8005c8a + 8005c1a: 68bb ldr r3, [r7, #8] + 8005c1c: 2b80 cmp r3, #128 @ 0x80 + 8005c1e: d034 beq.n 8005c8a + 8005c20: 68bb ldr r3, [r7, #8] + 8005c22: 2b40 cmp r3, #64 @ 0x40 + 8005c24: d031 beq.n 8005c8a + { + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) + 8005c26: 68fb ldr r3, [r7, #12] + 8005c28: 681b ldr r3, [r3, #0] + 8005c2a: 69db ldr r3, [r3, #28] + 8005c2c: f003 0308 and.w r3, r3, #8 + 8005c30: 2b08 cmp r3, #8 + 8005c32: d110 bne.n 8005c56 + { + /* Clear Overrun Error flag*/ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); + 8005c34: 68fb ldr r3, [r7, #12] + 8005c36: 681b ldr r3, [r3, #0] + 8005c38: 2208 movs r2, #8 + 8005c3a: 621a str r2, [r3, #32] + + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts if ongoing */ + UART_EndRxTransfer(huart); + 8005c3c: 68f8 ldr r0, [r7, #12] + 8005c3e: f000 f95b bl 8005ef8 + + huart->ErrorCode = HAL_UART_ERROR_ORE; + 8005c42: 68fb ldr r3, [r7, #12] + 8005c44: 2208 movs r2, #8 + 8005c46: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8005c4a: 68fb ldr r3, [r7, #12] + 8005c4c: 2200 movs r2, #0 + 8005c4e: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + return HAL_ERROR; + 8005c52: 2301 movs r3, #1 + 8005c54: e029 b.n 8005caa + } + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) + 8005c56: 68fb ldr r3, [r7, #12] + 8005c58: 681b ldr r3, [r3, #0] + 8005c5a: 69db ldr r3, [r3, #28] + 8005c5c: f403 6300 and.w r3, r3, #2048 @ 0x800 + 8005c60: f5b3 6f00 cmp.w r3, #2048 @ 0x800 + 8005c64: d111 bne.n 8005c8a + { + /* Clear Receiver Timeout flag*/ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); + 8005c66: 68fb ldr r3, [r7, #12] + 8005c68: 681b ldr r3, [r3, #0] + 8005c6a: f44f 6200 mov.w r2, #2048 @ 0x800 + 8005c6e: 621a str r2, [r3, #32] + + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts if ongoing */ + UART_EndRxTransfer(huart); + 8005c70: 68f8 ldr r0, [r7, #12] + 8005c72: f000 f941 bl 8005ef8 + + huart->ErrorCode = HAL_UART_ERROR_RTO; + 8005c76: 68fb ldr r3, [r7, #12] + 8005c78: 2220 movs r2, #32 + 8005c7a: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8005c7e: 68fb ldr r3, [r7, #12] + 8005c80: 2200 movs r2, #0 + 8005c82: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + return HAL_TIMEOUT; + 8005c86: 2303 movs r3, #3 + 8005c88: e00f b.n 8005caa + while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) + 8005c8a: 68fb ldr r3, [r7, #12] + 8005c8c: 681b ldr r3, [r3, #0] + 8005c8e: 69da ldr r2, [r3, #28] + 8005c90: 68bb ldr r3, [r7, #8] + 8005c92: 4013 ands r3, r2 + 8005c94: 68ba ldr r2, [r7, #8] + 8005c96: 429a cmp r2, r3 + 8005c98: bf0c ite eq + 8005c9a: 2301 moveq r3, #1 + 8005c9c: 2300 movne r3, #0 + 8005c9e: b2db uxtb r3, r3 + 8005ca0: 461a mov r2, r3 + 8005ca2: 79fb ldrb r3, [r7, #7] + 8005ca4: 429a cmp r2, r3 + 8005ca6: d0a0 beq.n 8005bea + } + } + } + } + return HAL_OK; + 8005ca8: 2300 movs r3, #0 +} + 8005caa: 4618 mov r0, r3 + 8005cac: 3710 adds r7, #16 + 8005cae: 46bd mov sp, r7 + 8005cb0: bd80 pop {r7, pc} + ... + +08005cb4 : + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + 8005cb4: b480 push {r7} + 8005cb6: b0a3 sub sp, #140 @ 0x8c + 8005cb8: af00 add r7, sp, #0 + 8005cba: 60f8 str r0, [r7, #12] + 8005cbc: 60b9 str r1, [r7, #8] + 8005cbe: 4613 mov r3, r2 + 8005cc0: 80fb strh r3, [r7, #6] + huart->pRxBuffPtr = pData; + 8005cc2: 68fb ldr r3, [r7, #12] + 8005cc4: 68ba ldr r2, [r7, #8] + 8005cc6: 659a str r2, [r3, #88] @ 0x58 + huart->RxXferSize = Size; + 8005cc8: 68fb ldr r3, [r7, #12] + 8005cca: 88fa ldrh r2, [r7, #6] + 8005ccc: f8a3 205c strh.w r2, [r3, #92] @ 0x5c + huart->RxXferCount = Size; + 8005cd0: 68fb ldr r3, [r7, #12] + 8005cd2: 88fa ldrh r2, [r7, #6] + 8005cd4: f8a3 205e strh.w r2, [r3, #94] @ 0x5e + huart->RxISR = NULL; + 8005cd8: 68fb ldr r3, [r7, #12] + 8005cda: 2200 movs r2, #0 + 8005cdc: 675a str r2, [r3, #116] @ 0x74 + + /* Computation of UART mask to apply to RDR register */ + UART_MASK_COMPUTATION(huart); + 8005cde: 68fb ldr r3, [r7, #12] + 8005ce0: 689b ldr r3, [r3, #8] + 8005ce2: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 8005ce6: d10e bne.n 8005d06 + 8005ce8: 68fb ldr r3, [r7, #12] + 8005cea: 691b ldr r3, [r3, #16] + 8005cec: 2b00 cmp r3, #0 + 8005cee: d105 bne.n 8005cfc + 8005cf0: 68fb ldr r3, [r7, #12] + 8005cf2: f240 12ff movw r2, #511 @ 0x1ff + 8005cf6: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + 8005cfa: e02d b.n 8005d58 + 8005cfc: 68fb ldr r3, [r7, #12] + 8005cfe: 22ff movs r2, #255 @ 0xff + 8005d00: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + 8005d04: e028 b.n 8005d58 + 8005d06: 68fb ldr r3, [r7, #12] + 8005d08: 689b ldr r3, [r3, #8] + 8005d0a: 2b00 cmp r3, #0 + 8005d0c: d10d bne.n 8005d2a + 8005d0e: 68fb ldr r3, [r7, #12] + 8005d10: 691b ldr r3, [r3, #16] + 8005d12: 2b00 cmp r3, #0 + 8005d14: d104 bne.n 8005d20 + 8005d16: 68fb ldr r3, [r7, #12] + 8005d18: 22ff movs r2, #255 @ 0xff + 8005d1a: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + 8005d1e: e01b b.n 8005d58 + 8005d20: 68fb ldr r3, [r7, #12] + 8005d22: 227f movs r2, #127 @ 0x7f + 8005d24: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + 8005d28: e016 b.n 8005d58 + 8005d2a: 68fb ldr r3, [r7, #12] + 8005d2c: 689b ldr r3, [r3, #8] + 8005d2e: f1b3 5f80 cmp.w r3, #268435456 @ 0x10000000 + 8005d32: d10d bne.n 8005d50 + 8005d34: 68fb ldr r3, [r7, #12] + 8005d36: 691b ldr r3, [r3, #16] + 8005d38: 2b00 cmp r3, #0 + 8005d3a: d104 bne.n 8005d46 + 8005d3c: 68fb ldr r3, [r7, #12] + 8005d3e: 227f movs r2, #127 @ 0x7f + 8005d40: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + 8005d44: e008 b.n 8005d58 + 8005d46: 68fb ldr r3, [r7, #12] + 8005d48: 223f movs r2, #63 @ 0x3f + 8005d4a: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + 8005d4e: e003 b.n 8005d58 + 8005d50: 68fb ldr r3, [r7, #12] + 8005d52: 2200 movs r2, #0 + 8005d54: f8a3 2060 strh.w r2, [r3, #96] @ 0x60 + + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8005d58: 68fb ldr r3, [r7, #12] + 8005d5a: 2200 movs r2, #0 + 8005d5c: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + huart->RxState = HAL_UART_STATE_BUSY_RX; + 8005d60: 68fb ldr r3, [r7, #12] + 8005d62: 2222 movs r2, #34 @ 0x22 + 8005d64: f8c3 208c str.w r2, [r3, #140] @ 0x8c + + /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8005d68: 68fb ldr r3, [r7, #12] + 8005d6a: 681b ldr r3, [r3, #0] + 8005d6c: 3308 adds r3, #8 + 8005d6e: 667b str r3, [r7, #100] @ 0x64 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005d70: 6e7b ldr r3, [r7, #100] @ 0x64 + 8005d72: e853 3f00 ldrex r3, [r3] + 8005d76: 663b str r3, [r7, #96] @ 0x60 + return(result); + 8005d78: 6e3b ldr r3, [r7, #96] @ 0x60 + 8005d7a: f043 0301 orr.w r3, r3, #1 + 8005d7e: f8c7 3084 str.w r3, [r7, #132] @ 0x84 + 8005d82: 68fb ldr r3, [r7, #12] + 8005d84: 681b ldr r3, [r3, #0] + 8005d86: 3308 adds r3, #8 + 8005d88: f8d7 2084 ldr.w r2, [r7, #132] @ 0x84 + 8005d8c: 673a str r2, [r7, #112] @ 0x70 + 8005d8e: 66fb str r3, [r7, #108] @ 0x6c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005d90: 6ef9 ldr r1, [r7, #108] @ 0x6c + 8005d92: 6f3a ldr r2, [r7, #112] @ 0x70 + 8005d94: e841 2300 strex r3, r2, [r1] + 8005d98: 66bb str r3, [r7, #104] @ 0x68 + return(result); + 8005d9a: 6ebb ldr r3, [r7, #104] @ 0x68 + 8005d9c: 2b00 cmp r3, #0 + 8005d9e: d1e3 bne.n 8005d68 + + /* Configure Rx interrupt processing */ + if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) + 8005da0: 68fb ldr r3, [r7, #12] + 8005da2: 6e5b ldr r3, [r3, #100] @ 0x64 + 8005da4: f1b3 5f00 cmp.w r3, #536870912 @ 0x20000000 + 8005da8: d14f bne.n 8005e4a + 8005daa: 68fb ldr r3, [r7, #12] + 8005dac: f8b3 3068 ldrh.w r3, [r3, #104] @ 0x68 + 8005db0: 88fa ldrh r2, [r7, #6] + 8005db2: 429a cmp r2, r3 + 8005db4: d349 bcc.n 8005e4a + { + /* Set the Rx ISR function pointer according to the data word length */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + 8005db6: 68fb ldr r3, [r7, #12] + 8005db8: 689b ldr r3, [r3, #8] + 8005dba: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 8005dbe: d107 bne.n 8005dd0 + 8005dc0: 68fb ldr r3, [r7, #12] + 8005dc2: 691b ldr r3, [r3, #16] + 8005dc4: 2b00 cmp r3, #0 + 8005dc6: d103 bne.n 8005dd0 + { + huart->RxISR = UART_RxISR_16BIT_FIFOEN; + 8005dc8: 68fb ldr r3, [r7, #12] + 8005dca: 4a47 ldr r2, [pc, #284] @ (8005ee8 ) + 8005dcc: 675a str r2, [r3, #116] @ 0x74 + 8005dce: e002 b.n 8005dd6 + } + else + { + huart->RxISR = UART_RxISR_8BIT_FIFOEN; + 8005dd0: 68fb ldr r3, [r7, #12] + 8005dd2: 4a46 ldr r2, [pc, #280] @ (8005eec ) + 8005dd4: 675a str r2, [r3, #116] @ 0x74 + } + + /* Enable the UART Parity Error interrupt and RX FIFO Threshold interrupt */ + if (huart->Init.Parity != UART_PARITY_NONE) + 8005dd6: 68fb ldr r3, [r7, #12] + 8005dd8: 691b ldr r3, [r3, #16] + 8005dda: 2b00 cmp r3, #0 + 8005ddc: d01a beq.n 8005e14 + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); + 8005dde: 68fb ldr r3, [r7, #12] + 8005de0: 681b ldr r3, [r3, #0] + 8005de2: 653b str r3, [r7, #80] @ 0x50 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005de4: 6d3b ldr r3, [r7, #80] @ 0x50 + 8005de6: e853 3f00 ldrex r3, [r3] + 8005dea: 64fb str r3, [r7, #76] @ 0x4c + return(result); + 8005dec: 6cfb ldr r3, [r7, #76] @ 0x4c + 8005dee: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8005df2: f8c7 3080 str.w r3, [r7, #128] @ 0x80 + 8005df6: 68fb ldr r3, [r7, #12] + 8005df8: 681b ldr r3, [r3, #0] + 8005dfa: 461a mov r2, r3 + 8005dfc: f8d7 3080 ldr.w r3, [r7, #128] @ 0x80 + 8005e00: 65fb str r3, [r7, #92] @ 0x5c + 8005e02: 65ba str r2, [r7, #88] @ 0x58 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005e04: 6db9 ldr r1, [r7, #88] @ 0x58 + 8005e06: 6dfa ldr r2, [r7, #92] @ 0x5c + 8005e08: e841 2300 strex r3, r2, [r1] + 8005e0c: 657b str r3, [r7, #84] @ 0x54 + return(result); + 8005e0e: 6d7b ldr r3, [r7, #84] @ 0x54 + 8005e10: 2b00 cmp r3, #0 + 8005e12: d1e4 bne.n 8005dde + } + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); + 8005e14: 68fb ldr r3, [r7, #12] + 8005e16: 681b ldr r3, [r3, #0] + 8005e18: 3308 adds r3, #8 + 8005e1a: 63fb str r3, [r7, #60] @ 0x3c + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005e1c: 6bfb ldr r3, [r7, #60] @ 0x3c + 8005e1e: e853 3f00 ldrex r3, [r3] + 8005e22: 63bb str r3, [r7, #56] @ 0x38 + return(result); + 8005e24: 6bbb ldr r3, [r7, #56] @ 0x38 + 8005e26: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8005e2a: 67fb str r3, [r7, #124] @ 0x7c + 8005e2c: 68fb ldr r3, [r7, #12] + 8005e2e: 681b ldr r3, [r3, #0] + 8005e30: 3308 adds r3, #8 + 8005e32: 6ffa ldr r2, [r7, #124] @ 0x7c + 8005e34: 64ba str r2, [r7, #72] @ 0x48 + 8005e36: 647b str r3, [r7, #68] @ 0x44 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005e38: 6c79 ldr r1, [r7, #68] @ 0x44 + 8005e3a: 6cba ldr r2, [r7, #72] @ 0x48 + 8005e3c: e841 2300 strex r3, r2, [r1] + 8005e40: 643b str r3, [r7, #64] @ 0x40 + return(result); + 8005e42: 6c3b ldr r3, [r7, #64] @ 0x40 + 8005e44: 2b00 cmp r3, #0 + 8005e46: d1e5 bne.n 8005e14 + 8005e48: e046 b.n 8005ed8 + } + else + { + /* Set the Rx ISR function pointer according to the data word length */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + 8005e4a: 68fb ldr r3, [r7, #12] + 8005e4c: 689b ldr r3, [r3, #8] + 8005e4e: f5b3 5f80 cmp.w r3, #4096 @ 0x1000 + 8005e52: d107 bne.n 8005e64 + 8005e54: 68fb ldr r3, [r7, #12] + 8005e56: 691b ldr r3, [r3, #16] + 8005e58: 2b00 cmp r3, #0 + 8005e5a: d103 bne.n 8005e64 + { + huart->RxISR = UART_RxISR_16BIT; + 8005e5c: 68fb ldr r3, [r7, #12] + 8005e5e: 4a24 ldr r2, [pc, #144] @ (8005ef0 ) + 8005e60: 675a str r2, [r3, #116] @ 0x74 + 8005e62: e002 b.n 8005e6a + } + else + { + huart->RxISR = UART_RxISR_8BIT; + 8005e64: 68fb ldr r3, [r7, #12] + 8005e66: 4a23 ldr r2, [pc, #140] @ (8005ef4 ) + 8005e68: 675a str r2, [r3, #116] @ 0x74 + } + + /* Enable the UART Parity Error interrupt and Data Register Not Empty interrupt */ + if (huart->Init.Parity != UART_PARITY_NONE) + 8005e6a: 68fb ldr r3, [r7, #12] + 8005e6c: 691b ldr r3, [r3, #16] + 8005e6e: 2b00 cmp r3, #0 + 8005e70: d019 beq.n 8005ea6 + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); + 8005e72: 68fb ldr r3, [r7, #12] + 8005e74: 681b ldr r3, [r3, #0] + 8005e76: 62bb str r3, [r7, #40] @ 0x28 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005e78: 6abb ldr r3, [r7, #40] @ 0x28 + 8005e7a: e853 3f00 ldrex r3, [r3] + 8005e7e: 627b str r3, [r7, #36] @ 0x24 + return(result); + 8005e80: 6a7b ldr r3, [r7, #36] @ 0x24 + 8005e82: f443 7390 orr.w r3, r3, #288 @ 0x120 + 8005e86: 677b str r3, [r7, #116] @ 0x74 + 8005e88: 68fb ldr r3, [r7, #12] + 8005e8a: 681b ldr r3, [r3, #0] + 8005e8c: 461a mov r2, r3 + 8005e8e: 6f7b ldr r3, [r7, #116] @ 0x74 + 8005e90: 637b str r3, [r7, #52] @ 0x34 + 8005e92: 633a str r2, [r7, #48] @ 0x30 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005e94: 6b39 ldr r1, [r7, #48] @ 0x30 + 8005e96: 6b7a ldr r2, [r7, #52] @ 0x34 + 8005e98: e841 2300 strex r3, r2, [r1] + 8005e9c: 62fb str r3, [r7, #44] @ 0x2c + return(result); + 8005e9e: 6afb ldr r3, [r7, #44] @ 0x2c + 8005ea0: 2b00 cmp r3, #0 + 8005ea2: d1e6 bne.n 8005e72 + 8005ea4: e018 b.n 8005ed8 + } + else + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); + 8005ea6: 68fb ldr r3, [r7, #12] + 8005ea8: 681b ldr r3, [r3, #0] + 8005eaa: 617b str r3, [r7, #20] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005eac: 697b ldr r3, [r7, #20] + 8005eae: e853 3f00 ldrex r3, [r3] + 8005eb2: 613b str r3, [r7, #16] + return(result); + 8005eb4: 693b ldr r3, [r7, #16] + 8005eb6: f043 0320 orr.w r3, r3, #32 + 8005eba: 67bb str r3, [r7, #120] @ 0x78 + 8005ebc: 68fb ldr r3, [r7, #12] + 8005ebe: 681b ldr r3, [r3, #0] + 8005ec0: 461a mov r2, r3 + 8005ec2: 6fbb ldr r3, [r7, #120] @ 0x78 + 8005ec4: 623b str r3, [r7, #32] + 8005ec6: 61fa str r2, [r7, #28] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005ec8: 69f9 ldr r1, [r7, #28] + 8005eca: 6a3a ldr r2, [r7, #32] + 8005ecc: e841 2300 strex r3, r2, [r1] + 8005ed0: 61bb str r3, [r7, #24] + return(result); + 8005ed2: 69bb ldr r3, [r7, #24] + 8005ed4: 2b00 cmp r3, #0 + 8005ed6: d1e6 bne.n 8005ea6 + } + } + return HAL_OK; + 8005ed8: 2300 movs r3, #0 +} + 8005eda: 4618 mov r0, r3 + 8005edc: 378c adds r7, #140 @ 0x8c + 8005ede: 46bd mov sp, r7 + 8005ee0: f85d 7b04 ldr.w r7, [sp], #4 + 8005ee4: 4770 bx lr + 8005ee6: bf00 nop + 8005ee8: 08006715 .word 0x08006715 + 8005eec: 080063b1 .word 0x080063b1 + 8005ef0: 080061f9 .word 0x080061f9 + 8005ef4: 08006041 .word 0x08006041 + +08005ef8 : + * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). + * @param huart UART handle. + * @retval None + */ +static void UART_EndRxTransfer(UART_HandleTypeDef *huart) +{ + 8005ef8: b480 push {r7} + 8005efa: b095 sub sp, #84 @ 0x54 + 8005efc: af00 add r7, sp, #0 + 8005efe: 6078 str r0, [r7, #4] + /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + 8005f00: 687b ldr r3, [r7, #4] + 8005f02: 681b ldr r3, [r3, #0] + 8005f04: 637b str r3, [r7, #52] @ 0x34 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005f06: 6b7b ldr r3, [r7, #52] @ 0x34 + 8005f08: e853 3f00 ldrex r3, [r3] + 8005f0c: 633b str r3, [r7, #48] @ 0x30 + return(result); + 8005f0e: 6b3b ldr r3, [r7, #48] @ 0x30 + 8005f10: f423 7390 bic.w r3, r3, #288 @ 0x120 + 8005f14: 64fb str r3, [r7, #76] @ 0x4c + 8005f16: 687b ldr r3, [r7, #4] + 8005f18: 681b ldr r3, [r3, #0] + 8005f1a: 461a mov r2, r3 + 8005f1c: 6cfb ldr r3, [r7, #76] @ 0x4c + 8005f1e: 643b str r3, [r7, #64] @ 0x40 + 8005f20: 63fa str r2, [r7, #60] @ 0x3c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005f22: 6bf9 ldr r1, [r7, #60] @ 0x3c + 8005f24: 6c3a ldr r2, [r7, #64] @ 0x40 + 8005f26: e841 2300 strex r3, r2, [r1] + 8005f2a: 63bb str r3, [r7, #56] @ 0x38 + return(result); + 8005f2c: 6bbb ldr r3, [r7, #56] @ 0x38 + 8005f2e: 2b00 cmp r3, #0 + 8005f30: d1e6 bne.n 8005f00 + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 8005f32: 687b ldr r3, [r7, #4] + 8005f34: 681b ldr r3, [r3, #0] + 8005f36: 3308 adds r3, #8 + 8005f38: 623b str r3, [r7, #32] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005f3a: 6a3b ldr r3, [r7, #32] + 8005f3c: e853 3f00 ldrex r3, [r3] + 8005f40: 61fb str r3, [r7, #28] + return(result); + 8005f42: 69fb ldr r3, [r7, #28] + 8005f44: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8005f48: f023 0301 bic.w r3, r3, #1 + 8005f4c: 64bb str r3, [r7, #72] @ 0x48 + 8005f4e: 687b ldr r3, [r7, #4] + 8005f50: 681b ldr r3, [r3, #0] + 8005f52: 3308 adds r3, #8 + 8005f54: 6cba ldr r2, [r7, #72] @ 0x48 + 8005f56: 62fa str r2, [r7, #44] @ 0x2c + 8005f58: 62bb str r3, [r7, #40] @ 0x28 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005f5a: 6ab9 ldr r1, [r7, #40] @ 0x28 + 8005f5c: 6afa ldr r2, [r7, #44] @ 0x2c + 8005f5e: e841 2300 strex r3, r2, [r1] + 8005f62: 627b str r3, [r7, #36] @ 0x24 + return(result); + 8005f64: 6a7b ldr r3, [r7, #36] @ 0x24 + 8005f66: 2b00 cmp r3, #0 + 8005f68: d1e3 bne.n 8005f32 + + /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 8005f6a: 687b ldr r3, [r7, #4] + 8005f6c: 6edb ldr r3, [r3, #108] @ 0x6c + 8005f6e: 2b01 cmp r3, #1 + 8005f70: d118 bne.n 8005fa4 + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 8005f72: 687b ldr r3, [r7, #4] + 8005f74: 681b ldr r3, [r3, #0] + 8005f76: 60fb str r3, [r7, #12] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005f78: 68fb ldr r3, [r7, #12] + 8005f7a: e853 3f00 ldrex r3, [r3] + 8005f7e: 60bb str r3, [r7, #8] + return(result); + 8005f80: 68bb ldr r3, [r7, #8] + 8005f82: f023 0310 bic.w r3, r3, #16 + 8005f86: 647b str r3, [r7, #68] @ 0x44 + 8005f88: 687b ldr r3, [r7, #4] + 8005f8a: 681b ldr r3, [r3, #0] + 8005f8c: 461a mov r2, r3 + 8005f8e: 6c7b ldr r3, [r7, #68] @ 0x44 + 8005f90: 61bb str r3, [r7, #24] + 8005f92: 617a str r2, [r7, #20] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8005f94: 6979 ldr r1, [r7, #20] + 8005f96: 69ba ldr r2, [r7, #24] + 8005f98: e841 2300 strex r3, r2, [r1] + 8005f9c: 613b str r3, [r7, #16] + return(result); + 8005f9e: 693b ldr r3, [r7, #16] + 8005fa0: 2b00 cmp r3, #0 + 8005fa2: d1e6 bne.n 8005f72 + } + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 8005fa4: 687b ldr r3, [r7, #4] + 8005fa6: 2220 movs r2, #32 + 8005fa8: f8c3 208c str.w r2, [r3, #140] @ 0x8c + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8005fac: 687b ldr r3, [r7, #4] + 8005fae: 2200 movs r2, #0 + 8005fb0: 66da str r2, [r3, #108] @ 0x6c + + /* Reset RxIsr function pointer */ + huart->RxISR = NULL; + 8005fb2: 687b ldr r3, [r7, #4] + 8005fb4: 2200 movs r2, #0 + 8005fb6: 675a str r2, [r3, #116] @ 0x74 +} + 8005fb8: bf00 nop + 8005fba: 3754 adds r7, #84 @ 0x54 + 8005fbc: 46bd mov sp, r7 + 8005fbe: f85d 7b04 ldr.w r7, [sp], #4 + 8005fc2: 4770 bx lr + +08005fc4 : + * (To be called at end of DMA Abort procedure following error occurrence). + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) +{ + 8005fc4: b580 push {r7, lr} + 8005fc6: b084 sub sp, #16 + 8005fc8: af00 add r7, sp, #0 + 8005fca: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8005fcc: 687b ldr r3, [r7, #4] + 8005fce: 6a9b ldr r3, [r3, #40] @ 0x28 + 8005fd0: 60fb str r3, [r7, #12] + huart->RxXferCount = 0U; + 8005fd2: 68fb ldr r3, [r7, #12] + 8005fd4: 2200 movs r2, #0 + 8005fd6: f8a3 205e strh.w r2, [r3, #94] @ 0x5e +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8005fda: 68f8 ldr r0, [r7, #12] + 8005fdc: f7ff f9ce bl 800537c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 8005fe0: bf00 nop + 8005fe2: 3710 adds r7, #16 + 8005fe4: 46bd mov sp, r7 + 8005fe6: bd80 pop {r7, pc} + +08005fe8 : + * @param huart pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART module. + * @retval None + */ +static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) +{ + 8005fe8: b580 push {r7, lr} + 8005fea: b088 sub sp, #32 + 8005fec: af00 add r7, sp, #0 + 8005fee: 6078 str r0, [r7, #4] + /* Disable the UART Transmit Complete Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); + 8005ff0: 687b ldr r3, [r7, #4] + 8005ff2: 681b ldr r3, [r3, #0] + 8005ff4: 60fb str r3, [r7, #12] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8005ff6: 68fb ldr r3, [r7, #12] + 8005ff8: e853 3f00 ldrex r3, [r3] + 8005ffc: 60bb str r3, [r7, #8] + return(result); + 8005ffe: 68bb ldr r3, [r7, #8] + 8006000: f023 0340 bic.w r3, r3, #64 @ 0x40 + 8006004: 61fb str r3, [r7, #28] + 8006006: 687b ldr r3, [r7, #4] + 8006008: 681b ldr r3, [r3, #0] + 800600a: 461a mov r2, r3 + 800600c: 69fb ldr r3, [r7, #28] + 800600e: 61bb str r3, [r7, #24] + 8006010: 617a str r2, [r7, #20] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006012: 6979 ldr r1, [r7, #20] + 8006014: 69ba ldr r2, [r7, #24] + 8006016: e841 2300 strex r3, r2, [r1] + 800601a: 613b str r3, [r7, #16] + return(result); + 800601c: 693b ldr r3, [r7, #16] + 800601e: 2b00 cmp r3, #0 + 8006020: d1e6 bne.n 8005ff0 + + /* Tx process is ended, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + 8006022: 687b ldr r3, [r7, #4] + 8006024: 2220 movs r2, #32 + 8006026: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Cleat TxISR function pointer */ + huart->TxISR = NULL; + 800602a: 687b ldr r3, [r7, #4] + 800602c: 2200 movs r2, #0 + 800602e: 679a str r2, [r3, #120] @ 0x78 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Tx complete callback*/ + huart->TxCpltCallback(huart); +#else + /*Call legacy weak Tx complete callback*/ + HAL_UART_TxCpltCallback(huart); + 8006030: 6878 ldr r0, [r7, #4] + 8006032: f7fa fdc1 bl 8000bb8 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 8006036: bf00 nop + 8006038: 3720 adds r7, #32 + 800603a: 46bd mov sp, r7 + 800603c: bd80 pop {r7, pc} + ... + +08006040 : + * @brief RX interrupt handler for 7 or 8 bits data word length . + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) +{ + 8006040: b580 push {r7, lr} + 8006042: b09c sub sp, #112 @ 0x70 + 8006044: af00 add r7, sp, #0 + 8006046: 6078 str r0, [r7, #4] + uint16_t uhMask = huart->Mask; + 8006048: 687b ldr r3, [r7, #4] + 800604a: f8b3 3060 ldrh.w r3, [r3, #96] @ 0x60 + 800604e: f8a7 306e strh.w r3, [r7, #110] @ 0x6e + uint16_t uhdata; + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 8006052: 687b ldr r3, [r7, #4] + 8006054: f8d3 308c ldr.w r3, [r3, #140] @ 0x8c + 8006058: 2b22 cmp r3, #34 @ 0x22 + 800605a: f040 80be bne.w 80061da + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + 800605e: 687b ldr r3, [r7, #4] + 8006060: 681b ldr r3, [r3, #0] + 8006062: 6a5b ldr r3, [r3, #36] @ 0x24 + 8006064: f8a7 306c strh.w r3, [r7, #108] @ 0x6c + *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + 8006068: f8b7 306c ldrh.w r3, [r7, #108] @ 0x6c + 800606c: b2d9 uxtb r1, r3 + 800606e: f8b7 306e ldrh.w r3, [r7, #110] @ 0x6e + 8006072: b2da uxtb r2, r3 + 8006074: 687b ldr r3, [r7, #4] + 8006076: 6d9b ldr r3, [r3, #88] @ 0x58 + 8006078: 400a ands r2, r1 + 800607a: b2d2 uxtb r2, r2 + 800607c: 701a strb r2, [r3, #0] + huart->pRxBuffPtr++; + 800607e: 687b ldr r3, [r7, #4] + 8006080: 6d9b ldr r3, [r3, #88] @ 0x58 + 8006082: 1c5a adds r2, r3, #1 + 8006084: 687b ldr r3, [r7, #4] + 8006086: 659a str r2, [r3, #88] @ 0x58 + huart->RxXferCount--; + 8006088: 687b ldr r3, [r7, #4] + 800608a: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 800608e: b29b uxth r3, r3 + 8006090: 3b01 subs r3, #1 + 8006092: b29a uxth r2, r3 + 8006094: 687b ldr r3, [r7, #4] + 8006096: f8a3 205e strh.w r2, [r3, #94] @ 0x5e + + if (huart->RxXferCount == 0U) + 800609a: 687b ldr r3, [r7, #4] + 800609c: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 80060a0: b29b uxth r3, r3 + 80060a2: 2b00 cmp r3, #0 + 80060a4: f040 80a1 bne.w 80061ea + { + /* Disable the UART Parity Error Interrupt and RXNE interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + 80060a8: 687b ldr r3, [r7, #4] + 80060aa: 681b ldr r3, [r3, #0] + 80060ac: 64fb str r3, [r7, #76] @ 0x4c + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80060ae: 6cfb ldr r3, [r7, #76] @ 0x4c + 80060b0: e853 3f00 ldrex r3, [r3] + 80060b4: 64bb str r3, [r7, #72] @ 0x48 + return(result); + 80060b6: 6cbb ldr r3, [r7, #72] @ 0x48 + 80060b8: f423 7390 bic.w r3, r3, #288 @ 0x120 + 80060bc: 66bb str r3, [r7, #104] @ 0x68 + 80060be: 687b ldr r3, [r7, #4] + 80060c0: 681b ldr r3, [r3, #0] + 80060c2: 461a mov r2, r3 + 80060c4: 6ebb ldr r3, [r7, #104] @ 0x68 + 80060c6: 65bb str r3, [r7, #88] @ 0x58 + 80060c8: 657a str r2, [r7, #84] @ 0x54 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80060ca: 6d79 ldr r1, [r7, #84] @ 0x54 + 80060cc: 6dba ldr r2, [r7, #88] @ 0x58 + 80060ce: e841 2300 strex r3, r2, [r1] + 80060d2: 653b str r3, [r7, #80] @ 0x50 + return(result); + 80060d4: 6d3b ldr r3, [r7, #80] @ 0x50 + 80060d6: 2b00 cmp r3, #0 + 80060d8: d1e6 bne.n 80060a8 + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 80060da: 687b ldr r3, [r7, #4] + 80060dc: 681b ldr r3, [r3, #0] + 80060de: 3308 adds r3, #8 + 80060e0: 63bb str r3, [r7, #56] @ 0x38 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80060e2: 6bbb ldr r3, [r7, #56] @ 0x38 + 80060e4: e853 3f00 ldrex r3, [r3] + 80060e8: 637b str r3, [r7, #52] @ 0x34 + return(result); + 80060ea: 6b7b ldr r3, [r7, #52] @ 0x34 + 80060ec: f023 0301 bic.w r3, r3, #1 + 80060f0: 667b str r3, [r7, #100] @ 0x64 + 80060f2: 687b ldr r3, [r7, #4] + 80060f4: 681b ldr r3, [r3, #0] + 80060f6: 3308 adds r3, #8 + 80060f8: 6e7a ldr r2, [r7, #100] @ 0x64 + 80060fa: 647a str r2, [r7, #68] @ 0x44 + 80060fc: 643b str r3, [r7, #64] @ 0x40 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80060fe: 6c39 ldr r1, [r7, #64] @ 0x40 + 8006100: 6c7a ldr r2, [r7, #68] @ 0x44 + 8006102: e841 2300 strex r3, r2, [r1] + 8006106: 63fb str r3, [r7, #60] @ 0x3c + return(result); + 8006108: 6bfb ldr r3, [r7, #60] @ 0x3c + 800610a: 2b00 cmp r3, #0 + 800610c: d1e5 bne.n 80060da + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 800610e: 687b ldr r3, [r7, #4] + 8006110: 2220 movs r2, #32 + 8006112: f8c3 208c str.w r2, [r3, #140] @ 0x8c + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + 8006116: 687b ldr r3, [r7, #4] + 8006118: 2200 movs r2, #0 + 800611a: 675a str r2, [r3, #116] @ 0x74 + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + 800611c: 687b ldr r3, [r7, #4] + 800611e: 2200 movs r2, #0 + 8006120: 671a str r2, [r3, #112] @ 0x70 + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + 8006122: 687b ldr r3, [r7, #4] + 8006124: 681b ldr r3, [r3, #0] + 8006126: 4a33 ldr r2, [pc, #204] @ (80061f4 ) + 8006128: 4293 cmp r3, r2 + 800612a: d01f beq.n 800616c + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + 800612c: 687b ldr r3, [r7, #4] + 800612e: 681b ldr r3, [r3, #0] + 8006130: 685b ldr r3, [r3, #4] + 8006132: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 8006136: 2b00 cmp r3, #0 + 8006138: d018 beq.n 800616c + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + 800613a: 687b ldr r3, [r7, #4] + 800613c: 681b ldr r3, [r3, #0] + 800613e: 627b str r3, [r7, #36] @ 0x24 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006140: 6a7b ldr r3, [r7, #36] @ 0x24 + 8006142: e853 3f00 ldrex r3, [r3] + 8006146: 623b str r3, [r7, #32] + return(result); + 8006148: 6a3b ldr r3, [r7, #32] + 800614a: f023 6380 bic.w r3, r3, #67108864 @ 0x4000000 + 800614e: 663b str r3, [r7, #96] @ 0x60 + 8006150: 687b ldr r3, [r7, #4] + 8006152: 681b ldr r3, [r3, #0] + 8006154: 461a mov r2, r3 + 8006156: 6e3b ldr r3, [r7, #96] @ 0x60 + 8006158: 633b str r3, [r7, #48] @ 0x30 + 800615a: 62fa str r2, [r7, #44] @ 0x2c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 800615c: 6af9 ldr r1, [r7, #44] @ 0x2c + 800615e: 6b3a ldr r2, [r7, #48] @ 0x30 + 8006160: e841 2300 strex r3, r2, [r1] + 8006164: 62bb str r3, [r7, #40] @ 0x28 + return(result); + 8006166: 6abb ldr r3, [r7, #40] @ 0x28 + 8006168: 2b00 cmp r3, #0 + 800616a: d1e6 bne.n 800613a + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 800616c: 687b ldr r3, [r7, #4] + 800616e: 6edb ldr r3, [r3, #108] @ 0x6c + 8006170: 2b01 cmp r3, #1 + 8006172: d12e bne.n 80061d2 + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8006174: 687b ldr r3, [r7, #4] + 8006176: 2200 movs r2, #0 + 8006178: 66da str r2, [r3, #108] @ 0x6c + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 800617a: 687b ldr r3, [r7, #4] + 800617c: 681b ldr r3, [r3, #0] + 800617e: 613b str r3, [r7, #16] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006180: 693b ldr r3, [r7, #16] + 8006182: e853 3f00 ldrex r3, [r3] + 8006186: 60fb str r3, [r7, #12] + return(result); + 8006188: 68fb ldr r3, [r7, #12] + 800618a: f023 0310 bic.w r3, r3, #16 + 800618e: 65fb str r3, [r7, #92] @ 0x5c + 8006190: 687b ldr r3, [r7, #4] + 8006192: 681b ldr r3, [r3, #0] + 8006194: 461a mov r2, r3 + 8006196: 6dfb ldr r3, [r7, #92] @ 0x5c + 8006198: 61fb str r3, [r7, #28] + 800619a: 61ba str r2, [r7, #24] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 800619c: 69b9 ldr r1, [r7, #24] + 800619e: 69fa ldr r2, [r7, #28] + 80061a0: e841 2300 strex r3, r2, [r1] + 80061a4: 617b str r3, [r7, #20] + return(result); + 80061a6: 697b ldr r3, [r7, #20] + 80061a8: 2b00 cmp r3, #0 + 80061aa: d1e6 bne.n 800617a + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + 80061ac: 687b ldr r3, [r7, #4] + 80061ae: 681b ldr r3, [r3, #0] + 80061b0: 69db ldr r3, [r3, #28] + 80061b2: f003 0310 and.w r3, r3, #16 + 80061b6: 2b10 cmp r3, #16 + 80061b8: d103 bne.n 80061c2 + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 80061ba: 687b ldr r3, [r7, #4] + 80061bc: 681b ldr r3, [r3, #0] + 80061be: 2210 movs r2, #16 + 80061c0: 621a str r2, [r3, #32] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); + 80061c2: 687b ldr r3, [r7, #4] + 80061c4: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 80061c8: 4619 mov r1, r3 + 80061ca: 6878 ldr r0, [r7, #4] + 80061cc: f7ff f8e0 bl 8005390 + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + 80061d0: e00b b.n 80061ea + HAL_UART_RxCpltCallback(huart); + 80061d2: 6878 ldr r0, [r7, #4] + 80061d4: f7fa fcfa bl 8000bcc +} + 80061d8: e007 b.n 80061ea + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 80061da: 687b ldr r3, [r7, #4] + 80061dc: 681b ldr r3, [r3, #0] + 80061de: 699a ldr r2, [r3, #24] + 80061e0: 687b ldr r3, [r7, #4] + 80061e2: 681b ldr r3, [r3, #0] + 80061e4: f042 0208 orr.w r2, r2, #8 + 80061e8: 619a str r2, [r3, #24] +} + 80061ea: bf00 nop + 80061ec: 3770 adds r7, #112 @ 0x70 + 80061ee: 46bd mov sp, r7 + 80061f0: bd80 pop {r7, pc} + 80061f2: bf00 nop + 80061f4: 40008000 .word 0x40008000 + +080061f8 : + * interruptions have been enabled by HAL_UART_Receive_IT() + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) +{ + 80061f8: b580 push {r7, lr} + 80061fa: b09c sub sp, #112 @ 0x70 + 80061fc: af00 add r7, sp, #0 + 80061fe: 6078 str r0, [r7, #4] + uint16_t *tmp; + uint16_t uhMask = huart->Mask; + 8006200: 687b ldr r3, [r7, #4] + 8006202: f8b3 3060 ldrh.w r3, [r3, #96] @ 0x60 + 8006206: f8a7 306e strh.w r3, [r7, #110] @ 0x6e + uint16_t uhdata; + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 800620a: 687b ldr r3, [r7, #4] + 800620c: f8d3 308c ldr.w r3, [r3, #140] @ 0x8c + 8006210: 2b22 cmp r3, #34 @ 0x22 + 8006212: f040 80be bne.w 8006392 + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + 8006216: 687b ldr r3, [r7, #4] + 8006218: 681b ldr r3, [r3, #0] + 800621a: 6a5b ldr r3, [r3, #36] @ 0x24 + 800621c: f8a7 306c strh.w r3, [r7, #108] @ 0x6c + tmp = (uint16_t *) huart->pRxBuffPtr ; + 8006220: 687b ldr r3, [r7, #4] + 8006222: 6d9b ldr r3, [r3, #88] @ 0x58 + 8006224: 66bb str r3, [r7, #104] @ 0x68 + *tmp = (uint16_t)(uhdata & uhMask); + 8006226: f8b7 206c ldrh.w r2, [r7, #108] @ 0x6c + 800622a: f8b7 306e ldrh.w r3, [r7, #110] @ 0x6e + 800622e: 4013 ands r3, r2 + 8006230: b29a uxth r2, r3 + 8006232: 6ebb ldr r3, [r7, #104] @ 0x68 + 8006234: 801a strh r2, [r3, #0] + huart->pRxBuffPtr += 2U; + 8006236: 687b ldr r3, [r7, #4] + 8006238: 6d9b ldr r3, [r3, #88] @ 0x58 + 800623a: 1c9a adds r2, r3, #2 + 800623c: 687b ldr r3, [r7, #4] + 800623e: 659a str r2, [r3, #88] @ 0x58 + huart->RxXferCount--; + 8006240: 687b ldr r3, [r7, #4] + 8006242: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8006246: b29b uxth r3, r3 + 8006248: 3b01 subs r3, #1 + 800624a: b29a uxth r2, r3 + 800624c: 687b ldr r3, [r7, #4] + 800624e: f8a3 205e strh.w r2, [r3, #94] @ 0x5e + + if (huart->RxXferCount == 0U) + 8006252: 687b ldr r3, [r7, #4] + 8006254: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8006258: b29b uxth r3, r3 + 800625a: 2b00 cmp r3, #0 + 800625c: f040 80a1 bne.w 80063a2 + { + /* Disable the UART Parity Error Interrupt and RXNE interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + 8006260: 687b ldr r3, [r7, #4] + 8006262: 681b ldr r3, [r3, #0] + 8006264: 64bb str r3, [r7, #72] @ 0x48 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006266: 6cbb ldr r3, [r7, #72] @ 0x48 + 8006268: e853 3f00 ldrex r3, [r3] + 800626c: 647b str r3, [r7, #68] @ 0x44 + return(result); + 800626e: 6c7b ldr r3, [r7, #68] @ 0x44 + 8006270: f423 7390 bic.w r3, r3, #288 @ 0x120 + 8006274: 667b str r3, [r7, #100] @ 0x64 + 8006276: 687b ldr r3, [r7, #4] + 8006278: 681b ldr r3, [r3, #0] + 800627a: 461a mov r2, r3 + 800627c: 6e7b ldr r3, [r7, #100] @ 0x64 + 800627e: 657b str r3, [r7, #84] @ 0x54 + 8006280: 653a str r2, [r7, #80] @ 0x50 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006282: 6d39 ldr r1, [r7, #80] @ 0x50 + 8006284: 6d7a ldr r2, [r7, #84] @ 0x54 + 8006286: e841 2300 strex r3, r2, [r1] + 800628a: 64fb str r3, [r7, #76] @ 0x4c + return(result); + 800628c: 6cfb ldr r3, [r7, #76] @ 0x4c + 800628e: 2b00 cmp r3, #0 + 8006290: d1e6 bne.n 8006260 + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8006292: 687b ldr r3, [r7, #4] + 8006294: 681b ldr r3, [r3, #0] + 8006296: 3308 adds r3, #8 + 8006298: 637b str r3, [r7, #52] @ 0x34 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 800629a: 6b7b ldr r3, [r7, #52] @ 0x34 + 800629c: e853 3f00 ldrex r3, [r3] + 80062a0: 633b str r3, [r7, #48] @ 0x30 + return(result); + 80062a2: 6b3b ldr r3, [r7, #48] @ 0x30 + 80062a4: f023 0301 bic.w r3, r3, #1 + 80062a8: 663b str r3, [r7, #96] @ 0x60 + 80062aa: 687b ldr r3, [r7, #4] + 80062ac: 681b ldr r3, [r3, #0] + 80062ae: 3308 adds r3, #8 + 80062b0: 6e3a ldr r2, [r7, #96] @ 0x60 + 80062b2: 643a str r2, [r7, #64] @ 0x40 + 80062b4: 63fb str r3, [r7, #60] @ 0x3c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80062b6: 6bf9 ldr r1, [r7, #60] @ 0x3c + 80062b8: 6c3a ldr r2, [r7, #64] @ 0x40 + 80062ba: e841 2300 strex r3, r2, [r1] + 80062be: 63bb str r3, [r7, #56] @ 0x38 + return(result); + 80062c0: 6bbb ldr r3, [r7, #56] @ 0x38 + 80062c2: 2b00 cmp r3, #0 + 80062c4: d1e5 bne.n 8006292 + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 80062c6: 687b ldr r3, [r7, #4] + 80062c8: 2220 movs r2, #32 + 80062ca: f8c3 208c str.w r2, [r3, #140] @ 0x8c + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + 80062ce: 687b ldr r3, [r7, #4] + 80062d0: 2200 movs r2, #0 + 80062d2: 675a str r2, [r3, #116] @ 0x74 + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + 80062d4: 687b ldr r3, [r7, #4] + 80062d6: 2200 movs r2, #0 + 80062d8: 671a str r2, [r3, #112] @ 0x70 + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + 80062da: 687b ldr r3, [r7, #4] + 80062dc: 681b ldr r3, [r3, #0] + 80062de: 4a33 ldr r2, [pc, #204] @ (80063ac ) + 80062e0: 4293 cmp r3, r2 + 80062e2: d01f beq.n 8006324 + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + 80062e4: 687b ldr r3, [r7, #4] + 80062e6: 681b ldr r3, [r3, #0] + 80062e8: 685b ldr r3, [r3, #4] + 80062ea: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 80062ee: 2b00 cmp r3, #0 + 80062f0: d018 beq.n 8006324 + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + 80062f2: 687b ldr r3, [r7, #4] + 80062f4: 681b ldr r3, [r3, #0] + 80062f6: 623b str r3, [r7, #32] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80062f8: 6a3b ldr r3, [r7, #32] + 80062fa: e853 3f00 ldrex r3, [r3] + 80062fe: 61fb str r3, [r7, #28] + return(result); + 8006300: 69fb ldr r3, [r7, #28] + 8006302: f023 6380 bic.w r3, r3, #67108864 @ 0x4000000 + 8006306: 65fb str r3, [r7, #92] @ 0x5c + 8006308: 687b ldr r3, [r7, #4] + 800630a: 681b ldr r3, [r3, #0] + 800630c: 461a mov r2, r3 + 800630e: 6dfb ldr r3, [r7, #92] @ 0x5c + 8006310: 62fb str r3, [r7, #44] @ 0x2c + 8006312: 62ba str r2, [r7, #40] @ 0x28 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006314: 6ab9 ldr r1, [r7, #40] @ 0x28 + 8006316: 6afa ldr r2, [r7, #44] @ 0x2c + 8006318: e841 2300 strex r3, r2, [r1] + 800631c: 627b str r3, [r7, #36] @ 0x24 + return(result); + 800631e: 6a7b ldr r3, [r7, #36] @ 0x24 + 8006320: 2b00 cmp r3, #0 + 8006322: d1e6 bne.n 80062f2 + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 8006324: 687b ldr r3, [r7, #4] + 8006326: 6edb ldr r3, [r3, #108] @ 0x6c + 8006328: 2b01 cmp r3, #1 + 800632a: d12e bne.n 800638a + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 800632c: 687b ldr r3, [r7, #4] + 800632e: 2200 movs r2, #0 + 8006330: 66da str r2, [r3, #108] @ 0x6c + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 8006332: 687b ldr r3, [r7, #4] + 8006334: 681b ldr r3, [r3, #0] + 8006336: 60fb str r3, [r7, #12] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006338: 68fb ldr r3, [r7, #12] + 800633a: e853 3f00 ldrex r3, [r3] + 800633e: 60bb str r3, [r7, #8] + return(result); + 8006340: 68bb ldr r3, [r7, #8] + 8006342: f023 0310 bic.w r3, r3, #16 + 8006346: 65bb str r3, [r7, #88] @ 0x58 + 8006348: 687b ldr r3, [r7, #4] + 800634a: 681b ldr r3, [r3, #0] + 800634c: 461a mov r2, r3 + 800634e: 6dbb ldr r3, [r7, #88] @ 0x58 + 8006350: 61bb str r3, [r7, #24] + 8006352: 617a str r2, [r7, #20] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006354: 6979 ldr r1, [r7, #20] + 8006356: 69ba ldr r2, [r7, #24] + 8006358: e841 2300 strex r3, r2, [r1] + 800635c: 613b str r3, [r7, #16] + return(result); + 800635e: 693b ldr r3, [r7, #16] + 8006360: 2b00 cmp r3, #0 + 8006362: d1e6 bne.n 8006332 + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + 8006364: 687b ldr r3, [r7, #4] + 8006366: 681b ldr r3, [r3, #0] + 8006368: 69db ldr r3, [r3, #28] + 800636a: f003 0310 and.w r3, r3, #16 + 800636e: 2b10 cmp r3, #16 + 8006370: d103 bne.n 800637a + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 8006372: 687b ldr r3, [r7, #4] + 8006374: 681b ldr r3, [r3, #0] + 8006376: 2210 movs r2, #16 + 8006378: 621a str r2, [r3, #32] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); + 800637a: 687b ldr r3, [r7, #4] + 800637c: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 8006380: 4619 mov r1, r3 + 8006382: 6878 ldr r0, [r7, #4] + 8006384: f7ff f804 bl 8005390 + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + 8006388: e00b b.n 80063a2 + HAL_UART_RxCpltCallback(huart); + 800638a: 6878 ldr r0, [r7, #4] + 800638c: f7fa fc1e bl 8000bcc +} + 8006390: e007 b.n 80063a2 + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 8006392: 687b ldr r3, [r7, #4] + 8006394: 681b ldr r3, [r3, #0] + 8006396: 699a ldr r2, [r3, #24] + 8006398: 687b ldr r3, [r7, #4] + 800639a: 681b ldr r3, [r3, #0] + 800639c: f042 0208 orr.w r2, r2, #8 + 80063a0: 619a str r2, [r3, #24] +} + 80063a2: bf00 nop + 80063a4: 3770 adds r7, #112 @ 0x70 + 80063a6: 46bd mov sp, r7 + 80063a8: bd80 pop {r7, pc} + 80063aa: bf00 nop + 80063ac: 40008000 .word 0x40008000 + +080063b0 : + * interruptions have been enabled by HAL_UART_Receive_IT() + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) +{ + 80063b0: b580 push {r7, lr} + 80063b2: b0ac sub sp, #176 @ 0xb0 + 80063b4: af00 add r7, sp, #0 + 80063b6: 6078 str r0, [r7, #4] + uint16_t uhMask = huart->Mask; + 80063b8: 687b ldr r3, [r7, #4] + 80063ba: f8b3 3060 ldrh.w r3, [r3, #96] @ 0x60 + 80063be: f8a7 30aa strh.w r3, [r7, #170] @ 0xaa + uint16_t uhdata; + uint16_t nb_rx_data; + uint16_t rxdatacount; + uint32_t isrflags = READ_REG(huart->Instance->ISR); + 80063c2: 687b ldr r3, [r7, #4] + 80063c4: 681b ldr r3, [r3, #0] + 80063c6: 69db ldr r3, [r3, #28] + 80063c8: f8c7 30ac str.w r3, [r7, #172] @ 0xac + uint32_t cr1its = READ_REG(huart->Instance->CR1); + 80063cc: 687b ldr r3, [r7, #4] + 80063ce: 681b ldr r3, [r3, #0] + 80063d0: 681b ldr r3, [r3, #0] + 80063d2: f8c7 30a4 str.w r3, [r7, #164] @ 0xa4 + uint32_t cr3its = READ_REG(huart->Instance->CR3); + 80063d6: 687b ldr r3, [r7, #4] + 80063d8: 681b ldr r3, [r3, #0] + 80063da: 689b ldr r3, [r3, #8] + 80063dc: f8c7 30a0 str.w r3, [r7, #160] @ 0xa0 + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 80063e0: 687b ldr r3, [r7, #4] + 80063e2: f8d3 308c ldr.w r3, [r3, #140] @ 0x8c + 80063e6: 2b22 cmp r3, #34 @ 0x22 + 80063e8: f040 8183 bne.w 80066f2 + { + nb_rx_data = huart->NbRxDataToProcess; + 80063ec: 687b ldr r3, [r7, #4] + 80063ee: f8b3 3068 ldrh.w r3, [r3, #104] @ 0x68 + 80063f2: f8a7 309e strh.w r3, [r7, #158] @ 0x9e + while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 80063f6: e126 b.n 8006646 + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + 80063f8: 687b ldr r3, [r7, #4] + 80063fa: 681b ldr r3, [r3, #0] + 80063fc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80063fe: f8a7 309c strh.w r3, [r7, #156] @ 0x9c + *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + 8006402: f8b7 309c ldrh.w r3, [r7, #156] @ 0x9c + 8006406: b2d9 uxtb r1, r3 + 8006408: f8b7 30aa ldrh.w r3, [r7, #170] @ 0xaa + 800640c: b2da uxtb r2, r3 + 800640e: 687b ldr r3, [r7, #4] + 8006410: 6d9b ldr r3, [r3, #88] @ 0x58 + 8006412: 400a ands r2, r1 + 8006414: b2d2 uxtb r2, r2 + 8006416: 701a strb r2, [r3, #0] + huart->pRxBuffPtr++; + 8006418: 687b ldr r3, [r7, #4] + 800641a: 6d9b ldr r3, [r3, #88] @ 0x58 + 800641c: 1c5a adds r2, r3, #1 + 800641e: 687b ldr r3, [r7, #4] + 8006420: 659a str r2, [r3, #88] @ 0x58 + huart->RxXferCount--; + 8006422: 687b ldr r3, [r7, #4] + 8006424: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8006428: b29b uxth r3, r3 + 800642a: 3b01 subs r3, #1 + 800642c: b29a uxth r2, r3 + 800642e: 687b ldr r3, [r7, #4] + 8006430: f8a3 205e strh.w r2, [r3, #94] @ 0x5e + isrflags = READ_REG(huart->Instance->ISR); + 8006434: 687b ldr r3, [r7, #4] + 8006436: 681b ldr r3, [r3, #0] + 8006438: 69db ldr r3, [r3, #28] + 800643a: f8c7 30ac str.w r3, [r7, #172] @ 0xac + + /* If some non blocking errors occurred */ + if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) + 800643e: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 8006442: f003 0307 and.w r3, r3, #7 + 8006446: 2b00 cmp r3, #0 + 8006448: d053 beq.n 80064f2 + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + 800644a: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 800644e: f003 0301 and.w r3, r3, #1 + 8006452: 2b00 cmp r3, #0 + 8006454: d011 beq.n 800647a + 8006456: f8d7 30a4 ldr.w r3, [r7, #164] @ 0xa4 + 800645a: f403 7380 and.w r3, r3, #256 @ 0x100 + 800645e: 2b00 cmp r3, #0 + 8006460: d00b beq.n 800647a + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + 8006462: 687b ldr r3, [r7, #4] + 8006464: 681b ldr r3, [r3, #0] + 8006466: 2201 movs r2, #1 + 8006468: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_PE; + 800646a: 687b ldr r3, [r7, #4] + 800646c: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8006470: f043 0201 orr.w r2, r3, #1 + 8006474: 687b ldr r3, [r7, #4] + 8006476: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 800647a: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 800647e: f003 0302 and.w r3, r3, #2 + 8006482: 2b00 cmp r3, #0 + 8006484: d011 beq.n 80064aa + 8006486: f8d7 30a0 ldr.w r3, [r7, #160] @ 0xa0 + 800648a: f003 0301 and.w r3, r3, #1 + 800648e: 2b00 cmp r3, #0 + 8006490: d00b beq.n 80064aa + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + 8006492: 687b ldr r3, [r7, #4] + 8006494: 681b ldr r3, [r3, #0] + 8006496: 2202 movs r2, #2 + 8006498: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_FE; + 800649a: 687b ldr r3, [r7, #4] + 800649c: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 80064a0: f043 0204 orr.w r2, r3, #4 + 80064a4: 687b ldr r3, [r7, #4] + 80064a6: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 80064aa: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 80064ae: f003 0304 and.w r3, r3, #4 + 80064b2: 2b00 cmp r3, #0 + 80064b4: d011 beq.n 80064da + 80064b6: f8d7 30a0 ldr.w r3, [r7, #160] @ 0xa0 + 80064ba: f003 0301 and.w r3, r3, #1 + 80064be: 2b00 cmp r3, #0 + 80064c0: d00b beq.n 80064da + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + 80064c2: 687b ldr r3, [r7, #4] + 80064c4: 681b ldr r3, [r3, #0] + 80064c6: 2204 movs r2, #4 + 80064c8: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_NE; + 80064ca: 687b ldr r3, [r7, #4] + 80064cc: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 80064d0: f043 0202 orr.w r2, r3, #2 + 80064d4: 687b ldr r3, [r7, #4] + 80064d6: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* Call UART Error Call back function if need be ----------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + 80064da: 687b ldr r3, [r7, #4] + 80064dc: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 80064e0: 2b00 cmp r3, #0 + 80064e2: d006 beq.n 80064f2 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 80064e4: 6878 ldr r0, [r7, #4] + 80064e6: f7fe ff49 bl 800537c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + 80064ea: 687b ldr r3, [r7, #4] + 80064ec: 2200 movs r2, #0 + 80064ee: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + } + + if (huart->RxXferCount == 0U) + 80064f2: 687b ldr r3, [r7, #4] + 80064f4: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 80064f8: b29b uxth r3, r3 + 80064fa: 2b00 cmp r3, #0 + 80064fc: f040 80a3 bne.w 8006646 + { + /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + 8006500: 687b ldr r3, [r7, #4] + 8006502: 681b ldr r3, [r3, #0] + 8006504: 673b str r3, [r7, #112] @ 0x70 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006506: 6f3b ldr r3, [r7, #112] @ 0x70 + 8006508: e853 3f00 ldrex r3, [r3] + 800650c: 66fb str r3, [r7, #108] @ 0x6c + return(result); + 800650e: 6efb ldr r3, [r7, #108] @ 0x6c + 8006510: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8006514: f8c7 3098 str.w r3, [r7, #152] @ 0x98 + 8006518: 687b ldr r3, [r7, #4] + 800651a: 681b ldr r3, [r3, #0] + 800651c: 461a mov r2, r3 + 800651e: f8d7 3098 ldr.w r3, [r7, #152] @ 0x98 + 8006522: 67fb str r3, [r7, #124] @ 0x7c + 8006524: 67ba str r2, [r7, #120] @ 0x78 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006526: 6fb9 ldr r1, [r7, #120] @ 0x78 + 8006528: 6ffa ldr r2, [r7, #124] @ 0x7c + 800652a: e841 2300 strex r3, r2, [r1] + 800652e: 677b str r3, [r7, #116] @ 0x74 + return(result); + 8006530: 6f7b ldr r3, [r7, #116] @ 0x74 + 8006532: 2b00 cmp r3, #0 + 8006534: d1e4 bne.n 8006500 + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) + and RX FIFO Threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 8006536: 687b ldr r3, [r7, #4] + 8006538: 681b ldr r3, [r3, #0] + 800653a: 3308 adds r3, #8 + 800653c: 65fb str r3, [r7, #92] @ 0x5c + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 800653e: 6dfb ldr r3, [r7, #92] @ 0x5c + 8006540: e853 3f00 ldrex r3, [r3] + 8006544: 65bb str r3, [r7, #88] @ 0x58 + return(result); + 8006546: 6dbb ldr r3, [r7, #88] @ 0x58 + 8006548: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 800654c: f023 0301 bic.w r3, r3, #1 + 8006550: f8c7 3094 str.w r3, [r7, #148] @ 0x94 + 8006554: 687b ldr r3, [r7, #4] + 8006556: 681b ldr r3, [r3, #0] + 8006558: 3308 adds r3, #8 + 800655a: f8d7 2094 ldr.w r2, [r7, #148] @ 0x94 + 800655e: 66ba str r2, [r7, #104] @ 0x68 + 8006560: 667b str r3, [r7, #100] @ 0x64 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006562: 6e79 ldr r1, [r7, #100] @ 0x64 + 8006564: 6eba ldr r2, [r7, #104] @ 0x68 + 8006566: e841 2300 strex r3, r2, [r1] + 800656a: 663b str r3, [r7, #96] @ 0x60 + return(result); + 800656c: 6e3b ldr r3, [r7, #96] @ 0x60 + 800656e: 2b00 cmp r3, #0 + 8006570: d1e1 bne.n 8006536 + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 8006572: 687b ldr r3, [r7, #4] + 8006574: 2220 movs r2, #32 + 8006576: f8c3 208c str.w r2, [r3, #140] @ 0x8c + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + 800657a: 687b ldr r3, [r7, #4] + 800657c: 2200 movs r2, #0 + 800657e: 675a str r2, [r3, #116] @ 0x74 + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + 8006580: 687b ldr r3, [r7, #4] + 8006582: 2200 movs r2, #0 + 8006584: 671a str r2, [r3, #112] @ 0x70 + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + 8006586: 687b ldr r3, [r7, #4] + 8006588: 681b ldr r3, [r3, #0] + 800658a: 4a60 ldr r2, [pc, #384] @ (800670c ) + 800658c: 4293 cmp r3, r2 + 800658e: d021 beq.n 80065d4 + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + 8006590: 687b ldr r3, [r7, #4] + 8006592: 681b ldr r3, [r3, #0] + 8006594: 685b ldr r3, [r3, #4] + 8006596: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 800659a: 2b00 cmp r3, #0 + 800659c: d01a beq.n 80065d4 + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + 800659e: 687b ldr r3, [r7, #4] + 80065a0: 681b ldr r3, [r3, #0] + 80065a2: 64bb str r3, [r7, #72] @ 0x48 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80065a4: 6cbb ldr r3, [r7, #72] @ 0x48 + 80065a6: e853 3f00 ldrex r3, [r3] + 80065aa: 647b str r3, [r7, #68] @ 0x44 + return(result); + 80065ac: 6c7b ldr r3, [r7, #68] @ 0x44 + 80065ae: f023 6380 bic.w r3, r3, #67108864 @ 0x4000000 + 80065b2: f8c7 3090 str.w r3, [r7, #144] @ 0x90 + 80065b6: 687b ldr r3, [r7, #4] + 80065b8: 681b ldr r3, [r3, #0] + 80065ba: 461a mov r2, r3 + 80065bc: f8d7 3090 ldr.w r3, [r7, #144] @ 0x90 + 80065c0: 657b str r3, [r7, #84] @ 0x54 + 80065c2: 653a str r2, [r7, #80] @ 0x50 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80065c4: 6d39 ldr r1, [r7, #80] @ 0x50 + 80065c6: 6d7a ldr r2, [r7, #84] @ 0x54 + 80065c8: e841 2300 strex r3, r2, [r1] + 80065cc: 64fb str r3, [r7, #76] @ 0x4c + return(result); + 80065ce: 6cfb ldr r3, [r7, #76] @ 0x4c + 80065d0: 2b00 cmp r3, #0 + 80065d2: d1e4 bne.n 800659e + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 80065d4: 687b ldr r3, [r7, #4] + 80065d6: 6edb ldr r3, [r3, #108] @ 0x6c + 80065d8: 2b01 cmp r3, #1 + 80065da: d130 bne.n 800663e + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 80065dc: 687b ldr r3, [r7, #4] + 80065de: 2200 movs r2, #0 + 80065e0: 66da str r2, [r3, #108] @ 0x6c + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 80065e2: 687b ldr r3, [r7, #4] + 80065e4: 681b ldr r3, [r3, #0] + 80065e6: 637b str r3, [r7, #52] @ 0x34 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80065e8: 6b7b ldr r3, [r7, #52] @ 0x34 + 80065ea: e853 3f00 ldrex r3, [r3] + 80065ee: 633b str r3, [r7, #48] @ 0x30 + return(result); + 80065f0: 6b3b ldr r3, [r7, #48] @ 0x30 + 80065f2: f023 0310 bic.w r3, r3, #16 + 80065f6: f8c7 308c str.w r3, [r7, #140] @ 0x8c + 80065fa: 687b ldr r3, [r7, #4] + 80065fc: 681b ldr r3, [r3, #0] + 80065fe: 461a mov r2, r3 + 8006600: f8d7 308c ldr.w r3, [r7, #140] @ 0x8c + 8006604: 643b str r3, [r7, #64] @ 0x40 + 8006606: 63fa str r2, [r7, #60] @ 0x3c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006608: 6bf9 ldr r1, [r7, #60] @ 0x3c + 800660a: 6c3a ldr r2, [r7, #64] @ 0x40 + 800660c: e841 2300 strex r3, r2, [r1] + 8006610: 63bb str r3, [r7, #56] @ 0x38 + return(result); + 8006612: 6bbb ldr r3, [r7, #56] @ 0x38 + 8006614: 2b00 cmp r3, #0 + 8006616: d1e4 bne.n 80065e2 + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + 8006618: 687b ldr r3, [r7, #4] + 800661a: 681b ldr r3, [r3, #0] + 800661c: 69db ldr r3, [r3, #28] + 800661e: f003 0310 and.w r3, r3, #16 + 8006622: 2b10 cmp r3, #16 + 8006624: d103 bne.n 800662e + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 8006626: 687b ldr r3, [r7, #4] + 8006628: 681b ldr r3, [r3, #0] + 800662a: 2210 movs r2, #16 + 800662c: 621a str r2, [r3, #32] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); + 800662e: 687b ldr r3, [r7, #4] + 8006630: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 8006634: 4619 mov r1, r3 + 8006636: 6878 ldr r0, [r7, #4] + 8006638: f7fe feaa bl 8005390 +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + break; + 800663c: e00e b.n 800665c + HAL_UART_RxCpltCallback(huart); + 800663e: 6878 ldr r0, [r7, #4] + 8006640: f7fa fac4 bl 8000bcc + break; + 8006644: e00a b.n 800665c + while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 8006646: f8b7 309e ldrh.w r3, [r7, #158] @ 0x9e + 800664a: 2b00 cmp r3, #0 + 800664c: d006 beq.n 800665c + 800664e: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 8006652: f003 0320 and.w r3, r3, #32 + 8006656: 2b00 cmp r3, #0 + 8006658: f47f aece bne.w 80063f8 + + /* When remaining number of bytes to receive is less than the RX FIFO + threshold, next incoming frames are processed as if FIFO mode was + disabled (i.e. one interrupt per received frame). + */ + rxdatacount = huart->RxXferCount; + 800665c: 687b ldr r3, [r7, #4] + 800665e: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8006662: f8a7 308a strh.w r3, [r7, #138] @ 0x8a + if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + 8006666: f8b7 308a ldrh.w r3, [r7, #138] @ 0x8a + 800666a: 2b00 cmp r3, #0 + 800666c: d049 beq.n 8006702 + 800666e: 687b ldr r3, [r7, #4] + 8006670: f8b3 3068 ldrh.w r3, [r3, #104] @ 0x68 + 8006674: f8b7 208a ldrh.w r2, [r7, #138] @ 0x8a + 8006678: 429a cmp r2, r3 + 800667a: d242 bcs.n 8006702 + { + /* Disable the UART RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); + 800667c: 687b ldr r3, [r7, #4] + 800667e: 681b ldr r3, [r3, #0] + 8006680: 3308 adds r3, #8 + 8006682: 623b str r3, [r7, #32] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006684: 6a3b ldr r3, [r7, #32] + 8006686: e853 3f00 ldrex r3, [r3] + 800668a: 61fb str r3, [r7, #28] + return(result); + 800668c: 69fb ldr r3, [r7, #28] + 800668e: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8006692: f8c7 3084 str.w r3, [r7, #132] @ 0x84 + 8006696: 687b ldr r3, [r7, #4] + 8006698: 681b ldr r3, [r3, #0] + 800669a: 3308 adds r3, #8 + 800669c: f8d7 2084 ldr.w r2, [r7, #132] @ 0x84 + 80066a0: 62fa str r2, [r7, #44] @ 0x2c + 80066a2: 62bb str r3, [r7, #40] @ 0x28 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80066a4: 6ab9 ldr r1, [r7, #40] @ 0x28 + 80066a6: 6afa ldr r2, [r7, #44] @ 0x2c + 80066a8: e841 2300 strex r3, r2, [r1] + 80066ac: 627b str r3, [r7, #36] @ 0x24 + return(result); + 80066ae: 6a7b ldr r3, [r7, #36] @ 0x24 + 80066b0: 2b00 cmp r3, #0 + 80066b2: d1e3 bne.n 800667c + + /* Update the RxISR function pointer */ + huart->RxISR = UART_RxISR_8BIT; + 80066b4: 687b ldr r3, [r7, #4] + 80066b6: 4a16 ldr r2, [pc, #88] @ (8006710 ) + 80066b8: 675a str r2, [r3, #116] @ 0x74 + + /* Enable the UART Data Register Not Empty interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); + 80066ba: 687b ldr r3, [r7, #4] + 80066bc: 681b ldr r3, [r3, #0] + 80066be: 60fb str r3, [r7, #12] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80066c0: 68fb ldr r3, [r7, #12] + 80066c2: e853 3f00 ldrex r3, [r3] + 80066c6: 60bb str r3, [r7, #8] + return(result); + 80066c8: 68bb ldr r3, [r7, #8] + 80066ca: f043 0320 orr.w r3, r3, #32 + 80066ce: f8c7 3080 str.w r3, [r7, #128] @ 0x80 + 80066d2: 687b ldr r3, [r7, #4] + 80066d4: 681b ldr r3, [r3, #0] + 80066d6: 461a mov r2, r3 + 80066d8: f8d7 3080 ldr.w r3, [r7, #128] @ 0x80 + 80066dc: 61bb str r3, [r7, #24] + 80066de: 617a str r2, [r7, #20] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80066e0: 6979 ldr r1, [r7, #20] + 80066e2: 69ba ldr r2, [r7, #24] + 80066e4: e841 2300 strex r3, r2, [r1] + 80066e8: 613b str r3, [r7, #16] + return(result); + 80066ea: 693b ldr r3, [r7, #16] + 80066ec: 2b00 cmp r3, #0 + 80066ee: d1e4 bne.n 80066ba + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + 80066f0: e007 b.n 8006702 + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 80066f2: 687b ldr r3, [r7, #4] + 80066f4: 681b ldr r3, [r3, #0] + 80066f6: 699a ldr r2, [r3, #24] + 80066f8: 687b ldr r3, [r7, #4] + 80066fa: 681b ldr r3, [r3, #0] + 80066fc: f042 0208 orr.w r2, r2, #8 + 8006700: 619a str r2, [r3, #24] +} + 8006702: bf00 nop + 8006704: 37b0 adds r7, #176 @ 0xb0 + 8006706: 46bd mov sp, r7 + 8006708: bd80 pop {r7, pc} + 800670a: bf00 nop + 800670c: 40008000 .word 0x40008000 + 8006710: 08006041 .word 0x08006041 + +08006714 : + * interruptions have been enabled by HAL_UART_Receive_IT() + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) +{ + 8006714: b580 push {r7, lr} + 8006716: b0ae sub sp, #184 @ 0xb8 + 8006718: af00 add r7, sp, #0 + 800671a: 6078 str r0, [r7, #4] + uint16_t *tmp; + uint16_t uhMask = huart->Mask; + 800671c: 687b ldr r3, [r7, #4] + 800671e: f8b3 3060 ldrh.w r3, [r3, #96] @ 0x60 + 8006722: f8a7 30b2 strh.w r3, [r7, #178] @ 0xb2 + uint16_t uhdata; + uint16_t nb_rx_data; + uint16_t rxdatacount; + uint32_t isrflags = READ_REG(huart->Instance->ISR); + 8006726: 687b ldr r3, [r7, #4] + 8006728: 681b ldr r3, [r3, #0] + 800672a: 69db ldr r3, [r3, #28] + 800672c: f8c7 30b4 str.w r3, [r7, #180] @ 0xb4 + uint32_t cr1its = READ_REG(huart->Instance->CR1); + 8006730: 687b ldr r3, [r7, #4] + 8006732: 681b ldr r3, [r3, #0] + 8006734: 681b ldr r3, [r3, #0] + 8006736: f8c7 30ac str.w r3, [r7, #172] @ 0xac + uint32_t cr3its = READ_REG(huart->Instance->CR3); + 800673a: 687b ldr r3, [r7, #4] + 800673c: 681b ldr r3, [r3, #0] + 800673e: 689b ldr r3, [r3, #8] + 8006740: f8c7 30a8 str.w r3, [r7, #168] @ 0xa8 + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 8006744: 687b ldr r3, [r7, #4] + 8006746: f8d3 308c ldr.w r3, [r3, #140] @ 0x8c + 800674a: 2b22 cmp r3, #34 @ 0x22 + 800674c: f040 8187 bne.w 8006a5e + { + nb_rx_data = huart->NbRxDataToProcess; + 8006750: 687b ldr r3, [r7, #4] + 8006752: f8b3 3068 ldrh.w r3, [r3, #104] @ 0x68 + 8006756: f8a7 30a6 strh.w r3, [r7, #166] @ 0xa6 + while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 800675a: e12a b.n 80069b2 + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + 800675c: 687b ldr r3, [r7, #4] + 800675e: 681b ldr r3, [r3, #0] + 8006760: 6a5b ldr r3, [r3, #36] @ 0x24 + 8006762: f8a7 30a4 strh.w r3, [r7, #164] @ 0xa4 + tmp = (uint16_t *) huart->pRxBuffPtr ; + 8006766: 687b ldr r3, [r7, #4] + 8006768: 6d9b ldr r3, [r3, #88] @ 0x58 + 800676a: f8c7 30a0 str.w r3, [r7, #160] @ 0xa0 + *tmp = (uint16_t)(uhdata & uhMask); + 800676e: f8b7 20a4 ldrh.w r2, [r7, #164] @ 0xa4 + 8006772: f8b7 30b2 ldrh.w r3, [r7, #178] @ 0xb2 + 8006776: 4013 ands r3, r2 + 8006778: b29a uxth r2, r3 + 800677a: f8d7 30a0 ldr.w r3, [r7, #160] @ 0xa0 + 800677e: 801a strh r2, [r3, #0] + huart->pRxBuffPtr += 2U; + 8006780: 687b ldr r3, [r7, #4] + 8006782: 6d9b ldr r3, [r3, #88] @ 0x58 + 8006784: 1c9a adds r2, r3, #2 + 8006786: 687b ldr r3, [r7, #4] + 8006788: 659a str r2, [r3, #88] @ 0x58 + huart->RxXferCount--; + 800678a: 687b ldr r3, [r7, #4] + 800678c: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8006790: b29b uxth r3, r3 + 8006792: 3b01 subs r3, #1 + 8006794: b29a uxth r2, r3 + 8006796: 687b ldr r3, [r7, #4] + 8006798: f8a3 205e strh.w r2, [r3, #94] @ 0x5e + isrflags = READ_REG(huart->Instance->ISR); + 800679c: 687b ldr r3, [r7, #4] + 800679e: 681b ldr r3, [r3, #0] + 80067a0: 69db ldr r3, [r3, #28] + 80067a2: f8c7 30b4 str.w r3, [r7, #180] @ 0xb4 + + /* If some non blocking errors occurred */ + if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) + 80067a6: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 80067aa: f003 0307 and.w r3, r3, #7 + 80067ae: 2b00 cmp r3, #0 + 80067b0: d053 beq.n 800685a + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + 80067b2: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 80067b6: f003 0301 and.w r3, r3, #1 + 80067ba: 2b00 cmp r3, #0 + 80067bc: d011 beq.n 80067e2 + 80067be: f8d7 30ac ldr.w r3, [r7, #172] @ 0xac + 80067c2: f403 7380 and.w r3, r3, #256 @ 0x100 + 80067c6: 2b00 cmp r3, #0 + 80067c8: d00b beq.n 80067e2 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + 80067ca: 687b ldr r3, [r7, #4] + 80067cc: 681b ldr r3, [r3, #0] + 80067ce: 2201 movs r2, #1 + 80067d0: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_PE; + 80067d2: 687b ldr r3, [r7, #4] + 80067d4: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 80067d8: f043 0201 orr.w r2, r3, #1 + 80067dc: 687b ldr r3, [r7, #4] + 80067de: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 80067e2: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 80067e6: f003 0302 and.w r3, r3, #2 + 80067ea: 2b00 cmp r3, #0 + 80067ec: d011 beq.n 8006812 + 80067ee: f8d7 30a8 ldr.w r3, [r7, #168] @ 0xa8 + 80067f2: f003 0301 and.w r3, r3, #1 + 80067f6: 2b00 cmp r3, #0 + 80067f8: d00b beq.n 8006812 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + 80067fa: 687b ldr r3, [r7, #4] + 80067fc: 681b ldr r3, [r3, #0] + 80067fe: 2202 movs r2, #2 + 8006800: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_FE; + 8006802: 687b ldr r3, [r7, #4] + 8006804: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8006808: f043 0204 orr.w r2, r3, #4 + 800680c: 687b ldr r3, [r7, #4] + 800680e: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 8006812: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 8006816: f003 0304 and.w r3, r3, #4 + 800681a: 2b00 cmp r3, #0 + 800681c: d011 beq.n 8006842 + 800681e: f8d7 30a8 ldr.w r3, [r7, #168] @ 0xa8 + 8006822: f003 0301 and.w r3, r3, #1 + 8006826: 2b00 cmp r3, #0 + 8006828: d00b beq.n 8006842 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + 800682a: 687b ldr r3, [r7, #4] + 800682c: 681b ldr r3, [r3, #0] + 800682e: 2204 movs r2, #4 + 8006830: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_NE; + 8006832: 687b ldr r3, [r7, #4] + 8006834: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8006838: f043 0202 orr.w r2, r3, #2 + 800683c: 687b ldr r3, [r7, #4] + 800683e: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + + /* Call UART Error Call back function if need be ----------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + 8006842: 687b ldr r3, [r7, #4] + 8006844: f8d3 3090 ldr.w r3, [r3, #144] @ 0x90 + 8006848: 2b00 cmp r3, #0 + 800684a: d006 beq.n 800685a +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 800684c: 6878 ldr r0, [r7, #4] + 800684e: f7fe fd95 bl 800537c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8006852: 687b ldr r3, [r7, #4] + 8006854: 2200 movs r2, #0 + 8006856: f8c3 2090 str.w r2, [r3, #144] @ 0x90 + } + } + + if (huart->RxXferCount == 0U) + 800685a: 687b ldr r3, [r7, #4] + 800685c: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 8006860: b29b uxth r3, r3 + 8006862: 2b00 cmp r3, #0 + 8006864: f040 80a5 bne.w 80069b2 + { + /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + 8006868: 687b ldr r3, [r7, #4] + 800686a: 681b ldr r3, [r3, #0] + 800686c: 677b str r3, [r7, #116] @ 0x74 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 800686e: 6f7b ldr r3, [r7, #116] @ 0x74 + 8006870: e853 3f00 ldrex r3, [r3] + 8006874: 673b str r3, [r7, #112] @ 0x70 + return(result); + 8006876: 6f3b ldr r3, [r7, #112] @ 0x70 + 8006878: f423 7380 bic.w r3, r3, #256 @ 0x100 + 800687c: f8c7 309c str.w r3, [r7, #156] @ 0x9c + 8006880: 687b ldr r3, [r7, #4] + 8006882: 681b ldr r3, [r3, #0] + 8006884: 461a mov r2, r3 + 8006886: f8d7 309c ldr.w r3, [r7, #156] @ 0x9c + 800688a: f8c7 3080 str.w r3, [r7, #128] @ 0x80 + 800688e: 67fa str r2, [r7, #124] @ 0x7c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006890: 6ff9 ldr r1, [r7, #124] @ 0x7c + 8006892: f8d7 2080 ldr.w r2, [r7, #128] @ 0x80 + 8006896: e841 2300 strex r3, r2, [r1] + 800689a: 67bb str r3, [r7, #120] @ 0x78 + return(result); + 800689c: 6fbb ldr r3, [r7, #120] @ 0x78 + 800689e: 2b00 cmp r3, #0 + 80068a0: d1e2 bne.n 8006868 + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) + and RX FIFO Threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 80068a2: 687b ldr r3, [r7, #4] + 80068a4: 681b ldr r3, [r3, #0] + 80068a6: 3308 adds r3, #8 + 80068a8: 663b str r3, [r7, #96] @ 0x60 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80068aa: 6e3b ldr r3, [r7, #96] @ 0x60 + 80068ac: e853 3f00 ldrex r3, [r3] + 80068b0: 65fb str r3, [r7, #92] @ 0x5c + return(result); + 80068b2: 6dfb ldr r3, [r7, #92] @ 0x5c + 80068b4: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 80068b8: f023 0301 bic.w r3, r3, #1 + 80068bc: f8c7 3098 str.w r3, [r7, #152] @ 0x98 + 80068c0: 687b ldr r3, [r7, #4] + 80068c2: 681b ldr r3, [r3, #0] + 80068c4: 3308 adds r3, #8 + 80068c6: f8d7 2098 ldr.w r2, [r7, #152] @ 0x98 + 80068ca: 66fa str r2, [r7, #108] @ 0x6c + 80068cc: 66bb str r3, [r7, #104] @ 0x68 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 80068ce: 6eb9 ldr r1, [r7, #104] @ 0x68 + 80068d0: 6efa ldr r2, [r7, #108] @ 0x6c + 80068d2: e841 2300 strex r3, r2, [r1] + 80068d6: 667b str r3, [r7, #100] @ 0x64 + return(result); + 80068d8: 6e7b ldr r3, [r7, #100] @ 0x64 + 80068da: 2b00 cmp r3, #0 + 80068dc: d1e1 bne.n 80068a2 + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 80068de: 687b ldr r3, [r7, #4] + 80068e0: 2220 movs r2, #32 + 80068e2: f8c3 208c str.w r2, [r3, #140] @ 0x8c + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + 80068e6: 687b ldr r3, [r7, #4] + 80068e8: 2200 movs r2, #0 + 80068ea: 675a str r2, [r3, #116] @ 0x74 + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + 80068ec: 687b ldr r3, [r7, #4] + 80068ee: 2200 movs r2, #0 + 80068f0: 671a str r2, [r3, #112] @ 0x70 + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + 80068f2: 687b ldr r3, [r7, #4] + 80068f4: 681b ldr r3, [r3, #0] + 80068f6: 4a60 ldr r2, [pc, #384] @ (8006a78 ) + 80068f8: 4293 cmp r3, r2 + 80068fa: d021 beq.n 8006940 + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + 80068fc: 687b ldr r3, [r7, #4] + 80068fe: 681b ldr r3, [r3, #0] + 8006900: 685b ldr r3, [r3, #4] + 8006902: f403 0300 and.w r3, r3, #8388608 @ 0x800000 + 8006906: 2b00 cmp r3, #0 + 8006908: d01a beq.n 8006940 + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + 800690a: 687b ldr r3, [r7, #4] + 800690c: 681b ldr r3, [r3, #0] + 800690e: 64fb str r3, [r7, #76] @ 0x4c + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006910: 6cfb ldr r3, [r7, #76] @ 0x4c + 8006912: e853 3f00 ldrex r3, [r3] + 8006916: 64bb str r3, [r7, #72] @ 0x48 + return(result); + 8006918: 6cbb ldr r3, [r7, #72] @ 0x48 + 800691a: f023 6380 bic.w r3, r3, #67108864 @ 0x4000000 + 800691e: f8c7 3094 str.w r3, [r7, #148] @ 0x94 + 8006922: 687b ldr r3, [r7, #4] + 8006924: 681b ldr r3, [r3, #0] + 8006926: 461a mov r2, r3 + 8006928: f8d7 3094 ldr.w r3, [r7, #148] @ 0x94 + 800692c: 65bb str r3, [r7, #88] @ 0x58 + 800692e: 657a str r2, [r7, #84] @ 0x54 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006930: 6d79 ldr r1, [r7, #84] @ 0x54 + 8006932: 6dba ldr r2, [r7, #88] @ 0x58 + 8006934: e841 2300 strex r3, r2, [r1] + 8006938: 653b str r3, [r7, #80] @ 0x50 + return(result); + 800693a: 6d3b ldr r3, [r7, #80] @ 0x50 + 800693c: 2b00 cmp r3, #0 + 800693e: d1e4 bne.n 800690a + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 8006940: 687b ldr r3, [r7, #4] + 8006942: 6edb ldr r3, [r3, #108] @ 0x6c + 8006944: 2b01 cmp r3, #1 + 8006946: d130 bne.n 80069aa + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 8006948: 687b ldr r3, [r7, #4] + 800694a: 2200 movs r2, #0 + 800694c: 66da str r2, [r3, #108] @ 0x6c + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 800694e: 687b ldr r3, [r7, #4] + 8006950: 681b ldr r3, [r3, #0] + 8006952: 63bb str r3, [r7, #56] @ 0x38 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006954: 6bbb ldr r3, [r7, #56] @ 0x38 + 8006956: e853 3f00 ldrex r3, [r3] + 800695a: 637b str r3, [r7, #52] @ 0x34 + return(result); + 800695c: 6b7b ldr r3, [r7, #52] @ 0x34 + 800695e: f023 0310 bic.w r3, r3, #16 + 8006962: f8c7 3090 str.w r3, [r7, #144] @ 0x90 + 8006966: 687b ldr r3, [r7, #4] + 8006968: 681b ldr r3, [r3, #0] + 800696a: 461a mov r2, r3 + 800696c: f8d7 3090 ldr.w r3, [r7, #144] @ 0x90 + 8006970: 647b str r3, [r7, #68] @ 0x44 + 8006972: 643a str r2, [r7, #64] @ 0x40 + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006974: 6c39 ldr r1, [r7, #64] @ 0x40 + 8006976: 6c7a ldr r2, [r7, #68] @ 0x44 + 8006978: e841 2300 strex r3, r2, [r1] + 800697c: 63fb str r3, [r7, #60] @ 0x3c + return(result); + 800697e: 6bfb ldr r3, [r7, #60] @ 0x3c + 8006980: 2b00 cmp r3, #0 + 8006982: d1e4 bne.n 800694e + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + 8006984: 687b ldr r3, [r7, #4] + 8006986: 681b ldr r3, [r3, #0] + 8006988: 69db ldr r3, [r3, #28] + 800698a: f003 0310 and.w r3, r3, #16 + 800698e: 2b10 cmp r3, #16 + 8006990: d103 bne.n 800699a + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 8006992: 687b ldr r3, [r7, #4] + 8006994: 681b ldr r3, [r3, #0] + 8006996: 2210 movs r2, #16 + 8006998: 621a str r2, [r3, #32] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); + 800699a: 687b ldr r3, [r7, #4] + 800699c: f8b3 305c ldrh.w r3, [r3, #92] @ 0x5c + 80069a0: 4619 mov r1, r3 + 80069a2: 6878 ldr r0, [r7, #4] + 80069a4: f7fe fcf4 bl 8005390 +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + break; + 80069a8: e00e b.n 80069c8 + HAL_UART_RxCpltCallback(huart); + 80069aa: 6878 ldr r0, [r7, #4] + 80069ac: f7fa f90e bl 8000bcc + break; + 80069b0: e00a b.n 80069c8 + while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 80069b2: f8b7 30a6 ldrh.w r3, [r7, #166] @ 0xa6 + 80069b6: 2b00 cmp r3, #0 + 80069b8: d006 beq.n 80069c8 + 80069ba: f8d7 30b4 ldr.w r3, [r7, #180] @ 0xb4 + 80069be: f003 0320 and.w r3, r3, #32 + 80069c2: 2b00 cmp r3, #0 + 80069c4: f47f aeca bne.w 800675c + + /* When remaining number of bytes to receive is less than the RX FIFO + threshold, next incoming frames are processed as if FIFO mode was + disabled (i.e. one interrupt per received frame). + */ + rxdatacount = huart->RxXferCount; + 80069c8: 687b ldr r3, [r7, #4] + 80069ca: f8b3 305e ldrh.w r3, [r3, #94] @ 0x5e + 80069ce: f8a7 308e strh.w r3, [r7, #142] @ 0x8e + if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + 80069d2: f8b7 308e ldrh.w r3, [r7, #142] @ 0x8e + 80069d6: 2b00 cmp r3, #0 + 80069d8: d049 beq.n 8006a6e + 80069da: 687b ldr r3, [r7, #4] + 80069dc: f8b3 3068 ldrh.w r3, [r3, #104] @ 0x68 + 80069e0: f8b7 208e ldrh.w r2, [r7, #142] @ 0x8e + 80069e4: 429a cmp r2, r3 + 80069e6: d242 bcs.n 8006a6e + { + /* Disable the UART RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); + 80069e8: 687b ldr r3, [r7, #4] + 80069ea: 681b ldr r3, [r3, #0] + 80069ec: 3308 adds r3, #8 + 80069ee: 627b str r3, [r7, #36] @ 0x24 + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 80069f0: 6a7b ldr r3, [r7, #36] @ 0x24 + 80069f2: e853 3f00 ldrex r3, [r3] + 80069f6: 623b str r3, [r7, #32] + return(result); + 80069f8: 6a3b ldr r3, [r7, #32] + 80069fa: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 80069fe: f8c7 3088 str.w r3, [r7, #136] @ 0x88 + 8006a02: 687b ldr r3, [r7, #4] + 8006a04: 681b ldr r3, [r3, #0] + 8006a06: 3308 adds r3, #8 + 8006a08: f8d7 2088 ldr.w r2, [r7, #136] @ 0x88 + 8006a0c: 633a str r2, [r7, #48] @ 0x30 + 8006a0e: 62fb str r3, [r7, #44] @ 0x2c + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006a10: 6af9 ldr r1, [r7, #44] @ 0x2c + 8006a12: 6b3a ldr r2, [r7, #48] @ 0x30 + 8006a14: e841 2300 strex r3, r2, [r1] + 8006a18: 62bb str r3, [r7, #40] @ 0x28 + return(result); + 8006a1a: 6abb ldr r3, [r7, #40] @ 0x28 + 8006a1c: 2b00 cmp r3, #0 + 8006a1e: d1e3 bne.n 80069e8 + + /* Update the RxISR function pointer */ + huart->RxISR = UART_RxISR_16BIT; + 8006a20: 687b ldr r3, [r7, #4] + 8006a22: 4a16 ldr r2, [pc, #88] @ (8006a7c ) + 8006a24: 675a str r2, [r3, #116] @ 0x74 + + /* Enable the UART Data Register Not Empty interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); + 8006a26: 687b ldr r3, [r7, #4] + 8006a28: 681b ldr r3, [r3, #0] + 8006a2a: 613b str r3, [r7, #16] + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 8006a2c: 693b ldr r3, [r7, #16] + 8006a2e: e853 3f00 ldrex r3, [r3] + 8006a32: 60fb str r3, [r7, #12] + return(result); + 8006a34: 68fb ldr r3, [r7, #12] + 8006a36: f043 0320 orr.w r3, r3, #32 + 8006a3a: f8c7 3084 str.w r3, [r7, #132] @ 0x84 + 8006a3e: 687b ldr r3, [r7, #4] + 8006a40: 681b ldr r3, [r3, #0] + 8006a42: 461a mov r2, r3 + 8006a44: f8d7 3084 ldr.w r3, [r7, #132] @ 0x84 + 8006a48: 61fb str r3, [r7, #28] + 8006a4a: 61ba str r2, [r7, #24] + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 8006a4c: 69b9 ldr r1, [r7, #24] + 8006a4e: 69fa ldr r2, [r7, #28] + 8006a50: e841 2300 strex r3, r2, [r1] + 8006a54: 617b str r3, [r7, #20] + return(result); + 8006a56: 697b ldr r3, [r7, #20] + 8006a58: 2b00 cmp r3, #0 + 8006a5a: d1e4 bne.n 8006a26 + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + 8006a5c: e007 b.n 8006a6e + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 8006a5e: 687b ldr r3, [r7, #4] + 8006a60: 681b ldr r3, [r3, #0] + 8006a62: 699a ldr r2, [r3, #24] + 8006a64: 687b ldr r3, [r7, #4] + 8006a66: 681b ldr r3, [r3, #0] + 8006a68: f042 0208 orr.w r2, r2, #8 + 8006a6c: 619a str r2, [r3, #24] +} + 8006a6e: bf00 nop + 8006a70: 37b8 adds r7, #184 @ 0xb8 + 8006a72: 46bd mov sp, r7 + 8006a74: bd80 pop {r7, pc} + 8006a76: bf00 nop + 8006a78: 40008000 .word 0x40008000 + 8006a7c: 080061f9 .word 0x080061f9 + +08006a80 : + * @brief UART wakeup from Stop mode callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) +{ + 8006a80: b480 push {r7} + 8006a82: b083 sub sp, #12 + 8006a84: af00 add r7, sp, #0 + 8006a86: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_WakeupCallback can be implemented in the user file. + */ +} + 8006a88: bf00 nop + 8006a8a: 370c adds r7, #12 + 8006a8c: 46bd mov sp, r7 + 8006a8e: f85d 7b04 ldr.w r7, [sp], #4 + 8006a92: 4770 bx lr + +08006a94 : + * @brief UART RX Fifo full callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart) +{ + 8006a94: b480 push {r7} + 8006a96: b083 sub sp, #12 + 8006a98: af00 add r7, sp, #0 + 8006a9a: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_RxFifoFullCallback can be implemented in the user file. + */ +} + 8006a9c: bf00 nop + 8006a9e: 370c adds r7, #12 + 8006aa0: 46bd mov sp, r7 + 8006aa2: f85d 7b04 ldr.w r7, [sp], #4 + 8006aa6: 4770 bx lr + +08006aa8 : + * @brief UART TX Fifo empty callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart) +{ + 8006aa8: b480 push {r7} + 8006aaa: b083 sub sp, #12 + 8006aac: af00 add r7, sp, #0 + 8006aae: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_TxFifoEmptyCallback can be implemented in the user file. + */ +} + 8006ab0: bf00 nop + 8006ab2: 370c adds r7, #12 + 8006ab4: 46bd mov sp, r7 + 8006ab6: f85d 7b04 ldr.w r7, [sp], #4 + 8006aba: 4770 bx lr + +08006abc : + * @brief Disable the FIFO mode. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart) +{ + 8006abc: b480 push {r7} + 8006abe: b085 sub sp, #20 + 8006ac0: af00 add r7, sp, #0 + 8006ac2: 6078 str r0, [r7, #4] + + /* Check parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + + /* Process Locked */ + __HAL_LOCK(huart); + 8006ac4: 687b ldr r3, [r7, #4] + 8006ac6: f893 3084 ldrb.w r3, [r3, #132] @ 0x84 + 8006aca: 2b01 cmp r3, #1 + 8006acc: d101 bne.n 8006ad2 + 8006ace: 2302 movs r3, #2 + 8006ad0: e027 b.n 8006b22 + 8006ad2: 687b ldr r3, [r7, #4] + 8006ad4: 2201 movs r2, #1 + 8006ad6: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + huart->gState = HAL_UART_STATE_BUSY; + 8006ada: 687b ldr r3, [r7, #4] + 8006adc: 2224 movs r2, #36 @ 0x24 + 8006ade: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + 8006ae2: 687b ldr r3, [r7, #4] + 8006ae4: 681b ldr r3, [r3, #0] + 8006ae6: 681b ldr r3, [r3, #0] + 8006ae8: 60fb str r3, [r7, #12] + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + 8006aea: 687b ldr r3, [r7, #4] + 8006aec: 681b ldr r3, [r3, #0] + 8006aee: 681a ldr r2, [r3, #0] + 8006af0: 687b ldr r3, [r7, #4] + 8006af2: 681b ldr r3, [r3, #0] + 8006af4: f022 0201 bic.w r2, r2, #1 + 8006af8: 601a str r2, [r3, #0] + + /* Disable FIFO mode */ + CLEAR_BIT(tmpcr1, USART_CR1_FIFOEN); + 8006afa: 68fb ldr r3, [r7, #12] + 8006afc: f023 5300 bic.w r3, r3, #536870912 @ 0x20000000 + 8006b00: 60fb str r3, [r7, #12] + huart->FifoMode = UART_FIFOMODE_DISABLE; + 8006b02: 687b ldr r3, [r7, #4] + 8006b04: 2200 movs r2, #0 + 8006b06: 665a str r2, [r3, #100] @ 0x64 + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + 8006b08: 687b ldr r3, [r7, #4] + 8006b0a: 681b ldr r3, [r3, #0] + 8006b0c: 68fa ldr r2, [r7, #12] + 8006b0e: 601a str r2, [r3, #0] + + huart->gState = HAL_UART_STATE_READY; + 8006b10: 687b ldr r3, [r7, #4] + 8006b12: 2220 movs r2, #32 + 8006b14: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8006b18: 687b ldr r3, [r7, #4] + 8006b1a: 2200 movs r2, #0 + 8006b1c: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + return HAL_OK; + 8006b20: 2300 movs r3, #0 +} + 8006b22: 4618 mov r0, r3 + 8006b24: 3714 adds r7, #20 + 8006b26: 46bd mov sp, r7 + 8006b28: f85d 7b04 ldr.w r7, [sp], #4 + 8006b2c: 4770 bx lr + +08006b2e : + * @arg @ref UART_TXFIFO_THRESHOLD_7_8 + * @arg @ref UART_TXFIFO_THRESHOLD_8_8 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) +{ + 8006b2e: b580 push {r7, lr} + 8006b30: b084 sub sp, #16 + 8006b32: af00 add r7, sp, #0 + 8006b34: 6078 str r0, [r7, #4] + 8006b36: 6039 str r1, [r7, #0] + /* Check parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + assert_param(IS_UART_TXFIFO_THRESHOLD(Threshold)); + + /* Process Locked */ + __HAL_LOCK(huart); + 8006b38: 687b ldr r3, [r7, #4] + 8006b3a: f893 3084 ldrb.w r3, [r3, #132] @ 0x84 + 8006b3e: 2b01 cmp r3, #1 + 8006b40: d101 bne.n 8006b46 + 8006b42: 2302 movs r3, #2 + 8006b44: e02d b.n 8006ba2 + 8006b46: 687b ldr r3, [r7, #4] + 8006b48: 2201 movs r2, #1 + 8006b4a: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + huart->gState = HAL_UART_STATE_BUSY; + 8006b4e: 687b ldr r3, [r7, #4] + 8006b50: 2224 movs r2, #36 @ 0x24 + 8006b52: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + 8006b56: 687b ldr r3, [r7, #4] + 8006b58: 681b ldr r3, [r3, #0] + 8006b5a: 681b ldr r3, [r3, #0] + 8006b5c: 60fb str r3, [r7, #12] + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + 8006b5e: 687b ldr r3, [r7, #4] + 8006b60: 681b ldr r3, [r3, #0] + 8006b62: 681a ldr r2, [r3, #0] + 8006b64: 687b ldr r3, [r7, #4] + 8006b66: 681b ldr r3, [r3, #0] + 8006b68: f022 0201 bic.w r2, r2, #1 + 8006b6c: 601a str r2, [r3, #0] + + /* Update TX threshold configuration */ + MODIFY_REG(huart->Instance->CR3, USART_CR3_TXFTCFG, Threshold); + 8006b6e: 687b ldr r3, [r7, #4] + 8006b70: 681b ldr r3, [r3, #0] + 8006b72: 689b ldr r3, [r3, #8] + 8006b74: f023 4160 bic.w r1, r3, #3758096384 @ 0xe0000000 + 8006b78: 687b ldr r3, [r7, #4] + 8006b7a: 681b ldr r3, [r3, #0] + 8006b7c: 683a ldr r2, [r7, #0] + 8006b7e: 430a orrs r2, r1 + 8006b80: 609a str r2, [r3, #8] + + /* Determine the number of data to process during RX/TX ISR execution */ + UARTEx_SetNbDataToProcess(huart); + 8006b82: 6878 ldr r0, [r7, #4] + 8006b84: f000 f850 bl 8006c28 + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + 8006b88: 687b ldr r3, [r7, #4] + 8006b8a: 681b ldr r3, [r3, #0] + 8006b8c: 68fa ldr r2, [r7, #12] + 8006b8e: 601a str r2, [r3, #0] + + huart->gState = HAL_UART_STATE_READY; + 8006b90: 687b ldr r3, [r7, #4] + 8006b92: 2220 movs r2, #32 + 8006b94: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8006b98: 687b ldr r3, [r7, #4] + 8006b9a: 2200 movs r2, #0 + 8006b9c: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + return HAL_OK; + 8006ba0: 2300 movs r3, #0 +} + 8006ba2: 4618 mov r0, r3 + 8006ba4: 3710 adds r7, #16 + 8006ba6: 46bd mov sp, r7 + 8006ba8: bd80 pop {r7, pc} + +08006baa : + * @arg @ref UART_RXFIFO_THRESHOLD_7_8 + * @arg @ref UART_RXFIFO_THRESHOLD_8_8 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) +{ + 8006baa: b580 push {r7, lr} + 8006bac: b084 sub sp, #16 + 8006bae: af00 add r7, sp, #0 + 8006bb0: 6078 str r0, [r7, #4] + 8006bb2: 6039 str r1, [r7, #0] + /* Check the parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + assert_param(IS_UART_RXFIFO_THRESHOLD(Threshold)); + + /* Process Locked */ + __HAL_LOCK(huart); + 8006bb4: 687b ldr r3, [r7, #4] + 8006bb6: f893 3084 ldrb.w r3, [r3, #132] @ 0x84 + 8006bba: 2b01 cmp r3, #1 + 8006bbc: d101 bne.n 8006bc2 + 8006bbe: 2302 movs r3, #2 + 8006bc0: e02d b.n 8006c1e + 8006bc2: 687b ldr r3, [r7, #4] + 8006bc4: 2201 movs r2, #1 + 8006bc6: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + huart->gState = HAL_UART_STATE_BUSY; + 8006bca: 687b ldr r3, [r7, #4] + 8006bcc: 2224 movs r2, #36 @ 0x24 + 8006bce: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + 8006bd2: 687b ldr r3, [r7, #4] + 8006bd4: 681b ldr r3, [r3, #0] + 8006bd6: 681b ldr r3, [r3, #0] + 8006bd8: 60fb str r3, [r7, #12] + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + 8006bda: 687b ldr r3, [r7, #4] + 8006bdc: 681b ldr r3, [r3, #0] + 8006bde: 681a ldr r2, [r3, #0] + 8006be0: 687b ldr r3, [r7, #4] + 8006be2: 681b ldr r3, [r3, #0] + 8006be4: f022 0201 bic.w r2, r2, #1 + 8006be8: 601a str r2, [r3, #0] + + /* Update RX threshold configuration */ + MODIFY_REG(huart->Instance->CR3, USART_CR3_RXFTCFG, Threshold); + 8006bea: 687b ldr r3, [r7, #4] + 8006bec: 681b ldr r3, [r3, #0] + 8006bee: 689b ldr r3, [r3, #8] + 8006bf0: f023 6160 bic.w r1, r3, #234881024 @ 0xe000000 + 8006bf4: 687b ldr r3, [r7, #4] + 8006bf6: 681b ldr r3, [r3, #0] + 8006bf8: 683a ldr r2, [r7, #0] + 8006bfa: 430a orrs r2, r1 + 8006bfc: 609a str r2, [r3, #8] + + /* Determine the number of data to process during RX/TX ISR execution */ + UARTEx_SetNbDataToProcess(huart); + 8006bfe: 6878 ldr r0, [r7, #4] + 8006c00: f000 f812 bl 8006c28 + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + 8006c04: 687b ldr r3, [r7, #4] + 8006c06: 681b ldr r3, [r3, #0] + 8006c08: 68fa ldr r2, [r7, #12] + 8006c0a: 601a str r2, [r3, #0] + + huart->gState = HAL_UART_STATE_READY; + 8006c0c: 687b ldr r3, [r7, #4] + 8006c0e: 2220 movs r2, #32 + 8006c10: f8c3 2088 str.w r2, [r3, #136] @ 0x88 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8006c14: 687b ldr r3, [r7, #4] + 8006c16: 2200 movs r2, #0 + 8006c18: f883 2084 strb.w r2, [r3, #132] @ 0x84 + + return HAL_OK; + 8006c1c: 2300 movs r3, #0 +} + 8006c1e: 4618 mov r0, r3 + 8006c20: 3710 adds r7, #16 + 8006c22: 46bd mov sp, r7 + 8006c24: bd80 pop {r7, pc} + ... + +08006c28 : + * the UART configuration registers. + * @param huart UART handle. + * @retval None + */ +static void UARTEx_SetNbDataToProcess(UART_HandleTypeDef *huart) +{ + 8006c28: b480 push {r7} + 8006c2a: b085 sub sp, #20 + 8006c2c: af00 add r7, sp, #0 + 8006c2e: 6078 str r0, [r7, #4] + uint8_t rx_fifo_threshold; + uint8_t tx_fifo_threshold; + static const uint8_t numerator[] = {1U, 1U, 1U, 3U, 7U, 1U, 0U, 0U}; + static const uint8_t denominator[] = {8U, 4U, 2U, 4U, 8U, 1U, 1U, 1U}; + + if (huart->FifoMode == UART_FIFOMODE_DISABLE) + 8006c30: 687b ldr r3, [r7, #4] + 8006c32: 6e5b ldr r3, [r3, #100] @ 0x64 + 8006c34: 2b00 cmp r3, #0 + 8006c36: d108 bne.n 8006c4a + { + huart->NbTxDataToProcess = 1U; + 8006c38: 687b ldr r3, [r7, #4] + 8006c3a: 2201 movs r2, #1 + 8006c3c: f8a3 206a strh.w r2, [r3, #106] @ 0x6a + huart->NbRxDataToProcess = 1U; + 8006c40: 687b ldr r3, [r7, #4] + 8006c42: 2201 movs r2, #1 + 8006c44: f8a3 2068 strh.w r2, [r3, #104] @ 0x68 + huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + (uint16_t)denominator[tx_fifo_threshold]; + huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + (uint16_t)denominator[rx_fifo_threshold]; + } +} + 8006c48: e031 b.n 8006cae + rx_fifo_depth = RX_FIFO_DEPTH; + 8006c4a: 2308 movs r3, #8 + 8006c4c: 73fb strb r3, [r7, #15] + tx_fifo_depth = TX_FIFO_DEPTH; + 8006c4e: 2308 movs r3, #8 + 8006c50: 73bb strb r3, [r7, #14] + rx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos); + 8006c52: 687b ldr r3, [r7, #4] + 8006c54: 681b ldr r3, [r3, #0] + 8006c56: 689b ldr r3, [r3, #8] + 8006c58: 0e5b lsrs r3, r3, #25 + 8006c5a: b2db uxtb r3, r3 + 8006c5c: f003 0307 and.w r3, r3, #7 + 8006c60: 737b strb r3, [r7, #13] + tx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos); + 8006c62: 687b ldr r3, [r7, #4] + 8006c64: 681b ldr r3, [r3, #0] + 8006c66: 689b ldr r3, [r3, #8] + 8006c68: 0f5b lsrs r3, r3, #29 + 8006c6a: b2db uxtb r3, r3 + 8006c6c: f003 0307 and.w r3, r3, #7 + 8006c70: 733b strb r3, [r7, #12] + huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + 8006c72: 7bbb ldrb r3, [r7, #14] + 8006c74: 7b3a ldrb r2, [r7, #12] + 8006c76: 4911 ldr r1, [pc, #68] @ (8006cbc ) + 8006c78: 5c8a ldrb r2, [r1, r2] + 8006c7a: fb02 f303 mul.w r3, r2, r3 + (uint16_t)denominator[tx_fifo_threshold]; + 8006c7e: 7b3a ldrb r2, [r7, #12] + 8006c80: 490f ldr r1, [pc, #60] @ (8006cc0 ) + 8006c82: 5c8a ldrb r2, [r1, r2] + huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + 8006c84: fb93 f3f2 sdiv r3, r3, r2 + 8006c88: b29a uxth r2, r3 + 8006c8a: 687b ldr r3, [r7, #4] + 8006c8c: f8a3 206a strh.w r2, [r3, #106] @ 0x6a + huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + 8006c90: 7bfb ldrb r3, [r7, #15] + 8006c92: 7b7a ldrb r2, [r7, #13] + 8006c94: 4909 ldr r1, [pc, #36] @ (8006cbc ) + 8006c96: 5c8a ldrb r2, [r1, r2] + 8006c98: fb02 f303 mul.w r3, r2, r3 + (uint16_t)denominator[rx_fifo_threshold]; + 8006c9c: 7b7a ldrb r2, [r7, #13] + 8006c9e: 4908 ldr r1, [pc, #32] @ (8006cc0 ) + 8006ca0: 5c8a ldrb r2, [r1, r2] + huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + 8006ca2: fb93 f3f2 sdiv r3, r3, r2 + 8006ca6: b29a uxth r2, r3 + 8006ca8: 687b ldr r3, [r7, #4] + 8006caa: f8a3 2068 strh.w r2, [r3, #104] @ 0x68 +} + 8006cae: bf00 nop + 8006cb0: 3714 adds r7, #20 + 8006cb2: 46bd mov sp, r7 + 8006cb4: f85d 7b04 ldr.w r7, [sp], #4 + 8006cb8: 4770 bx lr + 8006cba: bf00 nop + 8006cbc: 08006d64 .word 0x08006d64 + 8006cc0: 08006d6c .word 0x08006d6c + +08006cc4 : + 8006cc4: 4402 add r2, r0 + 8006cc6: 4603 mov r3, r0 + 8006cc8: 4293 cmp r3, r2 + 8006cca: d100 bne.n 8006cce + 8006ccc: 4770 bx lr + 8006cce: f803 1b01 strb.w r1, [r3], #1 + 8006cd2: e7f9 b.n 8006cc8 + +08006cd4 <__libc_init_array>: + 8006cd4: b570 push {r4, r5, r6, lr} + 8006cd6: 4d0d ldr r5, [pc, #52] @ (8006d0c <__libc_init_array+0x38>) + 8006cd8: 4c0d ldr r4, [pc, #52] @ (8006d10 <__libc_init_array+0x3c>) + 8006cda: 1b64 subs r4, r4, r5 + 8006cdc: 10a4 asrs r4, r4, #2 + 8006cde: 2600 movs r6, #0 + 8006ce0: 42a6 cmp r6, r4 + 8006ce2: d109 bne.n 8006cf8 <__libc_init_array+0x24> + 8006ce4: 4d0b ldr r5, [pc, #44] @ (8006d14 <__libc_init_array+0x40>) + 8006ce6: 4c0c ldr r4, [pc, #48] @ (8006d18 <__libc_init_array+0x44>) + 8006ce8: f000 f818 bl 8006d1c <_init> + 8006cec: 1b64 subs r4, r4, r5 + 8006cee: 10a4 asrs r4, r4, #2 + 8006cf0: 2600 movs r6, #0 + 8006cf2: 42a6 cmp r6, r4 + 8006cf4: d105 bne.n 8006d02 <__libc_init_array+0x2e> + 8006cf6: bd70 pop {r4, r5, r6, pc} + 8006cf8: f855 3b04 ldr.w r3, [r5], #4 + 8006cfc: 4798 blx r3 + 8006cfe: 3601 adds r6, #1 + 8006d00: e7ee b.n 8006ce0 <__libc_init_array+0xc> + 8006d02: f855 3b04 ldr.w r3, [r5], #4 + 8006d06: 4798 blx r3 + 8006d08: 3601 adds r6, #1 + 8006d0a: e7f2 b.n 8006cf2 <__libc_init_array+0x1e> + 8006d0c: 08006d7c .word 0x08006d7c + 8006d10: 08006d7c .word 0x08006d7c + 8006d14: 08006d7c .word 0x08006d7c + 8006d18: 08006d80 .word 0x08006d80 + +08006d1c <_init>: + 8006d1c: b5f8 push {r3, r4, r5, r6, r7, lr} + 8006d1e: bf00 nop + 8006d20: bcf8 pop {r3, r4, r5, r6, r7} + 8006d22: bc08 pop {r3} + 8006d24: 469e mov lr, r3 + 8006d26: 4770 bx lr + +08006d28 <_fini>: + 8006d28: b5f8 push {r3, r4, r5, r6, r7, lr} + 8006d2a: bf00 nop + 8006d2c: bcf8 pop {r3, r4, r5, r6, r7} + 8006d2e: bc08 pop {r3} + 8006d30: 469e mov lr, r3 + 8006d32: 4770 bx lr diff --git a/Debug/POWER_SWITCH.map b/Debug/POWER_SWITCH.map new file mode 100644 index 0000000..1e52519 --- /dev/null +++ b/Debug/POWER_SWITCH.map @@ -0,0 +1,4667 @@ +Archive member included to satisfy reference by file (symbol) + +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (exit) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) (__stdio_exit_handler) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (_fwalk_sglue) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (__sread) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (memset) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) (_close_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) (errno) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) (_impure_ptr) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) (_lseek_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) (_read_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) (_write_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + ./Core/Src/syscalls.o (__errno) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (__libc_init_array) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (__retarget_lock_init_recursive) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) (_free_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (_malloc_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) (__malloc_lock) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) (_fflush_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) (_sbrk_r) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o (__aeabi_uldivmod) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) (__udivmoddi4) +C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) + C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) (__aeabi_ldiv0) + +Discarded input sections + + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + .data 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .rodata 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .text 0x00000000 0x7c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .ARM.extab 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .ARM.exidx 0x00000000 0x10 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .ARM.attributes + 0x00000000 0x20 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .text 0x00000000 0x0 ./Core/Src/main.o + .data 0x00000000 0x0 ./Core/Src/main.o + .bss 0x00000000 0x0 ./Core/Src/main.o + .text.get_calibrated_value_mv + 0x00000000 0x30 ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_hal_msp.o + .text 0x00000000 0x0 ./Core/Src/stm32g4xx_hal_msp.o + .data 0x00000000 0x0 ./Core/Src/stm32g4xx_hal_msp.o + .bss 0x00000000 0x0 ./Core/Src/stm32g4xx_hal_msp.o + .text.HAL_ADC_MspDeInit + 0x00000000 0x78 ./Core/Src/stm32g4xx_hal_msp.o + .text.HAL_TIM_Base_MspDeInit + 0x00000000 0x30 ./Core/Src/stm32g4xx_hal_msp.o + .text.HAL_UART_MspDeInit + 0x00000000 0x40 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0xad8 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x161 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x2e ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x28 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x8e ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x51 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x103 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x6a ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x1df ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x1c ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0xfb ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x1011 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x11f ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x1138f ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x6d ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x3558 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x190 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x5c ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x141d ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x535 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x1b6 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x288 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x41d ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x18b ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x43 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x23d ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x1112 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x72e ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x391 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x211 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x401 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x107 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x122 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x3d1 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0xbda ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x47e ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x693 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0xa6 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x306 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x00000000 0x70 ./Core/Src/stm32g4xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32g4xx_it.o + .text 0x00000000 0x0 ./Core/Src/stm32g4xx_it.o + .data 0x00000000 0x0 ./Core/Src/stm32g4xx_it.o + .bss 0x00000000 0x0 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0xad8 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x161 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x2e ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x28 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x8e ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x51 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x103 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x6a ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x1df ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x1c ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0xfb ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x1011 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x11f ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x1138f ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x6d ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x3558 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x190 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x5c ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x141d ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x535 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x1b6 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x288 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x41d ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x18b ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x43 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x23d ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x1112 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x72e ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x391 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x211 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x401 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x107 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x122 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x3d1 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0xbda ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x47e ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x693 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0xa6 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x306 ./Core/Src/stm32g4xx_it.o + .debug_macro 0x00000000 0x70 ./Core/Src/stm32g4xx_it.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .text 0x00000000 0x0 ./Core/Src/syscalls.o + .data 0x00000000 0x0 ./Core/Src/syscalls.o + .bss 0x00000000 0x0 ./Core/Src/syscalls.o + .bss.__env 0x00000000 0x4 ./Core/Src/syscalls.o + .data.environ 0x00000000 0x4 ./Core/Src/syscalls.o + .text.initialise_monitor_handles + 0x00000000 0xe ./Core/Src/syscalls.o + .text._getpid 0x00000000 0x10 ./Core/Src/syscalls.o + .text._kill 0x00000000 0x20 ./Core/Src/syscalls.o + .text._exit 0x00000000 0x16 ./Core/Src/syscalls.o + .text._read 0x00000000 0x3a ./Core/Src/syscalls.o + .text._write 0x00000000 0x38 ./Core/Src/syscalls.o + .text._close 0x00000000 0x18 ./Core/Src/syscalls.o + .text._fstat 0x00000000 0x20 ./Core/Src/syscalls.o + .text._isatty 0x00000000 0x16 ./Core/Src/syscalls.o + .text._lseek 0x00000000 0x1a ./Core/Src/syscalls.o + .text._open 0x00000000 0x1c ./Core/Src/syscalls.o + .text._wait 0x00000000 0x1e ./Core/Src/syscalls.o + .text._unlink 0x00000000 0x1e ./Core/Src/syscalls.o + .text._times 0x00000000 0x18 ./Core/Src/syscalls.o + .text._stat 0x00000000 0x20 ./Core/Src/syscalls.o + .text._link 0x00000000 0x20 ./Core/Src/syscalls.o + .text._fork 0x00000000 0x16 ./Core/Src/syscalls.o + .text._execve 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_info 0x00000000 0x6a3 ./Core/Src/syscalls.o + .debug_abbrev 0x00000000 0x1b6 ./Core/Src/syscalls.o + .debug_aranges + 0x00000000 0xa8 ./Core/Src/syscalls.o + .debug_rnglists + 0x00000000 0x79 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x274 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xad8 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x5b ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x2a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x94 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x43 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x57 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x190 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x370 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x4a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x58 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x8e ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x185 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x3c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x6a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xcf ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x3d ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x35 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x12c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x29 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x242 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x146 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x103 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1df ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x18a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xce ./Core/Src/syscalls.o + .debug_line 0x00000000 0x8b6 ./Core/Src/syscalls.o + .debug_str 0x00000000 0x99e9 ./Core/Src/syscalls.o + .comment 0x00000000 0x44 ./Core/Src/syscalls.o + .debug_frame 0x00000000 0x2ac ./Core/Src/syscalls.o + .ARM.attributes + 0x00000000 0x34 ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .text 0x00000000 0x0 ./Core/Src/sysmem.o + .data 0x00000000 0x0 ./Core/Src/sysmem.o + .bss 0x00000000 0x0 ./Core/Src/sysmem.o + .bss.__sbrk_heap_end + 0x00000000 0x4 ./Core/Src/sysmem.o + .text._sbrk 0x00000000 0x6c ./Core/Src/sysmem.o + .debug_info 0x00000000 0x168 ./Core/Src/sysmem.o + .debug_abbrev 0x00000000 0xbc ./Core/Src/sysmem.o + .debug_aranges + 0x00000000 0x20 ./Core/Src/sysmem.o + .debug_rnglists + 0x00000000 0x13 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x112 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0xad8 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x22 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x5b ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x2a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x94 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x43 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x190 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x57 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x370 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x16 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x4a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x58 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x8e ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x1c ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x185 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x23c ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x103 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x6a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x1df ./Core/Src/sysmem.o + .debug_line 0x00000000 0x592 ./Core/Src/sysmem.o + .debug_str 0x00000000 0x7787 ./Core/Src/sysmem.o + .comment 0x00000000 0x44 ./Core/Src/sysmem.o + .debug_frame 0x00000000 0x34 ./Core/Src/sysmem.o + .ARM.attributes + 0x00000000 0x34 ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32g4xx.o + .text 0x00000000 0x0 ./Core/Src/system_stm32g4xx.o + .data 0x00000000 0x0 ./Core/Src/system_stm32g4xx.o + .bss 0x00000000 0x0 ./Core/Src/system_stm32g4xx.o + .text.SystemCoreClockUpdate + 0x00000000 0xd4 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0xad8 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x2e ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x28 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x8e ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x51 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x103 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x6a ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x1df ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x1c ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0xfb ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x1011 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x11f ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x1138f ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x6d ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x161 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x3558 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x190 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x5c ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x141d ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x535 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x1b6 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x288 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x41d ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x18b ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x43 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x23d ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x1112 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x72e ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x391 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x211 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x401 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x107 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x122 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x3d1 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0xbda ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x47e ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x693 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0xa6 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x00000000 0x306 ./Core/Src/system_stm32g4xx.o + .text 0x00000000 0x14 ./Core/Startup/startup_stm32g431kbtx.o + .data 0x00000000 0x0 ./Core/Startup/startup_stm32g431kbtx.o + .bss 0x00000000 0x0 ./Core/Startup/startup_stm32g431kbtx.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DeInit + 0x00000000 0x58 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_MspInit + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_MspDeInit + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetTickPrio + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SetTickFreq + 0x00000000 0x50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetTickFreq + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_Delay + 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SuspendTick + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_ResumeTick + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetHalVersion + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetREVID + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetDEVID + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetUIDw0 + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetUIDw1 + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_GetUIDw2 + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DBGMCU_EnableDBGSleepMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DBGMCU_DisableDBGSleepMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DBGMCU_EnableDBGStopMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DBGMCU_DisableDBGStopMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DBGMCU_EnableDBGStandbyMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_DBGMCU_DisableDBGStandbyMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_CCMSRAMErase + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_EnableMemorySwappingBank + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_DisableMemorySwappingBank + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_VREFBUF_VoltageScalingConfig + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_VREFBUF_HighImpedanceConfig + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_VREFBUF_TrimmingConfig + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_EnableVREFBUF + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_DisableVREFBUF + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_EnableIOSwitchBooster + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_DisableIOSwitchBooster + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_EnableIOSwitchVDD + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_DisableIOSwitchVDD + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .text.HAL_SYSCFG_CCMSRAM_WriteProtectionEnable + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_INJ_IsTriggerSourceSWStart + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetAnalogWDMonitChannels + 0x00000000 0x5a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_ConfigAnalogWDThresholds + 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_ClearFlag_AWD1 + 0x00000000 0x1a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_ClearFlag_AWD2 + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_ClearFlag_AWD3 + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_EnableIT_AWD1 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_EnableIT_AWD2 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_EnableIT_AWD3 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_DisableIT_AWD1 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_DisableIT_AWD2 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_DisableIT_AWD3 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_DeInit + 0x00000000 0x25c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_PollForEvent + 0x00000000 0x15e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_Start_IT + 0x00000000 0x260 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_Stop_IT + 0x00000000 0x76 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_Start_DMA + 0x00000000 0x168 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_Stop_DMA + 0x00000000 0xc2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_StartSampling + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_StopSampling + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_IRQHandler + 0x00000000 0x434 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_ConvCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_ConvHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_LevelOutOfWindowCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_ErrorCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_AnalogWDGConfig + 0x00000000 0x418 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_GetState + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_GetError + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.ADC_DMAConvCplt + 0x00000000 0xd8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.ADC_DMAHalfConvCplt + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.ADC_DMAError + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetCommonPathInternalCh + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_GetCommonPathInternalCh + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetCalibrationFactor + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_GetCalibrationFactor + 0x00000000 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetOffset + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_GetOffsetChannel + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetOffsetState + 0x00000000 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetOffsetSign + 0x00000000 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetOffsetSaturation + 0x00000000 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetSamplingTimeCommonConfig + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_REG_IsTriggerSourceSWStart + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_INJ_IsTriggerSourceSWStart + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_INJ_GetTrigAuto + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_INJ_SetQueueMode + 0x00000000 0x2a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetChannelSamplingTime + 0x00000000 0x56 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_SetChannelSingleDiff + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_GetMultimode + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_EnableDeepPowerDown + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_DisableInternalRegulator + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_StartCalibration + 0x00000000 0x32 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_IsCalibrationOnGoing + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_REG_StartConversion + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_INJ_StartConversion + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_INJ_IsConversionOngoing + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_Calibration_Start + 0x00000000 0xc4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_Calibration_GetValue + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_Calibration_SetValue + 0x00000000 0x98 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedStart + 0x00000000 0x160 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedStop + 0x00000000 0x84 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedPollForConversion + 0x00000000 0x188 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedStart_IT + 0x00000000 0x1cc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedStop_IT + 0x00000000 0x94 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_MultiModeStart_DMA + 0x00000000 0x144 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_MultiModeStop_DMA + 0x00000000 0x198 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_MultiModeGetValue + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedGetValue + 0x00000000 0x70 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedConvCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedQueueOverflowCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_LevelOutOfWindow2Callback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_LevelOutOfWindow3Callback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_EndOfSamplingCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_RegularStop + 0x00000000 0x90 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_RegularStop_IT + 0x00000000 0xa0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_RegularStop_DMA + 0x00000000 0xde ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_RegularMultiModeStop_DMA + 0x00000000 0x1a8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_InjectedConfigChannel + 0x00000000 0x9c0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_EnableInjectedQueue + 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_DisableInjectedQueue + 0x00000000 0x4e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_DisableVoltageRegulator + 0x00000000 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.HAL_ADCEx_EnterADCDeepPowerDownMode + 0x00000000 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_DisableIRQ + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_GetPendingIRQ + 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_SetPendingIRQ + 0x00000000 0x3c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_ClearPendingIRQ + 0x00000000 0x3c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_GetActive + 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_GetPriority + 0x00000000 0x50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.NVIC_DecodePriority + 0x00000000 0x6e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_SystemReset + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_DisableIRQ + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_SystemReset + 0x00000000 0x8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_GetPriorityGrouping + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_GetPriority + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_SetPendingIRQ + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_GetPendingIRQ + 0x00000000 0x1e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_ClearPendingIRQ + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_GetActive + 0x00000000 0x1e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_SYSTICK_CLKSourceConfig + 0x00000000 0x38 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_SYSTICK_IRQHandler + 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_SYSTICK_Callback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_MPU_Enable + 0x00000000 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_MPU_Disable + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_MPU_EnableRegion + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_MPU_DisableRegion + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_MPU_ConfigRegion + 0x00000000 0x80 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_Init + 0x00000000 0x150 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_DeInit + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_Start + 0x00000000 0x86 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_Start_IT + 0x00000000 0xf6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_PollForTransfer + 0x00000000 0x1b2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_IRQHandler + 0x00000000 0x15e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_RegisterCallback + 0x00000000 0x90 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_UnRegisterCallback + 0x00000000 0xb0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.HAL_DMA_GetError + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.DMA_SetConfig + 0x00000000 0x7c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.DMA_CalcDMAMUXChannelBaseAndMask + 0x00000000 0x7c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .text.DMA_CalcDMAMUXRequestGenBaseAndMask + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .text.HAL_DMAEx_ConfigMuxSync + 0x00000000 0x7c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .text.HAL_DMAEx_ConfigMuxRequestGenerator + 0x00000000 0x94 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .text.HAL_DMAEx_EnableMuxRequestGenerator + 0x00000000 0x3e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .text.HAL_DMAEx_DisableMuxRequestGenerator + 0x00000000 0x3e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .text.HAL_DMAEx_MUX_IRQHandler + 0x00000000 0xa4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_info 0x00000000 0x62d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_abbrev 0x00000000 0x1c2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_aranges + 0x00000000 0x40 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_rnglists + 0x00000000 0x2d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1f1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_line 0x00000000 0x963 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_str 0x00000000 0xd1bf3 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .debug_frame 0x00000000 0xd4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_SetConfigLine + 0x00000000 0x1a0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_GetConfigLine + 0x00000000 0x144 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_ClearConfigLine + 0x00000000 0x110 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_RegisterCallback + 0x00000000 0x3a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_GetHandle + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_IRQHandler + 0x00000000 0x60 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_GetPending + 0x00000000 0x58 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_ClearPending + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .text.HAL_EXTI_GenerateSWI + 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_info 0x00000000 0x63d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_abbrev 0x00000000 0x1a8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_aranges + 0x00000000 0x60 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_rnglists + 0x00000000 0x46 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1fd ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_line 0x00000000 0xb29 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_str 0x00000000 0xd19d6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .debug_frame 0x00000000 0x174 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .data.pFlash 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_Program + 0x00000000 0xd8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_Program_IT + 0x00000000 0xc8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_IRQHandler + 0x00000000 0x198 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_EndOfOperationCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_OperationErrorCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_Unlock + 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_Lock + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_OB_Unlock + 0x00000000 0x4c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_OB_Lock + 0x00000000 0x38 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_OB_Launch + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.HAL_FLASH_GetError + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.FLASH_WaitForLastOperation + 0x00000000 0xa4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.FLASH_Program_DoubleWord + 0x00000000 0x4c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .text.FLASH_Program_Fast + 0x00000000 0x6c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_info 0x00000000 0x6c2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_abbrev 0x00000000 0x325 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_aranges + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_rnglists + 0x00000000 0x65 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1f7 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_line 0x00000000 0xb65 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_str 0x00000000 0xd1bdc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .debug_frame 0x00000000 0x21c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase + 0x00000000 0x130 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase_IT + 0x00000000 0xe4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBProgram + 0x00000000 0x120 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetConfig + 0x00000000 0xbe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_EnableSecMemProtection + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_EnableDebugger + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.HAL_FLASHEx_DisableDebugger + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_MassErase + 0x00000000 0x3c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_PageErase + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_FlushCaches + 0x00000000 0x94 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfig + 0x00000000 0x6c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_RDPConfig + 0x00000000 0x50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_UserConfig + 0x00000000 0x220 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_PCROPConfig + 0x00000000 0xa4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_SecMemConfig + 0x00000000 0x58 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_BootLockConfig + 0x00000000 0x50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_GetSecMem + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_GetBootLock + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_GetWRP + 0x00000000 0x60 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_GetRDP + 0x00000000 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_GetUser + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .text.FLASH_OB_GetPCROP + 0x00000000 0x6c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_info 0x00000000 0x8a7 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_abbrev 0x00000000 0x290 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_aranges + 0x00000000 0xc8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_rnglists + 0x00000000 0x98 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1f1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_line 0x00000000 0xdf5 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_str 0x00000000 0xd1cda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .debug_frame 0x00000000 0x344 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .RamFunc 0x00000000 0x68 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_info 0x00000000 0x1ca ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_abbrev 0x00000000 0xd1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_aranges + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_rnglists + 0x00000000 0x19 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1f1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_line 0x00000000 0x7d5 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_str 0x00000000 0xd181c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .debug_frame 0x00000000 0x50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text.HAL_GPIO_DeInit + 0x00000000 0x1c4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text.HAL_GPIO_ReadPin + 0x00000000 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text.HAL_GPIO_TogglePin + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text.HAL_GPIO_LockPin + 0x00000000 0x50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text.HAL_GPIO_EXTI_IRQHandler + 0x00000000 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .text.HAL_GPIO_EXTI_Callback + 0x00000000 0x16 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_DeInit + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnableBkUpAccess + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_DisableBkUpAccess + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_ConfigPVD + 0x00000000 0xc0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnablePVD + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_DisablePVD + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnableWakeUpPin + 0x00000000 0x40 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_DisableWakeUpPin + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnterSLEEPMode + 0x00000000 0x64 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnterSTOPMode + 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnterSTANDBYMode + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnableSleepOnExit + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_DisableSleepOnExit + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_EnableSEVOnPend + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_DisableSEVOnPend + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .text.HAL_PWR_PVDCallback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_info 0x00000000 0x935 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_abbrev 0x00000000 0x1c8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_aranges + 0x00000000 0x98 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_rnglists + 0x00000000 0x6e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x209 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_line 0x00000000 0x97e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_str 0x00000000 0xd1cac ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .debug_frame 0x00000000 0x230 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_GetVoltageRange + 0x00000000 0x40 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableBatteryCharging + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableBatteryCharging + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableInternalWakeUpLine + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableInternalWakeUpLine + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableGPIOPullUp + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableGPIOPullUp + 0x00000000 0xd0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableGPIOPullDown + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableGPIOPullDown + 0x00000000 0xc8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnablePullUpPullDownConfig + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisablePullUpPullDownConfig + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableSRAM2ContentRetention + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableSRAM2ContentRetention + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnablePVM1 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisablePVM1 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnablePVM2 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisablePVM2 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnablePVM3 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisablePVM3 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnablePVM4 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisablePVM4 + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_ConfigPVM + 0x00000000 0x2a4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableLowPowerRunMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableLowPowerRunMode + 0x00000000 0x70 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnterSTOP0Mode + 0x00000000 0x54 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnterSTOP1Mode + 0x00000000 0x58 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnterSHUTDOWNMode + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_PVD_PVM_IRQHandler + 0x00000000 0x7c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_PVM1Callback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_PVM2Callback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_PVM3Callback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_PVM4Callback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableUCPDStandbyMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableUCPDStandbyMode + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableUCPDDeadBattery + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_DeInit + 0x00000000 0x104 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_MCOConfig + 0x00000000 0x8c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_GetOscConfig + 0x00000000 0x164 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_GetClockConfig + 0x00000000 0x64 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_EnableCSS + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_EnableLSECSS + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_DisableLSECSS + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_NMI_IRQHandler + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCC_CSSCallback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKConfig + 0x00000000 0x104 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKFreq + 0x00000000 0x8a4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSECSS + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_DisableLSECSS + 0x00000000 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSECSS_IT + 0x00000000 0x4c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_LSECSS_IRQHandler + 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_LSECSS_Callback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSCO + 0x00000000 0xd4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_DisableLSCO + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRSConfig + 0x00000000 0x84 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRSSoftwareSynchronizationGenerate + 0x00000000 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRSGetSynchronizationInfo + 0x00000000 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRSWaitSynchronization + 0x00000000 0xe4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRS_IRQHandler + 0x00000000 0xdc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRS_SyncOkCallback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRS_SyncWarnCallback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRS_ExpectedSyncCallback + 0x00000000 0xe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .text.HAL_RCCEx_CRS_ErrorCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_DeInit + 0x00000000 0xb8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_Start + 0x00000000 0xc4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_Stop + 0x00000000 0x4e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_Start_IT + 0x00000000 0xd4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_Stop_IT + 0x00000000 0x5e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_Start_DMA + 0x00000000 0x138 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_Stop_DMA + 0x00000000 0x64 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Init + 0x00000000 0xae ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_DeInit + 0x00000000 0xb8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Start + 0x00000000 0x200 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Stop + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Start_IT + 0x00000000 0x298 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Stop_IT + 0x00000000 0x1c8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Start_DMA + 0x00000000 0x430 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_Stop_DMA + 0x00000000 0x1f0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Init + 0x00000000 0xae ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_DeInit + 0x00000000 0xb8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Start + 0x00000000 0x200 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Stop + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Start_IT + 0x00000000 0x298 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Stop_IT + 0x00000000 0x1c8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Start_DMA + 0x00000000 0x430 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_Stop_DMA + 0x00000000 0x1f0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Init + 0x00000000 0xae ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_DeInit + 0x00000000 0xb8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Start + 0x00000000 0x1ec ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Stop + 0x00000000 0xe2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Start_IT + 0x00000000 0x284 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Stop_IT + 0x00000000 0x17c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Start_DMA + 0x00000000 0x388 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_Stop_DMA + 0x00000000 0x1a4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_Init + 0x00000000 0xa0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_DeInit + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_Start + 0x00000000 0xec ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_Stop + 0x00000000 0x100 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_Start_IT + 0x00000000 0x10c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_Stop_IT + 0x00000000 0x120 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Init + 0x00000000 0x14c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_DeInit + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Start + 0x00000000 0x11c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Stop + 0x00000000 0x14e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Start_IT + 0x00000000 0x15c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Stop_IT + 0x00000000 0x18a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Start_DMA + 0x00000000 0x2d8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_Stop_DMA + 0x00000000 0x1b2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_ConfigChannel + 0x00000000 0xf4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_ConfigChannel + 0x00000000 0x138 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_ConfigChannel + 0x00000000 0x228 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_ConfigChannel + 0x00000000 0x1b4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurst_WriteStart + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurst_MultiWriteStart + 0x00000000 0x2b8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurst_WriteStop + 0x00000000 0xf4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurst_ReadStart + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurst_MultiReadStart + 0x00000000 0x2b8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurst_ReadStop + 0x00000000 0xf4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_GenerateEvent + 0x00000000 0x4e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_ConfigOCrefClear + 0x00000000 0x3a0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_ConfigTI1Input + 0x00000000 0x38 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_SlaveConfigSynchro + 0x00000000 0x84 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_SlaveConfigSynchro_IT + 0x00000000 0x84 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_ReadCapturedValue + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PeriodElapsedHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_CaptureHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_PulseFinishedHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_TriggerHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_ErrorCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Base_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OC_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_PWM_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_IC_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_OnePulse_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_Encoder_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_GetActiveChannel + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_GetChannelState + 0x00000000 0x72 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.HAL_TIM_DMABurstState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMAError + 0x00000000 0x92 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMADelayPulseCplt + 0x00000000 0xa8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMADelayPulseHalfCplt + 0x00000000 0x68 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMACaptureCplt + 0x00000000 0xc8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMACaptureHalfCplt + 0x00000000 0x68 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMAPeriodElapsedCplt + 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMAPeriodElapsedHalfCplt + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMATriggerCplt + 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_DMATriggerHalfCplt + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_OC1_SetConfig + 0x00000000 0x120 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_OC2_SetConfig + 0x00000000 0x114 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_OC3_SetConfig + 0x00000000 0x110 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_OC4_SetConfig + 0x00000000 0x114 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_OC5_SetConfig + 0x00000000 0xc8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_OC6_SetConfig + 0x00000000 0xcc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_SlaveTimer_SetConfig + 0x00000000 0x188 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_TI1_SetConfig + 0x00000000 0xd0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_TI2_SetConfig + 0x00000000 0x7a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_TI3_SetConfig + 0x00000000 0x78 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_TI4_SetConfig + 0x00000000 0x7a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_CCxChannelCmd + 0x00000000 0x4a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Init + 0x00000000 0x15e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_DeInit + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Start + 0x00000000 0x110 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Stop + 0x00000000 0x70 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Start_IT + 0x00000000 0x120 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Stop_IT + 0x00000000 0x80 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Start_DMA + 0x00000000 0x160 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Stop_DMA + 0x00000000 0x7a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Start + 0x00000000 0x168 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Stop + 0x00000000 0xba ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Start_IT + 0x00000000 0x210 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Stop_IT + 0x00000000 0x178 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Start_DMA + 0x00000000 0x364 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Stop_DMA + 0x00000000 0x17c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Start + 0x00000000 0x168 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Stop + 0x00000000 0xba ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Start_IT + 0x00000000 0x210 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Stop_IT + 0x00000000 0x178 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Start_DMA + 0x00000000 0x364 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Stop_DMA + 0x00000000 0x17c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Start + 0x00000000 0xaa ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Stop + 0x00000000 0xbe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Start_IT + 0x00000000 0xca ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Stop_IT + 0x00000000 0xde ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigCommutEvent + 0x00000000 0xfc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigCommutEvent_IT + 0x00000000 0xfc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigCommutEvent_DMA + 0x00000000 0x120 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigBreakDeadTime + 0x00000000 0x118 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigBreakInput + 0x00000000 0x1b0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_RemapConfig + 0x00000000 0x4a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_TISelection + 0x00000000 0x11c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_GroupChannel5 + 0x00000000 0x66 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DisarmBreakInput + 0x00000000 0x92 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ReArmBreakInput + 0x00000000 0xc2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DitheringEnable + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DitheringDisable + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_OC_ConfigPulseOnCompare + 0x00000000 0x78 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigSlaveModePreload + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_EnableSlaveModePreload + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DisableSlaveModePreload + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_EnableDeadTimePreload + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DisableDeadTimePreload + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigDeadTime + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigAsymmetricalDeadTime + 0x00000000 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_EnableAsymmetricalDeadTime + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DisableAsymmetricalDeadTime + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigEncoderIndex + 0x00000000 0x76 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_EnableEncoderIndex + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DisableEncoderIndex + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_EnableEncoderFirstIndex + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_DisableEncoderFirstIndex + 0x00000000 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_CommutHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_GetState + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.HAL_TIMEx_GetChannelNState + 0x00000000 0x52 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.TIMEx_DMACommutationCplt + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.TIMEx_DMACommutationHalfCplt + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.TIM_DMADelayPulseNCplt + 0x00000000 0xa8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.TIM_DMAErrorCCxN + 0x00000000 0x88 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .text.TIM_CCxNChannelCmd + 0x00000000 0x4a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_HalfDuplex_Init + 0x00000000 0xb0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_LIN_Init + 0x00000000 0xe0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_MultiProcessor_Init + 0x00000000 0xd8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_DeInit + 0x00000000 0x7e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_MspInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_MspDeInit + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_Receive + 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_Transmit_IT + 0x00000000 0x128 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_Transmit_DMA + 0x00000000 0x100 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_Receive_DMA + 0x00000000 0x98 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_DMAPause + 0x00000000 0x11c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_DMAResume + 0x00000000 0x108 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_DMAStop + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_Abort + 0x00000000 0x21a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortTransmit + 0x00000000 0x120 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortReceive + 0x00000000 0x16a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_Abort_IT + 0x00000000 0x278 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortTransmit_IT + 0x00000000 0x144 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortReceive_IT + 0x00000000 0x19c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_TxCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_TxHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_RxCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_RxHalfCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortTransmitCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_AbortReceiveCpltCallback + 0x00000000 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_ReceiverTimeout_Config + 0x00000000 0x38 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_EnableReceiverTimeout + 0x00000000 0x74 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_DisableReceiverTimeout + 0x00000000 0x74 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_MultiProcessor_EnableMuteMode + 0x00000000 0x70 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_MultiProcessor_DisableMuteMode + 0x00000000 0x70 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_MultiProcessor_EnterMuteMode + 0x00000000 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_HalfDuplex_EnableTransmitter + 0x00000000 0xa8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_HalfDuplex_EnableReceiver + 0x00000000 0xa8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_LIN_SendBreak + 0x00000000 0x54 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_GetState + 0x00000000 0x2a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UART_GetError + 0x00000000 0x1a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_Start_Receive_DMA + 0x00000000 0x14c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_EndTxTransfer + 0x00000000 0x82 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMATransmitCplt + 0x00000000 0x9a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMATxHalfCplt + 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMAReceiveCplt + 0x00000000 0x12c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMARxHalfCplt + 0x00000000 0x3e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMAError + 0x00000000 0x80 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMATxAbortCallback + 0x00000000 0x8c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMARxAbortCallback + 0x00000000 0x80 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMATxOnlyAbortCallback + 0x00000000 0x46 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMARxOnlyAbortCallback + 0x00000000 0x4a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_TxISR_8BIT + 0x00000000 0xb8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_TxISR_16BIT + 0x00000000 0xc2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_TxISR_8BIT_FIFOEN + 0x00000000 0xe0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_TxISR_16BIT_FIFOEN + 0x00000000 0xea ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_RS485Ex_Init + 0x00000000 0xd2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_MultiProcessorEx_AddressLength_Set + 0x00000000 0x60 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_StopModeWakeUpSourceConfig + 0x00000000 0xb6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_EnableStopMode + 0x00000000 0x66 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_DisableStopMode + 0x00000000 0x66 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_EnableFifoMode + 0x00000000 0x76 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_ReceiveToIdle + 0x00000000 0x204 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_ReceiveToIdle_IT + 0x00000000 0xa0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_ReceiveToIdle_DMA + 0x00000000 0xa8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.HAL_UARTEx_GetRxEventType + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.UARTEx_Wakeup_AddressConfig + 0x00000000 0x46 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x161 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0xfb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1011 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1138f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x3558 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x5c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x141d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x535 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1b6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x288 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x41d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x18b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x43 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x23d ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x1112 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x72e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x391 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x211 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x401 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x107 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x122 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x3d1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0xbda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x47e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x693 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0xa6 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_macro 0x00000000 0x306 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .group 0x00000000 0xc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .text 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .data 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .bss 0x00000000 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_info 0x00000000 0x22 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_abbrev 0x00000000 0x12 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_aranges + 0x00000000 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_macro 0x00000000 0x11 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_macro 0x00000000 0xad8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_line 0x00000000 0x57 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .debug_str 0x00000000 0x2ea2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .comment 0x00000000 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .ARM.attributes + 0x00000000 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + .text.exit 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + .debug_frame 0x00000000 0x28 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-exit.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.std 0x00000000 0x6c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.stdio_exit_handler + 0x00000000 0x18 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.cleanup_stdio + 0x00000000 0x40 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__fp_lock + 0x00000000 0x18 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__fp_unlock + 0x00000000 0x18 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.global_stdio_init.part.0 + 0x00000000 0x3c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__sfp_lock_acquire + 0x00000000 0xc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__sfp_lock_release + 0x00000000 0xc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__sfp 0x00000000 0xa4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__sinit 0x00000000 0x30 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__fp_lock_all + 0x00000000 0x1c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text.__fp_unlock_all + 0x00000000 0x1c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .data.__sglue 0x00000000 0xc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .bss.__sf 0x00000000 0x138 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .bss.__stdio_exit_handler + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .debug_frame 0x00000000 0x144 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-findfp.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .text._fwalk_sglue + 0x00000000 0x3c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .debug_frame 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fwalk.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .text.__sread 0x00000000 0x22 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .text.__seofread + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .text.__swrite + 0x00000000 0x38 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .text.__sseek 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .text.__sclose + 0x00000000 0x8 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .debug_frame 0x00000000 0x88 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-stdio.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .text._close_r + 0x00000000 0x20 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-closer.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .text._reclaim_reent + 0x00000000 0xbc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .bss.errno 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .debug_frame 0x00000000 0x38 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + .data._impure_ptr + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + .data._impure_data + 0x00000000 0x4c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-impure.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .text._lseek_r + 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lseekr.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .text._read_r 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-readr.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .text._write_r + 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-writer.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .text.__errno 0x00000000 0xc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .debug_frame 0x00000000 0x20 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-errno.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_init + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_init_recursive + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_close + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_close_recursive + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_acquire + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_acquire_recursive + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_try_acquire + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_try_acquire_recursive + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_release + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_release_recursive + 0x00000000 0x2 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___arc4random_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___dd_hash_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___tz_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___env_recursive_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___malloc_recursive_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___at_quick_exit_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___atexit_recursive_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .bss.__lock___sfp_recursive_mutex + 0x00000000 0x1 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .debug_frame 0x00000000 0xb0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .text._free_r 0x00000000 0x94 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .debug_frame 0x00000000 0x38 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .text.sbrk_aligned + 0x00000000 0x44 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .text._malloc_r + 0x00000000 0x100 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .bss.__malloc_sbrk_start + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .bss.__malloc_free_list + 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .debug_frame 0x00000000 0x50 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mallocr.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .text.__malloc_lock + 0x00000000 0xc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .text.__malloc_unlock + 0x00000000 0xc C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .debug_frame 0x00000000 0x30 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .text.__sflush_r + 0x00000000 0x108 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .text._fflush_r + 0x00000000 0x50 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .text.fflush 0x00000000 0x28 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .debug_frame 0x00000000 0x5c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-fflush.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .text._sbrk_r 0x00000000 0x20 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .debug_frame 0x00000000 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-sbrkr.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .ARM.extab 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o + .rodata 0x00000000 0x24 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o + .eh_frame 0x00000000 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o + .ARM.attributes + 0x00000000 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o + .text 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + .data 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + .bss 0x00000000 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + +Memory Configuration + +Name Origin Length Attributes +RAM 0x20000000 0x00008000 xrw +FLASH 0x08000000 0x00020000 xr +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o +LOAD ./Core/Src/main.o +LOAD ./Core/Src/stm32g4xx_hal_msp.o +LOAD ./Core/Src/stm32g4xx_it.o +LOAD ./Core/Src/syscalls.o +LOAD ./Core/Src/sysmem.o +LOAD ./Core/Src/system_stm32g4xx.o +LOAD ./Core/Startup/startup_stm32g431kbtx.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o +LOAD ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o +START GROUP +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a +END GROUP +START GROUP +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +END GROUP +START GROUP +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libnosys.a +END GROUP +START GROUP +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libnosys.a +END GROUP +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtend.o +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x20008000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) + 0x00000200 _Min_Heap_Size = 0x200 + 0x00000400 _Min_Stack_Size = 0x400 + +.isr_vector 0x08000000 0x1d8 + 0x08000000 . = ALIGN (0x4) + *(.isr_vector) + .isr_vector 0x08000000 0x1d8 ./Core/Startup/startup_stm32g431kbtx.o + 0x08000000 g_pfnVectors + 0x080001d8 . = ALIGN (0x4) + +.text 0x080001d8 0x6b5c + 0x080001d8 . = ALIGN (0x4) + *(.text) + .text 0x080001d8 0x40 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .text 0x08000218 0x30 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + 0x08000218 __aeabi_uldivmod + .text 0x08000248 0x2f8 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + 0x08000248 __udivmoddi4 + .text 0x08000540 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) + 0x08000540 __aeabi_idiv0 + 0x08000540 __aeabi_ldiv0 + *(.text*) + .text.main 0x08000544 0x118 ./Core/Src/main.o + 0x08000544 main + .text.SystemClock_Config + 0x0800065c 0x98 ./Core/Src/main.o + 0x0800065c SystemClock_Config + .text.MX_ADC1_Init + 0x080006f4 0xf0 ./Core/Src/main.o + .text.MX_ADC2_Init + 0x080007e4 0xec ./Core/Src/main.o + .text.MX_TIM2_Init + 0x080008d0 0x9c ./Core/Src/main.o + .text.MX_USART2_UART_Init + 0x0800096c 0x98 ./Core/Src/main.o + .text.MX_GPIO_Init + 0x08000a04 0xb0 ./Core/Src/main.o + .text.get_actual_vdda + 0x08000ab4 0x5c ./Core/Src/main.o + 0x08000ab4 get_actual_vdda + .text.adc_task + 0x08000b10 0x54 ./Core/Src/main.o + 0x08000b10 adc_task + .text.power_switch + 0x08000b64 0x54 ./Core/Src/main.o + 0x08000b64 power_switch + .text.HAL_UART_TxCpltCallback + 0x08000bb8 0x14 ./Core/Src/main.o + 0x08000bb8 HAL_UART_TxCpltCallback + .text.HAL_UART_RxCpltCallback + 0x08000bcc 0x208 ./Core/Src/main.o + 0x08000bcc HAL_UART_RxCpltCallback + .text.Error_Handler + 0x08000dd4 0xc ./Core/Src/main.o + 0x08000dd4 Error_Handler + .text.HAL_MspInit + 0x08000de0 0x48 ./Core/Src/stm32g4xx_hal_msp.o + 0x08000de0 HAL_MspInit + .text.HAL_ADC_MspInit + 0x08000e28 0x118 ./Core/Src/stm32g4xx_hal_msp.o + 0x08000e28 HAL_ADC_MspInit + .text.HAL_TIM_Base_MspInit + 0x08000f40 0x48 ./Core/Src/stm32g4xx_hal_msp.o + 0x08000f40 HAL_TIM_Base_MspInit + .text.HAL_UART_MspInit + 0x08000f88 0xc0 ./Core/Src/stm32g4xx_hal_msp.o + 0x08000f88 HAL_UART_MspInit + .text.NMI_Handler + 0x08001048 0x8 ./Core/Src/stm32g4xx_it.o + 0x08001048 NMI_Handler + .text.HardFault_Handler + 0x08001050 0x8 ./Core/Src/stm32g4xx_it.o + 0x08001050 HardFault_Handler + .text.MemManage_Handler + 0x08001058 0x8 ./Core/Src/stm32g4xx_it.o + 0x08001058 MemManage_Handler + .text.BusFault_Handler + 0x08001060 0x8 ./Core/Src/stm32g4xx_it.o + 0x08001060 BusFault_Handler + .text.UsageFault_Handler + 0x08001068 0x8 ./Core/Src/stm32g4xx_it.o + 0x08001068 UsageFault_Handler + .text.SVC_Handler + 0x08001070 0xe ./Core/Src/stm32g4xx_it.o + 0x08001070 SVC_Handler + .text.DebugMon_Handler + 0x0800107e 0xe ./Core/Src/stm32g4xx_it.o + 0x0800107e DebugMon_Handler + .text.PendSV_Handler + 0x0800108c 0xe ./Core/Src/stm32g4xx_it.o + 0x0800108c PendSV_Handler + .text.SysTick_Handler + 0x0800109a 0xc ./Core/Src/stm32g4xx_it.o + 0x0800109a SysTick_Handler + *fill* 0x080010a6 0x2 + .text.TIM2_IRQHandler + 0x080010a8 0x14 ./Core/Src/stm32g4xx_it.o + 0x080010a8 TIM2_IRQHandler + .text.USART2_IRQHandler + 0x080010bc 0x14 ./Core/Src/stm32g4xx_it.o + 0x080010bc USART2_IRQHandler + .text.SystemInit + 0x080010d0 0x24 ./Core/Src/system_stm32g4xx.o + 0x080010d0 SystemInit + .text.Reset_Handler + 0x080010f4 0x50 ./Core/Startup/startup_stm32g431kbtx.o + 0x080010f4 Reset_Handler + .text.Default_Handler + 0x08001144 0x2 ./Core/Startup/startup_stm32g431kbtx.o + 0x08001144 RTC_Alarm_IRQHandler + 0x08001144 EXTI2_IRQHandler + 0x08001144 TIM8_TRG_COM_IRQHandler + 0x08001144 TIM8_CC_IRQHandler + 0x08001144 TIM1_CC_IRQHandler + 0x08001144 USB_HP_IRQHandler + 0x08001144 CORDIC_IRQHandler + 0x08001144 EXTI3_IRQHandler + 0x08001144 I2C3_ER_IRQHandler + 0x08001144 EXTI0_IRQHandler + 0x08001144 I2C2_EV_IRQHandler + 0x08001144 FPU_IRQHandler + 0x08001144 FDCAN1_IT1_IRQHandler + 0x08001144 TIM1_UP_TIM16_IRQHandler + 0x08001144 ADC1_2_IRQHandler + 0x08001144 SPI1_IRQHandler + 0x08001144 TIM6_DAC_IRQHandler + 0x08001144 TIM8_UP_IRQHandler + 0x08001144 DMA2_Channel2_IRQHandler + 0x08001144 DMA1_Channel4_IRQHandler + 0x08001144 USART3_IRQHandler + 0x08001144 TIM4_IRQHandler + 0x08001144 DMA2_Channel1_IRQHandler + 0x08001144 I2C1_EV_IRQHandler + 0x08001144 DMA1_Channel6_IRQHandler + 0x08001144 UART4_IRQHandler + 0x08001144 DMA2_Channel4_IRQHandler + 0x08001144 TIM3_IRQHandler + 0x08001144 RCC_IRQHandler + 0x08001144 DMA1_Channel1_IRQHandler + 0x08001144 Default_Handler + 0x08001144 RTC_TAMP_LSECSS_IRQHandler + 0x08001144 FMAC_IRQHandler + 0x08001144 EXTI15_10_IRQHandler + 0x08001144 TIM7_IRQHandler + 0x08001144 UCPD1_IRQHandler + 0x08001144 I2C3_EV_IRQHandler + 0x08001144 EXTI9_5_IRQHandler + 0x08001144 RTC_WKUP_IRQHandler + 0x08001144 PVD_PVM_IRQHandler + 0x08001144 SPI2_IRQHandler + 0x08001144 DMA2_Channel5_IRQHandler + 0x08001144 CRS_IRQHandler + 0x08001144 DMA1_Channel5_IRQHandler + 0x08001144 USB_LP_IRQHandler + 0x08001144 EXTI4_IRQHandler + 0x08001144 RNG_IRQHandler + 0x08001144 TIM1_TRG_COM_TIM17_IRQHandler + 0x08001144 DMA1_Channel3_IRQHandler + 0x08001144 WWDG_IRQHandler + 0x08001144 LPUART1_IRQHandler + 0x08001144 DMA2_Channel6_IRQHandler + 0x08001144 FDCAN1_IT0_IRQHandler + 0x08001144 COMP1_2_3_IRQHandler + 0x08001144 EXTI1_IRQHandler + 0x08001144 I2C2_ER_IRQHandler + 0x08001144 DMA1_Channel2_IRQHandler + 0x08001144 TIM8_BRK_IRQHandler + 0x08001144 FLASH_IRQHandler + 0x08001144 USART1_IRQHandler + 0x08001144 SPI3_IRQHandler + 0x08001144 I2C1_ER_IRQHandler + 0x08001144 LPTIM1_IRQHandler + 0x08001144 DMAMUX_OVR_IRQHandler + 0x08001144 USBWakeUp_IRQHandler + 0x08001144 SAI1_IRQHandler + 0x08001144 DMA2_Channel3_IRQHandler + 0x08001144 COMP4_IRQHandler + 0x08001144 TIM1_BRK_TIM15_IRQHandler + .text.HAL_Init + 0x08001146 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x08001146 HAL_Init + *fill* 0x08001176 0x2 + .text.HAL_InitTick + 0x08001178 0x74 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x08001178 HAL_InitTick + .text.HAL_IncTick + 0x080011ec 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x080011ec HAL_IncTick + .text.HAL_GetTick + 0x08001210 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x08001210 HAL_GetTick + .text.LL_ADC_SetCommonClock + 0x08001228 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetCommonPathInternalCh + 0x0800124e 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_GetCommonPathInternalCh + 0x08001274 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetOffset + 0x08001290 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_GetOffsetChannel + 0x080012d8 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetOffsetState + 0x08001304 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetOffsetSign + 0x0800133a 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetOffsetSaturation + 0x08001370 0x36 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetSamplingTimeCommonConfig + 0x080013a6 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_REG_IsTriggerSourceSWStart + 0x080013cc 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_REG_SetSequencerRanks + 0x080013f2 0x58 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetChannelSamplingTime + 0x0800144a 0x56 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_SetChannelSingleDiff + 0x080014a0 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_GetMultimode + 0x080014e8 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_GetMultiDMATransfer + 0x08001504 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_DisableDeepPowerDown + 0x08001520 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_IsDeepPowerDownEnabled + 0x08001544 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_EnableInternalRegulator + 0x0800156c 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_IsInternalRegulatorEnabled + 0x08001594 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_Enable + 0x080015bc 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_Disable + 0x080015e4 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_IsEnabled + 0x0800160c 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_IsDisableOngoing + 0x08001632 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_REG_StartConversion + 0x08001658 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_REG_StopConversion + 0x08001680 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_REG_IsConversionOngoing + 0x080016a8 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_INJ_StopConversion + 0x080016ce 0x28 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.LL_ADC_INJ_IsConversionOngoing + 0x080016f6 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .text.HAL_ADC_Init + 0x0800171c 0x308 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x0800171c HAL_ADC_Init + .text.HAL_ADC_Start + 0x08001a24 0x178 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08001a24 HAL_ADC_Start + .text.HAL_ADC_Stop + 0x08001b9c 0x66 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08001b9c HAL_ADC_Stop + *fill* 0x08001c02 0x2 + .text.HAL_ADC_PollForConversion + 0x08001c04 0x1b0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08001c04 HAL_ADC_PollForConversion + .text.HAL_ADC_GetValue + 0x08001db4 0x1a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08001db4 HAL_ADC_GetValue + *fill* 0x08001dce 0x2 + .text.HAL_ADC_ConfigChannel + 0x08001dd0 0x7e0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08001dd0 HAL_ADC_ConfigChannel + .text.ADC_ConversionStop + 0x080025b0 0x178 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x080025b0 ADC_ConversionStop + .text.ADC_Enable + 0x08002728 0x10c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08002728 ADC_Enable + .text.ADC_Disable + 0x08002834 0xbe ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x08002834 ADC_Disable + .text.LL_ADC_IsEnabled + 0x080028f2 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .text.LL_ADC_REG_IsConversionOngoing + 0x08002918 0x26 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + *fill* 0x0800293e 0x2 + .text.HAL_ADCEx_MultiModeConfigChannel + 0x08002940 0x148 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + 0x08002940 HAL_ADCEx_MultiModeConfigChannel + .text.__NVIC_SetPriorityGrouping + 0x08002a88 0x48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x08002ad0 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_EnableIRQ + 0x08002aec 0x3c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x08002b28 0x54 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x08002b7c 0x66 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + *fill* 0x08002be2 0x2 + .text.SysTick_Config + 0x08002be4 0x44 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x08002c28 0x16 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + 0x08002c28 HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x08002c3e 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + 0x08002c3e HAL_NVIC_SetPriority + .text.HAL_NVIC_EnableIRQ + 0x08002c72 0x1c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + 0x08002c72 HAL_NVIC_EnableIRQ + .text.HAL_SYSTICK_Config + 0x08002c8e 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + 0x08002c8e HAL_SYSTICK_Config + .text.HAL_DMA_Abort + 0x08002ca6 0xb2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + 0x08002ca6 HAL_DMA_Abort + .text.HAL_DMA_Abort_IT + 0x08002d58 0xce ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + 0x08002d58 HAL_DMA_Abort_IT + *fill* 0x08002e26 0x2 + .text.HAL_GPIO_Init + 0x08002e28 0x304 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + 0x08002e28 HAL_GPIO_Init + .text.HAL_GPIO_WritePin + 0x0800312c 0x30 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + 0x0800312c HAL_GPIO_WritePin + .text.HAL_PWREx_ControlVoltageScaling + 0x0800315c 0x148 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + 0x0800315c HAL_PWREx_ControlVoltageScaling + .text.HAL_PWREx_DisableUCPDDeadBattery + 0x080032a4 0x20 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + 0x080032a4 HAL_PWREx_DisableUCPDDeadBattery + .text.HAL_RCC_OscConfig + 0x080032c4 0x624 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x080032c4 HAL_RCC_OscConfig + .text.HAL_RCC_ClockConfig + 0x080038e8 0x278 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x080038e8 HAL_RCC_ClockConfig + .text.HAL_RCC_GetSysClockFreq + 0x08003b60 0xc4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x08003b60 HAL_RCC_GetSysClockFreq + .text.HAL_RCC_GetHCLKFreq + 0x08003c24 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x08003c24 HAL_RCC_GetHCLKFreq + .text.HAL_RCC_GetPCLK1Freq + 0x08003c3c 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x08003c3c HAL_RCC_GetPCLK1Freq + .text.HAL_RCC_GetPCLK2Freq + 0x08003c68 0x2c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x08003c68 HAL_RCC_GetPCLK2Freq + .text.RCC_GetSysClockFreqFromPLLSource + 0x08003c94 0x8c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .text.HAL_RCCEx_PeriphCLKConfig + 0x08003d20 0x3e0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + 0x08003d20 HAL_RCCEx_PeriphCLKConfig + .text.HAL_TIM_Base_Init + 0x08004100 0xae ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x08004100 HAL_TIM_Base_Init + .text.HAL_TIM_IRQHandler + 0x080041ae 0x29e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x080041ae HAL_TIM_IRQHandler + .text.HAL_TIM_ConfigClockSource + 0x0800444c 0x1f4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x0800444c HAL_TIM_ConfigClockSource + .text.HAL_TIM_PeriodElapsedCallback + 0x08004640 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x08004640 HAL_TIM_PeriodElapsedCallback + .text.HAL_TIM_OC_DelayElapsedCallback + 0x08004654 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x08004654 HAL_TIM_OC_DelayElapsedCallback + .text.HAL_TIM_IC_CaptureCallback + 0x08004668 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x08004668 HAL_TIM_IC_CaptureCallback + .text.HAL_TIM_PWM_PulseFinishedCallback + 0x0800467c 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x0800467c HAL_TIM_PWM_PulseFinishedCallback + .text.HAL_TIM_TriggerCallback + 0x08004690 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x08004690 HAL_TIM_TriggerCallback + .text.TIM_Base_SetConfig + 0x080046a4 0x138 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x080046a4 TIM_Base_SetConfig + .text.TIM_TI1_ConfigInputStage + 0x080047dc 0x5e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_TI2_ConfigInputStage + 0x0800483a 0x60 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_ITRx_SetConfig + 0x0800489a 0x3a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .text.TIM_ETR_SetConfig + 0x080048d4 0x40 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x080048d4 TIM_ETR_SetConfig + .text.HAL_TIMEx_MasterConfigSynchronization + 0x08004914 0x104 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004914 HAL_TIMEx_MasterConfigSynchronization + .text.HAL_TIMEx_CommutCallback + 0x08004a18 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a18 HAL_TIMEx_CommutCallback + .text.HAL_TIMEx_BreakCallback + 0x08004a2c 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a2c HAL_TIMEx_BreakCallback + .text.HAL_TIMEx_Break2Callback + 0x08004a40 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a40 HAL_TIMEx_Break2Callback + .text.HAL_TIMEx_EncoderIndexCallback + 0x08004a54 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a54 HAL_TIMEx_EncoderIndexCallback + .text.HAL_TIMEx_DirectionChangeCallback + 0x08004a68 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a68 HAL_TIMEx_DirectionChangeCallback + .text.HAL_TIMEx_IndexErrorCallback + 0x08004a7c 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a7c HAL_TIMEx_IndexErrorCallback + .text.HAL_TIMEx_TransitionErrorCallback + 0x08004a90 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x08004a90 HAL_TIMEx_TransitionErrorCallback + .text.HAL_UART_Init + 0x08004aa4 0xa0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08004aa4 HAL_UART_Init + .text.HAL_UART_Transmit + 0x08004b44 0x11c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08004b44 HAL_UART_Transmit + .text.HAL_UART_Receive_IT + 0x08004c60 0x98 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08004c60 HAL_UART_Receive_IT + .text.HAL_UART_IRQHandler + 0x08004cf8 0x684 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08004cf8 HAL_UART_IRQHandler + .text.HAL_UART_ErrorCallback + 0x0800537c 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x0800537c HAL_UART_ErrorCallback + .text.HAL_UARTEx_RxEventCallback + 0x08005390 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08005390 HAL_UARTEx_RxEventCallback + .text.UART_SetConfig + 0x080053a8 0x598 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x080053a8 UART_SetConfig + .text.UART_AdvFeatureConfig + 0x08005940 0x144 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08005940 UART_AdvFeatureConfig + .text.UART_CheckIdleState + 0x08005a84 0x154 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08005a84 UART_CheckIdleState + .text.UART_WaitOnFlagUntilTimeout + 0x08005bd8 0xda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08005bd8 UART_WaitOnFlagUntilTimeout + *fill* 0x08005cb2 0x2 + .text.UART_Start_Receive_IT + 0x08005cb4 0x244 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08005cb4 UART_Start_Receive_IT + .text.UART_EndRxTransfer + 0x08005ef8 0xcc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_DMAAbortOnError + 0x08005fc4 0x24 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_EndTransmit_IT + 0x08005fe8 0x56 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + *fill* 0x0800603e 0x2 + .text.UART_RxISR_8BIT + 0x08006040 0x1b8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_RxISR_16BIT + 0x080061f8 0x1b8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_RxISR_8BIT_FIFOEN + 0x080063b0 0x364 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.UART_RxISR_16BIT_FIFOEN + 0x08006714 0x36c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .text.HAL_UARTEx_WakeupCallback + 0x08006a80 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006a80 HAL_UARTEx_WakeupCallback + .text.HAL_UARTEx_RxFifoFullCallback + 0x08006a94 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006a94 HAL_UARTEx_RxFifoFullCallback + .text.HAL_UARTEx_TxFifoEmptyCallback + 0x08006aa8 0x14 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006aa8 HAL_UARTEx_TxFifoEmptyCallback + .text.HAL_UARTEx_DisableFifoMode + 0x08006abc 0x72 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006abc HAL_UARTEx_DisableFifoMode + .text.HAL_UARTEx_SetTxFifoThreshold + 0x08006b2e 0x7c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006b2e HAL_UARTEx_SetTxFifoThreshold + .text.HAL_UARTEx_SetRxFifoThreshold + 0x08006baa 0x7c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006baa HAL_UARTEx_SetRxFifoThreshold + *fill* 0x08006c26 0x2 + .text.UARTEx_SetNbDataToProcess + 0x08006c28 0x9c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .text.memset 0x08006cc4 0x10 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + 0x08006cc4 memset + .text.__libc_init_array + 0x08006cd4 0x48 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + 0x08006cd4 __libc_init_array + *(.glue_7) + .glue_7 0x08006d1c 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x08006d1c 0x0 linker stubs + *(.eh_frame) + .eh_frame 0x08006d1c 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + *(.init) + .init 0x08006d1c 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + 0x08006d1c _init + .init 0x08006d20 0x8 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + *(.fini) + .fini 0x08006d28 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + 0x08006d28 _fini + .fini 0x08006d2c 0x8 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x08006d34 . = ALIGN (0x4) + 0x08006d34 _etext = . + +.vfp11_veneer 0x08006d34 0x0 + .vfp11_veneer 0x08006d34 0x0 linker stubs + +.v4_bx 0x08006d34 0x0 + .v4_bx 0x08006d34 0x0 linker stubs + +.iplt 0x08006d34 0x0 + .iplt 0x08006d34 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + +.rodata 0x08006d34 0x40 + 0x08006d34 . = ALIGN (0x4) + *(.rodata) + *(.rodata*) + .rodata.AHBPrescTable + 0x08006d34 0x10 ./Core/Src/system_stm32g4xx.o + 0x08006d34 AHBPrescTable + .rodata.APBPrescTable + 0x08006d44 0x8 ./Core/Src/system_stm32g4xx.o + 0x08006d44 APBPrescTable + .rodata.UARTPrescTable + 0x08006d4c 0x18 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x08006d4c UARTPrescTable + .rodata.numerator.1 + 0x08006d64 0x8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .rodata.denominator.0 + 0x08006d6c 0x8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x08006d74 . = ALIGN (0x4) + +.ARM.extab 0x08006d74 0x0 + 0x08006d74 . = ALIGN (0x4) + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x08006d74 . = ALIGN (0x4) + +.ARM 0x08006d74 0x8 + 0x08006d74 . = ALIGN (0x4) + 0x08006d74 __exidx_start = . + *(.ARM.exidx*) + .ARM.exidx 0x08006d74 0x8 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + 0x08006d7c __exidx_end = . + 0x08006d7c . = ALIGN (0x4) + +.preinit_array 0x08006d7c 0x0 + 0x08006d7c . = ALIGN (0x4) + 0x08006d7c PROVIDE (__preinit_array_start = .) + *(.preinit_array*) + 0x08006d7c PROVIDE (__preinit_array_end = .) + 0x08006d7c . = ALIGN (0x4) + +.init_array 0x08006d7c 0x4 + 0x08006d7c . = ALIGN (0x4) + 0x08006d7c PROVIDE (__init_array_start = .) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array*) + .init_array 0x08006d7c 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + 0x08006d80 PROVIDE (__init_array_end = .) + 0x08006d80 . = ALIGN (0x4) + +.fini_array 0x08006d80 0x4 + 0x08006d80 . = ALIGN (0x4) + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array*) + .fini_array 0x08006d80 0x4 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + [!provide] PROVIDE (__fini_array_end = .) + 0x08006d84 . = ALIGN (0x4) + 0x08006d84 _sidata = LOADADDR (.data) + +.rel.dyn 0x08006d84 0x0 + .rel.iplt 0x08006d84 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + +.data 0x20000000 0xc load address 0x08006d84 + 0x20000000 . = ALIGN (0x4) + 0x20000000 _sdata = . + *(.data) + *(.data*) + .data.SystemCoreClock + 0x20000000 0x4 ./Core/Src/system_stm32g4xx.o + 0x20000000 SystemCoreClock + .data.uwTickPrio + 0x20000004 0x4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x20000004 uwTickPrio + .data.uwTickFreq + 0x20000008 0x4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x20000008 uwTickFreq + *(.RamFunc) + *(.RamFunc*) + 0x2000000c . = ALIGN (0x4) + 0x2000000c _edata = . + +.igot.plt 0x2000000c 0x0 load address 0x08006d90 + .igot.plt 0x2000000c 0x0 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + 0x2000000c . = ALIGN (0x4) + +.bss 0x2000000c 0x238 load address 0x08006d90 + 0x2000000c _sbss = . + 0x2000000c __bss_start__ = _sbss + *(.bss) + .bss 0x2000000c 0x1c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + *(.bss*) + .bss.hadc1 0x20000028 0x6c ./Core/Src/main.o + 0x20000028 hadc1 + .bss.hadc2 0x20000094 0x6c ./Core/Src/main.o + 0x20000094 hadc2 + .bss.htim2 0x20000100 0x4c ./Core/Src/main.o + 0x20000100 htim2 + .bss.huart2 0x2000014c 0x94 ./Core/Src/main.o + 0x2000014c huart2 + .bss.rx_hold_buffer + 0x200001e0 0x2 ./Core/Src/main.o + 0x200001e0 rx_hold_buffer + *fill* 0x200001e2 0x2 + .bss.rx_buffer + 0x200001e4 0x20 ./Core/Src/main.o + 0x200001e4 rx_buffer + .bss.tx_buffer + 0x20000204 0x20 ./Core/Src/main.o + 0x20000204 tx_buffer + .bss.tx_len 0x20000224 0x1 ./Core/Src/main.o + 0x20000224 tx_len + .bss.rx_counter + 0x20000225 0x1 ./Core/Src/main.o + 0x20000225 rx_counter + .bss.rx_len 0x20000226 0x1 ./Core/Src/main.o + 0x20000226 rx_len + .bss.rx_len_counter + 0x20000227 0x1 ./Core/Src/main.o + 0x20000227 rx_len_counter + .bss.rx_checksum + 0x20000228 0x2 ./Core/Src/main.o + 0x20000228 rx_checksum + .bss.rx_checksum_hold_1 + 0x2000022a 0x1 ./Core/Src/main.o + 0x2000022a rx_checksum_hold_1 + .bss.rx_checksum_hold_2 + 0x2000022b 0x1 ./Core/Src/main.o + 0x2000022b rx_checksum_hold_2 + .bss.rx_checksum_hold + 0x2000022c 0x2 ./Core/Src/main.o + 0x2000022c rx_checksum_hold + .bss.power_state_value + 0x2000022e 0x1 ./Core/Src/main.o + 0x2000022e power_state_value + .bss.command 0x2000022f 0x1 ./Core/Src/main.o + 0x2000022f command + .bss.adc_task_flag + 0x20000230 0x1 ./Core/Src/main.o + 0x20000230 adc_task_flag + .bss.uart_tx_flag + 0x20000231 0x1 ./Core/Src/main.o + 0x20000231 uart_tx_flag + .bss.vin_adc_val + 0x20000232 0x2 ./Core/Src/main.o + 0x20000232 vin_adc_val + .bss.vout_adc_val + 0x20000234 0x2 ./Core/Src/main.o + 0x20000234 vout_adc_val + *fill* 0x20000236 0x2 + .bss.vdd_ref 0x20000238 0x4 ./Core/Src/main.o + 0x20000238 vdd_ref + .bss.HAL_RCC_ADC12_CLK_ENABLED + 0x2000023c 0x4 ./Core/Src/stm32g4xx_hal_msp.o + .bss.uwTick 0x20000240 0x4 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x20000240 uwTick + *(COMMON) + 0x20000244 . = ALIGN (0x4) + 0x20000244 _ebss = . + 0x20000244 __bss_end__ = _ebss + +._user_heap_stack + 0x20000244 0x604 load address 0x08006d90 + 0x20000248 . = ALIGN (0x8) + *fill* 0x20000244 0x4 + [!provide] PROVIDE (end = .) + 0x20000248 PROVIDE (_end = .) + 0x20000448 . = (. + _Min_Heap_Size) + *fill* 0x20000248 0x200 + 0x20000848 . = (. + _Min_Stack_Size) + *fill* 0x20000448 0x400 + 0x20000848 . = ALIGN (0x8) + +/DISCARD/ + libc.a(*) + libm.a(*) + libgcc.a(*) + +.ARM.attributes + 0x00000000 0x30 + *(.ARM.attributes) + .ARM.attributes + 0x00000000 0x22 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crti.o + .ARM.attributes + 0x00000022 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .ARM.attributes + 0x00000056 0x34 ./Core/Src/main.o + .ARM.attributes + 0x0000008a 0x34 ./Core/Src/stm32g4xx_hal_msp.o + .ARM.attributes + 0x000000be 0x34 ./Core/Src/stm32g4xx_it.o + .ARM.attributes + 0x000000f2 0x34 ./Core/Src/system_stm32g4xx.o + .ARM.attributes + 0x00000126 0x21 ./Core/Startup/startup_stm32g431kbtx.o + .ARM.attributes + 0x00000147 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .ARM.attributes + 0x0000017b 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .ARM.attributes + 0x000001af 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .ARM.attributes + 0x000001e3 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .ARM.attributes + 0x00000217 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .ARM.attributes + 0x0000024b 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .ARM.attributes + 0x0000027f 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .ARM.attributes + 0x000002b3 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .ARM.attributes + 0x000002e7 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .ARM.attributes + 0x0000031b 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .ARM.attributes + 0x0000034f 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .ARM.attributes + 0x00000383 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .ARM.attributes + 0x000003b7 0x34 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .ARM.attributes + 0x000003eb 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + .ARM.attributes + 0x0000041f 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + .ARM.attributes + 0x00000453 0x22 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .ARM.attributes + 0x00000475 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + .ARM.attributes + 0x000004a9 0x22 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_dvmd_tls.o) + .ARM.attributes + 0x000004cb 0x22 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard/crtn.o +OUTPUT(POWER_SWITCH.elf elf32-littlearm) +LOAD linker stubs +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a +LOAD C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a + +.debug_info 0x00000000 0x16fd6 + .debug_info 0x00000000 0x1c6c ./Core/Src/main.o + .debug_info 0x00001c6c 0x18d9 ./Core/Src/stm32g4xx_hal_msp.o + .debug_info 0x00003545 0xc5c ./Core/Src/stm32g4xx_it.o + .debug_info 0x000041a1 0x58e ./Core/Src/system_stm32g4xx.o + .debug_info 0x0000472f 0x30 ./Core/Startup/startup_stm32g431kbtx.o + .debug_info 0x0000475f 0xadb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_info 0x0000523a 0x2063 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_info 0x0000729d 0x1d80 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_info 0x0000901d 0xd3f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_info 0x00009d5c 0x85f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_info 0x0000a5bb 0x763 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_info 0x0000ad1e 0x93f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_info 0x0000b65d 0xb82 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_info 0x0000c1df 0xc15 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_info 0x0000cdf4 0x2c52 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_info 0x0000fa46 0x1d95 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_info 0x000117db 0x481e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_info 0x00015ff9 0xfdd ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + +.debug_abbrev 0x00000000 0x2a58 + .debug_abbrev 0x00000000 0x353 ./Core/Src/main.o + .debug_abbrev 0x00000353 0x272 ./Core/Src/stm32g4xx_hal_msp.o + .debug_abbrev 0x000005c5 0x1cb ./Core/Src/stm32g4xx_it.o + .debug_abbrev 0x00000790 0x11a ./Core/Src/system_stm32g4xx.o + .debug_abbrev 0x000008aa 0x24 ./Core/Startup/startup_stm32g431kbtx.o + .debug_abbrev 0x000008ce 0x271 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_abbrev 0x00000b3f 0x2d3 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_abbrev 0x00000e12 0x2ee ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_abbrev 0x00001100 0x31c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_abbrev 0x0000141c 0x1e2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_abbrev 0x000015fe 0x1cb ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_abbrev 0x000017c9 0x22c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_abbrev 0x000019f5 0x2c9 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_abbrev 0x00001cbe 0x258 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_abbrev 0x00001f16 0x2a7 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_abbrev 0x000021bd 0x2c5 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_abbrev 0x00002482 0x304 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_abbrev 0x00002786 0x2d2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + +.debug_aranges 0x00000000 0x1490 + .debug_aranges + 0x00000000 0x88 ./Core/Src/main.o + .debug_aranges + 0x00000088 0x50 ./Core/Src/stm32g4xx_hal_msp.o + .debug_aranges + 0x000000d8 0x70 ./Core/Src/stm32g4xx_it.o + .debug_aranges + 0x00000148 0x28 ./Core/Src/system_stm32g4xx.o + .debug_aranges + 0x00000170 0x28 ./Core/Startup/startup_stm32g431kbtx.o + .debug_aranges + 0x00000198 0x148 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_aranges + 0x000002e0 0x248 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_aranges + 0x00000528 0x1c0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_aranges + 0x000006e8 0x128 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_aranges + 0x00000810 0x90 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_aranges + 0x000008a0 0x58 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_aranges + 0x000008f8 0x140 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_aranges + 0x00000a38 0x98 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_aranges + 0x00000ad0 0xb0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_aranges + 0x00000b80 0x3e0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_aranges + 0x00000f60 0x240 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_aranges + 0x000011a0 0x248 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_aranges + 0x000013e8 0xa8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + +.debug_rnglists + 0x00000000 0x1012 + .debug_rnglists + 0x00000000 0x69 ./Core/Src/main.o + .debug_rnglists + 0x00000069 0x39 ./Core/Src/stm32g4xx_hal_msp.o + .debug_rnglists + 0x000000a2 0x4f ./Core/Src/stm32g4xx_it.o + .debug_rnglists + 0x000000f1 0x1a ./Core/Src/system_stm32g4xx.o + .debug_rnglists + 0x0000010b 0x19 ./Core/Startup/startup_stm32g431kbtx.o + .debug_rnglists + 0x00000124 0xf1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_rnglists + 0x00000215 0x1c0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_rnglists + 0x000003d5 0x15a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_rnglists + 0x0000052f 0xda ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_rnglists + 0x00000609 0x71 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_rnglists + 0x0000067a 0x3f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_rnglists + 0x000006b9 0xf1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_rnglists + 0x000007aa 0x74 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_rnglists + 0x0000081e 0x87 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_rnglists + 0x000008a5 0x328 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_rnglists + 0x00000bcd 0x1cc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_rnglists + 0x00000d99 0x1fa ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_rnglists + 0x00000f93 0x7f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + +.debug_macro 0x00000000 0x1f9ca + .debug_macro 0x00000000 0x218 ./Core/Src/main.o + .debug_macro 0x00000218 0xad8 ./Core/Src/main.o + .debug_macro 0x00000cf0 0x161 ./Core/Src/main.o + .debug_macro 0x00000e51 0x2e ./Core/Src/main.o + .debug_macro 0x00000e7f 0x28 ./Core/Src/main.o + .debug_macro 0x00000ea7 0x22 ./Core/Src/main.o + .debug_macro 0x00000ec9 0x8e ./Core/Src/main.o + .debug_macro 0x00000f57 0x51 ./Core/Src/main.o + .debug_macro 0x00000fa8 0x103 ./Core/Src/main.o + .debug_macro 0x000010ab 0x6a ./Core/Src/main.o + .debug_macro 0x00001115 0x1df ./Core/Src/main.o + .debug_macro 0x000012f4 0x1c ./Core/Src/main.o + .debug_macro 0x00001310 0x22 ./Core/Src/main.o + .debug_macro 0x00001332 0xfb ./Core/Src/main.o + .debug_macro 0x0000142d 0x1011 ./Core/Src/main.o + .debug_macro 0x0000243e 0x11f ./Core/Src/main.o + .debug_macro 0x0000255d 0x1138f ./Core/Src/main.o + .debug_macro 0x000138ec 0x6d ./Core/Src/main.o + .debug_macro 0x00013959 0x3558 ./Core/Src/main.o + .debug_macro 0x00016eb1 0x190 ./Core/Src/main.o + .debug_macro 0x00017041 0x5c ./Core/Src/main.o + .debug_macro 0x0001709d 0x141d ./Core/Src/main.o + .debug_macro 0x000184ba 0x535 ./Core/Src/main.o + .debug_macro 0x000189ef 0x1b6 ./Core/Src/main.o + .debug_macro 0x00018ba5 0x288 ./Core/Src/main.o + .debug_macro 0x00018e2d 0x41d ./Core/Src/main.o + .debug_macro 0x0001924a 0x18b ./Core/Src/main.o + .debug_macro 0x000193d5 0x43 ./Core/Src/main.o + .debug_macro 0x00019418 0x23d ./Core/Src/main.o + .debug_macro 0x00019655 0x1112 ./Core/Src/main.o + .debug_macro 0x0001a767 0x72e ./Core/Src/main.o + .debug_macro 0x0001ae95 0x391 ./Core/Src/main.o + .debug_macro 0x0001b226 0x211 ./Core/Src/main.o + .debug_macro 0x0001b437 0x401 ./Core/Src/main.o + .debug_macro 0x0001b838 0x107 ./Core/Src/main.o + .debug_macro 0x0001b93f 0x122 ./Core/Src/main.o + .debug_macro 0x0001ba61 0x3d1 ./Core/Src/main.o + .debug_macro 0x0001be32 0xbda ./Core/Src/main.o + .debug_macro 0x0001ca0c 0x47e ./Core/Src/main.o + .debug_macro 0x0001ce8a 0x693 ./Core/Src/main.o + .debug_macro 0x0001d51d 0xa6 ./Core/Src/main.o + .debug_macro 0x0001d5c3 0x306 ./Core/Src/main.o + .debug_macro 0x0001d8c9 0x70 ./Core/Src/main.o + .debug_macro 0x0001d939 0x200 ./Core/Src/stm32g4xx_hal_msp.o + .debug_macro 0x0001db39 0x20a ./Core/Src/stm32g4xx_it.o + .debug_macro 0x0001dd43 0x1f1 ./Core/Src/system_stm32g4xx.o + .debug_macro 0x0001df34 0x23f ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_macro 0x0001e173 0x20e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_macro 0x0001e381 0x1fd ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_macro 0x0001e57e 0x1f1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_macro 0x0001e76f 0x1f1 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_macro 0x0001e960 0x1f8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_macro 0x0001eb58 0x21b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_macro 0x0001ed73 0x233 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_macro 0x0001efa6 0x21b ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_macro 0x0001f1c1 0x1f9 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_macro 0x0001f3ba 0x1f7 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_macro 0x0001f5b1 0x21c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_macro 0x0001f7cd 0x1fd ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + +.debug_line 0x00000000 0x1664c + .debug_line 0x00000000 0xc49 ./Core/Src/main.o + .debug_line 0x00000c49 0x906 ./Core/Src/stm32g4xx_hal_msp.o + .debug_line 0x0000154f 0x88f ./Core/Src/stm32g4xx_it.o + .debug_line 0x00001dde 0x81d ./Core/Src/system_stm32g4xx.o + .debug_line 0x000025fb 0x7b ./Core/Startup/startup_stm32g431kbtx.o + .debug_line 0x00002676 0xbe9 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_line 0x0000325f 0x1ff3 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_line 0x00005252 0x1a0a ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_line 0x00006c5c 0xd4e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_line 0x000079aa 0xee8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_line 0x00008892 0xbc2 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_line 0x00009454 0xd48 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_line 0x0000a19c 0x106c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_line 0x0000b208 0x1198 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_line 0x0000c3a0 0x3f50 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_line 0x000102f0 0x2030 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_line 0x00012320 0x360e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_line 0x0001592e 0xd1e ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + +.debug_str 0x00000000 0xd7e8e + .debug_str 0x00000000 0xd7e8e ./Core/Src/main.o + 0xd2cca (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Core/Src/stm32g4xx_hal_msp.o + 0xd2cf7 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Core/Src/stm32g4xx_it.o + 0xd2267 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Core/Src/system_stm32g4xx.o + 0xd193c (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Core/Startup/startup_stm32g431kbtx.o + 0x89 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0xd247b (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0xd2969 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + 0xd290f (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + 0xd2137 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + 0xd1d16 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + 0xd1ac7 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + 0xd1e2a (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0xd2035 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + 0xd2036 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0xd2e3a (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0xd2aae (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0xd28f7 (size before relaxing) + .debug_str 0x000d7e8e 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0xd20f5 (size before relaxing) + +.comment 0x00000000 0x43 + .comment 0x00000000 0x43 ./Core/Src/main.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Core/Src/stm32g4xx_hal_msp.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Core/Src/stm32g4xx_it.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Core/Src/system_stm32g4xx.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + 0x44 (size before relaxing) + .comment 0x00000043 0x0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + 0x44 (size before relaxing) + +.debug_frame 0x00000000 0x595c + .debug_frame 0x00000000 0x1ec ./Core/Src/main.o + .debug_frame 0x000001ec 0x10c ./Core/Src/stm32g4xx_hal_msp.o + .debug_frame 0x000002f8 0x13c ./Core/Src/stm32g4xx_it.o + .debug_frame 0x00000434 0x58 ./Core/Src/system_stm32g4xx.o + .debug_frame 0x0000048c 0x500 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o + .debug_frame 0x0000098c 0xacc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o + .debug_frame 0x00001458 0x81c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o + .debug_frame 0x00001c74 0x4e8 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o + .debug_frame 0x0000215c 0x24c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o + .debug_frame 0x000023a8 0x14c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o + .debug_frame 0x000024f4 0x4fc ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o + .debug_frame 0x000029f0 0x23c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o + .debug_frame 0x00002c2c 0x2ac ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o + .debug_frame 0x00002ed8 0x121c ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o + .debug_frame 0x000040f4 0xa68 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o + .debug_frame 0x00004b5c 0xa94 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o + .debug_frame 0x000055f0 0x2c0 ./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o + .debug_frame 0x000058b0 0x20 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o) + .debug_frame 0x000058d0 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + .debug_frame 0x000058fc 0x2c C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00005928 0x34 C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o) + +.debug_line_str + 0x00000000 0x6d + .debug_line_str + 0x00000000 0x6d ./Core/Startup/startup_stm32g431kbtx.o diff --git a/Debug/makefile b/Debug/makefile new file mode 100644 index 0000000..ca06750 --- /dev/null +++ b/Debug/makefile @@ -0,0 +1,94 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +-include ../makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include Drivers/STM32G4xx_HAL_Driver/Src/subdir.mk +-include Core/Startup/subdir.mk +-include Core/Src/subdir.mk +-include objects.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(S_DEPS)),) +-include $(S_DEPS) +endif +ifneq ($(strip $(S_UPPER_DEPS)),) +-include $(S_UPPER_DEPS) +endif +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +-include ../makefile.defs + +OPTIONAL_TOOL_DEPS := \ +$(wildcard ../makefile.defs) \ +$(wildcard ../makefile.init) \ +$(wildcard ../makefile.targets) \ + + +BUILD_ARTIFACT_NAME := POWER_SWITCH +BUILD_ARTIFACT_EXTENSION := elf +BUILD_ARTIFACT_PREFIX := +BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),) + +# Add inputs and outputs from these tool invocations to the build variables +EXECUTABLES += \ +POWER_SWITCH.elf \ + +MAP_FILES += \ +POWER_SWITCH.map \ + +SIZE_OUTPUT += \ +default.size.stdout \ + +OBJDUMP_LIST += \ +POWER_SWITCH.list \ + + +# All Target +all: main-build + +# Main-build Target +main-build: POWER_SWITCH.elf secondary-outputs + +# Tool invocations +POWER_SWITCH.elf POWER_SWITCH.map: $(OBJS) $(USER_OBJS) C:\Users\david.rice\STM32CubeIDE\workspace_1.15.0\POWER_SWITCH\STM32G431KBTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-gcc -o "POWER_SWITCH.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\david.rice\STM32CubeIDE\workspace_1.15.0\POWER_SWITCH\STM32G431KBTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="POWER_SWITCH.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group + @echo 'Finished building target: $@' + @echo ' ' + +default.size.stdout: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-size $(EXECUTABLES) + @echo 'Finished building: $@' + @echo ' ' + +POWER_SWITCH.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-objdump -h -S $(EXECUTABLES) > "POWER_SWITCH.list" + @echo 'Finished building: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) POWER_SWITCH.elf POWER_SWITCH.list POWER_SWITCH.map default.size.stdout + -@echo ' ' + +secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) + +fail-specified-linker-script-missing: + @echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.' + @exit 2 + +warn-no-linker-script-specified: + @echo 'Warning: No linker script specified. Check the linker settings in the build configuration.' + +.PHONY: all clean dependents main-build fail-specified-linker-script-missing warn-no-linker-script-specified + +-include ../makefile.targets diff --git a/Debug/objects.list b/Debug/objects.list new file mode 100644 index 0000000..7082a30 --- /dev/null +++ b/Debug/objects.list @@ -0,0 +1,27 @@ +"./Core/Src/main.o" +"./Core/Src/stm32g4xx_hal_msp.o" +"./Core/Src/stm32g4xx_it.o" +"./Core/Src/syscalls.o" +"./Core/Src/sysmem.o" +"./Core/Src/system_stm32g4xx.o" +"./Core/Startup/startup_stm32g431kbtx.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.o" +"./Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.o" diff --git a/Debug/objects.mk b/Debug/objects.mk new file mode 100644 index 0000000..b471e98 --- /dev/null +++ b/Debug/objects.mk @@ -0,0 +1,9 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/Debug/sources.mk b/Debug/sources.mk new file mode 100644 index 0000000..703b78e --- /dev/null +++ b/Debug/sources.mk @@ -0,0 +1,28 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +ELF_SRCS := +OBJ_SRCS := +S_SRCS := +C_SRCS := +S_UPPER_SRCS := +O_SRCS := +CYCLO_FILES := +SIZE_OUTPUT := +OBJDUMP_LIST := +SU_FILES := +EXECUTABLES := +OBJS := +MAP_FILES := +S_DEPS := +S_UPPER_DEPS := +C_DEPS := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +Core/Src \ +Core/Startup \ +Drivers/STM32G4xx_HAL_Driver/Src \ + diff --git a/Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h b/Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h new file mode 100644 index 0000000..3b57d4c --- /dev/null +++ b/Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h @@ -0,0 +1,13136 @@ +/** + ****************************************************************************** + * @file stm32g431xx.h + * @author MCD Application Team + * @brief CMSIS STM32G431xx Device Peripheral Access Layer Header File. + * + * This file contains: + * - Data structures and the address mapping for all peripherals + * - Peripheral's registers declarations and bits definition + * - Macros to access peripheral's registers hardware + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS_Device + * @{ + */ + +/** @addtogroup stm32g431xx + * @{ + */ + +#ifndef __STM32G431xx_H +#define __STM32G431xx_H + +#ifdef __cplusplus + extern "C" { +#endif /* __cplusplus */ + +/** @addtogroup Configuration_section_for_CMSIS + * @{ + */ + +/** + * @brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ +#define __CM4_REV 0x0001U /*!< Cortex-M4 revision r0p1 */ +#define __MPU_PRESENT 1U /*!< STM32G4XX provides an MPU */ +#define __NVIC_PRIO_BITS 4U /*!< STM32G4XX uses 4 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0U /*!< Set to 1 if different SysTick Config is used */ +#define __FPU_PRESENT 1U /*!< FPU present */ + +/** + * @} + */ + +/** @addtogroup Peripheral_interrupt_number_definition + * @{ + */ + +/** + * @brief STM32G4XX Interrupt Number Definition, according to the selected device + * in @ref Library_configuration_section + */ +typedef enum +{ +/****** Cortex-M4 Processor Exceptions Numbers *********************************************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Cortex-M4 Non Maskable Interrupt */ + HardFault_IRQn = -13, /*!< 3 Cortex-M4 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12, /*!< 4 Cortex-M4 Memory Management Interrupt */ + BusFault_IRQn = -11, /*!< 5 Cortex-M4 Bus Fault Interrupt */ + UsageFault_IRQn = -10, /*!< 6 Cortex-M4 Usage Fault Interrupt */ + SVCall_IRQn = -5, /*!< 11 Cortex-M4 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /*!< 12 Cortex-M4 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /*!< 14 Cortex-M4 Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 Cortex-M4 System Tick Interrupt */ +/****** STM32 specific Interrupt Numbers ***************************************************************************************/ + WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ + PVD_PVM_IRQn = 1, /*!< PVD/PVM1/PVM2/PVM3/PVM4 through EXTI Line detection Interrupts */ + RTC_TAMP_LSECSS_IRQn = 2, /*!< RTC Tamper and TimeStamp and RCC LSE CSS interrupts through the EXTI */ + RTC_WKUP_IRQn = 3, /*!< RTC Wakeup interrupt through the EXTI line */ + FLASH_IRQn = 4, /*!< FLASH global Interrupt */ + RCC_IRQn = 5, /*!< RCC global Interrupt */ + EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ + EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ + EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ + EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ + EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */ + DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */ + DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */ + DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */ + DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */ + DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */ + ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ + USB_HP_IRQn = 19, /*!< USB HP Interrupt */ + USB_LP_IRQn = 20, /*!< USB LP Interrupt */ + FDCAN1_IT0_IRQn = 21, /*!< FDCAN1 IT0 Interrupt */ + FDCAN1_IT1_IRQn = 22, /*!< FDCAN1 IT1 Interrupt */ + EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ + TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break, Transition error, Index error and TIM15 global interrupt */ + TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update Interrupt and TIM16 global interrupt */ + TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 TIM1 Trigger, Commutation, Direction change, Index and TIM17 global interrupt */ + TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ + TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ + TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ + I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ + I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ + I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ + I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ + SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ + SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ + USART1_IRQn = 37, /*!< USART1 global Interrupt */ + USART2_IRQn = 38, /*!< USART2 global Interrupt */ + USART3_IRQn = 39, /*!< USART3 global Interrupt */ + EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ + RTC_Alarm_IRQn = 41, /*!< RTC Alarm (A and B) through EXTI Line Interrupt */ + USBWakeUp_IRQn = 42, /*!< USB Wakeup through EXTI line Interrupt */ + TIM8_BRK_IRQn = 43, /*!< TIM8 Break, Transition error and Index error Interrupt */ + TIM8_UP_IRQn = 44, /*!< TIM8 Update Interrupt */ + TIM8_TRG_COM_IRQn = 45, /*!< TIM8 Trigger, Commutation, Direction change and Index Interrupt */ + TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */ + LPTIM1_IRQn = 49, /*!< LP TIM1 Interrupt */ + SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ + UART4_IRQn = 52, /*!< UART4 global Interrupt */ + TIM6_DAC_IRQn = 54, /*!< TIM6 global and DAC1&3 underrun error interrupts */ + TIM7_IRQn = 55, /*!< TIM7 global interrupts */ + DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ + DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ + DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ + DMA2_Channel4_IRQn = 59, /*!< DMA2 Channel 4 global Interrupt */ + DMA2_Channel5_IRQn = 60, /*!< DMA2 Channel 5 global Interrupt */ + UCPD1_IRQn = 63, /*!< UCPD global Interrupt */ + COMP1_2_3_IRQn = 64, /*!< COMP1, COMP2 and COMP3 Interrupts */ + COMP4_IRQn = 65, /*!< COMP4 */ + CRS_IRQn = 75, /*!< CRS global interrupt */ + SAI1_IRQn = 76, /*!< Serial Audio Interface global interrupt */ + FPU_IRQn = 81, /*!< FPU global interrupt */ + RNG_IRQn = 90, /*!< RNG global interrupt */ + LPUART1_IRQn = 91, /*!< LP UART 1 Interrupt */ + I2C3_EV_IRQn = 92, /*!< I2C3 Event Interrupt */ + I2C3_ER_IRQn = 93, /*!< I2C3 Error interrupt */ + DMAMUX_OVR_IRQn = 94, /*!< DMAMUX overrun global interrupt */ + DMA2_Channel6_IRQn = 97, /*!< DMA2 Channel 6 interrupt */ + CORDIC_IRQn = 100, /*!< CORDIC global Interrupt */ + FMAC_IRQn = 101 /*!< FMAC global Interrupt */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm4.h" /* Cortex-M4 processor and core peripherals */ +#include "system_stm32g4xx.h" +#include + +/** @addtogroup Peripheral_registers_structures + * @{ + */ + +/** + * @brief Analog to Digital Converter + */ + +typedef struct +{ + __IO uint32_t ISR; /*!< ADC interrupt and status register, Address offset: 0x00 */ + __IO uint32_t IER; /*!< ADC interrupt enable register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< ADC control register, Address offset: 0x08 */ + __IO uint32_t CFGR; /*!< ADC configuration register 1, Address offset: 0x0C */ + __IO uint32_t CFGR2; /*!< ADC configuration register 2, Address offset: 0x10 */ + __IO uint32_t SMPR1; /*!< ADC sampling time register 1, Address offset: 0x14 */ + __IO uint32_t SMPR2; /*!< ADC sampling time register 2, Address offset: 0x18 */ + uint32_t RESERVED1; /*!< Reserved, 0x1C */ + __IO uint32_t TR1; /*!< ADC analog watchdog 1 threshold register, Address offset: 0x20 */ + __IO uint32_t TR2; /*!< ADC analog watchdog 2 threshold register, Address offset: 0x24 */ + __IO uint32_t TR3; /*!< ADC analog watchdog 3 threshold register, Address offset: 0x28 */ + uint32_t RESERVED2; /*!< Reserved, 0x2C */ + __IO uint32_t SQR1; /*!< ADC group regular sequencer register 1, Address offset: 0x30 */ + __IO uint32_t SQR2; /*!< ADC group regular sequencer register 2, Address offset: 0x34 */ + __IO uint32_t SQR3; /*!< ADC group regular sequencer register 3, Address offset: 0x38 */ + __IO uint32_t SQR4; /*!< ADC group regular sequencer register 4, Address offset: 0x3C */ + __IO uint32_t DR; /*!< ADC group regular data register, Address offset: 0x40 */ + uint32_t RESERVED3; /*!< Reserved, 0x44 */ + uint32_t RESERVED4; /*!< Reserved, 0x48 */ + __IO uint32_t JSQR; /*!< ADC group injected sequencer register, Address offset: 0x4C */ + uint32_t RESERVED5[4]; /*!< Reserved, 0x50 - 0x5C */ + __IO uint32_t OFR1; /*!< ADC offset register 1, Address offset: 0x60 */ + __IO uint32_t OFR2; /*!< ADC offset register 2, Address offset: 0x64 */ + __IO uint32_t OFR3; /*!< ADC offset register 3, Address offset: 0x68 */ + __IO uint32_t OFR4; /*!< ADC offset register 4, Address offset: 0x6C */ + uint32_t RESERVED6[4]; /*!< Reserved, 0x70 - 0x7C */ + __IO uint32_t JDR1; /*!< ADC group injected rank 1 data register, Address offset: 0x80 */ + __IO uint32_t JDR2; /*!< ADC group injected rank 2 data register, Address offset: 0x84 */ + __IO uint32_t JDR3; /*!< ADC group injected rank 3 data register, Address offset: 0x88 */ + __IO uint32_t JDR4; /*!< ADC group injected rank 4 data register, Address offset: 0x8C */ + uint32_t RESERVED7[4]; /*!< Reserved, 0x090 - 0x09C */ + __IO uint32_t AWD2CR; /*!< ADC analog watchdog 2 configuration register, Address offset: 0xA0 */ + __IO uint32_t AWD3CR; /*!< ADC analog watchdog 3 Configuration Register, Address offset: 0xA4 */ + uint32_t RESERVED8; /*!< Reserved, 0x0A8 */ + uint32_t RESERVED9; /*!< Reserved, 0x0AC */ + __IO uint32_t DIFSEL; /*!< ADC differential mode selection register, Address offset: 0xB0 */ + __IO uint32_t CALFACT; /*!< ADC calibration factors, Address offset: 0xB4 */ + uint32_t RESERVED10[2];/*!< Reserved, 0x0B8 - 0x0BC */ + __IO uint32_t GCOMP; /*!< ADC calibration factors, Address offset: 0xC0 */ +} ADC_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< ADC common status register, Address offset: 0x300 + 0x00 */ + uint32_t RESERVED1; /*!< Reserved, Address offset: 0x300 + 0x04 */ + __IO uint32_t CCR; /*!< ADC common configuration register, Address offset: 0x300 + 0x08 */ + __IO uint32_t CDR; /*!< ADC common group regular data register Address offset: 0x300 + 0x0C */ +} ADC_Common_TypeDef; + +/** + * @brief FD Controller Area Network + */ + +typedef struct +{ + __IO uint32_t CREL; /*!< FDCAN Core Release register, Address offset: 0x000 */ + __IO uint32_t ENDN; /*!< FDCAN Endian register, Address offset: 0x004 */ + uint32_t RESERVED1; /*!< Reserved, 0x008 */ + __IO uint32_t DBTP; /*!< FDCAN Data Bit Timing & Prescaler register, Address offset: 0x00C */ + __IO uint32_t TEST; /*!< FDCAN Test register, Address offset: 0x010 */ + __IO uint32_t RWD; /*!< FDCAN RAM Watchdog register, Address offset: 0x014 */ + __IO uint32_t CCCR; /*!< FDCAN CC Control register, Address offset: 0x018 */ + __IO uint32_t NBTP; /*!< FDCAN Nominal Bit Timing & Prescaler register, Address offset: 0x01C */ + __IO uint32_t TSCC; /*!< FDCAN Timestamp Counter Configuration register, Address offset: 0x020 */ + __IO uint32_t TSCV; /*!< FDCAN Timestamp Counter Value register, Address offset: 0x024 */ + __IO uint32_t TOCC; /*!< FDCAN Timeout Counter Configuration register, Address offset: 0x028 */ + __IO uint32_t TOCV; /*!< FDCAN Timeout Counter Value register, Address offset: 0x02C */ + uint32_t RESERVED2[4]; /*!< Reserved, 0x030 - 0x03C */ + __IO uint32_t ECR; /*!< FDCAN Error Counter register, Address offset: 0x040 */ + __IO uint32_t PSR; /*!< FDCAN Protocol Status register, Address offset: 0x044 */ + __IO uint32_t TDCR; /*!< FDCAN Transmitter Delay Compensation register, Address offset: 0x048 */ + uint32_t RESERVED3; /*!< Reserved, 0x04C */ + __IO uint32_t IR; /*!< FDCAN Interrupt register, Address offset: 0x050 */ + __IO uint32_t IE; /*!< FDCAN Interrupt Enable register, Address offset: 0x054 */ + __IO uint32_t ILS; /*!< FDCAN Interrupt Line Select register, Address offset: 0x058 */ + __IO uint32_t ILE; /*!< FDCAN Interrupt Line Enable register, Address offset: 0x05C */ + uint32_t RESERVED4[8]; /*!< Reserved, 0x060 - 0x07C */ + __IO uint32_t RXGFC; /*!< FDCAN Global Filter Configuration register, Address offset: 0x080 */ + __IO uint32_t XIDAM; /*!< FDCAN Extended ID AND Mask register, Address offset: 0x084 */ + __IO uint32_t HPMS; /*!< FDCAN High Priority Message Status register, Address offset: 0x088 */ + uint32_t RESERVED5; /*!< Reserved, 0x08C */ + __IO uint32_t RXF0S; /*!< FDCAN Rx FIFO 0 Status register, Address offset: 0x090 */ + __IO uint32_t RXF0A; /*!< FDCAN Rx FIFO 0 Acknowledge register, Address offset: 0x094 */ + __IO uint32_t RXF1S; /*!< FDCAN Rx FIFO 1 Status register, Address offset: 0x098 */ + __IO uint32_t RXF1A; /*!< FDCAN Rx FIFO 1 Acknowledge register, Address offset: 0x09C */ + uint32_t RESERVED6[8]; /*!< Reserved, 0x0A0 - 0x0BC */ + __IO uint32_t TXBC; /*!< FDCAN Tx Buffer Configuration register, Address offset: 0x0C0 */ + __IO uint32_t TXFQS; /*!< FDCAN Tx FIFO/Queue Status register, Address offset: 0x0C4 */ + __IO uint32_t TXBRP; /*!< FDCAN Tx Buffer Request Pending register, Address offset: 0x0C8 */ + __IO uint32_t TXBAR; /*!< FDCAN Tx Buffer Add Request register, Address offset: 0x0CC */ + __IO uint32_t TXBCR; /*!< FDCAN Tx Buffer Cancellation Request register, Address offset: 0x0D0 */ + __IO uint32_t TXBTO; /*!< FDCAN Tx Buffer Transmission Occurred register, Address offset: 0x0D4 */ + __IO uint32_t TXBCF; /*!< FDCAN Tx Buffer Cancellation Finished register, Address offset: 0x0D8 */ + __IO uint32_t TXBTIE; /*!< FDCAN Tx Buffer Transmission Interrupt Enable register, Address offset: 0x0DC */ + __IO uint32_t TXBCIE; /*!< FDCAN Tx Buffer Cancellation Finished Interrupt Enable register, Address offset: 0x0E0 */ + __IO uint32_t TXEFS; /*!< FDCAN Tx Event FIFO Status register, Address offset: 0x0E4 */ + __IO uint32_t TXEFA; /*!< FDCAN Tx Event FIFO Acknowledge register, Address offset: 0x0E8 */ +} FDCAN_GlobalTypeDef; + +/** + * @brief FD Controller Area Network Configuration + */ + +typedef struct +{ + __IO uint32_t CKDIV; /*!< FDCAN clock divider register, Address offset: 0x100 + 0x000 */ +} FDCAN_Config_TypeDef; + +/** + * @brief Comparator + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< COMP control and status register, Address offset: 0x00 */ +} COMP_TypeDef; + +/** + * @brief CRC calculation unit + */ + +typedef struct +{ + __IO uint32_t DR; /*!< CRC Data register, Address offset: 0x00 */ + __IO uint32_t IDR; /*!< CRC Independent data register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< CRC Control register, Address offset: 0x08 */ + uint32_t RESERVED0; /*!< Reserved, 0x0C */ + __IO uint32_t INIT; /*!< Initial CRC value register, Address offset: 0x10 */ + __IO uint32_t POL; /*!< CRC polynomial register, Address offset: 0x14 */ +} CRC_TypeDef; + +/** + * @brief Clock Recovery System + */ +typedef struct +{ + __IO uint32_t CR; /*!< CRS ccontrol register, Address offset: 0x00 */ + __IO uint32_t CFGR; /*!< CRS configuration register, Address offset: 0x04 */ + __IO uint32_t ISR; /*!< CRS interrupt and status register, Address offset: 0x08 */ + __IO uint32_t ICR; /*!< CRS interrupt flag clear register, Address offset: 0x0C */ +} CRS_TypeDef; + +/** + * @brief Digital to Analog Converter + */ + +typedef struct +{ + __IO uint32_t CR; /*!< DAC control register, Address offset: 0x00 */ + __IO uint32_t SWTRIGR; /*!< DAC software trigger register, Address offset: 0x04 */ + __IO uint32_t DHR12R1; /*!< DAC channel1 12-bit right-aligned data holding register, Address offset: 0x08 */ + __IO uint32_t DHR12L1; /*!< DAC channel1 12-bit left aligned data holding register, Address offset: 0x0C */ + __IO uint32_t DHR8R1; /*!< DAC channel1 8-bit right aligned data holding register, Address offset: 0x10 */ + __IO uint32_t DHR12R2; /*!< DAC channel2 12-bit right aligned data holding register, Address offset: 0x14 */ + __IO uint32_t DHR12L2; /*!< DAC channel2 12-bit left aligned data holding register, Address offset: 0x18 */ + __IO uint32_t DHR8R2; /*!< DAC channel2 8-bit right-aligned data holding register, Address offset: 0x1C */ + __IO uint32_t DHR12RD; /*!< Dual DAC 12-bit right-aligned data holding register, Address offset: 0x20 */ + __IO uint32_t DHR12LD; /*!< DUAL DAC 12-bit left aligned data holding register, Address offset: 0x24 */ + __IO uint32_t DHR8RD; /*!< DUAL DAC 8-bit right aligned data holding register, Address offset: 0x28 */ + __IO uint32_t DOR1; /*!< DAC channel1 data output register, Address offset: 0x2C */ + __IO uint32_t DOR2; /*!< DAC channel2 data output register, Address offset: 0x30 */ + __IO uint32_t SR; /*!< DAC status register, Address offset: 0x34 */ + __IO uint32_t CCR; /*!< DAC calibration control register, Address offset: 0x38 */ + __IO uint32_t MCR; /*!< DAC mode control register, Address offset: 0x3C */ + __IO uint32_t SHSR1; /*!< DAC Sample and Hold sample time register 1, Address offset: 0x40 */ + __IO uint32_t SHSR2; /*!< DAC Sample and Hold sample time register 2, Address offset: 0x44 */ + __IO uint32_t SHHR; /*!< DAC Sample and Hold hold time register, Address offset: 0x48 */ + __IO uint32_t SHRR; /*!< DAC Sample and Hold refresh time register, Address offset: 0x4C */ + __IO uint32_t RESERVED[2]; + __IO uint32_t STR1; /*!< DAC Sawtooth register, Address offset: 0x58 */ + __IO uint32_t STR2; /*!< DAC Sawtooth register, Address offset: 0x5C */ + __IO uint32_t STMODR; /*!< DAC Sawtooth Mode register, Address offset: 0x60 */ +} DAC_TypeDef; + +/** + * @brief Debug MCU + */ + +typedef struct +{ + __IO uint32_t IDCODE; /*!< MCU device ID code, Address offset: 0x00 */ + __IO uint32_t CR; /*!< Debug MCU configuration register, Address offset: 0x04 */ + __IO uint32_t APB1FZR1; /*!< Debug MCU APB1 freeze register 1, Address offset: 0x08 */ + __IO uint32_t APB1FZR2; /*!< Debug MCU APB1 freeze register 2, Address offset: 0x0C */ + __IO uint32_t APB2FZ; /*!< Debug MCU APB2 freeze register, Address offset: 0x10 */ +} DBGMCU_TypeDef; + +/** + * @brief DMA Controller + */ + +typedef struct +{ + __IO uint32_t CCR; /*!< DMA channel x configuration register */ + __IO uint32_t CNDTR; /*!< DMA channel x number of data register */ + __IO uint32_t CPAR; /*!< DMA channel x peripheral address register */ + __IO uint32_t CMAR; /*!< DMA channel x memory address register */ +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t ISR; /*!< DMA interrupt status register, Address offset: 0x00 */ + __IO uint32_t IFCR; /*!< DMA interrupt flag clear register, Address offset: 0x04 */ +} DMA_TypeDef; + +/** + * @brief DMA Multiplexer + */ + +typedef struct +{ + __IO uint32_t CCR; /*!< DMA Multiplexer Channel x Control Register Address offset: 0x0004 * (channel x) */ +}DMAMUX_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< DMA Channel Status Register Address offset: 0x0080 */ + __IO uint32_t CFR; /*!< DMA Channel Clear Flag Register Address offset: 0x0084 */ +}DMAMUX_ChannelStatus_TypeDef; + +typedef struct +{ + __IO uint32_t RGCR; /*!< DMA Request Generator x Control Register Address offset: 0x0100 + 0x0004 * (Req Gen x) */ +}DMAMUX_RequestGen_TypeDef; + +typedef struct +{ + __IO uint32_t RGSR; /*!< DMA Request Generator Status Register Address offset: 0x0140 */ + __IO uint32_t RGCFR; /*!< DMA Request Generator Clear Flag Register Address offset: 0x0144 */ +}DMAMUX_RequestGenStatus_TypeDef; + +/** + * @brief External Interrupt/Event Controller + */ + +typedef struct +{ + __IO uint32_t IMR1; /*!< EXTI Interrupt mask register 1, Address offset: 0x00 */ + __IO uint32_t EMR1; /*!< EXTI Event mask register 1, Address offset: 0x04 */ + __IO uint32_t RTSR1; /*!< EXTI Rising trigger selection register 1, Address offset: 0x08 */ + __IO uint32_t FTSR1; /*!< EXTI Falling trigger selection register 1, Address offset: 0x0C */ + __IO uint32_t SWIER1; /*!< EXTI Software interrupt event register 1, Address offset: 0x10 */ + __IO uint32_t PR1; /*!< EXTI Pending register 1, Address offset: 0x14 */ + uint32_t RESERVED1; /*!< Reserved, 0x18 */ + uint32_t RESERVED2; /*!< Reserved, 0x1C */ + __IO uint32_t IMR2; /*!< EXTI Interrupt mask register 2, Address offset: 0x20 */ + __IO uint32_t EMR2; /*!< EXTI Event mask register 2, Address offset: 0x24 */ + __IO uint32_t RTSR2; /*!< EXTI Rising trigger selection register 2, Address offset: 0x28 */ + __IO uint32_t FTSR2; /*!< EXTI Falling trigger selection register 2, Address offset: 0x2C */ + __IO uint32_t SWIER2; /*!< EXTI Software interrupt event register 2, Address offset: 0x30 */ + __IO uint32_t PR2; /*!< EXTI Pending register 2, Address offset: 0x34 */ +} EXTI_TypeDef; + +/** + * @brief FLASH Registers + */ + +typedef struct +{ + __IO uint32_t ACR; /*!< FLASH access control register, Address offset: 0x00 */ + __IO uint32_t PDKEYR; /*!< FLASH power down key register, Address offset: 0x04 */ + __IO uint32_t KEYR; /*!< FLASH key register, Address offset: 0x08 */ + __IO uint32_t OPTKEYR; /*!< FLASH option key register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< FLASH status register, Address offset: 0x10 */ + __IO uint32_t CR; /*!< FLASH control register, Address offset: 0x14 */ + __IO uint32_t ECCR; /*!< FLASH ECC register, Address offset: 0x18 */ + uint32_t RESERVED1; /*!< Reserved1, Address offset: 0x1C */ + __IO uint32_t OPTR; /*!< FLASH option register, Address offset: 0x20 */ + __IO uint32_t PCROP1SR; /*!< FLASH bank1 PCROP start address register, Address offset: 0x24 */ + __IO uint32_t PCROP1ER; /*!< FLASH bank1 PCROP end address register, Address offset: 0x28 */ + __IO uint32_t WRP1AR; /*!< FLASH bank1 WRP area A address register, Address offset: 0x2C */ + __IO uint32_t WRP1BR; /*!< FLASH bank1 WRP area B address register, Address offset: 0x30 */ + uint32_t RESERVED2[15]; /*!< Reserved2, Address offset: 0x34 */ + __IO uint32_t SEC1R; /*!< FLASH Securable memory register bank1, Address offset: 0x70 */ +} FLASH_TypeDef; + +/** + * @brief FMAC + */ +typedef struct +{ + __IO uint32_t X1BUFCFG; /*!< FMAC X1 Buffer Configuration register, Address offset: 0x00 */ + __IO uint32_t X2BUFCFG; /*!< FMAC X2 Buffer Configuration register, Address offset: 0x04 */ + __IO uint32_t YBUFCFG; /*!< FMAC Y Buffer Configuration register, Address offset: 0x08 */ + __IO uint32_t PARAM; /*!< FMAC Parameter register, Address offset: 0x0C */ + __IO uint32_t CR; /*!< FMAC Control register, Address offset: 0x10 */ + __IO uint32_t SR; /*!< FMAC Status register, Address offset: 0x14 */ + __IO uint32_t WDATA; /*!< FMAC Write Data register, Address offset: 0x18 */ + __IO uint32_t RDATA; /*!< FMAC Read Data register, Address offset: 0x1C */ +} FMAC_TypeDef; + + +/** + * @brief General Purpose I/O + */ + +typedef struct +{ + __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ + __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ + __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */ + __IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */ + __IO uint32_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */ + __IO uint32_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */ + __IO uint32_t BSRR; /*!< GPIO port bit set/reset register, Address offset: 0x18 */ + __IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */ + __IO uint32_t AFR[2]; /*!< GPIO alternate function registers, Address offset: 0x20-0x24 */ + __IO uint32_t BRR; /*!< GPIO Bit Reset register, Address offset: 0x28 */ +} GPIO_TypeDef; + +/** + * @brief Inter-integrated Circuit Interface + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< I2C Control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< I2C Control register 2, Address offset: 0x04 */ + __IO uint32_t OAR1; /*!< I2C Own address 1 register, Address offset: 0x08 */ + __IO uint32_t OAR2; /*!< I2C Own address 2 register, Address offset: 0x0C */ + __IO uint32_t TIMINGR; /*!< I2C Timing register, Address offset: 0x10 */ + __IO uint32_t TIMEOUTR; /*!< I2C Timeout register, Address offset: 0x14 */ + __IO uint32_t ISR; /*!< I2C Interrupt and status register, Address offset: 0x18 */ + __IO uint32_t ICR; /*!< I2C Interrupt clear register, Address offset: 0x1C */ + __IO uint32_t PECR; /*!< I2C PEC register, Address offset: 0x20 */ + __IO uint32_t RXDR; /*!< I2C Receive data register, Address offset: 0x24 */ + __IO uint32_t TXDR; /*!< I2C Transmit data register, Address offset: 0x28 */ +} I2C_TypeDef; + +/** + * @brief Independent WATCHDOG + */ + +typedef struct +{ + __IO uint32_t KR; /*!< IWDG Key register, Address offset: 0x00 */ + __IO uint32_t PR; /*!< IWDG Prescaler register, Address offset: 0x04 */ + __IO uint32_t RLR; /*!< IWDG Reload register, Address offset: 0x08 */ + __IO uint32_t SR; /*!< IWDG Status register, Address offset: 0x0C */ + __IO uint32_t WINR; /*!< IWDG Window register, Address offset: 0x10 */ +} IWDG_TypeDef; + +/** + * @brief LPTIMER + */ + +typedef struct +{ + __IO uint32_t ISR; /*!< LPTIM Interrupt and Status register, Address offset: 0x00 */ + __IO uint32_t ICR; /*!< LPTIM Interrupt Clear register, Address offset: 0x04 */ + __IO uint32_t IER; /*!< LPTIM Interrupt Enable register, Address offset: 0x08 */ + __IO uint32_t CFGR; /*!< LPTIM Configuration register, Address offset: 0x0C */ + __IO uint32_t CR; /*!< LPTIM Control register, Address offset: 0x10 */ + __IO uint32_t CMP; /*!< LPTIM Compare register, Address offset: 0x14 */ + __IO uint32_t ARR; /*!< LPTIM Autoreload register, Address offset: 0x18 */ + __IO uint32_t CNT; /*!< LPTIM Counter register, Address offset: 0x1C */ + __IO uint32_t OR; /*!< LPTIM Option register, Address offset: 0x20 */ +} LPTIM_TypeDef; + +/** + * @brief Operational Amplifier (OPAMP) + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< OPAMP control/status register, Address offset: 0x00 */ + __IO uint32_t RESERVED[5]; /*!< OPAMP offset trimming register for normal mode, Address offset: 0x04 */ + __IO uint32_t TCMR; /*!< OPAMP timer controlled mux mode register, Address offset: 0x18 */ +} OPAMP_TypeDef; + +/** + * @brief Power Control + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< PWR power control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< PWR power control register 2, Address offset: 0x04 */ + __IO uint32_t CR3; /*!< PWR power control register 3, Address offset: 0x08 */ + __IO uint32_t CR4; /*!< PWR power control register 4, Address offset: 0x0C */ + __IO uint32_t SR1; /*!< PWR power status register 1, Address offset: 0x10 */ + __IO uint32_t SR2; /*!< PWR power status register 2, Address offset: 0x14 */ + __IO uint32_t SCR; /*!< PWR power status reset register, Address offset: 0x18 */ + uint32_t RESERVED; /*!< Reserved, Address offset: 0x1C */ + __IO uint32_t PUCRA; /*!< Pull_up control register of portA, Address offset: 0x20 */ + __IO uint32_t PDCRA; /*!< Pull_Down control register of portA, Address offset: 0x24 */ + __IO uint32_t PUCRB; /*!< Pull_up control register of portB, Address offset: 0x28 */ + __IO uint32_t PDCRB; /*!< Pull_Down control register of portB, Address offset: 0x2C */ + __IO uint32_t PUCRC; /*!< Pull_up control register of portC, Address offset: 0x30 */ + __IO uint32_t PDCRC; /*!< Pull_Down control register of portC, Address offset: 0x34 */ + __IO uint32_t PUCRD; /*!< Pull_up control register of portD, Address offset: 0x38 */ + __IO uint32_t PDCRD; /*!< Pull_Down control register of portD, Address offset: 0x3C */ + __IO uint32_t PUCRE; /*!< Pull_up control register of portE, Address offset: 0x40 */ + __IO uint32_t PDCRE; /*!< Pull_Down control register of portE, Address offset: 0x44 */ + __IO uint32_t PUCRF; /*!< Pull_up control register of portF, Address offset: 0x48 */ + __IO uint32_t PDCRF; /*!< Pull_Down control register of portF, Address offset: 0x4C */ + __IO uint32_t PUCRG; /*!< Pull_up control register of portG, Address offset: 0x50 */ + __IO uint32_t PDCRG; /*!< Pull_Down control register of portG, Address offset: 0x54 */ + uint32_t RESERVED1[10]; /*!< Reserved Address offset: 0x58 - 0x7C */ + __IO uint32_t CR5; /*!< PWR power control register 5, Address offset: 0x80 */ +} PWR_TypeDef; + + +/** + * @brief Reset and Clock Control + */ + +typedef struct +{ + __IO uint32_t CR; /*!< RCC clock control register, Address offset: 0x00 */ + __IO uint32_t ICSCR; /*!< RCC internal clock sources calibration register, Address offset: 0x04 */ + __IO uint32_t CFGR; /*!< RCC clock configuration register, Address offset: 0x08 */ + __IO uint32_t PLLCFGR; /*!< RCC system PLL configuration register, Address offset: 0x0C */ + uint32_t RESERVED0; /*!< Reserved, Address offset: 0x10 */ + uint32_t RESERVED1; /*!< Reserved, Address offset: 0x14 */ + __IO uint32_t CIER; /*!< RCC clock interrupt enable register, Address offset: 0x18 */ + __IO uint32_t CIFR; /*!< RCC clock interrupt flag register, Address offset: 0x1C */ + __IO uint32_t CICR; /*!< RCC clock interrupt clear register, Address offset: 0x20 */ + uint32_t RESERVED2; /*!< Reserved, Address offset: 0x24 */ + __IO uint32_t AHB1RSTR; /*!< RCC AHB1 peripheral reset register, Address offset: 0x28 */ + __IO uint32_t AHB2RSTR; /*!< RCC AHB2 peripheral reset register, Address offset: 0x2C */ + __IO uint32_t AHB3RSTR; /*!< RCC AHB3 peripheral reset register, Address offset: 0x30 */ + uint32_t RESERVED3; /*!< Reserved, Address offset: 0x34 */ + __IO uint32_t APB1RSTR1; /*!< RCC APB1 peripheral reset register 1, Address offset: 0x38 */ + __IO uint32_t APB1RSTR2; /*!< RCC APB1 peripheral reset register 2, Address offset: 0x3C */ + __IO uint32_t APB2RSTR; /*!< RCC APB2 peripheral reset register, Address offset: 0x40 */ + uint32_t RESERVED4; /*!< Reserved, Address offset: 0x44 */ + __IO uint32_t AHB1ENR; /*!< RCC AHB1 peripheral clocks enable register, Address offset: 0x48 */ + __IO uint32_t AHB2ENR; /*!< RCC AHB2 peripheral clocks enable register, Address offset: 0x4C */ + __IO uint32_t AHB3ENR; /*!< RCC AHB3 peripheral clocks enable register, Address offset: 0x50 */ + uint32_t RESERVED5; /*!< Reserved, Address offset: 0x54 */ + __IO uint32_t APB1ENR1; /*!< RCC APB1 peripheral clocks enable register 1, Address offset: 0x58 */ + __IO uint32_t APB1ENR2; /*!< RCC APB1 peripheral clocks enable register 2, Address offset: 0x5C */ + __IO uint32_t APB2ENR; /*!< RCC APB2 peripheral clocks enable register, Address offset: 0x60 */ + uint32_t RESERVED6; /*!< Reserved, Address offset: 0x64 */ + __IO uint32_t AHB1SMENR; /*!< RCC AHB1 peripheral clocks enable in sleep and stop modes register, Address offset: 0x68 */ + __IO uint32_t AHB2SMENR; /*!< RCC AHB2 peripheral clocks enable in sleep and stop modes register, Address offset: 0x6C */ + __IO uint32_t AHB3SMENR; /*!< RCC AHB3 peripheral clocks enable in sleep and stop modes register, Address offset: 0x70 */ + uint32_t RESERVED7; /*!< Reserved, Address offset: 0x74 */ + __IO uint32_t APB1SMENR1; /*!< RCC APB1 peripheral clocks enable in sleep mode and stop modes register 1, Address offset: 0x78 */ + __IO uint32_t APB1SMENR2; /*!< RCC APB1 peripheral clocks enable in sleep mode and stop modes register 2, Address offset: 0x7C */ + __IO uint32_t APB2SMENR; /*!< RCC APB2 peripheral clocks enable in sleep mode and stop modes register, Address offset: 0x80 */ + uint32_t RESERVED8; /*!< Reserved, Address offset: 0x84 */ + __IO uint32_t CCIPR; /*!< RCC peripherals independent clock configuration register, Address offset: 0x88 */ + uint32_t RESERVED9; /*!< Reserved, Address offset: 0x8C */ + __IO uint32_t BDCR; /*!< RCC backup domain control register, Address offset: 0x90 */ + __IO uint32_t CSR; /*!< RCC clock control & status register, Address offset: 0x94 */ + __IO uint32_t CRRCR; /*!< RCC clock recovery RC register, Address offset: 0x98 */ + __IO uint32_t CCIPR2; /*!< RCC peripherals independent clock configuration register 2, Address offset: 0x9C */ +} RCC_TypeDef; + +/** + * @brief Real-Time Clock + */ +/* +* @brief Specific device feature definitions +*/ +#define RTC_TAMP_INT_6_SUPPORT +#define RTC_TAMP_INT_NB 4u + +#define RTC_TAMP_NB 3u +#define RTC_BACKUP_NB 16u + + +typedef struct +{ + __IO uint32_t TR; /*!< RTC time register, Address offset: 0x00 */ + __IO uint32_t DR; /*!< RTC date register, Address offset: 0x04 */ + __IO uint32_t SSR; /*!< RTC sub second register, Address offset: 0x08 */ + __IO uint32_t ICSR; /*!< RTC initialization control and status register, Address offset: 0x0C */ + __IO uint32_t PRER; /*!< RTC prescaler register, Address offset: 0x10 */ + __IO uint32_t WUTR; /*!< RTC wakeup timer register, Address offset: 0x14 */ + __IO uint32_t CR; /*!< RTC control register, Address offset: 0x18 */ + uint32_t RESERVED0; /*!< Reserved Address offset: 0x1C */ + uint32_t RESERVED1; /*!< Reserved Address offset: 0x20 */ + __IO uint32_t WPR; /*!< RTC write protection register, Address offset: 0x24 */ + __IO uint32_t CALR; /*!< RTC calibration register, Address offset: 0x28 */ + __IO uint32_t SHIFTR; /*!< RTC shift control register, Address offset: 0x2C */ + __IO uint32_t TSTR; /*!< RTC time stamp time register, Address offset: 0x30 */ + __IO uint32_t TSDR; /*!< RTC time stamp date register, Address offset: 0x34 */ + __IO uint32_t TSSSR; /*!< RTC time-stamp sub second register, Address offset: 0x38 */ + uint32_t RESERVED2; /*!< Reserved Address offset: 0x3C */ + __IO uint32_t ALRMAR; /*!< RTC alarm A register, Address offset: 0x40 */ + __IO uint32_t ALRMASSR; /*!< RTC alarm A sub second register, Address offset: 0x44 */ + __IO uint32_t ALRMBR; /*!< RTC alarm B register, Address offset: 0x48 */ + __IO uint32_t ALRMBSSR; /*!< RTC alarm B sub second register, Address offset: 0x4C */ + __IO uint32_t SR; /*!< RTC Status register, Address offset: 0x50 */ + __IO uint32_t MISR; /*!< RTC Masked Interrupt Status register, Address offset: 0x54 */ + uint32_t RESERVED3; /*!< Reserved Address offset: 0x58 */ + __IO uint32_t SCR; /*!< RTC Status Clear register, Address offset: 0x5C */ +} RTC_TypeDef; + +/** + * @brief Tamper and backup registers + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< TAMP configuration register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< TAMP configuration register 2, Address offset: 0x04 */ + uint32_t RESERVED0; /*!< no configuration register 3, Address offset: 0x08 */ + __IO uint32_t FLTCR; /*!< TAMP filter control register, Address offset: 0x0C */ + uint32_t RESERVED1[6]; /*!< Reserved Address offset: 0x10 - 0x24 */ + uint32_t RESERVED2; /*!< Reserved Address offset: 0x28 */ + __IO uint32_t IER; /*!< TAMP Interrupt enable register, Address offset: 0x2C */ + __IO uint32_t SR; /*!< TAMP Status register, Address offset: 0x30 */ + __IO uint32_t MISR; /*!< TAMP Masked Interrupt Status register Address offset: 0x34 */ + uint32_t RESERVED3; /*!< Reserved Address offset: 0x38 */ + __IO uint32_t SCR; /*!< TAMP Status clear register, Address offset: 0x3C */ + uint32_t RESERVED4[48]; /*!< Reserved Address offset: 0x040 - 0xFC */ + __IO uint32_t BKP0R; /*!< TAMP backup register 0, Address offset: 0x100 */ + __IO uint32_t BKP1R; /*!< TAMP backup register 1, Address offset: 0x104 */ + __IO uint32_t BKP2R; /*!< TAMP backup register 2, Address offset: 0x108 */ + __IO uint32_t BKP3R; /*!< TAMP backup register 3, Address offset: 0x10C */ + __IO uint32_t BKP4R; /*!< TAMP backup register 4, Address offset: 0x110 */ + __IO uint32_t BKP5R; /*!< TAMP backup register 5, Address offset: 0x114 */ + __IO uint32_t BKP6R; /*!< TAMP backup register 6, Address offset: 0x118 */ + __IO uint32_t BKP7R; /*!< TAMP backup register 7, Address offset: 0x11C */ + __IO uint32_t BKP8R; /*!< TAMP backup register 8, Address offset: 0x120 */ + __IO uint32_t BKP9R; /*!< TAMP backup register 9, Address offset: 0x124 */ + __IO uint32_t BKP10R; /*!< TAMP backup register 10, Address offset: 0x128 */ + __IO uint32_t BKP11R; /*!< TAMP backup register 11, Address offset: 0x12C */ + __IO uint32_t BKP12R; /*!< TAMP backup register 12, Address offset: 0x130 */ + __IO uint32_t BKP13R; /*!< TAMP backup register 13, Address offset: 0x134 */ + __IO uint32_t BKP14R; /*!< TAMP backup register 14, Address offset: 0x138 */ + __IO uint32_t BKP15R; /*!< TAMP backup register 15, Address offset: 0x13C */ +} TAMP_TypeDef; + +/** + * @brief Serial Audio Interface + */ + +typedef struct +{ + uint32_t RESERVED[17]; /*!< Reserved, Address offset: 0x00 to 0x40 */ + __IO uint32_t PDMCR; /*!< SAI PDM control register, Address offset: 0x44 */ + __IO uint32_t PDMDLY; /*!< SAI PDM delay register, Address offset: 0x48 */ +} SAI_TypeDef; + +typedef struct +{ + __IO uint32_t CR1; /*!< SAI block x configuration register 1, Address offset: 0x04 */ + __IO uint32_t CR2; /*!< SAI block x configuration register 2, Address offset: 0x08 */ + __IO uint32_t FRCR; /*!< SAI block x frame configuration register, Address offset: 0x0C */ + __IO uint32_t SLOTR; /*!< SAI block x slot register, Address offset: 0x10 */ + __IO uint32_t IMR; /*!< SAI block x interrupt mask register, Address offset: 0x14 */ + __IO uint32_t SR; /*!< SAI block x status register, Address offset: 0x18 */ + __IO uint32_t CLRFR; /*!< SAI block x clear flag register, Address offset: 0x1C */ + __IO uint32_t DR; /*!< SAI block x data register, Address offset: 0x20 */ +} SAI_Block_TypeDef; + +/** + * @brief Serial Peripheral Interface + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< SPI Control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< SPI Control register 2, Address offset: 0x04 */ + __IO uint32_t SR; /*!< SPI Status register, Address offset: 0x08 */ + __IO uint32_t DR; /*!< SPI data register, Address offset: 0x0C */ + __IO uint32_t CRCPR; /*!< SPI CRC polynomial register, Address offset: 0x10 */ + __IO uint32_t RXCRCR; /*!< SPI Rx CRC register, Address offset: 0x14 */ + __IO uint32_t TXCRCR; /*!< SPI Tx CRC register, Address offset: 0x18 */ + __IO uint32_t I2SCFGR; /*!< SPI_I2S configuration register, Address offset: 0x1C */ + __IO uint32_t I2SPR; /*!< SPI_I2S prescaler register, Address offset: 0x20 */ +} SPI_TypeDef; + +/** + * @brief System configuration controller + */ + +typedef struct +{ + __IO uint32_t MEMRMP; /*!< SYSCFG memory remap register, Address offset: 0x00 */ + __IO uint32_t CFGR1; /*!< SYSCFG configuration register 1, Address offset: 0x04 */ + __IO uint32_t EXTICR[4]; /*!< SYSCFG external interrupt configuration registers, Address offset: 0x08-0x14 */ + __IO uint32_t SCSR; /*!< SYSCFG CCMSRAM control and status register, Address offset: 0x18 */ + __IO uint32_t CFGR2; /*!< SYSCFG configuration register 2, Address offset: 0x1C */ + __IO uint32_t SWPR; /*!< SYSCFG CCMSRAM write protection register, Address offset: 0x20 */ + __IO uint32_t SKR; /*!< SYSCFG CCMSRAM Key Register, Address offset: 0x24 */ +} SYSCFG_TypeDef; + +/** + * @brief TIM + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< TIM control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< TIM control register 2, Address offset: 0x04 */ + __IO uint32_t SMCR; /*!< TIM slave mode control register, Address offset: 0x08 */ + __IO uint32_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< TIM status register, Address offset: 0x10 */ + __IO uint32_t EGR; /*!< TIM event generation register, Address offset: 0x14 */ + __IO uint32_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */ + __IO uint32_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */ + __IO uint32_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */ + __IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */ + __IO uint32_t PSC; /*!< TIM prescaler, Address offset: 0x28 */ + __IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */ + __IO uint32_t RCR; /*!< TIM repetition counter register, Address offset: 0x30 */ + __IO uint32_t CCR1; /*!< TIM capture/compare register 1, Address offset: 0x34 */ + __IO uint32_t CCR2; /*!< TIM capture/compare register 2, Address offset: 0x38 */ + __IO uint32_t CCR3; /*!< TIM capture/compare register 3, Address offset: 0x3C */ + __IO uint32_t CCR4; /*!< TIM capture/compare register 4, Address offset: 0x40 */ + __IO uint32_t BDTR; /*!< TIM break and dead-time register, Address offset: 0x44 */ + __IO uint32_t CCR5; /*!< TIM capture/compare register 5, Address offset: 0x48 */ + __IO uint32_t CCR6; /*!< TIM capture/compare register 6, Address offset: 0x4C */ + __IO uint32_t CCMR3; /*!< TIM capture/compare mode register 3, Address offset: 0x50 */ + __IO uint32_t DTR2; /*!< TIM deadtime register 2, Address offset: 0x54 */ + __IO uint32_t ECR; /*!< TIM encoder control register, Address offset: 0x58 */ + __IO uint32_t TISEL; /*!< TIM Input Selection register, Address offset: 0x5C */ + __IO uint32_t AF1; /*!< TIM alternate function option register 1, Address offset: 0x60 */ + __IO uint32_t AF2; /*!< TIM alternate function option register 2, Address offset: 0x64 */ + __IO uint32_t OR ; /*!< TIM option register, Address offset: 0x68 */ + uint32_t RESERVED0[220];/*!< Reserved, Address offset: 0x6C */ + __IO uint32_t DCR; /*!< TIM DMA control register, Address offset: 0x3DC */ + __IO uint32_t DMAR; /*!< TIM DMA address for full transfer, Address offset: 0x3E0 */ +} TIM_TypeDef; + +/** + * @brief Universal Synchronous Asynchronous Receiver Transmitter + */ +typedef struct +{ + __IO uint32_t CR1; /*!< USART Control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< USART Control register 2, Address offset: 0x04 */ + __IO uint32_t CR3; /*!< USART Control register 3, Address offset: 0x08 */ + __IO uint32_t BRR; /*!< USART Baud rate register, Address offset: 0x0C */ + __IO uint32_t GTPR; /*!< USART Guard time and prescaler register, Address offset: 0x10 */ + __IO uint32_t RTOR; /*!< USART Receiver Timeout register, Address offset: 0x14 */ + __IO uint32_t RQR; /*!< USART Request register, Address offset: 0x18 */ + __IO uint32_t ISR; /*!< USART Interrupt and status register, Address offset: 0x1C */ + __IO uint32_t ICR; /*!< USART Interrupt flag Clear register, Address offset: 0x20 */ + __IO uint32_t RDR; /*!< USART Receive Data register, Address offset: 0x24 */ + __IO uint32_t TDR; /*!< USART Transmit Data register, Address offset: 0x28 */ + __IO uint32_t PRESC; /*!< USART Prescaler register, Address offset: 0x2C */ +} USART_TypeDef; + +/** + * @brief Universal Serial Bus Full Speed Device + */ + +typedef struct +{ + __IO uint16_t EP0R; /*!< USB Endpoint 0 register, Address offset: 0x00 */ + __IO uint16_t RESERVED0; /*!< Reserved */ + __IO uint16_t EP1R; /*!< USB Endpoint 1 register, Address offset: 0x04 */ + __IO uint16_t RESERVED1; /*!< Reserved */ + __IO uint16_t EP2R; /*!< USB Endpoint 2 register, Address offset: 0x08 */ + __IO uint16_t RESERVED2; /*!< Reserved */ + __IO uint16_t EP3R; /*!< USB Endpoint 3 register, Address offset: 0x0C */ + __IO uint16_t RESERVED3; /*!< Reserved */ + __IO uint16_t EP4R; /*!< USB Endpoint 4 register, Address offset: 0x10 */ + __IO uint16_t RESERVED4; /*!< Reserved */ + __IO uint16_t EP5R; /*!< USB Endpoint 5 register, Address offset: 0x14 */ + __IO uint16_t RESERVED5; /*!< Reserved */ + __IO uint16_t EP6R; /*!< USB Endpoint 6 register, Address offset: 0x18 */ + __IO uint16_t RESERVED6; /*!< Reserved */ + __IO uint16_t EP7R; /*!< USB Endpoint 7 register, Address offset: 0x1C */ + __IO uint16_t RESERVED7[17]; /*!< Reserved */ + __IO uint16_t CNTR; /*!< Control register, Address offset: 0x40 */ + __IO uint16_t RESERVED8; /*!< Reserved */ + __IO uint16_t ISTR; /*!< Interrupt status register, Address offset: 0x44 */ + __IO uint16_t RESERVED9; /*!< Reserved */ + __IO uint16_t FNR; /*!< Frame number register, Address offset: 0x48 */ + __IO uint16_t RESERVEDA; /*!< Reserved */ + __IO uint16_t DADDR; /*!< Device address register, Address offset: 0x4C */ + __IO uint16_t RESERVEDB; /*!< Reserved */ + __IO uint16_t BTABLE; /*!< Buffer Table address register, Address offset: 0x50 */ + __IO uint16_t RESERVEDC; /*!< Reserved */ + __IO uint16_t LPMCSR; /*!< LPM Control and Status register, Address offset: 0x54 */ + __IO uint16_t RESERVEDD; /*!< Reserved */ + __IO uint16_t BCDR; /*!< Battery Charging detector register, Address offset: 0x58 */ + __IO uint16_t RESERVEDE; /*!< Reserved */ +} USB_TypeDef; + +/** + * @brief VREFBUF + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< VREFBUF control and status register, Address offset: 0x00 */ + __IO uint32_t CCR; /*!< VREFBUF calibration and control register, Address offset: 0x04 */ +} VREFBUF_TypeDef; + +/** + * @brief Window WATCHDOG + */ + +typedef struct +{ + __IO uint32_t CR; /*!< WWDG Control register, Address offset: 0x00 */ + __IO uint32_t CFR; /*!< WWDG Configuration register, Address offset: 0x04 */ + __IO uint32_t SR; /*!< WWDG Status register, Address offset: 0x08 */ +} WWDG_TypeDef; + + +/** + * @brief RNG + */ +typedef struct +{ + __IO uint32_t CR; /*!< RNG control register, Address offset: 0x00 */ + __IO uint32_t SR; /*!< RNG status register, Address offset: 0x04 */ + __IO uint32_t DR; /*!< RNG data register, Address offset: 0x08 */ +} RNG_TypeDef; + +/** + * @brief CORDIC + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< CORDIC control and status register, Address offset: 0x00 */ + __IO uint32_t WDATA; /*!< CORDIC argument register, Address offset: 0x04 */ + __IO uint32_t RDATA; /*!< CORDIC result register, Address offset: 0x08 */ +} CORDIC_TypeDef; + +/** + * @brief UCPD + */ + +typedef struct +{ + __IO uint32_t CFG1; /*!< UCPD configuration register 1, Address offset: 0x00 */ + __IO uint32_t CFG2; /*!< UCPD configuration register 2, Address offset: 0x04 */ + __IO uint32_t RESERVED0; /*!< UCPD reserved register, Address offset: 0x08 */ + __IO uint32_t CR; /*!< UCPD control register, Address offset: 0x0C */ + __IO uint32_t IMR; /*!< UCPD interrupt mask register, Address offset: 0x10 */ + __IO uint32_t SR; /*!< UCPD status register, Address offset: 0x14 */ + __IO uint32_t ICR; /*!< UCPD interrupt flag clear register Address offset: 0x18 */ + __IO uint32_t TX_ORDSET; /*!< UCPD Tx ordered set type register, Address offset: 0x1C */ + __IO uint32_t TX_PAYSZ; /*!< UCPD Tx payload size register, Address offset: 0x20 */ + __IO uint32_t TXDR; /*!< UCPD Tx data register, Address offset: 0x24 */ + __IO uint32_t RX_ORDSET; /*!< UCPD Rx ordered set type register, Address offset: 0x28 */ + __IO uint32_t RX_PAYSZ; /*!< UCPD Rx payload size register, Address offset: 0x2C */ + __IO uint32_t RXDR; /*!< UCPD Rx data register, Address offset: 0x30 */ + __IO uint32_t RX_ORDEXT1; /*!< UCPD Rx ordered set extension 1 register, Address offset: 0x34 */ + __IO uint32_t RX_ORDEXT2; /*!< UCPD Rx ordered set extension 2 register, Address offset: 0x38 */ +} UCPD_TypeDef; + + +/** + * @} + */ + +/** @addtogroup Peripheral_memory_map + * @{ + */ + +#define FLASH_BASE (0x08000000UL) /*!< FLASH (up to 128 kB) base address */ +#define SRAM1_BASE (0x20000000UL) /*!< SRAM1(up to 16 KB) base address */ +#define SRAM2_BASE (0x20004000UL) /*!< SRAM2(6 KB) base address */ +#define CCMSRAM_BASE (0x10000000UL) /*!< CCMSRAM(10 KB) base address */ +#define PERIPH_BASE (0x40000000UL) /*!< Peripheral base address */ + +#define SRAM1_BB_BASE (0x22000000UL) /*!< SRAM1(16 KB) base address in the bit-band region */ +#define SRAM2_BB_BASE (0x22080000UL) /*!< SRAM2(6 KB) base address in the bit-band region */ +#define CCMSRAM_BB_BASE (0x220B0000UL) /*!< CCMSRAM(10 KB) base address in the bit-band region */ +#define PERIPH_BB_BASE (0x42000000UL) /*!< Peripheral base address in the bit-band region */ +/* Legacy defines */ +#define SRAM_BASE SRAM1_BASE +#define SRAM_BB_BASE SRAM1_BB_BASE + +#define SRAM1_SIZE_MAX (0x00004000UL) /*!< maximum SRAM1 size (up to 16 KBytes) */ +#define SRAM2_SIZE (0x00001800UL) /*!< SRAM2 size (6 KBytes) */ +#define CCMSRAM_SIZE (0x00002800UL) /*!< CCMSRAM size (10 KBytes) */ + +/*!< Peripheral memory map */ +#define APB1PERIPH_BASE PERIPH_BASE +#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000UL) +#define AHB1PERIPH_BASE (PERIPH_BASE + 0x00020000UL) +#define AHB2PERIPH_BASE (PERIPH_BASE + 0x08000000UL) + + +/*!< APB1 peripherals */ +#define TIM2_BASE (APB1PERIPH_BASE + 0x0000UL) +#define TIM3_BASE (APB1PERIPH_BASE + 0x0400UL) +#define TIM4_BASE (APB1PERIPH_BASE + 0x0800UL) +#define TIM6_BASE (APB1PERIPH_BASE + 0x1000UL) +#define TIM7_BASE (APB1PERIPH_BASE + 0x1400UL) +#define CRS_BASE (APB1PERIPH_BASE + 0x2000UL) +#define TAMP_BASE (APB1PERIPH_BASE + 0x2400UL) +#define RTC_BASE (APB1PERIPH_BASE + 0x2800UL) +#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00UL) +#define IWDG_BASE (APB1PERIPH_BASE + 0x3000UL) +#define SPI2_BASE (APB1PERIPH_BASE + 0x3800UL) +#define SPI3_BASE (APB1PERIPH_BASE + 0x3C00UL) +#define USART2_BASE (APB1PERIPH_BASE + 0x4400UL) +#define USART3_BASE (APB1PERIPH_BASE + 0x4800UL) +#define UART4_BASE (APB1PERIPH_BASE + 0x4C00UL) +#define I2C1_BASE (APB1PERIPH_BASE + 0x5400UL) +#define I2C2_BASE (APB1PERIPH_BASE + 0x5800UL) +#define USB_BASE (APB1PERIPH_BASE + 0x5C00UL) /*!< USB_IP Peripheral Registers base address */ +#define USB_PMAADDR (APB1PERIPH_BASE + 0x6000UL) /*!< USB_IP Packet Memory Area base address */ +#define FDCAN1_BASE (APB1PERIPH_BASE + 0x6400UL) +#define FDCAN_CONFIG_BASE (APB1PERIPH_BASE + 0x6500UL) /*!< FDCAN configuration registers base address */ +#define PWR_BASE (APB1PERIPH_BASE + 0x7000UL) +#define I2C3_BASE (APB1PERIPH_BASE + 0x7800UL) +#define LPTIM1_BASE (APB1PERIPH_BASE + 0x7C00UL) +#define LPUART1_BASE (APB1PERIPH_BASE + 0x8000UL) +#define UCPD1_BASE (APB1PERIPH_BASE + 0xA000UL) +#define SRAMCAN_BASE (APB1PERIPH_BASE + 0xA400UL) + +/*!< APB2 peripherals */ +#define SYSCFG_BASE (APB2PERIPH_BASE + 0x0000UL) +#define VREFBUF_BASE (APB2PERIPH_BASE + 0x0030UL) +#define COMP1_BASE (APB2PERIPH_BASE + 0x0200UL) +#define COMP2_BASE (APB2PERIPH_BASE + 0x0204UL) +#define COMP3_BASE (APB2PERIPH_BASE + 0x0208UL) +#define COMP4_BASE (APB2PERIPH_BASE + 0x020CUL) +#define OPAMP_BASE (APB2PERIPH_BASE + 0x0300UL) +#define OPAMP1_BASE (APB2PERIPH_BASE + 0x0300UL) +#define OPAMP2_BASE (APB2PERIPH_BASE + 0x0304UL) +#define OPAMP3_BASE (APB2PERIPH_BASE + 0x0308UL) + +#define EXTI_BASE (APB2PERIPH_BASE + 0x0400UL) +#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00UL) +#define SPI1_BASE (APB2PERIPH_BASE + 0x3000UL) +#define TIM8_BASE (APB2PERIPH_BASE + 0x3400UL) +#define USART1_BASE (APB2PERIPH_BASE + 0x3800UL) +#define TIM15_BASE (APB2PERIPH_BASE + 0x4000UL) +#define TIM16_BASE (APB2PERIPH_BASE + 0x4400UL) +#define TIM17_BASE (APB2PERIPH_BASE + 0x4800UL) +#define SAI1_BASE (APB2PERIPH_BASE + 0x5400UL) +#define SAI1_Block_A_BASE (SAI1_BASE + 0x0004UL) +#define SAI1_Block_B_BASE (SAI1_BASE + 0x0024UL) + +/*!< AHB1 peripherals */ +#define DMA1_BASE (AHB1PERIPH_BASE) +#define DMA2_BASE (AHB1PERIPH_BASE + 0x0400UL) +#define DMAMUX1_BASE (AHB1PERIPH_BASE + 0x0800UL) +#define CORDIC_BASE (AHB1PERIPH_BASE + 0x0C00UL) +#define RCC_BASE (AHB1PERIPH_BASE + 0x1000UL) +#define FMAC_BASE (AHB1PERIPH_BASE + 0x1400UL) +#define FLASH_R_BASE (AHB1PERIPH_BASE + 0x2000UL) +#define CRC_BASE (AHB1PERIPH_BASE + 0x3000UL) + +#define DMA1_Channel1_BASE (DMA1_BASE + 0x0008UL) +#define DMA1_Channel2_BASE (DMA1_BASE + 0x001CUL) +#define DMA1_Channel3_BASE (DMA1_BASE + 0x0030UL) +#define DMA1_Channel4_BASE (DMA1_BASE + 0x0044UL) +#define DMA1_Channel5_BASE (DMA1_BASE + 0x0058UL) +#define DMA1_Channel6_BASE (DMA1_BASE + 0x006CUL) + +#define DMA2_Channel1_BASE (DMA2_BASE + 0x0008UL) +#define DMA2_Channel2_BASE (DMA2_BASE + 0x001CUL) +#define DMA2_Channel3_BASE (DMA2_BASE + 0x0030UL) +#define DMA2_Channel4_BASE (DMA2_BASE + 0x0044UL) +#define DMA2_Channel5_BASE (DMA2_BASE + 0x0058UL) +#define DMA2_Channel6_BASE (DMA2_BASE + 0x006CUL) + +#define DMAMUX1_Channel0_BASE (DMAMUX1_BASE) +#define DMAMUX1_Channel1_BASE (DMAMUX1_BASE + 0x0004UL) +#define DMAMUX1_Channel2_BASE (DMAMUX1_BASE + 0x0008UL) +#define DMAMUX1_Channel3_BASE (DMAMUX1_BASE + 0x000CUL) +#define DMAMUX1_Channel4_BASE (DMAMUX1_BASE + 0x0010UL) +#define DMAMUX1_Channel5_BASE (DMAMUX1_BASE + 0x0014UL) +#define DMAMUX1_Channel6_BASE (DMAMUX1_BASE + 0x0020UL) +#define DMAMUX1_Channel7_BASE (DMAMUX1_BASE + 0x0024UL) +#define DMAMUX1_Channel8_BASE (DMAMUX1_BASE + 0x0028UL) +#define DMAMUX1_Channel9_BASE (DMAMUX1_BASE + 0x002CUL) +#define DMAMUX1_Channel10_BASE (DMAMUX1_BASE + 0x0030UL) +#define DMAMUX1_Channel11_BASE (DMAMUX1_BASE + 0x0034UL) +#define DMAMUX1_RequestGenerator0_BASE (DMAMUX1_BASE + 0x0100UL) +#define DMAMUX1_RequestGenerator1_BASE (DMAMUX1_BASE + 0x0104UL) +#define DMAMUX1_RequestGenerator2_BASE (DMAMUX1_BASE + 0x0108UL) +#define DMAMUX1_RequestGenerator3_BASE (DMAMUX1_BASE + 0x010CUL) + +#define DMAMUX1_ChannelStatus_BASE (DMAMUX1_BASE + 0x0080UL) +#define DMAMUX1_RequestGenStatus_BASE (DMAMUX1_BASE + 0x0140UL) + +/*!< AHB2 peripherals */ +#define GPIOA_BASE (AHB2PERIPH_BASE + 0x0000UL) +#define GPIOB_BASE (AHB2PERIPH_BASE + 0x0400UL) +#define GPIOC_BASE (AHB2PERIPH_BASE + 0x0800UL) +#define GPIOD_BASE (AHB2PERIPH_BASE + 0x0C00UL) +#define GPIOE_BASE (AHB2PERIPH_BASE + 0x1000UL) +#define GPIOF_BASE (AHB2PERIPH_BASE + 0x1400UL) +#define GPIOG_BASE (AHB2PERIPH_BASE + 0x1800UL) + +#define ADC1_BASE (AHB2PERIPH_BASE + 0x08000000UL) +#define ADC2_BASE (AHB2PERIPH_BASE + 0x08000100UL) +#define ADC12_COMMON_BASE (AHB2PERIPH_BASE + 0x08000300UL) + +#define DAC_BASE (AHB2PERIPH_BASE + 0x08000800UL) +#define DAC1_BASE (AHB2PERIPH_BASE + 0x08000800UL) +#define DAC3_BASE (AHB2PERIPH_BASE + 0x08001000UL) + +#define RNG_BASE (AHB2PERIPH_BASE + 0x08060800UL) +/* Debug MCU registers base address */ +#define DBGMCU_BASE (0xE0042000UL) + +#define PACKAGE_BASE (0x1FFF7500UL) /*!< Package data register base address */ +#define UID_BASE (0x1FFF7590UL) /*!< Unique device ID register base address */ +#define FLASHSIZE_BASE (0x1FFF75E0UL) /*!< Flash size data register base address */ +/** + * @} + */ + +/** @addtogroup Peripheral_declaration + * @{ + */ +#define TIM2 ((TIM_TypeDef *) TIM2_BASE) +#define TIM3 ((TIM_TypeDef *) TIM3_BASE) +#define TIM4 ((TIM_TypeDef *) TIM4_BASE) +#define TIM6 ((TIM_TypeDef *) TIM6_BASE) +#define TIM7 ((TIM_TypeDef *) TIM7_BASE) +#define CRS ((CRS_TypeDef *) CRS_BASE) +#define TAMP ((TAMP_TypeDef *) TAMP_BASE) +#define RTC ((RTC_TypeDef *) RTC_BASE) +#define WWDG ((WWDG_TypeDef *) WWDG_BASE) +#define IWDG ((IWDG_TypeDef *) IWDG_BASE) +#define SPI2 ((SPI_TypeDef *) SPI2_BASE) +#define SPI3 ((SPI_TypeDef *) SPI3_BASE) +#define USART2 ((USART_TypeDef *) USART2_BASE) +#define USART3 ((USART_TypeDef *) USART3_BASE) +#define UART4 ((USART_TypeDef *) UART4_BASE) +#define I2C1 ((I2C_TypeDef *) I2C1_BASE) +#define I2C2 ((I2C_TypeDef *) I2C2_BASE) +#define USB ((USB_TypeDef *) USB_BASE) +#define FDCAN1 ((FDCAN_GlobalTypeDef *) FDCAN1_BASE) +#define FDCAN_CONFIG ((FDCAN_Config_TypeDef *) FDCAN_CONFIG_BASE) +#define PWR ((PWR_TypeDef *) PWR_BASE) +#define I2C3 ((I2C_TypeDef *) I2C3_BASE) +#define LPTIM1 ((LPTIM_TypeDef *) LPTIM1_BASE) +#define LPUART1 ((USART_TypeDef *) LPUART1_BASE) +#define UCPD1 ((UCPD_TypeDef *) UCPD1_BASE) + +#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) +#define VREFBUF ((VREFBUF_TypeDef *) VREFBUF_BASE) +#define COMP1 ((COMP_TypeDef *) COMP1_BASE) +#define COMP2 ((COMP_TypeDef *) COMP2_BASE) +#define COMP3 ((COMP_TypeDef *) COMP3_BASE) +#define COMP4 ((COMP_TypeDef *) COMP4_BASE) + +#define OPAMP ((OPAMP_TypeDef *) OPAMP_BASE) +#define OPAMP1 ((OPAMP_TypeDef *) OPAMP1_BASE) +#define OPAMP2 ((OPAMP_TypeDef *) OPAMP2_BASE) +#define OPAMP3 ((OPAMP_TypeDef *) OPAMP3_BASE) + +#define EXTI ((EXTI_TypeDef *) EXTI_BASE) +#define TIM1 ((TIM_TypeDef *) TIM1_BASE) +#define SPI1 ((SPI_TypeDef *) SPI1_BASE) +#define TIM8 ((TIM_TypeDef *) TIM8_BASE) +#define USART1 ((USART_TypeDef *) USART1_BASE) +#define TIM15 ((TIM_TypeDef *) TIM15_BASE) +#define TIM16 ((TIM_TypeDef *) TIM16_BASE) +#define TIM17 ((TIM_TypeDef *) TIM17_BASE) +#define SAI1 ((SAI_TypeDef *) SAI1_BASE) +#define SAI1_Block_A ((SAI_Block_TypeDef *)SAI1_Block_A_BASE) +#define SAI1_Block_B ((SAI_Block_TypeDef *)SAI1_Block_B_BASE) +#define DMA1 ((DMA_TypeDef *) DMA1_BASE) +#define DMA2 ((DMA_TypeDef *) DMA2_BASE) +#define DMAMUX1 ((DMAMUX_Channel_TypeDef *) DMAMUX1_BASE) +#define CORDIC ((CORDIC_TypeDef *) CORDIC_BASE) +#define RCC ((RCC_TypeDef *) RCC_BASE) +#define FMAC ((FMAC_TypeDef *) FMAC_BASE) +#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) +#define CRC ((CRC_TypeDef *) CRC_BASE) + +#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) +#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE) +#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE) +#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE) +#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE) +#define ADC1 ((ADC_TypeDef *) ADC1_BASE) +#define ADC2 ((ADC_TypeDef *) ADC2_BASE) +#define ADC12_COMMON ((ADC_Common_TypeDef *) ADC12_COMMON_BASE) +#define DAC ((DAC_TypeDef *) DAC_BASE) +#define DAC1 ((DAC_TypeDef *) DAC1_BASE) +#define DAC3 ((DAC_TypeDef *) DAC3_BASE) +#define RNG ((RNG_TypeDef *) RNG_BASE) + +#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE) + +#define DMA2_Channel1 ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE) +#define DMA2_Channel2 ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE) +#define DMA2_Channel3 ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE) +#define DMA2_Channel4 ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE) +#define DMA2_Channel5 ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE) +#define DMA2_Channel6 ((DMA_Channel_TypeDef *) DMA2_Channel6_BASE) + +#define DMAMUX1_Channel0 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel0_BASE) +#define DMAMUX1_Channel1 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel1_BASE) +#define DMAMUX1_Channel2 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel2_BASE) +#define DMAMUX1_Channel3 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel3_BASE) +#define DMAMUX1_Channel4 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel4_BASE) +#define DMAMUX1_Channel5 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel5_BASE) +#define DMAMUX1_Channel6 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel6_BASE) +#define DMAMUX1_Channel7 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel7_BASE) +#define DMAMUX1_Channel8 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel8_BASE) +#define DMAMUX1_Channel9 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel9_BASE) +#define DMAMUX1_Channel10 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel10_BASE) +#define DMAMUX1_Channel11 ((DMAMUX_Channel_TypeDef *) DMAMUX1_Channel11_BASE) + +#define DMAMUX1_RequestGenerator0 ((DMAMUX_RequestGen_TypeDef *) DMAMUX1_RequestGenerator0_BASE) +#define DMAMUX1_RequestGenerator1 ((DMAMUX_RequestGen_TypeDef *) DMAMUX1_RequestGenerator1_BASE) +#define DMAMUX1_RequestGenerator2 ((DMAMUX_RequestGen_TypeDef *) DMAMUX1_RequestGenerator2_BASE) +#define DMAMUX1_RequestGenerator3 ((DMAMUX_RequestGen_TypeDef *) DMAMUX1_RequestGenerator3_BASE) + +#define DMAMUX1_ChannelStatus ((DMAMUX_ChannelStatus_TypeDef *) DMAMUX1_ChannelStatus_BASE) +#define DMAMUX1_RequestGenStatus ((DMAMUX_RequestGenStatus_TypeDef *) DMAMUX1_RequestGenStatus_BASE) + + + +#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) + +/** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + + /** @addtogroup Hardware_Constant_Definition + * @{ + */ +#define LSI_STARTUP_TIME 130U /*!< LSI Maximum startup time in us */ + + /** + * @} + */ + +/** @addtogroup Peripheral_Registers_Bits_Definition + * @{ + */ + +/******************************************************************************/ +/* Peripheral Registers_Bits_Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* */ +/* Analog to Digital Converter */ +/* */ +/******************************************************************************/ + +/* + * @brief Specific device feature definitions (not present on all devices in the STM32G4 series) + */ +#define ADC_MULTIMODE_SUPPORT /*!< ADC feature available only on specific devices: multimode available on devices with several ADC instances */ + +/******************** Bit definition for ADC_ISR register *******************/ +#define ADC_ISR_ADRDY_Pos (0U) +#define ADC_ISR_ADRDY_Msk (0x1UL << ADC_ISR_ADRDY_Pos) /*!< 0x00000001 */ +#define ADC_ISR_ADRDY ADC_ISR_ADRDY_Msk /*!< ADC ready flag */ +#define ADC_ISR_EOSMP_Pos (1U) +#define ADC_ISR_EOSMP_Msk (0x1UL << ADC_ISR_EOSMP_Pos) /*!< 0x00000002 */ +#define ADC_ISR_EOSMP ADC_ISR_EOSMP_Msk /*!< ADC group regular end of sampling flag */ +#define ADC_ISR_EOC_Pos (2U) +#define ADC_ISR_EOC_Msk (0x1UL << ADC_ISR_EOC_Pos) /*!< 0x00000004 */ +#define ADC_ISR_EOC ADC_ISR_EOC_Msk /*!< ADC group regular end of unitary conversion flag */ +#define ADC_ISR_EOS_Pos (3U) +#define ADC_ISR_EOS_Msk (0x1UL << ADC_ISR_EOS_Pos) /*!< 0x00000008 */ +#define ADC_ISR_EOS ADC_ISR_EOS_Msk /*!< ADC group regular end of sequence conversions flag */ +#define ADC_ISR_OVR_Pos (4U) +#define ADC_ISR_OVR_Msk (0x1UL << ADC_ISR_OVR_Pos) /*!< 0x00000010 */ +#define ADC_ISR_OVR ADC_ISR_OVR_Msk /*!< ADC group regular overrun flag */ +#define ADC_ISR_JEOC_Pos (5U) +#define ADC_ISR_JEOC_Msk (0x1UL << ADC_ISR_JEOC_Pos) /*!< 0x00000020 */ +#define ADC_ISR_JEOC ADC_ISR_JEOC_Msk /*!< ADC group injected end of unitary conversion flag */ +#define ADC_ISR_JEOS_Pos (6U) +#define ADC_ISR_JEOS_Msk (0x1UL << ADC_ISR_JEOS_Pos) /*!< 0x00000040 */ +#define ADC_ISR_JEOS ADC_ISR_JEOS_Msk /*!< ADC group injected end of sequence conversions flag */ +#define ADC_ISR_AWD1_Pos (7U) +#define ADC_ISR_AWD1_Msk (0x1UL << ADC_ISR_AWD1_Pos) /*!< 0x00000080 */ +#define ADC_ISR_AWD1 ADC_ISR_AWD1_Msk /*!< ADC analog watchdog 1 flag */ +#define ADC_ISR_AWD2_Pos (8U) +#define ADC_ISR_AWD2_Msk (0x1UL << ADC_ISR_AWD2_Pos) /*!< 0x00000100 */ +#define ADC_ISR_AWD2 ADC_ISR_AWD2_Msk /*!< ADC analog watchdog 2 flag */ +#define ADC_ISR_AWD3_Pos (9U) +#define ADC_ISR_AWD3_Msk (0x1UL << ADC_ISR_AWD3_Pos) /*!< 0x00000200 */ +#define ADC_ISR_AWD3 ADC_ISR_AWD3_Msk /*!< ADC analog watchdog 3 flag */ +#define ADC_ISR_JQOVF_Pos (10U) +#define ADC_ISR_JQOVF_Msk (0x1UL << ADC_ISR_JQOVF_Pos) /*!< 0x00000400 */ +#define ADC_ISR_JQOVF ADC_ISR_JQOVF_Msk /*!< ADC group injected contexts queue overflow flag */ + +/******************** Bit definition for ADC_IER register *******************/ +#define ADC_IER_ADRDYIE_Pos (0U) +#define ADC_IER_ADRDYIE_Msk (0x1UL << ADC_IER_ADRDYIE_Pos) /*!< 0x00000001 */ +#define ADC_IER_ADRDYIE ADC_IER_ADRDYIE_Msk /*!< ADC ready interrupt */ +#define ADC_IER_EOSMPIE_Pos (1U) +#define ADC_IER_EOSMPIE_Msk (0x1UL << ADC_IER_EOSMPIE_Pos) /*!< 0x00000002 */ +#define ADC_IER_EOSMPIE ADC_IER_EOSMPIE_Msk /*!< ADC group regular end of sampling interrupt */ +#define ADC_IER_EOCIE_Pos (2U) +#define ADC_IER_EOCIE_Msk (0x1UL << ADC_IER_EOCIE_Pos) /*!< 0x00000004 */ +#define ADC_IER_EOCIE ADC_IER_EOCIE_Msk /*!< ADC group regular end of unitary conversion interrupt */ +#define ADC_IER_EOSIE_Pos (3U) +#define ADC_IER_EOSIE_Msk (0x1UL << ADC_IER_EOSIE_Pos) /*!< 0x00000008 */ +#define ADC_IER_EOSIE ADC_IER_EOSIE_Msk /*!< ADC group regular end of sequence conversions interrupt */ +#define ADC_IER_OVRIE_Pos (4U) +#define ADC_IER_OVRIE_Msk (0x1UL << ADC_IER_OVRIE_Pos) /*!< 0x00000010 */ +#define ADC_IER_OVRIE ADC_IER_OVRIE_Msk /*!< ADC group regular overrun interrupt */ +#define ADC_IER_JEOCIE_Pos (5U) +#define ADC_IER_JEOCIE_Msk (0x1UL << ADC_IER_JEOCIE_Pos) /*!< 0x00000020 */ +#define ADC_IER_JEOCIE ADC_IER_JEOCIE_Msk /*!< ADC group injected end of unitary conversion interrupt */ +#define ADC_IER_JEOSIE_Pos (6U) +#define ADC_IER_JEOSIE_Msk (0x1UL << ADC_IER_JEOSIE_Pos) /*!< 0x00000040 */ +#define ADC_IER_JEOSIE ADC_IER_JEOSIE_Msk /*!< ADC group injected end of sequence conversions interrupt */ +#define ADC_IER_AWD1IE_Pos (7U) +#define ADC_IER_AWD1IE_Msk (0x1UL << ADC_IER_AWD1IE_Pos) /*!< 0x00000080 */ +#define ADC_IER_AWD1IE ADC_IER_AWD1IE_Msk /*!< ADC analog watchdog 1 interrupt */ +#define ADC_IER_AWD2IE_Pos (8U) +#define ADC_IER_AWD2IE_Msk (0x1UL << ADC_IER_AWD2IE_Pos) /*!< 0x00000100 */ +#define ADC_IER_AWD2IE ADC_IER_AWD2IE_Msk /*!< ADC analog watchdog 2 interrupt */ +#define ADC_IER_AWD3IE_Pos (9U) +#define ADC_IER_AWD3IE_Msk (0x1UL << ADC_IER_AWD3IE_Pos) /*!< 0x00000200 */ +#define ADC_IER_AWD3IE ADC_IER_AWD3IE_Msk /*!< ADC analog watchdog 3 interrupt */ +#define ADC_IER_JQOVFIE_Pos (10U) +#define ADC_IER_JQOVFIE_Msk (0x1UL << ADC_IER_JQOVFIE_Pos) /*!< 0x00000400 */ +#define ADC_IER_JQOVFIE ADC_IER_JQOVFIE_Msk /*!< ADC group injected contexts queue overflow interrupt */ + +/******************** Bit definition for ADC_CR register ********************/ +#define ADC_CR_ADEN_Pos (0U) +#define ADC_CR_ADEN_Msk (0x1UL << ADC_CR_ADEN_Pos) /*!< 0x00000001 */ +#define ADC_CR_ADEN ADC_CR_ADEN_Msk /*!< ADC enable */ +#define ADC_CR_ADDIS_Pos (1U) +#define ADC_CR_ADDIS_Msk (0x1UL << ADC_CR_ADDIS_Pos) /*!< 0x00000002 */ +#define ADC_CR_ADDIS ADC_CR_ADDIS_Msk /*!< ADC disable */ +#define ADC_CR_ADSTART_Pos (2U) +#define ADC_CR_ADSTART_Msk (0x1UL << ADC_CR_ADSTART_Pos) /*!< 0x00000004 */ +#define ADC_CR_ADSTART ADC_CR_ADSTART_Msk /*!< ADC group regular conversion start */ +#define ADC_CR_JADSTART_Pos (3U) +#define ADC_CR_JADSTART_Msk (0x1UL << ADC_CR_JADSTART_Pos) /*!< 0x00000008 */ +#define ADC_CR_JADSTART ADC_CR_JADSTART_Msk /*!< ADC group injected conversion start */ +#define ADC_CR_ADSTP_Pos (4U) +#define ADC_CR_ADSTP_Msk (0x1UL << ADC_CR_ADSTP_Pos) /*!< 0x00000010 */ +#define ADC_CR_ADSTP ADC_CR_ADSTP_Msk /*!< ADC group regular conversion stop */ +#define ADC_CR_JADSTP_Pos (5U) +#define ADC_CR_JADSTP_Msk (0x1UL << ADC_CR_JADSTP_Pos) /*!< 0x00000020 */ +#define ADC_CR_JADSTP ADC_CR_JADSTP_Msk /*!< ADC group injected conversion stop */ +#define ADC_CR_ADVREGEN_Pos (28U) +#define ADC_CR_ADVREGEN_Msk (0x1UL << ADC_CR_ADVREGEN_Pos) /*!< 0x10000000 */ +#define ADC_CR_ADVREGEN ADC_CR_ADVREGEN_Msk /*!< ADC voltage regulator enable */ +#define ADC_CR_DEEPPWD_Pos (29U) +#define ADC_CR_DEEPPWD_Msk (0x1UL << ADC_CR_DEEPPWD_Pos) /*!< 0x20000000 */ +#define ADC_CR_DEEPPWD ADC_CR_DEEPPWD_Msk /*!< ADC deep power down enable */ +#define ADC_CR_ADCALDIF_Pos (30U) +#define ADC_CR_ADCALDIF_Msk (0x1UL << ADC_CR_ADCALDIF_Pos) /*!< 0x40000000 */ +#define ADC_CR_ADCALDIF ADC_CR_ADCALDIF_Msk /*!< ADC differential mode for calibration */ +#define ADC_CR_ADCAL_Pos (31U) +#define ADC_CR_ADCAL_Msk (0x1UL << ADC_CR_ADCAL_Pos) /*!< 0x80000000 */ +#define ADC_CR_ADCAL ADC_CR_ADCAL_Msk /*!< ADC calibration */ + +/******************** Bit definition for ADC_CFGR register ******************/ +#define ADC_CFGR_DMAEN_Pos (0U) +#define ADC_CFGR_DMAEN_Msk (0x1UL << ADC_CFGR_DMAEN_Pos) /*!< 0x00000001 */ +#define ADC_CFGR_DMAEN ADC_CFGR_DMAEN_Msk /*!< ADC DMA transfer enable */ +#define ADC_CFGR_DMACFG_Pos (1U) +#define ADC_CFGR_DMACFG_Msk (0x1UL << ADC_CFGR_DMACFG_Pos) /*!< 0x00000002 */ +#define ADC_CFGR_DMACFG ADC_CFGR_DMACFG_Msk /*!< ADC DMA transfer configuration */ + +#define ADC_CFGR_RES_Pos (3U) +#define ADC_CFGR_RES_Msk (0x3UL << ADC_CFGR_RES_Pos) /*!< 0x00000018 */ +#define ADC_CFGR_RES ADC_CFGR_RES_Msk /*!< ADC data resolution */ +#define ADC_CFGR_RES_0 (0x1UL << ADC_CFGR_RES_Pos) /*!< 0x00000008 */ +#define ADC_CFGR_RES_1 (0x2UL << ADC_CFGR_RES_Pos) /*!< 0x00000010 */ + +#define ADC_CFGR_EXTSEL_Pos (5U) +#define ADC_CFGR_EXTSEL_Msk (0x1FUL << ADC_CFGR_EXTSEL_Pos) /*!< 0x000003E0 */ +#define ADC_CFGR_EXTSEL ADC_CFGR_EXTSEL_Msk /*!< ADC group regular external trigger source */ +#define ADC_CFGR_EXTSEL_0 (0x1UL << ADC_CFGR_EXTSEL_Pos) /*!< 0x00000020 */ +#define ADC_CFGR_EXTSEL_1 (0x2UL << ADC_CFGR_EXTSEL_Pos) /*!< 0x00000040 */ +#define ADC_CFGR_EXTSEL_2 (0x4UL << ADC_CFGR_EXTSEL_Pos) /*!< 0x00000080 */ +#define ADC_CFGR_EXTSEL_3 (0x8UL << ADC_CFGR_EXTSEL_Pos) /*!< 0x00000100 */ +#define ADC_CFGR_EXTSEL_4 (0x10UL << ADC_CFGR_EXTSEL_Pos) /*!< 0x00000200 */ + +#define ADC_CFGR_EXTEN_Pos (10U) +#define ADC_CFGR_EXTEN_Msk (0x3UL << ADC_CFGR_EXTEN_Pos) /*!< 0x00000C00 */ +#define ADC_CFGR_EXTEN ADC_CFGR_EXTEN_Msk /*!< ADC group regular external trigger polarity */ +#define ADC_CFGR_EXTEN_0 (0x1UL << ADC_CFGR_EXTEN_Pos) /*!< 0x00000400 */ +#define ADC_CFGR_EXTEN_1 (0x2UL << ADC_CFGR_EXTEN_Pos) /*!< 0x00000800 */ + +#define ADC_CFGR_OVRMOD_Pos (12U) +#define ADC_CFGR_OVRMOD_Msk (0x1UL << ADC_CFGR_OVRMOD_Pos) /*!< 0x00001000 */ +#define ADC_CFGR_OVRMOD ADC_CFGR_OVRMOD_Msk /*!< ADC group regular overrun configuration */ +#define ADC_CFGR_CONT_Pos (13U) +#define ADC_CFGR_CONT_Msk (0x1UL << ADC_CFGR_CONT_Pos) /*!< 0x00002000 */ +#define ADC_CFGR_CONT ADC_CFGR_CONT_Msk /*!< ADC group regular continuous conversion mode */ +#define ADC_CFGR_AUTDLY_Pos (14U) +#define ADC_CFGR_AUTDLY_Msk (0x1UL << ADC_CFGR_AUTDLY_Pos) /*!< 0x00004000 */ +#define ADC_CFGR_AUTDLY ADC_CFGR_AUTDLY_Msk /*!< ADC low power auto wait */ +#define ADC_CFGR_ALIGN_Pos (15U) +#define ADC_CFGR_ALIGN_Msk (0x1UL << ADC_CFGR_ALIGN_Pos) /*!< 0x00008000 */ +#define ADC_CFGR_ALIGN ADC_CFGR_ALIGN_Msk /*!< ADC data alignment */ +#define ADC_CFGR_DISCEN_Pos (16U) +#define ADC_CFGR_DISCEN_Msk (0x1UL << ADC_CFGR_DISCEN_Pos) /*!< 0x00010000 */ +#define ADC_CFGR_DISCEN ADC_CFGR_DISCEN_Msk /*!< ADC group regular sequencer discontinuous mode */ + +#define ADC_CFGR_DISCNUM_Pos (17U) +#define ADC_CFGR_DISCNUM_Msk (0x7UL << ADC_CFGR_DISCNUM_Pos) /*!< 0x000E0000 */ +#define ADC_CFGR_DISCNUM ADC_CFGR_DISCNUM_Msk /*!< ADC group regular sequencer discontinuous number of ranks */ +#define ADC_CFGR_DISCNUM_0 (0x1UL << ADC_CFGR_DISCNUM_Pos) /*!< 0x00020000 */ +#define ADC_CFGR_DISCNUM_1 (0x2UL << ADC_CFGR_DISCNUM_Pos) /*!< 0x00040000 */ +#define ADC_CFGR_DISCNUM_2 (0x4UL << ADC_CFGR_DISCNUM_Pos) /*!< 0x00080000 */ + +#define ADC_CFGR_JDISCEN_Pos (20U) +#define ADC_CFGR_JDISCEN_Msk (0x1UL << ADC_CFGR_JDISCEN_Pos) /*!< 0x00100000 */ +#define ADC_CFGR_JDISCEN ADC_CFGR_JDISCEN_Msk /*!< ADC group injected sequencer discontinuous mode */ +#define ADC_CFGR_JQM_Pos (21U) +#define ADC_CFGR_JQM_Msk (0x1UL << ADC_CFGR_JQM_Pos) /*!< 0x00200000 */ +#define ADC_CFGR_JQM ADC_CFGR_JQM_Msk /*!< ADC group injected contexts queue mode */ +#define ADC_CFGR_AWD1SGL_Pos (22U) +#define ADC_CFGR_AWD1SGL_Msk (0x1UL << ADC_CFGR_AWD1SGL_Pos) /*!< 0x00400000 */ +#define ADC_CFGR_AWD1SGL ADC_CFGR_AWD1SGL_Msk /*!< ADC analog watchdog 1 monitoring a single channel or all channels */ +#define ADC_CFGR_AWD1EN_Pos (23U) +#define ADC_CFGR_AWD1EN_Msk (0x1UL << ADC_CFGR_AWD1EN_Pos) /*!< 0x00800000 */ +#define ADC_CFGR_AWD1EN ADC_CFGR_AWD1EN_Msk /*!< ADC analog watchdog 1 enable on scope ADC group regular */ +#define ADC_CFGR_JAWD1EN_Pos (24U) +#define ADC_CFGR_JAWD1EN_Msk (0x1UL << ADC_CFGR_JAWD1EN_Pos) /*!< 0x01000000 */ +#define ADC_CFGR_JAWD1EN ADC_CFGR_JAWD1EN_Msk /*!< ADC analog watchdog 1 enable on scope ADC group injected */ +#define ADC_CFGR_JAUTO_Pos (25U) +#define ADC_CFGR_JAUTO_Msk (0x1UL << ADC_CFGR_JAUTO_Pos) /*!< 0x02000000 */ +#define ADC_CFGR_JAUTO ADC_CFGR_JAUTO_Msk /*!< ADC group injected automatic trigger mode */ + +#define ADC_CFGR_AWD1CH_Pos (26U) +#define ADC_CFGR_AWD1CH_Msk (0x1FUL << ADC_CFGR_AWD1CH_Pos) /*!< 0x7C000000 */ +#define ADC_CFGR_AWD1CH ADC_CFGR_AWD1CH_Msk /*!< ADC analog watchdog 1 monitored channel selection */ +#define ADC_CFGR_AWD1CH_0 (0x01UL << ADC_CFGR_AWD1CH_Pos) /*!< 0x04000000 */ +#define ADC_CFGR_AWD1CH_1 (0x02UL << ADC_CFGR_AWD1CH_Pos) /*!< 0x08000000 */ +#define ADC_CFGR_AWD1CH_2 (0x04UL << ADC_CFGR_AWD1CH_Pos) /*!< 0x10000000 */ +#define ADC_CFGR_AWD1CH_3 (0x08UL << ADC_CFGR_AWD1CH_Pos) /*!< 0x20000000 */ +#define ADC_CFGR_AWD1CH_4 (0x10UL << ADC_CFGR_AWD1CH_Pos) /*!< 0x40000000 */ + +#define ADC_CFGR_JQDIS_Pos (31U) +#define ADC_CFGR_JQDIS_Msk (0x1UL << ADC_CFGR_JQDIS_Pos) /*!< 0x80000000 */ +#define ADC_CFGR_JQDIS ADC_CFGR_JQDIS_Msk /*!< ADC group injected contexts queue disable */ + +/******************** Bit definition for ADC_CFGR2 register *****************/ +#define ADC_CFGR2_ROVSE_Pos (0U) +#define ADC_CFGR2_ROVSE_Msk (0x1UL << ADC_CFGR2_ROVSE_Pos) /*!< 0x00000001 */ +#define ADC_CFGR2_ROVSE ADC_CFGR2_ROVSE_Msk /*!< ADC oversampler enable on scope ADC group regular */ +#define ADC_CFGR2_JOVSE_Pos (1U) +#define ADC_CFGR2_JOVSE_Msk (0x1UL << ADC_CFGR2_JOVSE_Pos) /*!< 0x00000002 */ +#define ADC_CFGR2_JOVSE ADC_CFGR2_JOVSE_Msk /*!< ADC oversampler enable on scope ADC group injected */ + +#define ADC_CFGR2_OVSR_Pos (2U) +#define ADC_CFGR2_OVSR_Msk (0x7UL << ADC_CFGR2_OVSR_Pos) /*!< 0x0000001C */ +#define ADC_CFGR2_OVSR ADC_CFGR2_OVSR_Msk /*!< ADC oversampling ratio */ +#define ADC_CFGR2_OVSR_0 (0x1UL << ADC_CFGR2_OVSR_Pos) /*!< 0x00000004 */ +#define ADC_CFGR2_OVSR_1 (0x2UL << ADC_CFGR2_OVSR_Pos) /*!< 0x00000008 */ +#define ADC_CFGR2_OVSR_2 (0x4UL << ADC_CFGR2_OVSR_Pos) /*!< 0x00000010 */ + +#define ADC_CFGR2_OVSS_Pos (5U) +#define ADC_CFGR2_OVSS_Msk (0xFUL << ADC_CFGR2_OVSS_Pos) /*!< 0x000001E0 */ +#define ADC_CFGR2_OVSS ADC_CFGR2_OVSS_Msk /*!< ADC oversampling shift */ +#define ADC_CFGR2_OVSS_0 (0x1UL << ADC_CFGR2_OVSS_Pos) /*!< 0x00000020 */ +#define ADC_CFGR2_OVSS_1 (0x2UL << ADC_CFGR2_OVSS_Pos) /*!< 0x00000040 */ +#define ADC_CFGR2_OVSS_2 (0x4UL << ADC_CFGR2_OVSS_Pos) /*!< 0x00000080 */ +#define ADC_CFGR2_OVSS_3 (0x8UL << ADC_CFGR2_OVSS_Pos) /*!< 0x00000100 */ + +#define ADC_CFGR2_TROVS_Pos (9U) +#define ADC_CFGR2_TROVS_Msk (0x1UL << ADC_CFGR2_TROVS_Pos) /*!< 0x00000200 */ +#define ADC_CFGR2_TROVS ADC_CFGR2_TROVS_Msk /*!< ADC oversampling discontinuous mode (triggered mode) for ADC group regular */ +#define ADC_CFGR2_ROVSM_Pos (10U) +#define ADC_CFGR2_ROVSM_Msk (0x1UL << ADC_CFGR2_ROVSM_Pos) /*!< 0x00000400 */ +#define ADC_CFGR2_ROVSM ADC_CFGR2_ROVSM_Msk /*!< ADC oversampling mode managing interlaced conversions of ADC group regular and group injected */ + +#define ADC_CFGR2_GCOMP_Pos (16U) +#define ADC_CFGR2_GCOMP_Msk (0x1UL << ADC_CFGR2_GCOMP_Pos) /*!< 0x00010000 */ +#define ADC_CFGR2_GCOMP ADC_CFGR2_GCOMP_Msk /*!< ADC Gain Compensation mode */ + +#define ADC_CFGR2_SWTRIG_Pos (25U) +#define ADC_CFGR2_SWTRIG_Msk (0x1UL << ADC_CFGR2_SWTRIG_Pos) /*!< 0x02000000 */ +#define ADC_CFGR2_SWTRIG ADC_CFGR2_SWTRIG_Msk /*!< ADC Software Trigger Bit for Sample time control trigger mode */ +#define ADC_CFGR2_BULB_Pos (26U) +#define ADC_CFGR2_BULB_Msk (0x1UL << ADC_CFGR2_BULB_Pos) /*!< 0x04000000 */ +#define ADC_CFGR2_BULB ADC_CFGR2_BULB_Msk /*!< ADC Bulb sampling mode */ +#define ADC_CFGR2_SMPTRIG_Pos (27U) +#define ADC_CFGR2_SMPTRIG_Msk (0x1UL << ADC_CFGR2_SMPTRIG_Pos) /*!< 0x08000000 */ +#define ADC_CFGR2_SMPTRIG ADC_CFGR2_SMPTRIG_Msk /*!< ADC Sample Time Control Trigger mode */ + +/******************** Bit definition for ADC_SMPR1 register *****************/ +#define ADC_SMPR1_SMP0_Pos (0U) +#define ADC_SMPR1_SMP0_Msk (0x7UL << ADC_SMPR1_SMP0_Pos) /*!< 0x00000007 */ +#define ADC_SMPR1_SMP0 ADC_SMPR1_SMP0_Msk /*!< ADC channel 0 sampling time selection */ +#define ADC_SMPR1_SMP0_0 (0x1UL << ADC_SMPR1_SMP0_Pos) /*!< 0x00000001 */ +#define ADC_SMPR1_SMP0_1 (0x2UL << ADC_SMPR1_SMP0_Pos) /*!< 0x00000002 */ +#define ADC_SMPR1_SMP0_2 (0x4UL << ADC_SMPR1_SMP0_Pos) /*!< 0x00000004 */ + +#define ADC_SMPR1_SMP1_Pos (3U) +#define ADC_SMPR1_SMP1_Msk (0x7UL << ADC_SMPR1_SMP1_Pos) /*!< 0x00000038 */ +#define ADC_SMPR1_SMP1 ADC_SMPR1_SMP1_Msk /*!< ADC channel 1 sampling time selection */ +#define ADC_SMPR1_SMP1_0 (0x1UL << ADC_SMPR1_SMP1_Pos) /*!< 0x00000008 */ +#define ADC_SMPR1_SMP1_1 (0x2UL << ADC_SMPR1_SMP1_Pos) /*!< 0x00000010 */ +#define ADC_SMPR1_SMP1_2 (0x4UL << ADC_SMPR1_SMP1_Pos) /*!< 0x00000020 */ + +#define ADC_SMPR1_SMP2_Pos (6U) +#define ADC_SMPR1_SMP2_Msk (0x7UL << ADC_SMPR1_SMP2_Pos) /*!< 0x000001C0 */ +#define ADC_SMPR1_SMP2 ADC_SMPR1_SMP2_Msk /*!< ADC channel 2 sampling time selection */ +#define ADC_SMPR1_SMP2_0 (0x1UL << ADC_SMPR1_SMP2_Pos) /*!< 0x00000040 */ +#define ADC_SMPR1_SMP2_1 (0x2UL << ADC_SMPR1_SMP2_Pos) /*!< 0x00000080 */ +#define ADC_SMPR1_SMP2_2 (0x4UL << ADC_SMPR1_SMP2_Pos) /*!< 0x00000100 */ + +#define ADC_SMPR1_SMP3_Pos (9U) +#define ADC_SMPR1_SMP3_Msk (0x7UL << ADC_SMPR1_SMP3_Pos) /*!< 0x00000E00 */ +#define ADC_SMPR1_SMP3 ADC_SMPR1_SMP3_Msk /*!< ADC channel 3 sampling time selection */ +#define ADC_SMPR1_SMP3_0 (0x1UL << ADC_SMPR1_SMP3_Pos) /*!< 0x00000200 */ +#define ADC_SMPR1_SMP3_1 (0x2UL << ADC_SMPR1_SMP3_Pos) /*!< 0x00000400 */ +#define ADC_SMPR1_SMP3_2 (0x4UL << ADC_SMPR1_SMP3_Pos) /*!< 0x00000800 */ + +#define ADC_SMPR1_SMP4_Pos (12U) +#define ADC_SMPR1_SMP4_Msk (0x7UL << ADC_SMPR1_SMP4_Pos) /*!< 0x00007000 */ +#define ADC_SMPR1_SMP4 ADC_SMPR1_SMP4_Msk /*!< ADC channel 4 sampling time selection */ +#define ADC_SMPR1_SMP4_0 (0x1UL << ADC_SMPR1_SMP4_Pos) /*!< 0x00001000 */ +#define ADC_SMPR1_SMP4_1 (0x2UL << ADC_SMPR1_SMP4_Pos) /*!< 0x00002000 */ +#define ADC_SMPR1_SMP4_2 (0x4UL << ADC_SMPR1_SMP4_Pos) /*!< 0x00004000 */ + +#define ADC_SMPR1_SMP5_Pos (15U) +#define ADC_SMPR1_SMP5_Msk (0x7UL << ADC_SMPR1_SMP5_Pos) /*!< 0x00038000 */ +#define ADC_SMPR1_SMP5 ADC_SMPR1_SMP5_Msk /*!< ADC channel 5 sampling time selection */ +#define ADC_SMPR1_SMP5_0 (0x1UL << ADC_SMPR1_SMP5_Pos) /*!< 0x00008000 */ +#define ADC_SMPR1_SMP5_1 (0x2UL << ADC_SMPR1_SMP5_Pos) /*!< 0x00010000 */ +#define ADC_SMPR1_SMP5_2 (0x4UL << ADC_SMPR1_SMP5_Pos) /*!< 0x00020000 */ + +#define ADC_SMPR1_SMP6_Pos (18U) +#define ADC_SMPR1_SMP6_Msk (0x7UL << ADC_SMPR1_SMP6_Pos) /*!< 0x001C0000 */ +#define ADC_SMPR1_SMP6 ADC_SMPR1_SMP6_Msk /*!< ADC channel 6 sampling time selection */ +#define ADC_SMPR1_SMP6_0 (0x1UL << ADC_SMPR1_SMP6_Pos) /*!< 0x00040000 */ +#define ADC_SMPR1_SMP6_1 (0x2UL << ADC_SMPR1_SMP6_Pos) /*!< 0x00080000 */ +#define ADC_SMPR1_SMP6_2 (0x4UL << ADC_SMPR1_SMP6_Pos) /*!< 0x00100000 */ + +#define ADC_SMPR1_SMP7_Pos (21U) +#define ADC_SMPR1_SMP7_Msk (0x7UL << ADC_SMPR1_SMP7_Pos) /*!< 0x00E00000 */ +#define ADC_SMPR1_SMP7 ADC_SMPR1_SMP7_Msk /*!< ADC channel 7 sampling time selection */ +#define ADC_SMPR1_SMP7_0 (0x1UL << ADC_SMPR1_SMP7_Pos) /*!< 0x00200000 */ +#define ADC_SMPR1_SMP7_1 (0x2UL << ADC_SMPR1_SMP7_Pos) /*!< 0x00400000 */ +#define ADC_SMPR1_SMP7_2 (0x4UL << ADC_SMPR1_SMP7_Pos) /*!< 0x00800000 */ + +#define ADC_SMPR1_SMP8_Pos (24U) +#define ADC_SMPR1_SMP8_Msk (0x7UL << ADC_SMPR1_SMP8_Pos) /*!< 0x07000000 */ +#define ADC_SMPR1_SMP8 ADC_SMPR1_SMP8_Msk /*!< ADC channel 8 sampling time selection */ +#define ADC_SMPR1_SMP8_0 (0x1UL << ADC_SMPR1_SMP8_Pos) /*!< 0x01000000 */ +#define ADC_SMPR1_SMP8_1 (0x2UL << ADC_SMPR1_SMP8_Pos) /*!< 0x02000000 */ +#define ADC_SMPR1_SMP8_2 (0x4UL << ADC_SMPR1_SMP8_Pos) /*!< 0x04000000 */ + +#define ADC_SMPR1_SMP9_Pos (27U) +#define ADC_SMPR1_SMP9_Msk (0x7UL << ADC_SMPR1_SMP9_Pos) /*!< 0x38000000 */ +#define ADC_SMPR1_SMP9 ADC_SMPR1_SMP9_Msk /*!< ADC channel 9 sampling time selection */ +#define ADC_SMPR1_SMP9_0 (0x1UL << ADC_SMPR1_SMP9_Pos) /*!< 0x08000000 */ +#define ADC_SMPR1_SMP9_1 (0x2UL << ADC_SMPR1_SMP9_Pos) /*!< 0x10000000 */ +#define ADC_SMPR1_SMP9_2 (0x4UL << ADC_SMPR1_SMP9_Pos) /*!< 0x20000000 */ + +#define ADC_SMPR1_SMPPLUS_Pos (31U) +#define ADC_SMPR1_SMPPLUS_Msk (0x1UL << ADC_SMPR1_SMPPLUS_Pos) /*!< 0x80000000 */ +#define ADC_SMPR1_SMPPLUS ADC_SMPR1_SMPPLUS_Msk /*!< ADC channels sampling time additional setting */ + +/******************** Bit definition for ADC_SMPR2 register *****************/ +#define ADC_SMPR2_SMP10_Pos (0U) +#define ADC_SMPR2_SMP10_Msk (0x7UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP10 ADC_SMPR2_SMP10_Msk /*!< ADC channel 10 sampling time selection */ +#define ADC_SMPR2_SMP10_0 (0x1UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP10_1 (0x2UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP10_2 (0x4UL << ADC_SMPR2_SMP10_Pos) /*!< 0x00000004 */ + +#define ADC_SMPR2_SMP11_Pos (3U) +#define ADC_SMPR2_SMP11_Msk (0x7UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000038 */ +#define ADC_SMPR2_SMP11 ADC_SMPR2_SMP11_Msk /*!< ADC channel 11 sampling time selection */ +#define ADC_SMPR2_SMP11_0 (0x1UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000008 */ +#define ADC_SMPR2_SMP11_1 (0x2UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000010 */ +#define ADC_SMPR2_SMP11_2 (0x4UL << ADC_SMPR2_SMP11_Pos) /*!< 0x00000020 */ + +#define ADC_SMPR2_SMP12_Pos (6U) +#define ADC_SMPR2_SMP12_Msk (0x7UL << ADC_SMPR2_SMP12_Pos) /*!< 0x000001C0 */ +#define ADC_SMPR2_SMP12 ADC_SMPR2_SMP12_Msk /*!< ADC channel 12 sampling time selection */ +#define ADC_SMPR2_SMP12_0 (0x1UL << ADC_SMPR2_SMP12_Pos) /*!< 0x00000040 */ +#define ADC_SMPR2_SMP12_1 (0x2UL << ADC_SMPR2_SMP12_Pos) /*!< 0x00000080 */ +#define ADC_SMPR2_SMP12_2 (0x4UL << ADC_SMPR2_SMP12_Pos) /*!< 0x00000100 */ + +#define ADC_SMPR2_SMP13_Pos (9U) +#define ADC_SMPR2_SMP13_Msk (0x7UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000E00 */ +#define ADC_SMPR2_SMP13 ADC_SMPR2_SMP13_Msk /*!< ADC channel 13 sampling time selection */ +#define ADC_SMPR2_SMP13_0 (0x1UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000200 */ +#define ADC_SMPR2_SMP13_1 (0x2UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000400 */ +#define ADC_SMPR2_SMP13_2 (0x4UL << ADC_SMPR2_SMP13_Pos) /*!< 0x00000800 */ + +#define ADC_SMPR2_SMP14_Pos (12U) +#define ADC_SMPR2_SMP14_Msk (0x7UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00007000 */ +#define ADC_SMPR2_SMP14 ADC_SMPR2_SMP14_Msk /*!< ADC channel 14 sampling time selection */ +#define ADC_SMPR2_SMP14_0 (0x1UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00001000 */ +#define ADC_SMPR2_SMP14_1 (0x2UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00002000 */ +#define ADC_SMPR2_SMP14_2 (0x4UL << ADC_SMPR2_SMP14_Pos) /*!< 0x00004000 */ + +#define ADC_SMPR2_SMP15_Pos (15U) +#define ADC_SMPR2_SMP15_Msk (0x7UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP15 ADC_SMPR2_SMP15_Msk /*!< ADC channel 15 sampling time selection */ +#define ADC_SMPR2_SMP15_0 (0x1UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP15_1 (0x2UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP15_2 (0x4UL << ADC_SMPR2_SMP15_Pos) /*!< 0x00020000 */ + +#define ADC_SMPR2_SMP16_Pos (18U) +#define ADC_SMPR2_SMP16_Msk (0x7UL << ADC_SMPR2_SMP16_Pos) /*!< 0x001C0000 */ +#define ADC_SMPR2_SMP16 ADC_SMPR2_SMP16_Msk /*!< ADC channel 16 sampling time selection */ +#define ADC_SMPR2_SMP16_0 (0x1UL << ADC_SMPR2_SMP16_Pos) /*!< 0x00040000 */ +#define ADC_SMPR2_SMP16_1 (0x2UL << ADC_SMPR2_SMP16_Pos) /*!< 0x00080000 */ +#define ADC_SMPR2_SMP16_2 (0x4UL << ADC_SMPR2_SMP16_Pos) /*!< 0x00100000 */ + +#define ADC_SMPR2_SMP17_Pos (21U) +#define ADC_SMPR2_SMP17_Msk (0x7UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00E00000 */ +#define ADC_SMPR2_SMP17 ADC_SMPR2_SMP17_Msk /*!< ADC channel 17 sampling time selection */ +#define ADC_SMPR2_SMP17_0 (0x1UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00200000 */ +#define ADC_SMPR2_SMP17_1 (0x2UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00400000 */ +#define ADC_SMPR2_SMP17_2 (0x4UL << ADC_SMPR2_SMP17_Pos) /*!< 0x00800000 */ + +#define ADC_SMPR2_SMP18_Pos (24U) +#define ADC_SMPR2_SMP18_Msk (0x7UL << ADC_SMPR2_SMP18_Pos) /*!< 0x07000000 */ +#define ADC_SMPR2_SMP18 ADC_SMPR2_SMP18_Msk /*!< ADC channel 18 sampling time selection */ +#define ADC_SMPR2_SMP18_0 (0x1UL << ADC_SMPR2_SMP18_Pos) /*!< 0x01000000 */ +#define ADC_SMPR2_SMP18_1 (0x2UL << ADC_SMPR2_SMP18_Pos) /*!< 0x02000000 */ +#define ADC_SMPR2_SMP18_2 (0x4UL << ADC_SMPR2_SMP18_Pos) /*!< 0x04000000 */ + +/******************** Bit definition for ADC_TR1 register *******************/ +#define ADC_TR1_LT1_Pos (0U) +#define ADC_TR1_LT1_Msk (0xFFFUL << ADC_TR1_LT1_Pos) /*!< 0x00000FFF */ +#define ADC_TR1_LT1 ADC_TR1_LT1_Msk /*!< ADC analog watchdog 1 threshold low */ + +#define ADC_TR1_AWDFILT_Pos (12U) +#define ADC_TR1_AWDFILT_Msk (0x7UL << ADC_TR1_AWDFILT_Pos) /*!< 0x00007000 */ +#define ADC_TR1_AWDFILT ADC_TR1_AWDFILT_Msk /*!< ADC analog watchdog filtering parameter */ +#define ADC_TR1_AWDFILT_0 (0x1UL << ADC_TR1_AWDFILT_Pos) /*!< 0x00001000 */ +#define ADC_TR1_AWDFILT_1 (0x2UL << ADC_TR1_AWDFILT_Pos) /*!< 0x00002000 */ +#define ADC_TR1_AWDFILT_2 (0x4UL << ADC_TR1_AWDFILT_Pos) /*!< 0x00004000 */ + +#define ADC_TR1_HT1_Pos (16U) +#define ADC_TR1_HT1_Msk (0xFFFUL << ADC_TR1_HT1_Pos) /*!< 0x0FFF0000 */ +#define ADC_TR1_HT1 ADC_TR1_HT1_Msk /*!< ADC analog watchdog 1 threshold high */ + +/******************** Bit definition for ADC_TR2 register *******************/ +#define ADC_TR2_LT2_Pos (0U) +#define ADC_TR2_LT2_Msk (0xFFUL << ADC_TR2_LT2_Pos) /*!< 0x000000FF */ +#define ADC_TR2_LT2 ADC_TR2_LT2_Msk /*!< ADC analog watchdog 2 threshold low */ + +#define ADC_TR2_HT2_Pos (16U) +#define ADC_TR2_HT2_Msk (0xFFUL << ADC_TR2_HT2_Pos) /*!< 0x00FF0000 */ +#define ADC_TR2_HT2 ADC_TR2_HT2_Msk /*!< ADC analog watchdog 2 threshold high */ + +/******************** Bit definition for ADC_TR3 register *******************/ +#define ADC_TR3_LT3_Pos (0U) +#define ADC_TR3_LT3_Msk (0xFFUL << ADC_TR3_LT3_Pos) /*!< 0x000000FF */ +#define ADC_TR3_LT3 ADC_TR3_LT3_Msk /*!< ADC analog watchdog 3 threshold low */ + +#define ADC_TR3_HT3_Pos (16U) +#define ADC_TR3_HT3_Msk (0xFFUL << ADC_TR3_HT3_Pos) /*!< 0x00FF0000 */ +#define ADC_TR3_HT3 ADC_TR3_HT3_Msk /*!< ADC analog watchdog 3 threshold high */ + +/******************** Bit definition for ADC_SQR1 register ******************/ +#define ADC_SQR1_L_Pos (0U) +#define ADC_SQR1_L_Msk (0xFUL << ADC_SQR1_L_Pos) /*!< 0x0000000F */ +#define ADC_SQR1_L ADC_SQR1_L_Msk /*!< ADC group regular sequencer scan length */ +#define ADC_SQR1_L_0 (0x1UL << ADC_SQR1_L_Pos) /*!< 0x00000001 */ +#define ADC_SQR1_L_1 (0x2UL << ADC_SQR1_L_Pos) /*!< 0x00000002 */ +#define ADC_SQR1_L_2 (0x4UL << ADC_SQR1_L_Pos) /*!< 0x00000004 */ +#define ADC_SQR1_L_3 (0x8UL << ADC_SQR1_L_Pos) /*!< 0x00000008 */ + +#define ADC_SQR1_SQ1_Pos (6U) +#define ADC_SQR1_SQ1_Msk (0x1FUL << ADC_SQR1_SQ1_Pos) /*!< 0x000007C0 */ +#define ADC_SQR1_SQ1 ADC_SQR1_SQ1_Msk /*!< ADC group regular sequencer rank 1 */ +#define ADC_SQR1_SQ1_0 (0x01UL << ADC_SQR1_SQ1_Pos) /*!< 0x00000040 */ +#define ADC_SQR1_SQ1_1 (0x02UL << ADC_SQR1_SQ1_Pos) /*!< 0x00000080 */ +#define ADC_SQR1_SQ1_2 (0x04UL << ADC_SQR1_SQ1_Pos) /*!< 0x00000100 */ +#define ADC_SQR1_SQ1_3 (0x08UL << ADC_SQR1_SQ1_Pos) /*!< 0x00000200 */ +#define ADC_SQR1_SQ1_4 (0x10UL << ADC_SQR1_SQ1_Pos) /*!< 0x00000400 */ + +#define ADC_SQR1_SQ2_Pos (12U) +#define ADC_SQR1_SQ2_Msk (0x1FUL << ADC_SQR1_SQ2_Pos) /*!< 0x0001F000 */ +#define ADC_SQR1_SQ2 ADC_SQR1_SQ2_Msk /*!< ADC group regular sequencer rank 2 */ +#define ADC_SQR1_SQ2_0 (0x01UL << ADC_SQR1_SQ2_Pos) /*!< 0x00001000 */ +#define ADC_SQR1_SQ2_1 (0x02UL << ADC_SQR1_SQ2_Pos) /*!< 0x00002000 */ +#define ADC_SQR1_SQ2_2 (0x04UL << ADC_SQR1_SQ2_Pos) /*!< 0x00004000 */ +#define ADC_SQR1_SQ2_3 (0x08UL << ADC_SQR1_SQ2_Pos) /*!< 0x00008000 */ +#define ADC_SQR1_SQ2_4 (0x10UL << ADC_SQR1_SQ2_Pos) /*!< 0x00010000 */ + +#define ADC_SQR1_SQ3_Pos (18U) +#define ADC_SQR1_SQ3_Msk (0x1FUL << ADC_SQR1_SQ3_Pos) /*!< 0x007C0000 */ +#define ADC_SQR1_SQ3 ADC_SQR1_SQ3_Msk /*!< ADC group regular sequencer rank 3 */ +#define ADC_SQR1_SQ3_0 (0x01UL << ADC_SQR1_SQ3_Pos) /*!< 0x00040000 */ +#define ADC_SQR1_SQ3_1 (0x02UL << ADC_SQR1_SQ3_Pos) /*!< 0x00080000 */ +#define ADC_SQR1_SQ3_2 (0x04UL << ADC_SQR1_SQ3_Pos) /*!< 0x00100000 */ +#define ADC_SQR1_SQ3_3 (0x08UL << ADC_SQR1_SQ3_Pos) /*!< 0x00200000 */ +#define ADC_SQR1_SQ3_4 (0x10UL<< ADC_SQR1_SQ3_Pos) /*!< 0x00400000 */ + +#define ADC_SQR1_SQ4_Pos (24U) +#define ADC_SQR1_SQ4_Msk (0x1FUL << ADC_SQR1_SQ4_Pos) /*!< 0x1F000000 */ +#define ADC_SQR1_SQ4 ADC_SQR1_SQ4_Msk /*!< ADC group regular sequencer rank 4 */ +#define ADC_SQR1_SQ4_0 (0x01UL << ADC_SQR1_SQ4_Pos) /*!< 0x01000000 */ +#define ADC_SQR1_SQ4_1 (0x02UL << ADC_SQR1_SQ4_Pos) /*!< 0x02000000 */ +#define ADC_SQR1_SQ4_2 (0x04UL << ADC_SQR1_SQ4_Pos) /*!< 0x04000000 */ +#define ADC_SQR1_SQ4_3 (0x08UL << ADC_SQR1_SQ4_Pos) /*!< 0x08000000 */ +#define ADC_SQR1_SQ4_4 (0x10UL << ADC_SQR1_SQ4_Pos) /*!< 0x10000000 */ + +/******************** Bit definition for ADC_SQR2 register ******************/ +#define ADC_SQR2_SQ5_Pos (0U) +#define ADC_SQR2_SQ5_Msk (0x1FUL << ADC_SQR2_SQ5_Pos) /*!< 0x0000001F */ +#define ADC_SQR2_SQ5 ADC_SQR2_SQ5_Msk /*!< ADC group regular sequencer rank 5 */ +#define ADC_SQR2_SQ5_0 (0x01UL << ADC_SQR2_SQ5_Pos) /*!< 0x00000001 */ +#define ADC_SQR2_SQ5_1 (0x02UL << ADC_SQR2_SQ5_Pos) /*!< 0x00000002 */ +#define ADC_SQR2_SQ5_2 (0x04UL << ADC_SQR2_SQ5_Pos) /*!< 0x00000004 */ +#define ADC_SQR2_SQ5_3 (0x08UL << ADC_SQR2_SQ5_Pos) /*!< 0x00000008 */ +#define ADC_SQR2_SQ5_4 (0x10UL << ADC_SQR2_SQ5_Pos) /*!< 0x00000010 */ + +#define ADC_SQR2_SQ6_Pos (6U) +#define ADC_SQR2_SQ6_Msk (0x1FUL << ADC_SQR2_SQ6_Pos) /*!< 0x000007C0 */ +#define ADC_SQR2_SQ6 ADC_SQR2_SQ6_Msk /*!< ADC group regular sequencer rank 6 */ +#define ADC_SQR2_SQ6_0 (0x01UL << ADC_SQR2_SQ6_Pos) /*!< 0x00000040 */ +#define ADC_SQR2_SQ6_1 (0x02UL << ADC_SQR2_SQ6_Pos) /*!< 0x00000080 */ +#define ADC_SQR2_SQ6_2 (0x04UL << ADC_SQR2_SQ6_Pos) /*!< 0x00000100 */ +#define ADC_SQR2_SQ6_3 (0x08UL << ADC_SQR2_SQ6_Pos) /*!< 0x00000200 */ +#define ADC_SQR2_SQ6_4 (0x10UL << ADC_SQR2_SQ6_Pos) /*!< 0x00000400 */ + +#define ADC_SQR2_SQ7_Pos (12U) +#define ADC_SQR2_SQ7_Msk (0x1FUL << ADC_SQR2_SQ7_Pos) /*!< 0x0001F000 */ +#define ADC_SQR2_SQ7 ADC_SQR2_SQ7_Msk /*!< ADC group regular sequencer rank 7 */ +#define ADC_SQR2_SQ7_0 (0x01UL << ADC_SQR2_SQ7_Pos) /*!< 0x00001000 */ +#define ADC_SQR2_SQ7_1 (0x02UL << ADC_SQR2_SQ7_Pos) /*!< 0x00002000 */ +#define ADC_SQR2_SQ7_2 (0x04UL << ADC_SQR2_SQ7_Pos) /*!< 0x00004000 */ +#define ADC_SQR2_SQ7_3 (0x08UL << ADC_SQR2_SQ7_Pos) /*!< 0x00008000 */ +#define ADC_SQR2_SQ7_4 (0x10UL << ADC_SQR2_SQ7_Pos) /*!< 0x00010000 */ + +#define ADC_SQR2_SQ8_Pos (18U) +#define ADC_SQR2_SQ8_Msk (0x1FUL << ADC_SQR2_SQ8_Pos) /*!< 0x007C0000 */ +#define ADC_SQR2_SQ8 ADC_SQR2_SQ8_Msk /*!< ADC group regular sequencer rank 8 */ +#define ADC_SQR2_SQ8_0 (0x01UL << ADC_SQR2_SQ8_Pos) /*!< 0x00040000 */ +#define ADC_SQR2_SQ8_1 (0x02UL << ADC_SQR2_SQ8_Pos) /*!< 0x00080000 */ +#define ADC_SQR2_SQ8_2 (0x04UL << ADC_SQR2_SQ8_Pos) /*!< 0x00100000 */ +#define ADC_SQR2_SQ8_3 (0x08UL << ADC_SQR2_SQ8_Pos) /*!< 0x00200000 */ +#define ADC_SQR2_SQ8_4 (0x10UL << ADC_SQR2_SQ8_Pos) /*!< 0x00400000 */ + +#define ADC_SQR2_SQ9_Pos (24U) +#define ADC_SQR2_SQ9_Msk (0x1FUL << ADC_SQR2_SQ9_Pos) /*!< 0x1F000000 */ +#define ADC_SQR2_SQ9 ADC_SQR2_SQ9_Msk /*!< ADC group regular sequencer rank 9 */ +#define ADC_SQR2_SQ9_0 (0x01UL << ADC_SQR2_SQ9_Pos) /*!< 0x01000000 */ +#define ADC_SQR2_SQ9_1 (0x02UL << ADC_SQR2_SQ9_Pos) /*!< 0x02000000 */ +#define ADC_SQR2_SQ9_2 (0x04UL << ADC_SQR2_SQ9_Pos) /*!< 0x04000000 */ +#define ADC_SQR2_SQ9_3 (0x08UL << ADC_SQR2_SQ9_Pos) /*!< 0x08000000 */ +#define ADC_SQR2_SQ9_4 (0x10UL << ADC_SQR2_SQ9_Pos) /*!< 0x10000000 */ + +/******************** Bit definition for ADC_SQR3 register ******************/ +#define ADC_SQR3_SQ10_Pos (0U) +#define ADC_SQR3_SQ10_Msk (0x1FUL << ADC_SQR3_SQ10_Pos) /*!< 0x0000001F */ +#define ADC_SQR3_SQ10 ADC_SQR3_SQ10_Msk /*!< ADC group regular sequencer rank 10 */ +#define ADC_SQR3_SQ10_0 (0x01UL << ADC_SQR3_SQ10_Pos) /*!< 0x00000001 */ +#define ADC_SQR3_SQ10_1 (0x02UL << ADC_SQR3_SQ10_Pos) /*!< 0x00000002 */ +#define ADC_SQR3_SQ10_2 (0x04UL << ADC_SQR3_SQ10_Pos) /*!< 0x00000004 */ +#define ADC_SQR3_SQ10_3 (0x08UL << ADC_SQR3_SQ10_Pos) /*!< 0x00000008 */ +#define ADC_SQR3_SQ10_4 (0x10UL << ADC_SQR3_SQ10_Pos) /*!< 0x00000010 */ + +#define ADC_SQR3_SQ11_Pos (6U) +#define ADC_SQR3_SQ11_Msk (0x1FUL << ADC_SQR3_SQ11_Pos) /*!< 0x000007C0 */ +#define ADC_SQR3_SQ11 ADC_SQR3_SQ11_Msk /*!< ADC group regular sequencer rank 11 */ +#define ADC_SQR3_SQ11_0 (0x01UL << ADC_SQR3_SQ11_Pos) /*!< 0x00000040 */ +#define ADC_SQR3_SQ11_1 (0x02UL << ADC_SQR3_SQ11_Pos) /*!< 0x00000080 */ +#define ADC_SQR3_SQ11_2 (0x04UL << ADC_SQR3_SQ11_Pos) /*!< 0x00000100 */ +#define ADC_SQR3_SQ11_3 (0x08UL << ADC_SQR3_SQ11_Pos) /*!< 0x00000200 */ +#define ADC_SQR3_SQ11_4 (0x10UL << ADC_SQR3_SQ11_Pos) /*!< 0x00000400 */ + +#define ADC_SQR3_SQ12_Pos (12U) +#define ADC_SQR3_SQ12_Msk (0x1FUL << ADC_SQR3_SQ12_Pos) /*!< 0x0001F000 */ +#define ADC_SQR3_SQ12 ADC_SQR3_SQ12_Msk /*!< ADC group regular sequencer rank 12 */ +#define ADC_SQR3_SQ12_0 (0x01UL << ADC_SQR3_SQ12_Pos) /*!< 0x00001000 */ +#define ADC_SQR3_SQ12_1 (0x02UL << ADC_SQR3_SQ12_Pos) /*!< 0x00002000 */ +#define ADC_SQR3_SQ12_2 (0x04UL << ADC_SQR3_SQ12_Pos) /*!< 0x00004000 */ +#define ADC_SQR3_SQ12_3 (0x08UL << ADC_SQR3_SQ12_Pos) /*!< 0x00008000 */ +#define ADC_SQR3_SQ12_4 (0x10UL << ADC_SQR3_SQ12_Pos) /*!< 0x00010000 */ + +#define ADC_SQR3_SQ13_Pos (18U) +#define ADC_SQR3_SQ13_Msk (0x1FUL << ADC_SQR3_SQ13_Pos) /*!< 0x007C0000 */ +#define ADC_SQR3_SQ13 ADC_SQR3_SQ13_Msk /*!< ADC group regular sequencer rank 13 */ +#define ADC_SQR3_SQ13_0 (0x01UL << ADC_SQR3_SQ13_Pos) /*!< 0x00040000 */ +#define ADC_SQR3_SQ13_1 (0x02UL << ADC_SQR3_SQ13_Pos) /*!< 0x00080000 */ +#define ADC_SQR3_SQ13_2 (0x04UL << ADC_SQR3_SQ13_Pos) /*!< 0x00100000 */ +#define ADC_SQR3_SQ13_3 (0x08UL << ADC_SQR3_SQ13_Pos) /*!< 0x00200000 */ +#define ADC_SQR3_SQ13_4 (0x10UL << ADC_SQR3_SQ13_Pos) /*!< 0x00400000 */ + +#define ADC_SQR3_SQ14_Pos (24U) +#define ADC_SQR3_SQ14_Msk (0x1FUL << ADC_SQR3_SQ14_Pos) /*!< 0x1F000000 */ +#define ADC_SQR3_SQ14 ADC_SQR3_SQ14_Msk /*!< ADC group regular sequencer rank 14 */ +#define ADC_SQR3_SQ14_0 (0x01UL << ADC_SQR3_SQ14_Pos) /*!< 0x01000000 */ +#define ADC_SQR3_SQ14_1 (0x02UL << ADC_SQR3_SQ14_Pos) /*!< 0x02000000 */ +#define ADC_SQR3_SQ14_2 (0x04UL << ADC_SQR3_SQ14_Pos) /*!< 0x04000000 */ +#define ADC_SQR3_SQ14_3 (0x08UL << ADC_SQR3_SQ14_Pos) /*!< 0x08000000 */ +#define ADC_SQR3_SQ14_4 (0x10UL << ADC_SQR3_SQ14_Pos) /*!< 0x10000000 */ + +/******************** Bit definition for ADC_SQR4 register ******************/ +#define ADC_SQR4_SQ15_Pos (0U) +#define ADC_SQR4_SQ15_Msk (0x1FUL << ADC_SQR4_SQ15_Pos) /*!< 0x0000001F */ +#define ADC_SQR4_SQ15 ADC_SQR4_SQ15_Msk /*!< ADC group regular sequencer rank 15 */ +#define ADC_SQR4_SQ15_0 (0x01UL << ADC_SQR4_SQ15_Pos) /*!< 0x00000001 */ +#define ADC_SQR4_SQ15_1 (0x02UL << ADC_SQR4_SQ15_Pos) /*!< 0x00000002 */ +#define ADC_SQR4_SQ15_2 (0x04UL << ADC_SQR4_SQ15_Pos) /*!< 0x00000004 */ +#define ADC_SQR4_SQ15_3 (0x08UL << ADC_SQR4_SQ15_Pos) /*!< 0x00000008 */ +#define ADC_SQR4_SQ15_4 (0x10UL << ADC_SQR4_SQ15_Pos) /*!< 0x00000010 */ + +#define ADC_SQR4_SQ16_Pos (6U) +#define ADC_SQR4_SQ16_Msk (0x1FUL << ADC_SQR4_SQ16_Pos) /*!< 0x000007C0 */ +#define ADC_SQR4_SQ16 ADC_SQR4_SQ16_Msk /*!< ADC group regular sequencer rank 16 */ +#define ADC_SQR4_SQ16_0 (0x01UL << ADC_SQR4_SQ16_Pos) /*!< 0x00000040 */ +#define ADC_SQR4_SQ16_1 (0x02UL << ADC_SQR4_SQ16_Pos) /*!< 0x00000080 */ +#define ADC_SQR4_SQ16_2 (0x04UL << ADC_SQR4_SQ16_Pos) /*!< 0x00000100 */ +#define ADC_SQR4_SQ16_3 (0x08UL << ADC_SQR4_SQ16_Pos) /*!< 0x00000200 */ +#define ADC_SQR4_SQ16_4 (0x10UL << ADC_SQR4_SQ16_Pos) /*!< 0x00000400 */ + +/******************** Bit definition for ADC_DR register ********************/ +#define ADC_DR_RDATA_Pos (0U) +#define ADC_DR_RDATA_Msk (0xFFFFUL << ADC_DR_RDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_DR_RDATA ADC_DR_RDATA_Msk /*!< ADC group regular conversion data */ + +/******************** Bit definition for ADC_JSQR register ******************/ +#define ADC_JSQR_JL_Pos (0U) +#define ADC_JSQR_JL_Msk (0x3UL << ADC_JSQR_JL_Pos) /*!< 0x00000003 */ +#define ADC_JSQR_JL ADC_JSQR_JL_Msk /*!< ADC group injected sequencer scan length */ +#define ADC_JSQR_JL_0 (0x1UL << ADC_JSQR_JL_Pos) /*!< 0x00000001 */ +#define ADC_JSQR_JL_1 (0x2UL << ADC_JSQR_JL_Pos) /*!< 0x00000002 */ + +#define ADC_JSQR_JEXTSEL_Pos (2U) +#define ADC_JSQR_JEXTSEL_Msk (0x1FUL << ADC_JSQR_JEXTSEL_Pos) /*!< 0x0000007C */ +#define ADC_JSQR_JEXTSEL ADC_JSQR_JEXTSEL_Msk /*!< ADC group injected external trigger source */ +#define ADC_JSQR_JEXTSEL_0 (0x1UL << ADC_JSQR_JEXTSEL_Pos) /*!< 0x00000004 */ +#define ADC_JSQR_JEXTSEL_1 (0x2UL << ADC_JSQR_JEXTSEL_Pos) /*!< 0x00000008 */ +#define ADC_JSQR_JEXTSEL_2 (0x4UL << ADC_JSQR_JEXTSEL_Pos) /*!< 0x00000010 */ +#define ADC_JSQR_JEXTSEL_3 (0x8UL << ADC_JSQR_JEXTSEL_Pos) /*!< 0x00000020 */ +#define ADC_JSQR_JEXTSEL_4 (0x10UL << ADC_JSQR_JEXTSEL_Pos) /*!< 0x00000040 */ + +#define ADC_JSQR_JEXTEN_Pos (7U) +#define ADC_JSQR_JEXTEN_Msk (0x3UL << ADC_JSQR_JEXTEN_Pos) /*!< 0x00000180 */ +#define ADC_JSQR_JEXTEN ADC_JSQR_JEXTEN_Msk /*!< ADC group injected external trigger polarity */ +#define ADC_JSQR_JEXTEN_0 (0x1UL << ADC_JSQR_JEXTEN_Pos) /*!< 0x00000080 */ +#define ADC_JSQR_JEXTEN_1 (0x2UL << ADC_JSQR_JEXTEN_Pos) /*!< 0x00000100 */ + +#define ADC_JSQR_JSQ1_Pos (9U) +#define ADC_JSQR_JSQ1_Msk (0x1FUL << ADC_JSQR_JSQ1_Pos) /*!< 0x00003E00 */ +#define ADC_JSQR_JSQ1 ADC_JSQR_JSQ1_Msk /*!< ADC group injected sequencer rank 1 */ +#define ADC_JSQR_JSQ1_0 (0x01UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000200 */ +#define ADC_JSQR_JSQ1_1 (0x02UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000400 */ +#define ADC_JSQR_JSQ1_2 (0x04UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000800 */ +#define ADC_JSQR_JSQ1_3 (0x08UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00001000 */ +#define ADC_JSQR_JSQ1_4 (0x10UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00002000 */ + +#define ADC_JSQR_JSQ2_Pos (15U) +#define ADC_JSQR_JSQ2_Msk (0x1FUL << ADC_JSQR_JSQ2_Pos) /*!< 0x0007C000 */ +#define ADC_JSQR_JSQ2 ADC_JSQR_JSQ2_Msk /*!< ADC group injected sequencer rank 2 */ +#define ADC_JSQR_JSQ2_0 (0x01UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00004000 */ +#define ADC_JSQR_JSQ2_1 (0x02UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00008000 */ +#define ADC_JSQR_JSQ2_2 (0x04UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00010000 */ +#define ADC_JSQR_JSQ2_3 (0x08UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00020000 */ +#define ADC_JSQR_JSQ2_4 (0x10UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00040000 */ + +#define ADC_JSQR_JSQ3_Pos (21U) +#define ADC_JSQR_JSQ3_Msk (0x1FUL << ADC_JSQR_JSQ3_Pos) /*!< 0x03E00000 */ +#define ADC_JSQR_JSQ3 ADC_JSQR_JSQ3_Msk /*!< ADC group injected sequencer rank 3 */ +#define ADC_JSQR_JSQ3_0 (0x01UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00200000 */ +#define ADC_JSQR_JSQ3_1 (0x02UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00400000 */ +#define ADC_JSQR_JSQ3_2 (0x04UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00800000 */ +#define ADC_JSQR_JSQ3_3 (0x08UL << ADC_JSQR_JSQ3_Pos) /*!< 0x01000000 */ +#define ADC_JSQR_JSQ3_4 (0x10UL << ADC_JSQR_JSQ3_Pos) /*!< 0x02000000 */ + +#define ADC_JSQR_JSQ4_Pos (27U) +#define ADC_JSQR_JSQ4_Msk (0x1FUL << ADC_JSQR_JSQ4_Pos) /*!< 0xF8000000 */ +#define ADC_JSQR_JSQ4 ADC_JSQR_JSQ4_Msk /*!< ADC group injected sequencer rank 4 */ +#define ADC_JSQR_JSQ4_0 (0x01UL << ADC_JSQR_JSQ4_Pos) /*!< 0x08000000 */ +#define ADC_JSQR_JSQ4_1 (0x02UL << ADC_JSQR_JSQ4_Pos) /*!< 0x10000000 */ +#define ADC_JSQR_JSQ4_2 (0x04UL << ADC_JSQR_JSQ4_Pos) /*!< 0x20000000 */ +#define ADC_JSQR_JSQ4_3 (0x08UL << ADC_JSQR_JSQ4_Pos) /*!< 0x40000000 */ +#define ADC_JSQR_JSQ4_4 (0x10UL << ADC_JSQR_JSQ4_Pos) /*!< 0x80000000 */ + +/******************** Bit definition for ADC_OFR1 register ******************/ +#define ADC_OFR1_OFFSET1_Pos (0U) +#define ADC_OFR1_OFFSET1_Msk (0xFFFUL << ADC_OFR1_OFFSET1_Pos) /*!< 0x00000FFF */ +#define ADC_OFR1_OFFSET1 ADC_OFR1_OFFSET1_Msk /*!< ADC offset number 1 offset level */ + +#define ADC_OFR1_OFFSETPOS_Pos (24U) +#define ADC_OFR1_OFFSETPOS_Msk (0x1UL << ADC_OFR1_OFFSETPOS_Pos) /*!< 0x01000000 */ +#define ADC_OFR1_OFFSETPOS ADC_OFR1_OFFSETPOS_Msk /*!< ADC offset number 1 positive */ +#define ADC_OFR1_SATEN_Pos (25U) +#define ADC_OFR1_SATEN_Msk (0x1UL << ADC_OFR1_SATEN_Pos) /*!< 0x02000000 */ +#define ADC_OFR1_SATEN ADC_OFR1_SATEN_Msk /*!< ADC offset number 1 saturation enable */ + +#define ADC_OFR1_OFFSET1_CH_Pos (26U) +#define ADC_OFR1_OFFSET1_CH_Msk (0x1FUL << ADC_OFR1_OFFSET1_CH_Pos) /*!< 0x7C000000 */ +#define ADC_OFR1_OFFSET1_CH ADC_OFR1_OFFSET1_CH_Msk /*!< ADC offset number 1 channel selection */ +#define ADC_OFR1_OFFSET1_CH_0 (0x01UL << ADC_OFR1_OFFSET1_CH_Pos) /*!< 0x04000000 */ +#define ADC_OFR1_OFFSET1_CH_1 (0x02UL << ADC_OFR1_OFFSET1_CH_Pos) /*!< 0x08000000 */ +#define ADC_OFR1_OFFSET1_CH_2 (0x04UL << ADC_OFR1_OFFSET1_CH_Pos) /*!< 0x10000000 */ +#define ADC_OFR1_OFFSET1_CH_3 (0x08UL << ADC_OFR1_OFFSET1_CH_Pos) /*!< 0x20000000 */ +#define ADC_OFR1_OFFSET1_CH_4 (0x10UL << ADC_OFR1_OFFSET1_CH_Pos) /*!< 0x40000000 */ + +#define ADC_OFR1_OFFSET1_EN_Pos (31U) +#define ADC_OFR1_OFFSET1_EN_Msk (0x1UL << ADC_OFR1_OFFSET1_EN_Pos) /*!< 0x80000000 */ +#define ADC_OFR1_OFFSET1_EN ADC_OFR1_OFFSET1_EN_Msk /*!< ADC offset number 1 enable */ + +/******************** Bit definition for ADC_OFR2 register ******************/ +#define ADC_OFR2_OFFSET2_Pos (0U) +#define ADC_OFR2_OFFSET2_Msk (0xFFFUL << ADC_OFR2_OFFSET2_Pos) /*!< 0x00000FFF */ +#define ADC_OFR2_OFFSET2 ADC_OFR2_OFFSET2_Msk /*!< ADC offset number 2 offset level */ + +#define ADC_OFR2_OFFSETPOS_Pos (24U) +#define ADC_OFR2_OFFSETPOS_Msk (0x1UL << ADC_OFR2_OFFSETPOS_Pos) /*!< 0x01000000 */ +#define ADC_OFR2_OFFSETPOS ADC_OFR2_OFFSETPOS_Msk /*!< ADC offset number 2 positive */ +#define ADC_OFR2_SATEN_Pos (25U) +#define ADC_OFR2_SATEN_Msk (0x1UL << ADC_OFR2_SATEN_Pos) /*!< 0x02000000 */ +#define ADC_OFR2_SATEN ADC_OFR2_SATEN_Msk /*!< ADC offset number 2 saturation enable */ + +#define ADC_OFR2_OFFSET2_CH_Pos (26U) +#define ADC_OFR2_OFFSET2_CH_Msk (0x1FUL << ADC_OFR2_OFFSET2_CH_Pos) /*!< 0x7C000000 */ +#define ADC_OFR2_OFFSET2_CH ADC_OFR2_OFFSET2_CH_Msk /*!< ADC offset number 2 channel selection */ +#define ADC_OFR2_OFFSET2_CH_0 (0x01UL << ADC_OFR2_OFFSET2_CH_Pos) /*!< 0x04000000 */ +#define ADC_OFR2_OFFSET2_CH_1 (0x02UL << ADC_OFR2_OFFSET2_CH_Pos) /*!< 0x08000000 */ +#define ADC_OFR2_OFFSET2_CH_2 (0x04UL << ADC_OFR2_OFFSET2_CH_Pos) /*!< 0x10000000 */ +#define ADC_OFR2_OFFSET2_CH_3 (0x08UL << ADC_OFR2_OFFSET2_CH_Pos) /*!< 0x20000000 */ +#define ADC_OFR2_OFFSET2_CH_4 (0x10UL << ADC_OFR2_OFFSET2_CH_Pos) /*!< 0x40000000 */ + +#define ADC_OFR2_OFFSET2_EN_Pos (31U) +#define ADC_OFR2_OFFSET2_EN_Msk (0x1UL << ADC_OFR2_OFFSET2_EN_Pos) /*!< 0x80000000 */ +#define ADC_OFR2_OFFSET2_EN ADC_OFR2_OFFSET2_EN_Msk /*!< ADC offset number 2 enable */ + +/******************** Bit definition for ADC_OFR3 register ******************/ +#define ADC_OFR3_OFFSET3_Pos (0U) +#define ADC_OFR3_OFFSET3_Msk (0xFFFUL << ADC_OFR3_OFFSET3_Pos) /*!< 0x00000FFF */ +#define ADC_OFR3_OFFSET3 ADC_OFR3_OFFSET3_Msk /*!< ADC offset number 3 offset level */ + +#define ADC_OFR3_OFFSETPOS_Pos (24U) +#define ADC_OFR3_OFFSETPOS_Msk (0x1UL << ADC_OFR3_OFFSETPOS_Pos) /*!< 0x01000000 */ +#define ADC_OFR3_OFFSETPOS ADC_OFR3_OFFSETPOS_Msk /*!< ADC offset number 3 positive */ +#define ADC_OFR3_SATEN_Pos (25U) +#define ADC_OFR3_SATEN_Msk (0x1UL << ADC_OFR3_SATEN_Pos) /*!< 0x02000000 */ +#define ADC_OFR3_SATEN ADC_OFR3_SATEN_Msk /*!< ADC offset number 3 saturation enable */ + +#define ADC_OFR3_OFFSET3_CH_Pos (26U) +#define ADC_OFR3_OFFSET3_CH_Msk (0x1FUL << ADC_OFR3_OFFSET3_CH_Pos) /*!< 0x7C000000 */ +#define ADC_OFR3_OFFSET3_CH ADC_OFR3_OFFSET3_CH_Msk /*!< ADC offset number 3 channel selection */ +#define ADC_OFR3_OFFSET3_CH_0 (0x01UL << ADC_OFR3_OFFSET3_CH_Pos) /*!< 0x04000000 */ +#define ADC_OFR3_OFFSET3_CH_1 (0x02UL << ADC_OFR3_OFFSET3_CH_Pos) /*!< 0x08000000 */ +#define ADC_OFR3_OFFSET3_CH_2 (0x04UL << ADC_OFR3_OFFSET3_CH_Pos) /*!< 0x10000000 */ +#define ADC_OFR3_OFFSET3_CH_3 (0x08UL << ADC_OFR3_OFFSET3_CH_Pos) /*!< 0x20000000 */ +#define ADC_OFR3_OFFSET3_CH_4 (0x10UL << ADC_OFR3_OFFSET3_CH_Pos) /*!< 0x40000000 */ + +#define ADC_OFR3_OFFSET3_EN_Pos (31U) +#define ADC_OFR3_OFFSET3_EN_Msk (0x1UL << ADC_OFR3_OFFSET3_EN_Pos) /*!< 0x80000000 */ +#define ADC_OFR3_OFFSET3_EN ADC_OFR3_OFFSET3_EN_Msk /*!< ADC offset number 3 enable */ + +/******************** Bit definition for ADC_OFR4 register ******************/ +#define ADC_OFR4_OFFSET4_Pos (0U) +#define ADC_OFR4_OFFSET4_Msk (0xFFFUL << ADC_OFR4_OFFSET4_Pos) /*!< 0x00000FFF */ +#define ADC_OFR4_OFFSET4 ADC_OFR4_OFFSET4_Msk /*!< ADC offset number 4 offset level */ + +#define ADC_OFR4_OFFSETPOS_Pos (24U) +#define ADC_OFR4_OFFSETPOS_Msk (0x1UL << ADC_OFR4_OFFSETPOS_Pos) /*!< 0x01000000 */ +#define ADC_OFR4_OFFSETPOS ADC_OFR4_OFFSETPOS_Msk /*!< ADC offset number 4 positive */ +#define ADC_OFR4_SATEN_Pos (25U) +#define ADC_OFR4_SATEN_Msk (0x1UL << ADC_OFR4_SATEN_Pos) /*!< 0x02000000 */ +#define ADC_OFR4_SATEN ADC_OFR4_SATEN_Msk /*!< ADC offset number 4 saturation enable */ + +#define ADC_OFR4_OFFSET4_CH_Pos (26U) +#define ADC_OFR4_OFFSET4_CH_Msk (0x1FUL << ADC_OFR4_OFFSET4_CH_Pos) /*!< 0x7C000000 */ +#define ADC_OFR4_OFFSET4_CH ADC_OFR4_OFFSET4_CH_Msk /*!< ADC offset number 4 channel selection */ +#define ADC_OFR4_OFFSET4_CH_0 (0x01UL << ADC_OFR4_OFFSET4_CH_Pos) /*!< 0x04000000 */ +#define ADC_OFR4_OFFSET4_CH_1 (0x02UL << ADC_OFR4_OFFSET4_CH_Pos) /*!< 0x08000000 */ +#define ADC_OFR4_OFFSET4_CH_2 (0x04UL << ADC_OFR4_OFFSET4_CH_Pos) /*!< 0x10000000 */ +#define ADC_OFR4_OFFSET4_CH_3 (0x08UL << ADC_OFR4_OFFSET4_CH_Pos) /*!< 0x20000000 */ +#define ADC_OFR4_OFFSET4_CH_4 (0x10UL << ADC_OFR4_OFFSET4_CH_Pos) /*!< 0x40000000 */ + +#define ADC_OFR4_OFFSET4_EN_Pos (31U) +#define ADC_OFR4_OFFSET4_EN_Msk (0x1UL << ADC_OFR4_OFFSET4_EN_Pos) /*!< 0x80000000 */ +#define ADC_OFR4_OFFSET4_EN ADC_OFR4_OFFSET4_EN_Msk /*!< ADC offset number 4 enable */ + +/******************** Bit definition for ADC_JDR1 register ******************/ +#define ADC_JDR1_JDATA_Pos (0U) +#define ADC_JDR1_JDATA_Msk (0xFFFFUL << ADC_JDR1_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR1_JDATA ADC_JDR1_JDATA_Msk /*!< ADC group injected sequencer rank 1 conversion data */ + +/******************** Bit definition for ADC_JDR2 register ******************/ +#define ADC_JDR2_JDATA_Pos (0U) +#define ADC_JDR2_JDATA_Msk (0xFFFFUL << ADC_JDR2_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR2_JDATA ADC_JDR2_JDATA_Msk /*!< ADC group injected sequencer rank 2 conversion data */ + +/******************** Bit definition for ADC_JDR3 register ******************/ +#define ADC_JDR3_JDATA_Pos (0U) +#define ADC_JDR3_JDATA_Msk (0xFFFFUL << ADC_JDR3_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR3_JDATA ADC_JDR3_JDATA_Msk /*!< ADC group injected sequencer rank 3 conversion data */ + +/******************** Bit definition for ADC_JDR4 register ******************/ +#define ADC_JDR4_JDATA_Pos (0U) +#define ADC_JDR4_JDATA_Msk (0xFFFFUL << ADC_JDR4_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR4_JDATA ADC_JDR4_JDATA_Msk /*!< ADC group injected sequencer rank 4 conversion data */ + +/******************** Bit definition for ADC_AWD2CR register ****************/ +#define ADC_AWD2CR_AWD2CH_Pos (0U) +#define ADC_AWD2CR_AWD2CH_Msk (0x7FFFFUL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x0007FFFF */ +#define ADC_AWD2CR_AWD2CH ADC_AWD2CR_AWD2CH_Msk /*!< ADC analog watchdog 2 monitored channel selection */ +#define ADC_AWD2CR_AWD2CH_0 (0x00001UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000001 */ +#define ADC_AWD2CR_AWD2CH_1 (0x00002UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000002 */ +#define ADC_AWD2CR_AWD2CH_2 (0x00004UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000004 */ +#define ADC_AWD2CR_AWD2CH_3 (0x00008UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000008 */ +#define ADC_AWD2CR_AWD2CH_4 (0x00010UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000010 */ +#define ADC_AWD2CR_AWD2CH_5 (0x00020UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000020 */ +#define ADC_AWD2CR_AWD2CH_6 (0x00040UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000040 */ +#define ADC_AWD2CR_AWD2CH_7 (0x00080UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000080 */ +#define ADC_AWD2CR_AWD2CH_8 (0x00100UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000100 */ +#define ADC_AWD2CR_AWD2CH_9 (0x00200UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000200 */ +#define ADC_AWD2CR_AWD2CH_10 (0x00400UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000400 */ +#define ADC_AWD2CR_AWD2CH_11 (0x00800UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00000800 */ +#define ADC_AWD2CR_AWD2CH_12 (0x01000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00001000 */ +#define ADC_AWD2CR_AWD2CH_13 (0x02000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00002000 */ +#define ADC_AWD2CR_AWD2CH_14 (0x04000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00004000 */ +#define ADC_AWD2CR_AWD2CH_15 (0x08000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00008000 */ +#define ADC_AWD2CR_AWD2CH_16 (0x10000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00010000 */ +#define ADC_AWD2CR_AWD2CH_17 (0x20000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00020000 */ +#define ADC_AWD2CR_AWD2CH_18 (0x40000UL << ADC_AWD2CR_AWD2CH_Pos) /*!< 0x00040000 */ + +/******************** Bit definition for ADC_AWD3CR register ****************/ +#define ADC_AWD3CR_AWD3CH_Pos (0U) +#define ADC_AWD3CR_AWD3CH_Msk (0x7FFFFUL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x0007FFFF */ +#define ADC_AWD3CR_AWD3CH ADC_AWD3CR_AWD3CH_Msk /*!< ADC analog watchdog 3 monitored channel selection */ +#define ADC_AWD3CR_AWD3CH_0 (0x00001UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000001 */ +#define ADC_AWD3CR_AWD3CH_1 (0x00002UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000002 */ +#define ADC_AWD3CR_AWD3CH_2 (0x00004UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000004 */ +#define ADC_AWD3CR_AWD3CH_3 (0x00008UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000008 */ +#define ADC_AWD3CR_AWD3CH_4 (0x00010UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000010 */ +#define ADC_AWD3CR_AWD3CH_5 (0x00020UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000020 */ +#define ADC_AWD3CR_AWD3CH_6 (0x00040UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000040 */ +#define ADC_AWD3CR_AWD3CH_7 (0x00080UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000080 */ +#define ADC_AWD3CR_AWD3CH_8 (0x00100UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000100 */ +#define ADC_AWD3CR_AWD3CH_9 (0x00200UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000200 */ +#define ADC_AWD3CR_AWD3CH_10 (0x00400UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000400 */ +#define ADC_AWD3CR_AWD3CH_11 (0x00800UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00000800 */ +#define ADC_AWD3CR_AWD3CH_12 (0x01000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00001000 */ +#define ADC_AWD3CR_AWD3CH_13 (0x02000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00002000 */ +#define ADC_AWD3CR_AWD3CH_14 (0x04000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00004000 */ +#define ADC_AWD3CR_AWD3CH_15 (0x08000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00008000 */ +#define ADC_AWD3CR_AWD3CH_16 (0x10000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00010000 */ +#define ADC_AWD3CR_AWD3CH_17 (0x20000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00020000 */ +#define ADC_AWD3CR_AWD3CH_18 (0x40000UL << ADC_AWD3CR_AWD3CH_Pos) /*!< 0x00040000 */ + +/******************** Bit definition for ADC_DIFSEL register ****************/ +#define ADC_DIFSEL_DIFSEL_Pos (0U) +#define ADC_DIFSEL_DIFSEL_Msk (0x7FFFFUL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x0007FFFF */ +#define ADC_DIFSEL_DIFSEL ADC_DIFSEL_DIFSEL_Msk /*!< ADC channel differential or single-ended mode */ +#define ADC_DIFSEL_DIFSEL_0 (0x00001UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000001 */ +#define ADC_DIFSEL_DIFSEL_1 (0x00002UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000002 */ +#define ADC_DIFSEL_DIFSEL_2 (0x00004UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000004 */ +#define ADC_DIFSEL_DIFSEL_3 (0x00008UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000008 */ +#define ADC_DIFSEL_DIFSEL_4 (0x00010UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000010 */ +#define ADC_DIFSEL_DIFSEL_5 (0x00020UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000020 */ +#define ADC_DIFSEL_DIFSEL_6 (0x00040UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000040 */ +#define ADC_DIFSEL_DIFSEL_7 (0x00080UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000080 */ +#define ADC_DIFSEL_DIFSEL_8 (0x00100UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000100 */ +#define ADC_DIFSEL_DIFSEL_9 (0x00200UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000200 */ +#define ADC_DIFSEL_DIFSEL_10 (0x00400UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000400 */ +#define ADC_DIFSEL_DIFSEL_11 (0x00800UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00000800 */ +#define ADC_DIFSEL_DIFSEL_12 (0x01000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00001000 */ +#define ADC_DIFSEL_DIFSEL_13 (0x02000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00002000 */ +#define ADC_DIFSEL_DIFSEL_14 (0x04000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00004000 */ +#define ADC_DIFSEL_DIFSEL_15 (0x08000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00008000 */ +#define ADC_DIFSEL_DIFSEL_16 (0x10000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00010000 */ +#define ADC_DIFSEL_DIFSEL_17 (0x20000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00020000 */ +#define ADC_DIFSEL_DIFSEL_18 (0x40000UL << ADC_DIFSEL_DIFSEL_Pos) /*!< 0x00040000 */ + +/******************** Bit definition for ADC_CALFACT register ***************/ +#define ADC_CALFACT_CALFACT_S_Pos (0U) +#define ADC_CALFACT_CALFACT_S_Msk (0x7FUL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x0000007F */ +#define ADC_CALFACT_CALFACT_S ADC_CALFACT_CALFACT_S_Msk /*!< ADC calibration factor in single-ended mode */ +#define ADC_CALFACT_CALFACT_S_0 (0x01UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000001 */ +#define ADC_CALFACT_CALFACT_S_1 (0x02UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000002 */ +#define ADC_CALFACT_CALFACT_S_2 (0x04UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000004 */ +#define ADC_CALFACT_CALFACT_S_3 (0x08UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000008 */ +#define ADC_CALFACT_CALFACT_S_4 (0x10UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000010 */ +#define ADC_CALFACT_CALFACT_S_5 (0x20UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000020 */ +#define ADC_CALFACT_CALFACT_S_6 (0x40UL << ADC_CALFACT_CALFACT_S_Pos) /*!< 0x00000030 */ + +#define ADC_CALFACT_CALFACT_D_Pos (16U) +#define ADC_CALFACT_CALFACT_D_Msk (0x7FUL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x007F0000 */ +#define ADC_CALFACT_CALFACT_D ADC_CALFACT_CALFACT_D_Msk /*!< ADC calibration factor in differential mode */ +#define ADC_CALFACT_CALFACT_D_0 (0x01UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00010000 */ +#define ADC_CALFACT_CALFACT_D_1 (0x02UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00020000 */ +#define ADC_CALFACT_CALFACT_D_2 (0x04UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00040000 */ +#define ADC_CALFACT_CALFACT_D_3 (0x08UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00080000 */ +#define ADC_CALFACT_CALFACT_D_4 (0x10UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00100000 */ +#define ADC_CALFACT_CALFACT_D_5 (0x20UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00200000 */ +#define ADC_CALFACT_CALFACT_D_6 (0x40UL << ADC_CALFACT_CALFACT_D_Pos) /*!< 0x00300000 */ + +/******************** Bit definition for ADC_GCOMP register *****************/ +#define ADC_GCOMP_GCOMPCOEFF_Pos (0U) +#define ADC_GCOMP_GCOMPCOEFF_Msk (0x3FFFUL << ADC_GCOMP_GCOMPCOEFF_Pos) /*!< 0x00003FFF */ +#define ADC_GCOMP_GCOMPCOEFF ADC_GCOMP_GCOMPCOEFF_Msk /*!< ADC Gain Compensation Coefficient */ + +/************************* ADC Common registers *****************************/ +/******************** Bit definition for ADC_CSR register *******************/ +#define ADC_CSR_ADRDY_MST_Pos (0U) +#define ADC_CSR_ADRDY_MST_Msk (0x1UL << ADC_CSR_ADRDY_MST_Pos) /*!< 0x00000001 */ +#define ADC_CSR_ADRDY_MST ADC_CSR_ADRDY_MST_Msk /*!< ADC multimode master ready flag */ +#define ADC_CSR_EOSMP_MST_Pos (1U) +#define ADC_CSR_EOSMP_MST_Msk (0x1UL << ADC_CSR_EOSMP_MST_Pos) /*!< 0x00000002 */ +#define ADC_CSR_EOSMP_MST ADC_CSR_EOSMP_MST_Msk /*!< ADC multimode master group regular end of sampling flag */ +#define ADC_CSR_EOC_MST_Pos (2U) +#define ADC_CSR_EOC_MST_Msk (0x1UL << ADC_CSR_EOC_MST_Pos) /*!< 0x00000004 */ +#define ADC_CSR_EOC_MST ADC_CSR_EOC_MST_Msk /*!< ADC multimode master group regular end of unitary conversion flag */ +#define ADC_CSR_EOS_MST_Pos (3U) +#define ADC_CSR_EOS_MST_Msk (0x1UL << ADC_CSR_EOS_MST_Pos) /*!< 0x00000008 */ +#define ADC_CSR_EOS_MST ADC_CSR_EOS_MST_Msk /*!< ADC multimode master group regular end of sequence conversions flag */ +#define ADC_CSR_OVR_MST_Pos (4U) +#define ADC_CSR_OVR_MST_Msk (0x1UL << ADC_CSR_OVR_MST_Pos) /*!< 0x00000010 */ +#define ADC_CSR_OVR_MST ADC_CSR_OVR_MST_Msk /*!< ADC multimode master group regular overrun flag */ +#define ADC_CSR_JEOC_MST_Pos (5U) +#define ADC_CSR_JEOC_MST_Msk (0x1UL << ADC_CSR_JEOC_MST_Pos) /*!< 0x00000020 */ +#define ADC_CSR_JEOC_MST ADC_CSR_JEOC_MST_Msk /*!< ADC multimode master group injected end of unitary conversion flag */ +#define ADC_CSR_JEOS_MST_Pos (6U) +#define ADC_CSR_JEOS_MST_Msk (0x1UL << ADC_CSR_JEOS_MST_Pos) /*!< 0x00000040 */ +#define ADC_CSR_JEOS_MST ADC_CSR_JEOS_MST_Msk /*!< ADC multimode master group injected end of sequence conversions flag */ +#define ADC_CSR_AWD1_MST_Pos (7U) +#define ADC_CSR_AWD1_MST_Msk (0x1UL << ADC_CSR_AWD1_MST_Pos) /*!< 0x00000080 */ +#define ADC_CSR_AWD1_MST ADC_CSR_AWD1_MST_Msk /*!< ADC multimode master analog watchdog 1 flag */ +#define ADC_CSR_AWD2_MST_Pos (8U) +#define ADC_CSR_AWD2_MST_Msk (0x1UL << ADC_CSR_AWD2_MST_Pos) /*!< 0x00000100 */ +#define ADC_CSR_AWD2_MST ADC_CSR_AWD2_MST_Msk /*!< ADC multimode master analog watchdog 2 flag */ +#define ADC_CSR_AWD3_MST_Pos (9U) +#define ADC_CSR_AWD3_MST_Msk (0x1UL << ADC_CSR_AWD3_MST_Pos) /*!< 0x00000200 */ +#define ADC_CSR_AWD3_MST ADC_CSR_AWD3_MST_Msk /*!< ADC multimode master analog watchdog 3 flag */ +#define ADC_CSR_JQOVF_MST_Pos (10U) +#define ADC_CSR_JQOVF_MST_Msk (0x1UL << ADC_CSR_JQOVF_MST_Pos) /*!< 0x00000400 */ +#define ADC_CSR_JQOVF_MST ADC_CSR_JQOVF_MST_Msk /*!< ADC multimode master group injected contexts queue overflow flag */ + +#define ADC_CSR_ADRDY_SLV_Pos (16U) +#define ADC_CSR_ADRDY_SLV_Msk (0x1UL << ADC_CSR_ADRDY_SLV_Pos) /*!< 0x00010000 */ +#define ADC_CSR_ADRDY_SLV ADC_CSR_ADRDY_SLV_Msk /*!< ADC multimode slave ready flag */ +#define ADC_CSR_EOSMP_SLV_Pos (17U) +#define ADC_CSR_EOSMP_SLV_Msk (0x1UL << ADC_CSR_EOSMP_SLV_Pos) /*!< 0x00020000 */ +#define ADC_CSR_EOSMP_SLV ADC_CSR_EOSMP_SLV_Msk /*!< ADC multimode slave group regular end of sampling flag */ +#define ADC_CSR_EOC_SLV_Pos (18U) +#define ADC_CSR_EOC_SLV_Msk (0x1UL << ADC_CSR_EOC_SLV_Pos) /*!< 0x00040000 */ +#define ADC_CSR_EOC_SLV ADC_CSR_EOC_SLV_Msk /*!< ADC multimode slave group regular end of unitary conversion flag */ +#define ADC_CSR_EOS_SLV_Pos (19U) +#define ADC_CSR_EOS_SLV_Msk (0x1UL << ADC_CSR_EOS_SLV_Pos) /*!< 0x00080000 */ +#define ADC_CSR_EOS_SLV ADC_CSR_EOS_SLV_Msk /*!< ADC multimode slave group regular end of sequence conversions flag */ +#define ADC_CSR_OVR_SLV_Pos (20U) +#define ADC_CSR_OVR_SLV_Msk (0x1UL << ADC_CSR_OVR_SLV_Pos) /*!< 0x00100000 */ +#define ADC_CSR_OVR_SLV ADC_CSR_OVR_SLV_Msk /*!< ADC multimode slave group regular overrun flag */ +#define ADC_CSR_JEOC_SLV_Pos (21U) +#define ADC_CSR_JEOC_SLV_Msk (0x1UL << ADC_CSR_JEOC_SLV_Pos) /*!< 0x00200000 */ +#define ADC_CSR_JEOC_SLV ADC_CSR_JEOC_SLV_Msk /*!< ADC multimode slave group injected end of unitary conversion flag */ +#define ADC_CSR_JEOS_SLV_Pos (22U) +#define ADC_CSR_JEOS_SLV_Msk (0x1UL << ADC_CSR_JEOS_SLV_Pos) /*!< 0x00400000 */ +#define ADC_CSR_JEOS_SLV ADC_CSR_JEOS_SLV_Msk /*!< ADC multimode slave group injected end of sequence conversions flag */ +#define ADC_CSR_AWD1_SLV_Pos (23U) +#define ADC_CSR_AWD1_SLV_Msk (0x1UL << ADC_CSR_AWD1_SLV_Pos) /*!< 0x00800000 */ +#define ADC_CSR_AWD1_SLV ADC_CSR_AWD1_SLV_Msk /*!< ADC multimode slave analog watchdog 1 flag */ +#define ADC_CSR_AWD2_SLV_Pos (24U) +#define ADC_CSR_AWD2_SLV_Msk (0x1UL << ADC_CSR_AWD2_SLV_Pos) /*!< 0x01000000 */ +#define ADC_CSR_AWD2_SLV ADC_CSR_AWD2_SLV_Msk /*!< ADC multimode slave analog watchdog 2 flag */ +#define ADC_CSR_AWD3_SLV_Pos (25U) +#define ADC_CSR_AWD3_SLV_Msk (0x1UL << ADC_CSR_AWD3_SLV_Pos) /*!< 0x02000000 */ +#define ADC_CSR_AWD3_SLV ADC_CSR_AWD3_SLV_Msk /*!< ADC multimode slave analog watchdog 3 flag */ +#define ADC_CSR_JQOVF_SLV_Pos (26U) +#define ADC_CSR_JQOVF_SLV_Msk (0x1UL << ADC_CSR_JQOVF_SLV_Pos) /*!< 0x04000000 */ +#define ADC_CSR_JQOVF_SLV ADC_CSR_JQOVF_SLV_Msk /*!< ADC multimode slave group injected contexts queue overflow flag */ + +/******************** Bit definition for ADC_CCR register *******************/ +#define ADC_CCR_DUAL_Pos (0U) +#define ADC_CCR_DUAL_Msk (0x1FUL << ADC_CCR_DUAL_Pos) /*!< 0x0000001F */ +#define ADC_CCR_DUAL ADC_CCR_DUAL_Msk /*!< ADC multimode mode selection */ +#define ADC_CCR_DUAL_0 (0x01UL << ADC_CCR_DUAL_Pos) /*!< 0x00000001 */ +#define ADC_CCR_DUAL_1 (0x02UL << ADC_CCR_DUAL_Pos) /*!< 0x00000002 */ +#define ADC_CCR_DUAL_2 (0x04UL << ADC_CCR_DUAL_Pos) /*!< 0x00000004 */ +#define ADC_CCR_DUAL_3 (0x08UL << ADC_CCR_DUAL_Pos) /*!< 0x00000008 */ +#define ADC_CCR_DUAL_4 (0x10UL << ADC_CCR_DUAL_Pos) /*!< 0x00000010 */ + +#define ADC_CCR_DELAY_Pos (8U) +#define ADC_CCR_DELAY_Msk (0xFUL << ADC_CCR_DELAY_Pos) /*!< 0x00000F00 */ +#define ADC_CCR_DELAY ADC_CCR_DELAY_Msk /*!< ADC multimode delay between 2 sampling phases */ +#define ADC_CCR_DELAY_0 (0x1UL << ADC_CCR_DELAY_Pos) /*!< 0x00000100 */ +#define ADC_CCR_DELAY_1 (0x2UL << ADC_CCR_DELAY_Pos) /*!< 0x00000200 */ +#define ADC_CCR_DELAY_2 (0x4UL << ADC_CCR_DELAY_Pos) /*!< 0x00000400 */ +#define ADC_CCR_DELAY_3 (0x8UL << ADC_CCR_DELAY_Pos) /*!< 0x00000800 */ + +#define ADC_CCR_DMACFG_Pos (13U) +#define ADC_CCR_DMACFG_Msk (0x1UL << ADC_CCR_DMACFG_Pos) /*!< 0x00002000 */ +#define ADC_CCR_DMACFG ADC_CCR_DMACFG_Msk /*!< ADC multimode DMA transfer configuration */ + +#define ADC_CCR_MDMA_Pos (14U) +#define ADC_CCR_MDMA_Msk (0x3UL << ADC_CCR_MDMA_Pos) /*!< 0x0000C000 */ +#define ADC_CCR_MDMA ADC_CCR_MDMA_Msk /*!< ADC multimode DMA transfer enable */ +#define ADC_CCR_MDMA_0 (0x1UL << ADC_CCR_MDMA_Pos) /*!< 0x00004000 */ +#define ADC_CCR_MDMA_1 (0x2UL << ADC_CCR_MDMA_Pos) /*!< 0x00008000 */ + +#define ADC_CCR_CKMODE_Pos (16U) +#define ADC_CCR_CKMODE_Msk (0x3UL << ADC_CCR_CKMODE_Pos) /*!< 0x00030000 */ +#define ADC_CCR_CKMODE ADC_CCR_CKMODE_Msk /*!< ADC common clock source and prescaler (prescaler only for clock source synchronous) */ +#define ADC_CCR_CKMODE_0 (0x1UL << ADC_CCR_CKMODE_Pos) /*!< 0x00010000 */ +#define ADC_CCR_CKMODE_1 (0x2UL << ADC_CCR_CKMODE_Pos) /*!< 0x00020000 */ + +#define ADC_CCR_PRESC_Pos (18U) +#define ADC_CCR_PRESC_Msk (0xFUL << ADC_CCR_PRESC_Pos) /*!< 0x003C0000 */ +#define ADC_CCR_PRESC ADC_CCR_PRESC_Msk /*!< ADC common clock prescaler, only for clock source asynchronous */ +#define ADC_CCR_PRESC_0 (0x1UL << ADC_CCR_PRESC_Pos) /*!< 0x00040000 */ +#define ADC_CCR_PRESC_1 (0x2UL << ADC_CCR_PRESC_Pos) /*!< 0x00080000 */ +#define ADC_CCR_PRESC_2 (0x4UL << ADC_CCR_PRESC_Pos) /*!< 0x00100000 */ +#define ADC_CCR_PRESC_3 (0x8UL << ADC_CCR_PRESC_Pos) /*!< 0x00200000 */ + +#define ADC_CCR_VREFEN_Pos (22U) +#define ADC_CCR_VREFEN_Msk (0x1UL << ADC_CCR_VREFEN_Pos) /*!< 0x00400000 */ +#define ADC_CCR_VREFEN ADC_CCR_VREFEN_Msk /*!< ADC internal path to VrefInt enable */ +#define ADC_CCR_VSENSESEL_Pos (23U) +#define ADC_CCR_VSENSESEL_Msk (0x1UL << ADC_CCR_VSENSESEL_Pos) /*!< 0x00800000 */ +#define ADC_CCR_VSENSESEL ADC_CCR_VSENSESEL_Msk /*!< ADC internal path to temperature sensor enable */ +#define ADC_CCR_VBATSEL_Pos (24U) +#define ADC_CCR_VBATSEL_Msk (0x1UL << ADC_CCR_VBATSEL_Pos) /*!< 0x01000000 */ +#define ADC_CCR_VBATSEL ADC_CCR_VBATSEL_Msk /*!< ADC internal path to battery voltage enable */ + +/******************** Bit definition for ADC_CDR register *******************/ +#define ADC_CDR_RDATA_MST_Pos (0U) +#define ADC_CDR_RDATA_MST_Msk (0xFFFFUL << ADC_CDR_RDATA_MST_Pos) /*!< 0x0000FFFF */ +#define ADC_CDR_RDATA_MST ADC_CDR_RDATA_MST_Msk /*!< ADC multimode master group regular conversion data */ + +#define ADC_CDR_RDATA_SLV_Pos (16U) +#define ADC_CDR_RDATA_SLV_Msk (0xFFFFUL << ADC_CDR_RDATA_SLV_Pos) /*!< 0xFFFF0000 */ +#define ADC_CDR_RDATA_SLV ADC_CDR_RDATA_SLV_Msk /*!< ADC multimode slave group regular conversion data */ + + +/******************************************************************************/ +/* */ +/* Analog Comparators (COMP) */ +/* */ +/******************************************************************************/ +/********************** Bit definition for COMP_CSR register ****************/ +#define COMP_CSR_EN_Pos (0U) +#define COMP_CSR_EN_Msk (0x1UL << COMP_CSR_EN_Pos) /*!< 0x00000001 */ +#define COMP_CSR_EN COMP_CSR_EN_Msk /*!< Comparator enable */ + +#define COMP_CSR_INMSEL_Pos (4U) +#define COMP_CSR_INMSEL_Msk (0xFUL << COMP_CSR_INMSEL_Pos) /*!< 0x00000070 */ +#define COMP_CSR_INMSEL COMP_CSR_INMSEL_Msk /*!< Comparator input minus selection */ +#define COMP_CSR_INMSEL_0 (0x1UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000010 */ +#define COMP_CSR_INMSEL_1 (0x2UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000020 */ +#define COMP_CSR_INMSEL_2 (0x4UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000040 */ +#define COMP_CSR_INMSEL_3 (0x8UL << COMP_CSR_INMSEL_Pos) /*!< 0x00000080 */ + +#define COMP_CSR_INPSEL_Pos (8U) +#define COMP_CSR_INPSEL_Msk (0x1UL << COMP_CSR_INPSEL_Pos) /*!< 0x00000100 */ +#define COMP_CSR_INPSEL COMP_CSR_INPSEL_Msk /*!< Comparator input plus selection */ + +#define COMP_CSR_POLARITY_Pos (15U) +#define COMP_CSR_POLARITY_Msk (0x1UL << COMP_CSR_POLARITY_Pos) /*!< 0x00008000 */ +#define COMP_CSR_POLARITY COMP_CSR_POLARITY_Msk /*!< Comparator output polarity */ + +#define COMP_CSR_HYST_Pos (16U) +#define COMP_CSR_HYST_Msk (0x7UL << COMP_CSR_HYST_Pos) /*!< 0x00070000 */ +#define COMP_CSR_HYST COMP_CSR_HYST_Msk /*!< Comparator hysteresis */ +#define COMP_CSR_HYST_0 (0x1UL << COMP_CSR_HYST_Pos) /*!< 0x00010000 */ +#define COMP_CSR_HYST_1 (0x2UL << COMP_CSR_HYST_Pos) /*!< 0x00020000 */ +#define COMP_CSR_HYST_2 (0x4UL << COMP_CSR_HYST_Pos) /*!< 0x00040000 */ + +#define COMP_CSR_BLANKING_Pos (19U) +#define COMP_CSR_BLANKING_Msk (0x7UL << COMP_CSR_BLANKING_Pos) /*!< 0x00380000 */ +#define COMP_CSR_BLANKING COMP_CSR_BLANKING_Msk /*!< Comparator blanking source */ +#define COMP_CSR_BLANKING_0 (0x1UL << COMP_CSR_BLANKING_Pos) /*!< 0x00080000 */ +#define COMP_CSR_BLANKING_1 (0x2UL << COMP_CSR_BLANKING_Pos) /*!< 0x00100000 */ +#define COMP_CSR_BLANKING_2 (0x4UL << COMP_CSR_BLANKING_Pos) /*!< 0x00200000 */ + +#define COMP_CSR_BRGEN_Pos (22U) +#define COMP_CSR_BRGEN_Msk (0x1UL << COMP_CSR_BRGEN_Pos) /*!< 0x00400000 */ +#define COMP_CSR_BRGEN COMP_CSR_BRGEN_Msk /*!< Comparator scaler bridge enable */ + +#define COMP_CSR_SCALEN_Pos (23U) +#define COMP_CSR_SCALEN_Msk (0x1UL << COMP_CSR_SCALEN_Pos) /*!< 0x00800000 */ +#define COMP_CSR_SCALEN COMP_CSR_SCALEN_Msk /*!< Comparator voltage scaler enable */ + +#define COMP_CSR_VALUE_Pos (30U) +#define COMP_CSR_VALUE_Msk (0x1UL << COMP_CSR_VALUE_Pos) /*!< 0x40000000 */ +#define COMP_CSR_VALUE COMP_CSR_VALUE_Msk /*!< Comparator output level */ + +#define COMP_CSR_LOCK_Pos (31U) +#define COMP_CSR_LOCK_Msk (0x1UL << COMP_CSR_LOCK_Pos) /*!< 0x80000000 */ +#define COMP_CSR_LOCK COMP_CSR_LOCK_Msk /*!< Comparator lock */ + +/******************************************************************************/ +/* */ +/* CORDIC calculation unit */ +/* */ +/******************************************************************************/ +/******************* Bit definition for CORDIC_CSR register *****************/ +#define CORDIC_CSR_FUNC_Pos (0U) +#define CORDIC_CSR_FUNC_Msk (0xFUL << CORDIC_CSR_FUNC_Pos) /*!< 0x0000000F */ +#define CORDIC_CSR_FUNC CORDIC_CSR_FUNC_Msk /*!< Function */ +#define CORDIC_CSR_FUNC_0 (0x1UL << CORDIC_CSR_FUNC_Pos) /*!< 0x00000001 */ +#define CORDIC_CSR_FUNC_1 (0x2UL << CORDIC_CSR_FUNC_Pos) /*!< 0x00000002 */ +#define CORDIC_CSR_FUNC_2 (0x4UL << CORDIC_CSR_FUNC_Pos) /*!< 0x00000004 */ +#define CORDIC_CSR_FUNC_3 (0x8UL << CORDIC_CSR_FUNC_Pos) /*!< 0x00000008 */ +#define CORDIC_CSR_PRECISION_Pos (4U) +#define CORDIC_CSR_PRECISION_Msk (0xFUL << CORDIC_CSR_PRECISION_Pos) /*!< 0x000000F0 */ +#define CORDIC_CSR_PRECISION CORDIC_CSR_PRECISION_Msk /*!< Precision */ +#define CORDIC_CSR_PRECISION_0 (0x1UL << CORDIC_CSR_PRECISION_Pos) /*!< 0x00000010 */ +#define CORDIC_CSR_PRECISION_1 (0x2UL << CORDIC_CSR_PRECISION_Pos) /*!< 0x00000020 */ +#define CORDIC_CSR_PRECISION_2 (0x4UL << CORDIC_CSR_PRECISION_Pos) /*!< 0x00000040 */ +#define CORDIC_CSR_PRECISION_3 (0x8UL << CORDIC_CSR_PRECISION_Pos) /*!< 0x00000080 */ +#define CORDIC_CSR_SCALE_Pos (8U) +#define CORDIC_CSR_SCALE_Msk (0x7UL << CORDIC_CSR_SCALE_Pos) /*!< 0x00000700 */ +#define CORDIC_CSR_SCALE CORDIC_CSR_SCALE_Msk /*!< Scaling factor */ +#define CORDIC_CSR_SCALE_0 (0x1UL << CORDIC_CSR_SCALE_Pos) /*!< 0x00000100 */ +#define CORDIC_CSR_SCALE_1 (0x2UL << CORDIC_CSR_SCALE_Pos) /*!< 0x00000200 */ +#define CORDIC_CSR_SCALE_2 (0x4UL << CORDIC_CSR_SCALE_Pos) /*!< 0x00000400 */ +#define CORDIC_CSR_IEN_Pos (16U) +#define CORDIC_CSR_IEN_Msk (0x1UL << CORDIC_CSR_IEN_Pos) /*!< 0x00010000 */ +#define CORDIC_CSR_IEN CORDIC_CSR_IEN_Msk /*!< Interrupt Enable */ +#define CORDIC_CSR_DMAREN_Pos (17U) +#define CORDIC_CSR_DMAREN_Msk (0x1UL << CORDIC_CSR_DMAREN_Pos) /*!< 0x00020000 */ +#define CORDIC_CSR_DMAREN CORDIC_CSR_DMAREN_Msk /*!< DMA Read channel Enable */ +#define CORDIC_CSR_DMAWEN_Pos (18U) +#define CORDIC_CSR_DMAWEN_Msk (0x1UL << CORDIC_CSR_DMAWEN_Pos) /*!< 0x00040000 */ +#define CORDIC_CSR_DMAWEN CORDIC_CSR_DMAWEN_Msk /*!< DMA Write channel Enable */ +#define CORDIC_CSR_NRES_Pos (19U) +#define CORDIC_CSR_NRES_Msk (0x1UL << CORDIC_CSR_NRES_Pos) /*!< 0x00080000 */ +#define CORDIC_CSR_NRES CORDIC_CSR_NRES_Msk /*!< Number of results in WDATA register */ +#define CORDIC_CSR_NARGS_Pos (20U) +#define CORDIC_CSR_NARGS_Msk (0x1UL << CORDIC_CSR_NARGS_Pos) /*!< 0x00100000 */ +#define CORDIC_CSR_NARGS CORDIC_CSR_NARGS_Msk /*!< Number of arguments in RDATA register */ +#define CORDIC_CSR_RESSIZE_Pos (21U) +#define CORDIC_CSR_RESSIZE_Msk (0x1UL << CORDIC_CSR_RESSIZE_Pos) /*!< 0x00200000 */ +#define CORDIC_CSR_RESSIZE CORDIC_CSR_RESSIZE_Msk /*!< Width of output data */ +#define CORDIC_CSR_ARGSIZE_Pos (22U) +#define CORDIC_CSR_ARGSIZE_Msk (0x1UL << CORDIC_CSR_ARGSIZE_Pos) /*!< 0x00400000 */ +#define CORDIC_CSR_ARGSIZE CORDIC_CSR_ARGSIZE_Msk /*!< Width of input data */ +#define CORDIC_CSR_RRDY_Pos (31U) +#define CORDIC_CSR_RRDY_Msk (0x1UL << CORDIC_CSR_RRDY_Pos) /*!< 0x80000000 */ +#define CORDIC_CSR_RRDY CORDIC_CSR_RRDY_Msk /*!< Result Ready Flag */ + +/******************* Bit definition for CORDIC_WDATA register ***************/ +#define CORDIC_WDATA_ARG_Pos (0U) +#define CORDIC_WDATA_ARG_Msk (0xFFFFFFFFUL << CORDIC_WDATA_ARG_Pos) /*!< 0xFFFFFFFF */ +#define CORDIC_WDATA_ARG CORDIC_WDATA_ARG_Msk /*!< Input Argument */ + +/******************* Bit definition for CORDIC_RDATA register ***************/ +#define CORDIC_RDATA_RES_Pos (0U) +#define CORDIC_RDATA_RES_Msk (0xFFFFFFFFUL << CORDIC_RDATA_RES_Pos) /*!< 0xFFFFFFFF */ +#define CORDIC_RDATA_RES CORDIC_RDATA_RES_Msk /*!< Output Result */ + +/******************************************************************************/ +/* */ +/* CRC calculation unit */ +/* */ +/******************************************************************************/ +/******************* Bit definition for CRC_DR register *********************/ +#define CRC_DR_DR_Pos (0U) +#define CRC_DR_DR_Msk (0xFFFFFFFFUL << CRC_DR_DR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_DR_DR CRC_DR_DR_Msk /*!< Data register bits */ + +/******************* Bit definition for CRC_IDR register ********************/ +#define CRC_IDR_IDR_Pos (0U) +#define CRC_IDR_IDR_Msk (0xFFFFFFFFUL << CRC_IDR_IDR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_IDR_IDR CRC_IDR_IDR_Msk /*!< General-purpose 32-bit data register bits */ + +/******************** Bit definition for CRC_CR register ********************/ +#define CRC_CR_RESET_Pos (0U) +#define CRC_CR_RESET_Msk (0x1UL << CRC_CR_RESET_Pos) /*!< 0x00000001 */ +#define CRC_CR_RESET CRC_CR_RESET_Msk /*!< RESET the CRC computation unit bit */ +#define CRC_CR_POLYSIZE_Pos (3U) +#define CRC_CR_POLYSIZE_Msk (0x3UL << CRC_CR_POLYSIZE_Pos) /*!< 0x00000018 */ +#define CRC_CR_POLYSIZE CRC_CR_POLYSIZE_Msk /*!< Polynomial size bits */ +#define CRC_CR_POLYSIZE_0 (0x1UL << CRC_CR_POLYSIZE_Pos) /*!< 0x00000008 */ +#define CRC_CR_POLYSIZE_1 (0x2UL << CRC_CR_POLYSIZE_Pos) /*!< 0x00000010 */ +#define CRC_CR_REV_IN_Pos (5U) +#define CRC_CR_REV_IN_Msk (0x3UL << CRC_CR_REV_IN_Pos) /*!< 0x00000060 */ +#define CRC_CR_REV_IN CRC_CR_REV_IN_Msk /*!< REV_IN Reverse Input Data bits */ +#define CRC_CR_REV_IN_0 (0x1UL << CRC_CR_REV_IN_Pos) /*!< 0x00000020 */ +#define CRC_CR_REV_IN_1 (0x2UL << CRC_CR_REV_IN_Pos) /*!< 0x00000040 */ +#define CRC_CR_REV_OUT_Pos (7U) +#define CRC_CR_REV_OUT_Msk (0x1UL << CRC_CR_REV_OUT_Pos) /*!< 0x00000080 */ +#define CRC_CR_REV_OUT CRC_CR_REV_OUT_Msk /*!< REV_OUT Reverse Output Data bits */ + +/******************* Bit definition for CRC_INIT register *******************/ +#define CRC_INIT_INIT_Pos (0U) +#define CRC_INIT_INIT_Msk (0xFFFFFFFFUL << CRC_INIT_INIT_Pos) /*!< 0xFFFFFFFF */ +#define CRC_INIT_INIT CRC_INIT_INIT_Msk /*!< Initial CRC value bits */ + +/******************* Bit definition for CRC_POL register ********************/ +#define CRC_POL_POL_Pos (0U) +#define CRC_POL_POL_Msk (0xFFFFFFFFUL << CRC_POL_POL_Pos) /*!< 0xFFFFFFFF */ +#define CRC_POL_POL CRC_POL_POL_Msk /*!< Coefficients of the polynomial */ + +/******************************************************************************/ +/* */ +/* CRS Clock Recovery System */ +/******************************************************************************/ + +/******************* Bit definition for CRS_CR register *********************/ +#define CRS_CR_SYNCOKIE_Pos (0U) +#define CRS_CR_SYNCOKIE_Msk (0x1UL << CRS_CR_SYNCOKIE_Pos) /*!< 0x00000001 */ +#define CRS_CR_SYNCOKIE CRS_CR_SYNCOKIE_Msk /*!< SYNC event OK interrupt enable */ +#define CRS_CR_SYNCWARNIE_Pos (1U) +#define CRS_CR_SYNCWARNIE_Msk (0x1UL << CRS_CR_SYNCWARNIE_Pos) /*!< 0x00000002 */ +#define CRS_CR_SYNCWARNIE CRS_CR_SYNCWARNIE_Msk /*!< SYNC warning interrupt enable */ +#define CRS_CR_ERRIE_Pos (2U) +#define CRS_CR_ERRIE_Msk (0x1UL << CRS_CR_ERRIE_Pos) /*!< 0x00000004 */ +#define CRS_CR_ERRIE CRS_CR_ERRIE_Msk /*!< SYNC error or trimming error interrupt enable */ +#define CRS_CR_ESYNCIE_Pos (3U) +#define CRS_CR_ESYNCIE_Msk (0x1UL << CRS_CR_ESYNCIE_Pos) /*!< 0x00000008 */ +#define CRS_CR_ESYNCIE CRS_CR_ESYNCIE_Msk /*!< Expected SYNC interrupt enable */ +#define CRS_CR_CEN_Pos (5U) +#define CRS_CR_CEN_Msk (0x1UL << CRS_CR_CEN_Pos) /*!< 0x00000020 */ +#define CRS_CR_CEN CRS_CR_CEN_Msk /*!< Frequency error counter enable */ +#define CRS_CR_AUTOTRIMEN_Pos (6U) +#define CRS_CR_AUTOTRIMEN_Msk (0x1UL << CRS_CR_AUTOTRIMEN_Pos) /*!< 0x00000040 */ +#define CRS_CR_AUTOTRIMEN CRS_CR_AUTOTRIMEN_Msk /*!< Automatic trimming enable */ +#define CRS_CR_SWSYNC_Pos (7U) +#define CRS_CR_SWSYNC_Msk (0x1UL << CRS_CR_SWSYNC_Pos) /*!< 0x00000080 */ +#define CRS_CR_SWSYNC CRS_CR_SWSYNC_Msk /*!< Generate software SYNC event */ +#define CRS_CR_TRIM_Pos (8U) +#define CRS_CR_TRIM_Msk (0x7FUL << CRS_CR_TRIM_Pos) /*!< 0x00007F00 */ +#define CRS_CR_TRIM CRS_CR_TRIM_Msk /*!< HSI48 oscillator smooth trimming */ + +/******************* Bit definition for CRS_CFGR register *********************/ +#define CRS_CFGR_RELOAD_Pos (0U) +#define CRS_CFGR_RELOAD_Msk (0xFFFFUL << CRS_CFGR_RELOAD_Pos) /*!< 0x0000FFFF */ +#define CRS_CFGR_RELOAD CRS_CFGR_RELOAD_Msk /*!< Counter reload value */ +#define CRS_CFGR_FELIM_Pos (16U) +#define CRS_CFGR_FELIM_Msk (0xFFUL << CRS_CFGR_FELIM_Pos) /*!< 0x00FF0000 */ +#define CRS_CFGR_FELIM CRS_CFGR_FELIM_Msk /*!< Frequency error limit */ + +#define CRS_CFGR_SYNCDIV_Pos (24U) +#define CRS_CFGR_SYNCDIV_Msk (0x7UL << CRS_CFGR_SYNCDIV_Pos) /*!< 0x07000000 */ +#define CRS_CFGR_SYNCDIV CRS_CFGR_SYNCDIV_Msk /*!< SYNC divider */ +#define CRS_CFGR_SYNCDIV_0 (0x1UL << CRS_CFGR_SYNCDIV_Pos) /*!< 0x01000000 */ +#define CRS_CFGR_SYNCDIV_1 (0x2UL << CRS_CFGR_SYNCDIV_Pos) /*!< 0x02000000 */ +#define CRS_CFGR_SYNCDIV_2 (0x4UL << CRS_CFGR_SYNCDIV_Pos) /*!< 0x04000000 */ + +#define CRS_CFGR_SYNCSRC_Pos (28U) +#define CRS_CFGR_SYNCSRC_Msk (0x3UL << CRS_CFGR_SYNCSRC_Pos) /*!< 0x30000000 */ +#define CRS_CFGR_SYNCSRC CRS_CFGR_SYNCSRC_Msk /*!< SYNC signal source selection */ +#define CRS_CFGR_SYNCSRC_0 (0x1UL << CRS_CFGR_SYNCSRC_Pos) /*!< 0x10000000 */ +#define CRS_CFGR_SYNCSRC_1 (0x2UL << CRS_CFGR_SYNCSRC_Pos) /*!< 0x20000000 */ + +#define CRS_CFGR_SYNCPOL_Pos (31U) +#define CRS_CFGR_SYNCPOL_Msk (0x1UL << CRS_CFGR_SYNCPOL_Pos) /*!< 0x80000000 */ +#define CRS_CFGR_SYNCPOL CRS_CFGR_SYNCPOL_Msk /*!< SYNC polarity selection */ + +/******************* Bit definition for CRS_ISR register *********************/ +#define CRS_ISR_SYNCOKF_Pos (0U) +#define CRS_ISR_SYNCOKF_Msk (0x1UL << CRS_ISR_SYNCOKF_Pos) /*!< 0x00000001 */ +#define CRS_ISR_SYNCOKF CRS_ISR_SYNCOKF_Msk /*!< SYNC event OK flag */ +#define CRS_ISR_SYNCWARNF_Pos (1U) +#define CRS_ISR_SYNCWARNF_Msk (0x1UL << CRS_ISR_SYNCWARNF_Pos) /*!< 0x00000002 */ +#define CRS_ISR_SYNCWARNF CRS_ISR_SYNCWARNF_Msk /*!< SYNC warning flag */ +#define CRS_ISR_ERRF_Pos (2U) +#define CRS_ISR_ERRF_Msk (0x1UL << CRS_ISR_ERRF_Pos) /*!< 0x00000004 */ +#define CRS_ISR_ERRF CRS_ISR_ERRF_Msk /*!< Error flag */ +#define CRS_ISR_ESYNCF_Pos (3U) +#define CRS_ISR_ESYNCF_Msk (0x1UL << CRS_ISR_ESYNCF_Pos) /*!< 0x00000008 */ +#define CRS_ISR_ESYNCF CRS_ISR_ESYNCF_Msk /*!< Expected SYNC flag */ +#define CRS_ISR_SYNCERR_Pos (8U) +#define CRS_ISR_SYNCERR_Msk (0x1UL << CRS_ISR_SYNCERR_Pos) /*!< 0x00000100 */ +#define CRS_ISR_SYNCERR CRS_ISR_SYNCERR_Msk /*!< SYNC error */ +#define CRS_ISR_SYNCMISS_Pos (9U) +#define CRS_ISR_SYNCMISS_Msk (0x1UL << CRS_ISR_SYNCMISS_Pos) /*!< 0x00000200 */ +#define CRS_ISR_SYNCMISS CRS_ISR_SYNCMISS_Msk /*!< SYNC missed */ +#define CRS_ISR_TRIMOVF_Pos (10U) +#define CRS_ISR_TRIMOVF_Msk (0x1UL << CRS_ISR_TRIMOVF_Pos) /*!< 0x00000400 */ +#define CRS_ISR_TRIMOVF CRS_ISR_TRIMOVF_Msk /*!< Trimming overflow or underflow */ +#define CRS_ISR_FEDIR_Pos (15U) +#define CRS_ISR_FEDIR_Msk (0x1UL << CRS_ISR_FEDIR_Pos) /*!< 0x00008000 */ +#define CRS_ISR_FEDIR CRS_ISR_FEDIR_Msk /*!< Frequency error direction */ +#define CRS_ISR_FECAP_Pos (16U) +#define CRS_ISR_FECAP_Msk (0xFFFFUL << CRS_ISR_FECAP_Pos) /*!< 0xFFFF0000 */ +#define CRS_ISR_FECAP CRS_ISR_FECAP_Msk /*!< Frequency error capture */ + +/******************* Bit definition for CRS_ICR register *********************/ +#define CRS_ICR_SYNCOKC_Pos (0U) +#define CRS_ICR_SYNCOKC_Msk (0x1UL << CRS_ICR_SYNCOKC_Pos) /*!< 0x00000001 */ +#define CRS_ICR_SYNCOKC CRS_ICR_SYNCOKC_Msk /*!< SYNC event OK clear flag */ +#define CRS_ICR_SYNCWARNC_Pos (1U) +#define CRS_ICR_SYNCWARNC_Msk (0x1UL << CRS_ICR_SYNCWARNC_Pos) /*!< 0x00000002 */ +#define CRS_ICR_SYNCWARNC CRS_ICR_SYNCWARNC_Msk /*!< SYNC warning clear flag */ +#define CRS_ICR_ERRC_Pos (2U) +#define CRS_ICR_ERRC_Msk (0x1UL << CRS_ICR_ERRC_Pos) /*!< 0x00000004 */ +#define CRS_ICR_ERRC CRS_ICR_ERRC_Msk /*!< Error clear flag */ +#define CRS_ICR_ESYNCC_Pos (3U) +#define CRS_ICR_ESYNCC_Msk (0x1UL << CRS_ICR_ESYNCC_Pos) /*!< 0x00000008 */ +#define CRS_ICR_ESYNCC CRS_ICR_ESYNCC_Msk /*!< Expected SYNC clear flag */ + +/******************************************************************************/ +/* */ +/* Digital to Analog Converter */ +/* */ +/******************************************************************************/ +/* + * @brief Specific device feature definitions (not present on all devices in the STM32G4 series) + */ +#define DAC_CHANNEL2_SUPPORT /*!< DAC feature available only on specific devices: DAC channel 2 available */ + +/******************** Bit definition for DAC_CR register ********************/ +#define DAC_CR_EN1_Pos (0U) +#define DAC_CR_EN1_Msk (0x1UL << DAC_CR_EN1_Pos) /*!< 0x00000001 */ +#define DAC_CR_EN1 DAC_CR_EN1_Msk /*!*/ +#define DAC_CR_CEN1_Pos (14U) +#define DAC_CR_CEN1_Msk (0x1UL << DAC_CR_CEN1_Pos) /*!< 0x00004000 */ +#define DAC_CR_CEN1 DAC_CR_CEN1_Msk /*!*/ + +#define DAC_CR_HFSEL_Pos (15U) +#define DAC_CR_HFSEL_Msk (0x1UL << DAC_CR_HFSEL_Pos) /*!< 0x00008000 */ +#define DAC_CR_HFSEL DAC_CR_HFSEL_Msk /*!*/ + +#define DAC_CR_EN2_Pos (16U) +#define DAC_CR_EN2_Msk (0x1UL << DAC_CR_EN2_Pos) /*!< 0x00010000 */ +#define DAC_CR_EN2 DAC_CR_EN2_Msk /*!*/ +#define DAC_CR_CEN2_Pos (30U) +#define DAC_CR_CEN2_Msk (0x1UL << DAC_CR_CEN2_Pos) /*!< 0x40000000 */ +#define DAC_CR_CEN2 DAC_CR_CEN2_Msk /*!*/ + +/***************** Bit definition for DAC_SWTRIGR register ******************/ +#define DAC_SWTRIGR_SWTRIG1_Pos (0U) +#define DAC_SWTRIGR_SWTRIG1_Msk (0x1UL << DAC_SWTRIGR_SWTRIG1_Pos) /*!< 0x00000001 */ +#define DAC_SWTRIGR_SWTRIG1 DAC_SWTRIGR_SWTRIG1_Msk /*!>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ + return result; +} +#endif + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) +#else + #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) +#else + #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) +#else + #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXB(value, ptr) __strex(value, ptr) +#else + #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXH(value, ptr) __strex(value, ptr) +#else + #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXW(value, ptr) __strex(value, ptr) +#else + #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __clrex + + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) +{ + rrx r0, r0 + bx lr +} +#endif + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRBT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRHT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRT(value, ptr) __strt(value, ptr) + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +#define __SADD8 __sadd8 +#define __QADD8 __qadd8 +#define __SHADD8 __shadd8 +#define __UADD8 __uadd8 +#define __UQADD8 __uqadd8 +#define __UHADD8 __uhadd8 +#define __SSUB8 __ssub8 +#define __QSUB8 __qsub8 +#define __SHSUB8 __shsub8 +#define __USUB8 __usub8 +#define __UQSUB8 __uqsub8 +#define __UHSUB8 __uhsub8 +#define __SADD16 __sadd16 +#define __QADD16 __qadd16 +#define __SHADD16 __shadd16 +#define __UADD16 __uadd16 +#define __UQADD16 __uqadd16 +#define __UHADD16 __uhadd16 +#define __SSUB16 __ssub16 +#define __QSUB16 __qsub16 +#define __SHSUB16 __shsub16 +#define __USUB16 __usub16 +#define __UQSUB16 __uqsub16 +#define __UHSUB16 __uhsub16 +#define __SASX __sasx +#define __QASX __qasx +#define __SHASX __shasx +#define __UASX __uasx +#define __UQASX __uqasx +#define __UHASX __uhasx +#define __SSAX __ssax +#define __QSAX __qsax +#define __SHSAX __shsax +#define __USAX __usax +#define __UQSAX __uqsax +#define __UHSAX __uhsax +#define __USAD8 __usad8 +#define __USADA8 __usada8 +#define __SSAT16 __ssat16 +#define __USAT16 __usat16 +#define __UXTB16 __uxtb16 +#define __UXTAB16 __uxtab16 +#define __SXTB16 __sxtb16 +#define __SXTAB16 __sxtab16 +#define __SMUAD __smuad +#define __SMUADX __smuadx +#define __SMLAD __smlad +#define __SMLADX __smladx +#define __SMLALD __smlald +#define __SMLALDX __smlaldx +#define __SMUSD __smusd +#define __SMUSDX __smusdx +#define __SMLSD __smlsd +#define __SMLSDX __smlsdx +#define __SMLSLD __smlsld +#define __SMLSLDX __smlsldx +#define __SEL __sel +#define __QADD __qadd +#define __QSUB __qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ + ((int64_t)(ARG3) << 32U) ) >> 32U)) + +#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCC_H */ diff --git a/Drivers/CMSIS/Include/cmsis_armclang.h b/Drivers/CMSIS/Include/cmsis_armclang.h new file mode 100644 index 0000000..e917f35 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_armclang.h @@ -0,0 +1,1444 @@ +/**************************************************************************//** + * @file cmsis_armclang.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V5.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for Arm Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF) + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +#define __SADD8 __builtin_arm_sadd8 +#define __QADD8 __builtin_arm_qadd8 +#define __SHADD8 __builtin_arm_shadd8 +#define __UADD8 __builtin_arm_uadd8 +#define __UQADD8 __builtin_arm_uqadd8 +#define __UHADD8 __builtin_arm_uhadd8 +#define __SSUB8 __builtin_arm_ssub8 +#define __QSUB8 __builtin_arm_qsub8 +#define __SHSUB8 __builtin_arm_shsub8 +#define __USUB8 __builtin_arm_usub8 +#define __UQSUB8 __builtin_arm_uqsub8 +#define __UHSUB8 __builtin_arm_uhsub8 +#define __SADD16 __builtin_arm_sadd16 +#define __QADD16 __builtin_arm_qadd16 +#define __SHADD16 __builtin_arm_shadd16 +#define __UADD16 __builtin_arm_uadd16 +#define __UQADD16 __builtin_arm_uqadd16 +#define __UHADD16 __builtin_arm_uhadd16 +#define __SSUB16 __builtin_arm_ssub16 +#define __QSUB16 __builtin_arm_qsub16 +#define __SHSUB16 __builtin_arm_shsub16 +#define __USUB16 __builtin_arm_usub16 +#define __UQSUB16 __builtin_arm_uqsub16 +#define __UHSUB16 __builtin_arm_uhsub16 +#define __SASX __builtin_arm_sasx +#define __QASX __builtin_arm_qasx +#define __SHASX __builtin_arm_shasx +#define __UASX __builtin_arm_uasx +#define __UQASX __builtin_arm_uqasx +#define __UHASX __builtin_arm_uhasx +#define __SSAX __builtin_arm_ssax +#define __QSAX __builtin_arm_qsax +#define __SHSAX __builtin_arm_shsax +#define __USAX __builtin_arm_usax +#define __UQSAX __builtin_arm_uqsax +#define __UHSAX __builtin_arm_uhsax +#define __USAD8 __builtin_arm_usad8 +#define __USADA8 __builtin_arm_usada8 +#define __SSAT16 __builtin_arm_ssat16 +#define __USAT16 __builtin_arm_usat16 +#define __UXTB16 __builtin_arm_uxtb16 +#define __UXTAB16 __builtin_arm_uxtab16 +#define __SXTB16 __builtin_arm_sxtb16 +#define __SXTAB16 __builtin_arm_sxtab16 +#define __SMUAD __builtin_arm_smuad +#define __SMUADX __builtin_arm_smuadx +#define __SMLAD __builtin_arm_smlad +#define __SMLADX __builtin_arm_smladx +#define __SMLALD __builtin_arm_smlald +#define __SMLALDX __builtin_arm_smlaldx +#define __SMUSD __builtin_arm_smusd +#define __SMUSDX __builtin_arm_smusdx +#define __SMLSD __builtin_arm_smlsd +#define __SMLSDX __builtin_arm_smlsdx +#define __SMLSLD __builtin_arm_smlsld +#define __SMLSLDX __builtin_arm_smlsldx +#define __SEL __builtin_arm_sel +#define __QADD __builtin_arm_qadd +#define __QSUB __builtin_arm_qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/Drivers/CMSIS/Include/cmsis_armclang_ltm.h b/Drivers/CMSIS/Include/cmsis_armclang_ltm.h new file mode 100644 index 0000000..feec324 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_armclang_ltm.h @@ -0,0 +1,1891 @@ +/**************************************************************************//** + * @file cmsis_armclang_ltm.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V1.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2018-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for Arm Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START +#define __PROGRAM_START __main +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP Image$$ARM_LIB_STACK$$ZI$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT Image$$ARM_LIB_STACK$$ZI$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section("RESET"))) +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF) + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM Compiler 6.10 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/Drivers/CMSIS/Include/cmsis_compiler.h b/Drivers/CMSIS/Include/cmsis_compiler.h new file mode 100644 index 0000000..adbf296 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_compiler.h @@ -0,0 +1,283 @@ +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @version V5.1.0 + * @date 09. October 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_COMPILER_H +#define __CMSIS_COMPILER_H + +#include + +/* + * Arm Compiler 4/5 + */ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + + +/* + * Arm Compiler 6.6 LTM (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100) + #include "cmsis_armclang_ltm.h" + + /* + * Arm Compiler above 6.10.1 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) + #include "cmsis_armclang.h" + + +/* + * GNU Compiler + */ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + + +/* + * IAR Compiler + */ +#elif defined ( __ICCARM__ ) + #include + + +/* + * TI Arm Compiler + */ +#elif defined ( __TI_ARM__ ) + #include + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __attribute__((packed)) + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed)) + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed)) + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) + #endif + #ifndef __RESTRICT + #define __RESTRICT __restrict + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * TASKING Compiler + */ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __packed__ + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __packed__ + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __packed__ + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __packed__ T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __align(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * COSMIC Compiler + */ +#elif defined ( __CSMC__ ) + #include + + #ifndef __ASM + #define __ASM _asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + // NO RETURN is automatically detected hence no warning here + #define __NO_RETURN + #endif + #ifndef __USED + #warning No compiler specific solution for __USED. __USED is ignored. + #define __USED + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __PACKED + #define __PACKED @packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT @packed struct + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION @packed union + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + @packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +#else + #error Unknown compiler. +#endif + + +#endif /* __CMSIS_COMPILER_H */ + diff --git a/Drivers/CMSIS/Include/cmsis_gcc.h b/Drivers/CMSIS/Include/cmsis_gcc.h new file mode 100644 index 0000000..3ddcc58 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_gcc.h @@ -0,0 +1,2168 @@ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @version V5.2.0 + * @date 08. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* Fallback for __has_builtin */ +#ifndef __has_builtin + #define __has_builtin(x) (0) +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START + +/** + \brief Initializes data and bss sections + \details This default implementations initialized all data and additional bss + sections relying on .copy.table and .zero.table specified properly + in the used linker script. + + */ +__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) +{ + extern void _start(void) __NO_RETURN; + + typedef struct { + uint32_t const* src; + uint32_t* dest; + uint32_t wlen; + } __copy_table_t; + + typedef struct { + uint32_t* dest; + uint32_t wlen; + } __zero_table_t; + + extern const __copy_table_t __copy_table_start__; + extern const __copy_table_t __copy_table_end__; + extern const __zero_table_t __zero_table_start__; + extern const __zero_table_t __zero_table_end__; + + for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = pTable->src[i]; + } + } + + for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = 0u; + } + } + + _start(); +} + +#define __PROGRAM_START __cmsis_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP __StackTop +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT __StackLimit +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_get_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + return __builtin_arm_get_fpscr(); +#else + uint32_t result; + + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + return(result); +#endif +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_set_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + __builtin_arm_set_fpscr(fpscr); +#else + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); +#endif +#else + (void)fpscr; +#endif +} + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP() __ASM volatile ("nop") + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI() __ASM volatile ("wfi") + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE() __ASM volatile ("wfe") + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV() __ASM volatile ("sev") + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__STATIC_FORCEINLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__STATIC_FORCEINLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__STATIC_FORCEINLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (int16_t)__builtin_bswap16(value); +#else + int16_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__STATIC_FORCEINLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +__extension__ \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ + __extension__ \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#pragma GCC diagnostic pop + +#endif /* __CMSIS_GCC_H */ diff --git a/Drivers/CMSIS/Include/cmsis_iccarm.h b/Drivers/CMSIS/Include/cmsis_iccarm.h new file mode 100644 index 0000000..12d68fd --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_iccarm.h @@ -0,0 +1,964 @@ +/**************************************************************************//** + * @file cmsis_iccarm.h + * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file + * @version V5.1.0 + * @date 08. May 2019 + ******************************************************************************/ + +//------------------------------------------------------------------------------ +// +// Copyright (c) 2017-2019 IAR Systems +// Copyright (c) 2017-2019 Arm Limited. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License") +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//------------------------------------------------------------------------------ + + +#ifndef __CMSIS_ICCARM_H__ +#define __CMSIS_ICCARM_H__ + +#ifndef __ICCARM__ + #error This file should only be compiled by ICCARM +#endif + +#pragma system_include + +#define __IAR_FT _Pragma("inline=forced") __intrinsic + +#if (__VER__ >= 8000000) + #define __ICCARM_V8 1 +#else + #define __ICCARM_V8 0 +#endif + +#ifndef __ALIGNED + #if __ICCARM_V8 + #define __ALIGNED(x) __attribute__((aligned(x))) + #elif (__VER__ >= 7080000) + /* Needs IAR language extensions */ + #define __ALIGNED(x) __attribute__((aligned(x))) + #else + #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. + #define __ALIGNED(x) + #endif +#endif + + +/* Define compiler macros for CPU architecture, used in CMSIS 5. + */ +#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ +/* Macros already defined */ +#else + #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' + #if __ARM_ARCH == 6 + #define __ARM_ARCH_6M__ 1 + #elif __ARM_ARCH == 7 + #if __ARM_FEATURE_DSP + #define __ARM_ARCH_7EM__ 1 + #else + #define __ARM_ARCH_7M__ 1 + #endif + #endif /* __ARM_ARCH */ + #endif /* __ARM_ARCH_PROFILE == 'M' */ +#endif + +/* Alternativ core deduction for older ICCARM's */ +#if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ + !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) + #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) + #define __ARM_ARCH_6M__ 1 + #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) + #define __ARM_ARCH_7M__ 1 + #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) + #define __ARM_ARCH_7EM__ 1 + #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #else + #error "Unknown target." + #endif +#endif + + + +#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 + #define __IAR_M0_FAMILY 1 +#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 + #define __IAR_M0_FAMILY 1 +#else + #define __IAR_M0_FAMILY 0 +#endif + + +#ifndef __ASM + #define __ASM __asm +#endif + +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +#ifndef __INLINE + #define __INLINE inline +#endif + +#ifndef __NO_RETURN + #if __ICCARM_V8 + #define __NO_RETURN __attribute__((__noreturn__)) + #else + #define __NO_RETURN _Pragma("object_attribute=__noreturn") + #endif +#endif + +#ifndef __PACKED + #if __ICCARM_V8 + #define __PACKED __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED __packed + #endif +#endif + +#ifndef __PACKED_STRUCT + #if __ICCARM_V8 + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_STRUCT __packed struct + #endif +#endif + +#ifndef __PACKED_UNION + #if __ICCARM_V8 + #define __PACKED_UNION union __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_UNION __packed union + #endif +#endif + +#ifndef __RESTRICT + #if __ICCARM_V8 + #define __RESTRICT __restrict + #else + /* Needs IAR language extensions */ + #define __RESTRICT restrict + #endif +#endif + +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif + +#ifndef __FORCEINLINE + #define __FORCEINLINE _Pragma("inline=forced") +#endif + +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE +#endif + +#ifndef __UNALIGNED_UINT16_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint16_t __iar_uint16_read(void const *ptr) +{ + return *(__packed uint16_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) +#endif + + +#ifndef __UNALIGNED_UINT16_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) +{ + *(__packed uint16_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint32_t __iar_uint32_read(void const *ptr) +{ + return *(__packed uint32_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) +#endif + +#ifndef __UNALIGNED_UINT32_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) +{ + *(__packed uint32_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32 /* deprecated */ +#pragma language=save +#pragma language=extended +__packed struct __iar_u32 { uint32_t v; }; +#pragma language=restore +#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) +#endif + +#ifndef __USED + #if __ICCARM_V8 + #define __USED __attribute__((used)) + #else + #define __USED _Pragma("__root") + #endif +#endif + +#ifndef __WEAK + #if __ICCARM_V8 + #define __WEAK __attribute__((weak)) + #else + #define __WEAK _Pragma("__weak") + #endif +#endif + +#ifndef __PROGRAM_START +#define __PROGRAM_START __iar_program_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP CSTACK$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT CSTACK$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __vector_table +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE @".intvec" +#endif + +#ifndef __ICCARM_INTRINSICS_VERSION__ + #define __ICCARM_INTRINSICS_VERSION__ 0 +#endif + +#if __ICCARM_INTRINSICS_VERSION__ == 2 + + #if defined(__CLZ) + #undef __CLZ + #endif + #if defined(__REVSH) + #undef __REVSH + #endif + #if defined(__RBIT) + #undef __RBIT + #endif + #if defined(__SSAT) + #undef __SSAT + #endif + #if defined(__USAT) + #undef __USAT + #endif + + #include "iccarm_builtin.h" + + #define __disable_fault_irq __iar_builtin_disable_fiq + #define __disable_irq __iar_builtin_disable_interrupt + #define __enable_fault_irq __iar_builtin_enable_fiq + #define __enable_irq __iar_builtin_enable_interrupt + #define __arm_rsr __iar_builtin_rsr + #define __arm_wsr __iar_builtin_wsr + + + #define __get_APSR() (__arm_rsr("APSR")) + #define __get_BASEPRI() (__arm_rsr("BASEPRI")) + #define __get_CONTROL() (__arm_rsr("CONTROL")) + #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) + + #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + #define __get_FPSCR() (__arm_rsr("FPSCR")) + #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) + #else + #define __get_FPSCR() ( 0 ) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #define __get_IPSR() (__arm_rsr("IPSR")) + #define __get_MSP() (__arm_rsr("MSP")) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __get_MSPLIM() (0U) + #else + #define __get_MSPLIM() (__arm_rsr("MSPLIM")) + #endif + #define __get_PRIMASK() (__arm_rsr("PRIMASK")) + #define __get_PSP() (__arm_rsr("PSP")) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __get_PSPLIM() (0U) + #else + #define __get_PSPLIM() (__arm_rsr("PSPLIM")) + #endif + + #define __get_xPSR() (__arm_rsr("xPSR")) + + #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) + #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) + #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) + #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) + #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __set_MSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) + #endif + #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) + #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __set_PSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) + #endif + + #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) + #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) + #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) + #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) + #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) + #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) + #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) + #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) + #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) + #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) + #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) + #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) + #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) + #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __TZ_get_PSPLIM_NS() (0U) + #define __TZ_set_PSPLIM_NS(VALUE) ((void)(VALUE)) + #else + #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) + #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) + #endif + + #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) + #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) + + #define __NOP __iar_builtin_no_operation + + #define __CLZ __iar_builtin_CLZ + #define __CLREX __iar_builtin_CLREX + + #define __DMB __iar_builtin_DMB + #define __DSB __iar_builtin_DSB + #define __ISB __iar_builtin_ISB + + #define __LDREXB __iar_builtin_LDREXB + #define __LDREXH __iar_builtin_LDREXH + #define __LDREXW __iar_builtin_LDREX + + #define __RBIT __iar_builtin_RBIT + #define __REV __iar_builtin_REV + #define __REV16 __iar_builtin_REV16 + + __IAR_FT int16_t __REVSH(int16_t val) + { + return (int16_t) __iar_builtin_REVSH(val); + } + + #define __ROR __iar_builtin_ROR + #define __RRX __iar_builtin_RRX + + #define __SEV __iar_builtin_SEV + + #if !__IAR_M0_FAMILY + #define __SSAT __iar_builtin_SSAT + #endif + + #define __STREXB __iar_builtin_STREXB + #define __STREXH __iar_builtin_STREXH + #define __STREXW __iar_builtin_STREX + + #if !__IAR_M0_FAMILY + #define __USAT __iar_builtin_USAT + #endif + + #define __WFE __iar_builtin_WFE + #define __WFI __iar_builtin_WFI + + #if __ARM_MEDIA__ + #define __SADD8 __iar_builtin_SADD8 + #define __QADD8 __iar_builtin_QADD8 + #define __SHADD8 __iar_builtin_SHADD8 + #define __UADD8 __iar_builtin_UADD8 + #define __UQADD8 __iar_builtin_UQADD8 + #define __UHADD8 __iar_builtin_UHADD8 + #define __SSUB8 __iar_builtin_SSUB8 + #define __QSUB8 __iar_builtin_QSUB8 + #define __SHSUB8 __iar_builtin_SHSUB8 + #define __USUB8 __iar_builtin_USUB8 + #define __UQSUB8 __iar_builtin_UQSUB8 + #define __UHSUB8 __iar_builtin_UHSUB8 + #define __SADD16 __iar_builtin_SADD16 + #define __QADD16 __iar_builtin_QADD16 + #define __SHADD16 __iar_builtin_SHADD16 + #define __UADD16 __iar_builtin_UADD16 + #define __UQADD16 __iar_builtin_UQADD16 + #define __UHADD16 __iar_builtin_UHADD16 + #define __SSUB16 __iar_builtin_SSUB16 + #define __QSUB16 __iar_builtin_QSUB16 + #define __SHSUB16 __iar_builtin_SHSUB16 + #define __USUB16 __iar_builtin_USUB16 + #define __UQSUB16 __iar_builtin_UQSUB16 + #define __UHSUB16 __iar_builtin_UHSUB16 + #define __SASX __iar_builtin_SASX + #define __QASX __iar_builtin_QASX + #define __SHASX __iar_builtin_SHASX + #define __UASX __iar_builtin_UASX + #define __UQASX __iar_builtin_UQASX + #define __UHASX __iar_builtin_UHASX + #define __SSAX __iar_builtin_SSAX + #define __QSAX __iar_builtin_QSAX + #define __SHSAX __iar_builtin_SHSAX + #define __USAX __iar_builtin_USAX + #define __UQSAX __iar_builtin_UQSAX + #define __UHSAX __iar_builtin_UHSAX + #define __USAD8 __iar_builtin_USAD8 + #define __USADA8 __iar_builtin_USADA8 + #define __SSAT16 __iar_builtin_SSAT16 + #define __USAT16 __iar_builtin_USAT16 + #define __UXTB16 __iar_builtin_UXTB16 + #define __UXTAB16 __iar_builtin_UXTAB16 + #define __SXTB16 __iar_builtin_SXTB16 + #define __SXTAB16 __iar_builtin_SXTAB16 + #define __SMUAD __iar_builtin_SMUAD + #define __SMUADX __iar_builtin_SMUADX + #define __SMMLA __iar_builtin_SMMLA + #define __SMLAD __iar_builtin_SMLAD + #define __SMLADX __iar_builtin_SMLADX + #define __SMLALD __iar_builtin_SMLALD + #define __SMLALDX __iar_builtin_SMLALDX + #define __SMUSD __iar_builtin_SMUSD + #define __SMUSDX __iar_builtin_SMUSDX + #define __SMLSD __iar_builtin_SMLSD + #define __SMLSDX __iar_builtin_SMLSDX + #define __SMLSLD __iar_builtin_SMLSLD + #define __SMLSLDX __iar_builtin_SMLSLDX + #define __SEL __iar_builtin_SEL + #define __QADD __iar_builtin_QADD + #define __QSUB __iar_builtin_QSUB + #define __PKHBT __iar_builtin_PKHBT + #define __PKHTB __iar_builtin_PKHTB + #endif + +#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #define __CLZ __cmsis_iar_clz_not_active + #define __SSAT __cmsis_iar_ssat_not_active + #define __USAT __cmsis_iar_usat_not_active + #define __RBIT __cmsis_iar_rbit_not_active + #define __get_APSR __cmsis_iar_get_APSR_not_active + #endif + + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #define __get_FPSCR __cmsis_iar_get_FPSR_not_active + #define __set_FPSCR __cmsis_iar_set_FPSR_not_active + #endif + + #ifdef __INTRINSICS_INCLUDED + #error intrinsics.h is already included previously! + #endif + + #include + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #undef __CLZ + #undef __SSAT + #undef __USAT + #undef __RBIT + #undef __get_APSR + + __STATIC_INLINE uint8_t __CLZ(uint32_t data) + { + if (data == 0U) { return 32U; } + + uint32_t count = 0U; + uint32_t mask = 0x80000000U; + + while ((data & mask) == 0U) + { + count += 1U; + mask = mask >> 1U; + } + return count; + } + + __STATIC_INLINE uint32_t __RBIT(uint32_t v) + { + uint8_t sc = 31U; + uint32_t r = v; + for (v >>= 1U; v; v >>= 1U) + { + r <<= 1U; + r |= v & 1U; + sc--; + } + return (r << sc); + } + + __STATIC_INLINE uint32_t __get_APSR(void) + { + uint32_t res; + __asm("MRS %0,APSR" : "=r" (res)); + return res; + } + + #endif + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #undef __get_FPSCR + #undef __set_FPSCR + #define __get_FPSCR() (0) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #pragma diag_suppress=Pe940 + #pragma diag_suppress=Pe177 + + #define __enable_irq __enable_interrupt + #define __disable_irq __disable_interrupt + #define __NOP __no_operation + + #define __get_xPSR __get_PSR + + #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) + + __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) + { + return __LDREX((unsigned long *)ptr); + } + + __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) + { + return __STREX(value, (unsigned long *)ptr); + } + #endif + + + /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + #if (__CORTEX_M >= 0x03) + + __IAR_FT uint32_t __RRX(uint32_t value) + { + uint32_t result; + __ASM("RRX %0, %1" : "=r"(result) : "r" (value) : "cc"); + return(result); + } + + __IAR_FT void __set_BASEPRI_MAX(uint32_t value) + { + __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); + } + + + #define __enable_fault_irq __enable_fiq + #define __disable_fault_irq __disable_fiq + + + #endif /* (__CORTEX_M >= 0x03) */ + + __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) + { + return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); + } + + #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + __IAR_FT uint32_t __get_MSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,MSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_MSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR MSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __get_PSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_PSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) + { + __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PSP_NS(uint32_t value) + { + __asm volatile("MSR PSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_MSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSP_NS(uint32_t value) + { + __asm volatile("MSR MSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_SP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,SP_NS" : "=r" (res)); + return res; + } + __IAR_FT void __TZ_set_SP_NS(uint32_t value) + { + __asm volatile("MSR SP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) + { + __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) + { + __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) + { + __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) + { + __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); + } + + #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + +#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) + +#if __IAR_M0_FAMILY + __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) + { + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; + } + + __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) + { + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; + } +#endif + +#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + + __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) + { + uint32_t res; + __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) + { + uint32_t res; + __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) + { + uint32_t res; + __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return res; + } + + __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) + { + __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) + { + __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) + { + __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); + } + +#endif /* (__CORTEX_M >= 0x03) */ + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + + __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) + { + __ASM volatile ("STLB %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) + { + __ASM volatile ("STLH %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) + { + __ASM volatile ("STL %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + +#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#undef __IAR_FT +#undef __IAR_M0_FAMILY +#undef __ICCARM_V8 + +#pragma diag_default=Pe940 +#pragma diag_default=Pe177 + +#endif /* __CMSIS_ICCARM_H__ */ diff --git a/Drivers/CMSIS/Include/cmsis_version.h b/Drivers/CMSIS/Include/cmsis_version.h new file mode 100644 index 0000000..f2e2746 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_version.h @@ -0,0 +1,39 @@ +/**************************************************************************//** + * @file cmsis_version.h + * @brief CMSIS Core(M) Version definitions + * @version V5.0.3 + * @date 24. June 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CMSIS_VERSION_H +#define __CMSIS_VERSION_H + +/* CMSIS Version definitions */ +#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ +#define __CM_CMSIS_VERSION_SUB ( 3U) /*!< [15:0] CMSIS Core(M) sub version */ +#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ + __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ +#endif diff --git a/Drivers/CMSIS/Include/core_armv81mml.h b/Drivers/CMSIS/Include/core_armv81mml.h new file mode 100644 index 0000000..8441e57 --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv81mml.h @@ -0,0 +1,2968 @@ +/**************************************************************************//** + * @file core_armv81mml.h + * @brief CMSIS Armv8.1-M Mainline Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 15. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2018-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV81MML_H_GENERIC +#define __CORE_ARMV81MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMV81MML + @{ + */ + +#include "cmsis_version.h" + +#define __ARM_ARCH_8M_MAIN__ 1 // patching for now +/* CMSIS ARMV81MML definitions */ +#define __ARMv81MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv81MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv81MML_CMSIS_VERSION ((__ARMv81MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv81MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV81MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV81MML_H_DEPENDANT +#define __CORE_ARMV81MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv81MML_REV + #define __ARMv81MML_REV 0x0000U + #warning "__ARMv81MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv81MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_PXN_Pos 4U /*!< MPU RLAR: PXN Position */ +#define MPU_RLAR_PXN_Msk (0x1UL << MPU_RLAR_PXN_Pos) /*!< MPU RLAR: PXN Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV81MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_armv8mbl.h b/Drivers/CMSIS/Include/core_armv8mbl.h new file mode 100644 index 0000000..344dca5 --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv8mbl.h @@ -0,0 +1,1921 @@ +/**************************************************************************//** + * @file core_armv8mbl.h + * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MBL_H_GENERIC +#define __CORE_ARMV8MBL_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MBL + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __ARMv8MBL_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MBL_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MBL_CMSIS_VERSION ((__ARMv8MBL_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MBL_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M ( 2U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MBL_H_DEPENDANT +#define __CORE_ARMV8MBL_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MBL_REV + #define __ARMv8MBL_REV 0x0000U + #warning "__ARMv8MBL_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MBL */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_armv8mml.h b/Drivers/CMSIS/Include/core_armv8mml.h new file mode 100644 index 0000000..5ddb8ae --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv8mml.h @@ -0,0 +1,2835 @@ +/**************************************************************************//** + * @file core_armv8mml.h + * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 12. September 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MML_H_GENERIC +#define __CORE_ARMV8MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MML + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS Armv8MML definitions */ +#define __ARMv8MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MML_CMSIS_VERSION ((__ARMv8MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MML_H_DEPENDANT +#define __CORE_ARMV8MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MML_REV + #define __ARMv8MML_REV 0x0000U + #warning "__ARMv8MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm0.h b/Drivers/CMSIS/Include/core_cm0.h new file mode 100644 index 0000000..cafae5a --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm0.h @@ -0,0 +1,952 @@ +/**************************************************************************//** + * @file core_cm0.h + * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM0_H_GENERIC +#define __CORE_CM0_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M0 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM0 definitions */ +#define __CM0_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM0_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16U) | \ + __CM0_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (0U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0_H_DEPENDANT +#define __CORE_CM0_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM0_REV + #define __CM0_REV 0x0000U + #warning "__CM0_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M0 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M0 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M0 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + 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))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = 0x0U; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M0 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = 0x0U; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm0plus.h b/Drivers/CMSIS/Include/core_cm0plus.h new file mode 100644 index 0000000..d104965 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm0plus.h @@ -0,0 +1,1085 @@ +/**************************************************************************//** + * @file core_cm0plus.h + * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM0PLUS_H_GENERIC +#define __CORE_CM0PLUS_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex-M0+ + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM0+ definitions */ +#define __CM0PLUS_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM0PLUS_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \ + __CM0PLUS_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (0U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0PLUS_H_DEPENDANT +#define __CORE_CM0PLUS_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM0PLUS_REV + #define __CM0PLUS_REV 0x0000U + #warning "__CM0PLUS_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex-M0+ */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M0+ header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0+ */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + 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))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t vectors = SCB->VTOR; +#else + uint32_t vectors = 0x0U; +#endif + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M0+ does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t vectors = SCB->VTOR; +#else + uint32_t vectors = 0x0U; +#endif + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm1.h b/Drivers/CMSIS/Include/core_cm1.h new file mode 100644 index 0000000..76b4569 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm1.h @@ -0,0 +1,979 @@ +/**************************************************************************//** + * @file core_cm1.h + * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File + * @version V1.0.1 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM1_H_GENERIC +#define __CORE_CM1_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M1 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM1 definitions */ +#define __CM1_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM1_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM1_CMSIS_VERSION ((__CM1_CMSIS_VERSION_MAIN << 16U) | \ + __CM1_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (1U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM1_H_DEPENDANT +#define __CORE_CM1_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM1_REV + #define __CM1_REV 0x0100U + #warning "__CM1_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M1 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_ITCMUAEN_Pos 4U /*!< ACTLR: Instruction TCM Upper Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMUAEN_Msk (1UL << SCnSCB_ACTLR_ITCMUAEN_Pos) /*!< ACTLR: Instruction TCM Upper Alias Enable Mask */ + +#define SCnSCB_ACTLR_ITCMLAEN_Pos 3U /*!< ACTLR: Instruction TCM Lower Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMLAEN_Msk (1UL << SCnSCB_ACTLR_ITCMLAEN_Pos) /*!< ACTLR: Instruction TCM Lower Alias Enable Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M1 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M1 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M1 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + 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))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)0x0U; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + /* ARM Application Note 321 states that the M1 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)0x0U; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm23.h b/Drivers/CMSIS/Include/core_cm23.h new file mode 100644 index 0000000..b79c6af --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm23.h @@ -0,0 +1,1996 @@ +/**************************************************************************//** + * @file core_cm23.h + * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM23_H_GENERIC +#define __CORE_CM23_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M23 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __CM23_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM23_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM23_CMSIS_VERSION ((__CM23_CMSIS_VERSION_MAIN << 16U) | \ + __CM23_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (23U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM23_H_DEPENDANT +#define __CORE_CM23_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM23_REV + #define __CM23_REV 0x0000U + #warning "__CM23_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M23 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for Cortex-M23 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for Cortex-M23 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm3.h b/Drivers/CMSIS/Include/core_cm3.h new file mode 100644 index 0000000..8157ca7 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm3.h @@ -0,0 +1,1937 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M3 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (3U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM3_REV + #define __CM3_REV 0x0200U + #warning "__CM3_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M3 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV < 0x0201U) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1U]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ +#endif + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm33.h b/Drivers/CMSIS/Include/core_cm33.h new file mode 100644 index 0000000..7fed59a --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm33.h @@ -0,0 +1,2910 @@ +/**************************************************************************//** + * @file core_cm33.h + * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM33_H_GENERIC +#define __CORE_CM33_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M33 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM33 definitions */ +#define __CM33_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM33_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM33_CMSIS_VERSION ((__CM33_CMSIS_VERSION_MAIN << 16U) | \ + __CM33_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (33U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_FP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM33_H_DEPENDANT +#define __CORE_CM33_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM33_REV + #define __CM33_REV 0x0000U + #warning "__CM33_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M33 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm35p.h b/Drivers/CMSIS/Include/core_cm35p.h new file mode 100644 index 0000000..5579c82 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm35p.h @@ -0,0 +1,2910 @@ +/**************************************************************************//** + * @file core_cm35p.h + * @brief CMSIS Cortex-M35P Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM35P_H_GENERIC +#define __CORE_CM35P_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M35P + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM35P definitions */ +#define __CM35P_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM35P_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM35P_CMSIS_VERSION ((__CM35P_CMSIS_VERSION_MAIN << 16U) | \ + __CM35P_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (35U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_FP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM35P_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM35P_H_DEPENDANT +#define __CORE_CM35P_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM35P_REV + #define __CM35P_REV 0x0000U + #warning "__CM35P_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M35P */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000004UL) /* bit [2] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM35P_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm4.h b/Drivers/CMSIS/Include/core_cm4.h new file mode 100644 index 0000000..12c023b --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm4.h @@ -0,0 +1,2124 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V5.1.0 + * @date 13. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M4 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (4U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM4_REV + #define __CM4_REV 0x0000U + #warning "__CM4_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M4 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ +#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M4 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm7.h b/Drivers/CMSIS/Include/core_cm7.h new file mode 100644 index 0000000..c4515d8 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm7.h @@ -0,0 +1,2725 @@ +/**************************************************************************//** + * @file core_cm7.h + * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File + * @version V5.1.1 + * @date 28. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM7_H_GENERIC +#define __CORE_CM7_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M7 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM7 definitions */ +#define __CM7_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM7_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16U) | \ + __CM7_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (7U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM7_H_DEPENDANT +#define __CORE_CM7_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM7_REV + #define __CM7_REV 0x0000U + #warning "__CM7_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __ICACHE_PRESENT + #define __ICACHE_PRESENT 0U + #warning "__ICACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DCACHE_PRESENT + #define __DCACHE_PRESENT 0U + #warning "__DCACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DTCM_PRESENT + #define __DTCM_PRESENT 0U + #warning "__DTCM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M7 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[1U]; + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED3[93U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: Branch prediction enable bit Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: Branch prediction enable bit Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: Instruction cache enable bit Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: Instruction cache enable bit Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: Cache enable bit Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: Cache enable bit Mask */ + +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISDYNADD_Pos 26U /*!< ACTLR: DISDYNADD Position */ +#define SCnSCB_ACTLR_DISDYNADD_Msk (1UL << SCnSCB_ACTLR_DISDYNADD_Pos) /*!< ACTLR: DISDYNADD Mask */ + +#define SCnSCB_ACTLR_DISISSCH1_Pos 21U /*!< ACTLR: DISISSCH1 Position */ +#define SCnSCB_ACTLR_DISISSCH1_Msk (0x1FUL << SCnSCB_ACTLR_DISISSCH1_Pos) /*!< ACTLR: DISISSCH1 Mask */ + +#define SCnSCB_ACTLR_DISDI_Pos 16U /*!< ACTLR: DISDI Position */ +#define SCnSCB_ACTLR_DISDI_Msk (0x1FUL << SCnSCB_ACTLR_DISDI_Pos) /*!< ACTLR: DISDI Mask */ + +#define SCnSCB_ACTLR_DISCRITAXIRUR_Pos 15U /*!< ACTLR: DISCRITAXIRUR Position */ +#define SCnSCB_ACTLR_DISCRITAXIRUR_Msk (1UL << SCnSCB_ACTLR_DISCRITAXIRUR_Pos) /*!< ACTLR: DISCRITAXIRUR Mask */ + +#define SCnSCB_ACTLR_DISBTACALLOC_Pos 14U /*!< ACTLR: DISBTACALLOC Position */ +#define SCnSCB_ACTLR_DISBTACALLOC_Msk (1UL << SCnSCB_ACTLR_DISBTACALLOC_Pos) /*!< ACTLR: DISBTACALLOC Mask */ + +#define SCnSCB_ACTLR_DISBTACREAD_Pos 13U /*!< ACTLR: DISBTACREAD Position */ +#define SCnSCB_ACTLR_DISBTACREAD_Msk (1UL << SCnSCB_ACTLR_DISBTACREAD_Pos) /*!< ACTLR: DISBTACREAD Mask */ + +#define SCnSCB_ACTLR_DISITMATBFLUSH_Pos 12U /*!< ACTLR: DISITMATBFLUSH Position */ +#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ + +#define SCnSCB_ACTLR_DISRAMODE_Pos 11U /*!< ACTLR: DISRAMODE Position */ +#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ + +#define SCnSCB_ACTLR_FPEXCODIS_Pos 10U /*!< ACTLR: FPEXCODIS Position */ +#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED3[981U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +#define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR2: VFP Misc bits Position */ +#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR2: VFP Misc bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + __DSB(); +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = SCB->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## Cache functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_CacheFunctions Cache Functions + \brief Functions that configure Instruction and Data cache. + @{ + */ + +/* Cache Size ID Register Macros */ +#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) +#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) + +#define __SCB_DCACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ +#define __SCB_ICACHE_LINE_SIZE 32U /*!< Cortex-M7 cache line size is fixed to 32 bytes (8 words). See also register SCB_CCSIDR */ + +/** + \brief Enable I-Cache + \details Turns on I-Cache + */ +__STATIC_FORCEINLINE void SCB_EnableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + if (SCB->CCR & SCB_CCR_IC_Msk) return; /* return if ICache is already enabled */ + + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + SCB->CCR |= (uint32_t)SCB_CCR_IC_Msk; /* enable I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable I-Cache + \details Turns off I-Cache + */ +__STATIC_FORCEINLINE void SCB_DisableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk; /* disable I-Cache */ + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate I-Cache + \details Invalidates I-Cache + */ +__STATIC_FORCEINLINE void SCB_InvalidateICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; + __DSB(); + __ISB(); + #endif +} + + +/** + \brief I-Cache Invalidate by address + \details Invalidates I-Cache for the given address. + I-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. + I-Cache memory blocks which are part of given address + given size are invalidated. + \param[in] addr address + \param[in] isize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_InvalidateICache_by_Addr (void *addr, int32_t isize) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + if ( isize > 0 ) { + int32_t op_size = isize + (((uint32_t)addr) & (__SCB_ICACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_ICACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->ICIMVAU = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_ICACHE_LINE_SIZE; + op_size -= __SCB_ICACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief Enable D-Cache + \details Turns on D-Cache + */ +__STATIC_FORCEINLINE void SCB_EnableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + if (SCB->CCR & SCB_CCR_DC_Msk) return; /* return if DCache is already enabled */ + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + __DSB(); + + SCB->CCR |= (uint32_t)SCB_CCR_DC_Msk; /* enable D-Cache */ + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable D-Cache + \details Turns off D-Cache + */ +__STATIC_FORCEINLINE void SCB_DisableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + SCB->CCR &= ~(uint32_t)SCB_CCR_DC_Msk; /* disable D-Cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate D-Cache + \details Invalidates D-Cache + */ +__STATIC_FORCEINLINE void SCB_InvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean D-Cache + \details Cleans D-Cache + */ +__STATIC_FORCEINLINE void SCB_CleanDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCSW = (((sets << SCB_DCCSW_SET_Pos) & SCB_DCCSW_SET_Msk) | + ((ways << SCB_DCCSW_WAY_Pos) & SCB_DCCSW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean & Invalidate D-Cache + \details Cleans and Invalidates D-Cache + */ +__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /* select Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Invalidate by address + \details Invalidates D-Cache for the given address. + D-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are invalidated. + \param[in] addr address + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_InvalidateDCache_by_Addr (void *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief D-Cache Clean by address + \details Cleans D-Cache for the given address + D-Cache is cleaned starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are cleaned. + \param[in] addr address + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCCMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + + +/** + \brief D-Cache Clean and Invalidate by address + \details Cleans and invalidates D_Cache for the given address + D-Cache is cleaned and invalidated starting from a 32 byte aligned address in 32 byte granularity. + D-Cache memory blocks which are part of given address + given size are cleaned and invalidated. + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_FORCEINLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + if ( dsize > 0 ) { + int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U)); + uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */; + + __DSB(); + + do { + SCB->DCCIMVAC = op_addr; /* register accepts only 32byte aligned values, only bits 31..5 are valid */ + op_addr += __SCB_DCACHE_LINE_SIZE; + op_size -= __SCB_DCACHE_LINE_SIZE; + } while ( op_size > 0 ); + + __DSB(); + __ISB(); + } + #endif +} + +/*@} end of CMSIS_Core_CacheFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_sc000.h b/Drivers/CMSIS/Include/core_sc000.h new file mode 100644 index 0000000..cf92577 --- /dev/null +++ b/Drivers/CMSIS/Include/core_sc000.h @@ -0,0 +1,1025 @@ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 12. November 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC000_H_GENERIC +#define __CORE_SC000_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC000 definitions */ +#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \ + __SC000_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (000U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC000_H_DEPENDANT +#define __CORE_SC000_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC000_REV + #define __SC000_REV 0x0000U + #warning "__SC000_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC000 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED0[1U]; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + uint32_t RESERVED1[154U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the SC000 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for SC000 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for SC000 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for SC000 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + 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))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; + /* ARM Application Note 321 states that the M0 and M0+ do not require the architectural barrier - assume SC000 is the same */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_sc300.h b/Drivers/CMSIS/Include/core_sc300.h new file mode 100644 index 0000000..40f3af8 --- /dev/null +++ b/Drivers/CMSIS/Include/core_sc300.h @@ -0,0 +1,1912 @@ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 31. May 2019 + ******************************************************************************/ +/* + * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC300_H_GENERIC +#define __CORE_SC300_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
        + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
        + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
        + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC3000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC300 definitions */ +#define __SC300_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC300_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16U) | \ + __SC300_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (300U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_FP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC300_H_DEPENDANT +#define __CORE_SC300_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC300_REV + #define __SC300_REV 0x0000U + #warning "__SC300_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC300 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RESERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED1[129U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[32U]; + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + __COMPILER_BARRIER(); + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __COMPILER_BARRIER(); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables 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_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \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) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; + /* ARM Application Note 321 states that the M3 does not require the architectural barrier */ +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t vectors = (uint32_t )SCB->VTOR; + return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/mpu_armv7.h b/Drivers/CMSIS/Include/mpu_armv7.h new file mode 100644 index 0000000..66ef59b --- /dev/null +++ b/Drivers/CMSIS/Include/mpu_armv7.h @@ -0,0 +1,272 @@ +/****************************************************************************** + * @file mpu_armv7.h + * @brief CMSIS MPU API for Armv7-M MPU + * @version V5.1.0 + * @date 08. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV7_H +#define ARM_MPU_ARMV7_H + +#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes +#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes +#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes +#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes +#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes +#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte +#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes +#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes +#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes +#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes +#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes +#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes +#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes +#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes +#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes +#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte +#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes +#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes +#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes +#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes +#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes +#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes +#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes +#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes +#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes +#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte +#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes +#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes + +#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access +#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only +#define ARM_MPU_AP_URO 2U ///!< MPU Access Permission unprivileged access read-only +#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access +#define ARM_MPU_AP_PRO 5U ///!< MPU Access Permission privileged access read-only +#define ARM_MPU_AP_RO 6U ///!< MPU Access Permission read-only access + +/** MPU Region Base Address Register Value +* +* \param Region The region to be configured, number 0 to 15. +* \param BaseAddress The base address for the region. +*/ +#define ARM_MPU_RBAR(Region, BaseAddress) \ + (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \ + ((Region) & MPU_RBAR_REGION_Msk) | \ + (MPU_RBAR_VALID_Msk)) + +/** +* MPU Memory Access Attributes +* +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +*/ +#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable) \ + ((((TypeExtField) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \ + (((IsShareable) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \ + (((IsCacheable) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \ + (((IsBufferable) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk)) + +/** +* MPU Region Attribute and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param AccessAttributes Memory access attribution, see \ref ARM_MPU_ACCESS_. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size) \ + ((((DisableExec) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \ + (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \ + (((AccessAttributes) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk))) | \ + (((SubRegionDisable) << MPU_RASR_SRD_Pos) & MPU_RASR_SRD_Msk) | \ + (((Size) << MPU_RASR_SIZE_Pos) & MPU_RASR_SIZE_Msk) | \ + (((MPU_RASR_ENABLE_Msk)))) + +/** +* MPU Region Attribute and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \ + ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size) + +/** +* MPU Memory Access Attribute for strongly ordered memory. +* - TEX: 000b +* - Shareable +* - Non-cacheable +* - Non-bufferable +*/ +#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U) + +/** +* MPU Memory Access Attribute for device memory. +* - TEX: 000b (if shareable) or 010b (if non-shareable) +* - Shareable or non-shareable +* - Non-cacheable +* - Bufferable (if shareable) or non-bufferable (if non-shareable) +* +* \param IsShareable Configures the device memory as shareable or non-shareable. +*/ +#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U)) + +/** +* MPU Memory Access Attribute for normal memory. +* - TEX: 1BBb (reflecting outer cacheability rules) +* - Shareable or non-shareable +* - Cacheable or non-cacheable (reflecting inner cacheability rules) +* - Bufferable or non-bufferable (reflecting inner cacheability rules) +* +* \param OuterCp Configures the outer cache policy. +* \param InnerCp Configures the inner cache policy. +* \param IsShareable Configures the memory as shareable or non-shareable. +*/ +#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U)) + +/** +* MPU Memory Access Attribute non-cacheable policy. +*/ +#define ARM_MPU_CACHEP_NOCACHE 0U + +/** +* MPU Memory Access Attribute write-back, write and read allocate policy. +*/ +#define ARM_MPU_CACHEP_WB_WRA 1U + +/** +* MPU Memory Access Attribute write-through, no write allocate policy. +*/ +#define ARM_MPU_CACHEP_WT_NWA 2U + +/** +* MPU Memory Access Attribute write-back, no write allocate policy. +*/ +#define ARM_MPU_CACHEP_WB_NWA 3U + + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; //!< The region base address register value (RBAR) + uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + MPU->RNR = rnr; + MPU->RASR = 0U; +} + +/** Configure an MPU region. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr) +{ + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr) +{ + MPU->RNR = rnr; + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + while (cnt > MPU_TYPE_RALIASES) { + ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); + table += MPU_TYPE_RALIASES; + cnt -= MPU_TYPE_RALIASES; + } + ARM_MPU_OrderedMemcpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize); +} + +#endif diff --git a/Drivers/CMSIS/Include/mpu_armv8.h b/Drivers/CMSIS/Include/mpu_armv8.h new file mode 100644 index 0000000..0041d4d --- /dev/null +++ b/Drivers/CMSIS/Include/mpu_armv8.h @@ -0,0 +1,346 @@ +/****************************************************************************** + * @file mpu_armv8.h + * @brief CMSIS MPU API for Armv8-M and Armv8.1-M MPU + * @version V5.1.0 + * @date 08. March 2019 + ******************************************************************************/ +/* + * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV8_H +#define ARM_MPU_ARMV8_H + +/** \brief Attribute for device memory (outer only) */ +#define ARM_MPU_ATTR_DEVICE ( 0U ) + +/** \brief Attribute for non-cacheable, normal memory */ +#define ARM_MPU_ATTR_NON_CACHEABLE ( 4U ) + +/** \brief Attribute for normal memory (outer and inner) +* \param NT Non-Transient: Set to 1 for non-transient data. +* \param WB Write-Back: Set to 1 to use write-back update policy. +* \param RA Read Allocation: Set to 1 to use cache allocation on read miss. +* \param WA Write Allocation: Set to 1 to use cache allocation on write miss. +*/ +#define ARM_MPU_ATTR_MEMORY_(NT, WB, RA, WA) \ + (((NT & 1U) << 3U) | ((WB & 1U) << 2U) | ((RA & 1U) << 1U) | (WA & 1U)) + +/** \brief Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRnE (0U) + +/** \brief Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRE (1U) + +/** \brief Device memory type non Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGRE (2U) + +/** \brief Device memory type Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_GRE (3U) + +/** \brief Memory Attribute +* \param O Outer memory attributes +* \param I O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes +*/ +#define ARM_MPU_ATTR(O, I) (((O & 0xFU) << 4U) | (((O & 0xFU) != 0U) ? (I & 0xFU) : ((I & 0x3U) << 2U))) + +/** \brief Normal memory non-shareable */ +#define ARM_MPU_SH_NON (0U) + +/** \brief Normal memory outer shareable */ +#define ARM_MPU_SH_OUTER (2U) + +/** \brief Normal memory inner shareable */ +#define ARM_MPU_SH_INNER (3U) + +/** \brief Memory access permissions +* \param RO Read-Only: Set to 1 for read-only memory. +* \param NP Non-Privileged: Set to 1 for non-privileged memory. +*/ +#define ARM_MPU_AP_(RO, NP) (((RO & 1U) << 1U) | (NP & 1U)) + +/** \brief Region Base Address Register value +* \param BASE The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. +* \param SH Defines the Shareability domain for this memory region. +* \param RO Read-Only: Set to 1 for a read-only memory region. +* \param NP Non-Privileged: Set to 1 for a non-privileged memory region. +* \oaram XN eXecute Never: Set to 1 for a non-executable memory region. +*/ +#define ARM_MPU_RBAR(BASE, SH, RO, NP, XN) \ + ((BASE & MPU_RBAR_BASE_Msk) | \ + ((SH << MPU_RBAR_SH_Pos) & MPU_RBAR_SH_Msk) | \ + ((ARM_MPU_AP_(RO, NP) << MPU_RBAR_AP_Pos) & MPU_RBAR_AP_Msk) | \ + ((XN << MPU_RBAR_XN_Pos) & MPU_RBAR_XN_Msk)) + +/** \brief Region Limit Address Register value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR(LIMIT, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +#if defined(MPU_RLAR_PXN_Pos) + +/** \brief Region Limit Address Register with PXN value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param PXN Privileged execute never. Defines whether code can be executed from this privileged region. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR_PXN(LIMIT, PXN, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((PXN << MPU_RLAR_PXN_Pos) & MPU_RLAR_PXN_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +#endif + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; /*!< Region Base Address Register value */ + uint32_t RLAR; /*!< Region Limit Address Register value */ +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +#ifdef MPU_NS +/** Enable the Non-secure MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable_NS(uint32_t MPU_Control) +{ + MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif + __DSB(); + __ISB(); +} + +/** Disable the Non-secure MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable_NS(void) +{ + __DMB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU_NS->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} +#endif + +/** Set the memory attribute encoding to the given MPU. +* \param mpu Pointer to the MPU to be configured. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttrEx(MPU_Type* mpu, uint8_t idx, uint8_t attr) +{ + const uint8_t reg = idx / 4U; + const uint32_t pos = ((idx % 4U) * 8U); + const uint32_t mask = 0xFFU << pos; + + if (reg >= (sizeof(mpu->MAIR) / sizeof(mpu->MAIR[0]))) { + return; // invalid index + } + + mpu->MAIR[reg] = ((mpu->MAIR[reg] & ~mask) | ((attr << pos) & mask)); +} + +/** Set the memory attribute encoding. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU, idx, attr); +} + +#ifdef MPU_NS +/** Set the memory attribute encoding to the Non-secure MPU. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr_NS(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU_NS, idx, attr); +} +#endif + +/** Clear and disable the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegionEx(MPU_Type* mpu, uint32_t rnr) +{ + mpu->RNR = rnr; + mpu->RLAR = 0U; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU, rnr); +} + +#ifdef MPU_NS +/** Clear and disable the given Non-secure MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion_NS(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU_NS, rnr); +} +#endif + +/** Configure the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(MPU_Type* mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + mpu->RNR = rnr; + mpu->RBAR = rbar; + mpu->RLAR = rlar; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU, rnr, rbar, rlar); +} + +#ifdef MPU_NS +/** Configure the given Non-secure MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion_NS(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU_NS, rnr, rbar, rlar); +} +#endif + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table to the given MPU. +* \param mpu Pointer to the MPU registers to be used. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_LoadEx(MPU_Type* mpu, uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + if (cnt == 1U) { + mpu->RNR = rnr; + ARM_MPU_OrderedMemcpy(&(mpu->RBAR), &(table->RBAR), rowWordSize); + } else { + uint32_t rnrBase = rnr & ~(MPU_TYPE_RALIASES-1U); + uint32_t rnrOffset = rnr % MPU_TYPE_RALIASES; + + mpu->RNR = rnrBase; + while ((rnrOffset + cnt) > MPU_TYPE_RALIASES) { + uint32_t c = MPU_TYPE_RALIASES - rnrOffset; + ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); + table += c; + cnt -= c; + rnrOffset = 0U; + rnrBase += MPU_TYPE_RALIASES; + mpu->RNR = rnrBase; + } + + ARM_MPU_OrderedMemcpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), cnt*rowWordSize); + } +} + +/** Load the given number of MPU regions from a table. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU, rnr, table, cnt); +} + +#ifdef MPU_NS +/** Load the given number of MPU regions from a table to the Non-secure MPU. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load_NS(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU_NS, rnr, table, cnt); +} +#endif + +#endif + diff --git a/Drivers/CMSIS/Include/tz_context.h b/Drivers/CMSIS/Include/tz_context.h new file mode 100644 index 0000000..0d09749 --- /dev/null +++ b/Drivers/CMSIS/Include/tz_context.h @@ -0,0 +1,70 @@ +/****************************************************************************** + * @file tz_context.h + * @brief Context Management for Armv8-M TrustZone + * @version V1.0.1 + * @date 10. January 2018 + ******************************************************************************/ +/* + * Copyright (c) 2017-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef TZ_CONTEXT_H +#define TZ_CONTEXT_H + +#include + +#ifndef TZ_MODULEID_T +#define TZ_MODULEID_T +/// \details Data type that identifies secure software modules called by a process. +typedef uint32_t TZ_ModuleId_t; +#endif + +/// \details TZ Memory ID identifies an allocated memory slot. +typedef uint32_t TZ_MemoryId_t; + +/// Initialize secure context memory system +/// \return execution status (1: success, 0: error) +uint32_t TZ_InitContextSystem_S (void); + +/// Allocate context memory for calling secure software modules in TrustZone +/// \param[in] module identifies software modules called from non-secure mode +/// \return value != 0 id TrustZone memory slot identifier +/// \return value 0 no memory available or internal error +TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module); + +/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id); + +/// Load secure context (called on RTOS thread context switch) +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_LoadContext_S (TZ_MemoryId_t id); + +/// Store secure context (called on RTOS thread context switch) +/// \param[in] id TrustZone memory slot identifier +/// \return execution status (1: success, 0: error) +uint32_t TZ_StoreContext_S (TZ_MemoryId_t id); + +#endif // TZ_CONTEXT_H diff --git a/Drivers/CMSIS/LICENSE.txt b/Drivers/CMSIS/LICENSE.txt new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/Drivers/CMSIS/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h new file mode 100644 index 0000000..60b76e7 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h @@ -0,0 +1,4389 @@ +/** + ****************************************************************************** + * @file stm32_hal_legacy.h + * @author MCD Application Team + * @brief This file contains aliases definition for the STM32Cube HAL constants + * macros and functions maintained for legacy purpose. + ****************************************************************************** + * @attention + * + * Copyright (c) 2021 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32_HAL_LEGACY +#define STM32_HAL_LEGACY + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup HAL_AES_Aliased_Defines HAL CRYP Aliased Defines maintained for legacy purpose + * @{ + */ +#define AES_FLAG_RDERR CRYP_FLAG_RDERR +#define AES_FLAG_WRERR CRYP_FLAG_WRERR +#define AES_CLEARFLAG_CCF CRYP_CLEARFLAG_CCF +#define AES_CLEARFLAG_RDERR CRYP_CLEARFLAG_RDERR +#define AES_CLEARFLAG_WRERR CRYP_CLEARFLAG_WRERR +#if defined(STM32H7) || defined(STM32MP1) +#define CRYP_DATATYPE_32B CRYP_NO_SWAP +#define CRYP_DATATYPE_16B CRYP_HALFWORD_SWAP +#define CRYP_DATATYPE_8B CRYP_BYTE_SWAP +#define CRYP_DATATYPE_1B CRYP_BIT_SWAP +#endif /* STM32H7 || STM32MP1 */ +/** + * @} + */ + +/** @defgroup HAL_ADC_Aliased_Defines HAL ADC Aliased Defines maintained for legacy purpose + * @{ + */ +#define ADC_RESOLUTION12b ADC_RESOLUTION_12B +#define ADC_RESOLUTION10b ADC_RESOLUTION_10B +#define ADC_RESOLUTION8b ADC_RESOLUTION_8B +#define ADC_RESOLUTION6b ADC_RESOLUTION_6B +#define OVR_DATA_OVERWRITTEN ADC_OVR_DATA_OVERWRITTEN +#define OVR_DATA_PRESERVED ADC_OVR_DATA_PRESERVED +#define EOC_SINGLE_CONV ADC_EOC_SINGLE_CONV +#define EOC_SEQ_CONV ADC_EOC_SEQ_CONV +#define EOC_SINGLE_SEQ_CONV ADC_EOC_SINGLE_SEQ_CONV +#define REGULAR_GROUP ADC_REGULAR_GROUP +#define INJECTED_GROUP ADC_INJECTED_GROUP +#define REGULAR_INJECTED_GROUP ADC_REGULAR_INJECTED_GROUP +#define AWD_EVENT ADC_AWD_EVENT +#define AWD1_EVENT ADC_AWD1_EVENT +#define AWD2_EVENT ADC_AWD2_EVENT +#define AWD3_EVENT ADC_AWD3_EVENT +#define OVR_EVENT ADC_OVR_EVENT +#define JQOVF_EVENT ADC_JQOVF_EVENT +#define ALL_CHANNELS ADC_ALL_CHANNELS +#define REGULAR_CHANNELS ADC_REGULAR_CHANNELS +#define INJECTED_CHANNELS ADC_INJECTED_CHANNELS +#define SYSCFG_FLAG_SENSOR_ADC ADC_FLAG_SENSOR +#define SYSCFG_FLAG_VREF_ADC ADC_FLAG_VREFINT +#define ADC_CLOCKPRESCALER_PCLK_DIV1 ADC_CLOCK_SYNC_PCLK_DIV1 +#define ADC_CLOCKPRESCALER_PCLK_DIV2 ADC_CLOCK_SYNC_PCLK_DIV2 +#define ADC_CLOCKPRESCALER_PCLK_DIV4 ADC_CLOCK_SYNC_PCLK_DIV4 +#define ADC_CLOCKPRESCALER_PCLK_DIV6 ADC_CLOCK_SYNC_PCLK_DIV6 +#define ADC_CLOCKPRESCALER_PCLK_DIV8 ADC_CLOCK_SYNC_PCLK_DIV8 +#define ADC_EXTERNALTRIG0_T6_TRGO ADC_EXTERNALTRIGCONV_T6_TRGO +#define ADC_EXTERNALTRIG1_T21_CC2 ADC_EXTERNALTRIGCONV_T21_CC2 +#define ADC_EXTERNALTRIG2_T2_TRGO ADC_EXTERNALTRIGCONV_T2_TRGO +#define ADC_EXTERNALTRIG3_T2_CC4 ADC_EXTERNALTRIGCONV_T2_CC4 +#define ADC_EXTERNALTRIG4_T22_TRGO ADC_EXTERNALTRIGCONV_T22_TRGO +#define ADC_EXTERNALTRIG7_EXT_IT11 ADC_EXTERNALTRIGCONV_EXT_IT11 +#define ADC_CLOCK_ASYNC ADC_CLOCK_ASYNC_DIV1 +#define ADC_EXTERNALTRIG_EDGE_NONE ADC_EXTERNALTRIGCONVEDGE_NONE +#define ADC_EXTERNALTRIG_EDGE_RISING ADC_EXTERNALTRIGCONVEDGE_RISING +#define ADC_EXTERNALTRIG_EDGE_FALLING ADC_EXTERNALTRIGCONVEDGE_FALLING +#define ADC_EXTERNALTRIG_EDGE_RISINGFALLING ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING +#define ADC_SAMPLETIME_2CYCLE_5 ADC_SAMPLETIME_2CYCLES_5 + +#define HAL_ADC_STATE_BUSY_REG HAL_ADC_STATE_REG_BUSY +#define HAL_ADC_STATE_BUSY_INJ HAL_ADC_STATE_INJ_BUSY +#define HAL_ADC_STATE_EOC_REG HAL_ADC_STATE_REG_EOC +#define HAL_ADC_STATE_EOC_INJ HAL_ADC_STATE_INJ_EOC +#define HAL_ADC_STATE_ERROR HAL_ADC_STATE_ERROR_INTERNAL +#define HAL_ADC_STATE_BUSY HAL_ADC_STATE_BUSY_INTERNAL +#define HAL_ADC_STATE_AWD HAL_ADC_STATE_AWD1 + +#if defined(STM32H7) +#define ADC_CHANNEL_VBAT_DIV4 ADC_CHANNEL_VBAT +#endif /* STM32H7 */ + +#if defined(STM32U5) +#define ADC_SAMPLETIME_5CYCLE ADC_SAMPLETIME_5CYCLES +#define ADC_SAMPLETIME_391CYCLES_5 ADC_SAMPLETIME_391CYCLES +#define ADC4_SAMPLETIME_160CYCLES_5 ADC4_SAMPLETIME_814CYCLES_5 +#endif /* STM32U5 */ + +#if defined(STM32H5) +#define ADC_CHANNEL_VCORE ADC_CHANNEL_VDDCORE +#endif /* STM32H5 */ +/** + * @} + */ + +/** @defgroup HAL_CEC_Aliased_Defines HAL CEC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define __HAL_CEC_GET_IT __HAL_CEC_GET_FLAG + +/** + * @} + */ + +/** @defgroup HAL_COMP_Aliased_Defines HAL COMP Aliased Defines maintained for legacy purpose + * @{ + */ +#define COMP_WINDOWMODE_DISABLED COMP_WINDOWMODE_DISABLE +#define COMP_WINDOWMODE_ENABLED COMP_WINDOWMODE_ENABLE +#define COMP_EXTI_LINE_COMP1_EVENT COMP_EXTI_LINE_COMP1 +#define COMP_EXTI_LINE_COMP2_EVENT COMP_EXTI_LINE_COMP2 +#define COMP_EXTI_LINE_COMP3_EVENT COMP_EXTI_LINE_COMP3 +#define COMP_EXTI_LINE_COMP4_EVENT COMP_EXTI_LINE_COMP4 +#define COMP_EXTI_LINE_COMP5_EVENT COMP_EXTI_LINE_COMP5 +#define COMP_EXTI_LINE_COMP6_EVENT COMP_EXTI_LINE_COMP6 +#define COMP_EXTI_LINE_COMP7_EVENT COMP_EXTI_LINE_COMP7 +#if defined(STM32L0) +#define COMP_LPTIMCONNECTION_ENABLED ((uint32_t)0x00000003U) /*!< COMPX output generic naming: connected to LPTIM + input 1 for COMP1, LPTIM input 2 for COMP2 */ +#endif +#define COMP_OUTPUT_COMP6TIM2OCREFCLR COMP_OUTPUT_COMP6_TIM2OCREFCLR +#if defined(STM32F373xC) || defined(STM32F378xx) +#define COMP_OUTPUT_TIM3IC1 COMP_OUTPUT_COMP1_TIM3IC1 +#define COMP_OUTPUT_TIM3OCREFCLR COMP_OUTPUT_COMP1_TIM3OCREFCLR +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32L0) || defined(STM32L4) +#define COMP_WINDOWMODE_ENABLE COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON + +#define COMP_NONINVERTINGINPUT_IO1 COMP_INPUT_PLUS_IO1 +#define COMP_NONINVERTINGINPUT_IO2 COMP_INPUT_PLUS_IO2 +#define COMP_NONINVERTINGINPUT_IO3 COMP_INPUT_PLUS_IO3 +#define COMP_NONINVERTINGINPUT_IO4 COMP_INPUT_PLUS_IO4 +#define COMP_NONINVERTINGINPUT_IO5 COMP_INPUT_PLUS_IO5 +#define COMP_NONINVERTINGINPUT_IO6 COMP_INPUT_PLUS_IO6 + +#define COMP_INVERTINGINPUT_1_4VREFINT COMP_INPUT_MINUS_1_4VREFINT +#define COMP_INVERTINGINPUT_1_2VREFINT COMP_INPUT_MINUS_1_2VREFINT +#define COMP_INVERTINGINPUT_3_4VREFINT COMP_INPUT_MINUS_3_4VREFINT +#define COMP_INVERTINGINPUT_VREFINT COMP_INPUT_MINUS_VREFINT +#define COMP_INVERTINGINPUT_DAC1_CH1 COMP_INPUT_MINUS_DAC1_CH1 +#define COMP_INVERTINGINPUT_DAC1_CH2 COMP_INPUT_MINUS_DAC1_CH2 +#define COMP_INVERTINGINPUT_DAC1 COMP_INPUT_MINUS_DAC1_CH1 +#define COMP_INVERTINGINPUT_DAC2 COMP_INPUT_MINUS_DAC1_CH2 +#define COMP_INVERTINGINPUT_IO1 COMP_INPUT_MINUS_IO1 +#if defined(STM32L0) +/* Issue fixed on STM32L0 COMP driver: only 2 dedicated IO (IO1 and IO2), */ +/* IO2 was wrongly assigned to IO shared with DAC and IO3 was corresponding */ +/* to the second dedicated IO (only for COMP2). */ +#define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_DAC1_CH2 +#define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO2 +#else +#define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_IO2 +#define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO3 +#endif +#define COMP_INVERTINGINPUT_IO4 COMP_INPUT_MINUS_IO4 +#define COMP_INVERTINGINPUT_IO5 COMP_INPUT_MINUS_IO5 + +#define COMP_OUTPUTLEVEL_LOW COMP_OUTPUT_LEVEL_LOW +#define COMP_OUTPUTLEVEL_HIGH COMP_OUTPUT_LEVEL_HIGH + +/* Note: Literal "COMP_FLAG_LOCK" kept for legacy purpose. */ +/* To check COMP lock state, use macro "__HAL_COMP_IS_LOCKED()". */ +#if defined(COMP_CSR_LOCK) +#define COMP_FLAG_LOCK COMP_CSR_LOCK +#elif defined(COMP_CSR_COMP1LOCK) +#define COMP_FLAG_LOCK COMP_CSR_COMP1LOCK +#elif defined(COMP_CSR_COMPxLOCK) +#define COMP_FLAG_LOCK COMP_CSR_COMPxLOCK +#endif + +#if defined(STM32L4) +#define COMP_BLANKINGSRCE_TIM1OC5 COMP_BLANKINGSRC_TIM1_OC5_COMP1 +#define COMP_BLANKINGSRCE_TIM2OC3 COMP_BLANKINGSRC_TIM2_OC3_COMP1 +#define COMP_BLANKINGSRCE_TIM3OC3 COMP_BLANKINGSRC_TIM3_OC3_COMP1 +#define COMP_BLANKINGSRCE_TIM3OC4 COMP_BLANKINGSRC_TIM3_OC4_COMP2 +#define COMP_BLANKINGSRCE_TIM8OC5 COMP_BLANKINGSRC_TIM8_OC5_COMP2 +#define COMP_BLANKINGSRCE_TIM15OC1 COMP_BLANKINGSRC_TIM15_OC1_COMP2 +#define COMP_BLANKINGSRCE_NONE COMP_BLANKINGSRC_NONE +#endif + +#if defined(STM32L0) +#define COMP_MODE_HIGHSPEED COMP_POWERMODE_MEDIUMSPEED +#define COMP_MODE_LOWSPEED COMP_POWERMODE_ULTRALOWPOWER +#else +#define COMP_MODE_HIGHSPEED COMP_POWERMODE_HIGHSPEED +#define COMP_MODE_MEDIUMSPEED COMP_POWERMODE_MEDIUMSPEED +#define COMP_MODE_LOWPOWER COMP_POWERMODE_LOWPOWER +#define COMP_MODE_ULTRALOWPOWER COMP_POWERMODE_ULTRALOWPOWER +#endif + +#endif + +#if defined(STM32U5) +#define __HAL_COMP_COMP1_EXTI_CLEAR_RASING_FLAG __HAL_COMP_COMP1_EXTI_CLEAR_RISING_FLAG +#endif + +/** + * @} + */ + +/** @defgroup HAL_CORTEX_Aliased_Defines HAL CORTEX Aliased Defines maintained for legacy purpose + * @{ + */ +#define __HAL_CORTEX_SYSTICKCLK_CONFIG HAL_SYSTICK_CLKSourceConfig +#if defined(STM32U5) +#define MPU_DEVICE_nGnRnE MPU_DEVICE_NGNRNE +#define MPU_DEVICE_nGnRE MPU_DEVICE_NGNRE +#define MPU_DEVICE_nGRE MPU_DEVICE_NGRE +#endif /* STM32U5 */ +/** + * @} + */ + +/** @defgroup CRC_Aliases CRC API aliases + * @{ + */ +#if defined(STM32H5) || defined(STM32C0) +#else +#define HAL_CRC_Input_Data_Reverse HAL_CRCEx_Input_Data_Reverse /*!< Aliased to HAL_CRCEx_Input_Data_Reverse for + inter STM32 series compatibility */ +#define HAL_CRC_Output_Data_Reverse HAL_CRCEx_Output_Data_Reverse /*!< Aliased to HAL_CRCEx_Output_Data_Reverse for + inter STM32 series compatibility */ +#endif +/** + * @} + */ + +/** @defgroup HAL_CRC_Aliased_Defines HAL CRC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define CRC_OUTPUTDATA_INVERSION_DISABLED CRC_OUTPUTDATA_INVERSION_DISABLE +#define CRC_OUTPUTDATA_INVERSION_ENABLED CRC_OUTPUTDATA_INVERSION_ENABLE + +/** + * @} + */ + +/** @defgroup HAL_DAC_Aliased_Defines HAL DAC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define DAC1_CHANNEL_1 DAC_CHANNEL_1 +#define DAC1_CHANNEL_2 DAC_CHANNEL_2 +#define DAC2_CHANNEL_1 DAC_CHANNEL_1 +#define DAC_WAVE_NONE 0x00000000U +#define DAC_WAVE_NOISE DAC_CR_WAVE1_0 +#define DAC_WAVE_TRIANGLE DAC_CR_WAVE1_1 +#define DAC_WAVEGENERATION_NONE DAC_WAVE_NONE +#define DAC_WAVEGENERATION_NOISE DAC_WAVE_NOISE +#define DAC_WAVEGENERATION_TRIANGLE DAC_WAVE_TRIANGLE + +#if defined(STM32G4) || defined(STM32H7) || defined (STM32U5) +#define DAC_CHIPCONNECT_DISABLE DAC_CHIPCONNECT_EXTERNAL +#define DAC_CHIPCONNECT_ENABLE DAC_CHIPCONNECT_INTERNAL +#endif + +#if defined(STM32U5) +#define DAC_TRIGGER_STOP_LPTIM1_OUT DAC_TRIGGER_STOP_LPTIM1_CH1 +#define DAC_TRIGGER_STOP_LPTIM3_OUT DAC_TRIGGER_STOP_LPTIM3_CH1 +#define DAC_TRIGGER_LPTIM1_OUT DAC_TRIGGER_LPTIM1_CH1 +#define DAC_TRIGGER_LPTIM3_OUT DAC_TRIGGER_LPTIM3_CH1 +#endif + +#if defined(STM32H5) +#define DAC_TRIGGER_LPTIM1_OUT DAC_TRIGGER_LPTIM1_CH1 +#define DAC_TRIGGER_LPTIM2_OUT DAC_TRIGGER_LPTIM2_CH1 +#endif + +#if defined(STM32L1) || defined(STM32L4) || defined(STM32G0) || defined(STM32L5) || defined(STM32H7) || \ + defined(STM32F4) || defined(STM32G4) +#define HAL_DAC_MSP_INIT_CB_ID HAL_DAC_MSPINIT_CB_ID +#define HAL_DAC_MSP_DEINIT_CB_ID HAL_DAC_MSPDEINIT_CB_ID +#endif + +/** + * @} + */ + +/** @defgroup HAL_DMA_Aliased_Defines HAL DMA Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_REMAPDMA_ADC_DMA_CH2 DMA_REMAP_ADC_DMA_CH2 +#define HAL_REMAPDMA_USART1_TX_DMA_CH4 DMA_REMAP_USART1_TX_DMA_CH4 +#define HAL_REMAPDMA_USART1_RX_DMA_CH5 DMA_REMAP_USART1_RX_DMA_CH5 +#define HAL_REMAPDMA_TIM16_DMA_CH4 DMA_REMAP_TIM16_DMA_CH4 +#define HAL_REMAPDMA_TIM17_DMA_CH2 DMA_REMAP_TIM17_DMA_CH2 +#define HAL_REMAPDMA_USART3_DMA_CH32 DMA_REMAP_USART3_DMA_CH32 +#define HAL_REMAPDMA_TIM16_DMA_CH6 DMA_REMAP_TIM16_DMA_CH6 +#define HAL_REMAPDMA_TIM17_DMA_CH7 DMA_REMAP_TIM17_DMA_CH7 +#define HAL_REMAPDMA_SPI2_DMA_CH67 DMA_REMAP_SPI2_DMA_CH67 +#define HAL_REMAPDMA_USART2_DMA_CH67 DMA_REMAP_USART2_DMA_CH67 +#define HAL_REMAPDMA_I2C1_DMA_CH76 DMA_REMAP_I2C1_DMA_CH76 +#define HAL_REMAPDMA_TIM1_DMA_CH6 DMA_REMAP_TIM1_DMA_CH6 +#define HAL_REMAPDMA_TIM2_DMA_CH7 DMA_REMAP_TIM2_DMA_CH7 +#define HAL_REMAPDMA_TIM3_DMA_CH6 DMA_REMAP_TIM3_DMA_CH6 + +#define IS_HAL_REMAPDMA IS_DMA_REMAP +#define __HAL_REMAPDMA_CHANNEL_ENABLE __HAL_DMA_REMAP_CHANNEL_ENABLE +#define __HAL_REMAPDMA_CHANNEL_DISABLE __HAL_DMA_REMAP_CHANNEL_DISABLE + +#if defined(STM32L4) + +#define HAL_DMAMUX1_REQUEST_GEN_EXTI0 HAL_DMAMUX1_REQ_GEN_EXTI0 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI1 HAL_DMAMUX1_REQ_GEN_EXTI1 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI2 HAL_DMAMUX1_REQ_GEN_EXTI2 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI3 HAL_DMAMUX1_REQ_GEN_EXTI3 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI4 HAL_DMAMUX1_REQ_GEN_EXTI4 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI5 HAL_DMAMUX1_REQ_GEN_EXTI5 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI6 HAL_DMAMUX1_REQ_GEN_EXTI6 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI7 HAL_DMAMUX1_REQ_GEN_EXTI7 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI8 HAL_DMAMUX1_REQ_GEN_EXTI8 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI9 HAL_DMAMUX1_REQ_GEN_EXTI9 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI10 HAL_DMAMUX1_REQ_GEN_EXTI10 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI11 HAL_DMAMUX1_REQ_GEN_EXTI11 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI12 HAL_DMAMUX1_REQ_GEN_EXTI12 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI13 HAL_DMAMUX1_REQ_GEN_EXTI13 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI14 HAL_DMAMUX1_REQ_GEN_EXTI14 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI15 HAL_DMAMUX1_REQ_GEN_EXTI15 +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH0_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH1_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH2_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH3_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH3_EVT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM1_OUT HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM2_OUT HAL_DMAMUX1_REQ_GEN_LPTIM2_OUT +#define HAL_DMAMUX1_REQUEST_GEN_DSI_TE HAL_DMAMUX1_REQ_GEN_DSI_TE +#define HAL_DMAMUX1_REQUEST_GEN_DSI_EOT HAL_DMAMUX1_REQ_GEN_DSI_EOT +#define HAL_DMAMUX1_REQUEST_GEN_DMA2D_EOT HAL_DMAMUX1_REQ_GEN_DMA2D_EOT +#define HAL_DMAMUX1_REQUEST_GEN_LTDC_IT HAL_DMAMUX1_REQ_GEN_LTDC_IT + +#define HAL_DMAMUX_REQUEST_GEN_NO_EVENT HAL_DMAMUX_REQ_GEN_NO_EVENT +#define HAL_DMAMUX_REQUEST_GEN_RISING HAL_DMAMUX_REQ_GEN_RISING +#define HAL_DMAMUX_REQUEST_GEN_FALLING HAL_DMAMUX_REQ_GEN_FALLING +#define HAL_DMAMUX_REQUEST_GEN_RISING_FALLING HAL_DMAMUX_REQ_GEN_RISING_FALLING + +#if defined(STM32L4R5xx) || defined(STM32L4R9xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || \ + defined(STM32L4S7xx) || defined(STM32L4S9xx) +#define DMA_REQUEST_DCMI_PSSI DMA_REQUEST_DCMI +#endif + +#endif /* STM32L4 */ + +#if defined(STM32G0) +#define DMA_REQUEST_DAC1_CHANNEL1 DMA_REQUEST_DAC1_CH1 +#define DMA_REQUEST_DAC1_CHANNEL2 DMA_REQUEST_DAC1_CH2 +#define DMA_REQUEST_TIM16_TRIG_COM DMA_REQUEST_TIM16_COM +#define DMA_REQUEST_TIM17_TRIG_COM DMA_REQUEST_TIM17_COM + +#define LL_DMAMUX_REQ_TIM16_TRIG_COM LL_DMAMUX_REQ_TIM16_COM +#define LL_DMAMUX_REQ_TIM17_TRIG_COM LL_DMAMUX_REQ_TIM17_COM +#endif + +#if defined(STM32H7) + +#define DMA_REQUEST_DAC1 DMA_REQUEST_DAC1_CH1 +#define DMA_REQUEST_DAC2 DMA_REQUEST_DAC1_CH2 + +#define BDMA_REQUEST_LP_UART1_RX BDMA_REQUEST_LPUART1_RX +#define BDMA_REQUEST_LP_UART1_TX BDMA_REQUEST_LPUART1_TX + +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH0_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH1_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH2_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM1_OUT HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM2_OUT HAL_DMAMUX1_REQ_GEN_LPTIM2_OUT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM3_OUT HAL_DMAMUX1_REQ_GEN_LPTIM3_OUT +#define HAL_DMAMUX1_REQUEST_GEN_EXTI0 HAL_DMAMUX1_REQ_GEN_EXTI0 +#define HAL_DMAMUX1_REQUEST_GEN_TIM12_TRGO HAL_DMAMUX1_REQ_GEN_TIM12_TRGO + +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH0_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH0_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH1_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH1_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH2_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH2_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH3_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH3_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH4_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH4_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH5_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH5_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH6_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH6_EVT +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_RX_WKUP HAL_DMAMUX2_REQ_GEN_LPUART1_RX_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_TX_WKUP HAL_DMAMUX2_REQ_GEN_LPUART1_TX_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM2_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM2_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM2_OUT HAL_DMAMUX2_REQ_GEN_LPTIM2_OUT +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM3_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM3_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM3_OUT HAL_DMAMUX2_REQ_GEN_LPTIM3_OUT +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM4_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM4_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM5_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM5_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_I2C4_WKUP HAL_DMAMUX2_REQ_GEN_I2C4_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_SPI6_WKUP HAL_DMAMUX2_REQ_GEN_SPI6_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_COMP1_OUT HAL_DMAMUX2_REQ_GEN_COMP1_OUT +#define HAL_DMAMUX2_REQUEST_GEN_COMP2_OUT HAL_DMAMUX2_REQ_GEN_COMP2_OUT +#define HAL_DMAMUX2_REQUEST_GEN_RTC_WKUP HAL_DMAMUX2_REQ_GEN_RTC_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_EXTI0 HAL_DMAMUX2_REQ_GEN_EXTI0 +#define HAL_DMAMUX2_REQUEST_GEN_EXTI2 HAL_DMAMUX2_REQ_GEN_EXTI2 +#define HAL_DMAMUX2_REQUEST_GEN_I2C4_IT_EVT HAL_DMAMUX2_REQ_GEN_I2C4_IT_EVT +#define HAL_DMAMUX2_REQUEST_GEN_SPI6_IT HAL_DMAMUX2_REQ_GEN_SPI6_IT +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_TX_IT HAL_DMAMUX2_REQ_GEN_LPUART1_TX_IT +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_RX_IT HAL_DMAMUX2_REQ_GEN_LPUART1_RX_IT +#define HAL_DMAMUX2_REQUEST_GEN_ADC3_IT HAL_DMAMUX2_REQ_GEN_ADC3_IT +#define HAL_DMAMUX2_REQUEST_GEN_ADC3_AWD1_OUT HAL_DMAMUX2_REQ_GEN_ADC3_AWD1_OUT +#define HAL_DMAMUX2_REQUEST_GEN_BDMA_CH0_IT HAL_DMAMUX2_REQ_GEN_BDMA_CH0_IT +#define HAL_DMAMUX2_REQUEST_GEN_BDMA_CH1_IT HAL_DMAMUX2_REQ_GEN_BDMA_CH1_IT + +#define HAL_DMAMUX_REQUEST_GEN_NO_EVENT HAL_DMAMUX_REQ_GEN_NO_EVENT +#define HAL_DMAMUX_REQUEST_GEN_RISING HAL_DMAMUX_REQ_GEN_RISING +#define HAL_DMAMUX_REQUEST_GEN_FALLING HAL_DMAMUX_REQ_GEN_FALLING +#define HAL_DMAMUX_REQUEST_GEN_RISING_FALLING HAL_DMAMUX_REQ_GEN_RISING_FALLING + +#define DFSDM_FILTER_EXT_TRIG_LPTIM1 DFSDM_FILTER_EXT_TRIG_LPTIM1_OUT +#define DFSDM_FILTER_EXT_TRIG_LPTIM2 DFSDM_FILTER_EXT_TRIG_LPTIM2_OUT +#define DFSDM_FILTER_EXT_TRIG_LPTIM3 DFSDM_FILTER_EXT_TRIG_LPTIM3_OUT + +#define DAC_TRIGGER_LP1_OUT DAC_TRIGGER_LPTIM1_OUT +#define DAC_TRIGGER_LP2_OUT DAC_TRIGGER_LPTIM2_OUT + +#endif /* STM32H7 */ + +#if defined(STM32U5) +#define GPDMA1_REQUEST_DCMI GPDMA1_REQUEST_DCMI_PSSI +#endif /* STM32U5 */ +/** + * @} + */ + +/** @defgroup HAL_FLASH_Aliased_Defines HAL FLASH Aliased Defines maintained for legacy purpose + * @{ + */ + +#define TYPEPROGRAM_BYTE FLASH_TYPEPROGRAM_BYTE +#define TYPEPROGRAM_HALFWORD FLASH_TYPEPROGRAM_HALFWORD +#define TYPEPROGRAM_WORD FLASH_TYPEPROGRAM_WORD +#define TYPEPROGRAM_DOUBLEWORD FLASH_TYPEPROGRAM_DOUBLEWORD +#define TYPEERASE_SECTORS FLASH_TYPEERASE_SECTORS +#define TYPEERASE_PAGES FLASH_TYPEERASE_PAGES +#define TYPEERASE_PAGEERASE FLASH_TYPEERASE_PAGES +#define TYPEERASE_MASSERASE FLASH_TYPEERASE_MASSERASE +#define WRPSTATE_DISABLE OB_WRPSTATE_DISABLE +#define WRPSTATE_ENABLE OB_WRPSTATE_ENABLE +#define HAL_FLASH_TIMEOUT_VALUE FLASH_TIMEOUT_VALUE +#define OBEX_PCROP OPTIONBYTE_PCROP +#define OBEX_BOOTCONFIG OPTIONBYTE_BOOTCONFIG +#define PCROPSTATE_DISABLE OB_PCROP_STATE_DISABLE +#define PCROPSTATE_ENABLE OB_PCROP_STATE_ENABLE +#define TYPEERASEDATA_BYTE FLASH_TYPEERASEDATA_BYTE +#define TYPEERASEDATA_HALFWORD FLASH_TYPEERASEDATA_HALFWORD +#define TYPEERASEDATA_WORD FLASH_TYPEERASEDATA_WORD +#define TYPEPROGRAMDATA_BYTE FLASH_TYPEPROGRAMDATA_BYTE +#define TYPEPROGRAMDATA_HALFWORD FLASH_TYPEPROGRAMDATA_HALFWORD +#define TYPEPROGRAMDATA_WORD FLASH_TYPEPROGRAMDATA_WORD +#define TYPEPROGRAMDATA_FASTBYTE FLASH_TYPEPROGRAMDATA_FASTBYTE +#define TYPEPROGRAMDATA_FASTHALFWORD FLASH_TYPEPROGRAMDATA_FASTHALFWORD +#define TYPEPROGRAMDATA_FASTWORD FLASH_TYPEPROGRAMDATA_FASTWORD +#if !defined(STM32F2) && !defined(STM32F4) && !defined(STM32F7) && !defined(STM32H7) +#define PAGESIZE FLASH_PAGE_SIZE +#endif /* STM32F2 && STM32F4 && STM32F7 && STM32H7 */ +#define TYPEPROGRAM_FASTBYTE FLASH_TYPEPROGRAM_BYTE +#define TYPEPROGRAM_FASTHALFWORD FLASH_TYPEPROGRAM_HALFWORD +#define TYPEPROGRAM_FASTWORD FLASH_TYPEPROGRAM_WORD +#define VOLTAGE_RANGE_1 FLASH_VOLTAGE_RANGE_1 +#define VOLTAGE_RANGE_2 FLASH_VOLTAGE_RANGE_2 +#define VOLTAGE_RANGE_3 FLASH_VOLTAGE_RANGE_3 +#define VOLTAGE_RANGE_4 FLASH_VOLTAGE_RANGE_4 +#define TYPEPROGRAM_FAST FLASH_TYPEPROGRAM_FAST +#define TYPEPROGRAM_FAST_AND_LAST FLASH_TYPEPROGRAM_FAST_AND_LAST +#define WRPAREA_BANK1_AREAA OB_WRPAREA_BANK1_AREAA +#define WRPAREA_BANK1_AREAB OB_WRPAREA_BANK1_AREAB +#define WRPAREA_BANK2_AREAA OB_WRPAREA_BANK2_AREAA +#define WRPAREA_BANK2_AREAB OB_WRPAREA_BANK2_AREAB +#define IWDG_STDBY_FREEZE OB_IWDG_STDBY_FREEZE +#define IWDG_STDBY_ACTIVE OB_IWDG_STDBY_RUN +#define IWDG_STOP_FREEZE OB_IWDG_STOP_FREEZE +#define IWDG_STOP_ACTIVE OB_IWDG_STOP_RUN +#define FLASH_ERROR_NONE HAL_FLASH_ERROR_NONE +#define FLASH_ERROR_RD HAL_FLASH_ERROR_RD +#define FLASH_ERROR_PG HAL_FLASH_ERROR_PROG +#define FLASH_ERROR_PGP HAL_FLASH_ERROR_PGS +#define FLASH_ERROR_WRP HAL_FLASH_ERROR_WRP +#define FLASH_ERROR_OPTV HAL_FLASH_ERROR_OPTV +#define FLASH_ERROR_OPTVUSR HAL_FLASH_ERROR_OPTVUSR +#define FLASH_ERROR_PROG HAL_FLASH_ERROR_PROG +#define FLASH_ERROR_OP HAL_FLASH_ERROR_OPERATION +#define FLASH_ERROR_PGA HAL_FLASH_ERROR_PGA +#define FLASH_ERROR_SIZE HAL_FLASH_ERROR_SIZE +#define FLASH_ERROR_SIZ HAL_FLASH_ERROR_SIZE +#define FLASH_ERROR_PGS HAL_FLASH_ERROR_PGS +#define FLASH_ERROR_MIS HAL_FLASH_ERROR_MIS +#define FLASH_ERROR_FAST HAL_FLASH_ERROR_FAST +#define FLASH_ERROR_FWWERR HAL_FLASH_ERROR_FWWERR +#define FLASH_ERROR_NOTZERO HAL_FLASH_ERROR_NOTZERO +#define FLASH_ERROR_OPERATION HAL_FLASH_ERROR_OPERATION +#define FLASH_ERROR_ERS HAL_FLASH_ERROR_ERS +#define OB_WDG_SW OB_IWDG_SW +#define OB_WDG_HW OB_IWDG_HW +#define OB_SDADC12_VDD_MONITOR_SET OB_SDACD_VDD_MONITOR_SET +#define OB_SDADC12_VDD_MONITOR_RESET OB_SDACD_VDD_MONITOR_RESET +#define OB_RAM_PARITY_CHECK_SET OB_SRAM_PARITY_SET +#define OB_RAM_PARITY_CHECK_RESET OB_SRAM_PARITY_RESET +#define IS_OB_SDADC12_VDD_MONITOR IS_OB_SDACD_VDD_MONITOR +#define OB_RDP_LEVEL0 OB_RDP_LEVEL_0 +#define OB_RDP_LEVEL1 OB_RDP_LEVEL_1 +#define OB_RDP_LEVEL2 OB_RDP_LEVEL_2 +#if defined(STM32G0) || defined(STM32C0) +#define OB_BOOT_LOCK_DISABLE OB_BOOT_ENTRY_FORCED_NONE +#define OB_BOOT_LOCK_ENABLE OB_BOOT_ENTRY_FORCED_FLASH +#else +#define OB_BOOT_ENTRY_FORCED_NONE OB_BOOT_LOCK_DISABLE +#define OB_BOOT_ENTRY_FORCED_FLASH OB_BOOT_LOCK_ENABLE +#endif +#if defined(STM32H7) +#define FLASH_FLAG_SNECCE_BANK1RR FLASH_FLAG_SNECCERR_BANK1 +#define FLASH_FLAG_DBECCE_BANK1RR FLASH_FLAG_DBECCERR_BANK1 +#define FLASH_FLAG_STRBER_BANK1R FLASH_FLAG_STRBERR_BANK1 +#define FLASH_FLAG_SNECCE_BANK2RR FLASH_FLAG_SNECCERR_BANK2 +#define FLASH_FLAG_DBECCE_BANK2RR FLASH_FLAG_DBECCERR_BANK2 +#define FLASH_FLAG_STRBER_BANK2R FLASH_FLAG_STRBERR_BANK2 +#define FLASH_FLAG_WDW FLASH_FLAG_WBNE +#define OB_WRP_SECTOR_All OB_WRP_SECTOR_ALL +#endif /* STM32H7 */ +#if defined(STM32U5) +#define OB_USER_nRST_STOP OB_USER_NRST_STOP +#define OB_USER_nRST_STDBY OB_USER_NRST_STDBY +#define OB_USER_nRST_SHDW OB_USER_NRST_SHDW +#define OB_USER_nSWBOOT0 OB_USER_NSWBOOT0 +#define OB_USER_nBOOT0 OB_USER_NBOOT0 +#define OB_nBOOT0_RESET OB_NBOOT0_RESET +#define OB_nBOOT0_SET OB_NBOOT0_SET +#define OB_USER_SRAM134_RST OB_USER_SRAM_RST +#define OB_SRAM134_RST_ERASE OB_SRAM_RST_ERASE +#define OB_SRAM134_RST_NOT_ERASE OB_SRAM_RST_NOT_ERASE +#endif /* STM32U5 */ +#if defined(STM32U0) +#define OB_USER_nRST_STOP OB_USER_NRST_STOP +#define OB_USER_nRST_STDBY OB_USER_NRST_STDBY +#define OB_USER_nRST_SHDW OB_USER_NRST_SHDW +#define OB_USER_nBOOT_SEL OB_USER_NBOOT_SEL +#define OB_USER_nBOOT0 OB_USER_NBOOT0 +#define OB_USER_nBOOT1 OB_USER_NBOOT1 +#define OB_nBOOT0_RESET OB_NBOOT0_RESET +#define OB_nBOOT0_SET OB_NBOOT0_SET +#endif /* STM32U0 */ + +/** + * @} + */ + +/** @defgroup HAL_JPEG_Aliased_Macros HAL JPEG Aliased Macros maintained for legacy purpose + * @{ + */ + +#if defined(STM32H7) +#define __HAL_RCC_JPEG_CLK_ENABLE __HAL_RCC_JPGDECEN_CLK_ENABLE +#define __HAL_RCC_JPEG_CLK_DISABLE __HAL_RCC_JPGDECEN_CLK_DISABLE +#define __HAL_RCC_JPEG_FORCE_RESET __HAL_RCC_JPGDECRST_FORCE_RESET +#define __HAL_RCC_JPEG_RELEASE_RESET __HAL_RCC_JPGDECRST_RELEASE_RESET +#define __HAL_RCC_JPEG_CLK_SLEEP_ENABLE __HAL_RCC_JPGDEC_CLK_SLEEP_ENABLE +#define __HAL_RCC_JPEG_CLK_SLEEP_DISABLE __HAL_RCC_JPGDEC_CLK_SLEEP_DISABLE +#endif /* STM32H7 */ + +/** + * @} + */ + +/** @defgroup HAL_SYSCFG_Aliased_Defines HAL SYSCFG Aliased Defines maintained for legacy purpose + * @{ + */ + +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PA9 I2C_FASTMODEPLUS_PA9 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PA10 I2C_FASTMODEPLUS_PA10 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB6 I2C_FASTMODEPLUS_PB6 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB7 I2C_FASTMODEPLUS_PB7 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB8 I2C_FASTMODEPLUS_PB8 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB9 I2C_FASTMODEPLUS_PB9 +#define HAL_SYSCFG_FASTMODEPLUS_I2C1 I2C_FASTMODEPLUS_I2C1 +#define HAL_SYSCFG_FASTMODEPLUS_I2C2 I2C_FASTMODEPLUS_I2C2 +#define HAL_SYSCFG_FASTMODEPLUS_I2C3 I2C_FASTMODEPLUS_I2C3 +#if defined(STM32G4) + +#define HAL_SYSCFG_EnableIOAnalogSwitchBooster HAL_SYSCFG_EnableIOSwitchBooster +#define HAL_SYSCFG_DisableIOAnalogSwitchBooster HAL_SYSCFG_DisableIOSwitchBooster +#define HAL_SYSCFG_EnableIOAnalogSwitchVDD HAL_SYSCFG_EnableIOSwitchVDD +#define HAL_SYSCFG_DisableIOAnalogSwitchVDD HAL_SYSCFG_DisableIOSwitchVDD +#endif /* STM32G4 */ + +#if defined(STM32U5) + +#define HAL_SYSCFG_EnableIOAnalogSwitchBooster HAL_SYSCFG_EnableIOAnalogBooster +#define HAL_SYSCFG_DisableIOAnalogSwitchBooster HAL_SYSCFG_DisableIOAnalogBooster +#define HAL_SYSCFG_EnableIOAnalogSwitchVoltageSelection HAL_SYSCFG_EnableIOAnalogVoltageSelection +#define HAL_SYSCFG_DisableIOAnalogSwitchVoltageSelection HAL_SYSCFG_DisableIOAnalogVoltageSelection + +#endif /* STM32U5 */ + +#if defined(STM32H5) +#define SYSCFG_IT_FPU_IOC SBS_IT_FPU_IOC +#define SYSCFG_IT_FPU_DZC SBS_IT_FPU_DZC +#define SYSCFG_IT_FPU_UFC SBS_IT_FPU_UFC +#define SYSCFG_IT_FPU_OFC SBS_IT_FPU_OFC +#define SYSCFG_IT_FPU_IDC SBS_IT_FPU_IDC +#define SYSCFG_IT_FPU_IXC SBS_IT_FPU_IXC + +#define SYSCFG_BREAK_FLASH_ECC SBS_BREAK_FLASH_ECC +#define SYSCFG_BREAK_PVD SBS_BREAK_PVD +#define SYSCFG_BREAK_SRAM_ECC SBS_BREAK_SRAM_ECC +#define SYSCFG_BREAK_LOCKUP SBS_BREAK_LOCKUP + +#define SYSCFG_VREFBUF_VOLTAGE_SCALE0 VREFBUF_VOLTAGE_SCALE0 +#define SYSCFG_VREFBUF_VOLTAGE_SCALE1 VREFBUF_VOLTAGE_SCALE1 +#define SYSCFG_VREFBUF_VOLTAGE_SCALE2 VREFBUF_VOLTAGE_SCALE2 +#define SYSCFG_VREFBUF_VOLTAGE_SCALE3 VREFBUF_VOLTAGE_SCALE3 + +#define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE VREFBUF_HIGH_IMPEDANCE_DISABLE +#define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_HIGH_IMPEDANCE_ENABLE + +#define SYSCFG_FASTMODEPLUS_PB6 SBS_FASTMODEPLUS_PB6 +#define SYSCFG_FASTMODEPLUS_PB7 SBS_FASTMODEPLUS_PB7 +#define SYSCFG_FASTMODEPLUS_PB8 SBS_FASTMODEPLUS_PB8 +#define SYSCFG_FASTMODEPLUS_PB9 SBS_FASTMODEPLUS_PB9 + +#define SYSCFG_ETH_MII SBS_ETH_MII +#define SYSCFG_ETH_RMII SBS_ETH_RMII +#define IS_SYSCFG_ETHERNET_CONFIG IS_SBS_ETHERNET_CONFIG + +#define SYSCFG_MEMORIES_ERASE_FLAG_IPMEE SBS_MEMORIES_ERASE_FLAG_IPMEE +#define SYSCFG_MEMORIES_ERASE_FLAG_MCLR SBS_MEMORIES_ERASE_FLAG_MCLR +#define IS_SYSCFG_MEMORIES_ERASE_FLAG IS_SBS_MEMORIES_ERASE_FLAG + +#define IS_SYSCFG_CODE_CONFIG IS_SBS_CODE_CONFIG + +#define SYSCFG_MPU_NSEC SBS_MPU_NSEC +#define SYSCFG_VTOR_NSEC SBS_VTOR_NSEC +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +#define SYSCFG_SAU SBS_SAU +#define SYSCFG_MPU_SEC SBS_MPU_SEC +#define SYSCFG_VTOR_AIRCR_SEC SBS_VTOR_AIRCR_SEC +#define SYSCFG_LOCK_ALL SBS_LOCK_ALL +#else +#define SYSCFG_LOCK_ALL SBS_LOCK_ALL +#endif /* __ARM_FEATURE_CMSE */ + +#define SYSCFG_CLK SBS_CLK +#define SYSCFG_CLASSB SBS_CLASSB +#define SYSCFG_FPU SBS_FPU +#define SYSCFG_ALL SBS_ALL + +#define SYSCFG_SEC SBS_SEC +#define SYSCFG_NSEC SBS_NSEC + +#define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE __HAL_SBS_FPU_INTERRUPT_ENABLE +#define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE __HAL_SBS_FPU_INTERRUPT_DISABLE + +#define __HAL_SYSCFG_BREAK_ECC_LOCK __HAL_SBS_BREAK_ECC_LOCK +#define __HAL_SYSCFG_BREAK_LOCKUP_LOCK __HAL_SBS_BREAK_LOCKUP_LOCK +#define __HAL_SYSCFG_BREAK_PVD_LOCK __HAL_SBS_BREAK_PVD_LOCK +#define __HAL_SYSCFG_BREAK_SRAM_ECC_LOCK __HAL_SBS_BREAK_SRAM_ECC_LOCK + +#define __HAL_SYSCFG_FASTMODEPLUS_ENABLE __HAL_SBS_FASTMODEPLUS_ENABLE +#define __HAL_SYSCFG_FASTMODEPLUS_DISABLE __HAL_SBS_FASTMODEPLUS_DISABLE + +#define __HAL_SYSCFG_GET_MEMORIES_ERASE_STATUS __HAL_SBS_GET_MEMORIES_ERASE_STATUS +#define __HAL_SYSCFG_CLEAR_MEMORIES_ERASE_STATUS __HAL_SBS_CLEAR_MEMORIES_ERASE_STATUS + +#define IS_SYSCFG_FPU_INTERRUPT IS_SBS_FPU_INTERRUPT +#define IS_SYSCFG_BREAK_CONFIG IS_SBS_BREAK_CONFIG +#define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE IS_VREFBUF_VOLTAGE_SCALE +#define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE IS_VREFBUF_HIGH_IMPEDANCE +#define IS_SYSCFG_VREFBUF_TRIMMING IS_VREFBUF_TRIMMING +#define IS_SYSCFG_FASTMODEPLUS IS_SBS_FASTMODEPLUS +#define IS_SYSCFG_ITEMS_ATTRIBUTES IS_SBS_ITEMS_ATTRIBUTES +#define IS_SYSCFG_ATTRIBUTES IS_SBS_ATTRIBUTES +#define IS_SYSCFG_LOCK_ITEMS IS_SBS_LOCK_ITEMS + +#define HAL_SYSCFG_VREFBUF_VoltageScalingConfig HAL_VREFBUF_VoltageScalingConfig +#define HAL_SYSCFG_VREFBUF_HighImpedanceConfig HAL_VREFBUF_HighImpedanceConfig +#define HAL_SYSCFG_VREFBUF_TrimmingConfig HAL_VREFBUF_TrimmingConfig +#define HAL_SYSCFG_EnableVREFBUF HAL_EnableVREFBUF +#define HAL_SYSCFG_DisableVREFBUF HAL_DisableVREFBUF + +#define HAL_SYSCFG_EnableIOAnalogSwitchBooster HAL_SBS_EnableIOAnalogSwitchBooster +#define HAL_SYSCFG_DisableIOAnalogSwitchBooster HAL_SBS_DisableIOAnalogSwitchBooster +#define HAL_SYSCFG_ETHInterfaceSelect HAL_SBS_ETHInterfaceSelect + +#define HAL_SYSCFG_Lock HAL_SBS_Lock +#define HAL_SYSCFG_GetLock HAL_SBS_GetLock + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +#define HAL_SYSCFG_ConfigAttributes HAL_SBS_ConfigAttributes +#define HAL_SYSCFG_GetConfigAttributes HAL_SBS_GetConfigAttributes +#endif /* __ARM_FEATURE_CMSE */ + +#endif /* STM32H5 */ + + +/** + * @} + */ + + +/** @defgroup LL_FMC_Aliased_Defines LL FMC Aliased Defines maintained for compatibility purpose + * @{ + */ +#if defined(STM32L4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4) +#define FMC_NAND_PCC_WAIT_FEATURE_DISABLE FMC_NAND_WAIT_FEATURE_DISABLE +#define FMC_NAND_PCC_WAIT_FEATURE_ENABLE FMC_NAND_WAIT_FEATURE_ENABLE +#define FMC_NAND_PCC_MEM_BUS_WIDTH_8 FMC_NAND_MEM_BUS_WIDTH_8 +#define FMC_NAND_PCC_MEM_BUS_WIDTH_16 FMC_NAND_MEM_BUS_WIDTH_16 +#elif defined(STM32F1) || defined(STM32F2) || defined(STM32F3) || defined(STM32F4) +#define FMC_NAND_WAIT_FEATURE_DISABLE FMC_NAND_PCC_WAIT_FEATURE_DISABLE +#define FMC_NAND_WAIT_FEATURE_ENABLE FMC_NAND_PCC_WAIT_FEATURE_ENABLE +#define FMC_NAND_MEM_BUS_WIDTH_8 FMC_NAND_PCC_MEM_BUS_WIDTH_8 +#define FMC_NAND_MEM_BUS_WIDTH_16 FMC_NAND_PCC_MEM_BUS_WIDTH_16 +#endif +/** + * @} + */ + +/** @defgroup LL_FSMC_Aliased_Defines LL FSMC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define FSMC_NORSRAM_TYPEDEF FSMC_NORSRAM_TypeDef +#define FSMC_NORSRAM_EXTENDED_TYPEDEF FSMC_NORSRAM_EXTENDED_TypeDef +/** + * @} + */ + +/** @defgroup HAL_GPIO_Aliased_Macros HAL GPIO Aliased Macros maintained for legacy purpose + * @{ + */ +#define GET_GPIO_SOURCE GPIO_GET_INDEX +#define GET_GPIO_INDEX GPIO_GET_INDEX + +#if defined(STM32F4) +#define GPIO_AF12_SDMMC GPIO_AF12_SDIO +#define GPIO_AF12_SDMMC1 GPIO_AF12_SDIO +#endif + +#if defined(STM32F7) +#define GPIO_AF12_SDIO GPIO_AF12_SDMMC1 +#define GPIO_AF12_SDMMC GPIO_AF12_SDMMC1 +#endif + +#if defined(STM32L4) +#define GPIO_AF12_SDIO GPIO_AF12_SDMMC1 +#define GPIO_AF12_SDMMC GPIO_AF12_SDMMC1 +#endif + +#if defined(STM32H7) +#define GPIO_AF7_SDIO1 GPIO_AF7_SDMMC1 +#define GPIO_AF8_SDIO1 GPIO_AF8_SDMMC1 +#define GPIO_AF12_SDIO1 GPIO_AF12_SDMMC1 +#define GPIO_AF9_SDIO2 GPIO_AF9_SDMMC2 +#define GPIO_AF10_SDIO2 GPIO_AF10_SDMMC2 +#define GPIO_AF11_SDIO2 GPIO_AF11_SDMMC2 + +#if defined (STM32H743xx) || defined (STM32H753xx) || defined (STM32H750xx) || defined (STM32H742xx) || \ + defined (STM32H745xx) || defined (STM32H755xx) || defined (STM32H747xx) || defined (STM32H757xx) +#define GPIO_AF10_OTG2_HS GPIO_AF10_OTG2_FS +#define GPIO_AF10_OTG1_FS GPIO_AF10_OTG1_HS +#define GPIO_AF12_OTG2_FS GPIO_AF12_OTG1_FS +#endif /*STM32H743xx || STM32H753xx || STM32H750xx || STM32H742xx || STM32H745xx || STM32H755xx || STM32H747xx || \ + STM32H757xx */ +#endif /* STM32H7 */ + +#define GPIO_AF0_LPTIM GPIO_AF0_LPTIM1 +#define GPIO_AF1_LPTIM GPIO_AF1_LPTIM1 +#define GPIO_AF2_LPTIM GPIO_AF2_LPTIM1 + +#if defined(STM32L0) || defined(STM32L4) || defined(STM32F4) || defined(STM32F2) || defined(STM32F7) || \ + defined(STM32G4) || defined(STM32H7) || defined(STM32WB) || defined(STM32U5) +#define GPIO_SPEED_LOW GPIO_SPEED_FREQ_LOW +#define GPIO_SPEED_MEDIUM GPIO_SPEED_FREQ_MEDIUM +#define GPIO_SPEED_FAST GPIO_SPEED_FREQ_HIGH +#define GPIO_SPEED_HIGH GPIO_SPEED_FREQ_VERY_HIGH +#endif /* STM32L0 || STM32L4 || STM32F4 || STM32F2 || STM32F7 || STM32G4 || STM32H7 || STM32WB || STM32U5*/ + +#if defined(STM32L1) +#define GPIO_SPEED_VERY_LOW GPIO_SPEED_FREQ_LOW +#define GPIO_SPEED_LOW GPIO_SPEED_FREQ_MEDIUM +#define GPIO_SPEED_MEDIUM GPIO_SPEED_FREQ_HIGH +#define GPIO_SPEED_HIGH GPIO_SPEED_FREQ_VERY_HIGH +#endif /* STM32L1 */ + +#if defined(STM32F0) || defined(STM32F3) || defined(STM32F1) +#define GPIO_SPEED_LOW GPIO_SPEED_FREQ_LOW +#define GPIO_SPEED_MEDIUM GPIO_SPEED_FREQ_MEDIUM +#define GPIO_SPEED_HIGH GPIO_SPEED_FREQ_HIGH +#endif /* STM32F0 || STM32F3 || STM32F1 */ + +#define GPIO_AF6_DFSDM GPIO_AF6_DFSDM1 + +#if defined(STM32U5) || defined(STM32H5) +#define GPIO_AF0_RTC_50Hz GPIO_AF0_RTC_50HZ +#endif /* STM32U5 || STM32H5 */ +#if defined(STM32U5) +#define GPIO_AF0_S2DSTOP GPIO_AF0_SRDSTOP +#define GPIO_AF11_LPGPIO GPIO_AF11_LPGPIO1 +#endif /* STM32U5 */ + +#if defined(STM32WBA) +#define GPIO_AF11_RF_ANTSW0 GPIO_AF11_RF +#define GPIO_AF11_RF_ANTSW1 GPIO_AF11_RF +#define GPIO_AF11_RF_ANTSW2 GPIO_AF11_RF +#define GPIO_AF11_RF_IO1 GPIO_AF11_RF +#define GPIO_AF11_RF_IO2 GPIO_AF11_RF +#define GPIO_AF11_RF_IO3 GPIO_AF11_RF +#define GPIO_AF11_RF_IO4 GPIO_AF11_RF +#define GPIO_AF11_RF_IO5 GPIO_AF11_RF +#define GPIO_AF11_RF_IO6 GPIO_AF11_RF +#define GPIO_AF11_RF_IO7 GPIO_AF11_RF +#define GPIO_AF11_RF_IO8 GPIO_AF11_RF +#define GPIO_AF11_RF_IO9 GPIO_AF11_RF +#endif /* STM32WBA */ +/** + * @} + */ + +/** @defgroup HAL_GTZC_Aliased_Defines HAL GTZC Aliased Defines maintained for legacy purpose + * @{ + */ +#if defined(STM32U5) +#define GTZC_PERIPH_DCMI GTZC_PERIPH_DCMI_PSSI +#define GTZC_PERIPH_LTDC GTZC_PERIPH_LTDCUSB +#endif /* STM32U5 */ +#if defined(STM32H5) +#define GTZC_PERIPH_DAC12 GTZC_PERIPH_DAC1 +#define GTZC_PERIPH_ADC12 GTZC_PERIPH_ADC +#define GTZC_PERIPH_USBFS GTZC_PERIPH_USB +#endif /* STM32H5 */ +#if defined(STM32H5) || defined(STM32U5) +#define GTZC_MCPBB_NB_VCTR_REG_MAX GTZC_MPCBB_NB_VCTR_REG_MAX +#define GTZC_MCPBB_NB_LCK_VCTR_REG_MAX GTZC_MPCBB_NB_LCK_VCTR_REG_MAX +#define GTZC_MCPBB_SUPERBLOCK_UNLOCKED GTZC_MPCBB_SUPERBLOCK_UNLOCKED +#define GTZC_MCPBB_SUPERBLOCK_LOCKED GTZC_MPCBB_SUPERBLOCK_LOCKED +#define GTZC_MCPBB_BLOCK_NSEC GTZC_MPCBB_BLOCK_NSEC +#define GTZC_MCPBB_BLOCK_SEC GTZC_MPCBB_BLOCK_SEC +#define GTZC_MCPBB_BLOCK_NPRIV GTZC_MPCBB_BLOCK_NPRIV +#define GTZC_MCPBB_BLOCK_PRIV GTZC_MPCBB_BLOCK_PRIV +#define GTZC_MCPBB_LOCK_OFF GTZC_MPCBB_LOCK_OFF +#define GTZC_MCPBB_LOCK_ON GTZC_MPCBB_LOCK_ON +#endif /* STM32H5 || STM32U5 */ +/** + * @} + */ + +/** @defgroup HAL_HRTIM_Aliased_Macros HAL HRTIM Aliased Macros maintained for legacy purpose + * @{ + */ +#define HRTIM_TIMDELAYEDPROTECTION_DISABLED HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT1_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT2_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDBOTH_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_BALANCED_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT1_DEEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT2_DEEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDBOTH_EEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7 +#define HRTIM_TIMDELAYEDPROTECTION_BALANCED_EEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7 + +#define __HAL_HRTIM_SetCounter __HAL_HRTIM_SETCOUNTER +#define __HAL_HRTIM_GetCounter __HAL_HRTIM_GETCOUNTER +#define __HAL_HRTIM_SetPeriod __HAL_HRTIM_SETPERIOD +#define __HAL_HRTIM_GetPeriod __HAL_HRTIM_GETPERIOD +#define __HAL_HRTIM_SetClockPrescaler __HAL_HRTIM_SETCLOCKPRESCALER +#define __HAL_HRTIM_GetClockPrescaler __HAL_HRTIM_GETCLOCKPRESCALER +#define __HAL_HRTIM_SetCompare __HAL_HRTIM_SETCOMPARE +#define __HAL_HRTIM_GetCompare __HAL_HRTIM_GETCOMPARE + +#if defined(STM32F3) || defined(STM32G4) || defined(STM32H7) +#define HRTIMInterruptResquests HRTIMInterruptRequests +#endif /* STM32F3 || STM32G4 || STM32H7 */ + +#if defined(STM32G4) +#define HAL_HRTIM_ExternalEventCounterConfig HAL_HRTIM_ExtEventCounterConfig +#define HAL_HRTIM_ExternalEventCounterEnable HAL_HRTIM_ExtEventCounterEnable +#define HAL_HRTIM_ExternalEventCounterDisable HAL_HRTIM_ExtEventCounterDisable +#define HAL_HRTIM_ExternalEventCounterReset HAL_HRTIM_ExtEventCounterReset +#define HRTIM_TIMEEVENT_A HRTIM_EVENTCOUNTER_A +#define HRTIM_TIMEEVENT_B HRTIM_EVENTCOUNTER_B +#define HRTIM_TIMEEVENTRESETMODE_UNCONDITIONAL HRTIM_EVENTCOUNTER_RSTMODE_UNCONDITIONAL +#define HRTIM_TIMEEVENTRESETMODE_CONDITIONAL HRTIM_EVENTCOUNTER_RSTMODE_CONDITIONAL +#endif /* STM32G4 */ + +#if defined(STM32H7) +#define HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMCEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMCEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMEEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_9 + +#define HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMEEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_9 +#endif /* STM32H7 */ + +#if defined(STM32F3) +/** @brief Constants defining available sources associated to external events. + */ +#define HRTIM_EVENTSRC_1 (0x00000000U) +#define HRTIM_EVENTSRC_2 (HRTIM_EECR1_EE1SRC_0) +#define HRTIM_EVENTSRC_3 (HRTIM_EECR1_EE1SRC_1) +#define HRTIM_EVENTSRC_4 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) + +/** @brief Constants defining the DLL calibration periods (in micro seconds) + */ +#define HRTIM_CALIBRATIONRATE_7300 0x00000000U +#define HRTIM_CALIBRATIONRATE_910 (HRTIM_DLLCR_CALRTE_0) +#define HRTIM_CALIBRATIONRATE_114 (HRTIM_DLLCR_CALRTE_1) +#define HRTIM_CALIBRATIONRATE_14 (HRTIM_DLLCR_CALRTE_1 | HRTIM_DLLCR_CALRTE_0) +#endif /* STM32F3 */ + +/** + * @} + */ + +/** @defgroup HAL_I2C_Aliased_Defines HAL I2C Aliased Defines maintained for legacy purpose + * @{ + */ +#define I2C_DUALADDRESS_DISABLED I2C_DUALADDRESS_DISABLE +#define I2C_DUALADDRESS_ENABLED I2C_DUALADDRESS_ENABLE +#define I2C_GENERALCALL_DISABLED I2C_GENERALCALL_DISABLE +#define I2C_GENERALCALL_ENABLED I2C_GENERALCALL_ENABLE +#define I2C_NOSTRETCH_DISABLED I2C_NOSTRETCH_DISABLE +#define I2C_NOSTRETCH_ENABLED I2C_NOSTRETCH_ENABLE +#define I2C_ANALOGFILTER_ENABLED I2C_ANALOGFILTER_ENABLE +#define I2C_ANALOGFILTER_DISABLED I2C_ANALOGFILTER_DISABLE +#if defined(STM32F0) || defined(STM32F1) || defined(STM32F3) || defined(STM32G0) || defined(STM32L4) || \ + defined(STM32L1) || defined(STM32F7) +#define HAL_I2C_STATE_MEM_BUSY_TX HAL_I2C_STATE_BUSY_TX +#define HAL_I2C_STATE_MEM_BUSY_RX HAL_I2C_STATE_BUSY_RX +#define HAL_I2C_STATE_MASTER_BUSY_TX HAL_I2C_STATE_BUSY_TX +#define HAL_I2C_STATE_MASTER_BUSY_RX HAL_I2C_STATE_BUSY_RX +#define HAL_I2C_STATE_SLAVE_BUSY_TX HAL_I2C_STATE_BUSY_TX +#define HAL_I2C_STATE_SLAVE_BUSY_RX HAL_I2C_STATE_BUSY_RX +#endif +/** + * @} + */ + +/** @defgroup HAL_IRDA_Aliased_Defines HAL IRDA Aliased Defines maintained for legacy purpose + * @{ + */ +#define IRDA_ONE_BIT_SAMPLE_DISABLED IRDA_ONE_BIT_SAMPLE_DISABLE +#define IRDA_ONE_BIT_SAMPLE_ENABLED IRDA_ONE_BIT_SAMPLE_ENABLE + +/** + * @} + */ + +/** @defgroup HAL_IWDG_Aliased_Defines HAL IWDG Aliased Defines maintained for legacy purpose + * @{ + */ +#define KR_KEY_RELOAD IWDG_KEY_RELOAD +#define KR_KEY_ENABLE IWDG_KEY_ENABLE +#define KR_KEY_EWA IWDG_KEY_WRITE_ACCESS_ENABLE +#define KR_KEY_DWA IWDG_KEY_WRITE_ACCESS_DISABLE +/** + * @} + */ + +/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose + * @{ + */ + +#define LPTIM_CLOCKSAMPLETIME_DIRECTTRANSISTION LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION +#define LPTIM_CLOCKSAMPLETIME_2TRANSISTIONS LPTIM_CLOCKSAMPLETIME_2TRANSITIONS +#define LPTIM_CLOCKSAMPLETIME_4TRANSISTIONS LPTIM_CLOCKSAMPLETIME_4TRANSITIONS +#define LPTIM_CLOCKSAMPLETIME_8TRANSISTIONS LPTIM_CLOCKSAMPLETIME_8TRANSITIONS + +#define LPTIM_CLOCKPOLARITY_RISINGEDGE LPTIM_CLOCKPOLARITY_RISING +#define LPTIM_CLOCKPOLARITY_FALLINGEDGE LPTIM_CLOCKPOLARITY_FALLING +#define LPTIM_CLOCKPOLARITY_BOTHEDGES LPTIM_CLOCKPOLARITY_RISING_FALLING + +#define LPTIM_TRIGSAMPLETIME_DIRECTTRANSISTION LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION +#define LPTIM_TRIGSAMPLETIME_2TRANSISTIONS LPTIM_TRIGSAMPLETIME_2TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_4TRANSISTIONS LPTIM_TRIGSAMPLETIME_4TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_8TRANSISTIONS LPTIM_TRIGSAMPLETIME_8TRANSITIONS + +/* The following 3 definition have also been present in a temporary version of lptim.h */ +/* They need to be renamed also to the right name, just in case */ +#define LPTIM_TRIGSAMPLETIME_2TRANSITION LPTIM_TRIGSAMPLETIME_2TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_4TRANSITION LPTIM_TRIGSAMPLETIME_4TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_8TRANSITION LPTIM_TRIGSAMPLETIME_8TRANSITIONS + + +/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_LPTIM_ReadCompare HAL_LPTIM_ReadCapturedValue +/** + * @} + */ + +#if defined(STM32U5) +#define LPTIM_ISR_CC1 LPTIM_ISR_CC1IF +#define LPTIM_ISR_CC2 LPTIM_ISR_CC2IF +#define LPTIM_CHANNEL_ALL 0x00000000U +#endif /* STM32U5 */ +/** + * @} + */ + +/** @defgroup HAL_NAND_Aliased_Defines HAL NAND Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_NAND_Read_Page HAL_NAND_Read_Page_8b +#define HAL_NAND_Write_Page HAL_NAND_Write_Page_8b +#define HAL_NAND_Read_SpareArea HAL_NAND_Read_SpareArea_8b +#define HAL_NAND_Write_SpareArea HAL_NAND_Write_SpareArea_8b + +#define NAND_AddressTypedef NAND_AddressTypeDef + +#define __ARRAY_ADDRESS ARRAY_ADDRESS +#define __ADDR_1st_CYCLE ADDR_1ST_CYCLE +#define __ADDR_2nd_CYCLE ADDR_2ND_CYCLE +#define __ADDR_3rd_CYCLE ADDR_3RD_CYCLE +#define __ADDR_4th_CYCLE ADDR_4TH_CYCLE +/** + * @} + */ + +/** @defgroup HAL_NOR_Aliased_Defines HAL NOR Aliased Defines maintained for legacy purpose + * @{ + */ +#define NOR_StatusTypedef HAL_NOR_StatusTypeDef +#define NOR_SUCCESS HAL_NOR_STATUS_SUCCESS +#define NOR_ONGOING HAL_NOR_STATUS_ONGOING +#define NOR_ERROR HAL_NOR_STATUS_ERROR +#define NOR_TIMEOUT HAL_NOR_STATUS_TIMEOUT + +#define __NOR_WRITE NOR_WRITE +#define __NOR_ADDR_SHIFT NOR_ADDR_SHIFT +/** + * @} + */ + +/** @defgroup HAL_OPAMP_Aliased_Defines HAL OPAMP Aliased Defines maintained for legacy purpose + * @{ + */ + +#define OPAMP_NONINVERTINGINPUT_VP0 OPAMP_NONINVERTINGINPUT_IO0 +#define OPAMP_NONINVERTINGINPUT_VP1 OPAMP_NONINVERTINGINPUT_IO1 +#define OPAMP_NONINVERTINGINPUT_VP2 OPAMP_NONINVERTINGINPUT_IO2 +#define OPAMP_NONINVERTINGINPUT_VP3 OPAMP_NONINVERTINGINPUT_IO3 + +#define OPAMP_SEC_NONINVERTINGINPUT_VP0 OPAMP_SEC_NONINVERTINGINPUT_IO0 +#define OPAMP_SEC_NONINVERTINGINPUT_VP1 OPAMP_SEC_NONINVERTINGINPUT_IO1 +#define OPAMP_SEC_NONINVERTINGINPUT_VP2 OPAMP_SEC_NONINVERTINGINPUT_IO2 +#define OPAMP_SEC_NONINVERTINGINPUT_VP3 OPAMP_SEC_NONINVERTINGINPUT_IO3 + +#define OPAMP_INVERTINGINPUT_VM0 OPAMP_INVERTINGINPUT_IO0 +#define OPAMP_INVERTINGINPUT_VM1 OPAMP_INVERTINGINPUT_IO1 + +#define IOPAMP_INVERTINGINPUT_VM0 OPAMP_INVERTINGINPUT_IO0 +#define IOPAMP_INVERTINGINPUT_VM1 OPAMP_INVERTINGINPUT_IO1 + +#define OPAMP_SEC_INVERTINGINPUT_VM0 OPAMP_SEC_INVERTINGINPUT_IO0 +#define OPAMP_SEC_INVERTINGINPUT_VM1 OPAMP_SEC_INVERTINGINPUT_IO1 + +#define OPAMP_INVERTINGINPUT_VINM OPAMP_SEC_INVERTINGINPUT_IO1 + +#define OPAMP_PGACONNECT_NO OPAMP_PGA_CONNECT_INVERTINGINPUT_NO +#define OPAMP_PGACONNECT_VM0 OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0 +#define OPAMP_PGACONNECT_VM1 OPAMP_PGA_CONNECT_INVERTINGINPUT_IO1 + +#if defined(STM32L1) || defined(STM32L4) || defined(STM32L5) || defined(STM32H7) || defined(STM32G4) || defined(STM32U5) +#define HAL_OPAMP_MSP_INIT_CB_ID HAL_OPAMP_MSPINIT_CB_ID +#define HAL_OPAMP_MSP_DEINIT_CB_ID HAL_OPAMP_MSPDEINIT_CB_ID +#endif + +#if defined(STM32L4) || defined(STM32L5) +#define OPAMP_POWERMODE_NORMAL OPAMP_POWERMODE_NORMALPOWER +#elif defined(STM32G4) +#define OPAMP_POWERMODE_NORMAL OPAMP_POWERMODE_NORMALSPEED +#endif + +/** + * @} + */ + +/** @defgroup HAL_I2S_Aliased_Defines HAL I2S Aliased Defines maintained for legacy purpose + * @{ + */ +#define I2S_STANDARD_PHILLIPS I2S_STANDARD_PHILIPS + +#if defined(STM32H7) +#define I2S_IT_TXE I2S_IT_TXP +#define I2S_IT_RXNE I2S_IT_RXP + +#define I2S_FLAG_TXE I2S_FLAG_TXP +#define I2S_FLAG_RXNE I2S_FLAG_RXP +#endif + +#if defined(STM32F7) +#define I2S_CLOCK_SYSCLK I2S_CLOCK_PLL +#endif +/** + * @} + */ + +/** @defgroup HAL_PCCARD_Aliased_Defines HAL PCCARD Aliased Defines maintained for legacy purpose + * @{ + */ + +/* Compact Flash-ATA registers description */ +#define CF_DATA ATA_DATA +#define CF_SECTOR_COUNT ATA_SECTOR_COUNT +#define CF_SECTOR_NUMBER ATA_SECTOR_NUMBER +#define CF_CYLINDER_LOW ATA_CYLINDER_LOW +#define CF_CYLINDER_HIGH ATA_CYLINDER_HIGH +#define CF_CARD_HEAD ATA_CARD_HEAD +#define CF_STATUS_CMD ATA_STATUS_CMD +#define CF_STATUS_CMD_ALTERNATE ATA_STATUS_CMD_ALTERNATE +#define CF_COMMON_DATA_AREA ATA_COMMON_DATA_AREA + +/* Compact Flash-ATA commands */ +#define CF_READ_SECTOR_CMD ATA_READ_SECTOR_CMD +#define CF_WRITE_SECTOR_CMD ATA_WRITE_SECTOR_CMD +#define CF_ERASE_SECTOR_CMD ATA_ERASE_SECTOR_CMD +#define CF_IDENTIFY_CMD ATA_IDENTIFY_CMD + +#define PCCARD_StatusTypedef HAL_PCCARD_StatusTypeDef +#define PCCARD_SUCCESS HAL_PCCARD_STATUS_SUCCESS +#define PCCARD_ONGOING HAL_PCCARD_STATUS_ONGOING +#define PCCARD_ERROR HAL_PCCARD_STATUS_ERROR +#define PCCARD_TIMEOUT HAL_PCCARD_STATUS_TIMEOUT +/** + * @} + */ + +/** @defgroup HAL_RTC_Aliased_Defines HAL RTC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define FORMAT_BIN RTC_FORMAT_BIN +#define FORMAT_BCD RTC_FORMAT_BCD + +#define RTC_ALARMSUBSECONDMASK_None RTC_ALARMSUBSECONDMASK_NONE +#define RTC_TAMPERERASEBACKUP_DISABLED RTC_TAMPER_ERASE_BACKUP_DISABLE +#define RTC_TAMPERMASK_FLAG_DISABLED RTC_TAMPERMASK_FLAG_DISABLE +#define RTC_TAMPERMASK_FLAG_ENABLED RTC_TAMPERMASK_FLAG_ENABLE + +#define RTC_MASKTAMPERFLAG_DISABLED RTC_TAMPERMASK_FLAG_DISABLE +#define RTC_MASKTAMPERFLAG_ENABLED RTC_TAMPERMASK_FLAG_ENABLE +#define RTC_TAMPERERASEBACKUP_ENABLED RTC_TAMPER_ERASE_BACKUP_ENABLE +#define RTC_TAMPER1_2_INTERRUPT RTC_ALL_TAMPER_INTERRUPT +#define RTC_TAMPER1_2_3_INTERRUPT RTC_ALL_TAMPER_INTERRUPT + +#define RTC_TIMESTAMPPIN_PC13 RTC_TIMESTAMPPIN_DEFAULT +#define RTC_TIMESTAMPPIN_PA0 RTC_TIMESTAMPPIN_POS1 +#define RTC_TIMESTAMPPIN_PI8 RTC_TIMESTAMPPIN_POS1 +#define RTC_TIMESTAMPPIN_PC1 RTC_TIMESTAMPPIN_POS2 + +#define RTC_OUTPUT_REMAP_PC13 RTC_OUTPUT_REMAP_NONE +#define RTC_OUTPUT_REMAP_PB14 RTC_OUTPUT_REMAP_POS1 +#define RTC_OUTPUT_REMAP_PB2 RTC_OUTPUT_REMAP_POS1 + +#define RTC_TAMPERPIN_PC13 RTC_TAMPERPIN_DEFAULT +#define RTC_TAMPERPIN_PA0 RTC_TAMPERPIN_POS1 +#define RTC_TAMPERPIN_PI8 RTC_TAMPERPIN_POS1 + +#if defined(STM32H5) || defined(STM32H7RS) +#define TAMP_SECRETDEVICE_ERASE_NONE TAMP_DEVICESECRETS_ERASE_NONE +#define TAMP_SECRETDEVICE_ERASE_BKP_SRAM TAMP_DEVICESECRETS_ERASE_BKPSRAM +#endif /* STM32H5 || STM32H7RS */ + +#if defined(STM32WBA) +#define TAMP_SECRETDEVICE_ERASE_NONE TAMP_DEVICESECRETS_ERASE_NONE +#define TAMP_SECRETDEVICE_ERASE_SRAM2 TAMP_DEVICESECRETS_ERASE_SRAM2 +#define TAMP_SECRETDEVICE_ERASE_RHUK TAMP_DEVICESECRETS_ERASE_RHUK +#define TAMP_SECRETDEVICE_ERASE_ICACHE TAMP_DEVICESECRETS_ERASE_ICACHE +#define TAMP_SECRETDEVICE_ERASE_SAES_AES_HASH TAMP_DEVICESECRETS_ERASE_SAES_AES_HASH +#define TAMP_SECRETDEVICE_ERASE_PKA_SRAM TAMP_DEVICESECRETS_ERASE_PKA_SRAM +#define TAMP_SECRETDEVICE_ERASE_ALL TAMP_DEVICESECRETS_ERASE_ALL +#endif /* STM32WBA */ + +#if defined(STM32H5) || defined(STM32WBA) || defined(STM32H7RS) +#define TAMP_SECRETDEVICE_ERASE_DISABLE TAMP_DEVICESECRETS_ERASE_NONE +#define TAMP_SECRETDEVICE_ERASE_ENABLE TAMP_SECRETDEVICE_ERASE_ALL +#endif /* STM32H5 || STM32WBA || STM32H7RS */ + +#if defined(STM32F7) +#define RTC_TAMPCR_TAMPXE RTC_TAMPER_ENABLE_BITS_MASK +#define RTC_TAMPCR_TAMPXIE RTC_TAMPER_IT_ENABLE_BITS_MASK +#endif /* STM32F7 */ + +#if defined(STM32H7) +#define RTC_TAMPCR_TAMPXE RTC_TAMPER_X +#define RTC_TAMPCR_TAMPXIE RTC_TAMPER_X_INTERRUPT +#endif /* STM32H7 */ + +#if defined(STM32F7) || defined(STM32H7) || defined(STM32L0) +#define RTC_TAMPER1_INTERRUPT RTC_IT_TAMP1 +#define RTC_TAMPER2_INTERRUPT RTC_IT_TAMP2 +#define RTC_TAMPER3_INTERRUPT RTC_IT_TAMP3 +#define RTC_ALL_TAMPER_INTERRUPT RTC_IT_TAMP +#endif /* STM32F7 || STM32H7 || STM32L0 */ + +/** + * @} + */ + + +/** @defgroup HAL_SMARTCARD_Aliased_Defines HAL SMARTCARD Aliased Defines maintained for legacy purpose + * @{ + */ +#define SMARTCARD_NACK_ENABLED SMARTCARD_NACK_ENABLE +#define SMARTCARD_NACK_DISABLED SMARTCARD_NACK_DISABLE + +#define SMARTCARD_ONEBIT_SAMPLING_DISABLED SMARTCARD_ONE_BIT_SAMPLE_DISABLE +#define SMARTCARD_ONEBIT_SAMPLING_ENABLED SMARTCARD_ONE_BIT_SAMPLE_ENABLE +#define SMARTCARD_ONEBIT_SAMPLING_DISABLE SMARTCARD_ONE_BIT_SAMPLE_DISABLE +#define SMARTCARD_ONEBIT_SAMPLING_ENABLE SMARTCARD_ONE_BIT_SAMPLE_ENABLE + +#define SMARTCARD_TIMEOUT_DISABLED SMARTCARD_TIMEOUT_DISABLE +#define SMARTCARD_TIMEOUT_ENABLED SMARTCARD_TIMEOUT_ENABLE + +#define SMARTCARD_LASTBIT_DISABLED SMARTCARD_LASTBIT_DISABLE +#define SMARTCARD_LASTBIT_ENABLED SMARTCARD_LASTBIT_ENABLE +/** + * @} + */ + + +/** @defgroup HAL_SMBUS_Aliased_Defines HAL SMBUS Aliased Defines maintained for legacy purpose + * @{ + */ +#define SMBUS_DUALADDRESS_DISABLED SMBUS_DUALADDRESS_DISABLE +#define SMBUS_DUALADDRESS_ENABLED SMBUS_DUALADDRESS_ENABLE +#define SMBUS_GENERALCALL_DISABLED SMBUS_GENERALCALL_DISABLE +#define SMBUS_GENERALCALL_ENABLED SMBUS_GENERALCALL_ENABLE +#define SMBUS_NOSTRETCH_DISABLED SMBUS_NOSTRETCH_DISABLE +#define SMBUS_NOSTRETCH_ENABLED SMBUS_NOSTRETCH_ENABLE +#define SMBUS_ANALOGFILTER_ENABLED SMBUS_ANALOGFILTER_ENABLE +#define SMBUS_ANALOGFILTER_DISABLED SMBUS_ANALOGFILTER_DISABLE +#define SMBUS_PEC_DISABLED SMBUS_PEC_DISABLE +#define SMBUS_PEC_ENABLED SMBUS_PEC_ENABLE +#define HAL_SMBUS_STATE_SLAVE_LISTEN HAL_SMBUS_STATE_LISTEN +/** + * @} + */ + +/** @defgroup HAL_SPI_Aliased_Defines HAL SPI Aliased Defines maintained for legacy purpose + * @{ + */ +#define SPI_TIMODE_DISABLED SPI_TIMODE_DISABLE +#define SPI_TIMODE_ENABLED SPI_TIMODE_ENABLE + +#define SPI_CRCCALCULATION_DISABLED SPI_CRCCALCULATION_DISABLE +#define SPI_CRCCALCULATION_ENABLED SPI_CRCCALCULATION_ENABLE + +#define SPI_NSS_PULSE_DISABLED SPI_NSS_PULSE_DISABLE +#define SPI_NSS_PULSE_ENABLED SPI_NSS_PULSE_ENABLE + +#if defined(STM32H7) + +#define SPI_FLAG_TXE SPI_FLAG_TXP +#define SPI_FLAG_RXNE SPI_FLAG_RXP + +#define SPI_IT_TXE SPI_IT_TXP +#define SPI_IT_RXNE SPI_IT_RXP + +#define SPI_FRLVL_EMPTY SPI_RX_FIFO_0PACKET +#define SPI_FRLVL_QUARTER_FULL SPI_RX_FIFO_1PACKET +#define SPI_FRLVL_HALF_FULL SPI_RX_FIFO_2PACKET +#define SPI_FRLVL_FULL SPI_RX_FIFO_3PACKET + +#endif /* STM32H7 */ + +/** + * @} + */ + +/** @defgroup HAL_TIM_Aliased_Defines HAL TIM Aliased Defines maintained for legacy purpose + * @{ + */ +#define CCER_CCxE_MASK TIM_CCER_CCxE_MASK +#define CCER_CCxNE_MASK TIM_CCER_CCxNE_MASK + +#define TIM_DMABase_CR1 TIM_DMABASE_CR1 +#define TIM_DMABase_CR2 TIM_DMABASE_CR2 +#define TIM_DMABase_SMCR TIM_DMABASE_SMCR +#define TIM_DMABase_DIER TIM_DMABASE_DIER +#define TIM_DMABase_SR TIM_DMABASE_SR +#define TIM_DMABase_EGR TIM_DMABASE_EGR +#define TIM_DMABase_CCMR1 TIM_DMABASE_CCMR1 +#define TIM_DMABase_CCMR2 TIM_DMABASE_CCMR2 +#define TIM_DMABase_CCER TIM_DMABASE_CCER +#define TIM_DMABase_CNT TIM_DMABASE_CNT +#define TIM_DMABase_PSC TIM_DMABASE_PSC +#define TIM_DMABase_ARR TIM_DMABASE_ARR +#define TIM_DMABase_RCR TIM_DMABASE_RCR +#define TIM_DMABase_CCR1 TIM_DMABASE_CCR1 +#define TIM_DMABase_CCR2 TIM_DMABASE_CCR2 +#define TIM_DMABase_CCR3 TIM_DMABASE_CCR3 +#define TIM_DMABase_CCR4 TIM_DMABASE_CCR4 +#define TIM_DMABase_BDTR TIM_DMABASE_BDTR +#define TIM_DMABase_DCR TIM_DMABASE_DCR +#define TIM_DMABase_DMAR TIM_DMABASE_DMAR +#define TIM_DMABase_OR1 TIM_DMABASE_OR1 +#define TIM_DMABase_CCMR3 TIM_DMABASE_CCMR3 +#define TIM_DMABase_CCR5 TIM_DMABASE_CCR5 +#define TIM_DMABase_CCR6 TIM_DMABASE_CCR6 +#define TIM_DMABase_OR2 TIM_DMABASE_OR2 +#define TIM_DMABase_OR3 TIM_DMABASE_OR3 +#define TIM_DMABase_OR TIM_DMABASE_OR + +#define TIM_EventSource_Update TIM_EVENTSOURCE_UPDATE +#define TIM_EventSource_CC1 TIM_EVENTSOURCE_CC1 +#define TIM_EventSource_CC2 TIM_EVENTSOURCE_CC2 +#define TIM_EventSource_CC3 TIM_EVENTSOURCE_CC3 +#define TIM_EventSource_CC4 TIM_EVENTSOURCE_CC4 +#define TIM_EventSource_COM TIM_EVENTSOURCE_COM +#define TIM_EventSource_Trigger TIM_EVENTSOURCE_TRIGGER +#define TIM_EventSource_Break TIM_EVENTSOURCE_BREAK +#define TIM_EventSource_Break2 TIM_EVENTSOURCE_BREAK2 + +#define TIM_DMABurstLength_1Transfer TIM_DMABURSTLENGTH_1TRANSFER +#define TIM_DMABurstLength_2Transfers TIM_DMABURSTLENGTH_2TRANSFERS +#define TIM_DMABurstLength_3Transfers TIM_DMABURSTLENGTH_3TRANSFERS +#define TIM_DMABurstLength_4Transfers TIM_DMABURSTLENGTH_4TRANSFERS +#define TIM_DMABurstLength_5Transfers TIM_DMABURSTLENGTH_5TRANSFERS +#define TIM_DMABurstLength_6Transfers TIM_DMABURSTLENGTH_6TRANSFERS +#define TIM_DMABurstLength_7Transfers TIM_DMABURSTLENGTH_7TRANSFERS +#define TIM_DMABurstLength_8Transfers TIM_DMABURSTLENGTH_8TRANSFERS +#define TIM_DMABurstLength_9Transfers TIM_DMABURSTLENGTH_9TRANSFERS +#define TIM_DMABurstLength_10Transfers TIM_DMABURSTLENGTH_10TRANSFERS +#define TIM_DMABurstLength_11Transfers TIM_DMABURSTLENGTH_11TRANSFERS +#define TIM_DMABurstLength_12Transfers TIM_DMABURSTLENGTH_12TRANSFERS +#define TIM_DMABurstLength_13Transfers TIM_DMABURSTLENGTH_13TRANSFERS +#define TIM_DMABurstLength_14Transfers TIM_DMABURSTLENGTH_14TRANSFERS +#define TIM_DMABurstLength_15Transfers TIM_DMABURSTLENGTH_15TRANSFERS +#define TIM_DMABurstLength_16Transfers TIM_DMABURSTLENGTH_16TRANSFERS +#define TIM_DMABurstLength_17Transfers TIM_DMABURSTLENGTH_17TRANSFERS +#define TIM_DMABurstLength_18Transfers TIM_DMABURSTLENGTH_18TRANSFERS + +#if defined(STM32L0) +#define TIM22_TI1_GPIO1 TIM22_TI1_GPIO +#define TIM22_TI1_GPIO2 TIM22_TI1_GPIO +#endif + +#if defined(STM32F3) +#define IS_TIM_HALL_INTERFACE_INSTANCE IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE +#endif + +#if defined(STM32H7) +#define TIM_TIM1_ETR_COMP1_OUT TIM_TIM1_ETR_COMP1 +#define TIM_TIM1_ETR_COMP2_OUT TIM_TIM1_ETR_COMP2 +#define TIM_TIM8_ETR_COMP1_OUT TIM_TIM8_ETR_COMP1 +#define TIM_TIM8_ETR_COMP2_OUT TIM_TIM8_ETR_COMP2 +#define TIM_TIM2_ETR_COMP1_OUT TIM_TIM2_ETR_COMP1 +#define TIM_TIM2_ETR_COMP2_OUT TIM_TIM2_ETR_COMP2 +#define TIM_TIM3_ETR_COMP1_OUT TIM_TIM3_ETR_COMP1 +#define TIM_TIM1_TI1_COMP1_OUT TIM_TIM1_TI1_COMP1 +#define TIM_TIM8_TI1_COMP2_OUT TIM_TIM8_TI1_COMP2 +#define TIM_TIM2_TI4_COMP1_OUT TIM_TIM2_TI4_COMP1 +#define TIM_TIM2_TI4_COMP2_OUT TIM_TIM2_TI4_COMP2 +#define TIM_TIM2_TI4_COMP1COMP2_OUT TIM_TIM2_TI4_COMP1_COMP2 +#define TIM_TIM3_TI1_COMP1_OUT TIM_TIM3_TI1_COMP1 +#define TIM_TIM3_TI1_COMP2_OUT TIM_TIM3_TI1_COMP2 +#define TIM_TIM3_TI1_COMP1COMP2_OUT TIM_TIM3_TI1_COMP1_COMP2 +#endif + +#if defined(STM32U5) +#define OCREF_CLEAR_SELECT_Pos OCREF_CLEAR_SELECT_POS +#define OCREF_CLEAR_SELECT_Msk OCREF_CLEAR_SELECT_MSK +#endif +/** + * @} + */ + +/** @defgroup HAL_TSC_Aliased_Defines HAL TSC Aliased Defines maintained for legacy purpose + * @{ + */ +#define TSC_SYNC_POL_FALL TSC_SYNC_POLARITY_FALLING +#define TSC_SYNC_POL_RISE_HIGH TSC_SYNC_POLARITY_RISING +/** + * @} + */ + +/** @defgroup HAL_UART_Aliased_Defines HAL UART Aliased Defines maintained for legacy purpose + * @{ + */ +#define UART_ONEBIT_SAMPLING_DISABLED UART_ONE_BIT_SAMPLE_DISABLE +#define UART_ONEBIT_SAMPLING_ENABLED UART_ONE_BIT_SAMPLE_ENABLE +#define UART_ONE_BIT_SAMPLE_DISABLED UART_ONE_BIT_SAMPLE_DISABLE +#define UART_ONE_BIT_SAMPLE_ENABLED UART_ONE_BIT_SAMPLE_ENABLE + +#define __HAL_UART_ONEBIT_ENABLE __HAL_UART_ONE_BIT_SAMPLE_ENABLE +#define __HAL_UART_ONEBIT_DISABLE __HAL_UART_ONE_BIT_SAMPLE_DISABLE + +#define __DIV_SAMPLING16 UART_DIV_SAMPLING16 +#define __DIVMANT_SAMPLING16 UART_DIVMANT_SAMPLING16 +#define __DIVFRAQ_SAMPLING16 UART_DIVFRAQ_SAMPLING16 +#define __UART_BRR_SAMPLING16 UART_BRR_SAMPLING16 + +#define __DIV_SAMPLING8 UART_DIV_SAMPLING8 +#define __DIVMANT_SAMPLING8 UART_DIVMANT_SAMPLING8 +#define __DIVFRAQ_SAMPLING8 UART_DIVFRAQ_SAMPLING8 +#define __UART_BRR_SAMPLING8 UART_BRR_SAMPLING8 + +#define __DIV_LPUART UART_DIV_LPUART + +#define UART_WAKEUPMETHODE_IDLELINE UART_WAKEUPMETHOD_IDLELINE +#define UART_WAKEUPMETHODE_ADDRESSMARK UART_WAKEUPMETHOD_ADDRESSMARK + +/** + * @} + */ + + +/** @defgroup HAL_USART_Aliased_Defines HAL USART Aliased Defines maintained for legacy purpose + * @{ + */ + +#define USART_CLOCK_DISABLED USART_CLOCK_DISABLE +#define USART_CLOCK_ENABLED USART_CLOCK_ENABLE + +#define USARTNACK_ENABLED USART_NACK_ENABLE +#define USARTNACK_DISABLED USART_NACK_DISABLE +/** + * @} + */ + +/** @defgroup HAL_WWDG_Aliased_Defines HAL WWDG Aliased Defines maintained for legacy purpose + * @{ + */ +#define CFR_BASE WWDG_CFR_BASE + +/** + * @} + */ + +/** @defgroup HAL_CAN_Aliased_Defines HAL CAN Aliased Defines maintained for legacy purpose + * @{ + */ +#define CAN_FilterFIFO0 CAN_FILTER_FIFO0 +#define CAN_FilterFIFO1 CAN_FILTER_FIFO1 +#define CAN_IT_RQCP0 CAN_IT_TME +#define CAN_IT_RQCP1 CAN_IT_TME +#define CAN_IT_RQCP2 CAN_IT_TME +#define INAK_TIMEOUT CAN_TIMEOUT_VALUE +#define SLAK_TIMEOUT CAN_TIMEOUT_VALUE +#define CAN_TXSTATUS_FAILED ((uint8_t)0x00U) +#define CAN_TXSTATUS_OK ((uint8_t)0x01U) +#define CAN_TXSTATUS_PENDING ((uint8_t)0x02U) + +/** + * @} + */ + +/** @defgroup HAL_ETH_Aliased_Defines HAL ETH Aliased Defines maintained for legacy purpose + * @{ + */ + +#define VLAN_TAG ETH_VLAN_TAG +#define MIN_ETH_PAYLOAD ETH_MIN_ETH_PAYLOAD +#define MAX_ETH_PAYLOAD ETH_MAX_ETH_PAYLOAD +#define JUMBO_FRAME_PAYLOAD ETH_JUMBO_FRAME_PAYLOAD +#define MACMIIAR_CR_MASK ETH_MACMIIAR_CR_MASK +#define MACCR_CLEAR_MASK ETH_MACCR_CLEAR_MASK +#define MACFCR_CLEAR_MASK ETH_MACFCR_CLEAR_MASK +#define DMAOMR_CLEAR_MASK ETH_DMAOMR_CLEAR_MASK + +#define ETH_MMCCR 0x00000100U +#define ETH_MMCRIR 0x00000104U +#define ETH_MMCTIR 0x00000108U +#define ETH_MMCRIMR 0x0000010CU +#define ETH_MMCTIMR 0x00000110U +#define ETH_MMCTGFSCCR 0x0000014CU +#define ETH_MMCTGFMSCCR 0x00000150U +#define ETH_MMCTGFCR 0x00000168U +#define ETH_MMCRFCECR 0x00000194U +#define ETH_MMCRFAECR 0x00000198U +#define ETH_MMCRGUFCR 0x000001C4U + +#define ETH_MAC_TXFIFO_FULL 0x02000000U /* Tx FIFO full */ +#define ETH_MAC_TXFIFONOT_EMPTY 0x01000000U /* Tx FIFO not empty */ +#define ETH_MAC_TXFIFO_WRITE_ACTIVE 0x00400000U /* Tx FIFO write active */ +#define ETH_MAC_TXFIFO_IDLE 0x00000000U /* Tx FIFO read status: Idle */ +#define ETH_MAC_TXFIFO_READ 0x00100000U /* Tx FIFO read status: Read (transferring data to + the MAC transmitter) */ +#define ETH_MAC_TXFIFO_WAITING 0x00200000U /* Tx FIFO read status: Waiting for TxStatus from + MAC transmitter */ +#define ETH_MAC_TXFIFO_WRITING 0x00300000U /* Tx FIFO read status: Writing the received TxStatus + or flushing the TxFIFO */ +#define ETH_MAC_TRANSMISSION_PAUSE 0x00080000U /* MAC transmitter in pause */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_IDLE 0x00000000U /* MAC transmit frame controller: Idle */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_WAITING 0x00020000U /* MAC transmit frame controller: Waiting for Status + of previous frame or IFG/backoff period to be over */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_GENRATING_PCF 0x00040000U /* MAC transmit frame controller: Generating and + transmitting a Pause control frame (in full duplex mode) */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_TRANSFERRING 0x00060000U /* MAC transmit frame controller: Transferring input + frame for transmission */ +#define ETH_MAC_MII_TRANSMIT_ACTIVE 0x00010000U /* MAC MII transmit engine active */ +#define ETH_MAC_RXFIFO_EMPTY 0x00000000U /* Rx FIFO fill level: empty */ +#define ETH_MAC_RXFIFO_BELOW_THRESHOLD 0x00000100U /* Rx FIFO fill level: fill-level below flow-control + de-activate threshold */ +#define ETH_MAC_RXFIFO_ABOVE_THRESHOLD 0x00000200U /* Rx FIFO fill level: fill-level above flow-control + activate threshold */ +#define ETH_MAC_RXFIFO_FULL 0x00000300U /* Rx FIFO fill level: full */ +#if defined(STM32F1) +#else +#define ETH_MAC_READCONTROLLER_IDLE 0x00000000U /* Rx FIFO read controller IDLE state */ +#define ETH_MAC_READCONTROLLER_READING_DATA 0x00000020U /* Rx FIFO read controller Reading frame data */ +#define ETH_MAC_READCONTROLLER_READING_STATUS 0x00000040U /* Rx FIFO read controller Reading frame status + (or time-stamp) */ +#endif +#define ETH_MAC_READCONTROLLER_FLUSHING 0x00000060U /* Rx FIFO read controller Flushing the frame data and + status */ +#define ETH_MAC_RXFIFO_WRITE_ACTIVE 0x00000010U /* Rx FIFO write controller active */ +#define ETH_MAC_SMALL_FIFO_NOTACTIVE 0x00000000U /* MAC small FIFO read / write controllers not active */ +#define ETH_MAC_SMALL_FIFO_READ_ACTIVE 0x00000002U /* MAC small FIFO read controller active */ +#define ETH_MAC_SMALL_FIFO_WRITE_ACTIVE 0x00000004U /* MAC small FIFO write controller active */ +#define ETH_MAC_SMALL_FIFO_RW_ACTIVE 0x00000006U /* MAC small FIFO read / write controllers active */ +#define ETH_MAC_MII_RECEIVE_PROTOCOL_ACTIVE 0x00000001U /* MAC MII receive protocol engine active */ + +#define ETH_TxPacketConfig ETH_TxPacketConfigTypeDef /* Transmit Packet Configuration structure definition */ + +/** + * @} + */ + +/** @defgroup HAL_DCMI_Aliased_Defines HAL DCMI Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_DCMI_ERROR_OVF HAL_DCMI_ERROR_OVR +#define DCMI_IT_OVF DCMI_IT_OVR +#define DCMI_FLAG_OVFRI DCMI_FLAG_OVRRI +#define DCMI_FLAG_OVFMI DCMI_FLAG_OVRMI + +#define HAL_DCMI_ConfigCROP HAL_DCMI_ConfigCrop +#define HAL_DCMI_EnableCROP HAL_DCMI_EnableCrop +#define HAL_DCMI_DisableCROP HAL_DCMI_DisableCrop + +/** + * @} + */ + +#if defined(STM32L4) || defined(STM32F7) || defined(STM32F427xx) || defined(STM32F437xx) \ + || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx) \ + || defined(STM32H7) +/** @defgroup HAL_DMA2D_Aliased_Defines HAL DMA2D Aliased Defines maintained for legacy purpose + * @{ + */ +#define DMA2D_ARGB8888 DMA2D_OUTPUT_ARGB8888 +#define DMA2D_RGB888 DMA2D_OUTPUT_RGB888 +#define DMA2D_RGB565 DMA2D_OUTPUT_RGB565 +#define DMA2D_ARGB1555 DMA2D_OUTPUT_ARGB1555 +#define DMA2D_ARGB4444 DMA2D_OUTPUT_ARGB4444 + +#define CM_ARGB8888 DMA2D_INPUT_ARGB8888 +#define CM_RGB888 DMA2D_INPUT_RGB888 +#define CM_RGB565 DMA2D_INPUT_RGB565 +#define CM_ARGB1555 DMA2D_INPUT_ARGB1555 +#define CM_ARGB4444 DMA2D_INPUT_ARGB4444 +#define CM_L8 DMA2D_INPUT_L8 +#define CM_AL44 DMA2D_INPUT_AL44 +#define CM_AL88 DMA2D_INPUT_AL88 +#define CM_L4 DMA2D_INPUT_L4 +#define CM_A8 DMA2D_INPUT_A8 +#define CM_A4 DMA2D_INPUT_A4 +/** + * @} + */ +#endif /* STM32L4 || STM32F7 || STM32F4 || STM32H7 */ + +#if defined(STM32L4) || defined(STM32F7) || defined(STM32F427xx) || defined(STM32F437xx) \ + || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx) \ + || defined(STM32H7) || defined(STM32U5) +/** @defgroup DMA2D_Aliases DMA2D API Aliases + * @{ + */ +#define HAL_DMA2D_DisableCLUT HAL_DMA2D_CLUTLoading_Abort /*!< Aliased to HAL_DMA2D_CLUTLoading_Abort + for compatibility with legacy code */ +/** + * @} + */ + +#endif /* STM32L4 || STM32F7 || STM32F4 || STM32H7 || STM32U5 */ + +/** @defgroup HAL_PPP_Aliased_Defines HAL PPP Aliased Defines maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup HAL_CRYP_Aliased_Functions HAL CRYP Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_CRYP_ComputationCpltCallback HAL_CRYPEx_ComputationCpltCallback +/** + * @} + */ + +/** @defgroup HAL_DCACHE_Aliased_Functions HAL DCACHE Aliased Functions maintained for legacy purpose + * @{ + */ + +#if defined(STM32U5) +#define HAL_DCACHE_CleanInvalidateByAddr HAL_DCACHE_CleanInvalidByAddr +#define HAL_DCACHE_CleanInvalidateByAddr_IT HAL_DCACHE_CleanInvalidByAddr_IT +#endif /* STM32U5 */ + +/** + * @} + */ + +#if !defined(STM32F2) +/** @defgroup HASH_alias HASH API alias + * @{ + */ +#define HAL_HASHEx_IRQHandler HAL_HASH_IRQHandler /*!< Redirection for compatibility with legacy code */ +/** + * + * @} + */ +#endif /* STM32F2 */ +/** @defgroup HAL_HASH_Aliased_Functions HAL HASH Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_HASH_STATETypeDef HAL_HASH_StateTypeDef +#define HAL_HASHPhaseTypeDef HAL_HASH_PhaseTypeDef +#define HAL_HMAC_MD5_Finish HAL_HASH_MD5_Finish +#define HAL_HMAC_SHA1_Finish HAL_HASH_SHA1_Finish +#define HAL_HMAC_SHA224_Finish HAL_HASH_SHA224_Finish +#define HAL_HMAC_SHA256_Finish HAL_HASH_SHA256_Finish + +/*HASH Algorithm Selection*/ + +#define HASH_AlgoSelection_SHA1 HASH_ALGOSELECTION_SHA1 +#define HASH_AlgoSelection_SHA224 HASH_ALGOSELECTION_SHA224 +#define HASH_AlgoSelection_SHA256 HASH_ALGOSELECTION_SHA256 +#define HASH_AlgoSelection_MD5 HASH_ALGOSELECTION_MD5 + +#define HASH_AlgoMode_HASH HASH_ALGOMODE_HASH +#define HASH_AlgoMode_HMAC HASH_ALGOMODE_HMAC + +#define HASH_HMACKeyType_ShortKey HASH_HMAC_KEYTYPE_SHORTKEY +#define HASH_HMACKeyType_LongKey HASH_HMAC_KEYTYPE_LONGKEY + +#if defined(STM32L4) || defined(STM32L5) || defined(STM32F2) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) + +#define HAL_HASH_MD5_Accumulate HAL_HASH_MD5_Accmlt +#define HAL_HASH_MD5_Accumulate_End HAL_HASH_MD5_Accmlt_End +#define HAL_HASH_MD5_Accumulate_IT HAL_HASH_MD5_Accmlt_IT +#define HAL_HASH_MD5_Accumulate_End_IT HAL_HASH_MD5_Accmlt_End_IT + +#define HAL_HASH_SHA1_Accumulate HAL_HASH_SHA1_Accmlt +#define HAL_HASH_SHA1_Accumulate_End HAL_HASH_SHA1_Accmlt_End +#define HAL_HASH_SHA1_Accumulate_IT HAL_HASH_SHA1_Accmlt_IT +#define HAL_HASH_SHA1_Accumulate_End_IT HAL_HASH_SHA1_Accmlt_End_IT + +#define HAL_HASHEx_SHA224_Accumulate HAL_HASHEx_SHA224_Accmlt +#define HAL_HASHEx_SHA224_Accumulate_End HAL_HASHEx_SHA224_Accmlt_End +#define HAL_HASHEx_SHA224_Accumulate_IT HAL_HASHEx_SHA224_Accmlt_IT +#define HAL_HASHEx_SHA224_Accumulate_End_IT HAL_HASHEx_SHA224_Accmlt_End_IT + +#define HAL_HASHEx_SHA256_Accumulate HAL_HASHEx_SHA256_Accmlt +#define HAL_HASHEx_SHA256_Accumulate_End HAL_HASHEx_SHA256_Accmlt_End +#define HAL_HASHEx_SHA256_Accumulate_IT HAL_HASHEx_SHA256_Accmlt_IT +#define HAL_HASHEx_SHA256_Accumulate_End_IT HAL_HASHEx_SHA256_Accmlt_End_IT + +#endif /* STM32L4 || STM32L5 || STM32F2 || STM32F4 || STM32F7 || STM32H7 */ +/** + * @} + */ + +/** @defgroup HAL_Aliased_Functions HAL Generic Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_EnableDBGSleepMode HAL_DBGMCU_EnableDBGSleepMode +#define HAL_DisableDBGSleepMode HAL_DBGMCU_DisableDBGSleepMode +#define HAL_EnableDBGStopMode HAL_DBGMCU_EnableDBGStopMode +#define HAL_DisableDBGStopMode HAL_DBGMCU_DisableDBGStopMode +#define HAL_EnableDBGStandbyMode HAL_DBGMCU_EnableDBGStandbyMode +#define HAL_DisableDBGStandbyMode HAL_DBGMCU_DisableDBGStandbyMode +#define HAL_DBG_LowPowerConfig(Periph, cmd) (((cmd\ + )==ENABLE)? HAL_DBGMCU_DBG_EnableLowPowerConfig(Periph) : \ + HAL_DBGMCU_DBG_DisableLowPowerConfig(Periph)) +#define HAL_VREFINT_OutputSelect HAL_SYSCFG_VREFINT_OutputSelect +#define HAL_Lock_Cmd(cmd) (((cmd)==ENABLE) ? HAL_SYSCFG_Enable_Lock_VREFINT() : HAL_SYSCFG_Disable_Lock_VREFINT()) +#if defined(STM32L0) +#else +#define HAL_VREFINT_Cmd(cmd) (((cmd)==ENABLE)? HAL_SYSCFG_EnableVREFINT() : HAL_SYSCFG_DisableVREFINT()) +#endif +#define HAL_ADC_EnableBuffer_Cmd(cmd) (((cmd)==ENABLE) ? HAL_ADCEx_EnableVREFINT() : HAL_ADCEx_DisableVREFINT()) +#define HAL_ADC_EnableBufferSensor_Cmd(cmd) (((cmd\ + )==ENABLE) ? HAL_ADCEx_EnableVREFINTTempSensor() : \ + HAL_ADCEx_DisableVREFINTTempSensor()) +#if defined(STM32H7A3xx) || defined(STM32H7B3xx) || defined(STM32H7B0xx) || defined(STM32H7A3xxQ) || \ + defined(STM32H7B3xxQ) || defined(STM32H7B0xxQ) +#define HAL_EnableSRDomainDBGStopMode HAL_EnableDomain3DBGStopMode +#define HAL_DisableSRDomainDBGStopMode HAL_DisableDomain3DBGStopMode +#define HAL_EnableSRDomainDBGStandbyMode HAL_EnableDomain3DBGStandbyMode +#define HAL_DisableSRDomainDBGStandbyMode HAL_DisableDomain3DBGStandbyMode +#endif /* STM32H7A3xx || STM32H7B3xx || STM32H7B0xx || STM32H7A3xxQ || STM32H7B3xxQ || STM32H7B0xxQ */ + +/** + * @} + */ + +/** @defgroup HAL_FLASH_Aliased_Functions HAL FLASH Aliased Functions maintained for legacy purpose + * @{ + */ +#define FLASH_HalfPageProgram HAL_FLASHEx_HalfPageProgram +#define FLASH_EnableRunPowerDown HAL_FLASHEx_EnableRunPowerDown +#define FLASH_DisableRunPowerDown HAL_FLASHEx_DisableRunPowerDown +#define HAL_DATA_EEPROMEx_Unlock HAL_FLASHEx_DATAEEPROM_Unlock +#define HAL_DATA_EEPROMEx_Lock HAL_FLASHEx_DATAEEPROM_Lock +#define HAL_DATA_EEPROMEx_Erase HAL_FLASHEx_DATAEEPROM_Erase +#define HAL_DATA_EEPROMEx_Program HAL_FLASHEx_DATAEEPROM_Program + +/** + * @} + */ + +/** @defgroup HAL_I2C_Aliased_Functions HAL I2C Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_I2CEx_AnalogFilter_Config HAL_I2CEx_ConfigAnalogFilter +#define HAL_I2CEx_DigitalFilter_Config HAL_I2CEx_ConfigDigitalFilter +#define HAL_FMPI2CEx_AnalogFilter_Config HAL_FMPI2CEx_ConfigAnalogFilter +#define HAL_FMPI2CEx_DigitalFilter_Config HAL_FMPI2CEx_ConfigDigitalFilter + +#define HAL_I2CFastModePlusConfig(SYSCFG_I2CFastModePlus, cmd) (((cmd) == ENABLE)? \ + HAL_I2CEx_EnableFastModePlus(SYSCFG_I2CFastModePlus): \ + HAL_I2CEx_DisableFastModePlus(SYSCFG_I2CFastModePlus)) + +#if defined(STM32H7) || defined(STM32WB) || defined(STM32G0) || defined(STM32F0) || defined(STM32F1) || \ + defined(STM32F2) || defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32L0) || \ + defined(STM32L4) || defined(STM32L5) || defined(STM32G4) || defined(STM32L1) +#define HAL_I2C_Master_Sequential_Transmit_IT HAL_I2C_Master_Seq_Transmit_IT +#define HAL_I2C_Master_Sequential_Receive_IT HAL_I2C_Master_Seq_Receive_IT +#define HAL_I2C_Slave_Sequential_Transmit_IT HAL_I2C_Slave_Seq_Transmit_IT +#define HAL_I2C_Slave_Sequential_Receive_IT HAL_I2C_Slave_Seq_Receive_IT +#endif /* STM32H7 || STM32WB || STM32G0 || STM32F0 || STM32F1 || STM32F2 || STM32F3 || STM32F4 || STM32F7 || STM32L0 || + STM32L4 || STM32L5 || STM32G4 || STM32L1 */ +#if defined(STM32H7) || defined(STM32WB) || defined(STM32G0) || defined(STM32F4) || defined(STM32F7) || \ + defined(STM32L0) || defined(STM32L4) || defined(STM32L5) || defined(STM32G4)|| defined(STM32L1) +#define HAL_I2C_Master_Sequential_Transmit_DMA HAL_I2C_Master_Seq_Transmit_DMA +#define HAL_I2C_Master_Sequential_Receive_DMA HAL_I2C_Master_Seq_Receive_DMA +#define HAL_I2C_Slave_Sequential_Transmit_DMA HAL_I2C_Slave_Seq_Transmit_DMA +#define HAL_I2C_Slave_Sequential_Receive_DMA HAL_I2C_Slave_Seq_Receive_DMA +#endif /* STM32H7 || STM32WB || STM32G0 || STM32F4 || STM32F7 || STM32L0 || STM32L4 || STM32L5 || STM32G4 || STM32L1 */ + +#if defined(STM32F4) +#define HAL_FMPI2C_Master_Sequential_Transmit_IT HAL_FMPI2C_Master_Seq_Transmit_IT +#define HAL_FMPI2C_Master_Sequential_Receive_IT HAL_FMPI2C_Master_Seq_Receive_IT +#define HAL_FMPI2C_Slave_Sequential_Transmit_IT HAL_FMPI2C_Slave_Seq_Transmit_IT +#define HAL_FMPI2C_Slave_Sequential_Receive_IT HAL_FMPI2C_Slave_Seq_Receive_IT +#define HAL_FMPI2C_Master_Sequential_Transmit_DMA HAL_FMPI2C_Master_Seq_Transmit_DMA +#define HAL_FMPI2C_Master_Sequential_Receive_DMA HAL_FMPI2C_Master_Seq_Receive_DMA +#define HAL_FMPI2C_Slave_Sequential_Transmit_DMA HAL_FMPI2C_Slave_Seq_Transmit_DMA +#define HAL_FMPI2C_Slave_Sequential_Receive_DMA HAL_FMPI2C_Slave_Seq_Receive_DMA +#endif /* STM32F4 */ +/** + * @} + */ + +/** @defgroup HAL_PWR_Aliased HAL PWR Aliased maintained for legacy purpose + * @{ + */ + +#if defined(STM32G0) +#define HAL_PWR_ConfigPVD HAL_PWREx_ConfigPVD +#define HAL_PWR_EnablePVD HAL_PWREx_EnablePVD +#define HAL_PWR_DisablePVD HAL_PWREx_DisablePVD +#define HAL_PWR_PVD_IRQHandler HAL_PWREx_PVD_IRQHandler +#endif +#define HAL_PWR_PVDConfig HAL_PWR_ConfigPVD +#define HAL_PWR_DisableBkUpReg HAL_PWREx_DisableBkUpReg +#define HAL_PWR_DisableFlashPowerDown HAL_PWREx_DisableFlashPowerDown +#define HAL_PWR_DisableVddio2Monitor HAL_PWREx_DisableVddio2Monitor +#define HAL_PWR_EnableBkUpReg HAL_PWREx_EnableBkUpReg +#define HAL_PWR_EnableFlashPowerDown HAL_PWREx_EnableFlashPowerDown +#define HAL_PWR_EnableVddio2Monitor HAL_PWREx_EnableVddio2Monitor +#define HAL_PWR_PVD_PVM_IRQHandler HAL_PWREx_PVD_PVM_IRQHandler +#define HAL_PWR_PVDLevelConfig HAL_PWR_ConfigPVD +#define HAL_PWR_Vddio2Monitor_IRQHandler HAL_PWREx_Vddio2Monitor_IRQHandler +#define HAL_PWR_Vddio2MonitorCallback HAL_PWREx_Vddio2MonitorCallback +#define HAL_PWREx_ActivateOverDrive HAL_PWREx_EnableOverDrive +#define HAL_PWREx_DeactivateOverDrive HAL_PWREx_DisableOverDrive +#define HAL_PWREx_DisableSDADCAnalog HAL_PWREx_DisableSDADC +#define HAL_PWREx_EnableSDADCAnalog HAL_PWREx_EnableSDADC +#define HAL_PWREx_PVMConfig HAL_PWREx_ConfigPVM + +#define PWR_MODE_NORMAL PWR_PVD_MODE_NORMAL +#define PWR_MODE_IT_RISING PWR_PVD_MODE_IT_RISING +#define PWR_MODE_IT_FALLING PWR_PVD_MODE_IT_FALLING +#define PWR_MODE_IT_RISING_FALLING PWR_PVD_MODE_IT_RISING_FALLING +#define PWR_MODE_EVENT_RISING PWR_PVD_MODE_EVENT_RISING +#define PWR_MODE_EVENT_FALLING PWR_PVD_MODE_EVENT_FALLING +#define PWR_MODE_EVENT_RISING_FALLING PWR_PVD_MODE_EVENT_RISING_FALLING + +#define CR_OFFSET_BB PWR_CR_OFFSET_BB +#define CSR_OFFSET_BB PWR_CSR_OFFSET_BB +#define PMODE_BIT_NUMBER VOS_BIT_NUMBER +#define CR_PMODE_BB CR_VOS_BB + +#define DBP_BitNumber DBP_BIT_NUMBER +#define PVDE_BitNumber PVDE_BIT_NUMBER +#define PMODE_BitNumber PMODE_BIT_NUMBER +#define EWUP_BitNumber EWUP_BIT_NUMBER +#define FPDS_BitNumber FPDS_BIT_NUMBER +#define ODEN_BitNumber ODEN_BIT_NUMBER +#define ODSWEN_BitNumber ODSWEN_BIT_NUMBER +#define MRLVDS_BitNumber MRLVDS_BIT_NUMBER +#define LPLVDS_BitNumber LPLVDS_BIT_NUMBER +#define BRE_BitNumber BRE_BIT_NUMBER + +#define PWR_MODE_EVT PWR_PVD_MODE_NORMAL + +#if defined (STM32U5) +#define PWR_SRAM1_PAGE1_STOP_RETENTION PWR_SRAM1_PAGE1_STOP +#define PWR_SRAM1_PAGE2_STOP_RETENTION PWR_SRAM1_PAGE2_STOP +#define PWR_SRAM1_PAGE3_STOP_RETENTION PWR_SRAM1_PAGE3_STOP +#define PWR_SRAM1_PAGE4_STOP_RETENTION PWR_SRAM1_PAGE4_STOP +#define PWR_SRAM1_PAGE5_STOP_RETENTION PWR_SRAM1_PAGE5_STOP +#define PWR_SRAM1_PAGE6_STOP_RETENTION PWR_SRAM1_PAGE6_STOP +#define PWR_SRAM1_PAGE7_STOP_RETENTION PWR_SRAM1_PAGE7_STOP +#define PWR_SRAM1_PAGE8_STOP_RETENTION PWR_SRAM1_PAGE8_STOP +#define PWR_SRAM1_PAGE9_STOP_RETENTION PWR_SRAM1_PAGE9_STOP +#define PWR_SRAM1_PAGE10_STOP_RETENTION PWR_SRAM1_PAGE10_STOP +#define PWR_SRAM1_PAGE11_STOP_RETENTION PWR_SRAM1_PAGE11_STOP +#define PWR_SRAM1_PAGE12_STOP_RETENTION PWR_SRAM1_PAGE12_STOP +#define PWR_SRAM1_FULL_STOP_RETENTION PWR_SRAM1_FULL_STOP + +#define PWR_SRAM2_PAGE1_STOP_RETENTION PWR_SRAM2_PAGE1_STOP +#define PWR_SRAM2_PAGE2_STOP_RETENTION PWR_SRAM2_PAGE2_STOP +#define PWR_SRAM2_FULL_STOP_RETENTION PWR_SRAM2_FULL_STOP + +#define PWR_SRAM3_PAGE1_STOP_RETENTION PWR_SRAM3_PAGE1_STOP +#define PWR_SRAM3_PAGE2_STOP_RETENTION PWR_SRAM3_PAGE2_STOP +#define PWR_SRAM3_PAGE3_STOP_RETENTION PWR_SRAM3_PAGE3_STOP +#define PWR_SRAM3_PAGE4_STOP_RETENTION PWR_SRAM3_PAGE4_STOP +#define PWR_SRAM3_PAGE5_STOP_RETENTION PWR_SRAM3_PAGE5_STOP +#define PWR_SRAM3_PAGE6_STOP_RETENTION PWR_SRAM3_PAGE6_STOP +#define PWR_SRAM3_PAGE7_STOP_RETENTION PWR_SRAM3_PAGE7_STOP +#define PWR_SRAM3_PAGE8_STOP_RETENTION PWR_SRAM3_PAGE8_STOP +#define PWR_SRAM3_PAGE9_STOP_RETENTION PWR_SRAM3_PAGE9_STOP +#define PWR_SRAM3_PAGE10_STOP_RETENTION PWR_SRAM3_PAGE10_STOP +#define PWR_SRAM3_PAGE11_STOP_RETENTION PWR_SRAM3_PAGE11_STOP +#define PWR_SRAM3_PAGE12_STOP_RETENTION PWR_SRAM3_PAGE12_STOP +#define PWR_SRAM3_PAGE13_STOP_RETENTION PWR_SRAM3_PAGE13_STOP +#define PWR_SRAM3_FULL_STOP_RETENTION PWR_SRAM3_FULL_STOP + +#define PWR_SRAM4_FULL_STOP_RETENTION PWR_SRAM4_FULL_STOP + +#define PWR_SRAM5_PAGE1_STOP_RETENTION PWR_SRAM5_PAGE1_STOP +#define PWR_SRAM5_PAGE2_STOP_RETENTION PWR_SRAM5_PAGE2_STOP +#define PWR_SRAM5_PAGE3_STOP_RETENTION PWR_SRAM5_PAGE3_STOP +#define PWR_SRAM5_PAGE4_STOP_RETENTION PWR_SRAM5_PAGE4_STOP +#define PWR_SRAM5_PAGE5_STOP_RETENTION PWR_SRAM5_PAGE5_STOP +#define PWR_SRAM5_PAGE6_STOP_RETENTION PWR_SRAM5_PAGE6_STOP +#define PWR_SRAM5_PAGE7_STOP_RETENTION PWR_SRAM5_PAGE7_STOP +#define PWR_SRAM5_PAGE8_STOP_RETENTION PWR_SRAM5_PAGE8_STOP +#define PWR_SRAM5_PAGE9_STOP_RETENTION PWR_SRAM5_PAGE9_STOP +#define PWR_SRAM5_PAGE10_STOP_RETENTION PWR_SRAM5_PAGE10_STOP +#define PWR_SRAM5_PAGE11_STOP_RETENTION PWR_SRAM5_PAGE11_STOP +#define PWR_SRAM5_PAGE12_STOP_RETENTION PWR_SRAM5_PAGE12_STOP +#define PWR_SRAM5_PAGE13_STOP_RETENTION PWR_SRAM5_PAGE13_STOP +#define PWR_SRAM5_FULL_STOP_RETENTION PWR_SRAM5_FULL_STOP + +#define PWR_SRAM6_PAGE1_STOP_RETENTION PWR_SRAM6_PAGE1_STOP +#define PWR_SRAM6_PAGE2_STOP_RETENTION PWR_SRAM6_PAGE2_STOP +#define PWR_SRAM6_PAGE3_STOP_RETENTION PWR_SRAM6_PAGE3_STOP +#define PWR_SRAM6_PAGE4_STOP_RETENTION PWR_SRAM6_PAGE4_STOP +#define PWR_SRAM6_PAGE5_STOP_RETENTION PWR_SRAM6_PAGE5_STOP +#define PWR_SRAM6_PAGE6_STOP_RETENTION PWR_SRAM6_PAGE6_STOP +#define PWR_SRAM6_PAGE7_STOP_RETENTION PWR_SRAM6_PAGE7_STOP +#define PWR_SRAM6_PAGE8_STOP_RETENTION PWR_SRAM6_PAGE8_STOP +#define PWR_SRAM6_FULL_STOP_RETENTION PWR_SRAM6_FULL_STOP + + +#define PWR_ICACHE_FULL_STOP_RETENTION PWR_ICACHE_FULL_STOP +#define PWR_DCACHE1_FULL_STOP_RETENTION PWR_DCACHE1_FULL_STOP +#define PWR_DCACHE2_FULL_STOP_RETENTION PWR_DCACHE2_FULL_STOP +#define PWR_DMA2DRAM_FULL_STOP_RETENTION PWR_DMA2DRAM_FULL_STOP +#define PWR_PERIPHRAM_FULL_STOP_RETENTION PWR_PERIPHRAM_FULL_STOP +#define PWR_PKA32RAM_FULL_STOP_RETENTION PWR_PKA32RAM_FULL_STOP +#define PWR_GRAPHICPRAM_FULL_STOP_RETENTION PWR_GRAPHICPRAM_FULL_STOP +#define PWR_DSIRAM_FULL_STOP_RETENTION PWR_DSIRAM_FULL_STOP +#define PWR_JPEGRAM_FULL_STOP_RETENTION PWR_JPEGRAM_FULL_STOP + + +#define PWR_SRAM2_PAGE1_STANDBY_RETENTION PWR_SRAM2_PAGE1_STANDBY +#define PWR_SRAM2_PAGE2_STANDBY_RETENTION PWR_SRAM2_PAGE2_STANDBY +#define PWR_SRAM2_FULL_STANDBY_RETENTION PWR_SRAM2_FULL_STANDBY + +#define PWR_SRAM1_FULL_RUN_RETENTION PWR_SRAM1_FULL_RUN +#define PWR_SRAM2_FULL_RUN_RETENTION PWR_SRAM2_FULL_RUN +#define PWR_SRAM3_FULL_RUN_RETENTION PWR_SRAM3_FULL_RUN +#define PWR_SRAM4_FULL_RUN_RETENTION PWR_SRAM4_FULL_RUN +#define PWR_SRAM5_FULL_RUN_RETENTION PWR_SRAM5_FULL_RUN +#define PWR_SRAM6_FULL_RUN_RETENTION PWR_SRAM6_FULL_RUN + +#define PWR_ALL_RAM_RUN_RETENTION_MASK PWR_ALL_RAM_RUN_MASK +#endif + +/** + * @} + */ + +/** @defgroup HAL_RTC_Aliased_Functions HAL RTC Aliased Functions maintained for legacy purpose + * @{ + */ +#if defined(STM32H5) || defined(STM32WBA) || defined(STM32H7RS) +#define HAL_RTCEx_SetBoothardwareKey HAL_RTCEx_LockBootHardwareKey +#define HAL_RTCEx_BKUPBlock_Enable HAL_RTCEx_BKUPBlock +#define HAL_RTCEx_BKUPBlock_Disable HAL_RTCEx_BKUPUnblock +#define HAL_RTCEx_Erase_SecretDev_Conf HAL_RTCEx_ConfigEraseDeviceSecrets +#endif /* STM32H5 || STM32WBA || STM32H7RS */ + +/** + * @} + */ + +/** @defgroup HAL_SMBUS_Aliased_Functions HAL SMBUS Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_SMBUS_Slave_Listen_IT HAL_SMBUS_EnableListen_IT +#define HAL_SMBUS_SlaveAddrCallback HAL_SMBUS_AddrCallback +#define HAL_SMBUS_SlaveListenCpltCallback HAL_SMBUS_ListenCpltCallback +/** + * @} + */ + +/** @defgroup HAL_SPI_Aliased_Functions HAL SPI Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_SPI_FlushRxFifo HAL_SPIEx_FlushRxFifo +/** + * @} + */ + +/** @defgroup HAL_TIM_Aliased_Functions HAL TIM Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_TIM_DMADelayPulseCplt TIM_DMADelayPulseCplt +#define HAL_TIM_DMAError TIM_DMAError +#define HAL_TIM_DMACaptureCplt TIM_DMACaptureCplt +#define HAL_TIMEx_DMACommutationCplt TIMEx_DMACommutationCplt +#if defined(STM32H7) || defined(STM32G0) || defined(STM32F0) || defined(STM32F1) || defined(STM32F2) || \ + defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32L0) || defined(STM32L4) +#define HAL_TIM_SlaveConfigSynchronization HAL_TIM_SlaveConfigSynchro +#define HAL_TIM_SlaveConfigSynchronization_IT HAL_TIM_SlaveConfigSynchro_IT +#define HAL_TIMEx_CommutationCallback HAL_TIMEx_CommutCallback +#define HAL_TIMEx_ConfigCommutationEvent HAL_TIMEx_ConfigCommutEvent +#define HAL_TIMEx_ConfigCommutationEvent_IT HAL_TIMEx_ConfigCommutEvent_IT +#define HAL_TIMEx_ConfigCommutationEvent_DMA HAL_TIMEx_ConfigCommutEvent_DMA +#endif /* STM32H7 || STM32G0 || STM32F0 || STM32F1 || STM32F2 || STM32F3 || STM32F4 || STM32F7 || STM32L0 */ +/** + * @} + */ + +/** @defgroup HAL_UART_Aliased_Functions HAL UART Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_UART_WakeupCallback HAL_UARTEx_WakeupCallback +/** + * @} + */ + +/** @defgroup HAL_LTDC_Aliased_Functions HAL LTDC Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_LTDC_LineEvenCallback HAL_LTDC_LineEventCallback +#define HAL_LTDC_Relaod HAL_LTDC_Reload +#define HAL_LTDC_StructInitFromVideoConfig HAL_LTDCEx_StructInitFromVideoConfig +#define HAL_LTDC_StructInitFromAdaptedCommandConfig HAL_LTDCEx_StructInitFromAdaptedCommandConfig +/** + * @} + */ + + +/** @defgroup HAL_PPP_Aliased_Functions HAL PPP Aliased Functions maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +/* Exported macros ------------------------------------------------------------*/ + +/** @defgroup HAL_AES_Aliased_Macros HAL CRYP Aliased Macros maintained for legacy purpose + * @{ + */ +#define AES_IT_CC CRYP_IT_CC +#define AES_IT_ERR CRYP_IT_ERR +#define AES_FLAG_CCF CRYP_FLAG_CCF +/** + * @} + */ + +/** @defgroup HAL_Aliased_Macros HAL Generic Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_GET_BOOT_MODE __HAL_SYSCFG_GET_BOOT_MODE +#define __HAL_REMAPMEMORY_FLASH __HAL_SYSCFG_REMAPMEMORY_FLASH +#define __HAL_REMAPMEMORY_SYSTEMFLASH __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH +#define __HAL_REMAPMEMORY_SRAM __HAL_SYSCFG_REMAPMEMORY_SRAM +#define __HAL_REMAPMEMORY_FMC __HAL_SYSCFG_REMAPMEMORY_FMC +#define __HAL_REMAPMEMORY_FMC_SDRAM __HAL_SYSCFG_REMAPMEMORY_FMC_SDRAM +#define __HAL_REMAPMEMORY_FSMC __HAL_SYSCFG_REMAPMEMORY_FSMC +#define __HAL_REMAPMEMORY_QUADSPI __HAL_SYSCFG_REMAPMEMORY_QUADSPI +#define __HAL_FMC_BANK __HAL_SYSCFG_FMC_BANK +#define __HAL_GET_FLAG __HAL_SYSCFG_GET_FLAG +#define __HAL_CLEAR_FLAG __HAL_SYSCFG_CLEAR_FLAG +#define __HAL_VREFINT_OUT_ENABLE __HAL_SYSCFG_VREFINT_OUT_ENABLE +#define __HAL_VREFINT_OUT_DISABLE __HAL_SYSCFG_VREFINT_OUT_DISABLE +#define __HAL_SYSCFG_SRAM2_WRP_ENABLE __HAL_SYSCFG_SRAM2_WRP_0_31_ENABLE + +#define SYSCFG_FLAG_VREF_READY SYSCFG_FLAG_VREFINT_READY +#define SYSCFG_FLAG_RC48 RCC_FLAG_HSI48 +#define IS_SYSCFG_FASTMODEPLUS_CONFIG IS_I2C_FASTMODEPLUS +#define UFB_MODE_BitNumber UFB_MODE_BIT_NUMBER +#define CMP_PD_BitNumber CMP_PD_BIT_NUMBER + +/** + * @} + */ + + +/** @defgroup HAL_ADC_Aliased_Macros HAL ADC Aliased Macros maintained for legacy purpose + * @{ + */ +#define __ADC_ENABLE __HAL_ADC_ENABLE +#define __ADC_DISABLE __HAL_ADC_DISABLE +#define __HAL_ADC_ENABLING_CONDITIONS ADC_ENABLING_CONDITIONS +#define __HAL_ADC_DISABLING_CONDITIONS ADC_DISABLING_CONDITIONS +#define __HAL_ADC_IS_ENABLED ADC_IS_ENABLE +#define __ADC_IS_ENABLED ADC_IS_ENABLE +#define __HAL_ADC_IS_SOFTWARE_START_REGULAR ADC_IS_SOFTWARE_START_REGULAR +#define __HAL_ADC_IS_SOFTWARE_START_INJECTED ADC_IS_SOFTWARE_START_INJECTED +#define __HAL_ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED +#define __HAL_ADC_IS_CONVERSION_ONGOING_REGULAR ADC_IS_CONVERSION_ONGOING_REGULAR +#define __HAL_ADC_IS_CONVERSION_ONGOING_INJECTED ADC_IS_CONVERSION_ONGOING_INJECTED +#define __HAL_ADC_IS_CONVERSION_ONGOING ADC_IS_CONVERSION_ONGOING +#define __HAL_ADC_CLEAR_ERRORCODE ADC_CLEAR_ERRORCODE + +#define __HAL_ADC_GET_RESOLUTION ADC_GET_RESOLUTION +#define __HAL_ADC_JSQR_RK ADC_JSQR_RK +#define __HAL_ADC_CFGR_AWD1CH ADC_CFGR_AWD1CH_SHIFT +#define __HAL_ADC_CFGR_AWD23CR ADC_CFGR_AWD23CR +#define __HAL_ADC_CFGR_INJECT_AUTO_CONVERSION ADC_CFGR_INJECT_AUTO_CONVERSION +#define __HAL_ADC_CFGR_INJECT_CONTEXT_QUEUE ADC_CFGR_INJECT_CONTEXT_QUEUE +#define __HAL_ADC_CFGR_INJECT_DISCCONTINUOUS ADC_CFGR_INJECT_DISCCONTINUOUS +#define __HAL_ADC_CFGR_REG_DISCCONTINUOUS ADC_CFGR_REG_DISCCONTINUOUS +#define __HAL_ADC_CFGR_DISCONTINUOUS_NUM ADC_CFGR_DISCONTINUOUS_NUM +#define __HAL_ADC_CFGR_AUTOWAIT ADC_CFGR_AUTOWAIT +#define __HAL_ADC_CFGR_CONTINUOUS ADC_CFGR_CONTINUOUS +#define __HAL_ADC_CFGR_OVERRUN ADC_CFGR_OVERRUN +#define __HAL_ADC_CFGR_DMACONTREQ ADC_CFGR_DMACONTREQ +#define __HAL_ADC_CFGR_EXTSEL ADC_CFGR_EXTSEL_SET +#define __HAL_ADC_JSQR_JEXTSEL ADC_JSQR_JEXTSEL_SET +#define __HAL_ADC_OFR_CHANNEL ADC_OFR_CHANNEL +#define __HAL_ADC_DIFSEL_CHANNEL ADC_DIFSEL_CHANNEL +#define __HAL_ADC_CALFACT_DIFF_SET ADC_CALFACT_DIFF_SET +#define __HAL_ADC_CALFACT_DIFF_GET ADC_CALFACT_DIFF_GET +#define __HAL_ADC_TRX_HIGHTHRESHOLD ADC_TRX_HIGHTHRESHOLD + +#define __HAL_ADC_OFFSET_SHIFT_RESOLUTION ADC_OFFSET_SHIFT_RESOLUTION +#define __HAL_ADC_AWD1THRESHOLD_SHIFT_RESOLUTION ADC_AWD1THRESHOLD_SHIFT_RESOLUTION +#define __HAL_ADC_AWD23THRESHOLD_SHIFT_RESOLUTION ADC_AWD23THRESHOLD_SHIFT_RESOLUTION +#define __HAL_ADC_COMMON_REGISTER ADC_COMMON_REGISTER +#define __HAL_ADC_COMMON_CCR_MULTI ADC_COMMON_CCR_MULTI +#define __HAL_ADC_MULTIMODE_IS_ENABLED ADC_MULTIMODE_IS_ENABLE +#define __ADC_MULTIMODE_IS_ENABLED ADC_MULTIMODE_IS_ENABLE +#define __HAL_ADC_NONMULTIMODE_OR_MULTIMODEMASTER ADC_NONMULTIMODE_OR_MULTIMODEMASTER +#define __HAL_ADC_COMMON_ADC_OTHER ADC_COMMON_ADC_OTHER +#define __HAL_ADC_MULTI_SLAVE ADC_MULTI_SLAVE + +#define __HAL_ADC_SQR1_L ADC_SQR1_L_SHIFT +#define __HAL_ADC_JSQR_JL ADC_JSQR_JL_SHIFT +#define __HAL_ADC_JSQR_RK_JL ADC_JSQR_RK_JL +#define __HAL_ADC_CR1_DISCONTINUOUS_NUM ADC_CR1_DISCONTINUOUS_NUM +#define __HAL_ADC_CR1_SCAN ADC_CR1_SCAN_SET +#define __HAL_ADC_CONVCYCLES_MAX_RANGE ADC_CONVCYCLES_MAX_RANGE +#define __HAL_ADC_CLOCK_PRESCALER_RANGE ADC_CLOCK_PRESCALER_RANGE +#define __HAL_ADC_GET_CLOCK_PRESCALER ADC_GET_CLOCK_PRESCALER + +#define __HAL_ADC_SQR1 ADC_SQR1 +#define __HAL_ADC_SMPR1 ADC_SMPR1 +#define __HAL_ADC_SMPR2 ADC_SMPR2 +#define __HAL_ADC_SQR3_RK ADC_SQR3_RK +#define __HAL_ADC_SQR2_RK ADC_SQR2_RK +#define __HAL_ADC_SQR1_RK ADC_SQR1_RK +#define __HAL_ADC_CR2_CONTINUOUS ADC_CR2_CONTINUOUS +#define __HAL_ADC_CR1_DISCONTINUOUS ADC_CR1_DISCONTINUOUS +#define __HAL_ADC_CR1_SCANCONV ADC_CR1_SCANCONV +#define __HAL_ADC_CR2_EOCSelection ADC_CR2_EOCSelection +#define __HAL_ADC_CR2_DMAContReq ADC_CR2_DMAContReq +#define __HAL_ADC_JSQR ADC_JSQR + +#define __HAL_ADC_CHSELR_CHANNEL ADC_CHSELR_CHANNEL +#define __HAL_ADC_CFGR1_REG_DISCCONTINUOUS ADC_CFGR1_REG_DISCCONTINUOUS +#define __HAL_ADC_CFGR1_AUTOOFF ADC_CFGR1_AUTOOFF +#define __HAL_ADC_CFGR1_AUTOWAIT ADC_CFGR1_AUTOWAIT +#define __HAL_ADC_CFGR1_CONTINUOUS ADC_CFGR1_CONTINUOUS +#define __HAL_ADC_CFGR1_OVERRUN ADC_CFGR1_OVERRUN +#define __HAL_ADC_CFGR1_SCANDIR ADC_CFGR1_SCANDIR +#define __HAL_ADC_CFGR1_DMACONTREQ ADC_CFGR1_DMACONTREQ + +/** + * @} + */ + +/** @defgroup HAL_DAC_Aliased_Macros HAL DAC Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_DHR12R1_ALIGNEMENT DAC_DHR12R1_ALIGNMENT +#define __HAL_DHR12R2_ALIGNEMENT DAC_DHR12R2_ALIGNMENT +#define __HAL_DHR12RD_ALIGNEMENT DAC_DHR12RD_ALIGNMENT +#define IS_DAC_GENERATE_WAVE IS_DAC_WAVE + +/** + * @} + */ + +/** @defgroup HAL_DBGMCU_Aliased_Macros HAL DBGMCU Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_FREEZE_TIM1_DBGMCU __HAL_DBGMCU_FREEZE_TIM1 +#define __HAL_UNFREEZE_TIM1_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM1 +#define __HAL_FREEZE_TIM2_DBGMCU __HAL_DBGMCU_FREEZE_TIM2 +#define __HAL_UNFREEZE_TIM2_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM2 +#define __HAL_FREEZE_TIM3_DBGMCU __HAL_DBGMCU_FREEZE_TIM3 +#define __HAL_UNFREEZE_TIM3_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM3 +#define __HAL_FREEZE_TIM4_DBGMCU __HAL_DBGMCU_FREEZE_TIM4 +#define __HAL_UNFREEZE_TIM4_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM4 +#define __HAL_FREEZE_TIM5_DBGMCU __HAL_DBGMCU_FREEZE_TIM5 +#define __HAL_UNFREEZE_TIM5_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM5 +#define __HAL_FREEZE_TIM6_DBGMCU __HAL_DBGMCU_FREEZE_TIM6 +#define __HAL_UNFREEZE_TIM6_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM6 +#define __HAL_FREEZE_TIM7_DBGMCU __HAL_DBGMCU_FREEZE_TIM7 +#define __HAL_UNFREEZE_TIM7_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM7 +#define __HAL_FREEZE_TIM8_DBGMCU __HAL_DBGMCU_FREEZE_TIM8 +#define __HAL_UNFREEZE_TIM8_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM8 + +#define __HAL_FREEZE_TIM9_DBGMCU __HAL_DBGMCU_FREEZE_TIM9 +#define __HAL_UNFREEZE_TIM9_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM9 +#define __HAL_FREEZE_TIM10_DBGMCU __HAL_DBGMCU_FREEZE_TIM10 +#define __HAL_UNFREEZE_TIM10_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM10 +#define __HAL_FREEZE_TIM11_DBGMCU __HAL_DBGMCU_FREEZE_TIM11 +#define __HAL_UNFREEZE_TIM11_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM11 +#define __HAL_FREEZE_TIM12_DBGMCU __HAL_DBGMCU_FREEZE_TIM12 +#define __HAL_UNFREEZE_TIM12_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM12 +#define __HAL_FREEZE_TIM13_DBGMCU __HAL_DBGMCU_FREEZE_TIM13 +#define __HAL_UNFREEZE_TIM13_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM13 +#define __HAL_FREEZE_TIM14_DBGMCU __HAL_DBGMCU_FREEZE_TIM14 +#define __HAL_UNFREEZE_TIM14_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM14 +#define __HAL_FREEZE_CAN2_DBGMCU __HAL_DBGMCU_FREEZE_CAN2 +#define __HAL_UNFREEZE_CAN2_DBGMCU __HAL_DBGMCU_UNFREEZE_CAN2 + + +#define __HAL_FREEZE_TIM15_DBGMCU __HAL_DBGMCU_FREEZE_TIM15 +#define __HAL_UNFREEZE_TIM15_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM15 +#define __HAL_FREEZE_TIM16_DBGMCU __HAL_DBGMCU_FREEZE_TIM16 +#define __HAL_UNFREEZE_TIM16_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM16 +#define __HAL_FREEZE_TIM17_DBGMCU __HAL_DBGMCU_FREEZE_TIM17 +#define __HAL_UNFREEZE_TIM17_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM17 +#define __HAL_FREEZE_RTC_DBGMCU __HAL_DBGMCU_FREEZE_RTC +#define __HAL_UNFREEZE_RTC_DBGMCU __HAL_DBGMCU_UNFREEZE_RTC +#if defined(STM32H7) +#define __HAL_FREEZE_WWDG_DBGMCU __HAL_DBGMCU_FREEZE_WWDG1 +#define __HAL_UNFREEZE_WWDG_DBGMCU __HAL_DBGMCU_UnFreeze_WWDG1 +#define __HAL_FREEZE_IWDG_DBGMCU __HAL_DBGMCU_FREEZE_IWDG1 +#define __HAL_UNFREEZE_IWDG_DBGMCU __HAL_DBGMCU_UnFreeze_IWDG1 +#else +#define __HAL_FREEZE_WWDG_DBGMCU __HAL_DBGMCU_FREEZE_WWDG +#define __HAL_UNFREEZE_WWDG_DBGMCU __HAL_DBGMCU_UNFREEZE_WWDG +#define __HAL_FREEZE_IWDG_DBGMCU __HAL_DBGMCU_FREEZE_IWDG +#define __HAL_UNFREEZE_IWDG_DBGMCU __HAL_DBGMCU_UNFREEZE_IWDG +#endif /* STM32H7 */ +#define __HAL_FREEZE_I2C1_TIMEOUT_DBGMCU __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT +#define __HAL_UNFREEZE_I2C1_TIMEOUT_DBGMCU __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT +#define __HAL_FREEZE_I2C2_TIMEOUT_DBGMCU __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT +#define __HAL_UNFREEZE_I2C2_TIMEOUT_DBGMCU __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT +#define __HAL_FREEZE_I2C3_TIMEOUT_DBGMCU __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT +#define __HAL_UNFREEZE_I2C3_TIMEOUT_DBGMCU __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT +#define __HAL_FREEZE_CAN1_DBGMCU __HAL_DBGMCU_FREEZE_CAN1 +#define __HAL_UNFREEZE_CAN1_DBGMCU __HAL_DBGMCU_UNFREEZE_CAN1 +#define __HAL_FREEZE_LPTIM1_DBGMCU __HAL_DBGMCU_FREEZE_LPTIM1 +#define __HAL_UNFREEZE_LPTIM1_DBGMCU __HAL_DBGMCU_UNFREEZE_LPTIM1 +#define __HAL_FREEZE_LPTIM2_DBGMCU __HAL_DBGMCU_FREEZE_LPTIM2 +#define __HAL_UNFREEZE_LPTIM2_DBGMCU __HAL_DBGMCU_UNFREEZE_LPTIM2 + +/** + * @} + */ + +/** @defgroup HAL_COMP_Aliased_Macros HAL COMP Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined(STM32F3) +#define COMP_START __HAL_COMP_ENABLE +#define COMP_STOP __HAL_COMP_DISABLE +#define COMP_LOCK __HAL_COMP_LOCK + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || defined(STM32F303x8) || \ + defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP6_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP6_EXTI_CLEAR_FLAG()) +#endif +#if defined(STM32F302xE) || defined(STM32F302xC) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP6_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP6_EXTI_CLEAR_FLAG()) +#endif +#if defined(STM32F303xE) || defined(STM32F398xx) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP7_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP7_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP7_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP7_EXTI_CLEAR_FLAG()) +#endif +#if defined(STM32F373xC) ||defined(STM32F378xx) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP2_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP2_EXTI_CLEAR_FLAG()) +#endif +#else +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP2_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP2_EXTI_CLEAR_FLAG()) +#endif + +#define __HAL_COMP_GET_EXTI_LINE COMP_GET_EXTI_LINE + +#if defined(STM32L0) || defined(STM32L4) +/* Note: On these STM32 families, the only argument of this macro */ +/* is COMP_FLAG_LOCK. */ +/* This macro is replaced by __HAL_COMP_IS_LOCKED with only HAL handle */ +/* argument. */ +#define __HAL_COMP_GET_FLAG(__HANDLE__, __FLAG__) (__HAL_COMP_IS_LOCKED(__HANDLE__)) +#endif +/** + * @} + */ + +#if defined(STM32L0) || defined(STM32L4) +/** @defgroup HAL_COMP_Aliased_Functions HAL COMP Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_COMP_Start_IT HAL_COMP_Start /* Function considered as legacy as EXTI event or IT configuration is + done into HAL_COMP_Init() */ +#define HAL_COMP_Stop_IT HAL_COMP_Stop /* Function considered as legacy as EXTI event or IT configuration is + done into HAL_COMP_Init() */ +/** + * @} + */ +#endif + +/** @defgroup HAL_DAC_Aliased_Macros HAL DAC Aliased Macros maintained for legacy purpose + * @{ + */ + +#define IS_DAC_WAVE(WAVE) (((WAVE) == DAC_WAVE_NONE) || \ + ((WAVE) == DAC_WAVE_NOISE)|| \ + ((WAVE) == DAC_WAVE_TRIANGLE)) + +/** + * @} + */ + +/** @defgroup HAL_FLASH_Aliased_Macros HAL FLASH Aliased Macros maintained for legacy purpose + * @{ + */ + +#define IS_WRPAREA IS_OB_WRPAREA +#define IS_TYPEPROGRAM IS_FLASH_TYPEPROGRAM +#define IS_TYPEPROGRAMFLASH IS_FLASH_TYPEPROGRAM +#define IS_TYPEERASE IS_FLASH_TYPEERASE +#define IS_NBSECTORS IS_FLASH_NBSECTORS +#define IS_OB_WDG_SOURCE IS_OB_IWDG_SOURCE + +/** + * @} + */ + +/** @defgroup HAL_I2C_Aliased_Macros HAL I2C Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_I2C_RESET_CR2 I2C_RESET_CR2 +#define __HAL_I2C_GENERATE_START I2C_GENERATE_START +#if defined(STM32F1) +#define __HAL_I2C_FREQ_RANGE I2C_FREQRANGE +#else +#define __HAL_I2C_FREQ_RANGE I2C_FREQ_RANGE +#endif /* STM32F1 */ +#define __HAL_I2C_RISE_TIME I2C_RISE_TIME +#define __HAL_I2C_SPEED_STANDARD I2C_SPEED_STANDARD +#define __HAL_I2C_SPEED_FAST I2C_SPEED_FAST +#define __HAL_I2C_SPEED I2C_SPEED +#define __HAL_I2C_7BIT_ADD_WRITE I2C_7BIT_ADD_WRITE +#define __HAL_I2C_7BIT_ADD_READ I2C_7BIT_ADD_READ +#define __HAL_I2C_10BIT_ADDRESS I2C_10BIT_ADDRESS +#define __HAL_I2C_10BIT_HEADER_WRITE I2C_10BIT_HEADER_WRITE +#define __HAL_I2C_10BIT_HEADER_READ I2C_10BIT_HEADER_READ +#define __HAL_I2C_MEM_ADD_MSB I2C_MEM_ADD_MSB +#define __HAL_I2C_MEM_ADD_LSB I2C_MEM_ADD_LSB +#define __HAL_I2C_FREQRANGE I2C_FREQRANGE +/** + * @} + */ + +/** @defgroup HAL_I2S_Aliased_Macros HAL I2S Aliased Macros maintained for legacy purpose + * @{ + */ + +#define IS_I2S_INSTANCE IS_I2S_ALL_INSTANCE +#define IS_I2S_INSTANCE_EXT IS_I2S_ALL_INSTANCE_EXT + +#if defined(STM32H7) +#define __HAL_I2S_CLEAR_FREFLAG __HAL_I2S_CLEAR_TIFREFLAG +#endif + +/** + * @} + */ + +/** @defgroup HAL_IRDA_Aliased_Macros HAL IRDA Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __IRDA_DISABLE __HAL_IRDA_DISABLE +#define __IRDA_ENABLE __HAL_IRDA_ENABLE + +#define __HAL_IRDA_GETCLOCKSOURCE IRDA_GETCLOCKSOURCE +#define __HAL_IRDA_MASK_COMPUTATION IRDA_MASK_COMPUTATION +#define __IRDA_GETCLOCKSOURCE IRDA_GETCLOCKSOURCE +#define __IRDA_MASK_COMPUTATION IRDA_MASK_COMPUTATION + +#define IS_IRDA_ONEBIT_SAMPLE IS_IRDA_ONE_BIT_SAMPLE + + +/** + * @} + */ + + +/** @defgroup HAL_IWDG_Aliased_Macros HAL IWDG Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_IWDG_ENABLE_WRITE_ACCESS IWDG_ENABLE_WRITE_ACCESS +#define __HAL_IWDG_DISABLE_WRITE_ACCESS IWDG_DISABLE_WRITE_ACCESS +/** + * @} + */ + + +/** @defgroup HAL_LPTIM_Aliased_Macros HAL LPTIM Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_LPTIM_ENABLE_INTERRUPT __HAL_LPTIM_ENABLE_IT +#define __HAL_LPTIM_DISABLE_INTERRUPT __HAL_LPTIM_DISABLE_IT +#define __HAL_LPTIM_GET_ITSTATUS __HAL_LPTIM_GET_IT_SOURCE + +/** + * @} + */ + + +/** @defgroup HAL_OPAMP_Aliased_Macros HAL OPAMP Aliased Macros maintained for legacy purpose + * @{ + */ +#define __OPAMP_CSR_OPAXPD OPAMP_CSR_OPAXPD +#define __OPAMP_CSR_S3SELX OPAMP_CSR_S3SELX +#define __OPAMP_CSR_S4SELX OPAMP_CSR_S4SELX +#define __OPAMP_CSR_S5SELX OPAMP_CSR_S5SELX +#define __OPAMP_CSR_S6SELX OPAMP_CSR_S6SELX +#define __OPAMP_CSR_OPAXCAL_L OPAMP_CSR_OPAXCAL_L +#define __OPAMP_CSR_OPAXCAL_H OPAMP_CSR_OPAXCAL_H +#define __OPAMP_CSR_OPAXLPM OPAMP_CSR_OPAXLPM +#define __OPAMP_CSR_ALL_SWITCHES OPAMP_CSR_ALL_SWITCHES +#define __OPAMP_CSR_ANAWSELX OPAMP_CSR_ANAWSELX +#define __OPAMP_CSR_OPAXCALOUT OPAMP_CSR_OPAXCALOUT +#define __OPAMP_OFFSET_TRIM_BITSPOSITION OPAMP_OFFSET_TRIM_BITSPOSITION +#define __OPAMP_OFFSET_TRIM_SET OPAMP_OFFSET_TRIM_SET + +/** + * @} + */ + + +/** @defgroup HAL_PWR_Aliased_Macros HAL PWR Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_PVD_EVENT_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_EVENT +#define __HAL_PVD_EVENT_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_EVENT +#define __HAL_PVD_EXTI_FALLINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE +#define __HAL_PVD_EXTI_FALLINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PVD_EXTI_RISINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE +#define __HAL_PVD_EXTI_RISINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE +#define __HAL_PVM_EVENT_DISABLE __HAL_PWR_PVM_EVENT_DISABLE +#define __HAL_PVM_EVENT_ENABLE __HAL_PWR_PVM_EVENT_ENABLE +#define __HAL_PVM_EXTI_FALLINGTRIGGER_DISABLE __HAL_PWR_PVM_EXTI_FALLINGTRIGGER_DISABLE +#define __HAL_PVM_EXTI_FALLINGTRIGGER_ENABLE __HAL_PWR_PVM_EXTI_FALLINGTRIGGER_ENABLE +#define __HAL_PVM_EXTI_RISINGTRIGGER_DISABLE __HAL_PWR_PVM_EXTI_RISINGTRIGGER_DISABLE +#define __HAL_PVM_EXTI_RISINGTRIGGER_ENABLE __HAL_PWR_PVM_EXTI_RISINGTRIGGER_ENABLE +#define __HAL_PWR_INTERNALWAKEUP_DISABLE HAL_PWREx_DisableInternalWakeUpLine +#define __HAL_PWR_INTERNALWAKEUP_ENABLE HAL_PWREx_EnableInternalWakeUpLine +#define __HAL_PWR_PULL_UP_DOWN_CONFIG_DISABLE HAL_PWREx_DisablePullUpPullDownConfig +#define __HAL_PWR_PULL_UP_DOWN_CONFIG_ENABLE HAL_PWREx_EnablePullUpPullDownConfig +#define __HAL_PWR_PVD_EXTI_CLEAR_EGDE_TRIGGER() do { __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) +#define __HAL_PWR_PVD_EXTI_EVENT_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_EVENT +#define __HAL_PWR_PVD_EXTI_EVENT_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_EVENT +#define __HAL_PWR_PVD_EXTI_FALLINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE +#define __HAL_PWR_PVD_EXTI_FALLINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PWR_PVD_EXTI_RISINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE +#define __HAL_PWR_PVD_EXTI_RISINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE +#define __HAL_PWR_PVD_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PWR_PVD_EXTI_SET_RISING_EDGE_TRIGGER __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE +#define __HAL_PWR_PVM_DISABLE() do { HAL_PWREx_DisablePVM1();HAL_PWREx_DisablePVM2(); \ + HAL_PWREx_DisablePVM3();HAL_PWREx_DisablePVM4(); \ + } while(0) +#define __HAL_PWR_PVM_ENABLE() do { HAL_PWREx_EnablePVM1();HAL_PWREx_EnablePVM2(); \ + HAL_PWREx_EnablePVM3();HAL_PWREx_EnablePVM4(); \ + } while(0) +#define __HAL_PWR_SRAM2CONTENT_PRESERVE_DISABLE HAL_PWREx_DisableSRAM2ContentRetention +#define __HAL_PWR_SRAM2CONTENT_PRESERVE_ENABLE HAL_PWREx_EnableSRAM2ContentRetention +#define __HAL_PWR_VDDIO2_DISABLE HAL_PWREx_DisableVddIO2 +#define __HAL_PWR_VDDIO2_ENABLE HAL_PWREx_EnableVddIO2 +#define __HAL_PWR_VDDIO2_EXTI_CLEAR_EGDE_TRIGGER __HAL_PWR_VDDIO2_EXTI_DISABLE_FALLING_EDGE +#define __HAL_PWR_VDDIO2_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_PWR_VDDIO2_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PWR_VDDUSB_DISABLE HAL_PWREx_DisableVddUSB +#define __HAL_PWR_VDDUSB_ENABLE HAL_PWREx_EnableVddUSB + +#if defined (STM32F4) +#define __HAL_PVD_EXTI_ENABLE_IT(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_ENABLE_IT() +#define __HAL_PVD_EXTI_DISABLE_IT(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_DISABLE_IT() +#define __HAL_PVD_EXTI_GET_FLAG(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_GET_FLAG() +#define __HAL_PVD_EXTI_CLEAR_FLAG(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_CLEAR_FLAG() +#define __HAL_PVD_EXTI_GENERATE_SWIT(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_GENERATE_SWIT() +#else +#define __HAL_PVD_EXTI_CLEAR_FLAG __HAL_PWR_PVD_EXTI_CLEAR_FLAG +#define __HAL_PVD_EXTI_DISABLE_IT __HAL_PWR_PVD_EXTI_DISABLE_IT +#define __HAL_PVD_EXTI_ENABLE_IT __HAL_PWR_PVD_EXTI_ENABLE_IT +#define __HAL_PVD_EXTI_GENERATE_SWIT __HAL_PWR_PVD_EXTI_GENERATE_SWIT +#define __HAL_PVD_EXTI_GET_FLAG __HAL_PWR_PVD_EXTI_GET_FLAG +#endif /* STM32F4 */ +/** + * @} + */ + + +/** @defgroup HAL_RCC_Aliased HAL RCC Aliased maintained for legacy purpose + * @{ + */ + +#define RCC_StopWakeUpClock_MSI RCC_STOP_WAKEUPCLOCK_MSI +#define RCC_StopWakeUpClock_HSI RCC_STOP_WAKEUPCLOCK_HSI + +#define HAL_RCC_CCSCallback HAL_RCC_CSSCallback +#define HAL_RC48_EnableBuffer_Cmd(cmd) (((cmd)==ENABLE) ? \ + HAL_RCCEx_EnableHSI48_VREFINT() : HAL_RCCEx_DisableHSI48_VREFINT()) + +#define __ADC_CLK_DISABLE __HAL_RCC_ADC_CLK_DISABLE +#define __ADC_CLK_ENABLE __HAL_RCC_ADC_CLK_ENABLE +#define __ADC_CLK_SLEEP_DISABLE __HAL_RCC_ADC_CLK_SLEEP_DISABLE +#define __ADC_CLK_SLEEP_ENABLE __HAL_RCC_ADC_CLK_SLEEP_ENABLE +#define __ADC_FORCE_RESET __HAL_RCC_ADC_FORCE_RESET +#define __ADC_RELEASE_RESET __HAL_RCC_ADC_RELEASE_RESET +#define __ADC1_CLK_DISABLE __HAL_RCC_ADC1_CLK_DISABLE +#define __ADC1_CLK_ENABLE __HAL_RCC_ADC1_CLK_ENABLE +#define __ADC1_FORCE_RESET __HAL_RCC_ADC1_FORCE_RESET +#define __ADC1_RELEASE_RESET __HAL_RCC_ADC1_RELEASE_RESET +#define __ADC1_CLK_SLEEP_ENABLE __HAL_RCC_ADC1_CLK_SLEEP_ENABLE +#define __ADC1_CLK_SLEEP_DISABLE __HAL_RCC_ADC1_CLK_SLEEP_DISABLE +#define __ADC2_CLK_DISABLE __HAL_RCC_ADC2_CLK_DISABLE +#define __ADC2_CLK_ENABLE __HAL_RCC_ADC2_CLK_ENABLE +#define __ADC2_FORCE_RESET __HAL_RCC_ADC2_FORCE_RESET +#define __ADC2_RELEASE_RESET __HAL_RCC_ADC2_RELEASE_RESET +#define __ADC3_CLK_DISABLE __HAL_RCC_ADC3_CLK_DISABLE +#define __ADC3_CLK_ENABLE __HAL_RCC_ADC3_CLK_ENABLE +#define __ADC3_FORCE_RESET __HAL_RCC_ADC3_FORCE_RESET +#define __ADC3_RELEASE_RESET __HAL_RCC_ADC3_RELEASE_RESET +#define __AES_CLK_DISABLE __HAL_RCC_AES_CLK_DISABLE +#define __AES_CLK_ENABLE __HAL_RCC_AES_CLK_ENABLE +#define __AES_CLK_SLEEP_DISABLE __HAL_RCC_AES_CLK_SLEEP_DISABLE +#define __AES_CLK_SLEEP_ENABLE __HAL_RCC_AES_CLK_SLEEP_ENABLE +#define __AES_FORCE_RESET __HAL_RCC_AES_FORCE_RESET +#define __AES_RELEASE_RESET __HAL_RCC_AES_RELEASE_RESET +#define __CRYP_CLK_SLEEP_ENABLE __HAL_RCC_CRYP_CLK_SLEEP_ENABLE +#define __CRYP_CLK_SLEEP_DISABLE __HAL_RCC_CRYP_CLK_SLEEP_DISABLE +#define __CRYP_CLK_ENABLE __HAL_RCC_CRYP_CLK_ENABLE +#define __CRYP_CLK_DISABLE __HAL_RCC_CRYP_CLK_DISABLE +#define __CRYP_FORCE_RESET __HAL_RCC_CRYP_FORCE_RESET +#define __CRYP_RELEASE_RESET __HAL_RCC_CRYP_RELEASE_RESET +#define __AFIO_CLK_DISABLE __HAL_RCC_AFIO_CLK_DISABLE +#define __AFIO_CLK_ENABLE __HAL_RCC_AFIO_CLK_ENABLE +#define __AFIO_FORCE_RESET __HAL_RCC_AFIO_FORCE_RESET +#define __AFIO_RELEASE_RESET __HAL_RCC_AFIO_RELEASE_RESET +#define __AHB_FORCE_RESET __HAL_RCC_AHB_FORCE_RESET +#define __AHB_RELEASE_RESET __HAL_RCC_AHB_RELEASE_RESET +#define __AHB1_FORCE_RESET __HAL_RCC_AHB1_FORCE_RESET +#define __AHB1_RELEASE_RESET __HAL_RCC_AHB1_RELEASE_RESET +#define __AHB2_FORCE_RESET __HAL_RCC_AHB2_FORCE_RESET +#define __AHB2_RELEASE_RESET __HAL_RCC_AHB2_RELEASE_RESET +#define __AHB3_FORCE_RESET __HAL_RCC_AHB3_FORCE_RESET +#define __AHB3_RELEASE_RESET __HAL_RCC_AHB3_RELEASE_RESET +#define __APB1_FORCE_RESET __HAL_RCC_APB1_FORCE_RESET +#define __APB1_RELEASE_RESET __HAL_RCC_APB1_RELEASE_RESET +#define __APB2_FORCE_RESET __HAL_RCC_APB2_FORCE_RESET +#define __APB2_RELEASE_RESET __HAL_RCC_APB2_RELEASE_RESET +#if defined(STM32C0) +#define __HAL_RCC_APB1_FORCE_RESET __HAL_RCC_APB1_GRP1_FORCE_RESET +#define __HAL_RCC_APB1_RELEASE_RESET __HAL_RCC_APB1_GRP1_RELEASE_RESET +#define __HAL_RCC_APB2_FORCE_RESET __HAL_RCC_APB1_GRP2_FORCE_RESET +#define __HAL_RCC_APB2_RELEASE_RESET __HAL_RCC_APB1_GRP2_RELEASE_RESET +#endif /* STM32C0 */ +#define __BKP_CLK_DISABLE __HAL_RCC_BKP_CLK_DISABLE +#define __BKP_CLK_ENABLE __HAL_RCC_BKP_CLK_ENABLE +#define __BKP_FORCE_RESET __HAL_RCC_BKP_FORCE_RESET +#define __BKP_RELEASE_RESET __HAL_RCC_BKP_RELEASE_RESET +#define __CAN1_CLK_DISABLE __HAL_RCC_CAN1_CLK_DISABLE +#define __CAN1_CLK_ENABLE __HAL_RCC_CAN1_CLK_ENABLE +#define __CAN1_CLK_SLEEP_DISABLE __HAL_RCC_CAN1_CLK_SLEEP_DISABLE +#define __CAN1_CLK_SLEEP_ENABLE __HAL_RCC_CAN1_CLK_SLEEP_ENABLE +#define __CAN1_FORCE_RESET __HAL_RCC_CAN1_FORCE_RESET +#define __CAN1_RELEASE_RESET __HAL_RCC_CAN1_RELEASE_RESET +#define __CAN_CLK_DISABLE __HAL_RCC_CAN1_CLK_DISABLE +#define __CAN_CLK_ENABLE __HAL_RCC_CAN1_CLK_ENABLE +#define __CAN_FORCE_RESET __HAL_RCC_CAN1_FORCE_RESET +#define __CAN_RELEASE_RESET __HAL_RCC_CAN1_RELEASE_RESET +#define __CAN2_CLK_DISABLE __HAL_RCC_CAN2_CLK_DISABLE +#define __CAN2_CLK_ENABLE __HAL_RCC_CAN2_CLK_ENABLE +#define __CAN2_FORCE_RESET __HAL_RCC_CAN2_FORCE_RESET +#define __CAN2_RELEASE_RESET __HAL_RCC_CAN2_RELEASE_RESET +#define __CEC_CLK_DISABLE __HAL_RCC_CEC_CLK_DISABLE +#define __CEC_CLK_ENABLE __HAL_RCC_CEC_CLK_ENABLE +#define __COMP_CLK_DISABLE __HAL_RCC_COMP_CLK_DISABLE +#define __COMP_CLK_ENABLE __HAL_RCC_COMP_CLK_ENABLE +#define __COMP_FORCE_RESET __HAL_RCC_COMP_FORCE_RESET +#define __COMP_RELEASE_RESET __HAL_RCC_COMP_RELEASE_RESET +#define __COMP_CLK_SLEEP_ENABLE __HAL_RCC_COMP_CLK_SLEEP_ENABLE +#define __COMP_CLK_SLEEP_DISABLE __HAL_RCC_COMP_CLK_SLEEP_DISABLE +#define __CEC_FORCE_RESET __HAL_RCC_CEC_FORCE_RESET +#define __CEC_RELEASE_RESET __HAL_RCC_CEC_RELEASE_RESET +#define __CRC_CLK_DISABLE __HAL_RCC_CRC_CLK_DISABLE +#define __CRC_CLK_ENABLE __HAL_RCC_CRC_CLK_ENABLE +#define __CRC_CLK_SLEEP_DISABLE __HAL_RCC_CRC_CLK_SLEEP_DISABLE +#define __CRC_CLK_SLEEP_ENABLE __HAL_RCC_CRC_CLK_SLEEP_ENABLE +#define __CRC_FORCE_RESET __HAL_RCC_CRC_FORCE_RESET +#define __CRC_RELEASE_RESET __HAL_RCC_CRC_RELEASE_RESET +#define __DAC_CLK_DISABLE __HAL_RCC_DAC_CLK_DISABLE +#define __DAC_CLK_ENABLE __HAL_RCC_DAC_CLK_ENABLE +#define __DAC_FORCE_RESET __HAL_RCC_DAC_FORCE_RESET +#define __DAC_RELEASE_RESET __HAL_RCC_DAC_RELEASE_RESET +#define __DAC1_CLK_DISABLE __HAL_RCC_DAC1_CLK_DISABLE +#define __DAC1_CLK_ENABLE __HAL_RCC_DAC1_CLK_ENABLE +#define __DAC1_CLK_SLEEP_DISABLE __HAL_RCC_DAC1_CLK_SLEEP_DISABLE +#define __DAC1_CLK_SLEEP_ENABLE __HAL_RCC_DAC1_CLK_SLEEP_ENABLE +#define __DAC1_FORCE_RESET __HAL_RCC_DAC1_FORCE_RESET +#define __DAC1_RELEASE_RESET __HAL_RCC_DAC1_RELEASE_RESET +#define __DBGMCU_CLK_ENABLE __HAL_RCC_DBGMCU_CLK_ENABLE +#define __DBGMCU_CLK_DISABLE __HAL_RCC_DBGMCU_CLK_DISABLE +#define __DBGMCU_FORCE_RESET __HAL_RCC_DBGMCU_FORCE_RESET +#define __DBGMCU_RELEASE_RESET __HAL_RCC_DBGMCU_RELEASE_RESET +#define __DFSDM_CLK_DISABLE __HAL_RCC_DFSDM_CLK_DISABLE +#define __DFSDM_CLK_ENABLE __HAL_RCC_DFSDM_CLK_ENABLE +#define __DFSDM_CLK_SLEEP_DISABLE __HAL_RCC_DFSDM_CLK_SLEEP_DISABLE +#define __DFSDM_CLK_SLEEP_ENABLE __HAL_RCC_DFSDM_CLK_SLEEP_ENABLE +#define __DFSDM_FORCE_RESET __HAL_RCC_DFSDM_FORCE_RESET +#define __DFSDM_RELEASE_RESET __HAL_RCC_DFSDM_RELEASE_RESET +#define __DMA1_CLK_DISABLE __HAL_RCC_DMA1_CLK_DISABLE +#define __DMA1_CLK_ENABLE __HAL_RCC_DMA1_CLK_ENABLE +#define __DMA1_CLK_SLEEP_DISABLE __HAL_RCC_DMA1_CLK_SLEEP_DISABLE +#define __DMA1_CLK_SLEEP_ENABLE __HAL_RCC_DMA1_CLK_SLEEP_ENABLE +#define __DMA1_FORCE_RESET __HAL_RCC_DMA1_FORCE_RESET +#define __DMA1_RELEASE_RESET __HAL_RCC_DMA1_RELEASE_RESET +#define __DMA2_CLK_DISABLE __HAL_RCC_DMA2_CLK_DISABLE +#define __DMA2_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE +#define __DMA2_CLK_SLEEP_DISABLE __HAL_RCC_DMA2_CLK_SLEEP_DISABLE +#define __DMA2_CLK_SLEEP_ENABLE __HAL_RCC_DMA2_CLK_SLEEP_ENABLE +#define __DMA2_FORCE_RESET __HAL_RCC_DMA2_FORCE_RESET +#define __DMA2_RELEASE_RESET __HAL_RCC_DMA2_RELEASE_RESET +#define __ETHMAC_CLK_DISABLE __HAL_RCC_ETHMAC_CLK_DISABLE +#define __ETHMAC_CLK_ENABLE __HAL_RCC_ETHMAC_CLK_ENABLE +#define __ETHMAC_FORCE_RESET __HAL_RCC_ETHMAC_FORCE_RESET +#define __ETHMAC_RELEASE_RESET __HAL_RCC_ETHMAC_RELEASE_RESET +#define __ETHMACRX_CLK_DISABLE __HAL_RCC_ETHMACRX_CLK_DISABLE +#define __ETHMACRX_CLK_ENABLE __HAL_RCC_ETHMACRX_CLK_ENABLE +#define __ETHMACTX_CLK_DISABLE __HAL_RCC_ETHMACTX_CLK_DISABLE +#define __ETHMACTX_CLK_ENABLE __HAL_RCC_ETHMACTX_CLK_ENABLE +#define __FIREWALL_CLK_DISABLE __HAL_RCC_FIREWALL_CLK_DISABLE +#define __FIREWALL_CLK_ENABLE __HAL_RCC_FIREWALL_CLK_ENABLE +#define __FLASH_CLK_DISABLE __HAL_RCC_FLASH_CLK_DISABLE +#define __FLASH_CLK_ENABLE __HAL_RCC_FLASH_CLK_ENABLE +#define __FLASH_CLK_SLEEP_DISABLE __HAL_RCC_FLASH_CLK_SLEEP_DISABLE +#define __FLASH_CLK_SLEEP_ENABLE __HAL_RCC_FLASH_CLK_SLEEP_ENABLE +#define __FLASH_FORCE_RESET __HAL_RCC_FLASH_FORCE_RESET +#define __FLASH_RELEASE_RESET __HAL_RCC_FLASH_RELEASE_RESET +#define __FLITF_CLK_DISABLE __HAL_RCC_FLITF_CLK_DISABLE +#define __FLITF_CLK_ENABLE __HAL_RCC_FLITF_CLK_ENABLE +#define __FLITF_FORCE_RESET __HAL_RCC_FLITF_FORCE_RESET +#define __FLITF_RELEASE_RESET __HAL_RCC_FLITF_RELEASE_RESET +#define __FLITF_CLK_SLEEP_ENABLE __HAL_RCC_FLITF_CLK_SLEEP_ENABLE +#define __FLITF_CLK_SLEEP_DISABLE __HAL_RCC_FLITF_CLK_SLEEP_DISABLE +#define __FMC_CLK_DISABLE __HAL_RCC_FMC_CLK_DISABLE +#define __FMC_CLK_ENABLE __HAL_RCC_FMC_CLK_ENABLE +#define __FMC_CLK_SLEEP_DISABLE __HAL_RCC_FMC_CLK_SLEEP_DISABLE +#define __FMC_CLK_SLEEP_ENABLE __HAL_RCC_FMC_CLK_SLEEP_ENABLE +#define __FMC_FORCE_RESET __HAL_RCC_FMC_FORCE_RESET +#define __FMC_RELEASE_RESET __HAL_RCC_FMC_RELEASE_RESET +#define __FSMC_CLK_DISABLE __HAL_RCC_FSMC_CLK_DISABLE +#define __FSMC_CLK_ENABLE __HAL_RCC_FSMC_CLK_ENABLE +#define __GPIOA_CLK_DISABLE __HAL_RCC_GPIOA_CLK_DISABLE +#define __GPIOA_CLK_ENABLE __HAL_RCC_GPIOA_CLK_ENABLE +#define __GPIOA_CLK_SLEEP_DISABLE __HAL_RCC_GPIOA_CLK_SLEEP_DISABLE +#define __GPIOA_CLK_SLEEP_ENABLE __HAL_RCC_GPIOA_CLK_SLEEP_ENABLE +#define __GPIOA_FORCE_RESET __HAL_RCC_GPIOA_FORCE_RESET +#define __GPIOA_RELEASE_RESET __HAL_RCC_GPIOA_RELEASE_RESET +#define __GPIOB_CLK_DISABLE __HAL_RCC_GPIOB_CLK_DISABLE +#define __GPIOB_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE +#define __GPIOB_CLK_SLEEP_DISABLE __HAL_RCC_GPIOB_CLK_SLEEP_DISABLE +#define __GPIOB_CLK_SLEEP_ENABLE __HAL_RCC_GPIOB_CLK_SLEEP_ENABLE +#define __GPIOB_FORCE_RESET __HAL_RCC_GPIOB_FORCE_RESET +#define __GPIOB_RELEASE_RESET __HAL_RCC_GPIOB_RELEASE_RESET +#define __GPIOC_CLK_DISABLE __HAL_RCC_GPIOC_CLK_DISABLE +#define __GPIOC_CLK_ENABLE __HAL_RCC_GPIOC_CLK_ENABLE +#define __GPIOC_CLK_SLEEP_DISABLE __HAL_RCC_GPIOC_CLK_SLEEP_DISABLE +#define __GPIOC_CLK_SLEEP_ENABLE __HAL_RCC_GPIOC_CLK_SLEEP_ENABLE +#define __GPIOC_FORCE_RESET __HAL_RCC_GPIOC_FORCE_RESET +#define __GPIOC_RELEASE_RESET __HAL_RCC_GPIOC_RELEASE_RESET +#define __GPIOD_CLK_DISABLE __HAL_RCC_GPIOD_CLK_DISABLE +#define __GPIOD_CLK_ENABLE __HAL_RCC_GPIOD_CLK_ENABLE +#define __GPIOD_CLK_SLEEP_DISABLE __HAL_RCC_GPIOD_CLK_SLEEP_DISABLE +#define __GPIOD_CLK_SLEEP_ENABLE __HAL_RCC_GPIOD_CLK_SLEEP_ENABLE +#define __GPIOD_FORCE_RESET __HAL_RCC_GPIOD_FORCE_RESET +#define __GPIOD_RELEASE_RESET __HAL_RCC_GPIOD_RELEASE_RESET +#define __GPIOE_CLK_DISABLE __HAL_RCC_GPIOE_CLK_DISABLE +#define __GPIOE_CLK_ENABLE __HAL_RCC_GPIOE_CLK_ENABLE +#define __GPIOE_CLK_SLEEP_DISABLE __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE +#define __GPIOE_CLK_SLEEP_ENABLE __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE +#define __GPIOE_FORCE_RESET __HAL_RCC_GPIOE_FORCE_RESET +#define __GPIOE_RELEASE_RESET __HAL_RCC_GPIOE_RELEASE_RESET +#define __GPIOF_CLK_DISABLE __HAL_RCC_GPIOF_CLK_DISABLE +#define __GPIOF_CLK_ENABLE __HAL_RCC_GPIOF_CLK_ENABLE +#define __GPIOF_CLK_SLEEP_DISABLE __HAL_RCC_GPIOF_CLK_SLEEP_DISABLE +#define __GPIOF_CLK_SLEEP_ENABLE __HAL_RCC_GPIOF_CLK_SLEEP_ENABLE +#define __GPIOF_FORCE_RESET __HAL_RCC_GPIOF_FORCE_RESET +#define __GPIOF_RELEASE_RESET __HAL_RCC_GPIOF_RELEASE_RESET +#define __GPIOG_CLK_DISABLE __HAL_RCC_GPIOG_CLK_DISABLE +#define __GPIOG_CLK_ENABLE __HAL_RCC_GPIOG_CLK_ENABLE +#define __GPIOG_CLK_SLEEP_DISABLE __HAL_RCC_GPIOG_CLK_SLEEP_DISABLE +#define __GPIOG_CLK_SLEEP_ENABLE __HAL_RCC_GPIOG_CLK_SLEEP_ENABLE +#define __GPIOG_FORCE_RESET __HAL_RCC_GPIOG_FORCE_RESET +#define __GPIOG_RELEASE_RESET __HAL_RCC_GPIOG_RELEASE_RESET +#define __GPIOH_CLK_DISABLE __HAL_RCC_GPIOH_CLK_DISABLE +#define __GPIOH_CLK_ENABLE __HAL_RCC_GPIOH_CLK_ENABLE +#define __GPIOH_CLK_SLEEP_DISABLE __HAL_RCC_GPIOH_CLK_SLEEP_DISABLE +#define __GPIOH_CLK_SLEEP_ENABLE __HAL_RCC_GPIOH_CLK_SLEEP_ENABLE +#define __GPIOH_FORCE_RESET __HAL_RCC_GPIOH_FORCE_RESET +#define __GPIOH_RELEASE_RESET __HAL_RCC_GPIOH_RELEASE_RESET +#define __I2C1_CLK_DISABLE __HAL_RCC_I2C1_CLK_DISABLE +#define __I2C1_CLK_ENABLE __HAL_RCC_I2C1_CLK_ENABLE +#define __I2C1_CLK_SLEEP_DISABLE __HAL_RCC_I2C1_CLK_SLEEP_DISABLE +#define __I2C1_CLK_SLEEP_ENABLE __HAL_RCC_I2C1_CLK_SLEEP_ENABLE +#define __I2C1_FORCE_RESET __HAL_RCC_I2C1_FORCE_RESET +#define __I2C1_RELEASE_RESET __HAL_RCC_I2C1_RELEASE_RESET +#define __I2C2_CLK_DISABLE __HAL_RCC_I2C2_CLK_DISABLE +#define __I2C2_CLK_ENABLE __HAL_RCC_I2C2_CLK_ENABLE +#define __I2C2_CLK_SLEEP_DISABLE __HAL_RCC_I2C2_CLK_SLEEP_DISABLE +#define __I2C2_CLK_SLEEP_ENABLE __HAL_RCC_I2C2_CLK_SLEEP_ENABLE +#define __I2C2_FORCE_RESET __HAL_RCC_I2C2_FORCE_RESET +#define __I2C2_RELEASE_RESET __HAL_RCC_I2C2_RELEASE_RESET +#define __I2C3_CLK_DISABLE __HAL_RCC_I2C3_CLK_DISABLE +#define __I2C3_CLK_ENABLE __HAL_RCC_I2C3_CLK_ENABLE +#define __I2C3_CLK_SLEEP_DISABLE __HAL_RCC_I2C3_CLK_SLEEP_DISABLE +#define __I2C3_CLK_SLEEP_ENABLE __HAL_RCC_I2C3_CLK_SLEEP_ENABLE +#define __I2C3_FORCE_RESET __HAL_RCC_I2C3_FORCE_RESET +#define __I2C3_RELEASE_RESET __HAL_RCC_I2C3_RELEASE_RESET +#define __LCD_CLK_DISABLE __HAL_RCC_LCD_CLK_DISABLE +#define __LCD_CLK_ENABLE __HAL_RCC_LCD_CLK_ENABLE +#define __LCD_CLK_SLEEP_DISABLE __HAL_RCC_LCD_CLK_SLEEP_DISABLE +#define __LCD_CLK_SLEEP_ENABLE __HAL_RCC_LCD_CLK_SLEEP_ENABLE +#define __LCD_FORCE_RESET __HAL_RCC_LCD_FORCE_RESET +#define __LCD_RELEASE_RESET __HAL_RCC_LCD_RELEASE_RESET +#define __LPTIM1_CLK_DISABLE __HAL_RCC_LPTIM1_CLK_DISABLE +#define __LPTIM1_CLK_ENABLE __HAL_RCC_LPTIM1_CLK_ENABLE +#define __LPTIM1_CLK_SLEEP_DISABLE __HAL_RCC_LPTIM1_CLK_SLEEP_DISABLE +#define __LPTIM1_CLK_SLEEP_ENABLE __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE +#define __LPTIM1_FORCE_RESET __HAL_RCC_LPTIM1_FORCE_RESET +#define __LPTIM1_RELEASE_RESET __HAL_RCC_LPTIM1_RELEASE_RESET +#define __LPTIM2_CLK_DISABLE __HAL_RCC_LPTIM2_CLK_DISABLE +#define __LPTIM2_CLK_ENABLE __HAL_RCC_LPTIM2_CLK_ENABLE +#define __LPTIM2_CLK_SLEEP_DISABLE __HAL_RCC_LPTIM2_CLK_SLEEP_DISABLE +#define __LPTIM2_CLK_SLEEP_ENABLE __HAL_RCC_LPTIM2_CLK_SLEEP_ENABLE +#define __LPTIM2_FORCE_RESET __HAL_RCC_LPTIM2_FORCE_RESET +#define __LPTIM2_RELEASE_RESET __HAL_RCC_LPTIM2_RELEASE_RESET +#define __LPUART1_CLK_DISABLE __HAL_RCC_LPUART1_CLK_DISABLE +#define __LPUART1_CLK_ENABLE __HAL_RCC_LPUART1_CLK_ENABLE +#define __LPUART1_CLK_SLEEP_DISABLE __HAL_RCC_LPUART1_CLK_SLEEP_DISABLE +#define __LPUART1_CLK_SLEEP_ENABLE __HAL_RCC_LPUART1_CLK_SLEEP_ENABLE +#define __LPUART1_FORCE_RESET __HAL_RCC_LPUART1_FORCE_RESET +#define __LPUART1_RELEASE_RESET __HAL_RCC_LPUART1_RELEASE_RESET +#define __OPAMP_CLK_DISABLE __HAL_RCC_OPAMP_CLK_DISABLE +#define __OPAMP_CLK_ENABLE __HAL_RCC_OPAMP_CLK_ENABLE +#define __OPAMP_CLK_SLEEP_DISABLE __HAL_RCC_OPAMP_CLK_SLEEP_DISABLE +#define __OPAMP_CLK_SLEEP_ENABLE __HAL_RCC_OPAMP_CLK_SLEEP_ENABLE +#define __OPAMP_FORCE_RESET __HAL_RCC_OPAMP_FORCE_RESET +#define __OPAMP_RELEASE_RESET __HAL_RCC_OPAMP_RELEASE_RESET +#define __OTGFS_CLK_DISABLE __HAL_RCC_OTGFS_CLK_DISABLE +#define __OTGFS_CLK_ENABLE __HAL_RCC_OTGFS_CLK_ENABLE +#define __OTGFS_CLK_SLEEP_DISABLE __HAL_RCC_OTGFS_CLK_SLEEP_DISABLE +#define __OTGFS_CLK_SLEEP_ENABLE __HAL_RCC_OTGFS_CLK_SLEEP_ENABLE +#define __OTGFS_FORCE_RESET __HAL_RCC_OTGFS_FORCE_RESET +#define __OTGFS_RELEASE_RESET __HAL_RCC_OTGFS_RELEASE_RESET +#define __PWR_CLK_DISABLE __HAL_RCC_PWR_CLK_DISABLE +#define __PWR_CLK_ENABLE __HAL_RCC_PWR_CLK_ENABLE +#define __PWR_CLK_SLEEP_DISABLE __HAL_RCC_PWR_CLK_SLEEP_DISABLE +#define __PWR_CLK_SLEEP_ENABLE __HAL_RCC_PWR_CLK_SLEEP_ENABLE +#define __PWR_FORCE_RESET __HAL_RCC_PWR_FORCE_RESET +#define __PWR_RELEASE_RESET __HAL_RCC_PWR_RELEASE_RESET +#define __QSPI_CLK_DISABLE __HAL_RCC_QSPI_CLK_DISABLE +#define __QSPI_CLK_ENABLE __HAL_RCC_QSPI_CLK_ENABLE +#define __QSPI_CLK_SLEEP_DISABLE __HAL_RCC_QSPI_CLK_SLEEP_DISABLE +#define __QSPI_CLK_SLEEP_ENABLE __HAL_RCC_QSPI_CLK_SLEEP_ENABLE +#define __QSPI_FORCE_RESET __HAL_RCC_QSPI_FORCE_RESET +#define __QSPI_RELEASE_RESET __HAL_RCC_QSPI_RELEASE_RESET + +#if defined(STM32WB) +#define __HAL_RCC_QSPI_CLK_DISABLE __HAL_RCC_QUADSPI_CLK_DISABLE +#define __HAL_RCC_QSPI_CLK_ENABLE __HAL_RCC_QUADSPI_CLK_ENABLE +#define __HAL_RCC_QSPI_CLK_SLEEP_DISABLE __HAL_RCC_QUADSPI_CLK_SLEEP_DISABLE +#define __HAL_RCC_QSPI_CLK_SLEEP_ENABLE __HAL_RCC_QUADSPI_CLK_SLEEP_ENABLE +#define __HAL_RCC_QSPI_FORCE_RESET __HAL_RCC_QUADSPI_FORCE_RESET +#define __HAL_RCC_QSPI_RELEASE_RESET __HAL_RCC_QUADSPI_RELEASE_RESET +#define __HAL_RCC_QSPI_IS_CLK_ENABLED __HAL_RCC_QUADSPI_IS_CLK_ENABLED +#define __HAL_RCC_QSPI_IS_CLK_DISABLED __HAL_RCC_QUADSPI_IS_CLK_DISABLED +#define __HAL_RCC_QSPI_IS_CLK_SLEEP_ENABLED __HAL_RCC_QUADSPI_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_QSPI_IS_CLK_SLEEP_DISABLED __HAL_RCC_QUADSPI_IS_CLK_SLEEP_DISABLED +#define QSPI_IRQHandler QUADSPI_IRQHandler +#endif /* __HAL_RCC_QUADSPI_CLK_ENABLE */ + +#define __RNG_CLK_DISABLE __HAL_RCC_RNG_CLK_DISABLE +#define __RNG_CLK_ENABLE __HAL_RCC_RNG_CLK_ENABLE +#define __RNG_CLK_SLEEP_DISABLE __HAL_RCC_RNG_CLK_SLEEP_DISABLE +#define __RNG_CLK_SLEEP_ENABLE __HAL_RCC_RNG_CLK_SLEEP_ENABLE +#define __RNG_FORCE_RESET __HAL_RCC_RNG_FORCE_RESET +#define __RNG_RELEASE_RESET __HAL_RCC_RNG_RELEASE_RESET +#define __SAI1_CLK_DISABLE __HAL_RCC_SAI1_CLK_DISABLE +#define __SAI1_CLK_ENABLE __HAL_RCC_SAI1_CLK_ENABLE +#define __SAI1_CLK_SLEEP_DISABLE __HAL_RCC_SAI1_CLK_SLEEP_DISABLE +#define __SAI1_CLK_SLEEP_ENABLE __HAL_RCC_SAI1_CLK_SLEEP_ENABLE +#define __SAI1_FORCE_RESET __HAL_RCC_SAI1_FORCE_RESET +#define __SAI1_RELEASE_RESET __HAL_RCC_SAI1_RELEASE_RESET +#define __SAI2_CLK_DISABLE __HAL_RCC_SAI2_CLK_DISABLE +#define __SAI2_CLK_ENABLE __HAL_RCC_SAI2_CLK_ENABLE +#define __SAI2_CLK_SLEEP_DISABLE __HAL_RCC_SAI2_CLK_SLEEP_DISABLE +#define __SAI2_CLK_SLEEP_ENABLE __HAL_RCC_SAI2_CLK_SLEEP_ENABLE +#define __SAI2_FORCE_RESET __HAL_RCC_SAI2_FORCE_RESET +#define __SAI2_RELEASE_RESET __HAL_RCC_SAI2_RELEASE_RESET +#define __SDIO_CLK_DISABLE __HAL_RCC_SDIO_CLK_DISABLE +#define __SDIO_CLK_ENABLE __HAL_RCC_SDIO_CLK_ENABLE +#define __SDMMC_CLK_DISABLE __HAL_RCC_SDMMC_CLK_DISABLE +#define __SDMMC_CLK_ENABLE __HAL_RCC_SDMMC_CLK_ENABLE +#define __SDMMC_CLK_SLEEP_DISABLE __HAL_RCC_SDMMC_CLK_SLEEP_DISABLE +#define __SDMMC_CLK_SLEEP_ENABLE __HAL_RCC_SDMMC_CLK_SLEEP_ENABLE +#define __SDMMC_FORCE_RESET __HAL_RCC_SDMMC_FORCE_RESET +#define __SDMMC_RELEASE_RESET __HAL_RCC_SDMMC_RELEASE_RESET +#define __SPI1_CLK_DISABLE __HAL_RCC_SPI1_CLK_DISABLE +#define __SPI1_CLK_ENABLE __HAL_RCC_SPI1_CLK_ENABLE +#define __SPI1_CLK_SLEEP_DISABLE __HAL_RCC_SPI1_CLK_SLEEP_DISABLE +#define __SPI1_CLK_SLEEP_ENABLE __HAL_RCC_SPI1_CLK_SLEEP_ENABLE +#define __SPI1_FORCE_RESET __HAL_RCC_SPI1_FORCE_RESET +#define __SPI1_RELEASE_RESET __HAL_RCC_SPI1_RELEASE_RESET +#define __SPI2_CLK_DISABLE __HAL_RCC_SPI2_CLK_DISABLE +#define __SPI2_CLK_ENABLE __HAL_RCC_SPI2_CLK_ENABLE +#define __SPI2_CLK_SLEEP_DISABLE __HAL_RCC_SPI2_CLK_SLEEP_DISABLE +#define __SPI2_CLK_SLEEP_ENABLE __HAL_RCC_SPI2_CLK_SLEEP_ENABLE +#define __SPI2_FORCE_RESET __HAL_RCC_SPI2_FORCE_RESET +#define __SPI2_RELEASE_RESET __HAL_RCC_SPI2_RELEASE_RESET +#define __SPI3_CLK_DISABLE __HAL_RCC_SPI3_CLK_DISABLE +#define __SPI3_CLK_ENABLE __HAL_RCC_SPI3_CLK_ENABLE +#define __SPI3_CLK_SLEEP_DISABLE __HAL_RCC_SPI3_CLK_SLEEP_DISABLE +#define __SPI3_CLK_SLEEP_ENABLE __HAL_RCC_SPI3_CLK_SLEEP_ENABLE +#define __SPI3_FORCE_RESET __HAL_RCC_SPI3_FORCE_RESET +#define __SPI3_RELEASE_RESET __HAL_RCC_SPI3_RELEASE_RESET +#define __SRAM_CLK_DISABLE __HAL_RCC_SRAM_CLK_DISABLE +#define __SRAM_CLK_ENABLE __HAL_RCC_SRAM_CLK_ENABLE +#define __SRAM1_CLK_SLEEP_DISABLE __HAL_RCC_SRAM1_CLK_SLEEP_DISABLE +#define __SRAM1_CLK_SLEEP_ENABLE __HAL_RCC_SRAM1_CLK_SLEEP_ENABLE +#define __SRAM2_CLK_SLEEP_DISABLE __HAL_RCC_SRAM2_CLK_SLEEP_DISABLE +#define __SRAM2_CLK_SLEEP_ENABLE __HAL_RCC_SRAM2_CLK_SLEEP_ENABLE +#define __SWPMI1_CLK_DISABLE __HAL_RCC_SWPMI1_CLK_DISABLE +#define __SWPMI1_CLK_ENABLE __HAL_RCC_SWPMI1_CLK_ENABLE +#define __SWPMI1_CLK_SLEEP_DISABLE __HAL_RCC_SWPMI1_CLK_SLEEP_DISABLE +#define __SWPMI1_CLK_SLEEP_ENABLE __HAL_RCC_SWPMI1_CLK_SLEEP_ENABLE +#define __SWPMI1_FORCE_RESET __HAL_RCC_SWPMI1_FORCE_RESET +#define __SWPMI1_RELEASE_RESET __HAL_RCC_SWPMI1_RELEASE_RESET +#define __SYSCFG_CLK_DISABLE __HAL_RCC_SYSCFG_CLK_DISABLE +#define __SYSCFG_CLK_ENABLE __HAL_RCC_SYSCFG_CLK_ENABLE +#define __SYSCFG_CLK_SLEEP_DISABLE __HAL_RCC_SYSCFG_CLK_SLEEP_DISABLE +#define __SYSCFG_CLK_SLEEP_ENABLE __HAL_RCC_SYSCFG_CLK_SLEEP_ENABLE +#define __SYSCFG_FORCE_RESET __HAL_RCC_SYSCFG_FORCE_RESET +#define __SYSCFG_RELEASE_RESET __HAL_RCC_SYSCFG_RELEASE_RESET +#define __TIM1_CLK_DISABLE __HAL_RCC_TIM1_CLK_DISABLE +#define __TIM1_CLK_ENABLE __HAL_RCC_TIM1_CLK_ENABLE +#define __TIM1_CLK_SLEEP_DISABLE __HAL_RCC_TIM1_CLK_SLEEP_DISABLE +#define __TIM1_CLK_SLEEP_ENABLE __HAL_RCC_TIM1_CLK_SLEEP_ENABLE +#define __TIM1_FORCE_RESET __HAL_RCC_TIM1_FORCE_RESET +#define __TIM1_RELEASE_RESET __HAL_RCC_TIM1_RELEASE_RESET +#define __TIM10_CLK_DISABLE __HAL_RCC_TIM10_CLK_DISABLE +#define __TIM10_CLK_ENABLE __HAL_RCC_TIM10_CLK_ENABLE +#define __TIM10_FORCE_RESET __HAL_RCC_TIM10_FORCE_RESET +#define __TIM10_RELEASE_RESET __HAL_RCC_TIM10_RELEASE_RESET +#define __TIM11_CLK_DISABLE __HAL_RCC_TIM11_CLK_DISABLE +#define __TIM11_CLK_ENABLE __HAL_RCC_TIM11_CLK_ENABLE +#define __TIM11_FORCE_RESET __HAL_RCC_TIM11_FORCE_RESET +#define __TIM11_RELEASE_RESET __HAL_RCC_TIM11_RELEASE_RESET +#define __TIM12_CLK_DISABLE __HAL_RCC_TIM12_CLK_DISABLE +#define __TIM12_CLK_ENABLE __HAL_RCC_TIM12_CLK_ENABLE +#define __TIM12_FORCE_RESET __HAL_RCC_TIM12_FORCE_RESET +#define __TIM12_RELEASE_RESET __HAL_RCC_TIM12_RELEASE_RESET +#define __TIM13_CLK_DISABLE __HAL_RCC_TIM13_CLK_DISABLE +#define __TIM13_CLK_ENABLE __HAL_RCC_TIM13_CLK_ENABLE +#define __TIM13_FORCE_RESET __HAL_RCC_TIM13_FORCE_RESET +#define __TIM13_RELEASE_RESET __HAL_RCC_TIM13_RELEASE_RESET +#define __TIM14_CLK_DISABLE __HAL_RCC_TIM14_CLK_DISABLE +#define __TIM14_CLK_ENABLE __HAL_RCC_TIM14_CLK_ENABLE +#define __TIM14_FORCE_RESET __HAL_RCC_TIM14_FORCE_RESET +#define __TIM14_RELEASE_RESET __HAL_RCC_TIM14_RELEASE_RESET +#define __TIM15_CLK_DISABLE __HAL_RCC_TIM15_CLK_DISABLE +#define __TIM15_CLK_ENABLE __HAL_RCC_TIM15_CLK_ENABLE +#define __TIM15_CLK_SLEEP_DISABLE __HAL_RCC_TIM15_CLK_SLEEP_DISABLE +#define __TIM15_CLK_SLEEP_ENABLE __HAL_RCC_TIM15_CLK_SLEEP_ENABLE +#define __TIM15_FORCE_RESET __HAL_RCC_TIM15_FORCE_RESET +#define __TIM15_RELEASE_RESET __HAL_RCC_TIM15_RELEASE_RESET +#define __TIM16_CLK_DISABLE __HAL_RCC_TIM16_CLK_DISABLE +#define __TIM16_CLK_ENABLE __HAL_RCC_TIM16_CLK_ENABLE +#define __TIM16_CLK_SLEEP_DISABLE __HAL_RCC_TIM16_CLK_SLEEP_DISABLE +#define __TIM16_CLK_SLEEP_ENABLE __HAL_RCC_TIM16_CLK_SLEEP_ENABLE +#define __TIM16_FORCE_RESET __HAL_RCC_TIM16_FORCE_RESET +#define __TIM16_RELEASE_RESET __HAL_RCC_TIM16_RELEASE_RESET +#define __TIM17_CLK_DISABLE __HAL_RCC_TIM17_CLK_DISABLE +#define __TIM17_CLK_ENABLE __HAL_RCC_TIM17_CLK_ENABLE +#define __TIM17_CLK_SLEEP_DISABLE __HAL_RCC_TIM17_CLK_SLEEP_DISABLE +#define __TIM17_CLK_SLEEP_ENABLE __HAL_RCC_TIM17_CLK_SLEEP_ENABLE +#define __TIM17_FORCE_RESET __HAL_RCC_TIM17_FORCE_RESET +#define __TIM17_RELEASE_RESET __HAL_RCC_TIM17_RELEASE_RESET +#define __TIM2_CLK_DISABLE __HAL_RCC_TIM2_CLK_DISABLE +#define __TIM2_CLK_ENABLE __HAL_RCC_TIM2_CLK_ENABLE +#define __TIM2_CLK_SLEEP_DISABLE __HAL_RCC_TIM2_CLK_SLEEP_DISABLE +#define __TIM2_CLK_SLEEP_ENABLE __HAL_RCC_TIM2_CLK_SLEEP_ENABLE +#define __TIM2_FORCE_RESET __HAL_RCC_TIM2_FORCE_RESET +#define __TIM2_RELEASE_RESET __HAL_RCC_TIM2_RELEASE_RESET +#define __TIM3_CLK_DISABLE __HAL_RCC_TIM3_CLK_DISABLE +#define __TIM3_CLK_ENABLE __HAL_RCC_TIM3_CLK_ENABLE +#define __TIM3_CLK_SLEEP_DISABLE __HAL_RCC_TIM3_CLK_SLEEP_DISABLE +#define __TIM3_CLK_SLEEP_ENABLE __HAL_RCC_TIM3_CLK_SLEEP_ENABLE +#define __TIM3_FORCE_RESET __HAL_RCC_TIM3_FORCE_RESET +#define __TIM3_RELEASE_RESET __HAL_RCC_TIM3_RELEASE_RESET +#define __TIM4_CLK_DISABLE __HAL_RCC_TIM4_CLK_DISABLE +#define __TIM4_CLK_ENABLE __HAL_RCC_TIM4_CLK_ENABLE +#define __TIM4_CLK_SLEEP_DISABLE __HAL_RCC_TIM4_CLK_SLEEP_DISABLE +#define __TIM4_CLK_SLEEP_ENABLE __HAL_RCC_TIM4_CLK_SLEEP_ENABLE +#define __TIM4_FORCE_RESET __HAL_RCC_TIM4_FORCE_RESET +#define __TIM4_RELEASE_RESET __HAL_RCC_TIM4_RELEASE_RESET +#define __TIM5_CLK_DISABLE __HAL_RCC_TIM5_CLK_DISABLE +#define __TIM5_CLK_ENABLE __HAL_RCC_TIM5_CLK_ENABLE +#define __TIM5_CLK_SLEEP_DISABLE __HAL_RCC_TIM5_CLK_SLEEP_DISABLE +#define __TIM5_CLK_SLEEP_ENABLE __HAL_RCC_TIM5_CLK_SLEEP_ENABLE +#define __TIM5_FORCE_RESET __HAL_RCC_TIM5_FORCE_RESET +#define __TIM5_RELEASE_RESET __HAL_RCC_TIM5_RELEASE_RESET +#define __TIM6_CLK_DISABLE __HAL_RCC_TIM6_CLK_DISABLE +#define __TIM6_CLK_ENABLE __HAL_RCC_TIM6_CLK_ENABLE +#define __TIM6_CLK_SLEEP_DISABLE __HAL_RCC_TIM6_CLK_SLEEP_DISABLE +#define __TIM6_CLK_SLEEP_ENABLE __HAL_RCC_TIM6_CLK_SLEEP_ENABLE +#define __TIM6_FORCE_RESET __HAL_RCC_TIM6_FORCE_RESET +#define __TIM6_RELEASE_RESET __HAL_RCC_TIM6_RELEASE_RESET +#define __TIM7_CLK_DISABLE __HAL_RCC_TIM7_CLK_DISABLE +#define __TIM7_CLK_ENABLE __HAL_RCC_TIM7_CLK_ENABLE +#define __TIM7_CLK_SLEEP_DISABLE __HAL_RCC_TIM7_CLK_SLEEP_DISABLE +#define __TIM7_CLK_SLEEP_ENABLE __HAL_RCC_TIM7_CLK_SLEEP_ENABLE +#define __TIM7_FORCE_RESET __HAL_RCC_TIM7_FORCE_RESET +#define __TIM7_RELEASE_RESET __HAL_RCC_TIM7_RELEASE_RESET +#define __TIM8_CLK_DISABLE __HAL_RCC_TIM8_CLK_DISABLE +#define __TIM8_CLK_ENABLE __HAL_RCC_TIM8_CLK_ENABLE +#define __TIM8_CLK_SLEEP_DISABLE __HAL_RCC_TIM8_CLK_SLEEP_DISABLE +#define __TIM8_CLK_SLEEP_ENABLE __HAL_RCC_TIM8_CLK_SLEEP_ENABLE +#define __TIM8_FORCE_RESET __HAL_RCC_TIM8_FORCE_RESET +#define __TIM8_RELEASE_RESET __HAL_RCC_TIM8_RELEASE_RESET +#define __TIM9_CLK_DISABLE __HAL_RCC_TIM9_CLK_DISABLE +#define __TIM9_CLK_ENABLE __HAL_RCC_TIM9_CLK_ENABLE +#define __TIM9_FORCE_RESET __HAL_RCC_TIM9_FORCE_RESET +#define __TIM9_RELEASE_RESET __HAL_RCC_TIM9_RELEASE_RESET +#define __TSC_CLK_DISABLE __HAL_RCC_TSC_CLK_DISABLE +#define __TSC_CLK_ENABLE __HAL_RCC_TSC_CLK_ENABLE +#define __TSC_CLK_SLEEP_DISABLE __HAL_RCC_TSC_CLK_SLEEP_DISABLE +#define __TSC_CLK_SLEEP_ENABLE __HAL_RCC_TSC_CLK_SLEEP_ENABLE +#define __TSC_FORCE_RESET __HAL_RCC_TSC_FORCE_RESET +#define __TSC_RELEASE_RESET __HAL_RCC_TSC_RELEASE_RESET +#define __UART4_CLK_DISABLE __HAL_RCC_UART4_CLK_DISABLE +#define __UART4_CLK_ENABLE __HAL_RCC_UART4_CLK_ENABLE +#define __UART4_CLK_SLEEP_DISABLE __HAL_RCC_UART4_CLK_SLEEP_DISABLE +#define __UART4_CLK_SLEEP_ENABLE __HAL_RCC_UART4_CLK_SLEEP_ENABLE +#define __UART4_FORCE_RESET __HAL_RCC_UART4_FORCE_RESET +#define __UART4_RELEASE_RESET __HAL_RCC_UART4_RELEASE_RESET +#define __UART5_CLK_DISABLE __HAL_RCC_UART5_CLK_DISABLE +#define __UART5_CLK_ENABLE __HAL_RCC_UART5_CLK_ENABLE +#define __UART5_CLK_SLEEP_DISABLE __HAL_RCC_UART5_CLK_SLEEP_DISABLE +#define __UART5_CLK_SLEEP_ENABLE __HAL_RCC_UART5_CLK_SLEEP_ENABLE +#define __UART5_FORCE_RESET __HAL_RCC_UART5_FORCE_RESET +#define __UART5_RELEASE_RESET __HAL_RCC_UART5_RELEASE_RESET +#define __USART1_CLK_DISABLE __HAL_RCC_USART1_CLK_DISABLE +#define __USART1_CLK_ENABLE __HAL_RCC_USART1_CLK_ENABLE +#define __USART1_CLK_SLEEP_DISABLE __HAL_RCC_USART1_CLK_SLEEP_DISABLE +#define __USART1_CLK_SLEEP_ENABLE __HAL_RCC_USART1_CLK_SLEEP_ENABLE +#define __USART1_FORCE_RESET __HAL_RCC_USART1_FORCE_RESET +#define __USART1_RELEASE_RESET __HAL_RCC_USART1_RELEASE_RESET +#define __USART2_CLK_DISABLE __HAL_RCC_USART2_CLK_DISABLE +#define __USART2_CLK_ENABLE __HAL_RCC_USART2_CLK_ENABLE +#define __USART2_CLK_SLEEP_DISABLE __HAL_RCC_USART2_CLK_SLEEP_DISABLE +#define __USART2_CLK_SLEEP_ENABLE __HAL_RCC_USART2_CLK_SLEEP_ENABLE +#define __USART2_FORCE_RESET __HAL_RCC_USART2_FORCE_RESET +#define __USART2_RELEASE_RESET __HAL_RCC_USART2_RELEASE_RESET +#define __USART3_CLK_DISABLE __HAL_RCC_USART3_CLK_DISABLE +#define __USART3_CLK_ENABLE __HAL_RCC_USART3_CLK_ENABLE +#define __USART3_CLK_SLEEP_DISABLE __HAL_RCC_USART3_CLK_SLEEP_DISABLE +#define __USART3_CLK_SLEEP_ENABLE __HAL_RCC_USART3_CLK_SLEEP_ENABLE +#define __USART3_FORCE_RESET __HAL_RCC_USART3_FORCE_RESET +#define __USART3_RELEASE_RESET __HAL_RCC_USART3_RELEASE_RESET +#define __USART4_CLK_DISABLE __HAL_RCC_UART4_CLK_DISABLE +#define __USART4_CLK_ENABLE __HAL_RCC_UART4_CLK_ENABLE +#define __USART4_CLK_SLEEP_ENABLE __HAL_RCC_UART4_CLK_SLEEP_ENABLE +#define __USART4_CLK_SLEEP_DISABLE __HAL_RCC_UART4_CLK_SLEEP_DISABLE +#define __USART4_FORCE_RESET __HAL_RCC_UART4_FORCE_RESET +#define __USART4_RELEASE_RESET __HAL_RCC_UART4_RELEASE_RESET +#define __USART5_CLK_DISABLE __HAL_RCC_UART5_CLK_DISABLE +#define __USART5_CLK_ENABLE __HAL_RCC_UART5_CLK_ENABLE +#define __USART5_CLK_SLEEP_ENABLE __HAL_RCC_UART5_CLK_SLEEP_ENABLE +#define __USART5_CLK_SLEEP_DISABLE __HAL_RCC_UART5_CLK_SLEEP_DISABLE +#define __USART5_FORCE_RESET __HAL_RCC_UART5_FORCE_RESET +#define __USART5_RELEASE_RESET __HAL_RCC_UART5_RELEASE_RESET +#define __USART7_CLK_DISABLE __HAL_RCC_UART7_CLK_DISABLE +#define __USART7_CLK_ENABLE __HAL_RCC_UART7_CLK_ENABLE +#define __USART7_FORCE_RESET __HAL_RCC_UART7_FORCE_RESET +#define __USART7_RELEASE_RESET __HAL_RCC_UART7_RELEASE_RESET +#define __USART8_CLK_DISABLE __HAL_RCC_UART8_CLK_DISABLE +#define __USART8_CLK_ENABLE __HAL_RCC_UART8_CLK_ENABLE +#define __USART8_FORCE_RESET __HAL_RCC_UART8_FORCE_RESET +#define __USART8_RELEASE_RESET __HAL_RCC_UART8_RELEASE_RESET +#define __USB_CLK_DISABLE __HAL_RCC_USB_CLK_DISABLE +#define __USB_CLK_ENABLE __HAL_RCC_USB_CLK_ENABLE +#define __USB_FORCE_RESET __HAL_RCC_USB_FORCE_RESET +#define __USB_CLK_SLEEP_ENABLE __HAL_RCC_USB_CLK_SLEEP_ENABLE +#define __USB_CLK_SLEEP_DISABLE __HAL_RCC_USB_CLK_SLEEP_DISABLE +#define __USB_OTG_FS_CLK_DISABLE __HAL_RCC_USB_OTG_FS_CLK_DISABLE +#define __USB_OTG_FS_CLK_ENABLE __HAL_RCC_USB_OTG_FS_CLK_ENABLE +#define __USB_RELEASE_RESET __HAL_RCC_USB_RELEASE_RESET + +#if defined(STM32H7) +#define __HAL_RCC_WWDG_CLK_DISABLE __HAL_RCC_WWDG1_CLK_DISABLE +#define __HAL_RCC_WWDG_CLK_ENABLE __HAL_RCC_WWDG1_CLK_ENABLE +#define __HAL_RCC_WWDG_CLK_SLEEP_DISABLE __HAL_RCC_WWDG1_CLK_SLEEP_DISABLE +#define __HAL_RCC_WWDG_CLK_SLEEP_ENABLE __HAL_RCC_WWDG1_CLK_SLEEP_ENABLE + +#define __HAL_RCC_WWDG_FORCE_RESET ((void)0U) /* Not available on the STM32H7*/ +#define __HAL_RCC_WWDG_RELEASE_RESET ((void)0U) /* Not available on the STM32H7*/ + + +#define __HAL_RCC_WWDG_IS_CLK_ENABLED __HAL_RCC_WWDG1_IS_CLK_ENABLED +#define __HAL_RCC_WWDG_IS_CLK_DISABLED __HAL_RCC_WWDG1_IS_CLK_DISABLED +#define RCC_SPI4CLKSOURCE_D2PCLK1 RCC_SPI4CLKSOURCE_D2PCLK2 +#define RCC_SPI5CLKSOURCE_D2PCLK1 RCC_SPI5CLKSOURCE_D2PCLK2 +#define RCC_SPI45CLKSOURCE_D2PCLK1 RCC_SPI45CLKSOURCE_D2PCLK2 +#define RCC_SPI45CLKSOURCE_CDPCLK1 RCC_SPI45CLKSOURCE_CDPCLK2 +#define RCC_SPI45CLKSOURCE_PCLK1 RCC_SPI45CLKSOURCE_PCLK2 +#endif + +#define __WWDG_CLK_DISABLE __HAL_RCC_WWDG_CLK_DISABLE +#define __WWDG_CLK_ENABLE __HAL_RCC_WWDG_CLK_ENABLE +#define __WWDG_CLK_SLEEP_DISABLE __HAL_RCC_WWDG_CLK_SLEEP_DISABLE +#define __WWDG_CLK_SLEEP_ENABLE __HAL_RCC_WWDG_CLK_SLEEP_ENABLE +#define __WWDG_FORCE_RESET __HAL_RCC_WWDG_FORCE_RESET +#define __WWDG_RELEASE_RESET __HAL_RCC_WWDG_RELEASE_RESET + +#define __TIM21_CLK_ENABLE __HAL_RCC_TIM21_CLK_ENABLE +#define __TIM21_CLK_DISABLE __HAL_RCC_TIM21_CLK_DISABLE +#define __TIM21_FORCE_RESET __HAL_RCC_TIM21_FORCE_RESET +#define __TIM21_RELEASE_RESET __HAL_RCC_TIM21_RELEASE_RESET +#define __TIM21_CLK_SLEEP_ENABLE __HAL_RCC_TIM21_CLK_SLEEP_ENABLE +#define __TIM21_CLK_SLEEP_DISABLE __HAL_RCC_TIM21_CLK_SLEEP_DISABLE +#define __TIM22_CLK_ENABLE __HAL_RCC_TIM22_CLK_ENABLE +#define __TIM22_CLK_DISABLE __HAL_RCC_TIM22_CLK_DISABLE +#define __TIM22_FORCE_RESET __HAL_RCC_TIM22_FORCE_RESET +#define __TIM22_RELEASE_RESET __HAL_RCC_TIM22_RELEASE_RESET +#define __TIM22_CLK_SLEEP_ENABLE __HAL_RCC_TIM22_CLK_SLEEP_ENABLE +#define __TIM22_CLK_SLEEP_DISABLE __HAL_RCC_TIM22_CLK_SLEEP_DISABLE +#define __CRS_CLK_DISABLE __HAL_RCC_CRS_CLK_DISABLE +#define __CRS_CLK_ENABLE __HAL_RCC_CRS_CLK_ENABLE +#define __CRS_CLK_SLEEP_DISABLE __HAL_RCC_CRS_CLK_SLEEP_DISABLE +#define __CRS_CLK_SLEEP_ENABLE __HAL_RCC_CRS_CLK_SLEEP_ENABLE +#define __CRS_FORCE_RESET __HAL_RCC_CRS_FORCE_RESET +#define __CRS_RELEASE_RESET __HAL_RCC_CRS_RELEASE_RESET +#define __RCC_BACKUPRESET_FORCE __HAL_RCC_BACKUPRESET_FORCE +#define __RCC_BACKUPRESET_RELEASE __HAL_RCC_BACKUPRESET_RELEASE + +#define __USB_OTG_FS_FORCE_RESET __HAL_RCC_USB_OTG_FS_FORCE_RESET +#define __USB_OTG_FS_RELEASE_RESET __HAL_RCC_USB_OTG_FS_RELEASE_RESET +#define __USB_OTG_FS_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_FS_CLK_SLEEP_ENABLE +#define __USB_OTG_FS_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_FS_CLK_SLEEP_DISABLE +#define __USB_OTG_HS_CLK_DISABLE __HAL_RCC_USB_OTG_HS_CLK_DISABLE +#define __USB_OTG_HS_CLK_ENABLE __HAL_RCC_USB_OTG_HS_CLK_ENABLE +#define __USB_OTG_HS_ULPI_CLK_ENABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE +#define __USB_OTG_HS_ULPI_CLK_DISABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_DISABLE +#define __TIM9_CLK_SLEEP_ENABLE __HAL_RCC_TIM9_CLK_SLEEP_ENABLE +#define __TIM9_CLK_SLEEP_DISABLE __HAL_RCC_TIM9_CLK_SLEEP_DISABLE +#define __TIM10_CLK_SLEEP_ENABLE __HAL_RCC_TIM10_CLK_SLEEP_ENABLE +#define __TIM10_CLK_SLEEP_DISABLE __HAL_RCC_TIM10_CLK_SLEEP_DISABLE +#define __TIM11_CLK_SLEEP_ENABLE __HAL_RCC_TIM11_CLK_SLEEP_ENABLE +#define __TIM11_CLK_SLEEP_DISABLE __HAL_RCC_TIM11_CLK_SLEEP_DISABLE +#define __ETHMACPTP_CLK_SLEEP_ENABLE __HAL_RCC_ETHMACPTP_CLK_SLEEP_ENABLE +#define __ETHMACPTP_CLK_SLEEP_DISABLE __HAL_RCC_ETHMACPTP_CLK_SLEEP_DISABLE +#define __ETHMACPTP_CLK_ENABLE __HAL_RCC_ETHMACPTP_CLK_ENABLE +#define __ETHMACPTP_CLK_DISABLE __HAL_RCC_ETHMACPTP_CLK_DISABLE +#define __HASH_CLK_ENABLE __HAL_RCC_HASH_CLK_ENABLE +#define __HASH_FORCE_RESET __HAL_RCC_HASH_FORCE_RESET +#define __HASH_RELEASE_RESET __HAL_RCC_HASH_RELEASE_RESET +#define __HASH_CLK_SLEEP_ENABLE __HAL_RCC_HASH_CLK_SLEEP_ENABLE +#define __HASH_CLK_SLEEP_DISABLE __HAL_RCC_HASH_CLK_SLEEP_DISABLE +#define __HASH_CLK_DISABLE __HAL_RCC_HASH_CLK_DISABLE +#define __SPI5_CLK_ENABLE __HAL_RCC_SPI5_CLK_ENABLE +#define __SPI5_CLK_DISABLE __HAL_RCC_SPI5_CLK_DISABLE +#define __SPI5_FORCE_RESET __HAL_RCC_SPI5_FORCE_RESET +#define __SPI5_RELEASE_RESET __HAL_RCC_SPI5_RELEASE_RESET +#define __SPI5_CLK_SLEEP_ENABLE __HAL_RCC_SPI5_CLK_SLEEP_ENABLE +#define __SPI5_CLK_SLEEP_DISABLE __HAL_RCC_SPI5_CLK_SLEEP_DISABLE +#define __SPI6_CLK_ENABLE __HAL_RCC_SPI6_CLK_ENABLE +#define __SPI6_CLK_DISABLE __HAL_RCC_SPI6_CLK_DISABLE +#define __SPI6_FORCE_RESET __HAL_RCC_SPI6_FORCE_RESET +#define __SPI6_RELEASE_RESET __HAL_RCC_SPI6_RELEASE_RESET +#define __SPI6_CLK_SLEEP_ENABLE __HAL_RCC_SPI6_CLK_SLEEP_ENABLE +#define __SPI6_CLK_SLEEP_DISABLE __HAL_RCC_SPI6_CLK_SLEEP_DISABLE +#define __LTDC_CLK_ENABLE __HAL_RCC_LTDC_CLK_ENABLE +#define __LTDC_CLK_DISABLE __HAL_RCC_LTDC_CLK_DISABLE +#define __LTDC_FORCE_RESET __HAL_RCC_LTDC_FORCE_RESET +#define __LTDC_RELEASE_RESET __HAL_RCC_LTDC_RELEASE_RESET +#define __LTDC_CLK_SLEEP_ENABLE __HAL_RCC_LTDC_CLK_SLEEP_ENABLE +#define __ETHMAC_CLK_SLEEP_ENABLE __HAL_RCC_ETHMAC_CLK_SLEEP_ENABLE +#define __ETHMAC_CLK_SLEEP_DISABLE __HAL_RCC_ETHMAC_CLK_SLEEP_DISABLE +#define __ETHMACTX_CLK_SLEEP_ENABLE __HAL_RCC_ETHMACTX_CLK_SLEEP_ENABLE +#define __ETHMACTX_CLK_SLEEP_DISABLE __HAL_RCC_ETHMACTX_CLK_SLEEP_DISABLE +#define __ETHMACRX_CLK_SLEEP_ENABLE __HAL_RCC_ETHMACRX_CLK_SLEEP_ENABLE +#define __ETHMACRX_CLK_SLEEP_DISABLE __HAL_RCC_ETHMACRX_CLK_SLEEP_DISABLE +#define __TIM12_CLK_SLEEP_ENABLE __HAL_RCC_TIM12_CLK_SLEEP_ENABLE +#define __TIM12_CLK_SLEEP_DISABLE __HAL_RCC_TIM12_CLK_SLEEP_DISABLE +#define __TIM13_CLK_SLEEP_ENABLE __HAL_RCC_TIM13_CLK_SLEEP_ENABLE +#define __TIM13_CLK_SLEEP_DISABLE __HAL_RCC_TIM13_CLK_SLEEP_DISABLE +#define __TIM14_CLK_SLEEP_ENABLE __HAL_RCC_TIM14_CLK_SLEEP_ENABLE +#define __TIM14_CLK_SLEEP_DISABLE __HAL_RCC_TIM14_CLK_SLEEP_DISABLE +#define __BKPSRAM_CLK_ENABLE __HAL_RCC_BKPSRAM_CLK_ENABLE +#define __BKPSRAM_CLK_DISABLE __HAL_RCC_BKPSRAM_CLK_DISABLE +#define __BKPSRAM_CLK_SLEEP_ENABLE __HAL_RCC_BKPSRAM_CLK_SLEEP_ENABLE +#define __BKPSRAM_CLK_SLEEP_DISABLE __HAL_RCC_BKPSRAM_CLK_SLEEP_DISABLE +#define __CCMDATARAMEN_CLK_ENABLE __HAL_RCC_CCMDATARAMEN_CLK_ENABLE +#define __CCMDATARAMEN_CLK_DISABLE __HAL_RCC_CCMDATARAMEN_CLK_DISABLE +#define __USART6_CLK_ENABLE __HAL_RCC_USART6_CLK_ENABLE +#define __USART6_CLK_DISABLE __HAL_RCC_USART6_CLK_DISABLE +#define __USART6_FORCE_RESET __HAL_RCC_USART6_FORCE_RESET +#define __USART6_RELEASE_RESET __HAL_RCC_USART6_RELEASE_RESET +#define __USART6_CLK_SLEEP_ENABLE __HAL_RCC_USART6_CLK_SLEEP_ENABLE +#define __USART6_CLK_SLEEP_DISABLE __HAL_RCC_USART6_CLK_SLEEP_DISABLE +#define __SPI4_CLK_ENABLE __HAL_RCC_SPI4_CLK_ENABLE +#define __SPI4_CLK_DISABLE __HAL_RCC_SPI4_CLK_DISABLE +#define __SPI4_FORCE_RESET __HAL_RCC_SPI4_FORCE_RESET +#define __SPI4_RELEASE_RESET __HAL_RCC_SPI4_RELEASE_RESET +#define __SPI4_CLK_SLEEP_ENABLE __HAL_RCC_SPI4_CLK_SLEEP_ENABLE +#define __SPI4_CLK_SLEEP_DISABLE __HAL_RCC_SPI4_CLK_SLEEP_DISABLE +#define __GPIOI_CLK_ENABLE __HAL_RCC_GPIOI_CLK_ENABLE +#define __GPIOI_CLK_DISABLE __HAL_RCC_GPIOI_CLK_DISABLE +#define __GPIOI_FORCE_RESET __HAL_RCC_GPIOI_FORCE_RESET +#define __GPIOI_RELEASE_RESET __HAL_RCC_GPIOI_RELEASE_RESET +#define __GPIOI_CLK_SLEEP_ENABLE __HAL_RCC_GPIOI_CLK_SLEEP_ENABLE +#define __GPIOI_CLK_SLEEP_DISABLE __HAL_RCC_GPIOI_CLK_SLEEP_DISABLE +#define __GPIOJ_CLK_ENABLE __HAL_RCC_GPIOJ_CLK_ENABLE +#define __GPIOJ_CLK_DISABLE __HAL_RCC_GPIOJ_CLK_DISABLE +#define __GPIOJ_FORCE_RESET __HAL_RCC_GPIOJ_FORCE_RESET +#define __GPIOJ_RELEASE_RESET __HAL_RCC_GPIOJ_RELEASE_RESET +#define __GPIOJ_CLK_SLEEP_ENABLE __HAL_RCC_GPIOJ_CLK_SLEEP_ENABLE +#define __GPIOJ_CLK_SLEEP_DISABLE __HAL_RCC_GPIOJ_CLK_SLEEP_DISABLE +#define __GPIOK_CLK_ENABLE __HAL_RCC_GPIOK_CLK_ENABLE +#define __GPIOK_CLK_DISABLE __HAL_RCC_GPIOK_CLK_DISABLE +#define __GPIOK_RELEASE_RESET __HAL_RCC_GPIOK_RELEASE_RESET +#define __GPIOK_CLK_SLEEP_ENABLE __HAL_RCC_GPIOK_CLK_SLEEP_ENABLE +#define __GPIOK_CLK_SLEEP_DISABLE __HAL_RCC_GPIOK_CLK_SLEEP_DISABLE +#define __ETH_CLK_ENABLE __HAL_RCC_ETH_CLK_ENABLE +#define __ETH_CLK_DISABLE __HAL_RCC_ETH_CLK_DISABLE +#define __DCMI_CLK_ENABLE __HAL_RCC_DCMI_CLK_ENABLE +#define __DCMI_CLK_DISABLE __HAL_RCC_DCMI_CLK_DISABLE +#define __DCMI_FORCE_RESET __HAL_RCC_DCMI_FORCE_RESET +#define __DCMI_RELEASE_RESET __HAL_RCC_DCMI_RELEASE_RESET +#define __DCMI_CLK_SLEEP_ENABLE __HAL_RCC_DCMI_CLK_SLEEP_ENABLE +#define __DCMI_CLK_SLEEP_DISABLE __HAL_RCC_DCMI_CLK_SLEEP_DISABLE +#define __UART7_CLK_ENABLE __HAL_RCC_UART7_CLK_ENABLE +#define __UART7_CLK_DISABLE __HAL_RCC_UART7_CLK_DISABLE +#define __UART7_RELEASE_RESET __HAL_RCC_UART7_RELEASE_RESET +#define __UART7_FORCE_RESET __HAL_RCC_UART7_FORCE_RESET +#define __UART7_CLK_SLEEP_ENABLE __HAL_RCC_UART7_CLK_SLEEP_ENABLE +#define __UART7_CLK_SLEEP_DISABLE __HAL_RCC_UART7_CLK_SLEEP_DISABLE +#define __UART8_CLK_ENABLE __HAL_RCC_UART8_CLK_ENABLE +#define __UART8_CLK_DISABLE __HAL_RCC_UART8_CLK_DISABLE +#define __UART8_FORCE_RESET __HAL_RCC_UART8_FORCE_RESET +#define __UART8_RELEASE_RESET __HAL_RCC_UART8_RELEASE_RESET +#define __UART8_CLK_SLEEP_ENABLE __HAL_RCC_UART8_CLK_SLEEP_ENABLE +#define __UART8_CLK_SLEEP_DISABLE __HAL_RCC_UART8_CLK_SLEEP_DISABLE +#define __OTGHS_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE +#define __OTGHS_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE +#define __OTGHS_FORCE_RESET __HAL_RCC_USB_OTG_HS_FORCE_RESET +#define __OTGHS_RELEASE_RESET __HAL_RCC_USB_OTG_HS_RELEASE_RESET +#define __OTGHSULPI_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE +#define __OTGHSULPI_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE +#define __HAL_RCC_OTGHS_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE +#define __HAL_RCC_OTGHS_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE +#define __HAL_RCC_OTGHS_IS_CLK_SLEEP_ENABLED __HAL_RCC_USB_OTG_HS_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_OTGHS_IS_CLK_SLEEP_DISABLED __HAL_RCC_USB_OTG_HS_IS_CLK_SLEEP_DISABLED +#define __HAL_RCC_OTGHS_FORCE_RESET __HAL_RCC_USB_OTG_HS_FORCE_RESET +#define __HAL_RCC_OTGHS_RELEASE_RESET __HAL_RCC_USB_OTG_HS_RELEASE_RESET +#define __HAL_RCC_OTGHSULPI_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE +#define __HAL_RCC_OTGHSULPI_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE +#define __HAL_RCC_OTGHSULPI_IS_CLK_SLEEP_ENABLED __HAL_RCC_USB_OTG_HS_ULPI_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_OTGHSULPI_IS_CLK_SLEEP_DISABLED __HAL_RCC_USB_OTG_HS_ULPI_IS_CLK_SLEEP_DISABLED +#define __SRAM3_CLK_SLEEP_ENABLE __HAL_RCC_SRAM3_CLK_SLEEP_ENABLE +#define __CAN2_CLK_SLEEP_ENABLE __HAL_RCC_CAN2_CLK_SLEEP_ENABLE +#define __CAN2_CLK_SLEEP_DISABLE __HAL_RCC_CAN2_CLK_SLEEP_DISABLE +#define __DAC_CLK_SLEEP_ENABLE __HAL_RCC_DAC_CLK_SLEEP_ENABLE +#define __DAC_CLK_SLEEP_DISABLE __HAL_RCC_DAC_CLK_SLEEP_DISABLE +#define __ADC2_CLK_SLEEP_ENABLE __HAL_RCC_ADC2_CLK_SLEEP_ENABLE +#define __ADC2_CLK_SLEEP_DISABLE __HAL_RCC_ADC2_CLK_SLEEP_DISABLE +#define __ADC3_CLK_SLEEP_ENABLE __HAL_RCC_ADC3_CLK_SLEEP_ENABLE +#define __ADC3_CLK_SLEEP_DISABLE __HAL_RCC_ADC3_CLK_SLEEP_DISABLE +#define __FSMC_FORCE_RESET __HAL_RCC_FSMC_FORCE_RESET +#define __FSMC_RELEASE_RESET __HAL_RCC_FSMC_RELEASE_RESET +#define __FSMC_CLK_SLEEP_ENABLE __HAL_RCC_FSMC_CLK_SLEEP_ENABLE +#define __FSMC_CLK_SLEEP_DISABLE __HAL_RCC_FSMC_CLK_SLEEP_DISABLE +#define __SDIO_FORCE_RESET __HAL_RCC_SDIO_FORCE_RESET +#define __SDIO_RELEASE_RESET __HAL_RCC_SDIO_RELEASE_RESET +#define __SDIO_CLK_SLEEP_DISABLE __HAL_RCC_SDIO_CLK_SLEEP_DISABLE +#define __SDIO_CLK_SLEEP_ENABLE __HAL_RCC_SDIO_CLK_SLEEP_ENABLE +#define __DMA2D_CLK_ENABLE __HAL_RCC_DMA2D_CLK_ENABLE +#define __DMA2D_CLK_DISABLE __HAL_RCC_DMA2D_CLK_DISABLE +#define __DMA2D_FORCE_RESET __HAL_RCC_DMA2D_FORCE_RESET +#define __DMA2D_RELEASE_RESET __HAL_RCC_DMA2D_RELEASE_RESET +#define __DMA2D_CLK_SLEEP_ENABLE __HAL_RCC_DMA2D_CLK_SLEEP_ENABLE +#define __DMA2D_CLK_SLEEP_DISABLE __HAL_RCC_DMA2D_CLK_SLEEP_DISABLE + +/* alias define maintained for legacy */ +#define __HAL_RCC_OTGFS_FORCE_RESET __HAL_RCC_USB_OTG_FS_FORCE_RESET +#define __HAL_RCC_OTGFS_RELEASE_RESET __HAL_RCC_USB_OTG_FS_RELEASE_RESET + +#define __ADC12_CLK_ENABLE __HAL_RCC_ADC12_CLK_ENABLE +#define __ADC12_CLK_DISABLE __HAL_RCC_ADC12_CLK_DISABLE +#define __ADC34_CLK_ENABLE __HAL_RCC_ADC34_CLK_ENABLE +#define __ADC34_CLK_DISABLE __HAL_RCC_ADC34_CLK_DISABLE +#define __DAC2_CLK_ENABLE __HAL_RCC_DAC2_CLK_ENABLE +#define __DAC2_CLK_DISABLE __HAL_RCC_DAC2_CLK_DISABLE +#define __TIM18_CLK_ENABLE __HAL_RCC_TIM18_CLK_ENABLE +#define __TIM18_CLK_DISABLE __HAL_RCC_TIM18_CLK_DISABLE +#define __TIM19_CLK_ENABLE __HAL_RCC_TIM19_CLK_ENABLE +#define __TIM19_CLK_DISABLE __HAL_RCC_TIM19_CLK_DISABLE +#define __TIM20_CLK_ENABLE __HAL_RCC_TIM20_CLK_ENABLE +#define __TIM20_CLK_DISABLE __HAL_RCC_TIM20_CLK_DISABLE +#define __HRTIM1_CLK_ENABLE __HAL_RCC_HRTIM1_CLK_ENABLE +#define __HRTIM1_CLK_DISABLE __HAL_RCC_HRTIM1_CLK_DISABLE +#define __SDADC1_CLK_ENABLE __HAL_RCC_SDADC1_CLK_ENABLE +#define __SDADC2_CLK_ENABLE __HAL_RCC_SDADC2_CLK_ENABLE +#define __SDADC3_CLK_ENABLE __HAL_RCC_SDADC3_CLK_ENABLE +#define __SDADC1_CLK_DISABLE __HAL_RCC_SDADC1_CLK_DISABLE +#define __SDADC2_CLK_DISABLE __HAL_RCC_SDADC2_CLK_DISABLE +#define __SDADC3_CLK_DISABLE __HAL_RCC_SDADC3_CLK_DISABLE + +#define __ADC12_FORCE_RESET __HAL_RCC_ADC12_FORCE_RESET +#define __ADC12_RELEASE_RESET __HAL_RCC_ADC12_RELEASE_RESET +#define __ADC34_FORCE_RESET __HAL_RCC_ADC34_FORCE_RESET +#define __ADC34_RELEASE_RESET __HAL_RCC_ADC34_RELEASE_RESET +#define __DAC2_FORCE_RESET __HAL_RCC_DAC2_FORCE_RESET +#define __DAC2_RELEASE_RESET __HAL_RCC_DAC2_RELEASE_RESET +#define __TIM18_FORCE_RESET __HAL_RCC_TIM18_FORCE_RESET +#define __TIM18_RELEASE_RESET __HAL_RCC_TIM18_RELEASE_RESET +#define __TIM19_FORCE_RESET __HAL_RCC_TIM19_FORCE_RESET +#define __TIM19_RELEASE_RESET __HAL_RCC_TIM19_RELEASE_RESET +#define __TIM20_FORCE_RESET __HAL_RCC_TIM20_FORCE_RESET +#define __TIM20_RELEASE_RESET __HAL_RCC_TIM20_RELEASE_RESET +#define __HRTIM1_FORCE_RESET __HAL_RCC_HRTIM1_FORCE_RESET +#define __HRTIM1_RELEASE_RESET __HAL_RCC_HRTIM1_RELEASE_RESET +#define __SDADC1_FORCE_RESET __HAL_RCC_SDADC1_FORCE_RESET +#define __SDADC2_FORCE_RESET __HAL_RCC_SDADC2_FORCE_RESET +#define __SDADC3_FORCE_RESET __HAL_RCC_SDADC3_FORCE_RESET +#define __SDADC1_RELEASE_RESET __HAL_RCC_SDADC1_RELEASE_RESET +#define __SDADC2_RELEASE_RESET __HAL_RCC_SDADC2_RELEASE_RESET +#define __SDADC3_RELEASE_RESET __HAL_RCC_SDADC3_RELEASE_RESET + +#define __ADC1_IS_CLK_ENABLED __HAL_RCC_ADC1_IS_CLK_ENABLED +#define __ADC1_IS_CLK_DISABLED __HAL_RCC_ADC1_IS_CLK_DISABLED +#define __ADC12_IS_CLK_ENABLED __HAL_RCC_ADC12_IS_CLK_ENABLED +#define __ADC12_IS_CLK_DISABLED __HAL_RCC_ADC12_IS_CLK_DISABLED +#define __ADC34_IS_CLK_ENABLED __HAL_RCC_ADC34_IS_CLK_ENABLED +#define __ADC34_IS_CLK_DISABLED __HAL_RCC_ADC34_IS_CLK_DISABLED +#define __CEC_IS_CLK_ENABLED __HAL_RCC_CEC_IS_CLK_ENABLED +#define __CEC_IS_CLK_DISABLED __HAL_RCC_CEC_IS_CLK_DISABLED +#define __CRC_IS_CLK_ENABLED __HAL_RCC_CRC_IS_CLK_ENABLED +#define __CRC_IS_CLK_DISABLED __HAL_RCC_CRC_IS_CLK_DISABLED +#define __DAC1_IS_CLK_ENABLED __HAL_RCC_DAC1_IS_CLK_ENABLED +#define __DAC1_IS_CLK_DISABLED __HAL_RCC_DAC1_IS_CLK_DISABLED +#define __DAC2_IS_CLK_ENABLED __HAL_RCC_DAC2_IS_CLK_ENABLED +#define __DAC2_IS_CLK_DISABLED __HAL_RCC_DAC2_IS_CLK_DISABLED +#define __DMA1_IS_CLK_ENABLED __HAL_RCC_DMA1_IS_CLK_ENABLED +#define __DMA1_IS_CLK_DISABLED __HAL_RCC_DMA1_IS_CLK_DISABLED +#define __DMA2_IS_CLK_ENABLED __HAL_RCC_DMA2_IS_CLK_ENABLED +#define __DMA2_IS_CLK_DISABLED __HAL_RCC_DMA2_IS_CLK_DISABLED +#define __FLITF_IS_CLK_ENABLED __HAL_RCC_FLITF_IS_CLK_ENABLED +#define __FLITF_IS_CLK_DISABLED __HAL_RCC_FLITF_IS_CLK_DISABLED +#define __FMC_IS_CLK_ENABLED __HAL_RCC_FMC_IS_CLK_ENABLED +#define __FMC_IS_CLK_DISABLED __HAL_RCC_FMC_IS_CLK_DISABLED +#define __GPIOA_IS_CLK_ENABLED __HAL_RCC_GPIOA_IS_CLK_ENABLED +#define __GPIOA_IS_CLK_DISABLED __HAL_RCC_GPIOA_IS_CLK_DISABLED +#define __GPIOB_IS_CLK_ENABLED __HAL_RCC_GPIOB_IS_CLK_ENABLED +#define __GPIOB_IS_CLK_DISABLED __HAL_RCC_GPIOB_IS_CLK_DISABLED +#define __GPIOC_IS_CLK_ENABLED __HAL_RCC_GPIOC_IS_CLK_ENABLED +#define __GPIOC_IS_CLK_DISABLED __HAL_RCC_GPIOC_IS_CLK_DISABLED +#define __GPIOD_IS_CLK_ENABLED __HAL_RCC_GPIOD_IS_CLK_ENABLED +#define __GPIOD_IS_CLK_DISABLED __HAL_RCC_GPIOD_IS_CLK_DISABLED +#define __GPIOE_IS_CLK_ENABLED __HAL_RCC_GPIOE_IS_CLK_ENABLED +#define __GPIOE_IS_CLK_DISABLED __HAL_RCC_GPIOE_IS_CLK_DISABLED +#define __GPIOF_IS_CLK_ENABLED __HAL_RCC_GPIOF_IS_CLK_ENABLED +#define __GPIOF_IS_CLK_DISABLED __HAL_RCC_GPIOF_IS_CLK_DISABLED +#define __GPIOG_IS_CLK_ENABLED __HAL_RCC_GPIOG_IS_CLK_ENABLED +#define __GPIOG_IS_CLK_DISABLED __HAL_RCC_GPIOG_IS_CLK_DISABLED +#define __GPIOH_IS_CLK_ENABLED __HAL_RCC_GPIOH_IS_CLK_ENABLED +#define __GPIOH_IS_CLK_DISABLED __HAL_RCC_GPIOH_IS_CLK_DISABLED +#define __HRTIM1_IS_CLK_ENABLED __HAL_RCC_HRTIM1_IS_CLK_ENABLED +#define __HRTIM1_IS_CLK_DISABLED __HAL_RCC_HRTIM1_IS_CLK_DISABLED +#define __I2C1_IS_CLK_ENABLED __HAL_RCC_I2C1_IS_CLK_ENABLED +#define __I2C1_IS_CLK_DISABLED __HAL_RCC_I2C1_IS_CLK_DISABLED +#define __I2C2_IS_CLK_ENABLED __HAL_RCC_I2C2_IS_CLK_ENABLED +#define __I2C2_IS_CLK_DISABLED __HAL_RCC_I2C2_IS_CLK_DISABLED +#define __I2C3_IS_CLK_ENABLED __HAL_RCC_I2C3_IS_CLK_ENABLED +#define __I2C3_IS_CLK_DISABLED __HAL_RCC_I2C3_IS_CLK_DISABLED +#define __PWR_IS_CLK_ENABLED __HAL_RCC_PWR_IS_CLK_ENABLED +#define __PWR_IS_CLK_DISABLED __HAL_RCC_PWR_IS_CLK_DISABLED +#define __SYSCFG_IS_CLK_ENABLED __HAL_RCC_SYSCFG_IS_CLK_ENABLED +#define __SYSCFG_IS_CLK_DISABLED __HAL_RCC_SYSCFG_IS_CLK_DISABLED +#define __SPI1_IS_CLK_ENABLED __HAL_RCC_SPI1_IS_CLK_ENABLED +#define __SPI1_IS_CLK_DISABLED __HAL_RCC_SPI1_IS_CLK_DISABLED +#define __SPI2_IS_CLK_ENABLED __HAL_RCC_SPI2_IS_CLK_ENABLED +#define __SPI2_IS_CLK_DISABLED __HAL_RCC_SPI2_IS_CLK_DISABLED +#define __SPI3_IS_CLK_ENABLED __HAL_RCC_SPI3_IS_CLK_ENABLED +#define __SPI3_IS_CLK_DISABLED __HAL_RCC_SPI3_IS_CLK_DISABLED +#define __SPI4_IS_CLK_ENABLED __HAL_RCC_SPI4_IS_CLK_ENABLED +#define __SPI4_IS_CLK_DISABLED __HAL_RCC_SPI4_IS_CLK_DISABLED +#define __SDADC1_IS_CLK_ENABLED __HAL_RCC_SDADC1_IS_CLK_ENABLED +#define __SDADC1_IS_CLK_DISABLED __HAL_RCC_SDADC1_IS_CLK_DISABLED +#define __SDADC2_IS_CLK_ENABLED __HAL_RCC_SDADC2_IS_CLK_ENABLED +#define __SDADC2_IS_CLK_DISABLED __HAL_RCC_SDADC2_IS_CLK_DISABLED +#define __SDADC3_IS_CLK_ENABLED __HAL_RCC_SDADC3_IS_CLK_ENABLED +#define __SDADC3_IS_CLK_DISABLED __HAL_RCC_SDADC3_IS_CLK_DISABLED +#define __SRAM_IS_CLK_ENABLED __HAL_RCC_SRAM_IS_CLK_ENABLED +#define __SRAM_IS_CLK_DISABLED __HAL_RCC_SRAM_IS_CLK_DISABLED +#define __TIM1_IS_CLK_ENABLED __HAL_RCC_TIM1_IS_CLK_ENABLED +#define __TIM1_IS_CLK_DISABLED __HAL_RCC_TIM1_IS_CLK_DISABLED +#define __TIM2_IS_CLK_ENABLED __HAL_RCC_TIM2_IS_CLK_ENABLED +#define __TIM2_IS_CLK_DISABLED __HAL_RCC_TIM2_IS_CLK_DISABLED +#define __TIM3_IS_CLK_ENABLED __HAL_RCC_TIM3_IS_CLK_ENABLED +#define __TIM3_IS_CLK_DISABLED __HAL_RCC_TIM3_IS_CLK_DISABLED +#define __TIM4_IS_CLK_ENABLED __HAL_RCC_TIM4_IS_CLK_ENABLED +#define __TIM4_IS_CLK_DISABLED __HAL_RCC_TIM4_IS_CLK_DISABLED +#define __TIM5_IS_CLK_ENABLED __HAL_RCC_TIM5_IS_CLK_ENABLED +#define __TIM5_IS_CLK_DISABLED __HAL_RCC_TIM5_IS_CLK_DISABLED +#define __TIM6_IS_CLK_ENABLED __HAL_RCC_TIM6_IS_CLK_ENABLED +#define __TIM6_IS_CLK_DISABLED __HAL_RCC_TIM6_IS_CLK_DISABLED +#define __TIM7_IS_CLK_ENABLED __HAL_RCC_TIM7_IS_CLK_ENABLED +#define __TIM7_IS_CLK_DISABLED __HAL_RCC_TIM7_IS_CLK_DISABLED +#define __TIM8_IS_CLK_ENABLED __HAL_RCC_TIM8_IS_CLK_ENABLED +#define __TIM8_IS_CLK_DISABLED __HAL_RCC_TIM8_IS_CLK_DISABLED +#define __TIM12_IS_CLK_ENABLED __HAL_RCC_TIM12_IS_CLK_ENABLED +#define __TIM12_IS_CLK_DISABLED __HAL_RCC_TIM12_IS_CLK_DISABLED +#define __TIM13_IS_CLK_ENABLED __HAL_RCC_TIM13_IS_CLK_ENABLED +#define __TIM13_IS_CLK_DISABLED __HAL_RCC_TIM13_IS_CLK_DISABLED +#define __TIM14_IS_CLK_ENABLED __HAL_RCC_TIM14_IS_CLK_ENABLED +#define __TIM14_IS_CLK_DISABLED __HAL_RCC_TIM14_IS_CLK_DISABLED +#define __TIM15_IS_CLK_ENABLED __HAL_RCC_TIM15_IS_CLK_ENABLED +#define __TIM15_IS_CLK_DISABLED __HAL_RCC_TIM15_IS_CLK_DISABLED +#define __TIM16_IS_CLK_ENABLED __HAL_RCC_TIM16_IS_CLK_ENABLED +#define __TIM16_IS_CLK_DISABLED __HAL_RCC_TIM16_IS_CLK_DISABLED +#define __TIM17_IS_CLK_ENABLED __HAL_RCC_TIM17_IS_CLK_ENABLED +#define __TIM17_IS_CLK_DISABLED __HAL_RCC_TIM17_IS_CLK_DISABLED +#define __TIM18_IS_CLK_ENABLED __HAL_RCC_TIM18_IS_CLK_ENABLED +#define __TIM18_IS_CLK_DISABLED __HAL_RCC_TIM18_IS_CLK_DISABLED +#define __TIM19_IS_CLK_ENABLED __HAL_RCC_TIM19_IS_CLK_ENABLED +#define __TIM19_IS_CLK_DISABLED __HAL_RCC_TIM19_IS_CLK_DISABLED +#define __TIM20_IS_CLK_ENABLED __HAL_RCC_TIM20_IS_CLK_ENABLED +#define __TIM20_IS_CLK_DISABLED __HAL_RCC_TIM20_IS_CLK_DISABLED +#define __TSC_IS_CLK_ENABLED __HAL_RCC_TSC_IS_CLK_ENABLED +#define __TSC_IS_CLK_DISABLED __HAL_RCC_TSC_IS_CLK_DISABLED +#define __UART4_IS_CLK_ENABLED __HAL_RCC_UART4_IS_CLK_ENABLED +#define __UART4_IS_CLK_DISABLED __HAL_RCC_UART4_IS_CLK_DISABLED +#define __UART5_IS_CLK_ENABLED __HAL_RCC_UART5_IS_CLK_ENABLED +#define __UART5_IS_CLK_DISABLED __HAL_RCC_UART5_IS_CLK_DISABLED +#define __USART1_IS_CLK_ENABLED __HAL_RCC_USART1_IS_CLK_ENABLED +#define __USART1_IS_CLK_DISABLED __HAL_RCC_USART1_IS_CLK_DISABLED +#define __USART2_IS_CLK_ENABLED __HAL_RCC_USART2_IS_CLK_ENABLED +#define __USART2_IS_CLK_DISABLED __HAL_RCC_USART2_IS_CLK_DISABLED +#define __USART3_IS_CLK_ENABLED __HAL_RCC_USART3_IS_CLK_ENABLED +#define __USART3_IS_CLK_DISABLED __HAL_RCC_USART3_IS_CLK_DISABLED +#define __USB_IS_CLK_ENABLED __HAL_RCC_USB_IS_CLK_ENABLED +#define __USB_IS_CLK_DISABLED __HAL_RCC_USB_IS_CLK_DISABLED +#define __WWDG_IS_CLK_ENABLED __HAL_RCC_WWDG_IS_CLK_ENABLED +#define __WWDG_IS_CLK_DISABLED __HAL_RCC_WWDG_IS_CLK_DISABLED + +#if defined(STM32L1) +#define __HAL_RCC_CRYP_CLK_DISABLE __HAL_RCC_AES_CLK_DISABLE +#define __HAL_RCC_CRYP_CLK_ENABLE __HAL_RCC_AES_CLK_ENABLE +#define __HAL_RCC_CRYP_CLK_SLEEP_DISABLE __HAL_RCC_AES_CLK_SLEEP_DISABLE +#define __HAL_RCC_CRYP_CLK_SLEEP_ENABLE __HAL_RCC_AES_CLK_SLEEP_ENABLE +#define __HAL_RCC_CRYP_FORCE_RESET __HAL_RCC_AES_FORCE_RESET +#define __HAL_RCC_CRYP_RELEASE_RESET __HAL_RCC_AES_RELEASE_RESET +#endif /* STM32L1 */ + +#if defined(STM32F4) +#define __HAL_RCC_SDMMC1_FORCE_RESET __HAL_RCC_SDIO_FORCE_RESET +#define __HAL_RCC_SDMMC1_RELEASE_RESET __HAL_RCC_SDIO_RELEASE_RESET +#define __HAL_RCC_SDMMC1_CLK_SLEEP_ENABLE __HAL_RCC_SDIO_CLK_SLEEP_ENABLE +#define __HAL_RCC_SDMMC1_CLK_SLEEP_DISABLE __HAL_RCC_SDIO_CLK_SLEEP_DISABLE +#define __HAL_RCC_SDMMC1_CLK_ENABLE __HAL_RCC_SDIO_CLK_ENABLE +#define __HAL_RCC_SDMMC1_CLK_DISABLE __HAL_RCC_SDIO_CLK_DISABLE +#define __HAL_RCC_SDMMC1_IS_CLK_ENABLED __HAL_RCC_SDIO_IS_CLK_ENABLED +#define __HAL_RCC_SDMMC1_IS_CLK_DISABLED __HAL_RCC_SDIO_IS_CLK_DISABLED +#define Sdmmc1ClockSelection SdioClockSelection +#define RCC_PERIPHCLK_SDMMC1 RCC_PERIPHCLK_SDIO +#define RCC_SDMMC1CLKSOURCE_CLK48 RCC_SDIOCLKSOURCE_CK48 +#define RCC_SDMMC1CLKSOURCE_SYSCLK RCC_SDIOCLKSOURCE_SYSCLK +#define __HAL_RCC_SDMMC1_CONFIG __HAL_RCC_SDIO_CONFIG +#define __HAL_RCC_GET_SDMMC1_SOURCE __HAL_RCC_GET_SDIO_SOURCE +#endif + +#if defined(STM32F7) || defined(STM32L4) +#define __HAL_RCC_SDIO_FORCE_RESET __HAL_RCC_SDMMC1_FORCE_RESET +#define __HAL_RCC_SDIO_RELEASE_RESET __HAL_RCC_SDMMC1_RELEASE_RESET +#define __HAL_RCC_SDIO_CLK_SLEEP_ENABLE __HAL_RCC_SDMMC1_CLK_SLEEP_ENABLE +#define __HAL_RCC_SDIO_CLK_SLEEP_DISABLE __HAL_RCC_SDMMC1_CLK_SLEEP_DISABLE +#define __HAL_RCC_SDIO_CLK_ENABLE __HAL_RCC_SDMMC1_CLK_ENABLE +#define __HAL_RCC_SDIO_CLK_DISABLE __HAL_RCC_SDMMC1_CLK_DISABLE +#define __HAL_RCC_SDIO_IS_CLK_ENABLED __HAL_RCC_SDMMC1_IS_CLK_ENABLED +#define __HAL_RCC_SDIO_IS_CLK_DISABLED __HAL_RCC_SDMMC1_IS_CLK_DISABLED +#define SdioClockSelection Sdmmc1ClockSelection +#define RCC_PERIPHCLK_SDIO RCC_PERIPHCLK_SDMMC1 +#define __HAL_RCC_SDIO_CONFIG __HAL_RCC_SDMMC1_CONFIG +#define __HAL_RCC_GET_SDIO_SOURCE __HAL_RCC_GET_SDMMC1_SOURCE +#endif + +#if defined(STM32F7) +#define RCC_SDIOCLKSOURCE_CLK48 RCC_SDMMC1CLKSOURCE_CLK48 +#define RCC_SDIOCLKSOURCE_SYSCLK RCC_SDMMC1CLKSOURCE_SYSCLK +#endif + +#if defined(STM32H7) +#define __HAL_RCC_USB_OTG_HS_CLK_ENABLE() __HAL_RCC_USB1_OTG_HS_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_HS_CLK_DISABLE() __HAL_RCC_USB1_OTG_HS_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_DISABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_HS_FORCE_RESET() __HAL_RCC_USB1_OTG_HS_FORCE_RESET() +#define __HAL_RCC_USB_OTG_HS_RELEASE_RESET() __HAL_RCC_USB1_OTG_HS_RELEASE_RESET() +#define __HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE() __HAL_RCC_USB1_OTG_HS_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE() __HAL_RCC_USB1_OTG_HS_CLK_SLEEP_DISABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_SLEEP_DISABLE() + +#define __HAL_RCC_USB_OTG_FS_CLK_ENABLE() __HAL_RCC_USB2_OTG_FS_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_ENABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_FS_CLK_DISABLE() __HAL_RCC_USB2_OTG_FS_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_DISABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_FS_FORCE_RESET() __HAL_RCC_USB2_OTG_FS_FORCE_RESET() +#define __HAL_RCC_USB_OTG_FS_RELEASE_RESET() __HAL_RCC_USB2_OTG_FS_RELEASE_RESET() +#define __HAL_RCC_USB_OTG_FS_CLK_SLEEP_ENABLE() __HAL_RCC_USB2_OTG_FS_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_SLEEP_ENABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_FS_CLK_SLEEP_DISABLE() __HAL_RCC_USB2_OTG_FS_CLK_SLEEP_DISABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_SLEEP_DISABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE() +#endif + +#define __HAL_RCC_I2SCLK __HAL_RCC_I2S_CONFIG +#define __HAL_RCC_I2SCLK_CONFIG __HAL_RCC_I2S_CONFIG + +#define __RCC_PLLSRC RCC_GET_PLL_OSCSOURCE + +#define IS_RCC_MSIRANGE IS_RCC_MSI_CLOCK_RANGE +#define IS_RCC_RTCCLK_SOURCE IS_RCC_RTCCLKSOURCE +#define IS_RCC_SYSCLK_DIV IS_RCC_HCLK +#define IS_RCC_HCLK_DIV IS_RCC_PCLK +#define IS_RCC_PERIPHCLK IS_RCC_PERIPHCLOCK + +#define RCC_IT_HSI14 RCC_IT_HSI14RDY + +#define RCC_IT_CSSLSE RCC_IT_LSECSS +#define RCC_IT_CSSHSE RCC_IT_CSS + +#define RCC_PLLMUL_3 RCC_PLL_MUL3 +#define RCC_PLLMUL_4 RCC_PLL_MUL4 +#define RCC_PLLMUL_6 RCC_PLL_MUL6 +#define RCC_PLLMUL_8 RCC_PLL_MUL8 +#define RCC_PLLMUL_12 RCC_PLL_MUL12 +#define RCC_PLLMUL_16 RCC_PLL_MUL16 +#define RCC_PLLMUL_24 RCC_PLL_MUL24 +#define RCC_PLLMUL_32 RCC_PLL_MUL32 +#define RCC_PLLMUL_48 RCC_PLL_MUL48 + +#define RCC_PLLDIV_2 RCC_PLL_DIV2 +#define RCC_PLLDIV_3 RCC_PLL_DIV3 +#define RCC_PLLDIV_4 RCC_PLL_DIV4 + +#define IS_RCC_MCOSOURCE IS_RCC_MCO1SOURCE +#define __HAL_RCC_MCO_CONFIG __HAL_RCC_MCO1_CONFIG +#define RCC_MCO_NODIV RCC_MCODIV_1 +#define RCC_MCO_DIV1 RCC_MCODIV_1 +#define RCC_MCO_DIV2 RCC_MCODIV_2 +#define RCC_MCO_DIV4 RCC_MCODIV_4 +#define RCC_MCO_DIV8 RCC_MCODIV_8 +#define RCC_MCO_DIV16 RCC_MCODIV_16 +#define RCC_MCO_DIV32 RCC_MCODIV_32 +#define RCC_MCO_DIV64 RCC_MCODIV_64 +#define RCC_MCO_DIV128 RCC_MCODIV_128 +#define RCC_MCOSOURCE_NONE RCC_MCO1SOURCE_NOCLOCK +#define RCC_MCOSOURCE_LSI RCC_MCO1SOURCE_LSI +#define RCC_MCOSOURCE_LSE RCC_MCO1SOURCE_LSE +#define RCC_MCOSOURCE_SYSCLK RCC_MCO1SOURCE_SYSCLK +#define RCC_MCOSOURCE_HSI RCC_MCO1SOURCE_HSI +#define RCC_MCOSOURCE_HSI14 RCC_MCO1SOURCE_HSI14 +#define RCC_MCOSOURCE_HSI48 RCC_MCO1SOURCE_HSI48 +#define RCC_MCOSOURCE_HSE RCC_MCO1SOURCE_HSE +#define RCC_MCOSOURCE_PLLCLK_DIV1 RCC_MCO1SOURCE_PLLCLK +#define RCC_MCOSOURCE_PLLCLK_NODIV RCC_MCO1SOURCE_PLLCLK +#define RCC_MCOSOURCE_PLLCLK_DIV2 RCC_MCO1SOURCE_PLLCLK_DIV2 + +#if defined(STM32U0) +#define RCC_SYSCLKSOURCE_STATUS_PLLR RCC_SYSCLKSOURCE_STATUS_PLLCLK +#endif + +#if defined(STM32L4) || defined(STM32WB) || defined(STM32G0) || defined(STM32G4) || defined(STM32L5) || \ + defined(STM32WL) || defined(STM32C0) || defined(STM32H7RS) || defined(STM32U0) +#define RCC_RTCCLKSOURCE_NO_CLK RCC_RTCCLKSOURCE_NONE +#else +#define RCC_RTCCLKSOURCE_NONE RCC_RTCCLKSOURCE_NO_CLK +#endif + +#define RCC_USBCLK_PLLSAI1 RCC_USBCLKSOURCE_PLLSAI1 +#define RCC_USBCLK_PLL RCC_USBCLKSOURCE_PLL +#define RCC_USBCLK_MSI RCC_USBCLKSOURCE_MSI +#define RCC_USBCLKSOURCE_PLLCLK RCC_USBCLKSOURCE_PLL +#define RCC_USBPLLCLK_DIV1 RCC_USBCLKSOURCE_PLL +#define RCC_USBPLLCLK_DIV1_5 RCC_USBCLKSOURCE_PLL_DIV1_5 +#define RCC_USBPLLCLK_DIV2 RCC_USBCLKSOURCE_PLL_DIV2 +#define RCC_USBPLLCLK_DIV3 RCC_USBCLKSOURCE_PLL_DIV3 + +#define HSION_BitNumber RCC_HSION_BIT_NUMBER +#define HSION_BITNUMBER RCC_HSION_BIT_NUMBER +#define HSEON_BitNumber RCC_HSEON_BIT_NUMBER +#define HSEON_BITNUMBER RCC_HSEON_BIT_NUMBER +#define MSION_BITNUMBER RCC_MSION_BIT_NUMBER +#define CSSON_BitNumber RCC_CSSON_BIT_NUMBER +#define CSSON_BITNUMBER RCC_CSSON_BIT_NUMBER +#define PLLON_BitNumber RCC_PLLON_BIT_NUMBER +#define PLLON_BITNUMBER RCC_PLLON_BIT_NUMBER +#define PLLI2SON_BitNumber RCC_PLLI2SON_BIT_NUMBER +#define I2SSRC_BitNumber RCC_I2SSRC_BIT_NUMBER +#define RTCEN_BitNumber RCC_RTCEN_BIT_NUMBER +#define RTCEN_BITNUMBER RCC_RTCEN_BIT_NUMBER +#define BDRST_BitNumber RCC_BDRST_BIT_NUMBER +#define BDRST_BITNUMBER RCC_BDRST_BIT_NUMBER +#define RTCRST_BITNUMBER RCC_RTCRST_BIT_NUMBER +#define LSION_BitNumber RCC_LSION_BIT_NUMBER +#define LSION_BITNUMBER RCC_LSION_BIT_NUMBER +#define LSEON_BitNumber RCC_LSEON_BIT_NUMBER +#define LSEON_BITNUMBER RCC_LSEON_BIT_NUMBER +#define LSEBYP_BITNUMBER RCC_LSEBYP_BIT_NUMBER +#define PLLSAION_BitNumber RCC_PLLSAION_BIT_NUMBER +#define TIMPRE_BitNumber RCC_TIMPRE_BIT_NUMBER +#define RMVF_BitNumber RCC_RMVF_BIT_NUMBER +#define RMVF_BITNUMBER RCC_RMVF_BIT_NUMBER +#define RCC_CR2_HSI14TRIM_BitNumber RCC_HSI14TRIM_BIT_NUMBER +#define CR_BYTE2_ADDRESS RCC_CR_BYTE2_ADDRESS +#define CIR_BYTE1_ADDRESS RCC_CIR_BYTE1_ADDRESS +#define CIR_BYTE2_ADDRESS RCC_CIR_BYTE2_ADDRESS +#define BDCR_BYTE0_ADDRESS RCC_BDCR_BYTE0_ADDRESS +#define DBP_TIMEOUT_VALUE RCC_DBP_TIMEOUT_VALUE +#define LSE_TIMEOUT_VALUE RCC_LSE_TIMEOUT_VALUE + +#define CR_HSION_BB RCC_CR_HSION_BB +#define CR_CSSON_BB RCC_CR_CSSON_BB +#define CR_PLLON_BB RCC_CR_PLLON_BB +#define CR_PLLI2SON_BB RCC_CR_PLLI2SON_BB +#define CR_MSION_BB RCC_CR_MSION_BB +#define CSR_LSION_BB RCC_CSR_LSION_BB +#define CSR_LSEON_BB RCC_CSR_LSEON_BB +#define CSR_LSEBYP_BB RCC_CSR_LSEBYP_BB +#define CSR_RTCEN_BB RCC_CSR_RTCEN_BB +#define CSR_RTCRST_BB RCC_CSR_RTCRST_BB +#define CFGR_I2SSRC_BB RCC_CFGR_I2SSRC_BB +#define BDCR_RTCEN_BB RCC_BDCR_RTCEN_BB +#define BDCR_BDRST_BB RCC_BDCR_BDRST_BB +#define CR_HSEON_BB RCC_CR_HSEON_BB +#define CSR_RMVF_BB RCC_CSR_RMVF_BB +#define CR_PLLSAION_BB RCC_CR_PLLSAION_BB +#define DCKCFGR_TIMPRE_BB RCC_DCKCFGR_TIMPRE_BB + +#define __HAL_RCC_CRS_ENABLE_FREQ_ERROR_COUNTER __HAL_RCC_CRS_FREQ_ERROR_COUNTER_ENABLE +#define __HAL_RCC_CRS_DISABLE_FREQ_ERROR_COUNTER __HAL_RCC_CRS_FREQ_ERROR_COUNTER_DISABLE +#define __HAL_RCC_CRS_ENABLE_AUTOMATIC_CALIB __HAL_RCC_CRS_AUTOMATIC_CALIB_ENABLE +#define __HAL_RCC_CRS_DISABLE_AUTOMATIC_CALIB __HAL_RCC_CRS_AUTOMATIC_CALIB_DISABLE +#define __HAL_RCC_CRS_CALCULATE_RELOADVALUE __HAL_RCC_CRS_RELOADVALUE_CALCULATE + +#define __HAL_RCC_GET_IT_SOURCE __HAL_RCC_GET_IT + +#define RCC_CRS_SYNCWARM RCC_CRS_SYNCWARN +#define RCC_CRS_TRIMOV RCC_CRS_TRIMOVF + +#define RCC_PERIPHCLK_CK48 RCC_PERIPHCLK_CLK48 +#define RCC_CK48CLKSOURCE_PLLQ RCC_CLK48CLKSOURCE_PLLQ +#define RCC_CK48CLKSOURCE_PLLSAIP RCC_CLK48CLKSOURCE_PLLSAIP +#define RCC_CK48CLKSOURCE_PLLI2SQ RCC_CLK48CLKSOURCE_PLLI2SQ +#define IS_RCC_CK48CLKSOURCE IS_RCC_CLK48CLKSOURCE +#define RCC_SDIOCLKSOURCE_CK48 RCC_SDIOCLKSOURCE_CLK48 + +#define __HAL_RCC_DFSDM_CLK_ENABLE __HAL_RCC_DFSDM1_CLK_ENABLE +#define __HAL_RCC_DFSDM_CLK_DISABLE __HAL_RCC_DFSDM1_CLK_DISABLE +#define __HAL_RCC_DFSDM_IS_CLK_ENABLED __HAL_RCC_DFSDM1_IS_CLK_ENABLED +#define __HAL_RCC_DFSDM_IS_CLK_DISABLED __HAL_RCC_DFSDM1_IS_CLK_DISABLED +#define __HAL_RCC_DFSDM_FORCE_RESET __HAL_RCC_DFSDM1_FORCE_RESET +#define __HAL_RCC_DFSDM_RELEASE_RESET __HAL_RCC_DFSDM1_RELEASE_RESET +#define __HAL_RCC_DFSDM_CLK_SLEEP_ENABLE __HAL_RCC_DFSDM1_CLK_SLEEP_ENABLE +#define __HAL_RCC_DFSDM_CLK_SLEEP_DISABLE __HAL_RCC_DFSDM1_CLK_SLEEP_DISABLE +#define __HAL_RCC_DFSDM_IS_CLK_SLEEP_ENABLED __HAL_RCC_DFSDM1_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_DFSDM_IS_CLK_SLEEP_DISABLED __HAL_RCC_DFSDM1_IS_CLK_SLEEP_DISABLED +#define DfsdmClockSelection Dfsdm1ClockSelection +#define RCC_PERIPHCLK_DFSDM RCC_PERIPHCLK_DFSDM1 +#define RCC_DFSDMCLKSOURCE_PCLK RCC_DFSDM1CLKSOURCE_PCLK2 +#define RCC_DFSDMCLKSOURCE_SYSCLK RCC_DFSDM1CLKSOURCE_SYSCLK +#define __HAL_RCC_DFSDM_CONFIG __HAL_RCC_DFSDM1_CONFIG +#define __HAL_RCC_GET_DFSDM_SOURCE __HAL_RCC_GET_DFSDM1_SOURCE +#define RCC_DFSDM1CLKSOURCE_PCLK RCC_DFSDM1CLKSOURCE_PCLK2 +#define RCC_SWPMI1CLKSOURCE_PCLK RCC_SWPMI1CLKSOURCE_PCLK1 +#if !defined(STM32U0) +#define RCC_LPTIM1CLKSOURCE_PCLK RCC_LPTIM1CLKSOURCE_PCLK1 +#define RCC_LPTIM2CLKSOURCE_PCLK RCC_LPTIM2CLKSOURCE_PCLK1 +#endif + +#define RCC_DFSDM1AUDIOCLKSOURCE_I2SAPB1 RCC_DFSDM1AUDIOCLKSOURCE_I2S1 +#define RCC_DFSDM1AUDIOCLKSOURCE_I2SAPB2 RCC_DFSDM1AUDIOCLKSOURCE_I2S2 +#define RCC_DFSDM2AUDIOCLKSOURCE_I2SAPB1 RCC_DFSDM2AUDIOCLKSOURCE_I2S1 +#define RCC_DFSDM2AUDIOCLKSOURCE_I2SAPB2 RCC_DFSDM2AUDIOCLKSOURCE_I2S2 +#define RCC_DFSDM1CLKSOURCE_APB2 RCC_DFSDM1CLKSOURCE_PCLK2 +#define RCC_DFSDM2CLKSOURCE_APB2 RCC_DFSDM2CLKSOURCE_PCLK2 +#define RCC_FMPI2C1CLKSOURCE_APB RCC_FMPI2C1CLKSOURCE_PCLK1 +#if defined(STM32U5) +#define MSIKPLLModeSEL RCC_MSIKPLL_MODE_SEL +#define MSISPLLModeSEL RCC_MSISPLL_MODE_SEL +#define __HAL_RCC_AHB21_CLK_DISABLE __HAL_RCC_AHB2_1_CLK_DISABLE +#define __HAL_RCC_AHB22_CLK_DISABLE __HAL_RCC_AHB2_2_CLK_DISABLE +#define __HAL_RCC_AHB1_CLK_Disable_Clear __HAL_RCC_AHB1_CLK_ENABLE +#define __HAL_RCC_AHB21_CLK_Disable_Clear __HAL_RCC_AHB2_1_CLK_ENABLE +#define __HAL_RCC_AHB22_CLK_Disable_Clear __HAL_RCC_AHB2_2_CLK_ENABLE +#define __HAL_RCC_AHB3_CLK_Disable_Clear __HAL_RCC_AHB3_CLK_ENABLE +#define __HAL_RCC_APB1_CLK_Disable_Clear __HAL_RCC_APB1_CLK_ENABLE +#define __HAL_RCC_APB2_CLK_Disable_Clear __HAL_RCC_APB2_CLK_ENABLE +#define __HAL_RCC_APB3_CLK_Disable_Clear __HAL_RCC_APB3_CLK_ENABLE +#define IS_RCC_MSIPLLModeSelection IS_RCC_MSIPLLMODE_SELECT +#define RCC_PERIPHCLK_CLK48 RCC_PERIPHCLK_ICLK +#define RCC_CLK48CLKSOURCE_HSI48 RCC_ICLK_CLKSOURCE_HSI48 +#define RCC_CLK48CLKSOURCE_PLL2 RCC_ICLK_CLKSOURCE_PLL2 +#define RCC_CLK48CLKSOURCE_PLL1 RCC_ICLK_CLKSOURCE_PLL1 +#define RCC_CLK48CLKSOURCE_MSIK RCC_ICLK_CLKSOURCE_MSIK +#define __HAL_RCC_ADC1_CLK_ENABLE __HAL_RCC_ADC12_CLK_ENABLE +#define __HAL_RCC_ADC1_CLK_DISABLE __HAL_RCC_ADC12_CLK_DISABLE +#define __HAL_RCC_ADC1_IS_CLK_ENABLED __HAL_RCC_ADC12_IS_CLK_ENABLED +#define __HAL_RCC_ADC1_IS_CLK_DISABLED __HAL_RCC_ADC12_IS_CLK_DISABLED +#define __HAL_RCC_ADC1_FORCE_RESET __HAL_RCC_ADC12_FORCE_RESET +#define __HAL_RCC_ADC1_RELEASE_RESET __HAL_RCC_ADC12_RELEASE_RESET +#define __HAL_RCC_ADC1_CLK_SLEEP_ENABLE __HAL_RCC_ADC12_CLK_SLEEP_ENABLE +#define __HAL_RCC_ADC1_CLK_SLEEP_DISABLE __HAL_RCC_ADC12_CLK_SLEEP_DISABLE +#define __HAL_RCC_GET_CLK48_SOURCE __HAL_RCC_GET_ICLK_SOURCE +#define __HAL_RCC_PLLFRACN_ENABLE __HAL_RCC_PLL_FRACN_ENABLE +#define __HAL_RCC_PLLFRACN_DISABLE __HAL_RCC_PLL_FRACN_DISABLE +#define __HAL_RCC_PLLFRACN_CONFIG __HAL_RCC_PLL_FRACN_CONFIG +#define IS_RCC_PLLFRACN_VALUE IS_RCC_PLL_FRACN_VALUE +#endif /* STM32U5 */ + +#if defined(STM32H5) +#define __HAL_RCC_PLLFRACN_ENABLE __HAL_RCC_PLL_FRACN_ENABLE +#define __HAL_RCC_PLLFRACN_DISABLE __HAL_RCC_PLL_FRACN_DISABLE +#define __HAL_RCC_PLLFRACN_CONFIG __HAL_RCC_PLL_FRACN_CONFIG +#define IS_RCC_PLLFRACN_VALUE IS_RCC_PLL_FRACN_VALUE + +#define RCC_PLLSOURCE_NONE RCC_PLL1_SOURCE_NONE +#define RCC_PLLSOURCE_HSI RCC_PLL1_SOURCE_HSI +#define RCC_PLLSOURCE_CSI RCC_PLL1_SOURCE_CSI +#define RCC_PLLSOURCE_HSE RCC_PLL1_SOURCE_HSE +#define RCC_PLLVCIRANGE_0 RCC_PLL1_VCIRANGE_0 +#define RCC_PLLVCIRANGE_1 RCC_PLL1_VCIRANGE_1 +#define RCC_PLLVCIRANGE_2 RCC_PLL1_VCIRANGE_2 +#define RCC_PLLVCIRANGE_3 RCC_PLL1_VCIRANGE_3 +#define RCC_PLL1VCOWIDE RCC_PLL1_VCORANGE_WIDE +#define RCC_PLL1VCOMEDIUM RCC_PLL1_VCORANGE_MEDIUM + +#define IS_RCC_PLLSOURCE IS_RCC_PLL1_SOURCE +#define IS_RCC_PLLRGE_VALUE IS_RCC_PLL1_VCIRGE_VALUE +#define IS_RCC_PLLVCORGE_VALUE IS_RCC_PLL1_VCORGE_VALUE +#define IS_RCC_PLLCLOCKOUT_VALUE IS_RCC_PLL1_CLOCKOUT_VALUE +#define IS_RCC_PLL_FRACN_VALUE IS_RCC_PLL1_FRACN_VALUE +#define IS_RCC_PLLM_VALUE IS_RCC_PLL1_DIVM_VALUE +#define IS_RCC_PLLN_VALUE IS_RCC_PLL1_MULN_VALUE +#define IS_RCC_PLLP_VALUE IS_RCC_PLL1_DIVP_VALUE +#define IS_RCC_PLLQ_VALUE IS_RCC_PLL1_DIVQ_VALUE +#define IS_RCC_PLLR_VALUE IS_RCC_PLL1_DIVR_VALUE + +#define __HAL_RCC_PLL_ENABLE __HAL_RCC_PLL1_ENABLE +#define __HAL_RCC_PLL_DISABLE __HAL_RCC_PLL1_DISABLE +#define __HAL_RCC_PLL_FRACN_ENABLE __HAL_RCC_PLL1_FRACN_ENABLE +#define __HAL_RCC_PLL_FRACN_DISABLE __HAL_RCC_PLL1_FRACN_DISABLE +#define __HAL_RCC_PLL_CONFIG __HAL_RCC_PLL1_CONFIG +#define __HAL_RCC_PLL_PLLSOURCE_CONFIG __HAL_RCC_PLL1_PLLSOURCE_CONFIG +#define __HAL_RCC_PLL_DIVM_CONFIG __HAL_RCC_PLL1_DIVM_CONFIG +#define __HAL_RCC_PLL_FRACN_CONFIG __HAL_RCC_PLL1_FRACN_CONFIG +#define __HAL_RCC_PLL_VCIRANGE __HAL_RCC_PLL1_VCIRANGE +#define __HAL_RCC_PLL_VCORANGE __HAL_RCC_PLL1_VCORANGE +#define __HAL_RCC_GET_PLL_OSCSOURCE __HAL_RCC_GET_PLL1_OSCSOURCE +#define __HAL_RCC_PLLCLKOUT_ENABLE __HAL_RCC_PLL1_CLKOUT_ENABLE +#define __HAL_RCC_PLLCLKOUT_DISABLE __HAL_RCC_PLL1_CLKOUT_DISABLE +#define __HAL_RCC_GET_PLLCLKOUT_CONFIG __HAL_RCC_GET_PLL1_CLKOUT_CONFIG + +#define __HAL_RCC_PLL2FRACN_ENABLE __HAL_RCC_PLL2_FRACN_ENABLE +#define __HAL_RCC_PLL2FRACN_DISABLE __HAL_RCC_PLL2_FRACN_DISABLE +#define __HAL_RCC_PLL2CLKOUT_ENABLE __HAL_RCC_PLL2_CLKOUT_ENABLE +#define __HAL_RCC_PLL2CLKOUT_DISABLE __HAL_RCC_PLL2_CLKOUT_DISABLE +#define __HAL_RCC_PLL2FRACN_CONFIG __HAL_RCC_PLL2_FRACN_CONFIG +#define __HAL_RCC_GET_PLL2CLKOUT_CONFIG __HAL_RCC_GET_PLL2_CLKOUT_CONFIG + +#define __HAL_RCC_PLL3FRACN_ENABLE __HAL_RCC_PLL3_FRACN_ENABLE +#define __HAL_RCC_PLL3FRACN_DISABLE __HAL_RCC_PLL3_FRACN_DISABLE +#define __HAL_RCC_PLL3CLKOUT_ENABLE __HAL_RCC_PLL3_CLKOUT_ENABLE +#define __HAL_RCC_PLL3CLKOUT_DISABLE __HAL_RCC_PLL3_CLKOUT_DISABLE +#define __HAL_RCC_PLL3FRACN_CONFIG __HAL_RCC_PLL3_FRACN_CONFIG +#define __HAL_RCC_GET_PLL3CLKOUT_CONFIG __HAL_RCC_GET_PLL3_CLKOUT_CONFIG + +#define RCC_PLL2VCIRANGE_0 RCC_PLL2_VCIRANGE_0 +#define RCC_PLL2VCIRANGE_1 RCC_PLL2_VCIRANGE_1 +#define RCC_PLL2VCIRANGE_2 RCC_PLL2_VCIRANGE_2 +#define RCC_PLL2VCIRANGE_3 RCC_PLL2_VCIRANGE_3 + +#define RCC_PLL2VCOWIDE RCC_PLL2_VCORANGE_WIDE +#define RCC_PLL2VCOMEDIUM RCC_PLL2_VCORANGE_MEDIUM + +#define RCC_PLL2SOURCE_NONE RCC_PLL2_SOURCE_NONE +#define RCC_PLL2SOURCE_HSI RCC_PLL2_SOURCE_HSI +#define RCC_PLL2SOURCE_CSI RCC_PLL2_SOURCE_CSI +#define RCC_PLL2SOURCE_HSE RCC_PLL2_SOURCE_HSE + +#define RCC_PLL3VCIRANGE_0 RCC_PLL3_VCIRANGE_0 +#define RCC_PLL3VCIRANGE_1 RCC_PLL3_VCIRANGE_1 +#define RCC_PLL3VCIRANGE_2 RCC_PLL3_VCIRANGE_2 +#define RCC_PLL3VCIRANGE_3 RCC_PLL3_VCIRANGE_3 + +#define RCC_PLL3VCOWIDE RCC_PLL3_VCORANGE_WIDE +#define RCC_PLL3VCOMEDIUM RCC_PLL3_VCORANGE_MEDIUM + +#define RCC_PLL3SOURCE_NONE RCC_PLL3_SOURCE_NONE +#define RCC_PLL3SOURCE_HSI RCC_PLL3_SOURCE_HSI +#define RCC_PLL3SOURCE_CSI RCC_PLL3_SOURCE_CSI +#define RCC_PLL3SOURCE_HSE RCC_PLL3_SOURCE_HSE + + +#endif /* STM32H5 */ + +/** + * @} + */ + +/** @defgroup HAL_RNG_Aliased_Macros HAL RNG Aliased Macros maintained for legacy purpose + * @{ + */ +#define HAL_RNG_ReadyCallback(__HANDLE__) HAL_RNG_ReadyDataCallback((__HANDLE__), uint32_t random32bit) + +/** + * @} + */ + +/** @defgroup HAL_RTC_Aliased_Macros HAL RTC Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined (STM32G0) || defined (STM32L5) || defined (STM32L412xx) || defined (STM32L422xx) || \ + defined (STM32L4P5xx)|| defined (STM32L4Q5xx) || defined (STM32G4) || defined (STM32WL) || defined (STM32U5) || \ + defined (STM32WBA) || defined (STM32H5) || defined (STM32C0) || defined (STM32H7RS) || defined (STM32U0) +#else +#define __HAL_RTC_CLEAR_FLAG __HAL_RTC_EXTI_CLEAR_FLAG +#endif +#define __HAL_RTC_DISABLE_IT __HAL_RTC_EXTI_DISABLE_IT +#define __HAL_RTC_ENABLE_IT __HAL_RTC_EXTI_ENABLE_IT + +#if defined (STM32F1) +#define __HAL_RTC_EXTI_CLEAR_FLAG(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_CLEAR_FLAG() + +#define __HAL_RTC_EXTI_ENABLE_IT(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_ENABLE_IT() + +#define __HAL_RTC_EXTI_DISABLE_IT(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_DISABLE_IT() + +#define __HAL_RTC_EXTI_GET_FLAG(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_GET_FLAG() + +#define __HAL_RTC_EXTI_GENERATE_SWIT(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_GENERATE_SWIT() +#else +#define __HAL_RTC_EXTI_CLEAR_FLAG(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_CLEAR_FLAG() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG())) +#define __HAL_RTC_EXTI_ENABLE_IT(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_ENABLE_IT() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT())) +#define __HAL_RTC_EXTI_DISABLE_IT(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_DISABLE_IT() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT())) +#define __HAL_RTC_EXTI_GET_FLAG(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_GET_FLAG() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG())) +#define __HAL_RTC_EXTI_GENERATE_SWIT(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_GENERATE_SWIT() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT())) +#endif /* STM32F1 */ + +#if defined (STM32F0) || defined (STM32F2) || defined (STM32F3) || defined (STM32F4) || defined (STM32F7) || \ + defined (STM32H7) || \ + defined (STM32L0) || defined (STM32L1) || \ + defined (STM32WB) +#define __HAL_RTC_TAMPER_GET_IT __HAL_RTC_TAMPER_GET_FLAG +#endif + +#define IS_ALARM IS_RTC_ALARM +#define IS_ALARM_MASK IS_RTC_ALARM_MASK +#define IS_TAMPER IS_RTC_TAMPER +#define IS_TAMPER_ERASE_MODE IS_RTC_TAMPER_ERASE_MODE +#define IS_TAMPER_FILTER IS_RTC_TAMPER_FILTER +#define IS_TAMPER_INTERRUPT IS_RTC_TAMPER_INTERRUPT +#define IS_TAMPER_MASKFLAG_STATE IS_RTC_TAMPER_MASKFLAG_STATE +#define IS_TAMPER_PRECHARGE_DURATION IS_RTC_TAMPER_PRECHARGE_DURATION +#define IS_TAMPER_PULLUP_STATE IS_RTC_TAMPER_PULLUP_STATE +#define IS_TAMPER_SAMPLING_FREQ IS_RTC_TAMPER_SAMPLING_FREQ +#define IS_TAMPER_TIMESTAMPONTAMPER_DETECTION IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION +#define IS_TAMPER_TRIGGER IS_RTC_TAMPER_TRIGGER +#define IS_WAKEUP_CLOCK IS_RTC_WAKEUP_CLOCK +#define IS_WAKEUP_COUNTER IS_RTC_WAKEUP_COUNTER + +#define __RTC_WRITEPROTECTION_ENABLE __HAL_RTC_WRITEPROTECTION_ENABLE +#define __RTC_WRITEPROTECTION_DISABLE __HAL_RTC_WRITEPROTECTION_DISABLE + +#if defined (STM32H5) +#define __HAL_RCC_RTCAPB_CLK_ENABLE __HAL_RCC_RTC_CLK_ENABLE +#define __HAL_RCC_RTCAPB_CLK_DISABLE __HAL_RCC_RTC_CLK_DISABLE +#endif /* STM32H5 */ + +/** + * @} + */ + +/** @defgroup HAL_SD_Aliased_Macros HAL SD/MMC Aliased Macros maintained for legacy purpose + * @{ + */ + +#define SD_OCR_CID_CSD_OVERWRIETE SD_OCR_CID_CSD_OVERWRITE +#define SD_CMD_SD_APP_STAUS SD_CMD_SD_APP_STATUS + +#if !defined(STM32F1) && !defined(STM32F2) && !defined(STM32F4) && !defined(STM32L1) +#define eMMC_HIGH_VOLTAGE_RANGE EMMC_HIGH_VOLTAGE_RANGE +#define eMMC_DUAL_VOLTAGE_RANGE EMMC_DUAL_VOLTAGE_RANGE +#define eMMC_LOW_VOLTAGE_RANGE EMMC_LOW_VOLTAGE_RANGE + +#define SDMMC_NSpeed_CLK_DIV SDMMC_NSPEED_CLK_DIV +#define SDMMC_HSpeed_CLK_DIV SDMMC_HSPEED_CLK_DIV +#endif + +#if defined(STM32F4) || defined(STM32F2) +#define SD_SDMMC_DISABLED SD_SDIO_DISABLED +#define SD_SDMMC_FUNCTION_BUSY SD_SDIO_FUNCTION_BUSY +#define SD_SDMMC_FUNCTION_FAILED SD_SDIO_FUNCTION_FAILED +#define SD_SDMMC_UNKNOWN_FUNCTION SD_SDIO_UNKNOWN_FUNCTION +#define SD_CMD_SDMMC_SEN_OP_COND SD_CMD_SDIO_SEN_OP_COND +#define SD_CMD_SDMMC_RW_DIRECT SD_CMD_SDIO_RW_DIRECT +#define SD_CMD_SDMMC_RW_EXTENDED SD_CMD_SDIO_RW_EXTENDED +#define __HAL_SD_SDMMC_ENABLE __HAL_SD_SDIO_ENABLE +#define __HAL_SD_SDMMC_DISABLE __HAL_SD_SDIO_DISABLE +#define __HAL_SD_SDMMC_DMA_ENABLE __HAL_SD_SDIO_DMA_ENABLE +#define __HAL_SD_SDMMC_DMA_DISABLE __HAL_SD_SDIO_DMA_DISABL +#define __HAL_SD_SDMMC_ENABLE_IT __HAL_SD_SDIO_ENABLE_IT +#define __HAL_SD_SDMMC_DISABLE_IT __HAL_SD_SDIO_DISABLE_IT +#define __HAL_SD_SDMMC_GET_FLAG __HAL_SD_SDIO_GET_FLAG +#define __HAL_SD_SDMMC_CLEAR_FLAG __HAL_SD_SDIO_CLEAR_FLAG +#define __HAL_SD_SDMMC_GET_IT __HAL_SD_SDIO_GET_IT +#define __HAL_SD_SDMMC_CLEAR_IT __HAL_SD_SDIO_CLEAR_IT +#define SDMMC_STATIC_FLAGS SDIO_STATIC_FLAGS +#define SDMMC_CMD0TIMEOUT SDIO_CMD0TIMEOUT +#define SD_SDMMC_SEND_IF_COND SD_SDIO_SEND_IF_COND +/* alias CMSIS */ +#define SDMMC1_IRQn SDIO_IRQn +#define SDMMC1_IRQHandler SDIO_IRQHandler +#endif + +#if defined(STM32F7) || defined(STM32L4) +#define SD_SDIO_DISABLED SD_SDMMC_DISABLED +#define SD_SDIO_FUNCTION_BUSY SD_SDMMC_FUNCTION_BUSY +#define SD_SDIO_FUNCTION_FAILED SD_SDMMC_FUNCTION_FAILED +#define SD_SDIO_UNKNOWN_FUNCTION SD_SDMMC_UNKNOWN_FUNCTION +#define SD_CMD_SDIO_SEN_OP_COND SD_CMD_SDMMC_SEN_OP_COND +#define SD_CMD_SDIO_RW_DIRECT SD_CMD_SDMMC_RW_DIRECT +#define SD_CMD_SDIO_RW_EXTENDED SD_CMD_SDMMC_RW_EXTENDED +#define __HAL_SD_SDIO_ENABLE __HAL_SD_SDMMC_ENABLE +#define __HAL_SD_SDIO_DISABLE __HAL_SD_SDMMC_DISABLE +#define __HAL_SD_SDIO_DMA_ENABLE __HAL_SD_SDMMC_DMA_ENABLE +#define __HAL_SD_SDIO_DMA_DISABL __HAL_SD_SDMMC_DMA_DISABLE +#define __HAL_SD_SDIO_ENABLE_IT __HAL_SD_SDMMC_ENABLE_IT +#define __HAL_SD_SDIO_DISABLE_IT __HAL_SD_SDMMC_DISABLE_IT +#define __HAL_SD_SDIO_GET_FLAG __HAL_SD_SDMMC_GET_FLAG +#define __HAL_SD_SDIO_CLEAR_FLAG __HAL_SD_SDMMC_CLEAR_FLAG +#define __HAL_SD_SDIO_GET_IT __HAL_SD_SDMMC_GET_IT +#define __HAL_SD_SDIO_CLEAR_IT __HAL_SD_SDMMC_CLEAR_IT +#define SDIO_STATIC_FLAGS SDMMC_STATIC_FLAGS +#define SDIO_CMD0TIMEOUT SDMMC_CMD0TIMEOUT +#define SD_SDIO_SEND_IF_COND SD_SDMMC_SEND_IF_COND +/* alias CMSIS for compatibilities */ +#define SDIO_IRQn SDMMC1_IRQn +#define SDIO_IRQHandler SDMMC1_IRQHandler +#endif + +#if defined(STM32F7) || defined(STM32F4) || defined(STM32F2) || defined(STM32L4) || defined(STM32H7) +#define HAL_SD_CardCIDTypedef HAL_SD_CardCIDTypeDef +#define HAL_SD_CardCSDTypedef HAL_SD_CardCSDTypeDef +#define HAL_SD_CardStatusTypedef HAL_SD_CardStatusTypeDef +#define HAL_SD_CardStateTypedef HAL_SD_CardStateTypeDef +#endif + +#if defined(STM32H7) || defined(STM32L5) +#define HAL_MMCEx_Read_DMADoubleBuffer0CpltCallback HAL_MMCEx_Read_DMADoubleBuf0CpltCallback +#define HAL_MMCEx_Read_DMADoubleBuffer1CpltCallback HAL_MMCEx_Read_DMADoubleBuf1CpltCallback +#define HAL_MMCEx_Write_DMADoubleBuffer0CpltCallback HAL_MMCEx_Write_DMADoubleBuf0CpltCallback +#define HAL_MMCEx_Write_DMADoubleBuffer1CpltCallback HAL_MMCEx_Write_DMADoubleBuf1CpltCallback +#define HAL_SDEx_Read_DMADoubleBuffer0CpltCallback HAL_SDEx_Read_DMADoubleBuf0CpltCallback +#define HAL_SDEx_Read_DMADoubleBuffer1CpltCallback HAL_SDEx_Read_DMADoubleBuf1CpltCallback +#define HAL_SDEx_Write_DMADoubleBuffer0CpltCallback HAL_SDEx_Write_DMADoubleBuf0CpltCallback +#define HAL_SDEx_Write_DMADoubleBuffer1CpltCallback HAL_SDEx_Write_DMADoubleBuf1CpltCallback +#define HAL_SD_DriveTransciver_1_8V_Callback HAL_SD_DriveTransceiver_1_8V_Callback +#endif +/** + * @} + */ + +/** @defgroup HAL_SMARTCARD_Aliased_Macros HAL SMARTCARD Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __SMARTCARD_ENABLE_IT __HAL_SMARTCARD_ENABLE_IT +#define __SMARTCARD_DISABLE_IT __HAL_SMARTCARD_DISABLE_IT +#define __SMARTCARD_ENABLE __HAL_SMARTCARD_ENABLE +#define __SMARTCARD_DISABLE __HAL_SMARTCARD_DISABLE +#define __SMARTCARD_DMA_REQUEST_ENABLE __HAL_SMARTCARD_DMA_REQUEST_ENABLE +#define __SMARTCARD_DMA_REQUEST_DISABLE __HAL_SMARTCARD_DMA_REQUEST_DISABLE + +#define __HAL_SMARTCARD_GETCLOCKSOURCE SMARTCARD_GETCLOCKSOURCE +#define __SMARTCARD_GETCLOCKSOURCE SMARTCARD_GETCLOCKSOURCE + +#define IS_SMARTCARD_ONEBIT_SAMPLING IS_SMARTCARD_ONE_BIT_SAMPLE + +/** + * @} + */ + +/** @defgroup HAL_SMBUS_Aliased_Macros HAL SMBUS Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_SMBUS_RESET_CR1 SMBUS_RESET_CR1 +#define __HAL_SMBUS_RESET_CR2 SMBUS_RESET_CR2 +#define __HAL_SMBUS_GENERATE_START SMBUS_GENERATE_START +#define __HAL_SMBUS_GET_ADDR_MATCH SMBUS_GET_ADDR_MATCH +#define __HAL_SMBUS_GET_DIR SMBUS_GET_DIR +#define __HAL_SMBUS_GET_STOP_MODE SMBUS_GET_STOP_MODE +#define __HAL_SMBUS_GET_PEC_MODE SMBUS_GET_PEC_MODE +#define __HAL_SMBUS_GET_ALERT_ENABLED SMBUS_GET_ALERT_ENABLED +/** + * @} + */ + +/** @defgroup HAL_SPI_Aliased_Macros HAL SPI Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_SPI_1LINE_TX SPI_1LINE_TX +#define __HAL_SPI_1LINE_RX SPI_1LINE_RX +#define __HAL_SPI_RESET_CRC SPI_RESET_CRC + +/** + * @} + */ + +/** @defgroup HAL_UART_Aliased_Macros HAL UART Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_UART_GETCLOCKSOURCE UART_GETCLOCKSOURCE +#define __HAL_UART_MASK_COMPUTATION UART_MASK_COMPUTATION +#define __UART_GETCLOCKSOURCE UART_GETCLOCKSOURCE +#define __UART_MASK_COMPUTATION UART_MASK_COMPUTATION + +#define IS_UART_WAKEUPMETHODE IS_UART_WAKEUPMETHOD + +#define IS_UART_ONEBIT_SAMPLE IS_UART_ONE_BIT_SAMPLE +#define IS_UART_ONEBIT_SAMPLING IS_UART_ONE_BIT_SAMPLE + +/** + * @} + */ + + +/** @defgroup HAL_USART_Aliased_Macros HAL USART Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __USART_ENABLE_IT __HAL_USART_ENABLE_IT +#define __USART_DISABLE_IT __HAL_USART_DISABLE_IT +#define __USART_ENABLE __HAL_USART_ENABLE +#define __USART_DISABLE __HAL_USART_DISABLE + +#define __HAL_USART_GETCLOCKSOURCE USART_GETCLOCKSOURCE +#define __USART_GETCLOCKSOURCE USART_GETCLOCKSOURCE + +#if defined(STM32F0) || defined(STM32F3) || defined(STM32F7) +#define USART_OVERSAMPLING_16 0x00000000U +#define USART_OVERSAMPLING_8 USART_CR1_OVER8 + +#define IS_USART_OVERSAMPLING(__SAMPLING__) (((__SAMPLING__) == USART_OVERSAMPLING_16) || \ + ((__SAMPLING__) == USART_OVERSAMPLING_8)) +#endif /* STM32F0 || STM32F3 || STM32F7 */ +/** + * @} + */ + +/** @defgroup HAL_USB_Aliased_Macros HAL USB Aliased Macros maintained for legacy purpose + * @{ + */ +#define USB_EXTI_LINE_WAKEUP USB_WAKEUP_EXTI_LINE + +#define USB_FS_EXTI_TRIGGER_RISING_EDGE USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE +#define USB_FS_EXTI_TRIGGER_FALLING_EDGE USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE +#define USB_FS_EXTI_TRIGGER_BOTH_EDGE USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE +#define USB_FS_EXTI_LINE_WAKEUP USB_OTG_FS_WAKEUP_EXTI_LINE + +#define USB_HS_EXTI_TRIGGER_RISING_EDGE USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE +#define USB_HS_EXTI_TRIGGER_FALLING_EDGE USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE +#define USB_HS_EXTI_TRIGGER_BOTH_EDGE USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE +#define USB_HS_EXTI_LINE_WAKEUP USB_OTG_HS_WAKEUP_EXTI_LINE + +#define __HAL_USB_EXTI_ENABLE_IT __HAL_USB_WAKEUP_EXTI_ENABLE_IT +#define __HAL_USB_EXTI_DISABLE_IT __HAL_USB_WAKEUP_EXTI_DISABLE_IT +#define __HAL_USB_EXTI_GET_FLAG __HAL_USB_WAKEUP_EXTI_GET_FLAG +#define __HAL_USB_EXTI_CLEAR_FLAG __HAL_USB_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_USB_EXTI_SET_RISING_EDGE_TRIGGER __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_EDGE +#define __HAL_USB_EXTI_SET_FALLING_EDGE_TRIGGER __HAL_USB_WAKEUP_EXTI_ENABLE_FALLING_EDGE +#define __HAL_USB_EXTI_SET_FALLINGRISING_TRIGGER __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE + +#define __HAL_USB_FS_EXTI_ENABLE_IT __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT +#define __HAL_USB_FS_EXTI_DISABLE_IT __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT +#define __HAL_USB_FS_EXTI_GET_FLAG __HAL_USB_OTG_FS_WAKEUP_EXTI_GET_FLAG +#define __HAL_USB_FS_EXTI_CLEAR_FLAG __HAL_USB_OTG_FS_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_USB_FS_EXTI_SET_RISING_EGDE_TRIGGER __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_EDGE +#define __HAL_USB_FS_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_FALLING_EDGE +#define __HAL_USB_FS_EXTI_SET_FALLINGRISING_TRIGGER __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE +#define __HAL_USB_FS_EXTI_GENERATE_SWIT __HAL_USB_OTG_FS_WAKEUP_EXTI_GENERATE_SWIT + +#define __HAL_USB_HS_EXTI_ENABLE_IT __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT +#define __HAL_USB_HS_EXTI_DISABLE_IT __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT +#define __HAL_USB_HS_EXTI_GET_FLAG __HAL_USB_OTG_HS_WAKEUP_EXTI_GET_FLAG +#define __HAL_USB_HS_EXTI_CLEAR_FLAG __HAL_USB_OTG_HS_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_USB_HS_EXTI_SET_RISING_EGDE_TRIGGER __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_EDGE +#define __HAL_USB_HS_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_FALLING_EDGE +#define __HAL_USB_HS_EXTI_SET_FALLINGRISING_TRIGGER __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE +#define __HAL_USB_HS_EXTI_GENERATE_SWIT __HAL_USB_OTG_HS_WAKEUP_EXTI_GENERATE_SWIT + +#define HAL_PCD_ActiveRemoteWakeup HAL_PCD_ActivateRemoteWakeup +#define HAL_PCD_DeActiveRemoteWakeup HAL_PCD_DeActivateRemoteWakeup + +#define HAL_PCD_SetTxFiFo HAL_PCDEx_SetTxFiFo +#define HAL_PCD_SetRxFiFo HAL_PCDEx_SetRxFiFo +/** + * @} + */ + +/** @defgroup HAL_TIM_Aliased_Macros HAL TIM Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_TIM_SetICPrescalerValue TIM_SET_ICPRESCALERVALUE +#define __HAL_TIM_ResetICPrescalerValue TIM_RESET_ICPRESCALERVALUE + +#define TIM_GET_ITSTATUS __HAL_TIM_GET_IT_SOURCE +#define TIM_GET_CLEAR_IT __HAL_TIM_CLEAR_IT + +#define __HAL_TIM_GET_ITSTATUS __HAL_TIM_GET_IT_SOURCE + +#define __HAL_TIM_DIRECTION_STATUS __HAL_TIM_IS_TIM_COUNTING_DOWN +#define __HAL_TIM_PRESCALER __HAL_TIM_SET_PRESCALER +#define __HAL_TIM_SetCounter __HAL_TIM_SET_COUNTER +#define __HAL_TIM_GetCounter __HAL_TIM_GET_COUNTER +#define __HAL_TIM_SetAutoreload __HAL_TIM_SET_AUTORELOAD +#define __HAL_TIM_GetAutoreload __HAL_TIM_GET_AUTORELOAD +#define __HAL_TIM_SetClockDivision __HAL_TIM_SET_CLOCKDIVISION +#define __HAL_TIM_GetClockDivision __HAL_TIM_GET_CLOCKDIVISION +#define __HAL_TIM_SetICPrescaler __HAL_TIM_SET_ICPRESCALER +#define __HAL_TIM_GetICPrescaler __HAL_TIM_GET_ICPRESCALER +#define __HAL_TIM_SetCompare __HAL_TIM_SET_COMPARE +#define __HAL_TIM_GetCompare __HAL_TIM_GET_COMPARE + +#define TIM_BREAKINPUTSOURCE_DFSDM TIM_BREAKINPUTSOURCE_DFSDM1 + +#define TIM_OCMODE_ASSYMETRIC_PWM1 TIM_OCMODE_ASYMMETRIC_PWM1 +#define TIM_OCMODE_ASSYMETRIC_PWM2 TIM_OCMODE_ASYMMETRIC_PWM2 +/** + * @} + */ + +/** @defgroup HAL_ETH_Aliased_Macros HAL ETH Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_ETH_EXTI_ENABLE_IT __HAL_ETH_WAKEUP_EXTI_ENABLE_IT +#define __HAL_ETH_EXTI_DISABLE_IT __HAL_ETH_WAKEUP_EXTI_DISABLE_IT +#define __HAL_ETH_EXTI_GET_FLAG __HAL_ETH_WAKEUP_EXTI_GET_FLAG +#define __HAL_ETH_EXTI_CLEAR_FLAG __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_ETH_EXTI_SET_RISING_EGDE_TRIGGER __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE_TRIGGER +#define __HAL_ETH_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE_TRIGGER +#define __HAL_ETH_EXTI_SET_FALLINGRISING_TRIGGER __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLINGRISING_TRIGGER + +#define ETH_PROMISCIOUSMODE_ENABLE ETH_PROMISCUOUS_MODE_ENABLE +#define ETH_PROMISCIOUSMODE_DISABLE ETH_PROMISCUOUS_MODE_DISABLE +#define IS_ETH_PROMISCIOUS_MODE IS_ETH_PROMISCUOUS_MODE +/** + * @} + */ + +/** @defgroup HAL_LTDC_Aliased_Macros HAL LTDC Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_LTDC_LAYER LTDC_LAYER +#define __HAL_LTDC_RELOAD_CONFIG __HAL_LTDC_RELOAD_IMMEDIATE_CONFIG +/** + * @} + */ + +/** @defgroup HAL_SAI_Aliased_Macros HAL SAI Aliased Macros maintained for legacy purpose + * @{ + */ +#define SAI_OUTPUTDRIVE_DISABLED SAI_OUTPUTDRIVE_DISABLE +#define SAI_OUTPUTDRIVE_ENABLED SAI_OUTPUTDRIVE_ENABLE +#define SAI_MASTERDIVIDER_ENABLED SAI_MASTERDIVIDER_ENABLE +#define SAI_MASTERDIVIDER_DISABLED SAI_MASTERDIVIDER_DISABLE +#define SAI_STREOMODE SAI_STEREOMODE +#define SAI_FIFOStatus_Empty SAI_FIFOSTATUS_EMPTY +#define SAI_FIFOStatus_Less1QuarterFull SAI_FIFOSTATUS_LESS1QUARTERFULL +#define SAI_FIFOStatus_1QuarterFull SAI_FIFOSTATUS_1QUARTERFULL +#define SAI_FIFOStatus_HalfFull SAI_FIFOSTATUS_HALFFULL +#define SAI_FIFOStatus_3QuartersFull SAI_FIFOSTATUS_3QUARTERFULL +#define SAI_FIFOStatus_Full SAI_FIFOSTATUS_FULL +#define IS_SAI_BLOCK_MONO_STREO_MODE IS_SAI_BLOCK_MONO_STEREO_MODE +#define SAI_SYNCHRONOUS_EXT SAI_SYNCHRONOUS_EXT_SAI1 +#define SAI_SYNCEXT_IN_ENABLE SAI_SYNCEXT_OUTBLOCKA_ENABLE +/** + * @} + */ + +/** @defgroup HAL_SPDIFRX_Aliased_Macros HAL SPDIFRX Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined(STM32H7) +#define HAL_SPDIFRX_ReceiveControlFlow HAL_SPDIFRX_ReceiveCtrlFlow +#define HAL_SPDIFRX_ReceiveControlFlow_IT HAL_SPDIFRX_ReceiveCtrlFlow_IT +#define HAL_SPDIFRX_ReceiveControlFlow_DMA HAL_SPDIFRX_ReceiveCtrlFlow_DMA +#endif +/** + * @} + */ + +/** @defgroup HAL_HRTIM_Aliased_Functions HAL HRTIM Aliased Functions maintained for legacy purpose + * @{ + */ +#if defined (STM32H7) || defined (STM32G4) || defined (STM32F3) +#define HAL_HRTIM_WaveformCounterStart_IT HAL_HRTIM_WaveformCountStart_IT +#define HAL_HRTIM_WaveformCounterStart_DMA HAL_HRTIM_WaveformCountStart_DMA +#define HAL_HRTIM_WaveformCounterStart HAL_HRTIM_WaveformCountStart +#define HAL_HRTIM_WaveformCounterStop_IT HAL_HRTIM_WaveformCountStop_IT +#define HAL_HRTIM_WaveformCounterStop_DMA HAL_HRTIM_WaveformCountStop_DMA +#define HAL_HRTIM_WaveformCounterStop HAL_HRTIM_WaveformCountStop +#endif +/** + * @} + */ + +/** @defgroup HAL_QSPI_Aliased_Macros HAL QSPI Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined (STM32L4) || defined (STM32F4) || defined (STM32F7) || defined(STM32H7) +#define HAL_QPSI_TIMEOUT_DEFAULT_VALUE HAL_QSPI_TIMEOUT_DEFAULT_VALUE +#endif /* STM32L4 || STM32F4 || STM32F7 */ +/** + * @} + */ + +/** @defgroup HAL_Generic_Aliased_Macros HAL Generic Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined (STM32F7) +#define ART_ACCLERATOR_ENABLE ART_ACCELERATOR_ENABLE +#endif /* STM32F7 */ +/** + * @} + */ + +/** @defgroup HAL_PPP_Aliased_Macros HAL PPP Aliased Macros maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32_HAL_LEGACY */ + + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h new file mode 100644 index 0000000..43446e3 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h @@ -0,0 +1,630 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal.h + * @author MCD Application Team + * @brief This file contains all the functions prototypes for the HAL + * module driver. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_H +#define STM32G4xx_HAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_conf.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup HAL HAL + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup HAL_Exported_Constants HAL Exported Constants + * @{ + */ + +/** @defgroup HAL_TICK_FREQ Tick Frequency + * @{ + */ +#define HAL_TICK_FREQ_10HZ 100U +#define HAL_TICK_FREQ_100HZ 10U +#define HAL_TICK_FREQ_1KHZ 1U +#define HAL_TICK_FREQ_DEFAULT HAL_TICK_FREQ_1KHZ + +/** + * @} + */ + +/** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants + * @{ + */ + +/** @defgroup SYSCFG_BootMode Boot Mode + * @{ + */ +#define SYSCFG_BOOT_MAINFLASH 0x00000000U +#define SYSCFG_BOOT_SYSTEMFLASH SYSCFG_MEMMEMRMP_MODE_0 + +#if defined (FMC_BANK1) +#define SYSCFG_BOOT_FMC SYSCFG_MEMMEMRMP_MODE_1 +#endif /* FMC_BANK1 */ + +#define SYSCFG_BOOT_SRAM (SYSCFG_MEMMEMRMP_MODE_1 | SYSCFG_MEMMEMRMP_MODE_0) + +#if defined (QUADSPI) +#define SYSCFG_BOOT_QUADSPI (SYSCFG_MEMMEMRMP_MODE_2 | SYSCFG_MEMMEMRMP_MODE_1) +#endif /* QUADSPI */ + +/** + * @} + */ + +/** @defgroup SYSCFG_FPU_Interrupts FPU Interrupts + * @{ + */ +#define SYSCFG_IT_FPU_IOC SYSCFG_CFGR1_FPU_IE_0 /*!< Floating Point Unit Invalid operation Interrupt */ +#define SYSCFG_IT_FPU_DZC SYSCFG_CFGR1_FPU_IE_1 /*!< Floating Point Unit Divide-by-zero Interrupt */ +#define SYSCFG_IT_FPU_UFC SYSCFG_CFGR1_FPU_IE_2 /*!< Floating Point Unit Underflow Interrupt */ +#define SYSCFG_IT_FPU_OFC SYSCFG_CFGR1_FPU_IE_3 /*!< Floating Point Unit Overflow Interrupt */ +#define SYSCFG_IT_FPU_IDC SYSCFG_CFGR1_FPU_IE_4 /*!< Floating Point Unit Input denormal Interrupt */ +#define SYSCFG_IT_FPU_IXC SYSCFG_CFGR1_FPU_IE_5 /*!< Floating Point Unit Inexact Interrupt */ + +/** + * @} + */ + +/** @defgroup SYSCFG_CCMSRAMWRP CCM Write protection + * @{ + */ +#define SYSCFG_CCMSRAMWRP_PAGE0 SYSCFG_SWPR_PAGE0 /*!< CCMSRAM Write protection page 0 */ +#define SYSCFG_CCMSRAMWRP_PAGE1 SYSCFG_SWPR_PAGE1 /*!< CCMSRAM Write protection page 1 */ +#define SYSCFG_CCMSRAMWRP_PAGE2 SYSCFG_SWPR_PAGE2 /*!< CCMSRAM Write protection page 2 */ +#define SYSCFG_CCMSRAMWRP_PAGE3 SYSCFG_SWPR_PAGE3 /*!< CCMSRAM Write protection page 3 */ +#define SYSCFG_CCMSRAMWRP_PAGE4 SYSCFG_SWPR_PAGE4 /*!< CCMSRAM Write protection page 4 */ +#define SYSCFG_CCMSRAMWRP_PAGE5 SYSCFG_SWPR_PAGE5 /*!< CCMSRAM Write protection page 5 */ +#define SYSCFG_CCMSRAMWRP_PAGE6 SYSCFG_SWPR_PAGE6 /*!< CCMSRAM Write protection page 6 */ +#define SYSCFG_CCMSRAMWRP_PAGE7 SYSCFG_SWPR_PAGE7 /*!< CCMSRAM Write protection page 7 */ +#define SYSCFG_CCMSRAMWRP_PAGE8 SYSCFG_SWPR_PAGE8 /*!< CCMSRAM Write protection page 8 */ +#define SYSCFG_CCMSRAMWRP_PAGE9 SYSCFG_SWPR_PAGE9 /*!< CCMSRAM Write protection page 9 */ +#define SYSCFG_CCMSRAMWRP_PAGE10 SYSCFG_SWPR_PAGE10 /*!< CCMSRAM Write protection page 10 */ +#define SYSCFG_CCMSRAMWRP_PAGE11 SYSCFG_SWPR_PAGE11 /*!< CCMSRAM Write protection page 11 */ +#define SYSCFG_CCMSRAMWRP_PAGE12 SYSCFG_SWPR_PAGE12 /*!< CCMSRAM Write protection page 12 */ +#define SYSCFG_CCMSRAMWRP_PAGE13 SYSCFG_SWPR_PAGE13 /*!< CCMSRAM Write protection page 13 */ +#define SYSCFG_CCMSRAMWRP_PAGE14 SYSCFG_SWPR_PAGE14 /*!< CCMSRAM Write protection page 14 */ +#define SYSCFG_CCMSRAMWRP_PAGE15 SYSCFG_SWPR_PAGE15 /*!< CCMSRAM Write protection page 15 */ +#define SYSCFG_CCMSRAMWRP_PAGE16 SYSCFG_SWPR_PAGE16 /*!< CCMSRAM Write protection page 16 */ +#define SYSCFG_CCMSRAMWRP_PAGE17 SYSCFG_SWPR_PAGE17 /*!< CCMSRAM Write protection page 17 */ +#define SYSCFG_CCMSRAMWRP_PAGE18 SYSCFG_SWPR_PAGE18 /*!< CCMSRAM Write protection page 18 */ +#define SYSCFG_CCMSRAMWRP_PAGE19 SYSCFG_SWPR_PAGE19 /*!< CCMSRAM Write protection page 19 */ +#define SYSCFG_CCMSRAMWRP_PAGE20 SYSCFG_SWPR_PAGE20 /*!< CCMSRAM Write protection page 20 */ +#define SYSCFG_CCMSRAMWRP_PAGE21 SYSCFG_SWPR_PAGE21 /*!< CCMSRAM Write protection page 21 */ +#define SYSCFG_CCMSRAMWRP_PAGE22 SYSCFG_SWPR_PAGE22 /*!< CCMSRAM Write protection page 22 */ +#define SYSCFG_CCMSRAMWRP_PAGE23 SYSCFG_SWPR_PAGE23 /*!< CCMSRAM Write protection page 23 */ +#define SYSCFG_CCMSRAMWRP_PAGE24 SYSCFG_SWPR_PAGE24 /*!< CCMSRAM Write protection page 24 */ +#define SYSCFG_CCMSRAMWRP_PAGE25 SYSCFG_SWPR_PAGE25 /*!< CCMSRAM Write protection page 25 */ +#define SYSCFG_CCMSRAMWRP_PAGE26 SYSCFG_SWPR_PAGE26 /*!< CCMSRAM Write protection page 26 */ +#define SYSCFG_CCMSRAMWRP_PAGE27 SYSCFG_SWPR_PAGE27 /*!< CCMSRAM Write protection page 27 */ +#define SYSCFG_CCMSRAMWRP_PAGE28 SYSCFG_SWPR_PAGE28 /*!< CCMSRAM Write protection page 28 */ +#define SYSCFG_CCMSRAMWRP_PAGE29 SYSCFG_SWPR_PAGE29 /*!< CCMSRAM Write protection page 29 */ +#define SYSCFG_CCMSRAMWRP_PAGE30 SYSCFG_SWPR_PAGE30 /*!< CCMSRAM Write protection page 30 */ +#define SYSCFG_CCMSRAMWRP_PAGE31 SYSCFG_SWPR_PAGE31 /*!< CCMSRAM Write protection page 31 */ + +/** + * @} + */ + +#if defined(VREFBUF) +/** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale + * @{ + */ +#define SYSCFG_VREFBUF_VOLTAGE_SCALE0 0x00000000U /*!< Voltage reference scale 0 (VREFBUF_OUT = 2.048V) */ +#define SYSCFG_VREFBUF_VOLTAGE_SCALE1 VREFBUF_CSR_VRS_0 /*!< Voltage reference scale 1 (VREFBUF_OUT = 2.5V) */ +#define SYSCFG_VREFBUF_VOLTAGE_SCALE2 VREFBUF_CSR_VRS_1 /*!< Voltage reference scale 2 (VREFBUF_OUT = 2.9V) */ + +/** + * @} + */ + +/** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance + * @{ + */ +#define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE 0x00000000U /*!< VREF_plus pin is internally connected to Voltage reference buffer output */ +#define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_CSR_HIZ /*!< VREF_plus pin is high impedance */ + +/** + * @} + */ +#endif /* VREFBUF */ + +/** @defgroup SYSCFG_flags_definition Flags + * @{ + */ + +#define SYSCFG_FLAG_SRAM_PE SYSCFG_CFGR2_SPF /*!< SRAM parity error (first 32kB of SRAM1 + CCM SRAM) */ +#define SYSCFG_FLAG_CCMSRAM_BUSY SYSCFG_SCSR_CCMBSY /*!< CCMSRAM busy by erase operation */ + +/** + * @} + */ + +/** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO + * @{ + */ + +/** @brief Fast-mode Plus driving capability on a specific GPIO + */ +#define SYSCFG_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< Enable Fast-mode Plus on PB6 */ +#define SYSCFG_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< Enable Fast-mode Plus on PB7 */ +#if defined(SYSCFG_CFGR1_I2C_PB8_FMP) +#define SYSCFG_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< Enable Fast-mode Plus on PB8 */ +#endif /* SYSCFG_CFGR1_I2C_PB8_FMP */ +#if defined(SYSCFG_CFGR1_I2C_PB9_FMP) +#define SYSCFG_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< Enable Fast-mode Plus on PB9 */ +#endif /* SYSCFG_CFGR1_I2C_PB9_FMP */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ + +/** @defgroup DBGMCU_Exported_Macros DBGMCU Exported Macros + * @{ + */ + +/** @brief Freeze/Unfreeze Peripherals in Debug mode + */ +#if defined(DBGMCU_APB1FZR1_DBG_TIM2_STOP) +#define __HAL_DBGMCU_FREEZE_TIM2() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM2() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_TIM2_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_TIM3_STOP) +#define __HAL_DBGMCU_FREEZE_TIM3() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM3() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_TIM3_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_TIM4_STOP) +#define __HAL_DBGMCU_FREEZE_TIM4() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM4() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_TIM4_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_TIM5_STOP) +#define __HAL_DBGMCU_FREEZE_TIM5() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM5() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_TIM5_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_TIM6_STOP) +#define __HAL_DBGMCU_FREEZE_TIM6() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM6() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_TIM6_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_TIM7_STOP) +#define __HAL_DBGMCU_FREEZE_TIM7() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM7() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_TIM7_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_RTC_STOP) +#define __HAL_DBGMCU_FREEZE_RTC() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_RTC_STOP) +#define __HAL_DBGMCU_UNFREEZE_RTC() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_RTC_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_RTC_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_WWDG_STOP) +#define __HAL_DBGMCU_FREEZE_WWDG() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP) +#define __HAL_DBGMCU_UNFREEZE_WWDG() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_WWDG_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_IWDG_STOP) +#define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP) +#define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_IWDG_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_I2C1_STOP) +#define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP) +#define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_I2C1_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_I2C2_STOP) +#define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP) +#define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_I2C2_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_I2C3_STOP) +#define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C3_STOP) +#define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C3_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_I2C3_STOP */ + +#if defined(DBGMCU_APB1FZR1_DBG_LPTIM1_STOP) +#define __HAL_DBGMCU_FREEZE_LPTIM1() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_LPTIM1_STOP) +#define __HAL_DBGMCU_UNFREEZE_LPTIM1() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_LPTIM1_STOP) +#endif /* DBGMCU_APB1FZR1_DBG_LPTIM1_STOP */ + +#if defined(DBGMCU_APB1FZR2_DBG_I2C4_STOP) +#define __HAL_DBGMCU_FREEZE_I2C4_TIMEOUT() SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP) +#define __HAL_DBGMCU_UNFREEZE_I2C4_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP) +#endif /* DBGMCU_APB1FZR2_DBG_I2C4_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_TIM1_STOP) +#define __HAL_DBGMCU_FREEZE_TIM1() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM1_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM1() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM1_STOP) +#endif /* DBGMCU_APB2FZ_DBG_TIM1_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_TIM8_STOP) +#define __HAL_DBGMCU_FREEZE_TIM8() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM8_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM8() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM8_STOP) +#endif /* DBGMCU_APB2FZ_DBG_TIM8_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_TIM15_STOP) +#define __HAL_DBGMCU_FREEZE_TIM15() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM15_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM15() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM15_STOP) +#endif /* DBGMCU_APB2FZ_DBG_TIM15_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_TIM16_STOP) +#define __HAL_DBGMCU_FREEZE_TIM16() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM16_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM16() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM16_STOP) +#endif /* DBGMCU_APB2FZ_DBG_TIM16_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_TIM17_STOP) +#define __HAL_DBGMCU_FREEZE_TIM17() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM17_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM17() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM17_STOP) +#endif /* DBGMCU_APB2FZ_DBG_TIM17_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_TIM20_STOP) +#define __HAL_DBGMCU_FREEZE_TIM20() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM20_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM20() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM20_STOP) +#endif /* DBGMCU_APB2FZ_DBG_TIM20_STOP */ + +#if defined(DBGMCU_APB2FZ_DBG_HRTIM1_STOP) +#define __HAL_DBGMCU_FREEZE_HRTIM1() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_HRTIM1_STOP) +#define __HAL_DBGMCU_UNFREEZE_HRTIM1() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_HRTIM1_STOP) +#endif /* DBGMCU_APB2FZ_DBG_HRTIM1_STOP */ + +/** + * @} + */ + +/** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros + * @{ + */ + +/** @brief Main Flash memory mapped at 0x00000000. + */ +#define __HAL_SYSCFG_REMAPMEMORY_FLASH() CLEAR_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE) + +/** @brief System Flash memory mapped at 0x00000000. + */ +#define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_0) + +/** @brief Embedded SRAM mapped at 0x00000000. + */ +#define __HAL_SYSCFG_REMAPMEMORY_SRAM() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_1|SYSCFG_MEMRMP_MEM_MODE_0)) + +#if defined (FMC_BANK1) +/** @brief FMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000. + */ +#define __HAL_SYSCFG_REMAPMEMORY_FMC() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_1) +#endif /* FMC_BANK1 */ + +#if defined (QUADSPI) +/** @brief QUADSPI mapped at 0x00000000. + */ +#define __HAL_SYSCFG_REMAPMEMORY_QUADSPI() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2|SYSCFG_MEMRMP_MEM_MODE_1)) +#endif /* QUADSPI */ + +/** + * @brief Return the boot mode as configured by user. + * @retval The boot mode as configured by user. The returned value can be one + * of the following values: + * @arg @ref SYSCFG_BOOT_MAINFLASH + * @arg @ref SYSCFG_BOOT_SYSTEMFLASH + * @arg @ref SYSCFG_BOOT_FMC (*) + * @arg @ref SYSCFG_BOOT_QUADSPI (*) + * @arg @ref SYSCFG_BOOT_SRAM + * @note (*) availability depends on devices + */ +#define __HAL_SYSCFG_GET_BOOT_MODE() READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE) + +/** @brief CCMSRAM page write protection enable macro + * @param __CCMSRAMWRP__: This parameter can be a value of @ref SYSCFG_CCMSRAMWRP + * @note write protection can only be disabled by a system reset + * @retval None + */ +/* Legacy define */ +#define __HAL_SYSCFG_CCMSRAM_WRP_1_31_ENABLE __HAL_SYSCFG_CCMSRAM_WRP_0_31_ENABLE +#define __HAL_SYSCFG_CCMSRAM_WRP_0_31_ENABLE(__CCMSRAMWRP__) do {assert_param(IS_SYSCFG_CCMSRAMWRP_PAGE((__CCMSRAMWRP__)));\ + SET_BIT(SYSCFG->SWPR,(__CCMSRAMWRP__));\ + }while(0) + +/** @brief CCMSRAM page write protection unlock prior to erase + * @note Writing a wrong key reactivates the write protection + */ +#define __HAL_SYSCFG_CCMSRAM_WRP_UNLOCK() do {SYSCFG->SKR = 0xCA;\ + SYSCFG->SKR = 0x53;\ + }while(0) + +/** @brief CCMSRAM erase + * @note __SYSCFG_GET_FLAG(SYSCFG_FLAG_CCMSRAM_BUSY) may be used to check end of erase + */ +#define __HAL_SYSCFG_CCMSRAM_ERASE() SET_BIT(SYSCFG->SCSR, SYSCFG_SCSR_CCMER) + +/** @brief Floating Point Unit interrupt enable/disable macros + * @param __INTERRUPT__: This parameter can be a value of @ref SYSCFG_FPU_Interrupts + */ +#define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE(__INTERRUPT__) do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\ + SET_BIT(SYSCFG->CFGR1, (__INTERRUPT__));\ + }while(0) + +#define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE(__INTERRUPT__) do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\ + CLEAR_BIT(SYSCFG->CFGR1, (__INTERRUPT__));\ + }while(0) + +/** @brief SYSCFG Break ECC lock. + * Enable and lock the connection of Flash ECC error connection to TIM1/8/15/16/17 Break input. + * @note The selected configuration is locked and can be unlocked only by system reset. + */ +#define __HAL_SYSCFG_BREAK_ECC_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_ECCL) + +/** @brief SYSCFG Break Cortex-M4 Lockup lock. + * Enable and lock the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/8/15/16/17 Break input. + * @note The selected configuration is locked and can be unlocked only by system reset. + */ +#define __HAL_SYSCFG_BREAK_LOCKUP_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL) + +/** @brief SYSCFG Break PVD lock. + * Enable and lock the PVD connection to Timer1/8/15/16/17 Break input, as well as the PVDE and PLS[2:0] in the PWR_CR2 register. + * @note The selected configuration is locked and can be unlocked only by system reset. + */ +#define __HAL_SYSCFG_BREAK_PVD_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_PVDL) + +/** @brief SYSCFG Break SRAM parity lock. + * Enable and lock the SRAM parity error (first 32kB of SRAM1 + CCM SRAM) signal connection to TIM1/8/15/16/17 Break input. + * @note The selected configuration is locked and can be unlocked by system reset. + */ +#define __HAL_SYSCFG_BREAK_SRAMPARITY_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPL) + +/** @brief Check SYSCFG flag is set or not. + * @param __FLAG__: specifies the flag to check. + * This parameter can be one of the following values: + * @arg @ref SYSCFG_FLAG_SRAM_PE SRAM Parity Error Flag + * @arg @ref SYSCFG_FLAG_CCMSRAM_BUSY CCMSRAM Erase Ongoing + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_SYSCFG_GET_FLAG(__FLAG__) ((((((__FLAG__) == SYSCFG_SCSR_CCMBSY)? SYSCFG->SCSR : SYSCFG->CFGR2)\ + & (__FLAG__))!= 0U) ? 1U : 0U) + +/** @brief Set the SPF bit to clear the SRAM Parity Error Flag. + */ +#define __HAL_SYSCFG_CLEAR_FLAG() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPF) + +/** @brief Fast-mode Plus driving capability enable/disable macros + * @param __FASTMODEPLUS__: This parameter can be a value of : + * @arg @ref SYSCFG_FASTMODEPLUS_PB6 Fast-mode Plus driving capability activation on PB6 + * @arg @ref SYSCFG_FASTMODEPLUS_PB7 Fast-mode Plus driving capability activation on PB7 + * @arg @ref SYSCFG_FASTMODEPLUS_PB8 Fast-mode Plus driving capability activation on PB8 + * @arg @ref SYSCFG_FASTMODEPLUS_PB9 Fast-mode Plus driving capability activation on PB9 + */ +#define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\ + SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\ + }while(0) + +#define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\ + CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\ + }while(0) + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros + * @{ + */ + +#define IS_SYSCFG_FPU_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SYSCFG_IT_FPU_IOC) == SYSCFG_IT_FPU_IOC) || \ + (((__INTERRUPT__) & SYSCFG_IT_FPU_DZC) == SYSCFG_IT_FPU_DZC) || \ + (((__INTERRUPT__) & SYSCFG_IT_FPU_UFC) == SYSCFG_IT_FPU_UFC) || \ + (((__INTERRUPT__) & SYSCFG_IT_FPU_OFC) == SYSCFG_IT_FPU_OFC) || \ + (((__INTERRUPT__) & SYSCFG_IT_FPU_IDC) == SYSCFG_IT_FPU_IDC) || \ + (((__INTERRUPT__) & SYSCFG_IT_FPU_IXC) == SYSCFG_IT_FPU_IXC)) + +#define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SYSCFG_BREAK_ECC) || \ + ((__CONFIG__) == SYSCFG_BREAK_PVD) || \ + ((__CONFIG__) == SYSCFG_BREAK_SRAMPARITY) || \ + ((__CONFIG__) == SYSCFG_BREAK_LOCKUP)) + +#if (CCMSRAM_SIZE == 0x00008000UL) /* STM32G4 devices with CCMSRAM_SIZE = 32 Kbytes */ +#define IS_SYSCFG_CCMSRAMWRP_PAGE(__PAGE__) ((__PAGE__) > 0U) +#elif (CCMSRAM_SIZE == 0x00005000UL) /* STM32G4 devices with CCMSRAM_SIZE = 20 Kbytes */ +#define IS_SYSCFG_CCMSRAMWRP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x000FFFFFU)) +#elif (CCMSRAM_SIZE == 0x00004000UL) /* STM32G4 devices with CCMSRAM_SIZE = 16 Kbytes */ +#define IS_SYSCFG_CCMSRAMWRP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x0000FFFFU)) +#elif (CCMSRAM_SIZE == 0x00002800UL) /* STM32G4 devices with CCMSRAM_SIZE = 10 Kbytes */ +#define IS_SYSCFG_CCMSRAMWRP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x000003FFU)) +#endif /* CCMSRAM_SIZE */ + +#if defined(VREFBUF) +#define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__) (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \ + ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1) || \ + ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE2)) + +#define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__) (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \ + ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE)) + +#define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__) (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM)) +#endif /* VREFBUF */ + +#if defined(SYSCFG_FASTMODEPLUS_PB8) && defined(SYSCFG_FASTMODEPLUS_PB9) +#define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9)) +#elif defined(SYSCFG_FASTMODEPLUS_PB8) +#define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8)) +#elif defined(SYSCFG_FASTMODEPLUS_PB9) +#define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9)) +#else +#define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \ + (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7)) +#endif /* SYSCFG_FASTMODEPLUS_PB */ +/** + * @} + */ + +/** @defgroup HAL_Private_Macros HAL Private Macros + * @{ + */ +#define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \ + ((FREQ) == HAL_TICK_FREQ_100HZ) || \ + ((FREQ) == HAL_TICK_FREQ_1KHZ)) +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup HAL_Exported_Functions + * @{ + */ + +/** @addtogroup HAL_Exported_Functions_Group1 + * @{ + */ +/* Initialization and Configuration functions ******************************/ +HAL_StatusTypeDef HAL_Init(void); +HAL_StatusTypeDef HAL_DeInit(void); +void HAL_MspInit(void); +void HAL_MspDeInit(void); +HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); + +/** + * @} + */ + +/** @addtogroup HAL_Exported_Functions_Group2 HAL Control functions + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_IncTick(void); +void HAL_Delay(uint32_t Delay); +uint32_t HAL_GetTick(void); +uint32_t HAL_GetTickPrio(void); +HAL_StatusTypeDef HAL_SetTickFreq(uint32_t Freq); +uint32_t HAL_GetTickFreq(void); +void HAL_SuspendTick(void); +void HAL_ResumeTick(void); +uint32_t HAL_GetHalVersion(void); +uint32_t HAL_GetREVID(void); +uint32_t HAL_GetDEVID(void); +uint32_t HAL_GetUIDw0(void); +uint32_t HAL_GetUIDw1(void); +uint32_t HAL_GetUIDw2(void); + +/** + * @} + */ + +/** @addtogroup HAL_Exported_Functions_Group3 + * @{ + */ + +/* DBGMCU Peripheral Control functions *****************************************/ +void HAL_DBGMCU_EnableDBGSleepMode(void); +void HAL_DBGMCU_DisableDBGSleepMode(void); +void HAL_DBGMCU_EnableDBGStopMode(void); +void HAL_DBGMCU_DisableDBGStopMode(void); +void HAL_DBGMCU_EnableDBGStandbyMode(void); +void HAL_DBGMCU_DisableDBGStandbyMode(void); + +/** + * @} + */ + +/* Exported variables ---------------------------------------------------------*/ +/** @addtogroup HAL_Exported_Variables + * @{ + */ +extern __IO uint32_t uwTick; +extern uint32_t uwTickPrio; +extern uint32_t uwTickFreq; +/** + * @} + */ + +/** @addtogroup HAL_Exported_Functions_Group4 + * @{ + */ + +/* SYSCFG Control functions ****************************************************/ +void HAL_SYSCFG_CCMSRAMErase(void); +void HAL_SYSCFG_EnableMemorySwappingBank(void); +void HAL_SYSCFG_DisableMemorySwappingBank(void); + +#if defined(VREFBUF) +void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling); +void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode); +void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue); +HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void); +void HAL_SYSCFG_DisableVREFBUF(void); +#endif /* VREFBUF */ + +void HAL_SYSCFG_EnableIOSwitchBooster(void); +void HAL_SYSCFG_DisableIOSwitchBooster(void); +void HAL_SYSCFG_EnableIOSwitchVDD(void); +void HAL_SYSCFG_DisableIOSwitchVDD(void); +void HAL_SYSCFG_CCMSRAM_WriteProtectionEnable(uint32_t Page); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h new file mode 100644 index 0000000..bcddc5f --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h @@ -0,0 +1,2318 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_adc.h + * @author MCD Application Team + * @brief Header file of ADC HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_ADC_H +#define STM32G4xx_HAL_ADC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/* Include low level driver */ +#include "stm32g4xx_ll_adc.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup ADC + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup ADC_Exported_Types ADC Exported Types + * @{ + */ + +/** + * @brief ADC group regular oversampling structure definition + */ +typedef struct +{ + uint32_t Ratio; /*!< Configures the oversampling ratio. + This parameter can be a value of @ref ADC_HAL_EC_OVS_RATIO */ + + uint32_t RightBitShift; /*!< Configures the division coefficient for the Oversampler. + This parameter can be a value of @ref ADC_HAL_EC_OVS_SHIFT */ + + uint32_t TriggeredMode; /*!< Selects the regular triggered oversampling mode. + This parameter can be a value of @ref ADC_HAL_EC_OVS_DISCONT_MODE */ + + uint32_t OversamplingStopReset; /*!< Selects the regular oversampling mode. + The oversampling is either temporary stopped or reset upon an injected + sequence interruption. + If oversampling is enabled on both regular and injected groups, this + parameter is discarded and forced to setting + "ADC_REGOVERSAMPLING_RESUMED_MODE" (the oversampling buffer is zeroed + during injection sequence). + This parameter can be a value of @ref ADC_HAL_EC_OVS_SCOPE_REG */ + +} ADC_OversamplingTypeDef; + +/** + * @brief Structure definition of ADC instance and ADC group regular. + * @note Parameters of this structure are shared within 2 scopes: + * - Scope entire ADC (affects ADC groups regular and injected): ClockPrescaler, Resolution, DataAlign, + * GainCompensation, ScanConvMode, EOCSelection, LowPowerAutoWait. + * - Scope ADC group regular: ContinuousConvMode, NbrOfConversion, DiscontinuousConvMode, NbrOfDiscConversion, + * ExternalTrigConv, ExternalTrigConvEdge, DMAContinuousRequests, Overrun, OversamplingMode, Oversampling, + * SamplingMode. + * @note The setting of these parameters by function HAL_ADC_Init() is conditioned to ADC state. + * ADC state can be either: + * - For all parameters: ADC disabled + * - For all parameters except 'LowPowerAutoWait', 'DMAContinuousRequests' and 'Oversampling': ADC enabled + * without conversion on going on group regular. + * - For parameters 'LowPowerAutoWait' and 'DMAContinuousRequests': ADC enabled without conversion on going + * on groups regular and injected. + * If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed + * without error reporting (as it can be the expected behavior in case of intended action to update another + * parameter (which fulfills the ADC state condition) on the fly). + */ +typedef struct +{ + uint32_t ClockPrescaler; /*!< Select ADC clock source (synchronous clock derived from APB clock or asynchronous + clock derived from system clock or PLL (Refer to reference manual for list of + clocks available)) and clock prescaler. + This parameter can be a value of @ref ADC_HAL_EC_COMMON_CLOCK_SOURCE. + Note: The ADC clock configuration is common to all ADC instances. + Note: In case of usage of channels on injected group, ADC frequency should be + lower than AHB clock frequency /4 for resolution 12 or 10 bits, + AHB clock frequency /3 for resolution 8 bits, + AHB clock frequency /2 for resolution 6 bits. + Note: In case of synchronous clock mode based on HCLK/1, the configuration must + be enabled only if the system clock has a 50% duty clock cycle (APB + prescaler configured inside RCC must be bypassed and PCLK clock must have + 50% duty cycle). Refer to reference manual for details. + Note: In case of usage of asynchronous clock, the selected clock must be + preliminarily enabled at RCC top level. + Note: This parameter can be modified only if all ADC instances are disabled. */ + + uint32_t Resolution; /*!< Configure the ADC resolution. + This parameter can be a value of @ref ADC_HAL_EC_RESOLUTION */ + + uint32_t DataAlign; /*!< Specify ADC data alignment in conversion data register (right or left). + Refer to reference manual for alignments formats versus resolutions. + This parameter can be a value of @ref ADC_HAL_EC_DATA_ALIGN */ + + uint32_t GainCompensation; /*!< Specify the ADC gain compensation coefficient to be applied to ADC raw conversion + data, based on following formula: + DATA = DATA(raw) * (gain compensation coef) / 4096 + "2.12" bit format, unsigned: 2 bits exponents / 12 bits mantissa + Gain step is 1/4096 = 0.000244 + Gain range is 0.0000 to 3.999756 + This parameter value can be + 0 Gain compensation will be disabled and coefficient set to 0 + 1 -> 0x3FFF Gain compensation will be enabled and coefficient set to specified + value + Note: Gain compensation when enabled is applied to all channels. */ + + uint32_t ScanConvMode; /*!< Configure the sequencer of ADC groups regular and injected. + This parameter can be associated to parameter 'DiscontinuousConvMode' to have + main sequence subdivided in successive parts. + If disabled: Conversion is performed in single mode (one channel converted, the + one defined in rank 1). Parameters 'NbrOfConversion' and + 'InjectedNbrOfConversion' are discarded (equivalent to set to 1). + If enabled: Conversions are performed in sequence mode (multiple ranks defined + by 'NbrOfConversion' or 'InjectedNbrOfConversion' and rank of each + channel in sequencer). Scan direction is upward: from rank 1 to + rank 'n'. + This parameter can be a value of @ref ADC_Scan_mode */ + + uint32_t EOCSelection; /*!< Specify which EOC (End Of Conversion) flag is used for conversion by polling and + interruption: end of unitary conversion or end of sequence conversions. + This parameter can be a value of @ref ADC_EOCSelection. */ + + FunctionalState LowPowerAutoWait; /*!< Select the dynamic low power Auto Delay: new conversion start only when the + previous conversion (for ADC group regular) or previous sequence (for ADC group + injected) has been retrieved by user software, using function HAL_ADC_GetValue() + or HAL_ADCEx_InjectedGetValue(). + This feature automatically adapts the frequency of ADC conversions triggers to + the speed of the system that reads the data. Moreover, this avoids risk of + overrun for low frequency applications. + This parameter can be set to ENABLE or DISABLE. + Note: It is not recommended to use with interruption or DMA (HAL_ADC_Start_IT(), + HAL_ADC_Start_DMA()) since these modes have to clear immediately the EOC + flag (by CPU to free the IRQ pending event or by DMA). + Auto wait will work but fort a very short time, discarding its intended + benefit (except specific case of high load of CPU or DMA transfers which + can justify usage of auto wait). + Do use with polling: 1. Start conversion with HAL_ADC_Start(), 2. Later on, + when ADC conversion data is needed: + use HAL_ADC_PollForConversion() to ensure that conversion is completed and + HAL_ADC_GetValue() to retrieve conversion result and trig another + conversion start. (in case of usage of ADC group injected, use the + equivalent functions HAL_ADCExInjected_Start(), + HAL_ADCEx_InjectedGetValue(), ...). */ + + FunctionalState ContinuousConvMode; /*!< Specify whether the conversion is performed in single mode (one conversion) + or continuous mode for ADC group regular, after the first ADC conversion + start trigger occurred (software start or external trigger). This parameter + can be set to ENABLE or DISABLE. */ + + uint32_t NbrOfConversion; /*!< Specify the number of ranks that will be converted within the regular group + sequencer. + This parameter is dependent on ScanConvMode: + - sequencer configured to fully configurable: + Number of ranks in the scan sequence is configurable using this parameter. + Note: After the first call of 'HAL_ADC_Init()', each rank corresponding to + parameter "NbrOfConversion" must be set using 'HAL_ADC_ConfigChannel()'. + Afterwards, when all needed sequencer ranks are set, parameter + 'NbrOfConversion' can be updated without modifying configuration of + sequencer ranks (sequencer ranks above 'NbrOfConversion' are discarded). + - sequencer configured to not fully configurable: + Number of ranks in the scan sequence is defined by number of channels set in + the sequence. This parameter is discarded. + This parameter must be a number between Min_Data = 1 and Max_Data = 8. + Note: This parameter must be modified when no conversion is on going on regular + group (ADC disabled, or ADC enabled without continuous mode or external + trigger that could launch a conversion). */ + + FunctionalState DiscontinuousConvMode; /*!< Specify whether the conversions sequence of ADC group regular is performed + in Complete-sequence/Discontinuous-sequence (main sequence subdivided in + successive parts). + Discontinuous mode is used only if sequencer is enabled (parameter + 'ScanConvMode'). If sequencer is disabled, this parameter is discarded. + Discontinuous mode can be enabled only if continuous mode is disabled. + If continuous mode is enabled, this parameter setting is discarded. + This parameter can be set to ENABLE or DISABLE. + Note: On this STM32 series, ADC group regular number of discontinuous + ranks increment is fixed to one-by-one. */ + + uint32_t NbrOfDiscConversion; /*!< Specifies the number of discontinuous conversions in which the main sequence + of ADC group regular (parameter NbrOfConversion) will be subdivided. + If parameter 'DiscontinuousConvMode' is disabled, this parameter is discarded. + This parameter must be a number between Min_Data = 1 and Max_Data = 8. */ + + uint32_t ExternalTrigConv; /*!< Select the external event source used to trigger ADC group regular conversion + start. + If set to ADC_SOFTWARE_START, external triggers are disabled and software trigger + is used instead. + This parameter can be a value of @ref ADC_regular_external_trigger_source. + Caution: external trigger source is common to all ADC instances. */ + + uint32_t ExternalTrigConvEdge; /*!< Select the external event edge used to trigger ADC group regular conversion start + If trigger source is set to ADC_SOFTWARE_START, this parameter is discarded. + This parameter can be a value of @ref ADC_regular_external_trigger_edge */ + + uint32_t SamplingMode; /*!< Select the sampling mode to be used for ADC group regular conversion. + This parameter can be a value of @ref ADC_regular_sampling_mode */ + + FunctionalState DMAContinuousRequests; /*!< Specify whether the DMA requests are performed in one shot mode (DMA + transfer stops when number of conversions is reached) or in continuous + mode (DMA transfer unlimited, whatever number of conversions). + This parameter can be set to ENABLE or DISABLE. + Note: In continuous mode, DMA must be configured in circular mode. + Otherwise an overrun will be triggered when DMA buffer maximum + pointer is reached. */ + + uint32_t Overrun; /*!< Select the behavior in case of overrun: data overwritten or preserved (default). + This parameter applies to ADC group regular only. + This parameter can be a value of @ref ADC_HAL_EC_REG_OVR_DATA_BEHAVIOR. + Note: In case of overrun set to data preserved and usage with programming model + with interruption (HAL_Start_IT()): ADC IRQ handler has to clear end of + conversion flags, this induces the release of the preserved data. If + needed, this data can be saved in function HAL_ADC_ConvCpltCallback(), + placed in user program code (called before end of conversion flags clear) + Note: Error reporting with respect to the conversion mode: + - Usage with ADC conversion by polling for event or interruption: Error is + reported only if overrun is set to data preserved. If overrun is set to + data overwritten, user can willingly not read all the converted data, + this is not considered as an erroneous case. + - Usage with ADC conversion by DMA: Error is reported whatever overrun + setting (DMA is expected to process all data from data register). */ + + FunctionalState OversamplingMode; /*!< Specify whether the oversampling feature is enabled or disabled. + This parameter can be set to ENABLE or DISABLE. + Note: This parameter can be modified only if there is no conversion is + ongoing on ADC groups regular and injected */ + + ADC_OversamplingTypeDef Oversampling; /*!< Specify the Oversampling parameters. + Caution: this setting overwrites the previous oversampling configuration + if oversampling is already enabled. */ + +} ADC_InitTypeDef; + +/** + * @brief Structure definition of ADC channel for regular group + * @note The setting of these parameters by function HAL_ADC_ConfigChannel() is conditioned to ADC state. + * ADC state can be either: + * - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'SingleDiff') + * - For all except parameters 'SamplingTime', 'Offset', 'OffsetNumber': ADC enabled without conversion + * on going on regular group. + * - For parameters 'SamplingTime', 'Offset', 'OffsetNumber': ADC enabled without conversion on going on + * regular and injected groups. + * If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed + * without error reporting (as it can be the expected behavior in case of intended action to update another + * parameter (which fulfills the ADC state condition) on the fly). + */ +typedef struct +{ + uint32_t Channel; /*!< Specify the channel to configure into ADC regular group. + This parameter can be a value of @ref ADC_HAL_EC_CHANNEL + Note: Depending on devices and ADC instances, some channels may not be available + on device package pins. Refer to device datasheet for channels + availability. */ + + uint32_t Rank; /*!< Specify the rank in the regular group sequencer. + This parameter can be a value of @ref ADC_HAL_EC_REG_SEQ_RANKS + Note: to disable a channel or change order of conversion sequencer, rank + containing a previous channel setting can be overwritten by the new channel + setting (or parameter number of conversions adjusted) */ + + uint32_t SamplingTime; /*!< Sampling time value to be set for the selected channel. + Unit: ADC clock cycles + Conversion time is the addition of sampling time and processing time + (12.5 ADC clock cycles at ADC resolution 12 bits, 10.5 cycles at 10 bits, + 8.5 cycles at 8 bits, 6.5 cycles at 6 bits). + This parameter can be a value of @ref ADC_HAL_EC_CHANNEL_SAMPLINGTIME + Caution: This parameter applies to a channel that can be used into regular + and/or injected group. It overwrites the last setting. + Note: In case of usage of internal measurement channels (VrefInt, Vbat, ...), + sampling time constraints must be respected (sampling time can be adjusted + in function of ADC clock frequency and sampling time setting). + Refer to device datasheet for timings values. */ + + uint32_t SingleDiff; /*!< Select single-ended or differential input. + In differential mode: Differential measurement is carried out between the + selected channel 'i' (positive input) and channel 'i+1' (negative input). + Only channel 'i' has to be configured, channel 'i+1' is configured automatically + This parameter must be a value of @ref ADC_HAL_EC_CHANNEL_SINGLE_DIFF_ENDING + Caution: This parameter applies to a channel that can be used in a regular + and/or injected group. + It overwrites the last setting. + Note: Refer to Reference Manual to ensure the selected channel is available in + differential mode. + Note: When configuring a channel 'i' in differential mode, the channel 'i+1' is + not usable separately. + Note: This parameter must be modified when ADC is disabled (before ADC start + conversion or after ADC stop conversion). + If ADC is enabled, this parameter setting is bypassed without error + reporting (as it can be the expected behavior in case of another parameter + update on the fly) */ + + uint32_t OffsetNumber; /*!< Select the offset number + This parameter can be a value of @ref ADC_HAL_EC_OFFSET_NB + Caution: Only one offset is allowed per channel. This parameter overwrites the + last setting. */ + + uint32_t Offset; /*!< Define the offset to be applied on the raw converted data. + Offset value must be a positive number. + Depending of ADC resolution selected (12, 10, 8 or 6 bits), this parameter + must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, + 0x3FF, 0xFF or 0x3F respectively. + Note: This parameter must be modified when no conversion is on going on both + regular and injected groups (ADC disabled, or ADC enabled without + continuous mode or external trigger that could launch a conversion). */ + + uint32_t OffsetSign; /*!< Define if the offset should be subtracted (negative sign) or added (positive + sign) from or to the raw converted data. + This parameter can be a value of @ref ADCEx_OffsetSign. + Note: This parameter must be modified when no conversion is on going on both + regular and injected groups (ADC disabled, or ADC enabled without + continuous mode or external trigger that could launch a conversion).*/ + FunctionalState OffsetSaturation; /*!< Define if the offset should be saturated upon under or over flow. + This parameter value can be ENABLE or DISABLE. + Note: This parameter must be modified when no conversion is on going on both + regular and injected groups (ADC disabled, or ADC enabled without + continuous mode or external trigger that could launch a conversion). */ + +} ADC_ChannelConfTypeDef; + +/** + * @brief Structure definition of ADC analog watchdog + * @note The setting of these parameters by function HAL_ADC_AnalogWDGConfig() is conditioned to ADC state. + * ADC state can be either: + * - For all parameters except 'HighThreshold', 'LowThreshold': ADC disabled or ADC enabled without conversion + on going on ADC groups regular and injected. + * - For parameters 'HighThreshold', 'LowThreshold': ADC enabled with conversion on going on regular and + injected groups. + */ +typedef struct +{ + uint32_t WatchdogNumber; /*!< Select which ADC analog watchdog is monitoring the selected channel. + For Analog Watchdog 1: Only 1 channel can be monitored (or overall group of channels + by setting parameter 'WatchdogMode') + For Analog Watchdog 2 and 3: Several channels can be monitored (by successive calls + of 'HAL_ADC_AnalogWDGConfig()' for each channel) + This parameter can be a value of @ref ADC_HAL_EC_AWD_NUMBER. */ + + uint32_t WatchdogMode; /*!< Configure the ADC analog watchdog mode: single/all/none channels. + For Analog Watchdog 1: Configure the ADC analog watchdog mode: single channel or all + channels, ADC groups regular and-or injected. + For Analog Watchdog 2 and 3: Several channels can be monitored by applying + successively the AWD init structure. Channels on ADC + group regular and injected are not differentiated: Set + value 'ADC_ANALOGWATCHDOG_SINGLE_xxx' to monitor 1 + channel, value 'ADC_ANALOGWATCHDOG_ALL_xxx' to monitor + all channels, 'ADC_ANALOGWATCHDOG_NONE' to monitor no + channel. + This parameter can be a value of @ref ADC_analog_watchdog_mode. */ + + uint32_t Channel; /*!< Select which ADC channel to monitor by analog watchdog. + For Analog Watchdog 1: this parameter has an effect only if parameter 'WatchdogMode' + is configured on single channel (only 1 channel can be + monitored). + For Analog Watchdog 2 and 3: Several channels can be monitored. To use this feature, + call successively the function HAL_ADC_AnalogWDGConfig() + for each channel to be added (or removed with value + 'ADC_ANALOGWATCHDOG_NONE'). + This parameter can be a value of @ref ADC_HAL_EC_CHANNEL. */ + + FunctionalState ITMode; /*!< Specify whether the analog watchdog is configured in interrupt or polling mode. + This parameter can be set to ENABLE or DISABLE */ + + uint32_t HighThreshold; /*!< Configure the ADC analog watchdog High threshold value. + Depending of ADC resolution selected (12, 10, 8 or 6 bits), this parameter must be a + number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F + respectively. + Note: Analog watchdog 2 and 3 are limited to a resolution of 8 bits: if ADC + resolution is 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits the 2 + LSB are ignored. + Note: If ADC oversampling is enabled, ADC analog watchdog thresholds are + impacted: the comparison of analog watchdog thresholds is done on + oversampling final computation (after ratio and shift application): + ADC data register bitfield [15:4] (12 most significant bits). */ + + uint32_t LowThreshold; /*!< Configures the ADC analog watchdog Low threshold value. + Depending of ADC resolution selected (12, 10, 8 or 6 bits), this parameter must be a + number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F + respectively. + Note: Analog watchdog 2 and 3 are limited to a resolution of 8 bits: if ADC + resolution is 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits the 2 + LSB are ignored. + Note: If ADC oversampling is enabled, ADC analog watchdog thresholds are + impacted: the comparison of analog watchdog thresholds is done on + oversampling final computation (after ratio and shift application): + ADC data register bitfield [15:4] (12 most significant bits).*/ + + uint32_t FilteringConfig; /*!< Specify whether filtering should be use and the number of samples to consider. + Before setting flag or raising interrupt, analog watchdog can wait to have several + consecutive out-of-window samples. This parameter allows to configure this number. + This parameter only applies to Analog watchdog 1. For others, use value + ADC_AWD_FILTERING_NONE. + This parameter can be a value of @ref ADC_analog_watchdog_filtering_config. */ +} ADC_AnalogWDGConfTypeDef; + +/** + * @brief ADC group injected contexts queue configuration + * @note Structure intended to be used only through structure "ADC_HandleTypeDef" + */ +typedef struct +{ + uint32_t ContextQueue; /*!< Injected channel configuration context: build-up over each + HAL_ADCEx_InjectedConfigChannel() call to finally initialize + JSQR register at HAL_ADCEx_InjectedConfigChannel() last call */ + + uint32_t ChannelCount; /*!< Number of channels in the injected sequence */ +} ADC_InjectionConfigTypeDef; + +/** @defgroup ADC_States ADC States + * @{ + */ + +/** + * @brief HAL ADC state machine: ADC states definition (bitfields) + * @note ADC state machine is managed by bitfields, state must be compared + * with bit by bit. + * For example: + * " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_REG_BUSY) != 0UL) " + * " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD1) != 0UL) " + */ +/* States of ADC global scope */ +#define HAL_ADC_STATE_RESET (0x00000000UL) /*!< ADC not yet initialized or disabled */ +#define HAL_ADC_STATE_READY (0x00000001UL) /*!< ADC peripheral ready for use */ +#define HAL_ADC_STATE_BUSY_INTERNAL (0x00000002UL) /*!< ADC is busy due to an internal process (initialization, + calibration, ...) */ +#define HAL_ADC_STATE_TIMEOUT (0x00000004UL) /*!< TimeOut occurrence */ + +/* States of ADC errors */ +#define HAL_ADC_STATE_ERROR_INTERNAL (0x00000010UL) /*!< Internal error occurrence */ +#define HAL_ADC_STATE_ERROR_CONFIG (0x00000020UL) /*!< Configuration error occurrence */ +#define HAL_ADC_STATE_ERROR_DMA (0x00000040UL) /*!< DMA error occurrence */ + +/* States of ADC group regular */ +#define HAL_ADC_STATE_REG_BUSY (0x00000100UL) /*!< A conversion on ADC group regular is ongoing or can occur + (either by continuous mode, external trigger, low power + auto power-on (if feature available), multimode ADC master + control (if feature available)) */ +#define HAL_ADC_STATE_REG_EOC (0x00000200UL) /*!< Conversion data available on group regular */ +#define HAL_ADC_STATE_REG_OVR (0x00000400UL) /*!< Overrun occurrence */ +#define HAL_ADC_STATE_REG_EOSMP (0x00000800UL) /*!< Not available on this STM32 series: End Of Sampling flag + raised */ + +/* States of ADC group injected */ +#define HAL_ADC_STATE_INJ_BUSY (0x00001000UL) /*!< A conversion on ADC group injected is ongoing or can occur + (either by auto-injection mode, external trigger, low + power auto power-on (if feature available), multimode + ADC master control (if feature available)) */ +#define HAL_ADC_STATE_INJ_EOC (0x00002000UL) /*!< Conversion data available on group injected */ +#define HAL_ADC_STATE_INJ_JQOVF (0x00004000UL) /*!< Injected queue overflow occurrence */ + +/* States of ADC analog watchdogs */ +#define HAL_ADC_STATE_AWD1 (0x00010000UL) /*!< Out-of-window occurrence of ADC analog watchdog 1 */ +#define HAL_ADC_STATE_AWD2 (0x00020000UL) /*!< Out-of-window occurrence of ADC analog watchdog 2 */ +#define HAL_ADC_STATE_AWD3 (0x00040000UL) /*!< Out-of-window occurrence of ADC analog watchdog 3 */ + +/* States of ADC multi-mode */ +#define HAL_ADC_STATE_MULTIMODE_SLAVE (0x00100000UL) /*!< ADC in multimode slave state, controlled by another ADC + master (when feature available) */ + +/** + * @} + */ + +/** + * @brief ADC handle Structure definition + */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +typedef struct __ADC_HandleTypeDef +#else +typedef struct +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +{ + ADC_TypeDef *Instance; /*!< Register base address */ + ADC_InitTypeDef Init; /*!< ADC initialization parameters and regular + conversions setting */ + DMA_HandleTypeDef *DMA_Handle; /*!< Pointer DMA Handler */ + HAL_LockTypeDef Lock; /*!< ADC locking object */ + __IO uint32_t State; /*!< ADC communication state (bitmap of ADC states) */ + __IO uint32_t ErrorCode; /*!< ADC Error code */ + ADC_InjectionConfigTypeDef InjectionConfig ; /*!< ADC injected channel configuration build-up + structure */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + void (* ConvCpltCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC conversion complete callback */ + void (* ConvHalfCpltCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC conversion DMA half-transfer + callback */ + void (* LevelOutOfWindowCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC analog watchdog 1 callback */ + void (* ErrorCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC error callback */ + void (* InjectedConvCpltCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC group injected conversion complete + callback */ + void (* InjectedQueueOverflowCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC group injected context queue + overflow callback */ + void (* LevelOutOfWindow2Callback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC analog watchdog 2 callback */ + void (* LevelOutOfWindow3Callback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC analog watchdog 3 callback */ + void (* EndOfSamplingCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC end of sampling callback */ + void (* MspInitCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC Msp Init callback */ + void (* MspDeInitCallback)(struct __ADC_HandleTypeDef *hadc); /*!< ADC Msp DeInit callback */ +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +} ADC_HandleTypeDef; + +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +/** + * @brief HAL ADC Callback ID enumeration definition + */ +typedef enum +{ + HAL_ADC_CONVERSION_COMPLETE_CB_ID = 0x00U, /*!< ADC conversion complete callback ID */ + HAL_ADC_CONVERSION_HALF_CB_ID = 0x01U, /*!< ADC conversion DMA half-transfer callback ID */ + HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID = 0x02U, /*!< ADC analog watchdog 1 callback ID */ + HAL_ADC_ERROR_CB_ID = 0x03U, /*!< ADC error callback ID */ + HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID = 0x04U, /*!< ADC group injected conversion complete callback ID */ + HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID = 0x05U, /*!< ADC group injected context queue overflow callback ID */ + HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID = 0x06U, /*!< ADC analog watchdog 2 callback ID */ + HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID = 0x07U, /*!< ADC analog watchdog 3 callback ID */ + HAL_ADC_END_OF_SAMPLING_CB_ID = 0x08U, /*!< ADC end of sampling callback ID */ + HAL_ADC_MSPINIT_CB_ID = 0x09U, /*!< ADC Msp Init callback ID */ + HAL_ADC_MSPDEINIT_CB_ID = 0x0AU /*!< ADC Msp DeInit callback ID */ +} HAL_ADC_CallbackIDTypeDef; + +/** + * @brief HAL ADC Callback pointer definition + */ +typedef void (*pADC_CallbackTypeDef)(ADC_HandleTypeDef *hadc); /*!< pointer to a ADC callback function */ + +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + +/** + * @} + */ + + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup ADC_Exported_Constants ADC Exported Constants + * @{ + */ + +/** @defgroup ADC_Error_Code ADC Error Code + * @{ + */ +#define HAL_ADC_ERROR_NONE (0x00U) /*!< No error */ +#define HAL_ADC_ERROR_INTERNAL (0x01U) /*!< ADC peripheral internal error (problem of clocking, + enable/disable, erroneous state, ...) */ +#define HAL_ADC_ERROR_OVR (0x02U) /*!< Overrun error */ +#define HAL_ADC_ERROR_DMA (0x04U) /*!< DMA transfer error */ +#define HAL_ADC_ERROR_JQOVF (0x08U) /*!< Injected context queue overflow error */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +#define HAL_ADC_ERROR_INVALID_CALLBACK (0x10U) /*!< Invalid Callback error */ +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source + * @{ + */ + +#define ADC_CLOCK_SYNC_PCLK_DIV1 (LL_ADC_CLOCK_SYNC_PCLK_DIV1) /*!< ADC synchronous clock from AHB clock + without prescaler */ +#define ADC_CLOCK_SYNC_PCLK_DIV2 (LL_ADC_CLOCK_SYNC_PCLK_DIV2) /*!< ADC synchronous clock from AHB clock + with prescaler division by 2 */ +#define ADC_CLOCK_SYNC_PCLK_DIV4 (LL_ADC_CLOCK_SYNC_PCLK_DIV4) /*!< ADC synchronous clock from AHB clock + with prescaler division by 4 */ +#define ADC_CLOCK_ASYNC_DIV1 (LL_ADC_CLOCK_ASYNC_DIV1) /*!< ADC asynchronous clock without + prescaler */ +#define ADC_CLOCK_ASYNC_DIV2 (LL_ADC_CLOCK_ASYNC_DIV2) /*!< ADC asynchronous clock with prescaler + division by 2 */ +#define ADC_CLOCK_ASYNC_DIV4 (LL_ADC_CLOCK_ASYNC_DIV4) /*!< ADC asynchronous clock with prescaler + division by 4 */ +#define ADC_CLOCK_ASYNC_DIV6 (LL_ADC_CLOCK_ASYNC_DIV6) /*!< ADC asynchronous clock with prescaler + division by 6 */ +#define ADC_CLOCK_ASYNC_DIV8 (LL_ADC_CLOCK_ASYNC_DIV8) /*!< ADC asynchronous clock with prescaler + division by 8 */ +#define ADC_CLOCK_ASYNC_DIV10 (LL_ADC_CLOCK_ASYNC_DIV10) /*!< ADC asynchronous clock with prescaler + division by 10 */ +#define ADC_CLOCK_ASYNC_DIV12 (LL_ADC_CLOCK_ASYNC_DIV12) /*!< ADC asynchronous clock with prescaler + division by 12 */ +#define ADC_CLOCK_ASYNC_DIV16 (LL_ADC_CLOCK_ASYNC_DIV16) /*!< ADC asynchronous clock with prescaler + division by 16 */ +#define ADC_CLOCK_ASYNC_DIV32 (LL_ADC_CLOCK_ASYNC_DIV32) /*!< ADC asynchronous clock with prescaler + division by 32 */ +#define ADC_CLOCK_ASYNC_DIV64 (LL_ADC_CLOCK_ASYNC_DIV64) /*!< ADC asynchronous clock with prescaler + division by 64 */ +#define ADC_CLOCK_ASYNC_DIV128 (LL_ADC_CLOCK_ASYNC_DIV128) /*!< ADC asynchronous clock with prescaler + division by 128 */ +#define ADC_CLOCK_ASYNC_DIV256 (LL_ADC_CLOCK_ASYNC_DIV256) /*!< ADC asynchronous clock with prescaler + division by 256 */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_RESOLUTION ADC instance - Resolution + * @{ + */ +#define ADC_RESOLUTION_12B (LL_ADC_RESOLUTION_12B) /*!< ADC resolution 12 bits */ +#define ADC_RESOLUTION_10B (LL_ADC_RESOLUTION_10B) /*!< ADC resolution 10 bits */ +#define ADC_RESOLUTION_8B (LL_ADC_RESOLUTION_8B) /*!< ADC resolution 8 bits */ +#define ADC_RESOLUTION_6B (LL_ADC_RESOLUTION_6B) /*!< ADC resolution 6 bits */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_DATA_ALIGN ADC conversion data alignment + * @{ + */ +#define ADC_DATAALIGN_RIGHT (LL_ADC_DATA_ALIGN_RIGHT) /*!< ADC conversion data alignment: right aligned + (alignment on data register LSB bit 0)*/ +#define ADC_DATAALIGN_LEFT (LL_ADC_DATA_ALIGN_LEFT) /*!< ADC conversion data alignment: left aligned + (alignment on data register MSB bit 15)*/ +/** + * @} + */ + +/** @defgroup ADC_Scan_mode ADC sequencer scan mode + * @{ + */ +#define ADC_SCAN_DISABLE (0x00000000UL) /*!< Scan mode disabled */ +#define ADC_SCAN_ENABLE (0x00000001UL) /*!< Scan mode enabled */ +/** + * @} + */ + +/** @defgroup ADC_regular_external_trigger_source ADC group regular trigger source + * @{ + */ +/* ADC group regular trigger sources for all ADC instances */ +#define ADC_SOFTWARE_START (LL_ADC_REG_TRIG_SOFTWARE) /*!< ADC group regular conversion + trigger software start */ +#define ADC_EXTERNALTRIG_T1_TRGO (LL_ADC_REG_TRIG_EXT_TIM1_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM1 TRGO. */ +#define ADC_EXTERNALTRIG_T1_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) /*!< ADC group regular conversion + trigger from external peripheral: TIM1 TRGO2. */ +#define ADC_EXTERNALTRIG_T1_CC1 (LL_ADC_REG_TRIG_EXT_TIM1_CH1) /*!< ADC group regular conversion + trigger from external peripheral: TIM1 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIG_T1_CC2 (LL_ADC_REG_TRIG_EXT_TIM1_CH2) /*!< ADC group regular conversion + trigger from external peripheral: TIM1 channel 2 event (capture compare). */ +#define ADC_EXTERNALTRIG_T1_CC3 (LL_ADC_REG_TRIG_EXT_TIM1_CH3) /*!< ADC group regular conversion + trigger from external peripheral: TIM1 channel 3 event (capture compare). */ +#define ADC_EXTERNALTRIG_T2_TRGO (LL_ADC_REG_TRIG_EXT_TIM2_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM2 TRGO. */ +#define ADC_EXTERNALTRIG_T2_CC1 (LL_ADC_REG_TRIG_EXT_TIM2_CH1) /*!< ADC group regular conversion + trigger from external peripheral: TIM2 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIG_T2_CC2 (LL_ADC_REG_TRIG_EXT_TIM2_CH2) /*!< ADC group regular conversion + trigger from external peripheral: TIM2 channel 2 event (capture compare). */ +#define ADC_EXTERNALTRIG_T2_CC3 (LL_ADC_REG_TRIG_EXT_TIM2_CH3) /*!< ADC group regular conversion + trigger from external peripheral: TIM2 channel 3 event (capture compare). */ +#define ADC_EXTERNALTRIG_T3_TRGO (LL_ADC_REG_TRIG_EXT_TIM3_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM3 TRGO. */ +#define ADC_EXTERNALTRIG_T3_CC1 (LL_ADC_REG_TRIG_EXT_TIM3_CH1) /*!< ADC group regular conversion + trigger from external peripheral: TIM3 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIG_T3_CC4 (LL_ADC_REG_TRIG_EXT_TIM3_CH4) /*!< ADC group regular conversion + trigger from external peripheral: TIM3 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIG_T4_TRGO (LL_ADC_REG_TRIG_EXT_TIM4_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM4 TRGO. */ +#define ADC_EXTERNALTRIG_T4_CC1 (LL_ADC_REG_TRIG_EXT_TIM4_CH1) /*!< ADC group regular conversion + trigger from external peripheral: TIM4 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIG_T4_CC4 (LL_ADC_REG_TRIG_EXT_TIM4_CH4) /*!< ADC group regular conversion + trigger from external peripheral: TIM4 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIG_T6_TRGO (LL_ADC_REG_TRIG_EXT_TIM6_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM6 TRGO. */ +#define ADC_EXTERNALTRIG_T7_TRGO (LL_ADC_REG_TRIG_EXT_TIM7_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM7 TRGO. */ +#define ADC_EXTERNALTRIG_T8_TRGO (LL_ADC_REG_TRIG_EXT_TIM8_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM8 TRGO. */ +#define ADC_EXTERNALTRIG_T8_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) /*!< ADC group regular conversion + trigger from external peripheral: TIM8 TRGO2. */ +#define ADC_EXTERNALTRIG_T8_CC1 (LL_ADC_REG_TRIG_EXT_TIM8_CH1) /*!< ADC group regular conversion + trigger from external peripheral: TIM8 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIG_T15_TRGO (LL_ADC_REG_TRIG_EXT_TIM15_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM15 TRGO. */ +#define ADC_EXTERNALTRIG_T20_TRGO (LL_ADC_REG_TRIG_EXT_TIM20_TRGO) /*!< ADC group regular conversion + trigger from external peripheral: TIM20 TRGO. */ +#define ADC_EXTERNALTRIG_T20_TRGO2 (LL_ADC_REG_TRIG_EXT_TIM20_TRGO2) /*!< ADC group regular conversion + trigger from external peripheral: TIM20 TRGO2. */ +#define ADC_EXTERNALTRIG_T20_CC1 (LL_ADC_REG_TRIG_EXT_TIM20_CH1) /*!< ADC group regular conversion + trigger from external peripheral: TIM20 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIG_T20_CC2 (LL_ADC_REG_TRIG_EXT_TIM20_CH2) /*!< ADC group regular conversion + trigger from external peripheral: TIM20 channel 2 event (capture compare). */ +#define ADC_EXTERNALTRIG_T20_CC3 (LL_ADC_REG_TRIG_EXT_TIM20_CH3) /*!< ADC group regular conversion + trigger from external peripheral: TIM20 channel 3 event (capture compare). */ +#define ADC_EXTERNALTRIG_HRTIM_TRG1 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG1) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 1 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG2 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG2) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 2 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG3 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG3) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 3 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG4 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG4) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 4 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG5 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG5) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 5 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG6 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG6) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 6 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG7 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG7) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 7 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG8 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG8) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 8 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG9 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG9) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 9 event. */ +#define ADC_EXTERNALTRIG_HRTIM_TRG10 (LL_ADC_REG_TRIG_EXT_HRTIM_TRG10) /*!< ADC group regular conversion + trigger from external peripheral: HRTIMER ADC trigger 10 event. */ +#define ADC_EXTERNALTRIG_EXT_IT2 (LL_ADC_REG_TRIG_EXT_EXTI_LINE2) /*!< ADC group regular conversion + trigger from external peripheral: external interrupt line 2. */ +#define ADC_EXTERNALTRIG_EXT_IT11 (LL_ADC_REG_TRIG_EXT_EXTI_LINE11) /*!< ADC group regular conversion + trigger from external peripheral: external interrupt line 11. */ +#define ADC_EXTERNALTRIG_LPTIM_OUT (LL_ADC_REG_TRIG_EXT_LPTIM_OUT) /*!< ADC group regular conversion + trigger from external peripheral: LPTIMER OUT event. */ +/** + * @} + */ + +/** @defgroup ADC_regular_external_trigger_edge ADC group regular trigger edge (when external trigger is selected) + * @{ + */ +#define ADC_EXTERNALTRIGCONVEDGE_NONE (0x00000000UL) /*!< ADC group regular trigger + disabled (SW start)*/ +#define ADC_EXTERNALTRIGCONVEDGE_RISING (LL_ADC_REG_TRIG_EXT_RISING) /*!< ADC group regular conversion + trigger polarity set to rising edge */ +#define ADC_EXTERNALTRIGCONVEDGE_FALLING (LL_ADC_REG_TRIG_EXT_FALLING) /*!< ADC group regular conversion + trigger polarity set to falling edge */ +#define ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING (LL_ADC_REG_TRIG_EXT_RISINGFALLING) /*!< ADC group regular conversion + trigger polarity set to both rising and falling edges */ +/** + * @} + */ + +/** @defgroup ADC_regular_sampling_mode ADC group regular sampling mode + * @{ + */ +#define ADC_SAMPLING_MODE_NORMAL (0x00000000UL) /*!< ADC conversions sampling phase duration is + defined using @ref ADC_HAL_EC_CHANNEL_SAMPLINGTIME */ +#define ADC_SAMPLING_MODE_BULB (ADC_CFGR2_BULB) /*!< ADC conversions sampling phase starts + immediately after end of conversion, and stops upon trigger event. + Note: First conversion is using minimal sampling time + (see @ref ADC_HAL_EC_CHANNEL_SAMPLINGTIME) */ +#define ADC_SAMPLING_MODE_TRIGGER_CONTROLED (ADC_CFGR2_SMPTRIG) /*!< ADC conversions sampling phase is controlled + by trigger events: + Trigger rising edge = start sampling + Trigger falling edge = stop sampling and start conversion */ +/** + * @} + */ + +/** @defgroup ADC_EOCSelection ADC sequencer end of unitary conversion or sequence conversions + * @{ + */ +#define ADC_EOC_SINGLE_CONV (ADC_ISR_EOC) /*!< End of unitary conversion flag */ +#define ADC_EOC_SEQ_CONV (ADC_ISR_EOS) /*!< End of sequence conversions flag */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_REG_OVR_DATA_BEHAVIOR ADC group regular - Overrun behavior on conversion data + * @{ + */ +#define ADC_OVR_DATA_PRESERVED (LL_ADC_REG_OVR_DATA_PRESERVED) /*!< ADC group regular behavior in case + of overrun: data preserved */ +#define ADC_OVR_DATA_OVERWRITTEN (LL_ADC_REG_OVR_DATA_OVERWRITTEN) /*!< ADC group regular behavior in case + of overrun: data overwritten */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks + * @{ + */ +#define ADC_REGULAR_RANK_1 (LL_ADC_REG_RANK_1) /*!< ADC group regular sequencer rank 1 */ +#define ADC_REGULAR_RANK_2 (LL_ADC_REG_RANK_2) /*!< ADC group regular sequencer rank 2 */ +#define ADC_REGULAR_RANK_3 (LL_ADC_REG_RANK_3) /*!< ADC group regular sequencer rank 3 */ +#define ADC_REGULAR_RANK_4 (LL_ADC_REG_RANK_4) /*!< ADC group regular sequencer rank 4 */ +#define ADC_REGULAR_RANK_5 (LL_ADC_REG_RANK_5) /*!< ADC group regular sequencer rank 5 */ +#define ADC_REGULAR_RANK_6 (LL_ADC_REG_RANK_6) /*!< ADC group regular sequencer rank 6 */ +#define ADC_REGULAR_RANK_7 (LL_ADC_REG_RANK_7) /*!< ADC group regular sequencer rank 7 */ +#define ADC_REGULAR_RANK_8 (LL_ADC_REG_RANK_8) /*!< ADC group regular sequencer rank 8 */ +#define ADC_REGULAR_RANK_9 (LL_ADC_REG_RANK_9) /*!< ADC group regular sequencer rank 9 */ +#define ADC_REGULAR_RANK_10 (LL_ADC_REG_RANK_10) /*!< ADC group regular sequencer rank 10 */ +#define ADC_REGULAR_RANK_11 (LL_ADC_REG_RANK_11) /*!< ADC group regular sequencer rank 11 */ +#define ADC_REGULAR_RANK_12 (LL_ADC_REG_RANK_12) /*!< ADC group regular sequencer rank 12 */ +#define ADC_REGULAR_RANK_13 (LL_ADC_REG_RANK_13) /*!< ADC group regular sequencer rank 13 */ +#define ADC_REGULAR_RANK_14 (LL_ADC_REG_RANK_14) /*!< ADC group regular sequencer rank 14 */ +#define ADC_REGULAR_RANK_15 (LL_ADC_REG_RANK_15) /*!< ADC group regular sequencer rank 15 */ +#define ADC_REGULAR_RANK_16 (LL_ADC_REG_RANK_16) /*!< ADC group regular sequencer rank 16 */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time + * @{ + */ +#define ADC_SAMPLETIME_2CYCLES_5 (LL_ADC_SAMPLINGTIME_2CYCLES_5) /*!< Sampling time 2.5 ADC clock cycles */ +#define ADC_SAMPLETIME_6CYCLES_5 (LL_ADC_SAMPLINGTIME_6CYCLES_5) /*!< Sampling time 6.5 ADC clock cycles */ +#define ADC_SAMPLETIME_12CYCLES_5 (LL_ADC_SAMPLINGTIME_12CYCLES_5) /*!< Sampling time 12.5 ADC clock cycles */ +#define ADC_SAMPLETIME_24CYCLES_5 (LL_ADC_SAMPLINGTIME_24CYCLES_5) /*!< Sampling time 24.5 ADC clock cycles */ +#define ADC_SAMPLETIME_47CYCLES_5 (LL_ADC_SAMPLINGTIME_47CYCLES_5) /*!< Sampling time 47.5 ADC clock cycles */ +#define ADC_SAMPLETIME_92CYCLES_5 (LL_ADC_SAMPLINGTIME_92CYCLES_5) /*!< Sampling time 92.5 ADC clock cycles */ +#define ADC_SAMPLETIME_247CYCLES_5 (LL_ADC_SAMPLINGTIME_247CYCLES_5) /*!< Sampling time 247.5 ADC clock cycles */ +#define ADC_SAMPLETIME_640CYCLES_5 (LL_ADC_SAMPLINGTIME_640CYCLES_5) /*!< Sampling time 640.5 ADC clock cycles */ +#define ADC_SAMPLETIME_3CYCLES_5 (ADC_SMPR1_SMPPLUS | LL_ADC_SAMPLINGTIME_2CYCLES_5) /*!< Sampling time 3.5 + ADC clock cycles. If selected, this sampling time replaces sampling time + 2.5 ADC clock cycles. These 2 sampling times cannot be used simultaneously. */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_CHANNEL ADC instance - Channel number + * @{ + */ +/* Note: VrefInt, TempSensor and Vbat internal channels are not available on */ +/* all ADC instances (refer to Reference Manual). */ +#define ADC_CHANNEL_0 (LL_ADC_CHANNEL_0) /*!< External channel (GPIO pin) ADCx_IN0 */ +#define ADC_CHANNEL_1 (LL_ADC_CHANNEL_1) /*!< External channel (GPIO pin) ADCx_IN1 */ +#define ADC_CHANNEL_2 (LL_ADC_CHANNEL_2) /*!< External channel (GPIO pin) ADCx_IN2 */ +#define ADC_CHANNEL_3 (LL_ADC_CHANNEL_3) /*!< External channel (GPIO pin) ADCx_IN3 */ +#define ADC_CHANNEL_4 (LL_ADC_CHANNEL_4) /*!< External channel (GPIO pin) ADCx_IN4 */ +#define ADC_CHANNEL_5 (LL_ADC_CHANNEL_5) /*!< External channel (GPIO pin) ADCx_IN5 */ +#define ADC_CHANNEL_6 (LL_ADC_CHANNEL_6) /*!< External channel (GPIO pin) ADCx_IN6 */ +#define ADC_CHANNEL_7 (LL_ADC_CHANNEL_7) /*!< External channel (GPIO pin) ADCx_IN7 */ +#define ADC_CHANNEL_8 (LL_ADC_CHANNEL_8) /*!< External channel (GPIO pin) ADCx_IN8 */ +#define ADC_CHANNEL_9 (LL_ADC_CHANNEL_9) /*!< External channel (GPIO pin) ADCx_IN9 */ +#define ADC_CHANNEL_10 (LL_ADC_CHANNEL_10) /*!< External channel (GPIO pin) ADCx_IN10 */ +#define ADC_CHANNEL_11 (LL_ADC_CHANNEL_11) /*!< External channel (GPIO pin) ADCx_IN11 */ +#define ADC_CHANNEL_12 (LL_ADC_CHANNEL_12) /*!< External channel (GPIO pin) ADCx_IN12 */ +#define ADC_CHANNEL_13 (LL_ADC_CHANNEL_13) /*!< External channel (GPIO pin) ADCx_IN13 */ +#define ADC_CHANNEL_14 (LL_ADC_CHANNEL_14) /*!< External channel (GPIO pin) ADCx_IN14 */ +#define ADC_CHANNEL_15 (LL_ADC_CHANNEL_15) /*!< External channel (GPIO pin) ADCx_IN15 */ +#define ADC_CHANNEL_16 (LL_ADC_CHANNEL_16) /*!< External channel (GPIO pin) ADCx_IN16 */ +#define ADC_CHANNEL_17 (LL_ADC_CHANNEL_17) /*!< External channel (GPIO pin) ADCx_IN17 */ +#define ADC_CHANNEL_18 (LL_ADC_CHANNEL_18) /*!< External channel (GPIO pin) ADCx_IN18 */ +#define ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_VREFINT) /*!< Internal channel VrefInt: Internal + voltage reference. On this STM32 series, ADC channel available on all + instances but ADC2. */ +#define ADC_CHANNEL_TEMPSENSOR_ADC1 (LL_ADC_CHANNEL_TEMPSENSOR_ADC1) /*!< Internal channel Temperature sensor. + On this STM32 series, ADC channel available only on ADC1 instance. */ +#define ADC_CHANNEL_TEMPSENSOR_ADC5 (LL_ADC_CHANNEL_TEMPSENSOR_ADC5) /*!< Internal channel Temperature sensor. + On this STM32 series, ADC channel available only on ADC5 instance. + Refer to device datasheet for ADC5 availability */ +#define ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_VBAT) /*!< Internal channel Vbat/3: Vbat voltage + through a divider ladder of factor 1/3 to have channel voltage always below + Vdda. + On this STM32 series, ADC channel available on all Instances but ADC2 & ADC4. + Refer to device datasheet for ADC4 availability */ +#define ADC_CHANNEL_VOPAMP1 (LL_ADC_CHANNEL_VOPAMP1) /*!< Internal channel OPAMP1 output. + On this STM32 series, ADC channel available only on ADC1 instance. */ +#define ADC_CHANNEL_VOPAMP2 (LL_ADC_CHANNEL_VOPAMP2) /*!< Internal channel OPAMP2 output. + On this STM32 series, ADC channel available only on ADC2 instance. */ +#define ADC_CHANNEL_VOPAMP3_ADC2 (LL_ADC_CHANNEL_VOPAMP3_ADC2) /*!< Internal channel OPAMP3 output. + On this STM32 series, ADC channel available only on ADC2 instance. */ +#define ADC_CHANNEL_VOPAMP3_ADC3 (LL_ADC_CHANNEL_VOPAMP3_ADC3) /*!< Internal channel OPAMP3 output. + On this STM32 series, ADC channel available only on ADC3 instance. + Refer to device datasheet for ADC3 availability */ +#define ADC_CHANNEL_VOPAMP4 (LL_ADC_CHANNEL_VOPAMP4) /*!< Internal channel OPAMP4 output. + On this STM32 series, ADC channel available only on ADC5 instance. + Refer to device datasheet for ADC5 availability */ +#define ADC_CHANNEL_VOPAMP5 (LL_ADC_CHANNEL_VOPAMP5) /*!< Internal channel OPAMP5 output. + On this STM32 series, ADC channel available only on ADC5 instance. + Refer to device datasheet for ADC5 availability */ +#define ADC_CHANNEL_VOPAMP6 (LL_ADC_CHANNEL_VOPAMP6) /*!< Internal channel OPAMP6 output. + On this STM32 series, ADC channel available only on ADC4 instance. + Refer to device datasheet for ADC4 availability */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_AWD_NUMBER Analog watchdog - ADC analog watchdog (AWD) number + * @{ + */ +#define ADC_ANALOGWATCHDOG_1 (LL_ADC_AWD1) /*!< ADC analog watchdog number 1 */ +#define ADC_ANALOGWATCHDOG_2 (LL_ADC_AWD2) /*!< ADC analog watchdog number 2 */ +#define ADC_ANALOGWATCHDOG_3 (LL_ADC_AWD3) /*!< ADC analog watchdog number 3 */ +/** + * @} + */ + +/** @defgroup ADC_analog_watchdog_filtering_config ADC analog watchdog (AWD) filtering configuration + * @{ + */ +#define ADC_AWD_FILTERING_NONE (0x00000000UL) /*!< ADC AWD no filtering, one +out-of-window sample to raise flag or interrupt */ +#define ADC_AWD_FILTERING_2SAMPLES ((ADC_TR1_AWDFILT_0)) /*!< ADC AWD 2 consecutives + out-of-window samples to raise flag or interrupt */ +#define ADC_AWD_FILTERING_3SAMPLES ((ADC_TR1_AWDFILT_1)) /*!< ADC AWD 3 consecutives + out-of-window samples to raise flag or interrupt */ +#define ADC_AWD_FILTERING_4SAMPLES ((ADC_TR1_AWDFILT_1 | ADC_TR1_AWDFILT_0)) /*!< ADC AWD 4 consecutives + out-of-window samples to raise flag or interrupt */ +#define ADC_AWD_FILTERING_5SAMPLES ((ADC_TR1_AWDFILT_2)) /*!< ADC AWD 5 consecutives + out-of-window samples to raise flag or interrupt */ +#define ADC_AWD_FILTERING_6SAMPLES ((ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_0)) /*!< ADC AWD 6 consecutives + out-of-window samples to raise flag or interrupt */ +#define ADC_AWD_FILTERING_7SAMPLES ((ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_1)) /*!< ADC AWD 7 consecutives + out-of-window samples to raise flag or interrupt */ +#define ADC_AWD_FILTERING_8SAMPLES ((ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_1 \ + | ADC_TR1_AWDFILT_0)) /*!< ADC AWD 8 consecutives + out-of-window samples to raise flag or interrupt */ +/** + * @} + */ + +/** @defgroup ADC_analog_watchdog_mode ADC analog watchdog (AWD) mode + * @{ + */ +#define ADC_ANALOGWATCHDOG_NONE (0x00000000UL) /*!< ADC AWD not selected */ +#define ADC_ANALOGWATCHDOG_SINGLE_REG (ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN) /*!< ADC AWD applied to a regular + group single channel */ +#define ADC_ANALOGWATCHDOG_SINGLE_INJEC (ADC_CFGR_AWD1SGL | ADC_CFGR_JAWD1EN) /*!< ADC AWD applied to an + injected group single channel */ +#define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC (ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN\ + | ADC_CFGR_JAWD1EN) /*!< ADC AWD applied to a regular + and injected groups single channel */ +#define ADC_ANALOGWATCHDOG_ALL_REG (ADC_CFGR_AWD1EN) /*!< ADC AWD applied to regular + group all channels */ +#define ADC_ANALOGWATCHDOG_ALL_INJEC (ADC_CFGR_JAWD1EN) /*!< ADC AWD applied to injected + group all channels */ +#define ADC_ANALOGWATCHDOG_ALL_REGINJEC (ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN) /*!< ADC AWD applied to regular + and injected groups all channels */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_OVS_RATIO Oversampling - Ratio + * @{ + */ +/** + * @note The oversampling ratio is the number of ADC conversions performed, sum of these conversions data is computed + * to result as the ADC oversampling conversion data (before potential shift) + */ +#define ADC_OVERSAMPLING_RATIO_2 (LL_ADC_OVS_RATIO_2) /*!< ADC oversampling ratio 2 */ +#define ADC_OVERSAMPLING_RATIO_4 (LL_ADC_OVS_RATIO_4) /*!< ADC oversampling ratio 4 */ +#define ADC_OVERSAMPLING_RATIO_8 (LL_ADC_OVS_RATIO_8) /*!< ADC oversampling ratio 8 */ +#define ADC_OVERSAMPLING_RATIO_16 (LL_ADC_OVS_RATIO_16) /*!< ADC oversampling ratio 16 */ +#define ADC_OVERSAMPLING_RATIO_32 (LL_ADC_OVS_RATIO_32) /*!< ADC oversampling ratio 32 */ +#define ADC_OVERSAMPLING_RATIO_64 (LL_ADC_OVS_RATIO_64) /*!< ADC oversampling ratio 64 */ +#define ADC_OVERSAMPLING_RATIO_128 (LL_ADC_OVS_RATIO_128) /*!< ADC oversampling ratio 128 */ +#define ADC_OVERSAMPLING_RATIO_256 (LL_ADC_OVS_RATIO_256) /*!< ADC oversampling ratio 256 */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_OVS_SHIFT Oversampling - Data shift + * @{ + */ +/** + * @note The sum of the ADC conversions data is divided by "Rightbitshift" number to result as the ADC oversampling + * conversion data) + */ +#define ADC_RIGHTBITSHIFT_NONE (LL_ADC_OVS_SHIFT_NONE) /*!< ADC oversampling no shift */ +#define ADC_RIGHTBITSHIFT_1 (LL_ADC_OVS_SHIFT_RIGHT_1) /*!< ADC oversampling right shift of 1 ranks */ +#define ADC_RIGHTBITSHIFT_2 (LL_ADC_OVS_SHIFT_RIGHT_2) /*!< ADC oversampling right shift of 2 ranks */ +#define ADC_RIGHTBITSHIFT_3 (LL_ADC_OVS_SHIFT_RIGHT_3) /*!< ADC oversampling right shift of 3 ranks */ +#define ADC_RIGHTBITSHIFT_4 (LL_ADC_OVS_SHIFT_RIGHT_4) /*!< ADC oversampling right shift of 4 ranks */ +#define ADC_RIGHTBITSHIFT_5 (LL_ADC_OVS_SHIFT_RIGHT_5) /*!< ADC oversampling right shift of 5 ranks */ +#define ADC_RIGHTBITSHIFT_6 (LL_ADC_OVS_SHIFT_RIGHT_6) /*!< ADC oversampling right shift of 6 ranks */ +#define ADC_RIGHTBITSHIFT_7 (LL_ADC_OVS_SHIFT_RIGHT_7) /*!< ADC oversampling right shift of 7 ranks */ +#define ADC_RIGHTBITSHIFT_8 (LL_ADC_OVS_SHIFT_RIGHT_8) /*!< ADC oversampling right shift of 8 ranks */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_OVS_DISCONT_MODE Oversampling - Discontinuous mode + * @{ + */ +#define ADC_TRIGGEREDMODE_SINGLE_TRIGGER (LL_ADC_OVS_REG_CONT) /*!< ADC oversampling discontinuous mode: + continuous mode (all conversions of OVS ratio are done from 1 trigger) */ +#define ADC_TRIGGEREDMODE_MULTI_TRIGGER (LL_ADC_OVS_REG_DISCONT) /*!< ADC oversampling discontinuous mode: + discontinuous mode (each conversion of OVS ratio needs a trigger) */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_OVS_SCOPE_REG Oversampling - Oversampling scope for ADC group regular + * @{ + */ +#define ADC_REGOVERSAMPLING_CONTINUED_MODE (LL_ADC_OVS_GRP_REGULAR_CONTINUED) /*!< Oversampling buffer maintained + during injection sequence */ +#define ADC_REGOVERSAMPLING_RESUMED_MODE (LL_ADC_OVS_GRP_REGULAR_RESUMED) /*!< Oversampling buffer zeroed during + injection sequence */ +/** + * @} + */ + +/** @defgroup ADC_Event_type ADC Event type + * @{ + */ +/** + * @note Analog watchdog 1 is available on all stm32 series + * Analog watchdog 2 and 3 are not available on all series + */ +#define ADC_EOSMP_EVENT (ADC_FLAG_EOSMP) /*!< ADC End of Sampling event */ +#define ADC_AWD1_EVENT (ADC_FLAG_AWD1) /*!< ADC Analog watchdog 1 event (main analog watchdog) */ +#define ADC_AWD2_EVENT (ADC_FLAG_AWD2) /*!< ADC Analog watchdog 2 event (additional analog watchdog) */ +#define ADC_AWD3_EVENT (ADC_FLAG_AWD3) /*!< ADC Analog watchdog 3 event (additional analog watchdog) */ +#define ADC_OVR_EVENT (ADC_FLAG_OVR) /*!< ADC overrun event */ +#define ADC_JQOVF_EVENT (ADC_FLAG_JQOVF) /*!< ADC Injected Context Queue Overflow event */ +/** + * @} + */ +#define ADC_AWD_EVENT ADC_AWD1_EVENT /*!< ADC Analog watchdog 1 event: Naming for compatibility + with other STM32 devices having only one analog watchdog */ + +/** @defgroup ADC_interrupts_definition ADC interrupts definition + * @{ + */ +#define ADC_IT_RDY ADC_IER_ADRDYIE /*!< ADC Ready interrupt source */ +#define ADC_IT_EOSMP ADC_IER_EOSMPIE /*!< ADC End of sampling interrupt source */ +#define ADC_IT_EOC ADC_IER_EOCIE /*!< ADC End of regular conversion interrupt source */ +#define ADC_IT_EOS ADC_IER_EOSIE /*!< ADC End of regular sequence of conversions interrupt source */ +#define ADC_IT_OVR ADC_IER_OVRIE /*!< ADC overrun interrupt source */ +#define ADC_IT_JEOC ADC_IER_JEOCIE /*!< ADC End of injected conversion interrupt source */ +#define ADC_IT_JEOS ADC_IER_JEOSIE /*!< ADC End of injected sequence of conversions interrupt source */ +#define ADC_IT_AWD1 ADC_IER_AWD1IE /*!< ADC Analog watchdog 1 interrupt source (main analog watchdog) */ +#define ADC_IT_AWD2 ADC_IER_AWD2IE /*!< ADC Analog watchdog 2 interrupt source (additional analog + watchdog) */ +#define ADC_IT_AWD3 ADC_IER_AWD3IE /*!< ADC Analog watchdog 3 interrupt source (additional analog + watchdog) */ +#define ADC_IT_JQOVF ADC_IER_JQOVFIE /*!< ADC Injected Context Queue Overflow interrupt source */ + +/** + * @} + */ + +/** @defgroup ADC_flags_definition ADC flags definition + * @{ + */ +#define ADC_FLAG_RDY ADC_ISR_ADRDY /*!< ADC Ready flag */ +#define ADC_FLAG_EOSMP ADC_ISR_EOSMP /*!< ADC End of Sampling flag */ +#define ADC_FLAG_EOC ADC_ISR_EOC /*!< ADC End of Regular Conversion flag */ +#define ADC_FLAG_EOS ADC_ISR_EOS /*!< ADC End of Regular sequence of Conversions flag */ +#define ADC_FLAG_OVR ADC_ISR_OVR /*!< ADC overrun flag */ +#define ADC_FLAG_JEOC ADC_ISR_JEOC /*!< ADC End of Injected Conversion flag */ +#define ADC_FLAG_JEOS ADC_ISR_JEOS /*!< ADC End of Injected sequence of Conversions flag */ +#define ADC_FLAG_AWD1 ADC_ISR_AWD1 /*!< ADC Analog watchdog 1 flag (main analog watchdog) */ +#define ADC_FLAG_AWD2 ADC_ISR_AWD2 /*!< ADC Analog watchdog 2 flag (additional analog watchdog) */ +#define ADC_FLAG_AWD3 ADC_ISR_AWD3 /*!< ADC Analog watchdog 3 flag (additional analog watchdog) */ +#define ADC_FLAG_JQOVF ADC_ISR_JQOVF /*!< ADC Injected Context Queue Overflow flag */ + +/** + * @} + */ + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ + +/** @defgroup ADC_Private_Macros ADC Private Macros + * @{ + */ +/* Macro reserved for internal HAL driver usage, not intended to be used in */ +/* code of final user. */ + +/** + * @brief Return resolution bits in CFGR register RES[1:0] field. + * @param __HANDLE__ ADC handle + * @retval Value of bitfield RES in CFGR register. + */ +#define ADC_GET_RESOLUTION(__HANDLE__) \ + (LL_ADC_GetResolution((__HANDLE__)->Instance)) + +/** + * @brief Clear ADC error code (set it to no error code "HAL_ADC_ERROR_NONE"). + * @param __HANDLE__ ADC handle + * @retval None + */ +#define ADC_CLEAR_ERRORCODE(__HANDLE__) ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE) + +/** + * @brief Simultaneously clear and set specific bits of the handle State. + * @note ADC_STATE_CLR_SET() macro is merely aliased to generic macro MODIFY_REG(), + * the first parameter is the ADC handle State, the second parameter is the + * bit field to clear, the third and last parameter is the bit field to set. + * @retval None + */ +#define ADC_STATE_CLR_SET MODIFY_REG + +/** + * @brief Verify that a given value is aligned with the ADC resolution range. + * @param __RESOLUTION__ ADC resolution (12, 10, 8 or 6 bits). + * @param __ADC_VALUE__ value checked against the resolution. + * @retval SET (__ADC_VALUE__ in line with __RESOLUTION__) or RESET (__ADC_VALUE__ not in line with __RESOLUTION__) + */ +#define IS_ADC_RANGE(__RESOLUTION__, __ADC_VALUE__) \ + ((__ADC_VALUE__) <= __LL_ADC_DIGITAL_SCALE(__RESOLUTION__)) + +/** + * @brief Verify the length of the scheduled regular conversions group. + * @param __LENGTH__ number of programmed conversions. + * @retval SET (__LENGTH__ is within the maximum number of possible programmable regular conversions) + * or RESET (__LENGTH__ is null or too large) + */ +#define IS_ADC_REGULAR_NB_CONV(__LENGTH__) (((__LENGTH__) >= (1UL)) && ((__LENGTH__) <= (16UL))) + + +/** + * @brief Verify the number of scheduled regular conversions in discontinuous mode. + * @param NUMBER number of scheduled regular conversions in discontinuous mode. + * @retval SET (NUMBER is within the maximum number of regular conversions in discontinuous mode) + * or RESET (NUMBER is null or too large) + */ +#define IS_ADC_REGULAR_DISCONT_NUMBER(NUMBER) (((NUMBER) >= (1UL)) && ((NUMBER) <= (8UL))) + + +/** + * @brief Verify the ADC clock setting. + * @param __ADC_CLOCK__ programmed ADC clock. + * @retval SET (__ADC_CLOCK__ is a valid value) or RESET (__ADC_CLOCK__ is invalid) + */ +#define IS_ADC_CLOCKPRESCALER(__ADC_CLOCK__) (((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV1) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV2) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV4) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV1) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV2) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV4) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV6) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV8) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV10) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV12) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV16) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV32) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV64) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV128) || \ + ((__ADC_CLOCK__) == ADC_CLOCK_ASYNC_DIV256) ) + +/** + * @brief Verify the ADC resolution setting. + * @param __RESOLUTION__ programmed ADC resolution. + * @retval SET (__RESOLUTION__ is a valid value) or RESET (__RESOLUTION__ is invalid) + */ +#define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_12B) || \ + ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \ + ((__RESOLUTION__) == ADC_RESOLUTION_8B) || \ + ((__RESOLUTION__) == ADC_RESOLUTION_6B) ) + +/** + * @brief Verify the ADC resolution setting when limited to 6 or 8 bits. + * @param __RESOLUTION__ programmed ADC resolution when limited to 6 or 8 bits. + * @retval SET (__RESOLUTION__ is a valid value) or RESET (__RESOLUTION__ is invalid) + */ +#define IS_ADC_RESOLUTION_8_6_BITS(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_8B) || \ + ((__RESOLUTION__) == ADC_RESOLUTION_6B) ) + +/** + * @brief Verify the ADC converted data alignment. + * @param __ALIGN__ programmed ADC converted data alignment. + * @retval SET (__ALIGN__ is a valid value) or RESET (__ALIGN__ is invalid) + */ +#define IS_ADC_DATA_ALIGN(__ALIGN__) (((__ALIGN__) == ADC_DATAALIGN_RIGHT) || \ + ((__ALIGN__) == ADC_DATAALIGN_LEFT) ) + +/** + * @brief Verify the ADC gain compensation. + * @param __GAIN_COMPENSATION__ programmed ADC gain compensation coefficient. + * @retval SET (__GAIN_COMPENSATION__ is a valid value) or RESET (__GAIN_COMPENSATION__ is invalid) + */ +#define IS_ADC_GAIN_COMPENSATION(__GAIN_COMPENSATION__) ((__GAIN_COMPENSATION__) <= 16393UL) + +/** + * @brief Verify the ADC scan mode. + * @param __SCAN_MODE__ programmed ADC scan mode. + * @retval SET (__SCAN_MODE__ is valid) or RESET (__SCAN_MODE__ is invalid) + */ +#define IS_ADC_SCAN_MODE(__SCAN_MODE__) (((__SCAN_MODE__) == ADC_SCAN_DISABLE) || \ + ((__SCAN_MODE__) == ADC_SCAN_ENABLE) ) + +/** + * @brief Verify the ADC edge trigger setting for regular group. + * @param __EDGE__ programmed ADC edge trigger setting. + * @retval SET (__EDGE__ is a valid value) or RESET (__EDGE__ is invalid) + */ +#define IS_ADC_EXTTRIG_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \ + ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISING) || \ + ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_FALLING) || \ + ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING) ) + +/** + * @brief Verify the ADC regular conversions external trigger. + * @param __HANDLE__ ADC handle + * @param __REGTRIG__ programmed ADC regular conversions external trigger. + * @retval SET (__REGTRIG__ is a valid value) or RESET (__REGTRIG__ is invalid) + */ +#if defined(STM32G474xx) || defined(STM32G484xx) +#define IS_ADC_EXTTRIG(__HANDLE__, __REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T7_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG5) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG6) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG7) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG8) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG9) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG10) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11))) || \ + ((((__HANDLE__)->Instance == ADC3) || \ + ((__HANDLE__)->Instance == ADC4) || \ + ((__HANDLE__)->Instance == ADC5)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_HRTIM_TRG4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT2))) || \ + ((__REGTRIG__) == ADC_SOFTWARE_START) ) +#elif defined(STM32G473xx) || defined(STM32G483xx) +#define IS_ADC_EXTTRIG(__HANDLE__, __REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T7_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11))) || \ + ((((__HANDLE__)->Instance == ADC3) || \ + ((__HANDLE__)->Instance == ADC4) || \ + ((__HANDLE__)->Instance == ADC5)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT2))) || \ + ((__REGTRIG__) == ADC_SOFTWARE_START) ) +#elif defined(STM32G471xx) +#define IS_ADC_EXTTRIG(__HANDLE__, __REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T7_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11))) || \ + ((((__HANDLE__)->Instance == ADC3)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT2))) || \ + ((__REGTRIG__) == ADC_SOFTWARE_START) ) +#elif defined(STM32G411xB) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define IS_ADC_EXTTRIG(__HANDLE__, __REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T7_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM_OUT) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11) || \ + ((__REGTRIG__) == ADC_SOFTWARE_START) ) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) || defined(STM32G411xC) +#define IS_ADC_EXTTRIG(__HANDLE__, __REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T6_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T7_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T15_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_TRGO) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_TRGO2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T1_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC4) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC2) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T20_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT11))) || \ + (((__HANDLE__)->Instance == ADC3) && \ + (((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T2_CC3) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T3_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T4_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_T8_CC1) || \ + ((__REGTRIG__) == ADC_EXTERNALTRIG_EXT_IT2))) || \ + ((__REGTRIG__) == ADC_SOFTWARE_START) ) +#endif /* STM32G4xx */ + +/** + * @brief Verify the ADC regular conversions external trigger. + * @param __SAMPLINGMODE__ programmed ADC regular conversions external trigger. + * @retval SET (__SAMPLINGMODE__ is a valid value) or RESET (__SAMPLINGMODE__ is invalid) + */ +#define IS_ADC_SAMPLINGMODE(__SAMPLINGMODE__) (((__SAMPLINGMODE__) == ADC_SAMPLING_MODE_NORMAL) || \ + ((__SAMPLINGMODE__) == ADC_SAMPLING_MODE_BULB) || \ + ((__SAMPLINGMODE__) == ADC_SAMPLING_MODE_TRIGGER_CONTROLED) ) + +/** + * @brief Verify the ADC regular conversions check for converted data availability. + * @param __EOC_SELECTION__ converted data availability check. + * @retval SET (__EOC_SELECTION__ is a valid value) or RESET (__EOC_SELECTION__ is invalid) + */ +#define IS_ADC_EOC_SELECTION(__EOC_SELECTION__) (((__EOC_SELECTION__) == ADC_EOC_SINGLE_CONV) || \ + ((__EOC_SELECTION__) == ADC_EOC_SEQ_CONV) ) + +/** + * @brief Verify the ADC regular conversions overrun handling. + * @param __OVR__ ADC regular conversions overrun handling. + * @retval SET (__OVR__ is a valid value) or RESET (__OVR__ is invalid) + */ +#define IS_ADC_OVERRUN(__OVR__) (((__OVR__) == ADC_OVR_DATA_PRESERVED) || \ + ((__OVR__) == ADC_OVR_DATA_OVERWRITTEN) ) + +/** + * @brief Verify the ADC conversions sampling time. + * @param __TIME__ ADC conversions sampling time. + * @retval SET (__TIME__ is a valid value) or RESET (__TIME__ is invalid) + */ +#define IS_ADC_SAMPLE_TIME(__TIME__) (((__TIME__) == ADC_SAMPLETIME_2CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_3CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_6CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_12CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_24CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_47CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_92CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_247CYCLES_5) || \ + ((__TIME__) == ADC_SAMPLETIME_640CYCLES_5) ) + +/** + * @brief Verify the ADC regular channel setting. + * @param __CHANNEL__ programmed ADC regular channel. + * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid) + */ +#define IS_ADC_REGULAR_RANK(__CHANNEL__) (((__CHANNEL__) == ADC_REGULAR_RANK_1 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_2 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_3 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_4 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_5 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_6 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_7 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_8 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_9 ) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_10) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_11) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_12) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_13) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_14) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_15) || \ + ((__CHANNEL__) == ADC_REGULAR_RANK_16) ) + +/** + * @} + */ + + +/* Private constants ---------------------------------------------------------*/ + +/** @defgroup ADC_Private_Constants ADC Private Constants + * @{ + */ + +/* Fixed timeout values for ADC conversion (including sampling time) */ +/* Maximum sampling time is 640.5 ADC clock cycle (SMPx[2:0] = 0b111 */ +/* Maximum conversion time is 12.5 + Maximum sampling time */ +/* or 12.5 + 640.5 = 653 ADC clock cycles */ +/* Minimum ADC Clock frequency is 0.14 MHz */ +/* Maximum conversion time is */ +/* 653 / 0.14 MHz = 4.66 ms */ +#define ADC_STOP_CONVERSION_TIMEOUT ( 5UL) /*!< ADC stop time-out value */ + +/* Delay for temperature sensor stabilization time. */ +/* Maximum delay is 120us (refer device datasheet, parameter tSTART). */ +/* Unit: us */ +#define ADC_TEMPSENSOR_DELAY_US (LL_ADC_DELAY_TEMPSENSOR_STAB_US) + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/** @defgroup ADC_Exported_Macros ADC Exported Macros + * @{ + */ +/* Macro for internal HAL driver usage, and possibly can be used into code of */ +/* final user. */ + +/** @defgroup ADC_HAL_EM_HANDLE_IT_FLAG HAL ADC macro to manage HAL ADC handle, IT and flags. + * @{ + */ + +/** @brief Reset ADC handle state. + * @param __HANDLE__ ADC handle + * @retval None + */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +#define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) \ + do{ \ + (__HANDLE__)->State = HAL_ADC_STATE_RESET; \ + (__HANDLE__)->MspInitCallback = NULL; \ + (__HANDLE__)->MspDeInitCallback = NULL; \ + } while(0) +#else +#define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) \ + ((__HANDLE__)->State = HAL_ADC_STATE_RESET) +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + +/** + * @brief Enable ADC interrupt. + * @param __HANDLE__ ADC handle + * @param __INTERRUPT__ ADC Interrupt + * This parameter can be one of the following values: + * @arg @ref ADC_IT_RDY ADC Ready interrupt source + * @arg @ref ADC_IT_EOSMP ADC End of Sampling interrupt source + * @arg @ref ADC_IT_EOC ADC End of Regular Conversion interrupt source + * @arg @ref ADC_IT_EOS ADC End of Regular sequence of Conversions interrupt source + * @arg @ref ADC_IT_OVR ADC overrun interrupt source + * @arg @ref ADC_IT_JEOC ADC End of Injected Conversion interrupt source + * @arg @ref ADC_IT_JEOS ADC End of Injected sequence of Conversions interrupt source + * @arg @ref ADC_IT_AWD1 ADC Analog watchdog 1 interrupt source (main analog watchdog) + * @arg @ref ADC_IT_AWD2 ADC Analog watchdog 2 interrupt source (additional analog watchdog) + * @arg @ref ADC_IT_AWD3 ADC Analog watchdog 3 interrupt source (additional analog watchdog) + * @arg @ref ADC_IT_JQOVF ADC Injected Context Queue Overflow interrupt source. + * @retval None + */ +#define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) \ + (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__)) + +/** + * @brief Disable ADC interrupt. + * @param __HANDLE__ ADC handle + * @param __INTERRUPT__ ADC Interrupt + * This parameter can be one of the following values: + * @arg @ref ADC_IT_RDY ADC Ready interrupt source + * @arg @ref ADC_IT_EOSMP ADC End of Sampling interrupt source + * @arg @ref ADC_IT_EOC ADC End of Regular Conversion interrupt source + * @arg @ref ADC_IT_EOS ADC End of Regular sequence of Conversions interrupt source + * @arg @ref ADC_IT_OVR ADC overrun interrupt source + * @arg @ref ADC_IT_JEOC ADC End of Injected Conversion interrupt source + * @arg @ref ADC_IT_JEOS ADC End of Injected sequence of Conversions interrupt source + * @arg @ref ADC_IT_AWD1 ADC Analog watchdog 1 interrupt source (main analog watchdog) + * @arg @ref ADC_IT_AWD2 ADC Analog watchdog 2 interrupt source (additional analog watchdog) + * @arg @ref ADC_IT_AWD3 ADC Analog watchdog 3 interrupt source (additional analog watchdog) + * @arg @ref ADC_IT_JQOVF ADC Injected Context Queue Overflow interrupt source. + * @retval None + */ +#define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) \ + (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__)) + +/** @brief Checks if the specified ADC interrupt source is enabled or disabled. + * @param __HANDLE__ ADC handle + * @param __INTERRUPT__ ADC interrupt source to check + * This parameter can be one of the following values: + * @arg @ref ADC_IT_RDY ADC Ready interrupt source + * @arg @ref ADC_IT_EOSMP ADC End of Sampling interrupt source + * @arg @ref ADC_IT_EOC ADC End of Regular Conversion interrupt source + * @arg @ref ADC_IT_EOS ADC End of Regular sequence of Conversions interrupt source + * @arg @ref ADC_IT_OVR ADC overrun interrupt source + * @arg @ref ADC_IT_JEOC ADC End of Injected Conversion interrupt source + * @arg @ref ADC_IT_JEOS ADC End of Injected sequence of Conversions interrupt source + * @arg @ref ADC_IT_AWD1 ADC Analog watchdog 1 interrupt source (main analog watchdog) + * @arg @ref ADC_IT_AWD2 ADC Analog watchdog 2 interrupt source (additional analog watchdog) + * @arg @ref ADC_IT_AWD3 ADC Analog watchdog 3 interrupt source (additional analog watchdog) + * @arg @ref ADC_IT_JQOVF ADC Injected Context Queue Overflow interrupt source. + * @retval State of interruption (SET or RESET) + */ +#define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \ + (((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) + +/** + * @brief Check whether the specified ADC flag is set or not. + * @param __HANDLE__ ADC handle + * @param __FLAG__ ADC flag + * This parameter can be one of the following values: + * @arg @ref ADC_FLAG_RDY ADC Ready flag + * @arg @ref ADC_FLAG_EOSMP ADC End of Sampling flag + * @arg @ref ADC_FLAG_EOC ADC End of Regular Conversion flag + * @arg @ref ADC_FLAG_EOS ADC End of Regular sequence of Conversions flag + * @arg @ref ADC_FLAG_OVR ADC overrun flag + * @arg @ref ADC_FLAG_JEOC ADC End of Injected Conversion flag + * @arg @ref ADC_FLAG_JEOS ADC End of Injected sequence of Conversions flag + * @arg @ref ADC_FLAG_AWD1 ADC Analog watchdog 1 flag (main analog watchdog) + * @arg @ref ADC_FLAG_AWD2 ADC Analog watchdog 2 flag (additional analog watchdog) + * @arg @ref ADC_FLAG_AWD3 ADC Analog watchdog 3 flag (additional analog watchdog) + * @arg @ref ADC_FLAG_JQOVF ADC Injected Context Queue Overflow flag. + * @retval State of flag (TRUE or FALSE). + */ +#define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) \ + ((((__HANDLE__)->Instance->ISR) & (__FLAG__)) == (__FLAG__)) + +/** + * @brief Clear the specified ADC flag. + * @param __HANDLE__ ADC handle + * @param __FLAG__ ADC flag + * This parameter can be one of the following values: + * @arg @ref ADC_FLAG_RDY ADC Ready flag + * @arg @ref ADC_FLAG_EOSMP ADC End of Sampling flag + * @arg @ref ADC_FLAG_EOC ADC End of Regular Conversion flag + * @arg @ref ADC_FLAG_EOS ADC End of Regular sequence of Conversions flag + * @arg @ref ADC_FLAG_OVR ADC overrun flag + * @arg @ref ADC_FLAG_JEOC ADC End of Injected Conversion flag + * @arg @ref ADC_FLAG_JEOS ADC End of Injected sequence of Conversions flag + * @arg @ref ADC_FLAG_AWD1 ADC Analog watchdog 1 flag (main analog watchdog) + * @arg @ref ADC_FLAG_AWD2 ADC Analog watchdog 2 flag (additional analog watchdog) + * @arg @ref ADC_FLAG_AWD3 ADC Analog watchdog 3 flag (additional analog watchdog) + * @arg @ref ADC_FLAG_JQOVF ADC Injected Context Queue Overflow flag. + * @retval None + */ +/* Note: bit cleared bit by writing 1 (writing 0 has no effect on any bit of register ISR) */ +#define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) \ + (((__HANDLE__)->Instance->ISR) = (__FLAG__)) + +/** + * @} + */ + +/** @defgroup ADC_HAL_EM_HELPER_MACRO HAL ADC helper macro + * @{ + */ + +/** + * @brief Helper macro to get ADC channel number in decimal format + * from literals ADC_CHANNEL_x. + * @note Example: + * __HAL_ADC_CHANNEL_TO_DECIMAL_NB(ADC_CHANNEL_4) + * will return decimal number "4". + * @note The input can be a value from functions where a channel + * number is returned, either defined with number + * or with bitfield (only one bit must be set). + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref ADC_CHANNEL_0 + * @arg @ref ADC_CHANNEL_1 (8) + * @arg @ref ADC_CHANNEL_2 (8) + * @arg @ref ADC_CHANNEL_3 (8) + * @arg @ref ADC_CHANNEL_4 (8) + * @arg @ref ADC_CHANNEL_5 (8) + * @arg @ref ADC_CHANNEL_6 + * @arg @ref ADC_CHANNEL_7 + * @arg @ref ADC_CHANNEL_8 + * @arg @ref ADC_CHANNEL_9 + * @arg @ref ADC_CHANNEL_10 + * @arg @ref ADC_CHANNEL_11 + * @arg @ref ADC_CHANNEL_12 + * @arg @ref ADC_CHANNEL_13 + * @arg @ref ADC_CHANNEL_14 + * @arg @ref ADC_CHANNEL_15 + * @arg @ref ADC_CHANNEL_16 + * @arg @ref ADC_CHANNEL_17 + * @arg @ref ADC_CHANNEL_18 + * @arg @ref ADC_CHANNEL_VREFINT (7) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref ADC_CHANNEL_VBAT (6) + * @arg @ref ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Value between Min_Data=0 and Max_Data=18 + */ +#define __HAL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \ + __LL_ADC_CHANNEL_TO_DECIMAL_NB((__CHANNEL__)) + +/** + * @brief Helper macro to get ADC channel in literal format ADC_CHANNEL_x + * from number in decimal format. + * @note Example: + * __HAL_ADC_DECIMAL_NB_TO_CHANNEL(4) + * will return a data equivalent to "ADC_CHANNEL_4". + * @param __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18 + * @retval Returned value can be one of the following values: + * @arg @ref ADC_CHANNEL_0 + * @arg @ref ADC_CHANNEL_1 (8) + * @arg @ref ADC_CHANNEL_2 (8) + * @arg @ref ADC_CHANNEL_3 (8) + * @arg @ref ADC_CHANNEL_4 (8) + * @arg @ref ADC_CHANNEL_5 (8) + * @arg @ref ADC_CHANNEL_6 + * @arg @ref ADC_CHANNEL_7 + * @arg @ref ADC_CHANNEL_8 + * @arg @ref ADC_CHANNEL_9 + * @arg @ref ADC_CHANNEL_10 + * @arg @ref ADC_CHANNEL_11 + * @arg @ref ADC_CHANNEL_12 + * @arg @ref ADC_CHANNEL_13 + * @arg @ref ADC_CHANNEL_14 + * @arg @ref ADC_CHANNEL_15 + * @arg @ref ADC_CHANNEL_16 + * @arg @ref ADC_CHANNEL_17 + * @arg @ref ADC_CHANNEL_18 + * @arg @ref ADC_CHANNEL_VREFINT (7) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref ADC_CHANNEL_VBAT (6) + * @arg @ref ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * - On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) + * to convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + */ +#define __HAL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ + __LL_ADC_DECIMAL_NB_TO_CHANNEL((__DECIMAL_NB__)) + +/** + * @brief Helper macro to determine whether the selected channel + * corresponds to literal definitions of driver. + * @note The different literal definitions of ADC channels are: + * - ADC internal channel: + * ADC_CHANNEL_VREFINT, ADC_CHANNEL_TEMPSENSOR, ... + * - ADC external channel (channel connected to a GPIO pin): + * ADC_CHANNEL_1, ADC_CHANNEL_2, ... + * @note The channel parameter must be a value defined from literal + * definition of a ADC internal channel (ADC_CHANNEL_VREFINT, + * ADC_CHANNEL_TEMPSENSOR, ...), + * ADC external channel (ADC_CHANNEL_1, ADC_CHANNEL_2, ...), + * must not be a value from functions where a channel number is + * returned from ADC registers, + * because internal and external channels share the same channel + * number in ADC registers. The differentiation is made only with + * parameters definitions of driver. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref ADC_CHANNEL_0 + * @arg @ref ADC_CHANNEL_1 (8) + * @arg @ref ADC_CHANNEL_2 (8) + * @arg @ref ADC_CHANNEL_3 (8) + * @arg @ref ADC_CHANNEL_4 (8) + * @arg @ref ADC_CHANNEL_5 (8) + * @arg @ref ADC_CHANNEL_6 + * @arg @ref ADC_CHANNEL_7 + * @arg @ref ADC_CHANNEL_8 + * @arg @ref ADC_CHANNEL_9 + * @arg @ref ADC_CHANNEL_10 + * @arg @ref ADC_CHANNEL_11 + * @arg @ref ADC_CHANNEL_12 + * @arg @ref ADC_CHANNEL_13 + * @arg @ref ADC_CHANNEL_14 + * @arg @ref ADC_CHANNEL_15 + * @arg @ref ADC_CHANNEL_16 + * @arg @ref ADC_CHANNEL_17 + * @arg @ref ADC_CHANNEL_18 + * @arg @ref ADC_CHANNEL_VREFINT (7) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref ADC_CHANNEL_VBAT (6) + * @arg @ref ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel + * connected to a GPIO pin). + * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel. + */ +#define __HAL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \ + __LL_ADC_IS_CHANNEL_INTERNAL((__CHANNEL__)) + +/** + * @brief Helper macro to convert a channel defined from parameter + * definition of a ADC internal channel (ADC_CHANNEL_VREFINT, + * ADC_CHANNEL_TEMPSENSOR, ...), + * to its equivalent parameter definition of a ADC external channel + * (ADC_CHANNEL_1, ADC_CHANNEL_2, ...). + * @note The channel parameter can be, additionally to a value + * defined from parameter definition of a ADC internal channel + * (ADC_CHANNEL_VREFINT, ADC_CHANNEL_TEMPSENSOR, ...), + * a value defined from parameter definition of + * ADC external channel (ADC_CHANNEL_1, ADC_CHANNEL_2, ...) + * or a value from functions where a channel number is returned + * from ADC registers. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref ADC_CHANNEL_0 + * @arg @ref ADC_CHANNEL_1 (8) + * @arg @ref ADC_CHANNEL_2 (8) + * @arg @ref ADC_CHANNEL_3 (8) + * @arg @ref ADC_CHANNEL_4 (8) + * @arg @ref ADC_CHANNEL_5 (8) + * @arg @ref ADC_CHANNEL_6 + * @arg @ref ADC_CHANNEL_7 + * @arg @ref ADC_CHANNEL_8 + * @arg @ref ADC_CHANNEL_9 + * @arg @ref ADC_CHANNEL_10 + * @arg @ref ADC_CHANNEL_11 + * @arg @ref ADC_CHANNEL_12 + * @arg @ref ADC_CHANNEL_13 + * @arg @ref ADC_CHANNEL_14 + * @arg @ref ADC_CHANNEL_15 + * @arg @ref ADC_CHANNEL_16 + * @arg @ref ADC_CHANNEL_17 + * @arg @ref ADC_CHANNEL_18 + * @arg @ref ADC_CHANNEL_VREFINT (7) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref ADC_CHANNEL_VBAT (6) + * @arg @ref ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Returned value can be one of the following values: + * @arg @ref ADC_CHANNEL_0 + * @arg @ref ADC_CHANNEL_1 + * @arg @ref ADC_CHANNEL_2 + * @arg @ref ADC_CHANNEL_3 + * @arg @ref ADC_CHANNEL_4 + * @arg @ref ADC_CHANNEL_5 + * @arg @ref ADC_CHANNEL_6 + * @arg @ref ADC_CHANNEL_7 + * @arg @ref ADC_CHANNEL_8 + * @arg @ref ADC_CHANNEL_9 + * @arg @ref ADC_CHANNEL_10 + * @arg @ref ADC_CHANNEL_11 + * @arg @ref ADC_CHANNEL_12 + * @arg @ref ADC_CHANNEL_13 + * @arg @ref ADC_CHANNEL_14 + * @arg @ref ADC_CHANNEL_15 + * @arg @ref ADC_CHANNEL_16 + * @arg @ref ADC_CHANNEL_17 + * @arg @ref ADC_CHANNEL_18 + */ +#define __HAL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \ + __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL((__CHANNEL__)) + +/** + * @brief Helper macro to determine whether the internal channel + * selected is available on the ADC instance selected. + * @note The channel parameter must be a value defined from parameter + * definition of a ADC internal channel (ADC_CHANNEL_VREFINT, + * ADC_CHANNEL_TEMPSENSOR, ...), + * must not be a value defined from parameter definition of + * ADC external channel (ADC_CHANNEL_1, ADC_CHANNEL_2, ...) + * or a value from functions where a channel number is + * returned from ADC registers, + * because internal and external channels share the same channel + * number in ADC registers. The differentiation is made only with + * parameters definitions of driver. + * @param __ADC_INSTANCE__ ADC instance + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref ADC_CHANNEL_VREFINT (7) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref ADC_CHANNEL_VBAT (6) + * @arg @ref ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * @retval Value "0" if the internal channel selected is not available on the ADC instance selected. + * Value "1" if the internal channel selected is available on the ADC instance selected. + */ +#define __HAL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ + __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE((__ADC_INSTANCE__), (__CHANNEL__)) + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Helper macro to get the ADC multimode conversion data of ADC master + * or ADC slave from raw value with both ADC conversion data concatenated. + * @note This macro is intended to be used when multimode transfer by DMA + * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer(). + * In this case the transferred data need to processed with this macro + * to separate the conversion data of ADC master and ADC slave. + * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values: + * @arg @ref LL_ADC_MULTI_MASTER + * @arg @ref LL_ADC_MULTI_SLAVE + * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +#define __HAL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \ + __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE((__ADC_MULTI_MASTER_SLAVE__), (__ADC_MULTI_CONV_DATA__)) +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @brief Helper macro to select the ADC common instance + * to which is belonging the selected ADC instance. + * @note ADC common register instance can be used for: + * - Set parameters common to several ADC instances + * - Multimode (for devices with several ADC instances) + * Refer to functions having argument "ADCxy_COMMON" as parameter. + * @param __ADCx__ ADC instance + * @retval ADC common register instance + */ +#define __HAL_ADC_COMMON_INSTANCE(__ADCx__) \ + __LL_ADC_COMMON_INSTANCE((__ADCx__)) + +/** + * @brief Helper macro to check if all ADC instances sharing the same + * ADC common instance are disabled. + * @note This check is required by functions with setting conditioned to + * ADC state: + * All ADC instances of the ADC common group must be disabled. + * Refer to functions having argument "ADCxy_COMMON" as parameter. + * @note On devices with only 1 ADC common instance, parameter of this macro + * is useless and can be ignored (parameter kept for compatibility + * with devices featuring several ADC common instances). + * @param __ADCXY_COMMON__ ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Value "0" if all ADC instances sharing the same ADC common instance + * are disabled. + * Value "1" if at least one ADC instance sharing the same ADC common instance + * is enabled. + */ +#define __HAL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ + __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE((__ADCXY_COMMON__)) + +/** + * @brief Helper macro to define the ADC conversion data full-scale digital + * value corresponding to the selected ADC resolution. + * @note ADC conversion data full-scale corresponds to voltage range + * determined by analog voltage references Vref+ and Vref- + * (refer to reference manual). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval ADC conversion data full-scale digital value + */ +#define __HAL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ + __LL_ADC_DIGITAL_SCALE((__ADC_RESOLUTION__)) + +/** + * @brief Helper macro to convert the ADC conversion data from + * a resolution to another resolution. + * @param __DATA__ ADC conversion data to be converted + * @param __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted + * This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion + * This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval ADC conversion data to the requested resolution + */ +#define __HAL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\ + __ADC_RESOLUTION_CURRENT__,\ + __ADC_RESOLUTION_TARGET__) \ +__LL_ADC_CONVERT_DATA_RESOLUTION((__DATA__),\ + (__ADC_RESOLUTION_CURRENT__),\ + (__ADC_RESOLUTION_TARGET__)) + +/** + * @brief Helper macro to calculate the voltage (unit: mVolt) + * corresponding to a ADC conversion data (unit: digital value). + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __ADC_DATA__ ADC conversion data (resolution 12 bits) + * (unit: digital value). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval ADC conversion data equivalent voltage value (unit: mVolt) + */ +#define __HAL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ + __ADC_DATA__,\ + __ADC_RESOLUTION__) \ +__LL_ADC_CALC_DATA_TO_VOLTAGE((__VREFANALOG_VOLTAGE__),\ + (__ADC_DATA__),\ + (__ADC_RESOLUTION__)) + +/** + * @brief Helper macro to calculate the voltage (unit: mVolt) + * corresponding to a ADC conversion data (unit: digital value) + * in differential ended mode. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __ADC_DATA__ ADC conversion data (resolution 12 bits) + * (unit: digital value). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval ADC conversion data equivalent voltage value (unit: mVolt) + */ +#define __HAL_ADC_CALC_DIFF_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ + __ADC_DATA__,\ + __ADC_RESOLUTION__) \ +__LL_ADC_CALC_DIFF_DATA_TO_VOLTAGE((__VREFANALOG_VOLTAGE__),\ + (__ADC_DATA__),\ + (__ADC_RESOLUTION__)) + +/** + * @brief Helper macro to calculate analog reference voltage (Vref+) + * (unit: mVolt) from ADC conversion data of internal voltage + * reference VrefInt. + * @note Computation is using VrefInt calibration value + * stored in system memory for each device during production. + * @note This voltage depends on user board environment: voltage level + * connected to pin Vref+. + * On devices with small package, the pin Vref+ is not present + * and internally bonded to pin Vdda. + * @note On this STM32 series, calibration data of internal voltage reference + * VrefInt corresponds to a resolution of 12 bits, + * this is the recommended ADC resolution to convert voltage of + * internal voltage reference VrefInt. + * Otherwise, this macro performs the processing to scale + * ADC conversion data to 12 bits. + * @param __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits) + * of internal voltage reference VrefInt (unit: digital value). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval Analog reference voltage (unit: mV) + */ +#define __HAL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\ + __ADC_RESOLUTION__) \ +__LL_ADC_CALC_VREFANALOG_VOLTAGE((__VREFINT_ADC_DATA__),\ + (__ADC_RESOLUTION__)) + +/** + * @brief Helper macro to calculate the temperature (unit: degree Celsius) + * from ADC conversion data of internal temperature sensor. + * @note Computation is using temperature sensor calibration values + * stored in system memory for each device during production. + * @note Calculation formula: + * Temperature = ((TS_ADC_DATA - TS_CAL1) + * * (TS_CAL2_TEMP - TS_CAL1_TEMP)) + * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP + * with TS_ADC_DATA = temperature sensor raw data measured by ADC + * Avg_Slope = (TS_CAL2 - TS_CAL1) + * / (TS_CAL2_TEMP - TS_CAL1_TEMP) + * TS_CAL1 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL1 (calibrated in factory) + * TS_CAL2 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL2 (calibrated in factory) + * Caution: Calculation relevancy under reserve that calibration + * parameters are correct (address and data). + * To calculate temperature using temperature sensor + * datasheet typical values (generic values less, therefore + * less accurate than calibrated values), + * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(). + * @note As calculation input, the analog reference voltage (Vref+) must be + * defined as it impacts the ADC LSB equivalent voltage. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @note On this STM32 series, calibration data of temperature sensor + * corresponds to a resolution of 12 bits, + * this is the recommended ADC resolution to convert voltage of + * temperature sensor. + * Otherwise, this macro performs the processing to scale + * ADC conversion data to 12 bits. + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal + * temperature sensor (unit: digital value). + * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature + * sensor voltage has been measured. + * This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval Temperature (unit: degree Celsius) + */ +#define __HAL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\ + __TEMPSENSOR_ADC_DATA__,\ + __ADC_RESOLUTION__) \ +__LL_ADC_CALC_TEMPERATURE((__VREFANALOG_VOLTAGE__),\ + (__TEMPSENSOR_ADC_DATA__),\ + (__ADC_RESOLUTION__)) + +/** + * @brief Helper macro to calculate the temperature (unit: degree Celsius) + * from ADC conversion data of internal temperature sensor. + * @note Computation is using temperature sensor typical values + * (refer to device datasheet). + * @note Calculation formula: + * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV) + * / Avg_Slope + CALx_TEMP + * with TS_ADC_DATA = temperature sensor raw data measured by ADC + * (unit: digital value) + * Avg_Slope = temperature sensor slope + * (unit: uV/Degree Celsius) + * TS_TYP_CALx_VOLT = temperature sensor digital value at + * temperature CALx_TEMP (unit: mV) + * Caution: Calculation relevancy under reserve the temperature sensor + * of the current device has characteristics in line with + * datasheet typical values. + * If temperature sensor calibration values are available on + * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()), + * temperature calculation will be more accurate using + * helper macro @ref __LL_ADC_CALC_TEMPERATURE(). + * @note As calculation input, the analog reference voltage (Vref+) must be + * defined as it impacts the ADC LSB equivalent voltage. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @note ADC measurement data must correspond to a resolution of 12bits + * (full scale digital value 4095). If not the case, the data must be + * preliminarily rescaled to an equivalent resolution of 12 bits. + * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical value + (unit: uV/DegCelsius). + * On STM32G4, refer to device datasheet parameter "Avg_Slope". + * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical value (at + temperature and Vref+ defined in parameters below) (unit: mV). + * On STM32G4, refer to device datasheet parameter "V30" + (corresponding to TS_CAL1). + * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature sensor voltage (see + parameter above) is corresponding (unit: mV) + * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV) + * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: digital value). + * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured. + * This parameter can be one of the following values: + * @arg @ref ADC_RESOLUTION_12B + * @arg @ref ADC_RESOLUTION_10B + * @arg @ref ADC_RESOLUTION_8B + * @arg @ref ADC_RESOLUTION_6B + * @retval Temperature (unit: degree Celsius) + */ +#define __HAL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\ + __TEMPSENSOR_TYP_CALX_V__,\ + __TEMPSENSOR_CALX_TEMP__,\ + __VREFANALOG_VOLTAGE__,\ + __TEMPSENSOR_ADC_DATA__,\ + __ADC_RESOLUTION__) \ +__LL_ADC_CALC_TEMPERATURE_TYP_PARAMS((__TEMPSENSOR_TYP_AVGSLOPE__),\ + (__TEMPSENSOR_TYP_CALX_V__),\ + (__TEMPSENSOR_CALX_TEMP__),\ + (__VREFANALOG_VOLTAGE__),\ + (__TEMPSENSOR_ADC_DATA__),\ + (__ADC_RESOLUTION__)) + +/** + * @} + */ + +/** + * @} + */ + +/* Include ADC HAL Extended module */ +#include "stm32g4xx_hal_adc_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup ADC_Exported_Functions + * @{ + */ + +/** @addtogroup ADC_Exported_Functions_Group1 + * @brief Initialization and Configuration functions + * @{ + */ +/* Initialization and de-initialization functions ****************************/ +HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc); +void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc); +void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc); + +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +/* Callbacks Register/UnRegister functions ***********************************/ +HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef CallbackID, + pADC_CallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef CallbackID); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @addtogroup ADC_Exported_Functions_Group2 + * @brief IO operation functions + * @{ + */ +/* IO operation functions *****************************************************/ + +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout); +HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout); + +/* Non-blocking mode: Interruption */ +HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc); + +/* Non-blocking mode: DMA */ +HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length); +HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc); + +/* ADC retrieve conversion value intended to be used with polling or interruption */ +uint32_t HAL_ADC_GetValue(const ADC_HandleTypeDef *hadc); + +/* ADC sampling control */ +HAL_StatusTypeDef HAL_ADC_StartSampling(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADC_StopSampling(ADC_HandleTypeDef *hadc); + +/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption and DMA) */ +void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc); +void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc); +void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc); +void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc); +void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc); +/** + * @} + */ + +/** @addtogroup ADC_Exported_Functions_Group3 Peripheral Control functions + * @brief Peripheral Control functions + * @{ + */ +/* Peripheral Control functions ***********************************************/ +HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, const ADC_ChannelConfTypeDef *pConfig); +HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, + const ADC_AnalogWDGConfTypeDef *pAnalogWDGConfig); + +/** + * @} + */ + +/* Peripheral State functions *************************************************/ +/** @addtogroup ADC_Exported_Functions_Group4 + * @{ + */ +uint32_t HAL_ADC_GetState(const ADC_HandleTypeDef *hadc); +uint32_t HAL_ADC_GetError(const ADC_HandleTypeDef *hadc); + +/** + * @} + */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @addtogroup ADC_Private_Functions ADC Private Functions + * @{ + */ +HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup); +HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc); +void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma); +void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma); +void ADC_DMAError(DMA_HandleTypeDef *hdma); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32G4xx_HAL_ADC_H */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h new file mode 100644 index 0000000..440c223 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h @@ -0,0 +1,1570 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_adc_ex.h + * @author MCD Application Team + * @brief Header file of ADC HAL extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_ADC_EX_H +#define STM32G4xx_HAL_ADC_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup ADCEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup ADCEx_Exported_Types ADC Extended Exported Types + * @{ + */ + +/** + * @brief ADC Injected Conversion Oversampling structure definition + */ +typedef struct +{ + uint32_t Ratio; /*!< Configures the oversampling ratio. + This parameter can be a value of @ref ADC_HAL_EC_OVS_RATIO */ + + uint32_t RightBitShift; /*!< Configures the division coefficient for the Oversampler. + This parameter can be a value of @ref ADC_HAL_EC_OVS_SHIFT */ +} ADC_InjOversamplingTypeDef; + +/** + * @brief Structure definition of ADC group injected and ADC channel affected to ADC group injected + * @note Parameters of this structure are shared within 2 scopes: + * - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime , InjectedSingleDiff, + * InjectedOffsetNumber, InjectedOffset, InjectedOffsetSign, InjectedOffsetSaturation + * - Scope ADC group injected (affects all channels of injected group): InjectedNbrOfConversion, + * InjectedDiscontinuousConvMode, + * AutoInjectedConv, QueueInjectedContext, ExternalTrigInjecConv, ExternalTrigInjecConvEdge, + * InjecOversamplingMode, InjecOversampling. + * @note The setting of these parameters by function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state. + * ADC state can be either: + * - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter + * 'InjectedSingleDiff') + * - For parameters 'InjectedDiscontinuousConvMode', 'QueueInjectedContext', 'InjecOversampling': ADC enabled + * without conversion on going on injected group. + * - For parameters 'InjectedSamplingTime', 'InjectedOffset', 'InjectedOffsetNumber', 'InjectedOffsetSign', + * 'InjectedOffsetSaturation', 'AutoInjectedConv': ADC enabled without conversion on going on regular and + * injected groups. + * - For parameters 'InjectedChannel', 'InjectedRank', 'InjectedNbrOfConversion', 'ExternalTrigInjecConv', + * 'ExternalTrigInjecConvEdge': ADC enabled and while conversion on going + * on ADC groups regular and injected. + * If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed + * without error reporting (as it can be the expected behavior in case of intended action to update another + * parameter (which fulfills the ADC state condition) on the fly). + */ +typedef struct +{ + uint32_t InjectedChannel; /*!< Specifies the channel to configure into ADC group injected. + This parameter can be a value of @ref ADC_HAL_EC_CHANNEL + Note: Depending on devices and ADC instances, some channels may not be + available on device package pins. Refer to device datasheet for + channels availability. */ + + uint32_t InjectedRank; /*!< Specifies the rank in the ADC group injected sequencer. + This parameter must be a value of @ref ADC_INJ_SEQ_RANKS. + Note: to disable a channel or change order of conversion sequencer, + rank containing a previous channel setting can be overwritten by + the new channel setting (or parameter number of conversions + adjusted) */ + + uint32_t InjectedSamplingTime; /*!< Sampling time value to be set for the selected channel. + Unit: ADC clock cycles. + Conversion time is the addition of sampling time and processing time + (12.5 ADC clock cycles at ADC resolution 12 bits, 10.5 cycles at 10 bits, + 8.5 cycles at 8 bits, 6.5 cycles at 6 bits). + This parameter can be a value of @ref ADC_HAL_EC_CHANNEL_SAMPLINGTIME. + Caution: This parameter applies to a channel that can be used in a + regular and/or injected group. It overwrites the last setting. + Note: In case of usage of internal measurement channels (VrefInt, ...), + sampling time constraints must be respected (sampling time can be + adjusted in function of ADC clock frequency and sampling time + setting). Refer to device datasheet for timings values. */ + + uint32_t InjectedSingleDiff; /*!< Selection of single-ended or differential input. + In differential mode: Differential measurement is between the selected + channel 'i' (positive input) and channel 'i+1' (negative input). + Only channel 'i' has to be configured, channel 'i+1' is configured + automatically. + This parameter must be a value of + @ref ADC_HAL_EC_CHANNEL_SINGLE_DIFF_ENDING. + Caution: This parameter applies to a channel that can be used in a + regular and/or injected group. It overwrites the last setting. + Note: Refer to Reference Manual to ensure the selected channel is + available in differential mode. + Note: When configuring a channel 'i' in differential mode, the channel + 'i+1' is not usable separately. + Note: This parameter must be modified when ADC is disabled (before ADC + start conversion or after ADC stop conversion). + If ADC is enabled, this parameter setting is bypassed without error + reporting (as it can be the expected behavior in case of another + parameter update on the fly) */ + + uint32_t InjectedOffsetNumber; /*!< Selects the offset number. + This parameter can be a value of @ref ADC_HAL_EC_OFFSET_NB. + Caution: Only one offset is allowed per channel. This parameter + overwrites the last setting. */ + + uint32_t InjectedOffset; /*!< Defines the offset to be applied on the raw converted data. + Offset value must be a positive number. + Depending of ADC resolution selected (12, 10, 8 or 6 bits), this + parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, + 0x3FF, 0xFF or 0x3F respectively. + Note: This parameter must be modified when no conversion is on going + on both regular and injected groups (ADC disabled, or ADC enabled + without continuous mode or external trigger that could launch a + conversion). */ + + uint32_t InjectedOffsetSign; /*!< Define if the offset should be subtracted (negative sign) or added + (positive sign) from or to the raw converted data. + This parameter can be a value of @ref ADCEx_OffsetSign. + Note: This parameter must be modified when no conversion is on going + on both regular and injected groups (ADC disabled, or ADC + enabled without continuous mode or external trigger that could + launch a conversion). */ + FunctionalState InjectedOffsetSaturation; /*!< Define if the offset should be saturated upon under or over flow. + This parameter value can be ENABLE or DISABLE. + Note: This parameter must be modified when no conversion is on going + on both regular and injected groups (ADC disabled, or ADC enabled + without continuous mode or external trigger that could launch a + conversion). */ + + uint32_t InjectedNbrOfConversion; /*!< Specifies the number of ranks that will be converted within the ADC group + injected sequencer. + To use the injected group sequencer and convert several ranks, parameter + 'ScanConvMode' must be enabled. + This parameter must be a number between Min_Data = 1 and Max_Data = 4. + Caution: this setting impacts the entire injected group. Therefore, + call of HAL_ADCEx_InjectedConfigChannel() to configure a channel on + injected group can impact the configuration of other channels previously + set. */ + + FunctionalState InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of ADC group injected + is performed in Complete-sequence/Discontinuous-sequence + (main sequence subdivided in successive parts). + Discontinuous mode is used only if sequencer is enabled (parameter + 'ScanConvMode'). If sequencer is disabled, this parameter is discarded. + Discontinuous mode can be enabled only if continuous mode is disabled. + This parameter can be set to ENABLE or DISABLE. + Note: This parameter must be modified when ADC is disabled (before ADC + start conversion or after ADC stop conversion). + Note: For injected group, discontinuous mode converts the sequence + channel by channel (discontinuous length fixed to 1 rank). + Caution: this setting impacts the entire injected group. Therefore, + call of HAL_ADCEx_InjectedConfigChannel() to + configure a channel on injected group can impact the + configuration of other channels previously set. */ + + FunctionalState AutoInjectedConv; /*!< Enables or disables the selected ADC group injected automatic conversion + after regular one + This parameter can be set to ENABLE or DISABLE. + Note: To use Automatic injected conversion, discontinuous mode must + be disabled ('DiscontinuousConvMode' and + 'InjectedDiscontinuousConvMode' set to DISABLE) + Note: To use Automatic injected conversion, injected group external + triggers must be disabled ('ExternalTrigInjecConv' set to + ADC_INJECTED_SOFTWARE_START) + Note: In case of DMA used with regular group: if DMA configured in + normal mode (single shot) JAUTO will be stopped upon DMA transfer + complete. + To maintain JAUTO always enabled, DMA must be configured in + circular mode. + Caution: this setting impacts the entire injected group. Therefore, + call of HAL_ADCEx_InjectedConfigChannel() to configure a channel + on injected group can impact the configuration of other channels + previously set. */ + + FunctionalState QueueInjectedContext; /*!< Specifies whether the context queue feature is enabled. + This parameter can be set to ENABLE or DISABLE. + If context queue is enabled, injected sequencer&channels configurations + are queued on up to 2 contexts. If a + new injected context is set when queue is full, error is triggered by + interruption and through function + 'HAL_ADCEx_InjectedQueueOverflowCallback'. + Caution: This feature request that the sequence is fully configured + before injected conversion start. + Therefore, configure channels with as many calls to + HAL_ADCEx_InjectedConfigChannel() as the + 'InjectedNbrOfConversion' parameter. + Caution: this setting impacts the entire injected group. Therefore, + call of HAL_ADCEx_InjectedConfigChannel() to + configure a channel on injected group can impact the + configuration of other channels previously set. + Note: This parameter must be modified when ADC is disabled (before ADC + start conversion or after ADC stop conversion). */ + + uint32_t ExternalTrigInjecConv; /*!< Selects the external event used to trigger the conversion start of + injected group. + If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled + and software trigger is used instead. + This parameter can be a value of + @ref ADC_injected_external_trigger_source. + Caution: this setting impacts the entire injected group. Therefore, + call of HAL_ADCEx_InjectedConfigChannel() to configure a channel + on injected group can impact the configuration of other channels + previously set. */ + + uint32_t ExternalTrigInjecConvEdge; /*!< Selects the external trigger edge of injected group. + This parameter can be a value of @ref ADC_injected_external_trigger_edge. + If trigger source is set to ADC_INJECTED_SOFTWARE_START, this parameter + is discarded. + Caution: this setting impacts the entire injected group. Therefore, + call of HAL_ADCEx_InjectedConfigChannel() to + configure a channel on injected group can impact the + configuration of other channels previously set. */ + + FunctionalState InjecOversamplingMode; /*!< Specifies whether the oversampling feature is enabled or disabled. + This parameter can be set to ENABLE or DISABLE. + Note: This parameter can be modified only if there is no + conversion is ongoing (both ADSTART and JADSTART cleared). */ + + ADC_InjOversamplingTypeDef InjecOversampling; /*!< Specifies the Oversampling parameters. + Caution: this setting overwrites the previous oversampling + configuration if oversampling already enabled. + Note: This parameter can be modified only if there is no + conversion is ongoing (both ADSTART and JADSTART cleared).*/ +} ADC_InjectionConfTypeDef; + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Structure definition of ADC multimode + * @note The setting of these parameters by function HAL_ADCEx_MultiModeConfigChannel() is conditioned by ADCs state + * (both Master and Slave ADCs). + * Both Master and Slave ADCs must be disabled. + */ +typedef struct +{ + uint32_t Mode; /*!< Configures the ADC to operate in independent or multimode. + This parameter can be a value of @ref ADC_HAL_EC_MULTI_MODE. */ + + uint32_t DMAAccessMode; /*!< Configures the DMA mode for multimode ADC: + selection whether 2 DMA channels (each ADC uses its own DMA channel) or 1 DMA channel + (one DMA channel for both ADC, DMA of ADC master). + This parameter can be a value of @ref ADC_HAL_EC_MULTI_DMA_TRANSFER_RESOLUTION. */ + + uint32_t TwoSamplingDelay; /*!< Configures the Delay between 2 sampling phases. + This parameter can be a value of @ref ADC_HAL_EC_MULTI_TWOSMP_DELAY. + Delay range depends on selected resolution: + from 1 to 12 clock cycles for 12 bits, from 1 to 10 clock cycles for 10 bits, + from 1 to 8 clock cycles for 8 bits, from 1 to 6 clock cycles for 6 bits. */ +} ADC_MultiModeTypeDef; +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup ADCEx_Exported_Constants ADC Extended Exported Constants + * @{ + */ + +/** @defgroup ADC_injected_external_trigger_source ADC group injected trigger source + * @{ + */ +/* ADC group regular trigger sources for all ADC instances */ +#define ADC_INJECTED_SOFTWARE_START (LL_ADC_INJ_TRIG_SOFTWARE) /*!< ADC group injected conversion + trigger software start */ +#define ADC_EXTERNALTRIGINJEC_T1_TRGO (LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM1 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T1_TRGO2 (LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) /*!< ADC group injected conversion + trigger from external peripheral: TIM1 TRGO2. */ +#define ADC_EXTERNALTRIGINJEC_T1_CC3 (LL_ADC_INJ_TRIG_EXT_TIM1_CH3) /*!< ADC group injected conversion + trigger from external peripheral: TIM1 channel 3 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T1_CC4 (LL_ADC_INJ_TRIG_EXT_TIM1_CH4) /*!< ADC group injected conversion + trigger from external peripheral: TIM1 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T2_TRGO (LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM2 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T2_CC1 (LL_ADC_INJ_TRIG_EXT_TIM2_CH1) /*!< ADC group injected conversion + trigger from external peripheral: TIM2 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T3_TRGO (LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM3 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T3_CC1 (LL_ADC_INJ_TRIG_EXT_TIM3_CH1) /*!< ADC group injected conversion + trigger from external peripheral: TIM3 channel 1 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T3_CC3 (LL_ADC_INJ_TRIG_EXT_TIM3_CH3) /*!< ADC group injected conversion + trigger from external peripheral: TIM3 channel 3 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T3_CC4 (LL_ADC_INJ_TRIG_EXT_TIM3_CH4) /*!< ADC group injected conversion + trigger from external peripheral: TIM3 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T4_TRGO (LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM4 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T4_CC3 (LL_ADC_INJ_TRIG_EXT_TIM4_CH3) /*!< ADC group injected conversion + trigger from external peripheral: TIM4 channel 3 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T4_CC4 (LL_ADC_INJ_TRIG_EXT_TIM4_CH4) /*!< ADC group injected conversion + trigger from external peripheral: TIM4 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T6_TRGO (LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM6 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T7_TRGO (LL_ADC_INJ_TRIG_EXT_TIM7_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM7 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T8_TRGO (LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM8 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T8_TRGO2 (LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) /*!< ADC group injected conversion + trigger from external peripheral: TIM8 TRGO2. */ +#define ADC_EXTERNALTRIGINJEC_T8_CC2 (LL_ADC_INJ_TRIG_EXT_TIM8_CH2) /*!< ADC group injected conversion + trigger from external peripheral: TIM8 channel 2 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T8_CC4 (LL_ADC_INJ_TRIG_EXT_TIM8_CH4) /*!< ADC group injected conversion + trigger from external peripheral: TIM8 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T15_TRGO (LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM15 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T16_CC1 (LL_ADC_INJ_TRIG_EXT_TIM16_CH1) /*!< ADC group injected conversion + trigger from external peripheral: TIM8 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T20_TRGO (LL_ADC_INJ_TRIG_EXT_TIM20_TRGO) /*!< ADC group injected conversion + trigger from external peripheral: TIM20 TRGO. */ +#define ADC_EXTERNALTRIGINJEC_T20_TRGO2 (LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2) /*!< ADC group injected conversion + trigger from external peripheral: TIM20 TRGO2. */ +#define ADC_EXTERNALTRIGINJEC_T20_CC2 (LL_ADC_INJ_TRIG_EXT_TIM20_CH2) /*!< ADC group injected conversion + trigger from external peripheral: TIM20 channel 2 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_T20_CC4 (LL_ADC_INJ_TRIG_EXT_TIM20_CH4) /*!< ADC group injected conversion + trigger from external peripheral: TIM20 channel 4 event (capture compare). */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG1 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 1 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG2 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 2 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG3 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 3 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG4 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 4 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG5 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 5 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG6 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 6 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG7 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 7 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG8 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 8 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG9 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 9 event. */ +#define ADC_EXTERNALTRIGINJEC_HRTIM_TRG10 (LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10) /*!< ADC group injected conversion + trigger from external peripheral: HRTIMER ADC trigger 10 event. */ +#define ADC_EXTERNALTRIGINJEC_EXT_IT3 (LL_ADC_INJ_TRIG_EXT_EXTI_LINE3) /*!< ADC group injected conversion + trigger from external peripheral: external interrupt line 3. */ +#define ADC_EXTERNALTRIGINJEC_EXT_IT15 (LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) /*!< ADC group injected conversion + trigger from external peripheral: external interrupt line 15. */ +#define ADC_EXTERNALTRIGINJEC_LPTIM_OUT (LL_ADC_INJ_TRIG_EXT_LPTIM_OUT) /*!< ADC group injected conversion + trigger from external peripheral: LPTIMER OUT event. */ +/** + * @} + */ + +/** @defgroup ADC_injected_external_trigger_edge ADC group injected trigger edge (when external trigger is selected) + * @{ + */ +#define ADC_EXTERNALTRIGINJECCONV_EDGE_NONE (0x00000000UL) /*!< Injected conversions trigger + disabled (SW start)*/ +#define ADC_EXTERNALTRIGINJECCONV_EDGE_RISING (ADC_JSQR_JEXTEN_0) /*!< Injected conversions trigger + polarity set to rising edge */ +#define ADC_EXTERNALTRIGINJECCONV_EDGE_FALLING (ADC_JSQR_JEXTEN_1) /*!< Injected conversions trigger + polarity set to falling edge */ +#define ADC_EXTERNALTRIGINJECCONV_EDGE_RISINGFALLING (ADC_JSQR_JEXTEN) /*!< Injected conversions trigger + polarity set to both rising and falling edges */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_CHANNEL_SINGLE_DIFF_ENDING Channel - Single or differential ending + * @{ + */ +#define ADC_SINGLE_ENDED (LL_ADC_SINGLE_ENDED) /*!< ADC channel ending set to single ended */ +#define ADC_DIFFERENTIAL_ENDED (LL_ADC_DIFFERENTIAL_ENDED) /*!< ADC channel ending set to differential */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_OFFSET_NB ADC instance - Offset number + * @{ + */ +#define ADC_OFFSET_NONE (ADC_OFFSET_4 + 1U) /*!< ADC offset disabled: no offset correction for the selected + ADC channel */ +#define ADC_OFFSET_1 (LL_ADC_OFFSET_1) /*!< ADC offset number 1: ADC channel and offset level to which + the offset programmed will be applied (independently of channel mapped + on ADC group regular or group injected) */ +#define ADC_OFFSET_2 (LL_ADC_OFFSET_2) /*!< ADC offset number 2: ADC channel and offset level to which + the offset programmed will be applied (independently of channel mapped + on ADC group regular or group injected) */ +#define ADC_OFFSET_3 (LL_ADC_OFFSET_3) /*!< ADC offset number 3: ADC channel and offset level to which + the offset programmed will be applied (independently of channel mapped + on ADC group regular or group injected) */ +#define ADC_OFFSET_4 (LL_ADC_OFFSET_4) /*!< ADC offset number 4: ADC channel and offset level to which + the offset programmed will be applied (independently of channel mapped + on ADC group regular or group injected) */ +/** + * @} + */ + +/** @defgroup ADCEx_OffsetSign ADC Extended Offset Sign + * @{ + */ +#define ADC_OFFSET_SIGN_NEGATIVE (0x00000000UL) /*!< Offset sign negative, offset is subtracted */ +#define ADC_OFFSET_SIGN_POSITIVE (ADC_OFR1_OFFSETPOS) /*!< Offset sign positive, offset is added */ +/** + * @} + */ + +/** @defgroup ADC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks + * @{ + */ +#define ADC_INJECTED_RANK_1 (LL_ADC_INJ_RANK_1) /*!< ADC group injected sequencer rank 1 */ +#define ADC_INJECTED_RANK_2 (LL_ADC_INJ_RANK_2) /*!< ADC group injected sequencer rank 2 */ +#define ADC_INJECTED_RANK_3 (LL_ADC_INJ_RANK_3) /*!< ADC group injected sequencer rank 3 */ +#define ADC_INJECTED_RANK_4 (LL_ADC_INJ_RANK_4) /*!< ADC group injected sequencer rank 4 */ +/** + * @} + */ + +#if defined(ADC_MULTIMODE_SUPPORT) +/** @defgroup ADC_HAL_EC_MULTI_MODE Multimode - Mode + * @{ + */ +#define ADC_MODE_INDEPENDENT (LL_ADC_MULTI_INDEPENDENT) /*!< ADC dual mode disabled + (ADC independent mode) */ +#define ADC_DUALMODE_REGSIMULT (LL_ADC_MULTI_DUAL_REG_SIMULT) /*!< ADC dual mode enabled: group regular + simultaneous */ +#define ADC_DUALMODE_INTERL (LL_ADC_MULTI_DUAL_REG_INTERL) /*!< ADC dual mode enabled: Combined + group regular interleaved */ +#define ADC_DUALMODE_INJECSIMULT (LL_ADC_MULTI_DUAL_INJ_SIMULT) /*!< ADC dual mode enabled: group + injected simultaneous */ +#define ADC_DUALMODE_ALTERTRIG (LL_ADC_MULTI_DUAL_INJ_ALTERN) /*!< ADC dual mode enabled: group + injected alternate trigger. Works only with external triggers (not internal + SW start) */ +#define ADC_DUALMODE_REGSIMULT_INJECSIMULT (LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM) /*!< ADC dual mode enabled: Combined + group regular simultaneous + group injected simultaneous */ +#define ADC_DUALMODE_REGSIMULT_ALTERTRIG (LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT) /*!< ADC dual mode enabled: Combined + group regular simultaneous + group injected alternate trigger */ +#define ADC_DUALMODE_REGINTERL_INJECSIMULT (LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM) /*!< ADC dual mode enabled: Combined + group regular interleaved + group injected simultaneous */ + +/** @defgroup ADC_HAL_EC_MULTI_DMA_TRANSFER_RESOLUTION Multimode - DMA transfer mode depending on ADC resolution + * @{ + */ +#define ADC_DMAACCESSMODE_DISABLED (0x00000000UL) /*!< DMA multimode disabled: each ADC uses its own + DMA channel */ +#define ADC_DMAACCESSMODE_12_10_BITS (ADC_CCR_MDMA_1) /*!< DMA multimode enabled (one DMA channel for both ADC, + DMA of ADC master) for 12 and 10 bits resolution */ +#define ADC_DMAACCESSMODE_8_6_BITS (ADC_CCR_MDMA) /*!< DMA multimode enabled (one DMA channel for both ADC, + DMA of ADC master) for 8 and 6 bits resolution */ +/** + * @} + */ + +/** @defgroup ADC_HAL_EC_MULTI_TWOSMP_DELAY Multimode - Delay between two sampling phases + * @{ + */ +#define ADC_TWOSAMPLINGDELAY_1CYCLE (LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE) /*!< ADC multimode delay between two + sampling phases: 1 ADC clock cycle */ +#define ADC_TWOSAMPLINGDELAY_2CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES) /*!< ADC multimode delay between two + sampling phases: 2 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_3CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES) /*!< ADC multimode delay between two + sampling phases: 3 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_4CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES) /*!< ADC multimode delay between two + sampling phases: 4 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_5CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES) /*!< ADC multimode delay between two + sampling phases: 5 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_6CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES) /*!< ADC multimode delay between two + sampling phases: 6 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_7CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES) /*!< ADC multimode delay between two + sampling phases: 7 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_8CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES) /*!< ADC multimode delay between two + sampling phases: 8 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_9CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES) /*!< ADC multimode delay between two + sampling phases: 9 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_10CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES) /*!< ADC multimode delay between two + sampling phases: 10 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_11CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES) /*!< ADC multimode delay between two + sampling phases: 11 ADC clock cycles */ +#define ADC_TWOSAMPLINGDELAY_12CYCLES (LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES) /*!< ADC multimode delay between two + sampling phases: 12 ADC clock cycles */ +/** + * @} + */ + +/** + * @} + */ +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** @defgroup ADC_HAL_EC_GROUPS ADC instance - Groups + * @{ + */ +#define ADC_REGULAR_GROUP (LL_ADC_GROUP_REGULAR) /*!< ADC group regular (available on + all STM32 devices) */ +#define ADC_INJECTED_GROUP (LL_ADC_GROUP_INJECTED) /*!< ADC group injected (not available on + all STM32 devices) */ +#define ADC_REGULAR_INJECTED_GROUP (LL_ADC_GROUP_REGULAR_INJECTED) /*!< ADC both groups regular and injected */ +/** + * @} + */ + +/** @defgroup ADC_CFGR_fields ADCx CFGR fields + * @{ + */ +#define ADC_CFGR_FIELDS (ADC_CFGR_AWD1CH | ADC_CFGR_JAUTO | ADC_CFGR_JAWD1EN |\ + ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL | ADC_CFGR_JQM |\ + ADC_CFGR_JDISCEN | ADC_CFGR_DISCNUM | ADC_CFGR_DISCEN |\ + ADC_CFGR_AUTDLY | ADC_CFGR_CONT | ADC_CFGR_OVRMOD |\ + ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL | ADC_CFGR_ALIGN |\ + ADC_CFGR_RES | ADC_CFGR_DMACFG | ADC_CFGR_DMAEN ) +/** + * @} + */ + +/** @defgroup ADC_SMPR1_fields ADCx SMPR1 fields + * @{ + */ +#if defined(ADC_SMPR1_SMPPLUS) +#define ADC_SMPR1_FIELDS (ADC_SMPR1_SMP9 | ADC_SMPR1_SMP8 | ADC_SMPR1_SMP7 |\ + ADC_SMPR1_SMP6 | ADC_SMPR1_SMP5 | ADC_SMPR1_SMP4 |\ + ADC_SMPR1_SMP3 | ADC_SMPR1_SMP2 | ADC_SMPR1_SMP1 |\ + ADC_SMPR1_SMP0 | ADC_SMPR1_SMPPLUS) +#else +#define ADC_SMPR1_FIELDS (ADC_SMPR1_SMP9 | ADC_SMPR1_SMP8 | ADC_SMPR1_SMP7 |\ + ADC_SMPR1_SMP6 | ADC_SMPR1_SMP5 | ADC_SMPR1_SMP4 |\ + ADC_SMPR1_SMP3 | ADC_SMPR1_SMP2 | ADC_SMPR1_SMP1 |\ + ADC_SMPR1_SMP0) +#endif /* ADC_SMPR1_SMPPLUS */ +/** + * @} + */ + +/** @defgroup ADC_CFGR_fields_2 ADCx CFGR sub fields + * @{ + */ +/* ADC_CFGR fields of parameters that can be updated when no conversion + (neither regular nor injected) is on-going */ +#define ADC_CFGR_FIELDS_2 ((ADC_CFGR_DMACFG | ADC_CFGR_AUTDLY)) +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ + +#if defined(ADC_MULTIMODE_SUPPORT) +/** @defgroup ADCEx_Exported_Macro ADC Extended Exported Macros + * @{ + */ + +/** @brief Force ADC instance in multimode mode independent (multimode disable). + * @note This macro must be used only in case of transition from multimode + * to mode independent and in case of unknown previous state, + * to ensure ADC configuration is in mode independent. + * @note Standard way of multimode configuration change is done from + * HAL ADC handle of ADC master using function + * "HAL_ADCEx_MultiModeConfigChannel(..., ADC_MODE_INDEPENDENT)" )". + * Usage of this macro is not the Standard way of multimode + * configuration and can lead to have HAL ADC handles status + * misaligned. Usage of this macro must be limited to cases + * mentioned above. + * @param __HANDLE__ ADC handle. + * @retval None + */ +#define ADC_FORCE_MODE_INDEPENDENT(__HANDLE__) \ + LL_ADC_SetMultimode(__LL_ADC_COMMON_INSTANCE((__HANDLE__)->Instance), LL_ADC_MULTI_INDEPENDENT) + +/** + * @} + */ +#endif /* ADC_MULTIMODE_SUPPORT */ + +/* Private macros ------------------------------------------------------------*/ + +/** @defgroup ADCEx_Private_Macro_internal_HAL_driver ADC Extended Private Macros + * @{ + */ +/* Macro reserved for internal HAL driver usage, not intended to be used in */ +/* code of final user. */ + +/** + * @brief Test if conversion trigger of injected group is software start + * or external trigger. + * @param __HANDLE__ ADC handle. + * @retval SET (software start) or RESET (external trigger). + */ +#define ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__) \ + (((__HANDLE__)->Instance->JSQR & ADC_JSQR_JEXTEN) == 0UL) + +/** + * @brief Check whether or not ADC is independent. + * @param __HANDLE__ ADC handle. + * @note When multimode feature is not available, the macro always returns SET. + * @retval SET (ADC is independent) or RESET (ADC is not). + */ +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +#define ADC_IS_INDEPENDENT(__HANDLE__) \ + ( ( ( ((__HANDLE__)->Instance) == ADC5) \ + )? \ + SET \ + : \ + RESET \ + ) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) || defined(STM32G411xC) +#define ADC_IS_INDEPENDENT(__HANDLE__) \ + ( ( ( ((__HANDLE__)->Instance) == ADC3) \ + )? \ + SET \ + : \ + RESET \ + ) +#elif defined(STM32G411xB) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) || defined(STM32G471xx) +#define ADC_IS_INDEPENDENT(__HANDLE__) (RESET) +#endif /* defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) */ + +/** + * @brief Set the selected injected Channel rank. + * @param __CHANNELNB__ Channel number. + * @param __RANKNB__ Rank number. + * @retval None + */ +#define ADC_JSQR_RK(__CHANNELNB__, __RANKNB__) \ + ((((__CHANNELNB__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) \ + << ((__RANKNB__) & ADC_INJ_RANK_ID_JSQR_MASK)) + +/** + * @brief Configure ADC injected context queue + * @param __INJECT_CONTEXT_QUEUE_MODE__ Injected context queue mode. + * @retval None + */ +#define ADC_CFGR_INJECT_CONTEXT_QUEUE(__INJECT_CONTEXT_QUEUE_MODE__) \ + ((__INJECT_CONTEXT_QUEUE_MODE__) << ADC_CFGR_JQM_Pos) + +/** + * @brief Configure ADC discontinuous conversion mode for injected group + * @param __INJECT_DISCONTINUOUS_MODE__ Injected discontinuous mode. + * @retval None + */ +#define ADC_CFGR_INJECT_DISCCONTINUOUS(__INJECT_DISCONTINUOUS_MODE__) \ + ((__INJECT_DISCONTINUOUS_MODE__) << ADC_CFGR_JDISCEN_Pos) + +/** + * @brief Configure ADC discontinuous conversion mode for regular group + * @param __REG_DISCONTINUOUS_MODE__ Regular discontinuous mode. + * @retval None + */ +#define ADC_CFGR_REG_DISCONTINUOUS(__REG_DISCONTINUOUS_MODE__) \ + ((__REG_DISCONTINUOUS_MODE__) << ADC_CFGR_DISCEN_Pos) + +/** + * @brief Configure the number of discontinuous conversions for regular group. + * @param __NBR_DISCONTINUOUS_CONV__ Number of discontinuous conversions. + * @retval None + */ +#define ADC_CFGR_DISCONTINUOUS_NUM(__NBR_DISCONTINUOUS_CONV__) \ + (((__NBR_DISCONTINUOUS_CONV__) - 1UL) << ADC_CFGR_DISCNUM_Pos) + +/** + * @brief Configure the ADC auto delay mode. + * @param __AUTOWAIT__ Auto delay bit enable or disable. + * @retval None + */ +#define ADC_CFGR_AUTOWAIT(__AUTOWAIT__) ((__AUTOWAIT__) << ADC_CFGR_AUTDLY_Pos) + +/** + * @brief Configure ADC continuous conversion mode. + * @param __CONTINUOUS_MODE__ Continuous mode. + * @retval None + */ +#define ADC_CFGR_CONTINUOUS(__CONTINUOUS_MODE__) ((__CONTINUOUS_MODE__) << ADC_CFGR_CONT_Pos) + +/** + * @brief Configure the ADC DMA continuous request. + * @param __DMACONTREQ_MODE__ DMA continuous request mode. + * @retval None + */ +#define ADC_CFGR_DMACONTREQ(__DMACONTREQ_MODE__) ((__DMACONTREQ_MODE__) << ADC_CFGR_DMACFG_Pos) + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Configure the ADC DMA continuous request for ADC multimode. + * @param __DMACONTREQ_MODE__ DMA continuous request mode. + * @retval None + */ +#define ADC_CCR_MULTI_DMACONTREQ(__DMACONTREQ_MODE__) ((__DMACONTREQ_MODE__) << ADC_CCR_DMACFG_Pos) +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @brief Shift the offset with respect to the selected ADC resolution. + * @note Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0. + * If resolution 12 bits, no shift. + * If resolution 10 bits, shift of 2 ranks on the left. + * If resolution 8 bits, shift of 4 ranks on the left. + * If resolution 6 bits, shift of 6 ranks on the left. + * Therefore, shift = (12 - resolution) = 12 - (12- (((RES[1:0]) >> 3)*2)). + * @param __HANDLE__ ADC handle + * @param __OFFSET__ Value to be shifted + * @retval None + */ +#define ADC_OFFSET_SHIFT_RESOLUTION(__HANDLE__, __OFFSET__) \ + ((__OFFSET__) << ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3UL) * 2UL)) + +/** + * @brief Shift the AWD1 threshold with respect to the selected ADC resolution. + * @note Thresholds have to be left-aligned on bit 11, the LSB (right bits) are set to 0. + * If resolution 12 bits, no shift. + * If resolution 10 bits, shift of 2 ranks on the left. + * If resolution 8 bits, shift of 4 ranks on the left. + * If resolution 6 bits, shift of 6 ranks on the left. + * Therefore, shift = (12 - resolution) = 12 - (12- (((RES[1:0]) >> 3)*2)). + * @param __HANDLE__ ADC handle + * @param __THRESHOLD__ Value to be shifted + * @retval None + */ +#define ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(__HANDLE__, __THRESHOLD__) \ + ((__THRESHOLD__) << ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3UL) * 2UL)) + +/** + * @brief Shift the AWD2 and AWD3 threshold with respect to the selected ADC resolution. + * @note Thresholds have to be left-aligned on bit 7. + * If resolution 12 bits, shift of 4 ranks on the right (the 4 LSB are discarded). + * If resolution 10 bits, shift of 2 ranks on the right (the 2 LSB are discarded). + * If resolution 8 bits, no shift. + * If resolution 6 bits, shift of 2 ranks on the left (the 2 LSB are set to 0). + * @param __HANDLE__ ADC handle + * @param __THRESHOLD__ Value to be shifted + * @retval None + */ +#define ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(__HANDLE__, __THRESHOLD__) \ + ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) != (ADC_CFGR_RES_1 | ADC_CFGR_RES_0)) ? \ + ((__THRESHOLD__) >> ((4UL - ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3UL) * 2UL)) & 0x1FUL)) : \ + ((__THRESHOLD__) << 2UL) \ + ) + +/** + * @brief Clear Common Control Register. + * @param __HANDLE__ ADC handle. + * @retval None + */ +#if defined(ADC_MULTIMODE_SUPPORT) +#define ADC_CLEAR_COMMON_CONTROL_REGISTER(__HANDLE__) CLEAR_BIT(__LL_ADC_COMMON_INSTANCE((__HANDLE__)->Instance)->CCR, \ + ADC_CCR_CKMODE | \ + ADC_CCR_PRESC | \ + ADC_CCR_VBATSEL | \ + ADC_CCR_VSENSESEL | \ + ADC_CCR_VREFEN | \ + ADC_CCR_MDMA | \ + ADC_CCR_DMACFG | \ + ADC_CCR_DELAY | \ + ADC_CCR_DUAL) +#endif /* ADC_MULTIMODE_SUPPORT */ + +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +/** + * @brief Set handle instance of the ADC slave associated to the ADC master. + * @param __HANDLE_MASTER__ ADC master handle. + * @param __HANDLE_SLAVE__ ADC slave handle. + * @note if __HANDLE_MASTER__ is the handle of a slave ADC or an independent ADC, __HANDLE_SLAVE__ instance is + * set to NULL. + * @retval None + */ +#define ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__) \ + ( ((__HANDLE_MASTER__)->Instance == ADC1) ? \ + ((__HANDLE_SLAVE__)->Instance = ADC2) \ + : \ + ((__HANDLE_MASTER__)->Instance == ADC3) ? \ + ((__HANDLE_SLAVE__)->Instance = ADC4) \ + : \ + ((__HANDLE_SLAVE__)->Instance = NULL) \ + ) +#elif defined(STM32G411xB) || defined(STM32G411xC) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) || defined(STM32G471xx) || defined(STM32G491xx) || defined(STM32G4A1xx) +/** + * @brief Set handle instance of the ADC slave associated to the ADC master. + * @param __HANDLE_MASTER__ ADC master handle. + * @param __HANDLE_SLAVE__ ADC slave handle. + * @note if __HANDLE_MASTER__ is the handle of a slave ADC or an independent ADC, __HANDLE_SLAVE__ instance is set + * to NULL. + * @retval None + */ +#define ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__) \ + ( ((__HANDLE_MASTER__)->Instance == ADC1) ? \ + ((__HANDLE_SLAVE__)->Instance = ADC2) \ + : \ + ((__HANDLE_SLAVE__)->Instance = NULL) \ + ) +#endif /* STM32G4xx */ + + +/** + * @brief Verify the ADC instance connected to the temperature sensor. + * @param __HANDLE__ ADC handle. + * @retval SET (ADC instance is valid) or RESET (ADC instance is invalid) + */ +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +#define ADC_TEMPERATURE_SENSOR_INSTANCE(__HANDLE__) \ + ((((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC5)) +#elif defined(STM32G411xB) || defined(STM32G411xC) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) || defined(STM32G471xx) || defined(STM32G491xx) || defined(STM32G4A1xx) +#define ADC_TEMPERATURE_SENSOR_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) == ADC1) +#endif /* defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) */ + +/** + * @brief Verify the ADC instance connected to the battery voltage VBAT. + * @param __HANDLE__ ADC handle. + * @retval SET (ADC instance is valid) or RESET (ADC instance is invalid) + */ +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +#define ADC_BATTERY_VOLTAGE_INSTANCE(__HANDLE__) \ + ((((__HANDLE__)->Instance) != ADC2) || (((__HANDLE__)->Instance) != ADC4)) +#elif defined(STM32G411xB) || defined(STM32G411xC) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) || defined(STM32G471xx) +#define ADC_BATTERY_VOLTAGE_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) != ADC2) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) +#define ADC_BATTERY_VOLTAGE_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) == ADC1) +#endif /* STM32G4xx */ + +/** + * @brief Verify the ADC instance connected to the internal voltage reference VREFINT. + * @param __HANDLE__ ADC handle. + * @retval SET (ADC instance is valid) or RESET (ADC instance is invalid) + */ +#define ADC_VREFINT_INSTANCE(__HANDLE__) (((__HANDLE__)->Instance) != ADC2) + +/** + * @brief Verify the length of scheduled injected conversions group. + * @param __LENGTH__ number of programmed conversions. + * @retval SET (__LENGTH__ is within the maximum number of possible programmable injected conversions) + * or RESET (__LENGTH__ is null or too large) + */ +#define IS_ADC_INJECTED_NB_CONV(__LENGTH__) (((__LENGTH__) >= (1U)) && ((__LENGTH__) <= (4U))) + +/** + * @brief Calibration factor size verification (7 bits maximum). + * @param __CALIBRATION_FACTOR__ Calibration factor value. + * @retval SET (__CALIBRATION_FACTOR__ is within the authorized size) or RESET (__CALIBRATION_FACTOR__ is too large) + */ +#define IS_ADC_CALFACT(__CALIBRATION_FACTOR__) ((__CALIBRATION_FACTOR__) <= (0x7FU)) + + +/** + * @brief Verify the ADC channel setting. + * @param __HANDLE__ ADC handle. + * @param __CHANNEL__ programmed ADC channel. + * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid) + */ +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +#define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_0) || \ + ((__CHANNEL__) == ADC_CHANNEL_1) || \ + ((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_14) || \ + ((__CHANNEL__) == ADC_CHANNEL_15)) || \ + ((((__HANDLE__)->Instance) == ADC1) && \ + (((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT))) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == ADC_CHANNEL_17) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC2))) || \ + ((((__HANDLE__)->Instance) == ADC3) && \ + (((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC3) || \ + ((__CHANNEL__) == ADC_CHANNEL_16) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT))) || \ + ((((__HANDLE__)->Instance) == ADC4) && \ + (((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_16) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP6) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT))) || \ + ((((__HANDLE__)->Instance) == ADC5) && \ + (((__CHANNEL__) == ADC_CHANNEL_VOPAMP5) || \ + ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR_ADC5) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP4) || \ + ((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_16) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT)))) +#elif defined(STM32G471xx) +#define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_0) || \ + ((__CHANNEL__) == ADC_CHANNEL_1) || \ + ((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_14) || \ + ((__CHANNEL__) == ADC_CHANNEL_15)) || \ + ((((__HANDLE__)->Instance) == ADC1) && \ + (((__CHANNEL__) == ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT))) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == ADC_CHANNEL_17) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC2))) || \ + ((((__HANDLE__)->Instance) == ADC3) && \ + (((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC3) || \ + ((__CHANNEL__) == ADC_CHANNEL_16) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT)))) +#elif defined(STM32G411xB) || defined(STM32G411xC) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_0) || \ + ((__CHANNEL__) == ADC_CHANNEL_1) || \ + ((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_14) || \ + ((__CHANNEL__) == ADC_CHANNEL_15)) || \ + ((((__HANDLE__)->Instance) == ADC1) && \ + (((__CHANNEL__) == ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT))) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == ADC_CHANNEL_17) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC2)))) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) +#define IS_ADC_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_0) || \ + ((__CHANNEL__) == ADC_CHANNEL_1) || \ + ((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_14) || \ + ((__CHANNEL__) == ADC_CHANNEL_15)) || \ + ((((__HANDLE__)->Instance) == ADC1) && \ + (((__CHANNEL__) == ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT))) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == ADC_CHANNEL_17) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC2))) || \ + ((((__HANDLE__)->Instance) == ADC3) && \ + (((__CHANNEL__) == ADC_CHANNEL_VOPAMP3_ADC3) || \ + ((__CHANNEL__) == ADC_CHANNEL_16) || \ + ((__CHANNEL__) == ADC_CHANNEL_VOPAMP6) || \ + ((__CHANNEL__) == ADC_CHANNEL_VREFINT)))) +#endif /* defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) */ + +/** + * @brief Verify the ADC channel setting in differential mode. + * @param __HANDLE__ ADC handle. + * @param __CHANNEL__ programmed ADC channel. + * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid) + */ +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +#define IS_ADC_DIFF_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_1) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_14)) || \ + ((((__HANDLE__)->Instance) == ADC1) && \ + (((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5))) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_13))) || \ + ((((__HANDLE__)->Instance) == ADC3) && \ + (((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_15))) || \ + ((((__HANDLE__)->Instance) == ADC4) && \ + (((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_15))) || \ + ((((__HANDLE__)->Instance) == ADC5) && \ + (((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_13) || \ + ((__CHANNEL__) == ADC_CHANNEL_15))) ) +#elif defined(STM32G471xx) || defined(STM32G491xx) || defined(STM32G4A1xx) || defined(STM32G411xC) +#define IS_ADC_DIFF_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_1) || \ + (((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_14)) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_13))) || \ + ((((__HANDLE__)->Instance) == ADC3) && \ + ((__CHANNEL__) == ADC_CHANNEL_15))) ) +#elif defined(STM32G411xB) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define IS_ADC_DIFF_CHANNEL(__HANDLE__, __CHANNEL__) ( ( ((__CHANNEL__) == ADC_CHANNEL_1) || \ + ((__CHANNEL__) == ADC_CHANNEL_2) || \ + ((__CHANNEL__) == ADC_CHANNEL_3) || \ + ((__CHANNEL__) == ADC_CHANNEL_4) || \ + ((__CHANNEL__) == ADC_CHANNEL_5) || \ + ((__CHANNEL__) == ADC_CHANNEL_6) || \ + ((__CHANNEL__) == ADC_CHANNEL_7) || \ + ((__CHANNEL__) == ADC_CHANNEL_8) || \ + ((__CHANNEL__) == ADC_CHANNEL_9) || \ + ((__CHANNEL__) == ADC_CHANNEL_10) || \ + ((__CHANNEL__) == ADC_CHANNEL_11) || \ + ((__CHANNEL__) == ADC_CHANNEL_14)) || \ + ((((__HANDLE__)->Instance) == ADC2) && \ + (((__CHANNEL__) == ADC_CHANNEL_12) || \ + ((__CHANNEL__) == ADC_CHANNEL_13))) ) +#endif /* STM32G4xx */ + +/** + * @brief Verify the ADC single-ended input or differential mode setting. + * @param __SING_DIFF__ programmed channel setting. + * @retval SET (__SING_DIFF__ is valid) or RESET (__SING_DIFF__ is invalid) + */ +#define IS_ADC_SINGLE_DIFFERENTIAL(__SING_DIFF__) (((__SING_DIFF__) == ADC_SINGLE_ENDED) || \ + ((__SING_DIFF__) == ADC_DIFFERENTIAL_ENDED) ) + +/** + * @brief Verify the ADC offset management setting. + * @param __OFFSET_NUMBER__ ADC offset management. + * @retval SET (__OFFSET_NUMBER__ is valid) or RESET (__OFFSET_NUMBER__ is invalid) + */ +#define IS_ADC_OFFSET_NUMBER(__OFFSET_NUMBER__) (((__OFFSET_NUMBER__) == ADC_OFFSET_NONE) || \ + ((__OFFSET_NUMBER__) == ADC_OFFSET_1) || \ + ((__OFFSET_NUMBER__) == ADC_OFFSET_2) || \ + ((__OFFSET_NUMBER__) == ADC_OFFSET_3) || \ + ((__OFFSET_NUMBER__) == ADC_OFFSET_4) ) + +/** + * @brief Verify the ADC offset sign setting. + * @param __OFFSET_SIGN__ ADC offset sign. + * @retval SET (__OFFSET_SIGN__ is valid) or RESET (__OFFSET_SIGN__ is invalid) + */ +#define IS_ADC_OFFSET_SIGN(__OFFSET_SIGN__) (((__OFFSET_SIGN__) == ADC_OFFSET_SIGN_NEGATIVE) || \ + ((__OFFSET_SIGN__) == ADC_OFFSET_SIGN_POSITIVE) ) + +/** + * @brief Verify the ADC injected channel setting. + * @param __CHANNEL__ programmed ADC injected channel. + * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid) + */ +#define IS_ADC_INJECTED_RANK(__CHANNEL__) (((__CHANNEL__) == ADC_INJECTED_RANK_1) || \ + ((__CHANNEL__) == ADC_INJECTED_RANK_2) || \ + ((__CHANNEL__) == ADC_INJECTED_RANK_3) || \ + ((__CHANNEL__) == ADC_INJECTED_RANK_4) ) + +/** + * @brief Verify the ADC injected conversions external trigger. + * @param __HANDLE__ ADC handle. + * @param __INJTRIG__ programmed ADC injected conversions external trigger. + * @retval SET (__INJTRIG__ is a valid value) or RESET (__INJTRIG__ is invalid) + */ +#if defined(STM32G474xx) || defined(STM32G484xx) +#define IS_ADC_EXTTRIGINJEC(__HANDLE__, __INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T6_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T7_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T15_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG5) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG6) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG7) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG8) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG9) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG10) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T16_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT15))) || \ + ((((__HANDLE__)->Instance == ADC3) || \ + ((__HANDLE__)->Instance == ADC4) || \ + ((__HANDLE__)->Instance == ADC5)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_HRTIM_TRG3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT3))) || \ + ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START) ) +#elif defined(STM32G473xx) || defined(STM32G483xx) +#define IS_ADC_EXTTRIGINJEC(__HANDLE__, __INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T6_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T7_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T15_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T16_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT15))) || \ + ((((__HANDLE__)->Instance == ADC3) || \ + ((__HANDLE__)->Instance == ADC4) || \ + ((__HANDLE__)->Instance == ADC5)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT3))) || \ + ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START) ) +#elif defined(STM32G471xx) +#define IS_ADC_EXTTRIGINJEC(__HANDLE__, __INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T6_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T7_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T15_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T16_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT15))) || \ + ((((__HANDLE__)->Instance == ADC3)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT3))) || \ + ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START) ) +#elif defined(STM32G411xB) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define IS_ADC_EXTTRIGINJEC(__HANDLE__, __INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T6_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T7_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T15_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T16_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT15) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_LPTIM_OUT) || \ + ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START) ) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) || defined(STM32G411xC) +#define IS_ADC_EXTTRIGINJEC(__HANDLE__, __INJTRIG__) (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T6_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T7_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T15_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_TRGO) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_TRGO2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_LPTIM_OUT) || \ + ((((__HANDLE__)->Instance == ADC1) || \ + ((__HANDLE__)->Instance == ADC2)) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T2_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T3_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T16_CC1) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT15))) || \ + (((__HANDLE__)->Instance == ADC3) && \ + (((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T1_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC3) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T4_CC4) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T8_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_T20_CC2) || \ + ((__INJTRIG__) == ADC_EXTERNALTRIGINJEC_EXT_IT3))) || \ + ((__INJTRIG__) == ADC_INJECTED_SOFTWARE_START) ) +#endif /* STM32G4xx */ + +/** + * @brief Verify the ADC edge trigger setting for injected group. + * @param __EDGE__ programmed ADC edge trigger setting. + * @retval SET (__EDGE__ is a valid value) or RESET (__EDGE__ is invalid) + */ +#define IS_ADC_EXTTRIGINJEC_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE) || \ + ((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISING) || \ + ((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_FALLING) || \ + ((__EDGE__) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISINGFALLING) ) + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Verify the ADC multimode setting. + * @param __MODE__ programmed ADC multimode setting. + * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) + */ +#define IS_ADC_MULTIMODE(__MODE__) (((__MODE__) == ADC_MODE_INDEPENDENT) || \ + ((__MODE__) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \ + ((__MODE__) == ADC_DUALMODE_REGSIMULT_ALTERTRIG) || \ + ((__MODE__) == ADC_DUALMODE_REGINTERL_INJECSIMULT) || \ + ((__MODE__) == ADC_DUALMODE_INJECSIMULT) || \ + ((__MODE__) == ADC_DUALMODE_REGSIMULT) || \ + ((__MODE__) == ADC_DUALMODE_INTERL) || \ + ((__MODE__) == ADC_DUALMODE_ALTERTRIG) ) + +/** + * @brief Verify the ADC multimode DMA access setting. + * @param __MODE__ programmed ADC multimode DMA access setting. + * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) + */ +#define IS_ADC_DMA_ACCESS_MULTIMODE(__MODE__) (((__MODE__) == ADC_DMAACCESSMODE_DISABLED) || \ + ((__MODE__) == ADC_DMAACCESSMODE_12_10_BITS) || \ + ((__MODE__) == ADC_DMAACCESSMODE_8_6_BITS) ) + +/** + * @brief Verify the ADC multimode delay setting. + * @param __DELAY__ programmed ADC multimode delay setting. + * @retval SET (__DELAY__ is a valid value) or RESET (__DELAY__ is invalid) + */ +#define IS_ADC_SAMPLING_DELAY(__DELAY__) (((__DELAY__) == ADC_TWOSAMPLINGDELAY_1CYCLE) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_2CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_3CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_4CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_5CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_6CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_7CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_8CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_9CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_10CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_11CYCLES) || \ + ((__DELAY__) == ADC_TWOSAMPLINGDELAY_12CYCLES) ) +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @brief Verify the ADC analog watchdog setting. + * @param __WATCHDOG__ programmed ADC analog watchdog setting. + * @retval SET (__WATCHDOG__ is valid) or RESET (__WATCHDOG__ is invalid) + */ +#define IS_ADC_ANALOG_WATCHDOG_NUMBER(__WATCHDOG__) (((__WATCHDOG__) == ADC_ANALOGWATCHDOG_1) || \ + ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_2) || \ + ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_3) ) + +/** + * @brief Verify the ADC analog watchdog mode setting. + * @param __WATCHDOG_MODE__ programmed ADC analog watchdog mode setting. + * @retval SET (__WATCHDOG_MODE__ is valid) or RESET (__WATCHDOG_MODE__ is invalid) + */ +#define IS_ADC_ANALOG_WATCHDOG_MODE(__WATCHDOG_MODE__) (((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_NONE) || \ + ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_SINGLE_REG) || \ + ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || \ + ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC) || \ + ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_ALL_REG) || \ + ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_ALL_INJEC) || \ + ((__WATCHDOG_MODE__) == ADC_ANALOGWATCHDOG_ALL_REGINJEC) ) + +/** + * @brief Verify the ADC analog watchdog filtering setting. + * @param __FILTERING_MODE__ programmed ADC analog watchdog mode setting. + * @retval SET (__FILTERING_MODE__ is valid) or RESET (__FILTERING_MODE__ is invalid) + */ +#define IS_ADC_ANALOG_WATCHDOG_FILTERING_MODE(__FILTERING_MODE__) \ + (((__FILTERING_MODE__) == ADC_AWD_FILTERING_NONE) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_2SAMPLES) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_3SAMPLES) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_4SAMPLES) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_5SAMPLES) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_6SAMPLES) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_7SAMPLES) || \ + ((__FILTERING_MODE__) == ADC_AWD_FILTERING_8SAMPLES) ) + + +/** + * @brief Verify the ADC conversion (regular or injected or both). + * @param __CONVERSION__ ADC conversion group. + * @retval SET (__CONVERSION__ is valid) or RESET (__CONVERSION__ is invalid) + */ +#define IS_ADC_CONVERSION_GROUP(__CONVERSION__) (((__CONVERSION__) == ADC_REGULAR_GROUP) || \ + ((__CONVERSION__) == ADC_INJECTED_GROUP) || \ + ((__CONVERSION__) == ADC_REGULAR_INJECTED_GROUP) ) + +/** + * @brief Verify the ADC event type. + * @param __EVENT__ ADC event. + * @retval SET (__EVENT__ is valid) or RESET (__EVENT__ is invalid) + */ +#define IS_ADC_EVENT_TYPE(__EVENT__) (((__EVENT__) == ADC_EOSMP_EVENT) || \ + ((__EVENT__) == ADC_AWD_EVENT) || \ + ((__EVENT__) == ADC_AWD2_EVENT) || \ + ((__EVENT__) == ADC_AWD3_EVENT) || \ + ((__EVENT__) == ADC_OVR_EVENT) || \ + ((__EVENT__) == ADC_JQOVF_EVENT) ) + +/** + * @brief Verify the ADC oversampling ratio. + * @param __RATIO__ programmed ADC oversampling ratio. + * @retval SET (__RATIO__ is a valid value) or RESET (__RATIO__ is invalid) + */ +#define IS_ADC_OVERSAMPLING_RATIO(__RATIO__) (((__RATIO__) == ADC_OVERSAMPLING_RATIO_2 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_4 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_8 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_16 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_32 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_64 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_128 ) || \ + ((__RATIO__) == ADC_OVERSAMPLING_RATIO_256 )) + +/** + * @brief Verify the ADC oversampling shift. + * @param __SHIFT__ programmed ADC oversampling shift. + * @retval SET (__SHIFT__ is a valid value) or RESET (__SHIFT__ is invalid) + */ +#define IS_ADC_RIGHT_BIT_SHIFT(__SHIFT__) (((__SHIFT__) == ADC_RIGHTBITSHIFT_NONE) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_1 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_2 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_3 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_4 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_5 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_6 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_7 ) || \ + ((__SHIFT__) == ADC_RIGHTBITSHIFT_8 )) + +/** + * @brief Verify the ADC oversampling triggered mode. + * @param __MODE__ programmed ADC oversampling triggered mode. + * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) + */ +#define IS_ADC_TRIGGERED_OVERSAMPLING_MODE(__MODE__) (((__MODE__) == ADC_TRIGGEREDMODE_SINGLE_TRIGGER) || \ + ((__MODE__) == ADC_TRIGGEREDMODE_MULTI_TRIGGER) ) + +/** + * @brief Verify the ADC oversampling regular conversion resumed or continued mode. + * @param __MODE__ programmed ADC oversampling regular conversion resumed or continued mode. + * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) + */ +#define IS_ADC_REGOVERSAMPLING_MODE(__MODE__) (((__MODE__) == ADC_REGOVERSAMPLING_CONTINUED_MODE) || \ + ((__MODE__) == ADC_REGOVERSAMPLING_RESUMED_MODE) ) + +/** + * @brief Verify the DFSDM mode configuration. + * @param __HANDLE__ ADC handle. + * @note When DMSDFM configuration is not supported, the macro systematically reports SET. For + * this reason, the input parameter is the ADC handle and not the configuration parameter + * directly. + * @retval SET (DFSDM mode configuration is valid) or RESET (DFSDM mode configuration is invalid) + */ +#define IS_ADC_DFSDMCFG_MODE(__HANDLE__) (SET) + +/** + * @brief Return the DFSDM configuration mode. + * @param __HANDLE__ ADC handle. + * @note When DMSDFM configuration is not supported, the macro systematically reports 0x0 (i.e disabled). + * For this reason, the input parameter is the ADC handle and not the configuration parameter + * directly. + * @retval DFSDM configuration mode + */ +#define ADC_CFGR_DFSDM(__HANDLE__) (0x0UL) + +/** + * @} + */ + + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup ADCEx_Exported_Functions + * @{ + */ + +/** @addtogroup ADCEx_Exported_Functions_Group1 + * @{ + */ +/* IO operation functions *****************************************************/ + +/* ADC calibration */ +HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc, uint32_t SingleDiff); +uint32_t HAL_ADCEx_Calibration_GetValue(const ADC_HandleTypeDef *hadc, uint32_t SingleDiff); +HAL_StatusTypeDef HAL_ADCEx_Calibration_SetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff, + uint32_t CalibrationFactor); + +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout); + +/* Non-blocking mode: Interruption */ +HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc); + +#if defined(ADC_MULTIMODE_SUPPORT) +/* ADC multimode */ +HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length); +HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc); +uint32_t HAL_ADCEx_MultiModeGetValue(const ADC_HandleTypeDef *hadc); +#endif /* ADC_MULTIMODE_SUPPORT */ + +/* ADC retrieve conversion value intended to be used with polling or interruption */ +uint32_t HAL_ADCEx_InjectedGetValue(const ADC_HandleTypeDef *hadc, uint32_t InjectedRank); + +/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption) */ +void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc); +void HAL_ADCEx_InjectedQueueOverflowCallback(ADC_HandleTypeDef *hadc); +void HAL_ADCEx_LevelOutOfWindow2Callback(ADC_HandleTypeDef *hadc); +void HAL_ADCEx_LevelOutOfWindow3Callback(ADC_HandleTypeDef *hadc); +void HAL_ADCEx_EndOfSamplingCallback(ADC_HandleTypeDef *hadc); + +/* ADC group regular conversions stop */ +HAL_StatusTypeDef HAL_ADCEx_RegularStop(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_RegularStop_IT(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_RegularStop_DMA(ADC_HandleTypeDef *hadc); +#if defined(ADC_MULTIMODE_SUPPORT) +HAL_StatusTypeDef HAL_ADCEx_RegularMultiModeStop_DMA(ADC_HandleTypeDef *hadc); +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ + +/** @addtogroup ADCEx_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ***********************************************/ +HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, + const ADC_InjectionConfTypeDef *pConfigInjected); +#if defined(ADC_MULTIMODE_SUPPORT) +HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, + const ADC_MultiModeTypeDef *pMultimode); +#endif /* ADC_MULTIMODE_SUPPORT */ + +HAL_StatusTypeDef HAL_ADCEx_EnableInjectedQueue(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_DisableInjectedQueue(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_DisableVoltageRegulator(ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef HAL_ADCEx_EnterADCDeepPowerDownMode(ADC_HandleTypeDef *hadc); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_ADC_EX_H */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h new file mode 100644 index 0000000..c1fbd86 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h @@ -0,0 +1,421 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_HAL_CORTEX_H +#define __STM32G4xx_HAL_CORTEX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup CORTEX CORTEX + * @brief CORTEX HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup CORTEX_Exported_Types CORTEX Exported Types + * @{ + */ + +#if (__MPU_PRESENT == 1) +/** @defgroup CORTEX_MPU_Region_Initialization_Structure_definition MPU Region Initialization Structure Definition + * @brief MPU Region initialization structure + * @{ + */ +typedef struct +{ + uint8_t Enable; /*!< Specifies the status of the region. + This parameter can be a value of @ref CORTEX_MPU_Region_Enable */ + uint8_t Number; /*!< Specifies the number of the region to protect. + This parameter can be a value of @ref CORTEX_MPU_Region_Number */ + uint32_t BaseAddress; /*!< Specifies the base address of the region to protect. */ + uint8_t Size; /*!< Specifies the size of the region to protect. + This parameter can be a value of @ref CORTEX_MPU_Region_Size */ + uint8_t SubRegionDisable; /*!< Specifies the number of the subregion protection to disable. + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF */ + uint8_t TypeExtField; /*!< Specifies the TEX field level. + This parameter can be a value of @ref CORTEX_MPU_TEX_Levels */ + uint8_t AccessPermission; /*!< Specifies the region access permission type. + This parameter can be a value of @ref CORTEX_MPU_Region_Permission_Attributes */ + uint8_t DisableExec; /*!< Specifies the instruction access status. + This parameter can be a value of @ref CORTEX_MPU_Instruction_Access */ + uint8_t IsShareable; /*!< Specifies the shareability status of the protected region. + This parameter can be a value of @ref CORTEX_MPU_Access_Shareable */ + uint8_t IsCacheable; /*!< Specifies the cacheable status of the region protected. + This parameter can be a value of @ref CORTEX_MPU_Access_Cacheable */ + uint8_t IsBufferable; /*!< Specifies the bufferable status of the protected region. + This parameter can be a value of @ref CORTEX_MPU_Access_Bufferable */ +}MPU_Region_InitTypeDef; +/** + * @} + */ +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup CORTEX_Exported_Constants CORTEX Exported Constants + * @{ + */ + +/** @defgroup CORTEX_Preemption_Priority_Group CORTEX Preemption Priority Group + * @{ + */ +#define NVIC_PRIORITYGROUP_0 0x00000007U /*!< 0 bit for pre-emption priority, + 4 bits for subpriority */ +#define NVIC_PRIORITYGROUP_1 0x00000006U /*!< 1 bit for pre-emption priority, + 3 bits for subpriority */ +#define NVIC_PRIORITYGROUP_2 0x00000005U /*!< 2 bits for pre-emption priority, + 2 bits for subpriority */ +#define NVIC_PRIORITYGROUP_3 0x00000004U /*!< 3 bits for pre-emption priority, + 1 bit for subpriority */ +#define NVIC_PRIORITYGROUP_4 0x00000003U /*!< 4 bits for pre-emption priority, + 0 bit for subpriority */ +/** + * @} + */ + +/** @defgroup CORTEX_SysTick_clock_source CORTEX SysTick clock source + * @{ + */ +#define SYSTICK_CLKSOURCE_HCLK_DIV8 0x00000000U +#define SYSTICK_CLKSOURCE_HCLK 0x00000004U + +/** + * @} + */ + +#if (__MPU_PRESENT == 1) +/** @defgroup CORTEX_MPU_HFNMI_PRIVDEF_Control CORTEX MPU HFNMI and PRIVILEGED Access control + * @{ + */ +#define MPU_HFNMI_PRIVDEF_NONE 0x00000000U +#define MPU_HARDFAULT_NMI (MPU_CTRL_HFNMIENA_Msk) +#define MPU_PRIVILEGED_DEFAULT (MPU_CTRL_PRIVDEFENA_Msk) +#define MPU_HFNMI_PRIVDEF (MPU_CTRL_HFNMIENA_Msk | MPU_CTRL_PRIVDEFENA_Msk) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Enable CORTEX MPU Region Enable + * @{ + */ +#define MPU_REGION_ENABLE ((uint8_t)0x01) +#define MPU_REGION_DISABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Instruction_Access CORTEX MPU Instruction Access + * @{ + */ +#define MPU_INSTRUCTION_ACCESS_ENABLE ((uint8_t)0x00) +#define MPU_INSTRUCTION_ACCESS_DISABLE ((uint8_t)0x01) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Shareable CORTEX MPU Instruction Access Shareable + * @{ + */ +#define MPU_ACCESS_SHAREABLE ((uint8_t)0x01) +#define MPU_ACCESS_NOT_SHAREABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Cacheable CORTEX MPU Instruction Access Cacheable + * @{ + */ +#define MPU_ACCESS_CACHEABLE ((uint8_t)0x01) +#define MPU_ACCESS_NOT_CACHEABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Bufferable CORTEX MPU Instruction Access Bufferable + * @{ + */ +#define MPU_ACCESS_BUFFERABLE ((uint8_t)0x01) +#define MPU_ACCESS_NOT_BUFFERABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_TEX_Levels CORTEX MPU TEX Levels + * @{ + */ +#define MPU_TEX_LEVEL0 ((uint8_t)0x00) +#define MPU_TEX_LEVEL1 ((uint8_t)0x01) +#define MPU_TEX_LEVEL2 ((uint8_t)0x02) +#define MPU_TEX_LEVEL4 ((uint8_t)0x04) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Size CORTEX MPU Region Size + * @{ + */ +#define MPU_REGION_SIZE_32B ((uint8_t)0x04) +#define MPU_REGION_SIZE_64B ((uint8_t)0x05) +#define MPU_REGION_SIZE_128B ((uint8_t)0x06) +#define MPU_REGION_SIZE_256B ((uint8_t)0x07) +#define MPU_REGION_SIZE_512B ((uint8_t)0x08) +#define MPU_REGION_SIZE_1KB ((uint8_t)0x09) +#define MPU_REGION_SIZE_2KB ((uint8_t)0x0A) +#define MPU_REGION_SIZE_4KB ((uint8_t)0x0B) +#define MPU_REGION_SIZE_8KB ((uint8_t)0x0C) +#define MPU_REGION_SIZE_16KB ((uint8_t)0x0D) +#define MPU_REGION_SIZE_32KB ((uint8_t)0x0E) +#define MPU_REGION_SIZE_64KB ((uint8_t)0x0F) +#define MPU_REGION_SIZE_128KB ((uint8_t)0x10) +#define MPU_REGION_SIZE_256KB ((uint8_t)0x11) +#define MPU_REGION_SIZE_512KB ((uint8_t)0x12) +#define MPU_REGION_SIZE_1MB ((uint8_t)0x13) +#define MPU_REGION_SIZE_2MB ((uint8_t)0x14) +#define MPU_REGION_SIZE_4MB ((uint8_t)0x15) +#define MPU_REGION_SIZE_8MB ((uint8_t)0x16) +#define MPU_REGION_SIZE_16MB ((uint8_t)0x17) +#define MPU_REGION_SIZE_32MB ((uint8_t)0x18) +#define MPU_REGION_SIZE_64MB ((uint8_t)0x19) +#define MPU_REGION_SIZE_128MB ((uint8_t)0x1A) +#define MPU_REGION_SIZE_256MB ((uint8_t)0x1B) +#define MPU_REGION_SIZE_512MB ((uint8_t)0x1C) +#define MPU_REGION_SIZE_1GB ((uint8_t)0x1D) +#define MPU_REGION_SIZE_2GB ((uint8_t)0x1E) +#define MPU_REGION_SIZE_4GB ((uint8_t)0x1F) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Permission_Attributes CORTEX MPU Region Permission Attributes + * @{ + */ +#define MPU_REGION_NO_ACCESS ((uint8_t)0x00) +#define MPU_REGION_PRIV_RW ((uint8_t)0x01) +#define MPU_REGION_PRIV_RW_URO ((uint8_t)0x02) +#define MPU_REGION_FULL_ACCESS ((uint8_t)0x03) +#define MPU_REGION_PRIV_RO ((uint8_t)0x05) +#define MPU_REGION_PRIV_RO_URO ((uint8_t)0x06) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Number CORTEX MPU Region Number + * @{ + */ +#define MPU_REGION_NUMBER0 ((uint8_t)0x00) +#define MPU_REGION_NUMBER1 ((uint8_t)0x01) +#define MPU_REGION_NUMBER2 ((uint8_t)0x02) +#define MPU_REGION_NUMBER3 ((uint8_t)0x03) +#define MPU_REGION_NUMBER4 ((uint8_t)0x04) +#define MPU_REGION_NUMBER5 ((uint8_t)0x05) +#define MPU_REGION_NUMBER6 ((uint8_t)0x06) +#define MPU_REGION_NUMBER7 ((uint8_t)0x07) +/** + * @} + */ +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup CORTEX_Exported_Macros CORTEX Exported Macros + * @{ + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup CORTEX_Exported_Functions CORTEX Exported Functions + * @{ + */ + +/** @defgroup CORTEX_Exported_Functions_Group1 Initialization and Configuration functions + * @brief Initialization and Configuration functions + * @{ + */ +/* Initialization and Configuration functions *****************************/ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup); +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority); +void HAL_NVIC_EnableIRQ(IRQn_Type IRQn); +void HAL_NVIC_DisableIRQ(IRQn_Type IRQn); +void HAL_NVIC_SystemReset(void); +uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb); + +/** + * @} + */ + +/** @defgroup CORTEX_Exported_Functions_Group2 Peripheral Control functions + * @brief Cortex control functions + * @{ + */ +/* Peripheral Control functions ***********************************************/ +uint32_t HAL_NVIC_GetPriorityGrouping(void); +void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority); +uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn); +void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn); +void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn); +uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn); +void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource); +void HAL_SYSTICK_IRQHandler(void); +void HAL_SYSTICK_Callback(void); + +#if (__MPU_PRESENT == 1) +void HAL_MPU_Enable(uint32_t MPU_Control); +void HAL_MPU_Disable(void); +void HAL_MPU_EnableRegion(uint32_t RegionNumber); +void HAL_MPU_DisableRegion(uint32_t RegionNumber); +void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init); +#endif /* __MPU_PRESENT */ +/** + * @} + */ + +/** + * @} + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/** @defgroup CORTEX_Private_Macros CORTEX Private Macros + * @{ + */ +#define IS_NVIC_PRIORITY_GROUP(GROUP) (((GROUP) == NVIC_PRIORITYGROUP_0) || \ + ((GROUP) == NVIC_PRIORITYGROUP_1) || \ + ((GROUP) == NVIC_PRIORITYGROUP_2) || \ + ((GROUP) == NVIC_PRIORITYGROUP_3) || \ + ((GROUP) == NVIC_PRIORITYGROUP_4)) + +#define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x10U) + +#define IS_NVIC_SUB_PRIORITY(PRIORITY) ((PRIORITY) < 0x10U) + +#define IS_NVIC_DEVICE_IRQ(IRQ) ((IRQ) > SysTick_IRQn) + +#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SYSTICK_CLKSOURCE_HCLK) || \ + ((SOURCE) == SYSTICK_CLKSOURCE_HCLK_DIV8)) + +#if (__MPU_PRESENT == 1) +#define IS_MPU_REGION_ENABLE(STATE) (((STATE) == MPU_REGION_ENABLE) || \ + ((STATE) == MPU_REGION_DISABLE)) + +#define IS_MPU_INSTRUCTION_ACCESS(STATE) (((STATE) == MPU_INSTRUCTION_ACCESS_ENABLE) || \ + ((STATE) == MPU_INSTRUCTION_ACCESS_DISABLE)) + +#define IS_MPU_ACCESS_SHAREABLE(STATE) (((STATE) == MPU_ACCESS_SHAREABLE) || \ + ((STATE) == MPU_ACCESS_NOT_SHAREABLE)) + +#define IS_MPU_ACCESS_CACHEABLE(STATE) (((STATE) == MPU_ACCESS_CACHEABLE) || \ + ((STATE) == MPU_ACCESS_NOT_CACHEABLE)) + +#define IS_MPU_ACCESS_BUFFERABLE(STATE) (((STATE) == MPU_ACCESS_BUFFERABLE) || \ + ((STATE) == MPU_ACCESS_NOT_BUFFERABLE)) + +#define IS_MPU_TEX_LEVEL(TYPE) (((TYPE) == MPU_TEX_LEVEL0) || \ + ((TYPE) == MPU_TEX_LEVEL1) || \ + ((TYPE) == MPU_TEX_LEVEL2) || \ + ((TYPE) == MPU_TEX_LEVEL4)) + +#define IS_MPU_REGION_PERMISSION_ATTRIBUTE(TYPE) (((TYPE) == MPU_REGION_NO_ACCESS) || \ + ((TYPE) == MPU_REGION_PRIV_RW) || \ + ((TYPE) == MPU_REGION_PRIV_RW_URO) || \ + ((TYPE) == MPU_REGION_FULL_ACCESS) || \ + ((TYPE) == MPU_REGION_PRIV_RO) || \ + ((TYPE) == MPU_REGION_PRIV_RO_URO)) + +#define IS_MPU_REGION_NUMBER(NUMBER) (((NUMBER) == MPU_REGION_NUMBER0) || \ + ((NUMBER) == MPU_REGION_NUMBER1) || \ + ((NUMBER) == MPU_REGION_NUMBER2) || \ + ((NUMBER) == MPU_REGION_NUMBER3) || \ + ((NUMBER) == MPU_REGION_NUMBER4) || \ + ((NUMBER) == MPU_REGION_NUMBER5) || \ + ((NUMBER) == MPU_REGION_NUMBER6) || \ + ((NUMBER) == MPU_REGION_NUMBER7)) + +#define IS_MPU_REGION_SIZE(SIZE) (((SIZE) == MPU_REGION_SIZE_32B) || \ + ((SIZE) == MPU_REGION_SIZE_64B) || \ + ((SIZE) == MPU_REGION_SIZE_128B) || \ + ((SIZE) == MPU_REGION_SIZE_256B) || \ + ((SIZE) == MPU_REGION_SIZE_512B) || \ + ((SIZE) == MPU_REGION_SIZE_1KB) || \ + ((SIZE) == MPU_REGION_SIZE_2KB) || \ + ((SIZE) == MPU_REGION_SIZE_4KB) || \ + ((SIZE) == MPU_REGION_SIZE_8KB) || \ + ((SIZE) == MPU_REGION_SIZE_16KB) || \ + ((SIZE) == MPU_REGION_SIZE_32KB) || \ + ((SIZE) == MPU_REGION_SIZE_64KB) || \ + ((SIZE) == MPU_REGION_SIZE_128KB) || \ + ((SIZE) == MPU_REGION_SIZE_256KB) || \ + ((SIZE) == MPU_REGION_SIZE_512KB) || \ + ((SIZE) == MPU_REGION_SIZE_1MB) || \ + ((SIZE) == MPU_REGION_SIZE_2MB) || \ + ((SIZE) == MPU_REGION_SIZE_4MB) || \ + ((SIZE) == MPU_REGION_SIZE_8MB) || \ + ((SIZE) == MPU_REGION_SIZE_16MB) || \ + ((SIZE) == MPU_REGION_SIZE_32MB) || \ + ((SIZE) == MPU_REGION_SIZE_64MB) || \ + ((SIZE) == MPU_REGION_SIZE_128MB) || \ + ((SIZE) == MPU_REGION_SIZE_256MB) || \ + ((SIZE) == MPU_REGION_SIZE_512MB) || \ + ((SIZE) == MPU_REGION_SIZE_1GB) || \ + ((SIZE) == MPU_REGION_SIZE_2GB) || \ + ((SIZE) == MPU_REGION_SIZE_4GB)) + +#define IS_MPU_SUB_REGION_DISABLE(SUBREGION) ((SUBREGION) < (uint16_t)0x00FF) +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_HAL_CORTEX_H */ + + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h new file mode 100644 index 0000000..dcb73f6 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h @@ -0,0 +1,211 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_def.h + * @author MCD Application Team + * @brief This file contains HAL common defines, enumeration, macros and + * structures definitions. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_HAL_DEF +#define __STM32G4xx_HAL_DEF + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" +#include "Legacy/stm32_hal_legacy.h" /* Aliases file for old names compatibility */ +#include + +/* Exported types ------------------------------------------------------------*/ + +/** + * @brief HAL Status structures definition + */ +typedef enum +{ + HAL_OK = 0x00U, + HAL_ERROR = 0x01U, + HAL_BUSY = 0x02U, + HAL_TIMEOUT = 0x03U +} HAL_StatusTypeDef; + +/** + * @brief HAL Lock structures definition + */ +typedef enum +{ + HAL_UNLOCKED = 0x00U, + HAL_LOCKED = 0x01U +} HAL_LockTypeDef; + +/* Exported macros -----------------------------------------------------------*/ + +#define HAL_MAX_DELAY 0xFFFFFFFFU + +#define HAL_IS_BIT_SET(REG, BIT) (((REG) & (BIT)) == (BIT)) +#define HAL_IS_BIT_CLR(REG, BIT) (((REG) & (BIT)) == 0U) + +#define __HAL_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \ + do{ \ + (__HANDLE__)->__PPP_DMA_FIELD__ = &(__DMA_HANDLE__); \ + (__DMA_HANDLE__).Parent = (__HANDLE__); \ + } while(0) + +#if !defined(UNUSED) +#define UNUSED(X) (void)X /* To avoid gcc/g++ warnings */ +#endif /* UNUSED */ + +/** @brief Reset the Handle's State field. + * @param __HANDLE__: specifies the Peripheral Handle. + * @note This macro can be used for the following purpose: + * - When the Handle is declared as local variable; before passing it as parameter + * to HAL_PPP_Init() for the first time, it is mandatory to use this macro + * to set to 0 the Handle's "State" field. + * Otherwise, "State" field may have any random value and the first time the function + * HAL_PPP_Init() is called, the low level hardware initialization will be missed + * (i.e. HAL_PPP_MspInit() will not be executed). + * - When there is a need to reconfigure the low level hardware: instead of calling + * HAL_PPP_DeInit() then HAL_PPP_Init(), user can make a call to this macro then HAL_PPP_Init(). + * In this later function, when the Handle's "State" field is set to 0, it will execute the function + * HAL_PPP_MspInit() which will reconfigure the low level hardware. + * @retval None + */ +#define __HAL_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = 0) + +#if (USE_RTOS == 1U) +/* Reserved for future use */ +#error " USE_RTOS should be 0 in the current HAL release " +#else +#define __HAL_LOCK(__HANDLE__) \ + do{ \ + if((__HANDLE__)->Lock == HAL_LOCKED) \ + { \ + return HAL_BUSY; \ + } \ + else \ + { \ + (__HANDLE__)->Lock = HAL_LOCKED; \ + } \ + }while (0U) + +#define __HAL_UNLOCK(__HANDLE__) \ + do{ \ + (__HANDLE__)->Lock = HAL_UNLOCKED; \ + }while (0U) +#endif /* USE_RTOS */ + +#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) /* ARM Compiler V6 */ +#ifndef __weak +#define __weak __attribute__((weak)) +#endif +#ifndef __packed +#define __packed __attribute__((packed)) +#endif +#elif defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */ +#ifndef __weak +#define __weak __attribute__((weak)) +#endif /* __weak */ +#ifndef __packed +#define __packed __attribute__((__packed__)) +#endif /* __packed */ +#endif /* __GNUC__ */ + + +/* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead */ +#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) /* ARM Compiler V6 */ +#ifndef __ALIGN_BEGIN +#define __ALIGN_BEGIN +#endif +#ifndef __ALIGN_END +#define __ALIGN_END __attribute__ ((aligned (4))) +#endif +#elif defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */ +#ifndef __ALIGN_END +#define __ALIGN_END __attribute__ ((aligned (4U))) +#endif /* __ALIGN_END */ +#ifndef __ALIGN_BEGIN +#define __ALIGN_BEGIN +#endif /* __ALIGN_BEGIN */ +#else +#ifndef __ALIGN_END +#define __ALIGN_END +#endif /* __ALIGN_END */ +#ifndef __ALIGN_BEGIN +#if defined (__CC_ARM) /* ARM Compiler V5*/ +#define __ALIGN_BEGIN __align(4U) +#elif defined (__ICCARM__) /* IAR Compiler */ +#define __ALIGN_BEGIN +#endif /* __CC_ARM */ +#endif /* __ALIGN_BEGIN */ +#endif /* __GNUC__ */ + +/** + * @brief __RAM_FUNC definition + */ +#if defined ( __CC_ARM ) || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) +/* ARM Compiler V4/V5 and V6 + -------------------------- + RAM functions are defined using the toolchain options. + Functions that are executed in RAM should reside in a separate source module. + Using the 'Options for File' dialog you can simply change the 'Code / Const' + area of a module to a memory space in physical RAM. + Available memory areas are declared in the 'Target' tab of the 'Options for Target' + dialog. +*/ +#define __RAM_FUNC + +#elif defined ( __ICCARM__ ) +/* ICCARM Compiler + --------------- + RAM functions are defined using a specific toolchain keyword "__ramfunc". +*/ +#define __RAM_FUNC __ramfunc + +#elif defined ( __GNUC__ ) +/* GNU Compiler + ------------ + RAM functions are defined using a specific toolchain attribute + "__attribute__((section(".RamFunc")))". +*/ +#define __RAM_FUNC __attribute__((section(".RamFunc"))) + +#endif /* __CC_ARM */ + +/** + * @brief __NOINLINE definition + */ +#if defined ( __CC_ARM ) || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) || defined ( __GNUC__ ) +/* ARM V4/V5 and V6 & GNU Compiler + ------------------------------- +*/ +#define __NOINLINE __attribute__ ( (noinline) ) + +#elif defined ( __ICCARM__ ) +/* ICCARM Compiler + --------------- +*/ +#define __NOINLINE _Pragma("optimize = no_inline") + +#endif /* __CC_ARM || __GNUC__ */ + + +#ifdef __cplusplus +} +#endif + +#endif /* ___STM32G4xx_HAL_DEF */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h new file mode 100644 index 0000000..8ba1b61 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h @@ -0,0 +1,852 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_dma.h + * @author MCD Application Team + * @brief Header file of DMA HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_HAL_DMA_H +#define __STM32G4xx_HAL_DMA_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup DMA + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup DMA_Exported_Types DMA Exported Types + * @{ + */ + +/** + * @brief DMA Configuration Structure definition + */ +typedef struct +{ + uint32_t Request; /*!< Specifies the request selected for the specified channel. + This parameter can be a value of @ref DMA_request */ + + uint32_t Direction; /*!< Specifies if the data will be transferred from memory to peripheral, + from memory to memory or from peripheral to memory. + This parameter can be a value of @ref DMA_Data_transfer_direction */ + + uint32_t PeriphInc; /*!< Specifies whether the Peripheral address register should be incremented or not. + This parameter can be a value of @ref DMA_Peripheral_incremented_mode */ + + uint32_t MemInc; /*!< Specifies whether the memory address register should be incremented or not. + This parameter can be a value of @ref DMA_Memory_incremented_mode */ + + uint32_t PeriphDataAlignment; /*!< Specifies the Peripheral data width. + This parameter can be a value of @ref DMA_Peripheral_data_size */ + + uint32_t MemDataAlignment; /*!< Specifies the Memory data width. + This parameter can be a value of @ref DMA_Memory_data_size */ + + uint32_t Mode; /*!< Specifies the operation mode of the DMAy Channelx. + This parameter can be a value of @ref DMA_mode + @note The circular buffer mode cannot be used if the memory-to-memory + data transfer is configured on the selected Channel */ + + uint32_t Priority; /*!< Specifies the software priority for the DMAy Channelx. + This parameter can be a value of @ref DMA_Priority_level */ +} DMA_InitTypeDef; + +/** + * @brief HAL DMA State structures definition + */ +typedef enum +{ + HAL_DMA_STATE_RESET = 0x00U, /*!< DMA not yet initialized or disabled */ + HAL_DMA_STATE_READY = 0x01U, /*!< DMA initialized and ready for use */ + HAL_DMA_STATE_BUSY = 0x02U, /*!< DMA process is ongoing */ + HAL_DMA_STATE_TIMEOUT = 0x03U, /*!< DMA timeout state */ +} HAL_DMA_StateTypeDef; + +/** + * @brief HAL DMA Error Code structure definition + */ +typedef enum +{ + HAL_DMA_FULL_TRANSFER = 0x00U, /*!< Full transfer */ + HAL_DMA_HALF_TRANSFER = 0x01U /*!< Half Transfer */ +} HAL_DMA_LevelCompleteTypeDef; + + +/** + * @brief HAL DMA Callback ID structure definition + */ +typedef enum +{ + HAL_DMA_XFER_CPLT_CB_ID = 0x00U, /*!< Full transfer */ + HAL_DMA_XFER_HALFCPLT_CB_ID = 0x01U, /*!< Half transfer */ + HAL_DMA_XFER_ERROR_CB_ID = 0x02U, /*!< Error */ + HAL_DMA_XFER_ABORT_CB_ID = 0x03U, /*!< Abort */ + HAL_DMA_XFER_ALL_CB_ID = 0x04U /*!< All */ + +} HAL_DMA_CallbackIDTypeDef; + +/** + * @brief DMA handle Structure definition + */ +typedef struct __DMA_HandleTypeDef +{ + DMA_Channel_TypeDef *Instance; /*!< Register base address */ + + DMA_InitTypeDef Init; /*!< DMA communication parameters */ + + HAL_LockTypeDef Lock; /*!< DMA locking object */ + + __IO HAL_DMA_StateTypeDef State; /*!< DMA transfer state */ + + void *Parent; /*!< Parent object state */ + + void (* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma); /*!< DMA transfer complete callback */ + + void (* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma); /*!< DMA Half transfer complete callback */ + + void (* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma); /*!< DMA transfer error callback */ + + void (* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma); /*!< DMA transfer abort callback */ + + __IO uint32_t ErrorCode; /*!< DMA Error code */ + + DMA_TypeDef *DmaBaseAddress; /*!< DMA Channel Base Address */ + + uint32_t ChannelIndex; /*!< DMA Channel Index */ + + DMAMUX_Channel_TypeDef *DMAmuxChannel; /*!< Register base address */ + + DMAMUX_ChannelStatus_TypeDef *DMAmuxChannelStatus; /*!< DMAMUX Channels Status Base Address */ + + uint32_t DMAmuxChannelStatusMask; /*!< DMAMUX Channel Status Mask */ + + DMAMUX_RequestGen_TypeDef *DMAmuxRequestGen; /*!< DMAMUX request generator Base Address */ + + DMAMUX_RequestGenStatus_TypeDef *DMAmuxRequestGenStatus; /*!< DMAMUX request generator Address */ + + uint32_t DMAmuxRequestGenStatusMask; /*!< DMAMUX request generator Status mask */ + +} DMA_HandleTypeDef; +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup DMA_Exported_Constants DMA Exported Constants + * @{ + */ + +/** @defgroup DMA_Error_Code DMA Error Code + * @{ + */ +#define HAL_DMA_ERROR_NONE 0x00000000U /*!< No error */ +#define HAL_DMA_ERROR_TE 0x00000001U /*!< Transfer error */ +#define HAL_DMA_ERROR_NO_XFER 0x00000004U /*!< Abort requested with no Xfer ongoing */ +#define HAL_DMA_ERROR_TIMEOUT 0x00000020U /*!< Timeout error */ +#define HAL_DMA_ERROR_NOT_SUPPORTED 0x00000100U /*!< Not supported mode */ +#define HAL_DMA_ERROR_SYNC 0x00000200U /*!< DMAMUX sync overrun error */ +#define HAL_DMA_ERROR_REQGEN 0x00000400U /*!< DMAMUX request generator overrun error */ +/** + * @} + */ + +/** @defgroup DMA_request DMA request + * @{ + */ +#define DMA_REQUEST_MEM2MEM 0U /*!< memory to memory transfer */ + +#define DMA_REQUEST_GENERATOR0 1U +#define DMA_REQUEST_GENERATOR1 2U +#define DMA_REQUEST_GENERATOR2 3U +#define DMA_REQUEST_GENERATOR3 4U + +#define DMA_REQUEST_ADC1 5U + +#define DMA_REQUEST_DAC1_CHANNEL1 6U +#define DMA_REQUEST_DAC1_CHANNEL2 7U + +#define DMA_REQUEST_TIM6_UP 8U +#define DMA_REQUEST_TIM7_UP 9U + +#define DMA_REQUEST_SPI1_RX 10U +#define DMA_REQUEST_SPI1_TX 11U +#define DMA_REQUEST_SPI2_RX 12U +#define DMA_REQUEST_SPI2_TX 13U +#define DMA_REQUEST_SPI3_RX 14U +#define DMA_REQUEST_SPI3_TX 15U + +#define DMA_REQUEST_I2C1_RX 16U +#define DMA_REQUEST_I2C1_TX 17U +#define DMA_REQUEST_I2C2_RX 18U +#define DMA_REQUEST_I2C2_TX 19U +#define DMA_REQUEST_I2C3_RX 20U +#define DMA_REQUEST_I2C3_TX 21U +#if defined (I2C4) +#define DMA_REQUEST_I2C4_RX 22U +#define DMA_REQUEST_I2C4_TX 23U +#endif /* I2C4 */ + +#define DMA_REQUEST_USART1_RX 24U +#define DMA_REQUEST_USART1_TX 25U +#define DMA_REQUEST_USART2_RX 26U +#define DMA_REQUEST_USART2_TX 27U +#define DMA_REQUEST_USART3_RX 28U +#define DMA_REQUEST_USART3_TX 29U + +#define DMA_REQUEST_UART4_RX 30U +#define DMA_REQUEST_UART4_TX 31U +#if defined (UART5) +#define DMA_REQUEST_UART5_RX 32U +#define DMA_REQUEST_UART5_TX 33U +#endif /* UART5 */ + +#define DMA_REQUEST_LPUART1_RX 34U +#define DMA_REQUEST_LPUART1_TX 35U + +#define DMA_REQUEST_ADC2 36U +#if defined (ADC3) +#define DMA_REQUEST_ADC3 37U +#endif /* ADC3 */ +#if defined (ADC4) +#define DMA_REQUEST_ADC4 38U +#endif /* ADC4 */ +#if defined (ADC5) +#define DMA_REQUEST_ADC5 39U +#endif /* ADC5 */ + +#if defined (QUADSPI) +#define DMA_REQUEST_QUADSPI 40U +#endif /* QUADSPI */ + +#if defined (DAC2) +#define DMA_REQUEST_DAC2_CHANNEL1 41U +#endif /* DAC2 */ + +#define DMA_REQUEST_TIM1_CH1 42U +#define DMA_REQUEST_TIM1_CH2 43U +#define DMA_REQUEST_TIM1_CH3 44U +#define DMA_REQUEST_TIM1_CH4 45U +#define DMA_REQUEST_TIM1_UP 46U +#define DMA_REQUEST_TIM1_TRIG 47U +#define DMA_REQUEST_TIM1_COM 48U + +#define DMA_REQUEST_TIM8_CH1 49U +#define DMA_REQUEST_TIM8_CH2 50U +#define DMA_REQUEST_TIM8_CH3 51U +#define DMA_REQUEST_TIM8_CH4 52U +#define DMA_REQUEST_TIM8_UP 53U +#define DMA_REQUEST_TIM8_TRIG 54U +#define DMA_REQUEST_TIM8_COM 55U + +#define DMA_REQUEST_TIM2_CH1 56U +#define DMA_REQUEST_TIM2_CH2 57U +#define DMA_REQUEST_TIM2_CH3 58U +#define DMA_REQUEST_TIM2_CH4 59U +#define DMA_REQUEST_TIM2_UP 60U + +#define DMA_REQUEST_TIM3_CH1 61U +#define DMA_REQUEST_TIM3_CH2 62U +#define DMA_REQUEST_TIM3_CH3 63U +#define DMA_REQUEST_TIM3_CH4 64U +#define DMA_REQUEST_TIM3_UP 65U +#define DMA_REQUEST_TIM3_TRIG 66U + +#define DMA_REQUEST_TIM4_CH1 67U +#define DMA_REQUEST_TIM4_CH2 68U +#define DMA_REQUEST_TIM4_CH3 69U +#define DMA_REQUEST_TIM4_CH4 70U +#define DMA_REQUEST_TIM4_UP 71U + +#if defined (TIM5) +#define DMA_REQUEST_TIM5_CH1 72U +#define DMA_REQUEST_TIM5_CH2 73U +#define DMA_REQUEST_TIM5_CH3 74U +#define DMA_REQUEST_TIM5_CH4 75U +#define DMA_REQUEST_TIM5_UP 76U +#define DMA_REQUEST_TIM5_TRIG 77U +#endif /* TIM5 */ + +#define DMA_REQUEST_TIM15_CH1 78U +#define DMA_REQUEST_TIM15_UP 79U +#define DMA_REQUEST_TIM15_TRIG 80U +#define DMA_REQUEST_TIM15_COM 81U + +#define DMA_REQUEST_TIM16_CH1 82U +#define DMA_REQUEST_TIM16_UP 83U +#define DMA_REQUEST_TIM17_CH1 84U +#define DMA_REQUEST_TIM17_UP 85U + +#if defined (TIM20) +#define DMA_REQUEST_TIM20_CH1 86U +#define DMA_REQUEST_TIM20_CH2 87U +#define DMA_REQUEST_TIM20_CH3 88U +#define DMA_REQUEST_TIM20_CH4 89U +#define DMA_REQUEST_TIM20_UP 90U +#endif /* TIM20 */ + +#define DMA_REQUEST_AES_IN 91U +#define DMA_REQUEST_AES_OUT 92U + +#if defined (TIM20) +#define DMA_REQUEST_TIM20_TRIG 93U +#define DMA_REQUEST_TIM20_COM 94U +#endif /* TIM20 */ + +#if defined (HRTIM1) +#define DMA_REQUEST_HRTIM1_M 95U +#define DMA_REQUEST_HRTIM1_A 96U +#define DMA_REQUEST_HRTIM1_B 97U +#define DMA_REQUEST_HRTIM1_C 98U +#define DMA_REQUEST_HRTIM1_D 99U +#define DMA_REQUEST_HRTIM1_E 100U +#define DMA_REQUEST_HRTIM1_F 101U +#endif /* HRTIM1 */ + +#define DMA_REQUEST_DAC3_CHANNEL1 102U +#define DMA_REQUEST_DAC3_CHANNEL2 103U +#if defined (DAC4) +#define DMA_REQUEST_DAC4_CHANNEL1 104U +#define DMA_REQUEST_DAC4_CHANNEL2 105U +#endif /* DAC4 */ + +#if defined (SPI4) +#define DMA_REQUEST_SPI4_RX 106U +#define DMA_REQUEST_SPI4_TX 107U +#endif /* SPI4 */ + +#define DMA_REQUEST_SAI1_A 108U +#define DMA_REQUEST_SAI1_B 109U + +#define DMA_REQUEST_FMAC_READ 110U +#define DMA_REQUEST_FMAC_WRITE 111U + +#define DMA_REQUEST_CORDIC_READ 112U +#define DMA_REQUEST_CORDIC_WRITE 113U + +#define DMA_REQUEST_UCPD1_RX 114U +#define DMA_REQUEST_UCPD1_TX 115U + +/** + * @} + */ + +/** @defgroup DMA_Data_transfer_direction DMA Data transfer direction + * @{ + */ +#define DMA_PERIPH_TO_MEMORY 0x00000000U /*!< Peripheral to memory direction */ +#define DMA_MEMORY_TO_PERIPH DMA_CCR_DIR /*!< Memory to peripheral direction */ +#define DMA_MEMORY_TO_MEMORY DMA_CCR_MEM2MEM /*!< Memory to memory direction */ +/** + * @} + */ + +/** @defgroup DMA_Peripheral_incremented_mode DMA Peripheral incremented mode + * @{ + */ +#define DMA_PINC_ENABLE DMA_CCR_PINC /*!< Peripheral increment mode Enable */ +#define DMA_PINC_DISABLE 0x00000000U /*!< Peripheral increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_Memory_incremented_mode DMA Memory incremented mode + * @{ + */ +#define DMA_MINC_ENABLE DMA_CCR_MINC /*!< Memory increment mode Enable */ +#define DMA_MINC_DISABLE 0x00000000U /*!< Memory increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_Peripheral_data_size DMA Peripheral data size + * @{ + */ +#define DMA_PDATAALIGN_BYTE 0x00000000U /*!< Peripheral data alignment : Byte */ +#define DMA_PDATAALIGN_HALFWORD DMA_CCR_PSIZE_0 /*!< Peripheral data alignment : HalfWord */ +#define DMA_PDATAALIGN_WORD DMA_CCR_PSIZE_1 /*!< Peripheral data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_Memory_data_size DMA Memory data size + * @{ + */ +#define DMA_MDATAALIGN_BYTE 0x00000000U /*!< Memory data alignment : Byte */ +#define DMA_MDATAALIGN_HALFWORD DMA_CCR_MSIZE_0 /*!< Memory data alignment : HalfWord */ +#define DMA_MDATAALIGN_WORD DMA_CCR_MSIZE_1 /*!< Memory data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_mode DMA mode + * @{ + */ +#define DMA_NORMAL 0x00000000U /*!< Normal mode */ +#define DMA_CIRCULAR DMA_CCR_CIRC /*!< Circular mode */ +/** + * @} + */ + +/** @defgroup DMA_Priority_level DMA Priority level + * @{ + */ +#define DMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */ +#define DMA_PRIORITY_MEDIUM DMA_CCR_PL_0 /*!< Priority level : Medium */ +#define DMA_PRIORITY_HIGH DMA_CCR_PL_1 /*!< Priority level : High */ +#define DMA_PRIORITY_VERY_HIGH DMA_CCR_PL /*!< Priority level : Very_High */ +/** + * @} + */ + + +/** @defgroup DMA_interrupt_enable_definitions DMA interrupt enable definitions + * @{ + */ +#define DMA_IT_TC DMA_CCR_TCIE +#define DMA_IT_HT DMA_CCR_HTIE +#define DMA_IT_TE DMA_CCR_TEIE +/** + * @} + */ + +/** @defgroup DMA_flag_definitions DMA flag definitions + * @{ + */ +#define DMA_FLAG_GL1 0x00000001U +#define DMA_FLAG_TC1 0x00000002U +#define DMA_FLAG_HT1 0x00000004U +#define DMA_FLAG_TE1 0x00000008U +#define DMA_FLAG_GL2 0x00000010U +#define DMA_FLAG_TC2 0x00000020U +#define DMA_FLAG_HT2 0x00000040U +#define DMA_FLAG_TE2 0x00000080U +#define DMA_FLAG_GL3 0x00000100U +#define DMA_FLAG_TC3 0x00000200U +#define DMA_FLAG_HT3 0x00000400U +#define DMA_FLAG_TE3 0x00000800U +#define DMA_FLAG_GL4 0x00001000U +#define DMA_FLAG_TC4 0x00002000U +#define DMA_FLAG_HT4 0x00004000U +#define DMA_FLAG_TE4 0x00008000U +#define DMA_FLAG_GL5 0x00010000U +#define DMA_FLAG_TC5 0x00020000U +#define DMA_FLAG_HT5 0x00040000U +#define DMA_FLAG_TE5 0x00080000U +#define DMA_FLAG_GL6 0x00100000U +#define DMA_FLAG_TC6 0x00200000U +#define DMA_FLAG_HT6 0x00400000U +#define DMA_FLAG_TE6 0x00800000U +#if defined (DMA1_Channel7) +#define DMA_FLAG_GL7 0x01000000U +#define DMA_FLAG_TC7 0x02000000U +#define DMA_FLAG_HT7 0x04000000U +#define DMA_FLAG_TE7 0x08000000U +#endif /* DMA1_Channel7 */ +#if defined (DMA1_Channel8) +#define DMA_FLAG_GL8 0x10000000U +#define DMA_FLAG_TC8 0x20000000U +#define DMA_FLAG_HT8 0x40000000U +#define DMA_FLAG_TE8 0x80000000U +#endif /* DMA1_Channel8 */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup DMA_Exported_Macros DMA Exported Macros + * @{ + */ + +/** @brief Reset DMA handle state. + * @param __HANDLE__ DMA handle + * @retval None + */ +#define __HAL_DMA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA_STATE_RESET) + +/** + * @brief Enable the specified DMA Channel. + * @param __HANDLE__ DMA handle + * @retval None + */ +#define __HAL_DMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR |= DMA_CCR_EN) + +/** + * @brief Disable the specified DMA Channel. + * @param __HANDLE__ DMA handle + * @retval None + */ +#define __HAL_DMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR &= ~DMA_CCR_EN) + + +/* Interrupt & Flag management */ + +/** + * @brief Return the current DMA Channel transfer complete flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer complete flag index. + */ + +#if defined (DMA1_Channel8) +#define __HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__) \ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TC1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TC1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TC6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel6))? DMA_FLAG_TC6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_TC7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel7))? DMA_FLAG_TC7 :\ + DMA_FLAG_TC8) +#elif defined (DMA1_Channel6) +#define __HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__) \ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TC1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TC1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_TC5 :\ + DMA_FLAG_TC6) +#endif /* DMA1_Channel8 */ + +/** + * @brief Return the current DMA Channel half transfer complete flag. + * @param __HANDLE__ DMA handle + * @retval The specified half transfer complete flag index. + */ +#if defined (DMA1_Channel8) +#define __HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)\ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_HT1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_HT1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_HT6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel6))? DMA_FLAG_HT6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_HT7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel7))? DMA_FLAG_HT7 :\ + DMA_FLAG_HT8) +#elif defined (DMA1_Channel6) +#define __HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)\ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_HT1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_HT1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_HT5 :\ + DMA_FLAG_HT6) +#endif /* DMA1_Channel8 */ + +/** + * @brief Return the current DMA Channel transfer error flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer error flag index. + */ +#if defined (DMA1_Channel8) +#define __HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)\ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TE1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TE1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TE6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel6))? DMA_FLAG_TE6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_TE7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel7))? DMA_FLAG_TE7 :\ + DMA_FLAG_TE8) +#elif defined (DMA1_Channel6) +#define __HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)\ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TE1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TE1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_TE5 :\ + DMA_FLAG_TE6) +#endif /* DMA1_Channel8 */ + +/** + * @brief Return the current DMA Channel Global interrupt flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer error flag index. + */ +#if defined (DMA1_Channel8) +#define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)\ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_ISR_GIF5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_ISR_GIF5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_ISR_GIF6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel6))? DMA_ISR_GIF6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_ISR_GIF7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel7))? DMA_ISR_GIF7 :\ + DMA_ISR_GIF8) +#elif defined (DMA1_Channel6) +#define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)\ + (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_ISR_GIF5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_ISR_GIF5 :\ + DMA_ISR_GIF6) +#endif /* DMA1_Channel8 */ + +/** + * @brief Get the DMA Channel pending flags. + * @param __HANDLE__ DMA handle + * @param __FLAG__ Get the specified flag. + * This parameter can be any combination of the following values: + * @arg DMA_FLAG_TCx Transfer complete flag + * @arg DMA_FLAG_HTx Half transfer complete flag + * @arg DMA_FLAG_TEx Transfer error flag + * @arg DMA_FLAG_GLx Global interrupt flag + * Where x can be from 1 to 8 to select the DMA Channel x flag. + * @retval The state of FLAG (SET or RESET). + */ +#if defined (DMA1_Channel8) +#define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__) (((uint32_t)((__HANDLE__)->Instance) > ((uint32_t)DMA1_Channel8))? \ + (DMA2->ISR & (__FLAG__)) : (DMA1->ISR & (__FLAG__))) +#elif defined (DMA1_Channel6) +#define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__) (((uint32_t)((__HANDLE__)->Instance) > ((uint32_t)DMA1_Channel6))? \ + (DMA2->ISR & (__FLAG__)) : (DMA1->ISR & (__FLAG__))) +#endif /* DMA1_Channel8 */ + +/** + * @brief Clear the DMA Channel pending flags. + * @param __HANDLE__ DMA handle + * @param __FLAG__ specifies the flag to clear. + * This parameter can be any combination of the following values: + * @arg DMA_FLAG_TCx Transfer complete flag + * @arg DMA_FLAG_HTx Half transfer complete flag + * @arg DMA_FLAG_TEx Transfer error flag + * @arg DMA_FLAG_GLx Global interrupt flag + * Where x can be from 1 to 8 to select the DMA Channel x flag. + * @retval None + */ +#if defined (DMA1_Channel8) +#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) (((uint32_t)((__HANDLE__)->Instance) > ((uint32_t)DMA1_Channel8))? \ + (DMA2->IFCR = (__FLAG__)) : (DMA1->IFCR = (__FLAG__))) +#else +#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) (((uint32_t)((__HANDLE__)->Instance) > ((uint32_t)DMA1_Channel6))? \ + (DMA2->IFCR = (__FLAG__)) : (DMA1->IFCR = (__FLAG__))) +#endif /* DMA1_Channel8 */ + +/** + * @brief Enable the specified DMA Channel interrupts. + * @param __HANDLE__ DMA handle + * @param __INTERRUPT__ specifies the DMA interrupt sources to be enabled or disabled. + * This parameter can be any combination of the following values: + * @arg DMA_IT_TC Transfer complete interrupt mask + * @arg DMA_IT_HT Half transfer complete interrupt mask + * @arg DMA_IT_TE Transfer error interrupt mask + * @retval None + */ +#define __HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__)) + +/** + * @brief Disable the specified DMA Channel interrupts. + * @param __HANDLE__ DMA handle + * @param __INTERRUPT__ specifies the DMA interrupt sources to be enabled or disabled. + * This parameter can be any combination of the following values: + * @arg DMA_IT_TC Transfer complete interrupt mask + * @arg DMA_IT_HT Half transfer complete interrupt mask + * @arg DMA_IT_TE Transfer error interrupt mask + * @retval None + */ +#define __HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__)) + +/** + * @brief Check whether the specified DMA Channel interrupt is enabled or not. + * @param __HANDLE__ DMA handle + * @param __INTERRUPT__ specifies the DMA interrupt source to check. + * This parameter can be one of the following values: + * @arg DMA_IT_TC Transfer complete interrupt mask + * @arg DMA_IT_HT Half transfer complete interrupt mask + * @arg DMA_IT_TE Transfer error interrupt mask + * @retval The state of DMA_IT (SET or RESET). + */ +#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CCR & (__INTERRUPT__))) + +/** + * @brief Return the number of remaining data units in the current DMA Channel transfer. + * @param __HANDLE__ DMA handle + * @retval The number of remaining data units in the current DMA Channel transfer. + */ +#define __HAL_DMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNDTR) + +/** + * @} + */ + +/* Include DMA HAL Extension module */ +#include "stm32g4xx_hal_dma_ex.h" + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup DMA_Exported_Functions + * @{ + */ + +/** @addtogroup DMA_Exported_Functions_Group1 + * @{ + */ +/* Initialization and de-initialization functions *****************************/ +HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma); +/** + * @} + */ + +/** @addtogroup DMA_Exported_Functions_Group2 + * @{ + */ +/* IO operation functions *****************************************************/ +HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength); +HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, + uint32_t DataLength); +HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, + uint32_t Timeout); +void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)(DMA_HandleTypeDef *_hdma)); +HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID); + +/** + * @} + */ + +/** @addtogroup DMA_Exported_Functions_Group3 + * @{ + */ +/* Peripheral State and Error functions ***************************************/ +HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma); +uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma); +/** + * @} + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup DMA_Private_Macros DMA Private Macros + * @{ + */ + +#define IS_DMA_DIRECTION(DIRECTION) (((DIRECTION) == DMA_PERIPH_TO_MEMORY ) || \ + ((DIRECTION) == DMA_MEMORY_TO_PERIPH) || \ + ((DIRECTION) == DMA_MEMORY_TO_MEMORY)) + +#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1U) && ((SIZE) < 0x40000U)) + +#define IS_DMA_PERIPHERAL_INC_STATE(STATE) (((STATE) == DMA_PINC_ENABLE) || \ + ((STATE) == DMA_PINC_DISABLE)) + +#define IS_DMA_MEMORY_INC_STATE(STATE) (((STATE) == DMA_MINC_ENABLE) || \ + ((STATE) == DMA_MINC_DISABLE)) + +#define IS_DMA_ALL_REQUEST(REQUEST) ((REQUEST) <= DMA_REQUEST_UCPD1_TX) + +#define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) (((SIZE) == DMA_PDATAALIGN_BYTE) || \ + ((SIZE) == DMA_PDATAALIGN_HALFWORD) || \ + ((SIZE) == DMA_PDATAALIGN_WORD)) + +#define IS_DMA_MEMORY_DATA_SIZE(SIZE) (((SIZE) == DMA_MDATAALIGN_BYTE) || \ + ((SIZE) == DMA_MDATAALIGN_HALFWORD) || \ + ((SIZE) == DMA_MDATAALIGN_WORD )) + +#define IS_DMA_MODE(MODE) (((MODE) == DMA_NORMAL ) || \ + ((MODE) == DMA_CIRCULAR)) + +#define IS_DMA_PRIORITY(PRIORITY) (((PRIORITY) == DMA_PRIORITY_LOW ) || \ + ((PRIORITY) == DMA_PRIORITY_MEDIUM) || \ + ((PRIORITY) == DMA_PRIORITY_HIGH) || \ + ((PRIORITY) == DMA_PRIORITY_VERY_HIGH)) + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_HAL_DMA_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h new file mode 100644 index 0000000..606db3b --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h @@ -0,0 +1,264 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_dma_ex.h + * @author MCD Application Team + * @brief Header file of DMA HAL extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_HAL_DMA_EX_H +#define __STM32G4xx_HAL_DMA_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup DMAEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup DMAEx_Exported_Types DMAEx Exported Types + * @{ + */ + +/** + * @brief HAL DMA Synchro definition + */ + + +/** + * @brief HAL DMAMUX Synchronization configuration structure definition + */ +typedef struct +{ + uint32_t SyncSignalID; /*!< Specifies the synchronization signal gating the DMA request in periodic mode. + This parameter can be a value of @ref DMAEx_DMAMUX_SyncSignalID_selection */ + + uint32_t SyncPolarity; /*!< Specifies the polarity of the signal on which the DMA request is synchronized. + This parameter can be a value of @ref DMAEx_DMAMUX_SyncPolarity_selection */ + + FunctionalState SyncEnable; /*!< Specifies if the synchronization shall be enabled or disabled + This parameter can take the value ENABLE or DISABLE*/ + + + FunctionalState EventEnable; /*!< Specifies if an event shall be generated once the RequestNumber is reached. + This parameter can take the value ENABLE or DISABLE */ + + uint32_t RequestNumber; /*!< Specifies the number of DMA request that will be authorized after a sync event + This parameter must be a number between Min_Data = 1 and Max_Data = 32 */ + + +} HAL_DMA_MuxSyncConfigTypeDef; + + +/** + * @brief HAL DMAMUX request generator parameters structure definition + */ +typedef struct +{ + uint32_t SignalID; /*!< Specifies the ID of the signal used for DMAMUX request generator + This parameter can be a value of @ref DMAEx_DMAMUX_SignalGeneratorID_selection */ + + uint32_t Polarity; /*!< Specifies the polarity of the signal on which the request is generated. + This parameter can be a value of @ref DMAEx_DMAMUX_RequestGeneneratorPolarity_selection */ + + uint32_t RequestNumber; /*!< Specifies the number of DMA request that will be generated after a signal event + This parameter must be a number between Min_Data = 1 and Max_Data = 32 */ + +} HAL_DMA_MuxRequestGeneratorConfigTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup DMAEx_Exported_Constants DMAEx Exported Constants + * @{ + */ + +/** @defgroup DMAEx_DMAMUX_SyncSignalID_selection DMAMUX SyncSignalID selection + * @{ + */ +#define HAL_DMAMUX1_SYNC_EXTI0 0U /*!< Synchronization Signal is EXTI0 IT */ +#define HAL_DMAMUX1_SYNC_EXTI1 1U /*!< Synchronization Signal is EXTI1 IT */ +#define HAL_DMAMUX1_SYNC_EXTI2 2U /*!< Synchronization Signal is EXTI2 IT */ +#define HAL_DMAMUX1_SYNC_EXTI3 3U /*!< Synchronization Signal is EXTI3 IT */ +#define HAL_DMAMUX1_SYNC_EXTI4 4U /*!< Synchronization Signal is EXTI4 IT */ +#define HAL_DMAMUX1_SYNC_EXTI5 5U /*!< Synchronization Signal is EXTI5 IT */ +#define HAL_DMAMUX1_SYNC_EXTI6 6U /*!< Synchronization Signal is EXTI6 IT */ +#define HAL_DMAMUX1_SYNC_EXTI7 7U /*!< Synchronization Signal is EXTI7 IT */ +#define HAL_DMAMUX1_SYNC_EXTI8 8U /*!< Synchronization Signal is EXTI8 IT */ +#define HAL_DMAMUX1_SYNC_EXTI9 9U /*!< Synchronization Signal is EXTI9 IT */ +#define HAL_DMAMUX1_SYNC_EXTI10 10U /*!< Synchronization Signal is EXTI10 IT */ +#define HAL_DMAMUX1_SYNC_EXTI11 11U /*!< Synchronization Signal is EXTI11 IT */ +#define HAL_DMAMUX1_SYNC_EXTI12 12U /*!< Synchronization Signal is EXTI12 IT */ +#define HAL_DMAMUX1_SYNC_EXTI13 13U /*!< Synchronization Signal is EXTI13 IT */ +#define HAL_DMAMUX1_SYNC_EXTI14 14U /*!< Synchronization Signal is EXTI14 IT */ +#define HAL_DMAMUX1_SYNC_EXTI15 15U /*!< Synchronization Signal is EXTI15 IT */ +#define HAL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT 16U /*!< Synchronization Signal is DMAMUX1 Channel0 Event */ +#define HAL_DMAMUX1_SYNC_DMAMUX1_CH1_EVT 17U /*!< Synchronization Signal is DMAMUX1 Channel1 Event */ +#define HAL_DMAMUX1_SYNC_DMAMUX1_CH2_EVT 18U /*!< Synchronization Signal is DMAMUX1 Channel2 Event */ +#define HAL_DMAMUX1_SYNC_DMAMUX1_CH3_EVT 19U /*!< Synchronization Signal is DMAMUX1 Channel3 Event */ +#define HAL_DMAMUX1_SYNC_LPTIM1_OUT 20U /*!< Synchronization Signal is LPTIM1 OUT */ + +/** + * @} + */ + +/** @defgroup DMAEx_DMAMUX_SyncPolarity_selection DMAMUX SyncPolarity selection + * @{ + */ +#define HAL_DMAMUX_SYNC_NO_EVENT 0U /*!< block synchronization events */ +#define HAL_DMAMUX_SYNC_RISING ((uint32_t)DMAMUX_CxCR_SPOL_0) /*!< synchronize with rising edge events */ +#define HAL_DMAMUX_SYNC_FALLING ((uint32_t)DMAMUX_CxCR_SPOL_1) /*!< synchronize with falling edge events */ +#define HAL_DMAMUX_SYNC_RISING_FALLING ((uint32_t)DMAMUX_CxCR_SPOL) /*!< synchronize with rising and falling edge events */ + +/** + * @} + */ + +/** @defgroup DMAEx_DMAMUX_SignalGeneratorID_selection DMAMUX SignalGeneratorID selection + * @{ + */ +#define HAL_DMAMUX1_REQ_GEN_EXTI0 0U /*!< Request generator Signal is EXTI0 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI1 1U /*!< Request generator Signal is EXTI1 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI2 2U /*!< Request generator Signal is EXTI2 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI3 3U /*!< Request generator Signal is EXTI3 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI4 4U /*!< Request generator Signal is EXTI4 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI5 5U /*!< Request generator Signal is EXTI5 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI6 6U /*!< Request generator Signal is EXTI6 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI7 7U /*!< Request generator Signal is EXTI7 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI8 8U /*!< Request generator Signal is EXTI8 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI9 9U /*!< Request generator Signal is EXTI9 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI10 10U /*!< Request generator Signal is EXTI10 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI11 11U /*!< Request generator Signal is EXTI11 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI12 12U /*!< Request generator Signal is EXTI12 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI13 13U /*!< Request generator Signal is EXTI13 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI14 14U /*!< Request generator Signal is EXTI14 IT */ +#define HAL_DMAMUX1_REQ_GEN_EXTI15 15U /*!< Request generator Signal is EXTI15 IT */ +#define HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT 16U /*!< Request generator Signal is DMAMUX1 Channel0 Event */ +#define HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT 17U /*!< Request generator Signal is DMAMUX1 Channel1 Event */ +#define HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT 18U /*!< Request generator Signal is DMAMUX1 Channel2 Event */ +#define HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH3_EVT 19U /*!< Request generator Signal is DMAMUX1 Channel3 Event */ +#define HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT 20U /*!< Request generator Signal is LPTIM1 OUT */ + +/** + * @} + */ + +/** @defgroup DMAEx_DMAMUX_RequestGeneneratorPolarity_selection DMAMUX RequestGeneneratorPolarity selection + * @{ + */ +#define HAL_DMAMUX_REQ_GEN_NO_EVENT 0x00000000U /*!< block request generator events */ +#define HAL_DMAMUX_REQ_GEN_RISING DMAMUX_RGxCR_GPOL_0 /*!< generate request on rising edge events */ +#define HAL_DMAMUX_REQ_GEN_FALLING DMAMUX_RGxCR_GPOL_1 /*!< generate request on falling edge events */ +#define HAL_DMAMUX_REQ_GEN_RISING_FALLING DMAMUX_RGxCR_GPOL /*!< generate request on rising and falling edge events */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup DMAEx_Exported_Functions + * @{ + */ + +/* IO operation functions *****************************************************/ +/** @addtogroup DMAEx_Exported_Functions_Group1 + * @{ + */ + +/* ------------------------- REQUEST -----------------------------------------*/ +HAL_StatusTypeDef HAL_DMAEx_ConfigMuxRequestGenerator(DMA_HandleTypeDef *hdma, + HAL_DMA_MuxRequestGeneratorConfigTypeDef *pRequestGeneratorConfig); +HAL_StatusTypeDef HAL_DMAEx_EnableMuxRequestGenerator(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMAEx_DisableMuxRequestGenerator(DMA_HandleTypeDef *hdma); +/* -------------------------------------------------------------------------- */ + +/* ------------------------- SYNCHRO -----------------------------------------*/ +HAL_StatusTypeDef HAL_DMAEx_ConfigMuxSync(DMA_HandleTypeDef *hdma, HAL_DMA_MuxSyncConfigTypeDef *pSyncConfig); +/* -------------------------------------------------------------------------- */ + +void HAL_DMAEx_MUX_IRQHandler(DMA_HandleTypeDef *hdma); + +/** + * @} + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup DMAEx_Private_Macros DMAEx Private Macros + * @brief DMAEx private macros + * @{ + */ + +#define IS_DMAMUX_SYNC_SIGNAL_ID(SIGNAL_ID) ((SIGNAL_ID) <= HAL_DMAMUX1_SYNC_LPTIM1_OUT) + +#define IS_DMAMUX_SYNC_REQUEST_NUMBER(REQUEST_NUMBER) (((REQUEST_NUMBER) > 0U) && ((REQUEST_NUMBER) <= 32U)) + +#define IS_DMAMUX_SYNC_POLARITY(POLARITY) (((POLARITY) == HAL_DMAMUX_SYNC_NO_EVENT) || \ + ((POLARITY) == HAL_DMAMUX_SYNC_RISING) || \ + ((POLARITY) == HAL_DMAMUX_SYNC_FALLING) || \ + ((POLARITY) == HAL_DMAMUX_SYNC_RISING_FALLING)) + +#define IS_DMAMUX_SYNC_STATE(SYNC) (((SYNC) == DISABLE) || ((SYNC) == ENABLE)) + +#define IS_DMAMUX_SYNC_EVENT(EVENT) (((EVENT) == DISABLE) || \ + ((EVENT) == ENABLE)) + +#define IS_DMAMUX_REQUEST_GEN_SIGNAL_ID(SIGNAL_ID) ((SIGNAL_ID) <= HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT) + +#define IS_DMAMUX_REQUEST_GEN_REQUEST_NUMBER(REQUEST_NUMBER) (((REQUEST_NUMBER) > 0U) && ((REQUEST_NUMBER) <= 32U)) + +#define IS_DMAMUX_REQUEST_GEN_POLARITY(POLARITY) (((POLARITY) == HAL_DMAMUX_REQ_GEN_NO_EVENT) || \ + ((POLARITY) == HAL_DMAMUX_REQ_GEN_RISING) || \ + ((POLARITY) == HAL_DMAMUX_REQ_GEN_FALLING) || \ + ((POLARITY) == HAL_DMAMUX_REQ_GEN_RISING_FALLING)) + +/** + * @} + */ + + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_HAL_DMA_EX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h new file mode 100644 index 0000000..4908976 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h @@ -0,0 +1,315 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_exti.h + * @author MCD Application Team + * @brief Header file of EXTI HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_EXTI_H +#define STM32G4xx_HAL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup EXTI EXTI + * @brief EXTI HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup EXTI_Exported_Types EXTI Exported Types + * @{ + */ +typedef enum +{ + HAL_EXTI_COMMON_CB_ID = 0x00UL +} EXTI_CallbackIDTypeDef; + + +/** + * @brief EXTI Handle structure definition + */ +typedef struct +{ + uint32_t Line; /*!< Exti line number */ + void (* PendingCallback)(void); /*!< Exti pending callback */ +} EXTI_HandleTypeDef; + +/** + * @brief EXTI Configuration structure definition + */ +typedef struct +{ + uint32_t Line; /*!< The Exti line to be configured. This parameter + can be a value of @ref EXTI_Line */ + uint32_t Mode; /*!< The Exit Mode to be configured for a core. + This parameter can be a combination of @ref EXTI_Mode */ + uint32_t Trigger; /*!< The Exti Trigger to be configured. This parameter + can be a value of @ref EXTI_Trigger */ + uint32_t GPIOSel; /*!< The Exti GPIO multiplexer selection to be configured. + This parameter is only possible for line 0 to 15. It + can be a value of @ref EXTI_GPIOSel */ +} EXTI_ConfigTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup EXTI_Exported_Constants EXTI Exported Constants + * @{ + */ + +/** @defgroup EXTI_Line EXTI Line + * @{ + */ +#define EXTI_LINE_0 (EXTI_GPIO | EXTI_REG1 | 0x00u) +#define EXTI_LINE_1 (EXTI_GPIO | EXTI_REG1 | 0x01u) +#define EXTI_LINE_2 (EXTI_GPIO | EXTI_REG1 | 0x02u) +#define EXTI_LINE_3 (EXTI_GPIO | EXTI_REG1 | 0x03u) +#define EXTI_LINE_4 (EXTI_GPIO | EXTI_REG1 | 0x04u) +#define EXTI_LINE_5 (EXTI_GPIO | EXTI_REG1 | 0x05u) +#define EXTI_LINE_6 (EXTI_GPIO | EXTI_REG1 | 0x06u) +#define EXTI_LINE_7 (EXTI_GPIO | EXTI_REG1 | 0x07u) +#define EXTI_LINE_8 (EXTI_GPIO | EXTI_REG1 | 0x08u) +#define EXTI_LINE_9 (EXTI_GPIO | EXTI_REG1 | 0x09u) +#define EXTI_LINE_10 (EXTI_GPIO | EXTI_REG1 | 0x0Au) +#define EXTI_LINE_11 (EXTI_GPIO | EXTI_REG1 | 0x0Bu) +#define EXTI_LINE_12 (EXTI_GPIO | EXTI_REG1 | 0x0Cu) +#define EXTI_LINE_13 (EXTI_GPIO | EXTI_REG1 | 0x0Du) +#define EXTI_LINE_14 (EXTI_GPIO | EXTI_REG1 | 0x0Eu) +#define EXTI_LINE_15 (EXTI_GPIO | EXTI_REG1 | 0x0Fu) +#define EXTI_LINE_16 (EXTI_CONFIG | EXTI_REG1 | 0x10u) +#define EXTI_LINE_17 (EXTI_CONFIG | EXTI_REG1 | 0x11u) +#define EXTI_LINE_18 (EXTI_DIRECT | EXTI_REG1 | 0x12u) +#define EXTI_LINE_19 (EXTI_CONFIG | EXTI_REG1 | 0x13u) +#define EXTI_LINE_20 (EXTI_CONFIG | EXTI_REG1 | 0x14u) +#define EXTI_LINE_21 (EXTI_CONFIG | EXTI_REG1 | 0x15u) +#define EXTI_LINE_22 (EXTI_CONFIG | EXTI_REG1 | 0x16u) +#define EXTI_LINE_23 (EXTI_DIRECT | EXTI_REG1 | 0x17u) +#define EXTI_LINE_24 (EXTI_DIRECT | EXTI_REG1 | 0x18u) +#define EXTI_LINE_25 (EXTI_DIRECT | EXTI_REG1 | 0x19u) +#define EXTI_LINE_26 (EXTI_DIRECT | EXTI_REG1 | 0x1Au) +#define EXTI_LINE_27 (EXTI_DIRECT | EXTI_REG1 | 0x1Bu) +#define EXTI_LINE_28 (EXTI_DIRECT | EXTI_REG1 | 0x1Cu) +#define EXTI_LINE_29 (EXTI_CONFIG | EXTI_REG1 | 0x1Du) +#define EXTI_LINE_30 (EXTI_CONFIG | EXTI_REG1 | 0x1Eu) +#define EXTI_LINE_31 (EXTI_CONFIG | EXTI_REG1 | 0x1Fu) +#define EXTI_LINE_32 (EXTI_CONFIG | EXTI_REG2 | 0x00u) +#define EXTI_LINE_33 (EXTI_CONFIG | EXTI_REG2 | 0x01u) +#define EXTI_LINE_34 (EXTI_DIRECT | EXTI_REG2 | 0x02u) +#define EXTI_LINE_35 (EXTI_DIRECT | EXTI_REG2 | 0x03u) +#define EXTI_LINE_36 (EXTI_DIRECT | EXTI_REG2 | 0x04u) +#define EXTI_LINE_37 (EXTI_DIRECT | EXTI_REG2 | 0x05u) +#define EXTI_LINE_38 (EXTI_CONFIG | EXTI_REG2 | 0x06u) +#define EXTI_LINE_39 (EXTI_CONFIG | EXTI_REG2 | 0x07u) +#define EXTI_LINE_40 (EXTI_CONFIG | EXTI_REG2 | 0x08u) +#define EXTI_LINE_41 (EXTI_CONFIG | EXTI_REG2 | 0x09u) +#define EXTI_LINE_42 (EXTI_DIRECT | EXTI_REG2 | 0x0Au) +#define EXTI_LINE_43 (EXTI_DIRECT | EXTI_REG2 | 0x0Bu) +/** + * @} + */ + +/** @defgroup EXTI_Mode EXTI Mode + * @{ + */ +#define EXTI_MODE_NONE 0x00000000U +#define EXTI_MODE_INTERRUPT 0x00000001U +#define EXTI_MODE_EVENT 0x00000002U +/** + * @} + */ + +/** @defgroup EXTI_Trigger EXTI Trigger + * @{ + */ +#define EXTI_TRIGGER_NONE 0x00000000U +#define EXTI_TRIGGER_RISING 0x00000001U +#define EXTI_TRIGGER_FALLING 0x00000002U +#define EXTI_TRIGGER_RISING_FALLING (EXTI_TRIGGER_RISING | EXTI_TRIGGER_FALLING) +/** + * @} + */ + +/** @defgroup EXTI_GPIOSel EXTI GPIOSel + * @brief + * @{ + */ +#define EXTI_GPIOA 0x00000000U +#define EXTI_GPIOB 0x00000001U +#define EXTI_GPIOC 0x00000002U +#define EXTI_GPIOD 0x00000003U +#define EXTI_GPIOE 0x00000004U +#define EXTI_GPIOF 0x00000005U +#define EXTI_GPIOG 0x00000006U +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup EXTI_Exported_Macros EXTI Exported Macros + * @{ + */ + +/** + * @} + */ + +/* Private constants --------------------------------------------------------*/ +/** @defgroup EXTI_Private_Constants EXTI Private Constants + * @{ + */ +/** + * @brief EXTI Line property definition + */ +#define EXTI_PROPERTY_SHIFT 24U +#define EXTI_DIRECT (0x01uL << EXTI_PROPERTY_SHIFT) +#define EXTI_CONFIG (0x02uL << EXTI_PROPERTY_SHIFT) +#define EXTI_GPIO ((0x04uL << EXTI_PROPERTY_SHIFT) | EXTI_CONFIG) +#define EXTI_RESERVED (0x08uL << EXTI_PROPERTY_SHIFT) +#define EXTI_PROPERTY_MASK (EXTI_DIRECT | EXTI_CONFIG | EXTI_GPIO) + +/** + * @brief EXTI Register and bit usage + */ +#define EXTI_REG_SHIFT 16U +#define EXTI_REG1 (0x00uL << EXTI_REG_SHIFT) +#define EXTI_REG2 (0x01uL << EXTI_REG_SHIFT) +#define EXTI_REG_MASK (EXTI_REG1 | EXTI_REG2) +#define EXTI_PIN_MASK 0x0000001FU + +/** + * @brief EXTI Mask for interrupt & event mode + */ +#define EXTI_MODE_MASK (EXTI_MODE_EVENT | EXTI_MODE_INTERRUPT) + +/** + * @brief EXTI Mask for trigger possibilities + */ +#define EXTI_TRIGGER_MASK (EXTI_TRIGGER_RISING | EXTI_TRIGGER_FALLING) + +/** + * @brief EXTI Line number + */ +#define EXTI_LINE_NB 44UL + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup EXTI_Private_Macros EXTI Private Macros + * @{ + */ +#define IS_EXTI_LINE(__EXTI_LINE__) ((((__EXTI_LINE__) & ~(EXTI_PROPERTY_MASK | EXTI_REG_MASK | EXTI_PIN_MASK)) == 0x00U) && \ + ((((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_DIRECT) || \ + (((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_CONFIG) || \ + (((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_GPIO)) && \ + (((__EXTI_LINE__) & (EXTI_REG_MASK | EXTI_PIN_MASK)) < \ + (((EXTI_LINE_NB / 32u) << EXTI_REG_SHIFT) | (EXTI_LINE_NB % 32u)))) + +#define IS_EXTI_MODE(__EXTI_LINE__) ((((__EXTI_LINE__) & EXTI_MODE_MASK) != 0x00U) && \ + (((__EXTI_LINE__) & ~EXTI_MODE_MASK) == 0x00U)) + +#define IS_EXTI_TRIGGER(__EXTI_LINE__) (((__EXTI_LINE__) & ~EXTI_TRIGGER_MASK) == 0x00U) + +#define IS_EXTI_CONFIG_LINE(__EXTI_LINE__) (((__EXTI_LINE__) & EXTI_CONFIG) != 0x00U) + +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOE) || \ + ((__PORT__) == EXTI_GPIOF) || \ + ((__PORT__) == EXTI_GPIOG)) + +#define IS_EXTI_GPIO_PIN(__PIN__) ((__PIN__) < 16u) + +#define IS_EXTI_PENDING_EDGE(__EDGE__) (((__EDGE__) == EXTI_TRIGGER_RISING) || \ + ((__EDGE__) == EXTI_TRIGGER_FALLING)|| \ + ((__EDGE__) == EXTI_TRIGGER_RISING_FALLING)) + +#define IS_EXTI_CB(__CB__) ((__CB__) == HAL_EXTI_COMMON_CB_ID) +/** + * @} + */ + + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup EXTI_Exported_Functions EXTI Exported Functions + * @brief EXTI Exported Functions + * @{ + */ + +/** @defgroup EXTI_Exported_Functions_Group1 Configuration functions + * @brief Configuration functions + * @{ + */ +/* Configuration functions ****************************************************/ +HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig); +HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig); +HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti); +HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void (*pPendingCbfn)(void)); +HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine); +/** + * @} + */ + +/** @defgroup EXTI_Exported_Functions_Group2 IO operation functions + * @brief IO operation functions + * @{ + */ +/* IO operation functions *****************************************************/ +void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti); +uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge); +void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge); +void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_EXTI_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h new file mode 100644 index 0000000..55d5bcc --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h @@ -0,0 +1,1017 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_flash.h + * @author MCD Application Team + * @brief Header file of FLASH HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_FLASH_H +#define STM32G4xx_HAL_FLASH_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASH + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Types FLASH Exported Types + * @{ + */ + +/** + * @brief FLASH Erase structure definition + */ +typedef struct +{ + uint32_t TypeErase; /*!< Mass erase or page erase. + This parameter can be a value of @ref FLASH_Type_Erase */ + uint32_t Banks; /*!< Select bank to erase. + This parameter must be a value of @ref FLASH_Banks + (FLASH_BANK_BOTH should be used only for mass erase) */ + uint32_t Page; /*!< Initial Flash page to erase when page erase is disabled. + This parameter must be a value between 0 and (max number of pages in the bank - 1) + (eg : 127 for 512KB dual bank) */ + uint32_t NbPages; /*!< Number of pages to be erased. + This parameter must be a value between 1 and (max number of pages in the bank - value of initial page)*/ +} FLASH_EraseInitTypeDef; + +/** + * @brief FLASH Option Bytes Program structure definition + */ +typedef struct +{ + uint32_t OptionType; /*!< Option byte to be configured. + This parameter can be a combination of the values of @ref FLASH_OB_Type */ + uint32_t WRPArea; /*!< Write protection area to be programmed (used for OPTIONBYTE_WRP). + Only one WRP area could be programmed at the same time. + This parameter can be value of @ref FLASH_OB_WRP_Area */ + uint32_t WRPStartOffset; /*!< Write protection start offset (used for OPTIONBYTE_WRP). + This parameter must be a value between 0 and (max number of pages in the bank - 1) */ + uint32_t WRPEndOffset; /*!< Write protection end offset (used for OPTIONBYTE_WRP). + This parameter must be a value between WRPStartOffset and (max number of pages in the bank - 1) */ + uint32_t RDPLevel; /*!< Set the read protection level.. (used for OPTIONBYTE_RDP). + This parameter can be a value of @ref FLASH_OB_Read_Protection */ + uint32_t USERType; /*!< User option byte(s) to be configured (used for OPTIONBYTE_USER). + This parameter can be a combination of @ref FLASH_OB_USER_Type */ + uint32_t USERConfig; /*!< Value of the user option byte (used for OPTIONBYTE_USER). + This parameter can be a combination of @ref FLASH_OB_USER_BOR_LEVEL, + @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY, + @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW, + @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY, + @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_BFB2 (*), + @ref FLASH_OB_USER_nBOOT1, @ref FLASH_OB_USER_SRAM_PE, + @ref FLASH_OB_USER_CCMSRAM_RST + @note (*) availability depends on devices */ + uint32_t PCROPConfig; /*!< Configuration of the PCROP (used for OPTIONBYTE_PCROP). + This parameter must be a combination of @ref FLASH_Banks (except FLASH_BANK_BOTH) + and @ref FLASH_OB_PCROP_RDP */ + uint32_t PCROPStartAddr; /*!< PCROP Start address (used for OPTIONBYTE_PCROP). + This parameter must be a value between begin and end of bank + => Be careful of the bank swapping for the address */ + uint32_t PCROPEndAddr; /*!< PCROP End address (used for OPTIONBYTE_PCROP). + This parameter must be a value between PCROP Start address and end of bank */ + uint32_t BootEntryPoint; /*!< Set the Boot Lock (used for OPTIONBYTE_BOOT_LOCK). + This parameter can be a value of @ref FLASH_OB_Boot_Lock */ + uint32_t SecBank; /*!< Bank of securable memory area to be programmed (used for OPTIONBYTE_SEC). + Only one securable memory area could be programmed at the same time. + This parameter can be one of the following values: + FLASH_BANK_1: Securable memory area to be programmed in bank 1 + FLASH_BANK_2: Securable memory area to be programmed in bank 2 (*) + @note (*) availability depends on devices */ + uint32_t SecSize; /*!< Size of securable memory area to be programmed (used for OPTIONBYTE_SEC), + in number of pages. Securable memory area is starting from first page of the bank. + Only one securable memory could be programmed at the same time. + This parameter must be a value between 0 and (max number of pages in the bank - 1) */ +} FLASH_OBProgramInitTypeDef; + +/** + * @brief FLASH Procedure structure definition + */ +typedef enum +{ + FLASH_PROC_NONE = 0, + FLASH_PROC_PAGE_ERASE, + FLASH_PROC_MASS_ERASE, + FLASH_PROC_PROGRAM, + FLASH_PROC_PROGRAM_LAST +} FLASH_ProcedureTypeDef; + +/** + * @brief FLASH Cache structure definition + */ +typedef enum +{ + FLASH_CACHE_DISABLED = 0, + FLASH_CACHE_ICACHE_ENABLED, + FLASH_CACHE_DCACHE_ENABLED, + FLASH_CACHE_ICACHE_DCACHE_ENABLED +} FLASH_CacheTypeDef; + +/** + * @brief FLASH handle Structure definition + */ +typedef struct +{ + HAL_LockTypeDef Lock; /* FLASH locking object */ + __IO uint32_t ErrorCode; /* FLASH error code */ + __IO FLASH_ProcedureTypeDef ProcedureOnGoing; /* Internal variable to indicate which procedure is ongoing or not in IT context */ + __IO uint32_t Address; /* Internal variable to save address selected for program in IT context */ + __IO uint32_t Bank; /* Internal variable to save current bank selected during erase in IT context */ + __IO uint32_t Page; /* Internal variable to define the current page which is erasing in IT context */ + __IO uint32_t NbPagesToErase; /* Internal variable to save the remaining pages to erase in IT context */ + __IO FLASH_CacheTypeDef CacheToReactivate; /* Internal variable to indicate which caches should be reactivated */ +} FLASH_ProcessTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Constants FLASH Exported Constants + * @{ + */ + +/** @defgroup FLASH_Error FLASH Error + * @{ + */ +#define HAL_FLASH_ERROR_NONE 0x00000000U +#define HAL_FLASH_ERROR_OP FLASH_FLAG_OPERR +#define HAL_FLASH_ERROR_PROG FLASH_FLAG_PROGERR +#define HAL_FLASH_ERROR_WRP FLASH_FLAG_WRPERR +#define HAL_FLASH_ERROR_PGA FLASH_FLAG_PGAERR +#define HAL_FLASH_ERROR_SIZ FLASH_FLAG_SIZERR +#define HAL_FLASH_ERROR_PGS FLASH_FLAG_PGSERR +#define HAL_FLASH_ERROR_MIS FLASH_FLAG_MISERR +#define HAL_FLASH_ERROR_FAST FLASH_FLAG_FASTERR +#define HAL_FLASH_ERROR_RD FLASH_FLAG_RDERR +#define HAL_FLASH_ERROR_OPTV FLASH_FLAG_OPTVERR +#define HAL_FLASH_ERROR_ECCC FLASH_FLAG_ECCC +#define HAL_FLASH_ERROR_ECCD FLASH_FLAG_ECCD +#if defined (FLASH_OPTR_DBANK) +#define HAL_FLASH_ERROR_ECCC2 FLASH_FLAG_ECCC2 +#define HAL_FLASH_ERROR_ECCD2 FLASH_FLAG_ECCD2 +#endif +/** + * @} + */ + +/** @defgroup FLASH_Type_Erase FLASH Erase Type + * @{ + */ +#define FLASH_TYPEERASE_PAGES 0x00U /*!> 24U) /*!< ECC Correction Interrupt source */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Macros FLASH Exported Macros + * @brief macros to control FLASH features + * @{ + */ + +/** + * @brief Set the FLASH Latency. + * @param __LATENCY__ FLASH Latency. + * This parameter can be one of the following values : + * @arg FLASH_LATENCY_0: FLASH Zero wait state + * @arg FLASH_LATENCY_1: FLASH One wait state + * @arg FLASH_LATENCY_2: FLASH Two wait states + * @arg FLASH_LATENCY_3: FLASH Three wait states + * @arg FLASH_LATENCY_4: FLASH Four wait states + * @arg FLASH_LATENCY_5: FLASH Five wait states + * @arg FLASH_LATENCY_6: FLASH Six wait states + * @arg FLASH_LATENCY_7: FLASH Seven wait states + * @arg FLASH_LATENCY_8: FLASH Eight wait states + * @arg FLASH_LATENCY_9: FLASH Nine wait states + * @arg FLASH_LATENCY_10: FLASH Ten wait state + * @arg FLASH_LATENCY_11: FLASH Eleven wait state + * @arg FLASH_LATENCY_12: FLASH Twelve wait states + * @arg FLASH_LATENCY_13: FLASH Thirteen wait states + * @arg FLASH_LATENCY_14: FLASH Fourteen wait states + * @arg FLASH_LATENCY_15: FLASH Fifteen wait states + * @retval None + */ +#define __HAL_FLASH_SET_LATENCY(__LATENCY__) MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, (__LATENCY__)) + +/** + * @brief Get the FLASH Latency. + * @retval FLASH_Latency. + * This parameter can be one of the following values : + * @arg FLASH_LATENCY_0: FLASH Zero wait state + * @arg FLASH_LATENCY_1: FLASH One wait state + * @arg FLASH_LATENCY_2: FLASH Two wait states + * @arg FLASH_LATENCY_3: FLASH Three wait states + * @arg FLASH_LATENCY_4: FLASH Four wait states + * @arg FLASH_LATENCY_5: FLASH Five wait states + * @arg FLASH_LATENCY_6: FLASH Six wait states + * @arg FLASH_LATENCY_7: FLASH Seven wait states + * @arg FLASH_LATENCY_8: FLASH Eight wait states + * @arg FLASH_LATENCY_9: FLASH Nine wait states + * @arg FLASH_LATENCY_10: FLASH Ten wait state + * @arg FLASH_LATENCY_11: FLASH Eleven wait state + * @arg FLASH_LATENCY_12: FLASH Twelve wait states + * @arg FLASH_LATENCY_13: FLASH Thirteen wait states + * @arg FLASH_LATENCY_14: FLASH Fourteen wait states + * @arg FLASH_LATENCY_15: FLASH Fifteen wait states + */ +#define __HAL_FLASH_GET_LATENCY() READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY) + +/** + * @brief Enable the FLASH prefetch buffer. + * @retval None + */ +#define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) + +/** + * @brief Disable the FLASH prefetch buffer. + * @retval None + */ +#define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) + +/** + * @brief Enable the FLASH instruction cache. + * @retval none + */ +#define __HAL_FLASH_INSTRUCTION_CACHE_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_ICEN) + +/** + * @brief Disable the FLASH instruction cache. + * @retval none + */ +#define __HAL_FLASH_INSTRUCTION_CACHE_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_ICEN) + +/** + * @brief Enable the FLASH data cache. + * @retval none + */ +#define __HAL_FLASH_DATA_CACHE_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_DCEN) + +/** + * @brief Disable the FLASH data cache. + * @retval none + */ +#define __HAL_FLASH_DATA_CACHE_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_DCEN) + +/** + * @brief Reset the FLASH instruction Cache. + * @note This function must be used only when the Instruction Cache is disabled. + * @retval None + */ +#define __HAL_FLASH_INSTRUCTION_CACHE_RESET() do { SET_BIT(FLASH->ACR, FLASH_ACR_ICRST); \ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_ICRST); \ + } while (0) + +/** + * @brief Reset the FLASH data Cache. + * @note This function must be used only when the data Cache is disabled. + * @retval None + */ +#define __HAL_FLASH_DATA_CACHE_RESET() do { SET_BIT(FLASH->ACR, FLASH_ACR_DCRST); \ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_DCRST); \ + } while (0) + +/** + * @brief Enable the FLASH power down during Low-power run mode. + * @note Writing this bit to 1, automatically the keys are + * lost and a new unlock sequence is necessary to re-write it to 0. + */ +#define __HAL_FLASH_POWER_DOWN_ENABLE() do { WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1); \ + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2); \ + SET_BIT(FLASH->ACR, FLASH_ACR_RUN_PD); \ + } while (0) + +/** + * @brief Disable the FLASH power down during Low-power run mode. + * @note Writing this bit to 0, automatically the keys are + * lost and a new unlock sequence is necessary to re-write it to 1. + */ +#define __HAL_FLASH_POWER_DOWN_DISABLE() do { WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1); \ + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2); \ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_RUN_PD); \ + } while (0) + +/** + * @brief Enable the FLASH power down during Low-Power sleep mode + * @retval none + */ +#define __HAL_FLASH_SLEEP_POWERDOWN_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD) + +/** + * @brief Disable the FLASH power down during Low-Power sleep mode + * @retval none + */ +#define __HAL_FLASH_SLEEP_POWERDOWN_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD) + +/** + * @} + */ + +/** @defgroup FLASH_Interrupt FLASH Interrupts Macros + * @brief macros to handle FLASH interrupts + * @{ + */ + +/** + * @brief Enable the specified FLASH interrupt. + * @param __INTERRUPT__ FLASH interrupt + * This parameter can be any combination of the following values: + * @arg FLASH_IT_EOP: End of FLASH Operation Interrupt + * @arg FLASH_IT_OPERR: Error Interrupt + * @arg FLASH_IT_RDERR: PCROP Read Error Interrupt + * @arg FLASH_IT_ECCC: ECC Correction Interrupt + * @retval none + */ +#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) do { if(((__INTERRUPT__) & FLASH_IT_ECCC) != 0U) { SET_BIT(FLASH->ECCR, FLASH_ECCR_ECCIE); }\ + if(((__INTERRUPT__) & (~FLASH_IT_ECCC)) != 0U) { SET_BIT(FLASH->CR, ((__INTERRUPT__) & (~FLASH_IT_ECCC))); }\ + } while (0) + +/** + * @brief Disable the specified FLASH interrupt. + * @param __INTERRUPT__ FLASH interrupt + * This parameter can be any combination of the following values: + * @arg FLASH_IT_EOP: End of FLASH Operation Interrupt + * @arg FLASH_IT_OPERR: Error Interrupt + * @arg FLASH_IT_RDERR: PCROP Read Error Interrupt + * @arg FLASH_IT_ECCC: ECC Correction Interrupt + * @retval none + */ +#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) do { if(((__INTERRUPT__) & FLASH_IT_ECCC) != 0U) { CLEAR_BIT(FLASH->ECCR, FLASH_ECCR_ECCIE); }\ + if(((__INTERRUPT__) & (~FLASH_IT_ECCC)) != 0U) { CLEAR_BIT(FLASH->CR, ((__INTERRUPT__) & (~FLASH_IT_ECCC))); }\ + } while (0) + +/** + * @brief Check whether the specified FLASH flag is set or not. + * @param __FLAG__ specifies the FLASH flag to check. + * This parameter can be one of the following values: + * @arg FLASH_FLAG_EOP: FLASH End of Operation flag + * @arg FLASH_FLAG_OPERR: FLASH Operation error flag + * @arg FLASH_FLAG_PROGERR: FLASH Programming error flag + * @arg FLASH_FLAG_WRPERR: FLASH Write protection error flag + * @arg FLASH_FLAG_PGAERR: FLASH Programming alignment error flag + * @arg FLASH_FLAG_SIZERR: FLASH Size error flag + * @arg FLASH_FLAG_PGSERR: FLASH Programming sequence error flag + * @arg FLASH_FLAG_MISERR: FLASH Fast programming data miss error flag + * @arg FLASH_FLAG_FASTERR: FLASH Fast programming error flag + * @arg FLASH_FLAG_RDERR: FLASH PCROP read error flag + * @arg FLASH_FLAG_OPTVERR: FLASH Option validity error flag + * @arg FLASH_FLAG_BSY: FLASH write/erase operations in progress flag + * @arg FLASH_FLAG_ECCC: FLASH one ECC error has been detected and corrected in 64 LSB bits + * @arg FLASH_FLAG_ECCD: FLASH two ECC errors have been detected in 64 LSB bits + * @arg FLASH_FLAG_ECCC2(*): FLASH one ECC error has been detected and corrected in 64 MSB bits (mode 128 bits only) + * @arg FLASH_FLAG_ECCD2(*): FLASH two ECC errors have been detected in 64 MSB bits (mode 128 bits only) + * @note (*) availability depends on devices + * @retval The new state of FLASH_FLAG (SET or RESET). + */ +#define __HAL_FLASH_GET_FLAG(__FLAG__) ((((__FLAG__) & FLASH_FLAG_ECCR_ERRORS) != 0U) ? \ + (READ_BIT(FLASH->ECCR, (__FLAG__)) == (__FLAG__)) : \ + (READ_BIT(FLASH->SR, (__FLAG__)) == (__FLAG__))) + +/** + * @brief Clear the FLASH's pending flags. + * @param __FLAG__ specifies the FLASH flags to clear. + * This parameter can be any combination of the following values: + * @arg FLASH_FLAG_EOP: FLASH End of Operation flag + * @arg FLASH_FLAG_OPERR: FLASH Operation error flag + * @arg FLASH_FLAG_PROGERR: FLASH Programming error flag + * @arg FLASH_FLAG_WRPERR: FLASH Write protection error flag + * @arg FLASH_FLAG_PGAERR: FLASH Programming alignment error flag + * @arg FLASH_FLAG_SIZERR: FLASH Size error flag + * @arg FLASH_FLAG_PGSERR: FLASH Programming sequence error flag + * @arg FLASH_FLAG_MISERR: FLASH Fast programming data miss error flag + * @arg FLASH_FLAG_FASTERR: FLASH Fast programming error flag + * @arg FLASH_FLAG_RDERR: FLASH PCROP read error flag + * @arg FLASH_FLAG_OPTVERR: FLASH Option validity error flag + * @arg FLASH_FLAG_ECCC: FLASH one ECC error has been detected and corrected in 64 LSB bits + * @arg FLASH_FLAG_ECCD: FLASH two ECC errors have been detected in 64 LSB bits + * @arg FLASH_FLAG_ECCC2(*): FLASH one ECC error has been detected and corrected in 64 MSB bits (mode 128 bits only) + * @arg FLASH_FLAG_ECCD2(*): FLASH two ECC errors have been detected in 64 MSB bits (mode 128 bits only) + * @arg FLASH_FLAG_SR_ERRORS: FLASH All SR errors flags + * @arg FLASH_FLAG_ECCR_ERRORS: FLASH All ECCR errors flags + * @note (*) availability depends on devices + * @retval None + */ +#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) do { if(((__FLAG__) & FLASH_FLAG_ECCR_ERRORS) != 0U) { SET_BIT(FLASH->ECCR, ((__FLAG__) & FLASH_FLAG_ECCR_ERRORS)); }\ + if(((__FLAG__) & ~(FLASH_FLAG_ECCR_ERRORS)) != 0U) { WRITE_REG(FLASH->SR, ((__FLAG__) & ~(FLASH_FLAG_ECCR_ERRORS))); }\ + } while (0) +/** + * @} + */ + +/* Include FLASH HAL Extended module */ +#include "stm32g4xx_hal_flash_ex.h" +#include "stm32g4xx_hal_flash_ramfunc.h" + +/* Exported variables --------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Variables FLASH Exported Variables + * @{ + */ +extern FLASH_ProcessTypeDef pFlash; +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup FLASH_Exported_Functions + * @{ + */ + +/* Program operation functions ***********************************************/ +/** @addtogroup FLASH_Exported_Functions_Group1 + * @{ + */ +HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data); +HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data); +/* FLASH IRQ handler method */ +void HAL_FLASH_IRQHandler(void); +/* Callbacks in non blocking modes */ +void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue); +void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue); +/** + * @} + */ + +/* Peripheral Control functions **********************************************/ +/** @addtogroup FLASH_Exported_Functions_Group2 + * @{ + */ +HAL_StatusTypeDef HAL_FLASH_Unlock(void); +HAL_StatusTypeDef HAL_FLASH_Lock(void); +/* Option bytes control */ +HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Lock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Launch(void); +/** + * @} + */ + +/* Peripheral State functions ************************************************/ +/** @addtogroup FLASH_Exported_Functions_Group3 + * @{ + */ +uint32_t HAL_FLASH_GetError(void); +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASH_Private_Functions + * @{ + */ +HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout); +/** + * @} + */ + +/* Private constants --------------------------------------------------------*/ +/** @defgroup FLASH_Private_Constants FLASH Private Constants + * @{ + */ +#define FLASH_SIZE_DATA_REGISTER FLASHSIZE_BASE + +#if defined (FLASH_OPTR_DBANK) +#define FLASH_SIZE ((((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0xFFFFU)) ? (0x200UL << 10U) : \ + (((*((uint32_t *)FLASH_SIZE_DATA_REGISTER)) & 0xFFFFUL) << 10U)) +#define FLASH_BANK_SIZE (FLASH_SIZE >> 1) +#define FLASH_PAGE_NB ((FLASH_SIZE == 0x00080000U) ? 128U : \ + ((FLASH_SIZE == 0x00040000U) ? 64U : 32U)) +#define FLASH_PAGE_SIZE_128_BITS 0x1000U /* 4 KB */ +#else +#define FLASH_SIZE ((((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0xFFFFU)) ? (0x80UL << 10U) : \ + (((*((uint32_t *)FLASH_SIZE_DATA_REGISTER)) & 0xFFFFUL) << 10U)) +#define FLASH_BANK_SIZE (FLASH_SIZE) +#define FLASH_PAGE_NB ((FLASH_SIZE == 0x00080000U) ? 256U : \ + ((FLASH_SIZE == 0x00040000U) ? 128U : 64U)) +#endif + +#define FLASH_PAGE_SIZE 0x800U /* 2 KB */ + +#define FLASH_TIMEOUT_VALUE 1000U /* 1 s */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup FLASH_Private_Macros FLASH Private Macros + * @{ + */ + +#define IS_FLASH_TYPEERASE(VALUE) (((VALUE) == FLASH_TYPEERASE_PAGES) || \ + ((VALUE) == FLASH_TYPEERASE_MASSERASE)) + +#if defined (FLASH_OPTR_DBANK) +#define IS_FLASH_BANK(BANK) (((BANK) == FLASH_BANK_1) || \ + ((BANK) == FLASH_BANK_2) || \ + ((BANK) == FLASH_BANK_BOTH)) + +#define IS_FLASH_BANK_EXCLUSIVE(BANK) (((BANK) == FLASH_BANK_1) || \ + ((BANK) == FLASH_BANK_2)) +#else +#define IS_FLASH_BANK(BANK) ((BANK) == FLASH_BANK_1) + +#define IS_FLASH_BANK_EXCLUSIVE(BANK) ((BANK) == FLASH_BANK_1) +#endif + +#define IS_FLASH_TYPEPROGRAM(VALUE) (((VALUE) == FLASH_TYPEPROGRAM_DOUBLEWORD) || \ + ((VALUE) == FLASH_TYPEPROGRAM_FAST) || \ + ((VALUE) == FLASH_TYPEPROGRAM_FAST_AND_LAST)) + +#define IS_FLASH_MAIN_MEM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && ((ADDRESS) < (FLASH_BASE+FLASH_SIZE))) + +#define IS_FLASH_OTP_ADDRESS(ADDRESS) (((ADDRESS) >= 0x1FFF7000U) && ((ADDRESS) <= 0x1FFF73FFU)) + +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (IS_FLASH_MAIN_MEM_ADDRESS(ADDRESS) || IS_FLASH_OTP_ADDRESS(ADDRESS)) + +#define IS_FLASH_PAGE(PAGE) ((PAGE) < FLASH_PAGE_NB) + +#define IS_OPTIONBYTE(VALUE) (((VALUE) <= (OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_PCROP | \ + OPTIONBYTE_BOOT_LOCK | OPTIONBYTE_SEC))) + +#if defined (FLASH_OPTR_DBANK) +#define IS_OB_WRPAREA(VALUE) (((VALUE) == OB_WRPAREA_BANK1_AREAA) || ((VALUE) == OB_WRPAREA_BANK1_AREAB) || \ + ((VALUE) == OB_WRPAREA_BANK2_AREAA) || ((VALUE) == OB_WRPAREA_BANK2_AREAB)) +#else +#define IS_OB_WRPAREA(VALUE) (((VALUE) == OB_WRPAREA_BANK1_AREAA) || ((VALUE) == OB_WRPAREA_BANK1_AREAB)) +#endif + +#define IS_OB_BOOT_LOCK(VALUE) (((VALUE) == OB_BOOT_LOCK_ENABLE) || ((VALUE) == OB_BOOT_LOCK_DISABLE)) + +#define IS_OB_RDP_LEVEL(LEVEL) (((LEVEL) == OB_RDP_LEVEL_0) ||\ + ((LEVEL) == OB_RDP_LEVEL_1) ||\ + ((LEVEL) == OB_RDP_LEVEL_2)) + +#define IS_OB_USER_TYPE(TYPE) (((TYPE) <= 0x1FFFFU) && ((TYPE) != 0U)) + +#define IS_OB_USER_BOR_LEVEL(LEVEL) (((LEVEL) == OB_BOR_LEVEL_0) || ((LEVEL) == OB_BOR_LEVEL_1) || \ + ((LEVEL) == OB_BOR_LEVEL_2) || ((LEVEL) == OB_BOR_LEVEL_3) || \ + ((LEVEL) == OB_BOR_LEVEL_4)) + +#define IS_OB_USER_STOP(VALUE) (((VALUE) == OB_STOP_RST) || ((VALUE) == OB_STOP_NORST)) + +#define IS_OB_USER_STANDBY(VALUE) (((VALUE) == OB_STANDBY_RST) || ((VALUE) == OB_STANDBY_NORST)) + +#define IS_OB_USER_SHUTDOWN(VALUE) (((VALUE) == OB_SHUTDOWN_RST) || ((VALUE) == OB_SHUTDOWN_NORST)) + +#define IS_OB_USER_IWDG(VALUE) (((VALUE) == OB_IWDG_HW) || ((VALUE) == OB_IWDG_SW)) + +#define IS_OB_USER_IWDG_STOP(VALUE) (((VALUE) == OB_IWDG_STOP_FREEZE) || ((VALUE) == OB_IWDG_STOP_RUN)) + +#define IS_OB_USER_IWDG_STDBY(VALUE) (((VALUE) == OB_IWDG_STDBY_FREEZE) || ((VALUE) == OB_IWDG_STDBY_RUN)) + +#define IS_OB_USER_WWDG(VALUE) (((VALUE) == OB_WWDG_HW) || ((VALUE) == OB_WWDG_SW)) + +#if defined (FLASH_OPTR_DBANK) +#define IS_OB_USER_BFB2(VALUE) (((VALUE) == OB_BFB2_DISABLE) || ((VALUE) == OB_BFB2_ENABLE)) + +#define IS_OB_USER_DBANK(VALUE) (((VALUE) == OB_DBANK_128_BITS) || ((VALUE) == OB_DBANK_64_BITS)) +#endif + +#if defined (FLASH_OPTR_PB4_PUPEN) +#define IS_OB_USER_PB4_PUPEN(VALUE) (((VALUE) == OB_PB4_PUPEN_DISABLE) || ((VALUE) == OB_PB4_PUPEN_ENABLE)) +#endif + +#define IS_OB_USER_BOOT1(VALUE) (((VALUE) == OB_BOOT1_SRAM) || ((VALUE) == OB_BOOT1_SYSTEM)) + +#define IS_OB_USER_SRAM_PARITY(VALUE) (((VALUE) == OB_SRAM_PARITY_ENABLE) || ((VALUE) == OB_SRAM_PARITY_DISABLE)) + + +#define IS_OB_USER_CCMSRAM_RST(VALUE) (((VALUE) == OB_CCMSRAM_RST_ERASE) || ((VALUE) == OB_CCMSRAM_RST_NOT_ERASE)) + +#define IS_OB_USER_SWBOOT0(VALUE) (((VALUE) == OB_BOOT0_FROM_OB) || ((VALUE) == OB_BOOT0_FROM_PIN)) + +#define IS_OB_USER_BOOT0(VALUE) (((VALUE) == OB_nBOOT0_RESET) || ((VALUE) == OB_nBOOT0_SET)) + +#define IS_OB_USER_NRST_MODE(VALUE) (((VALUE) == OB_NRST_MODE_GPIO) || ((VALUE) == OB_NRST_MODE_INPUT_ONLY) || \ + ((VALUE) == OB_NRST_MODE_INPUT_OUTPUT)) + +#define IS_OB_USER_IRHEN(VALUE) (((VALUE) == OB_IRH_ENABLE) || ((VALUE) == OB_IRH_DISABLE)) + +#define IS_OB_PCROP_RDP(VALUE) (((VALUE) == OB_PCROP_RDP_NOT_ERASE) || ((VALUE) == OB_PCROP_RDP_ERASE)) + +#define IS_OB_SECMEM_SIZE(VALUE) ((VALUE) <= FLASH_PAGE_NB) + +#define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_LATENCY_0) || ((LATENCY) == FLASH_LATENCY_1) || \ + ((LATENCY) == FLASH_LATENCY_2) || ((LATENCY) == FLASH_LATENCY_3) || \ + ((LATENCY) == FLASH_LATENCY_4) || ((LATENCY) == FLASH_LATENCY_5) || \ + ((LATENCY) == FLASH_LATENCY_6) || ((LATENCY) == FLASH_LATENCY_7) || \ + ((LATENCY) == FLASH_LATENCY_8) || ((LATENCY) == FLASH_LATENCY_9) || \ + ((LATENCY) == FLASH_LATENCY_10) || ((LATENCY) == FLASH_LATENCY_11) || \ + ((LATENCY) == FLASH_LATENCY_12) || ((LATENCY) == FLASH_LATENCY_13) || \ + ((LATENCY) == FLASH_LATENCY_14) || ((LATENCY) == FLASH_LATENCY_15)) +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_FLASH_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h new file mode 100644 index 0000000..f32e810 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h @@ -0,0 +1,89 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_flash_ex.h + * @author MCD Application Team + * @brief Header file of FLASH HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_FLASH_EX_H +#define STM32G4xx_HAL_FLASH_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASHEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/* Exported constants --------------------------------------------------------*/ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup FLASHEx_Exported_Functions + * @{ + */ + +/* Extended Program operation functions *************************************/ +/** @addtogroup FLASHEx_Exported_Functions_Group1 + * @{ + */ +HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError); +HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit); +HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit); +void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit); +HAL_StatusTypeDef HAL_FLASHEx_EnableSecMemProtection(uint32_t Bank); +void HAL_FLASHEx_EnableDebugger(void); +void HAL_FLASHEx_DisableDebugger(void); +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASHEx_Private_Functions + * @{ + */ +void FLASH_PageErase(uint32_t Page, uint32_t Banks); +void FLASH_FlushCaches(void); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_FLASH_EX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h new file mode 100644 index 0000000..753bb33 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h @@ -0,0 +1,74 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_flash_ramfunc.h + * @author MCD Application Team + * @brief Header file of FLASH RAMFUNC driver. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_FLASH_RAMFUNC_H +#define STM32G4xx_FLASH_RAMFUNC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASH_RAMFUNC + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup FLASH_RAMFUNC_Exported_Functions + * @{ + */ + +/** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group1 + * @{ + */ +/* Peripheral Control functions ************************************************/ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableRunPowerDown(void); +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableRunPowerDown(void); +#if defined (FLASH_OPTR_DBANK) +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_OB_DBankConfig(uint32_t DBankConfig); +#endif +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_FLASH_RAMFUNC_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h new file mode 100644 index 0000000..d0954d0 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h @@ -0,0 +1,326 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_gpio.h + * @author MCD Application Team + * @brief Header file of GPIO HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_GPIO_H +#define STM32G4xx_HAL_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIO GPIO + * @brief GPIO HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup GPIO_Exported_Types GPIO Exported Types + * @{ + */ +/** + * @brief GPIO Init structure definition + */ +typedef struct +{ + uint32_t Pin; /*!< Specifies the GPIO pins to be configured. + This parameter can be any value of @ref GPIO_pins */ + + uint32_t Mode; /*!< Specifies the operating mode for the selected pins. + This parameter can be a value of @ref GPIO_mode */ + + uint32_t Pull; /*!< Specifies the Pull-up or Pull-Down activation for the selected pins. + This parameter can be a value of @ref GPIO_pull */ + + uint32_t Speed; /*!< Specifies the speed for the selected pins. + This parameter can be a value of @ref GPIO_speed */ + + uint32_t Alternate; /*!< Peripheral to be connected to the selected pins + This parameter can be a value of @ref GPIOEx_Alternate_function_selection */ +} GPIO_InitTypeDef; + +/** + * @brief GPIO Bit SET and Bit RESET enumeration + */ +typedef enum +{ + GPIO_PIN_RESET = 0U, + GPIO_PIN_SET +} GPIO_PinState; +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Constants GPIO Exported Constants + * @{ + */ +/** @defgroup GPIO_pins GPIO pins + * @{ + */ +#define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */ +#define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */ +#define GPIO_PIN_2 ((uint16_t)0x0004) /* Pin 2 selected */ +#define GPIO_PIN_3 ((uint16_t)0x0008) /* Pin 3 selected */ +#define GPIO_PIN_4 ((uint16_t)0x0010) /* Pin 4 selected */ +#define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */ +#define GPIO_PIN_6 ((uint16_t)0x0040) /* Pin 6 selected */ +#define GPIO_PIN_7 ((uint16_t)0x0080) /* Pin 7 selected */ +#define GPIO_PIN_8 ((uint16_t)0x0100) /* Pin 8 selected */ +#define GPIO_PIN_9 ((uint16_t)0x0200) /* Pin 9 selected */ +#define GPIO_PIN_10 ((uint16_t)0x0400) /* Pin 10 selected */ +#define GPIO_PIN_11 ((uint16_t)0x0800) /* Pin 11 selected */ +#define GPIO_PIN_12 ((uint16_t)0x1000) /* Pin 12 selected */ +#define GPIO_PIN_13 ((uint16_t)0x2000) /* Pin 13 selected */ +#define GPIO_PIN_14 ((uint16_t)0x4000) /* Pin 14 selected */ +#define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */ +#define GPIO_PIN_All ((uint16_t)0xFFFF) /* All pins selected */ + +#define GPIO_PIN_MASK (0x0000FFFFU) /* PIN mask for assert test */ +/** + * @} + */ + +/** @defgroup GPIO_mode GPIO mode + * @brief GPIO Configuration Mode + * Elements values convention: 0x00WX00YZ + * - W : EXTI trigger detection on 3 bits + * - X : EXTI mode (IT or Event) on 2 bits + * - Y : Output type (Push Pull or Open Drain) on 1 bit + * - Z : GPIO mode (Input, Output, Alternate or Analog) on 2 bits + * @{ + */ +#define GPIO_MODE_INPUT MODE_INPUT /*!< Input Floating Mode */ +#define GPIO_MODE_OUTPUT_PP (MODE_OUTPUT | OUTPUT_PP) /*!< Output Push Pull Mode */ +#define GPIO_MODE_OUTPUT_OD (MODE_OUTPUT | OUTPUT_OD) /*!< Output Open Drain Mode */ +#define GPIO_MODE_AF_PP (MODE_AF | OUTPUT_PP) /*!< Alternate Function Push Pull Mode */ +#define GPIO_MODE_AF_OD (MODE_AF | OUTPUT_OD) /*!< Alternate Function Open Drain Mode */ + +#define GPIO_MODE_ANALOG MODE_ANALOG /*!< Analog Mode */ + +#define GPIO_MODE_IT_RISING (MODE_INPUT | EXTI_IT | TRIGGER_RISING) /*!< External Interrupt Mode with Rising edge trigger detection */ +#define GPIO_MODE_IT_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_FALLING) /*!< External Interrupt Mode with Falling edge trigger detection */ +#define GPIO_MODE_IT_RISING_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_RISING | TRIGGER_FALLING) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */ + +#define GPIO_MODE_EVT_RISING (MODE_INPUT | EXTI_EVT | TRIGGER_RISING) /*!< External Event Mode with Rising edge trigger detection */ +#define GPIO_MODE_EVT_FALLING (MODE_INPUT | EXTI_EVT | TRIGGER_FALLING) /*!< External Event Mode with Falling edge trigger detection */ +#define GPIO_MODE_EVT_RISING_FALLING (MODE_INPUT | EXTI_EVT | TRIGGER_RISING | TRIGGER_FALLING) /*!< External Event Mode with Rising/Falling edge trigger detection */ +/** + * @} + */ + +/** @defgroup GPIO_speed GPIO speed + * @brief GPIO Output Maximum frequency + * @{ + */ +#define GPIO_SPEED_FREQ_LOW (0x00000000U) /*!< range up to 5 MHz, please refer to the product datasheet */ +#define GPIO_SPEED_FREQ_MEDIUM (0x00000001U) /*!< range 5 MHz to 25 MHz, please refer to the product datasheet */ +#define GPIO_SPEED_FREQ_HIGH (0x00000002U) /*!< range 25 MHz to 50 MHz, please refer to the product datasheet */ +#define GPIO_SPEED_FREQ_VERY_HIGH (0x00000003U) /*!< range 50 MHz to 120 MHz, please refer to the product datasheet */ +/** + * @} + */ + +/** @defgroup GPIO_pull GPIO pull + * @brief GPIO Pull-Up or Pull-Down Activation + * @{ + */ +#define GPIO_NOPULL (0x00000000U) /*!< No Pull-up or Pull-down activation */ +#define GPIO_PULLUP (0x00000001U) /*!< Pull-up activation */ +#define GPIO_PULLDOWN (0x00000002U) /*!< Pull-down activation */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Macros GPIO Exported Macros + * @{ + */ + +/** + * @brief Check whether the specified EXTI line flag is set or not. + * @param __EXTI_LINE__ specifies the EXTI line flag to check. + * This parameter can be GPIO_PIN_x where x can be(0..15) + * @retval The new state of __EXTI_LINE__ (SET or RESET). + */ +#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR1 & (__EXTI_LINE__)) + +/** + * @brief Clear the EXTI's line pending flags. + * @param __EXTI_LINE__ specifies the EXTI lines flags to clear. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15) + * @retval None + */ +#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR1 = (__EXTI_LINE__)) + +/** + * @brief Check whether the specified EXTI line is asserted or not. + * @param __EXTI_LINE__ specifies the EXTI line to check. + * This parameter can be GPIO_PIN_x where x can be(0..15) + * @retval The new state of __EXTI_LINE__ (SET or RESET). + */ +#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI->PR1 & (__EXTI_LINE__)) + +/** + * @brief Clear the EXTI's line pending bits. + * @param __EXTI_LINE__ specifies the EXTI lines to clear. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15) + * @retval None + */ +#define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__) (EXTI->PR1 = (__EXTI_LINE__)) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @param __EXTI_LINE__ specifies the EXTI line to check. + * This parameter can be GPIO_PIN_x where x can be(0..15) + * @retval None + */ +#define __HAL_GPIO_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER1 |= (__EXTI_LINE__)) + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup GPIO_Private_Constants GPIO Private Constants + * @{ + */ +#define GPIO_MODE_Pos 0U +#define GPIO_MODE (0x3UL << GPIO_MODE_Pos) +#define MODE_INPUT (0x0UL << GPIO_MODE_Pos) +#define MODE_OUTPUT (0x1UL << GPIO_MODE_Pos) +#define MODE_AF (0x2UL << GPIO_MODE_Pos) +#define MODE_ANALOG (0x3UL << GPIO_MODE_Pos) +#define OUTPUT_TYPE_Pos 4U +#define OUTPUT_TYPE (0x1UL << OUTPUT_TYPE_Pos) +#define OUTPUT_PP (0x0UL << OUTPUT_TYPE_Pos) +#define OUTPUT_OD (0x1UL << OUTPUT_TYPE_Pos) +#define EXTI_MODE_Pos 16U +#define EXTI_MODE (0x3UL << EXTI_MODE_Pos) +#define EXTI_IT (0x1UL << EXTI_MODE_Pos) +#define EXTI_EVT (0x2UL << EXTI_MODE_Pos) +#define TRIGGER_MODE_Pos 20U +#define TRIGGER_MODE (0x7UL << TRIGGER_MODE_Pos) +#define TRIGGER_RISING (0x1UL << TRIGGER_MODE_Pos) +#define TRIGGER_FALLING (0x2UL << TRIGGER_MODE_Pos) +/** + * @} + */ + +/** @defgroup GPIO_Private_Macros GPIO Private Macros + * @{ + */ +#define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET)) + +#define IS_GPIO_PIN(__PIN__) ((((uint32_t)(__PIN__) & GPIO_PIN_MASK) != 0x00U) &&\ + (((uint32_t)(__PIN__) & ~GPIO_PIN_MASK) == 0x00U)) + +#define IS_GPIO_MODE(__MODE__) (((__MODE__) == GPIO_MODE_INPUT) ||\ + ((__MODE__) == GPIO_MODE_OUTPUT_PP) ||\ + ((__MODE__) == GPIO_MODE_OUTPUT_OD) ||\ + ((__MODE__) == GPIO_MODE_AF_PP) ||\ + ((__MODE__) == GPIO_MODE_AF_OD) ||\ + ((__MODE__) == GPIO_MODE_IT_RISING) ||\ + ((__MODE__) == GPIO_MODE_IT_FALLING) ||\ + ((__MODE__) == GPIO_MODE_IT_RISING_FALLING) ||\ + ((__MODE__) == GPIO_MODE_EVT_RISING) ||\ + ((__MODE__) == GPIO_MODE_EVT_FALLING) ||\ + ((__MODE__) == GPIO_MODE_EVT_RISING_FALLING) ||\ + ((__MODE__) == GPIO_MODE_ANALOG)) + +#define IS_GPIO_SPEED(__SPEED__) (((__SPEED__) == GPIO_SPEED_FREQ_LOW) ||\ + ((__SPEED__) == GPIO_SPEED_FREQ_MEDIUM) ||\ + ((__SPEED__) == GPIO_SPEED_FREQ_HIGH) ||\ + ((__SPEED__) == GPIO_SPEED_FREQ_VERY_HIGH)) + +#define IS_GPIO_PULL(__PULL__) (((__PULL__) == GPIO_NOPULL) ||\ + ((__PULL__) == GPIO_PULLUP) || \ + ((__PULL__) == GPIO_PULLDOWN)) +/** + * @} + */ + +/* Include GPIO HAL Extended module */ +#include "stm32g4xx_hal_gpio_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Functions GPIO Exported Functions + * @brief GPIO Exported Functions + * @{ + */ + +/** @defgroup GPIO_Exported_Functions_Group1 Initialization/de-initialization functions + * @brief Initialization and Configuration functions + * @{ + */ + +/* Initialization and de-initialization functions *****************************/ +void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); +void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin); + +/** + * @} + */ + +/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions + * @brief IO operation functions + * @{ + */ + +/* IO operation functions *****************************************************/ +GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); +void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin); +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_GPIO_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h new file mode 100644 index 0000000..e1513a2 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h @@ -0,0 +1,340 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_gpio_ex.h + * @author MCD Application Team + * @brief Header file of GPIO HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_GPIO_EX_H +#define STM32G4xx_HAL_GPIO_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIOEx GPIOEx + * @brief GPIO Extended HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants + * @{ + */ + +/** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection + * @{ + */ + +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ +#if defined(TIM5) +#define GPIO_AF1_TIM5 ((uint8_t)0x01) /* TIM5 Alternate Function mapping */ +#endif /* TIM5 */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_TIM17_COMP1 ((uint8_t)0x01) /* TIM17/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_LPTIM1 ((uint8_t)0x01) /* LPTIM1 Alternate Function mapping */ +#define GPIO_AF1_IR ((uint8_t)0x01) /* IR Alternate Function mapping */ + +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ +#if defined(TIM5) +#define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ +#endif /* TIM5 */ +#define GPIO_AF2_TIM8 ((uint8_t)0x02) /* TIM8 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM16 ((uint8_t)0x02) /* TIM16 Alternate Function mapping */ +#if defined(TIM20) +#define GPIO_AF2_TIM20 ((uint8_t)0x02) /* TIM20 Alternate Function mapping */ +#endif /* TIM20 */ +#define GPIO_AF2_TIM1_COMP1 ((uint8_t)0x02) /* TIM1/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF2_TIM15_COMP1 ((uint8_t)0x02) /* TIM15/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF2_TIM16_COMP1 ((uint8_t)0x02) /* TIM16/COMP1 Break in Alternate Function mapping */ +#if defined(TIM20) +#define GPIO_AF2_TIM20_COMP1 ((uint8_t)0x02) /* TIM20/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF2_TIM20_COMP2 ((uint8_t)0x02) /* TIM20/COMP2 Break in Alternate Function mapping */ +#endif /* TIM20 */ +#define GPIO_AF2_I2C3 ((uint8_t)0x02) /* I2C3 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02) /* COMP1 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03) /* TIM15 Alternate Function mapping */ +#if defined(TIM20) +#define GPIO_AF3_TIM20 ((uint8_t)0x03) /* TIM20 Alternate Function mapping */ +#endif /* TIM20 */ +#define GPIO_AF3_UCPD1 ((uint8_t)0x03) /* UCPD1 Alternate Function mapping */ +#define GPIO_AF3_I2C3 ((uint8_t)0x03) /* I2C3 Alternate Function mapping */ +#if defined(I2C4) +#define GPIO_AF3_I2C4 ((uint8_t)0x03) /* I2C4 Alternate Function mapping */ +#endif /* I2C4 */ +#if defined(HRTIM1) +#define GPIO_AF3_HRTIM1 ((uint8_t)0x03) /* HRTIM1 Alternate Function mapping */ +#endif /* HRTIM1 */ +#if defined(QUADSPI) +#define GPIO_AF3_QUADSPI ((uint8_t)0x03) /* QUADSPI Alternate Function mapping */ +#endif /* QUADSPI */ +#define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ +#define GPIO_AF3_SAI1 ((uint8_t)0x03) /* SAI1 Alternate Function mapping */ +#define GPIO_AF3_COMP3 ((uint8_t)0x03) /* COMP3 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM8 ((uint8_t)0x04) /* TIM8 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_TIM8_COMP1 ((uint8_t)0x04) /* TIM8/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ +#define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ +#if defined(I2C4) +#define GPIO_AF4_I2C4 ((uint8_t)0x04) /* I2C4 Alternate Function mapping */ +#endif /* I2C4 */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2 Alternate Function mapping */ +#if defined(SPI4) +#define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ +#endif /* SPI4 */ +#define GPIO_AF5_IR ((uint8_t)0x05) /* IR Alternate Function mapping */ +#define GPIO_AF5_TIM8 ((uint8_t)0x05) /* TIM8 Alternate Function mapping */ +#define GPIO_AF5_TIM8_COMP1 ((uint8_t)0x05) /* TIM8/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05) /* UART4 Alternate Function mapping */ +#if defined(UART5) +#define GPIO_AF5_UART5 ((uint8_t)0x05) /* UART5 Alternate Function mapping */ +#endif /* UART5 */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05) /* I2S2ext_SD Alternate Function mapping */ + +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06) /* SPI2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3 Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06) /* TIM1 Alternate Function mapping */ +#if defined(TIM5) +#define GPIO_AF6_TIM5 ((uint8_t)0x06) /* TIM5 Alternate Function mapping */ +#endif /* TIM5 */ +#define GPIO_AF6_TIM8 ((uint8_t)0x06) /* TIM8 Alternate Function mapping */ +#if defined(TIM20) +#define GPIO_AF6_TIM20 ((uint8_t)0x06) /* TIM20 Alternate Function mapping */ +#endif /* TIM20 */ +#define GPIO_AF6_TIM1_COMP1 ((uint8_t)0x06) /* TIM1/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF6_TIM1_COMP2 ((uint8_t)0x06) /* TIM1/COMP2 Break in Alternate Function mapping */ +#define GPIO_AF6_TIM8_COMP2 ((uint8_t)0x06) /* TIM8/COMP2 Break in Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06) /* IR Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06) /* I2S3ext_SD Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ +#if defined(COMP5) +#define GPIO_AF7_COMP5 ((uint8_t)0x07) /* COMP5 Alternate Function mapping */ +#endif /* COMP5 */ +#if defined(COMP6) +#define GPIO_AF7_COMP6 ((uint8_t)0x07) /* COMP6 Alternate Function mapping */ +#endif /* COMP6 */ +#if defined(COMP7) +#define GPIO_AF7_COMP7 ((uint8_t)0x07) /* COMP7 Alternate Function mapping */ +#endif /* COMP7 */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP3 ((uint8_t)0x08) /* COMP3 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08) /* COMP4 Alternate Function mapping */ +#if defined(COMP5) +#define GPIO_AF8_COMP5 ((uint8_t)0x08) /* COMP5 Alternate Function mapping */ +#endif /* COMP5 */ +#if defined(COMP6) +#define GPIO_AF8_COMP6 ((uint8_t)0x08) /* COMP6 Alternate Function mapping */ +#endif /* COMP6 */ +#if defined(COMP7) +#define GPIO_AF8_COMP7 ((uint8_t)0x08) /* COMP7 Alternate Function mapping */ +#endif /* COMP7 */ +#define GPIO_AF8_I2C3 ((uint8_t)0x08) /* I2C3 Alternate Function mapping */ +#if defined(I2C4) +#define GPIO_AF8_I2C4 ((uint8_t)0x08) /* I2C4 Alternate Function mapping */ +#endif /* I2C4 */ +#define GPIO_AF8_LPUART1 ((uint8_t)0x08) /* LPUART1 Alternate Function mapping */ +#define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ +#if defined(UART5) +#define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ +#endif /* UART5 */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM8 ((uint8_t)0x09) /* TIM8 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09) /* TIM15 Alternate Function mapping */ +#define GPIO_AF9_TIM1_COMP1 ((uint8_t)0x09) /* TIM1/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF9_TIM8_COMP1 ((uint8_t)0x09) /* TIM8/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF9_TIM15_COMP1 ((uint8_t)0x09) /* TIM15/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF9_FDCAN1 ((uint8_t)0x09) /* FDCAN1 Alternate Function mapping */ +#if defined(FDCAN2) +#define GPIO_AF9_FDCAN2 ((uint8_t)0x09) /* FDCAN2 Alternate Function mapping */ +#endif /* FDCAN2 */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0x0A) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0x0A) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0x0A) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM8 ((uint8_t)0x0A) /* TIM8 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0x0A) /* TIM17 Alternate Function mapping */ +#define GPIO_AF10_TIM8_COMP2 ((uint8_t)0x0A) /* TIM8/COMP2 Break in Alternate Function mapping */ +#define GPIO_AF10_TIM17_COMP1 ((uint8_t)0x0A) /* TIM17/COMP1 Break in Alternate Function mapping */ +#if defined(QUADSPI) +#define GPIO_AF10_QUADSPI ((uint8_t)0x0A) /* OctoSPI Manager Port 1 Alternate Function mapping */ +#endif /* QUADSPI */ + +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_FDCAN1 ((uint8_t)0x0B) /* FDCAN1 Alternate Function mapping */ +#if defined(FDCAN3) +#define GPIO_AF11_FDCAN3 ((uint8_t)0x0B) /* FDCAN3 Alternate Function mapping */ +#endif /* FDCAN3 */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0B) /* TIM1 Alternate Function mapping */ +#define GPIO_AF11_TIM8 ((uint8_t)0x0B) /* TIM8 Alternate Function mapping */ +#define GPIO_AF11_TIM8_COMP1 ((uint8_t)0x0B) /* TIM8/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF11_LPTIM1 ((uint8_t)0x0B) /* LPTIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_LPUART1 ((uint8_t)0x0C) /* LPUART1 Alternate Function mapping */ +#define GPIO_AF12_TIM1 ((uint8_t)0x0C) /* TIM1 Alternate Function mapping */ +#define GPIO_AF12_TIM1_COMP1 ((uint8_t)0x0C) /* TIM1/COMP1 Break in Alternate Function mapping */ +#define GPIO_AF12_TIM1_COMP2 ((uint8_t)0x0C) /* TIM1/COMP2 Break in Alternate Function mapping */ +#if defined(HRTIM1) +#define GPIO_AF12_HRTIM1 ((uint8_t)0x0C) /* HRTIM1 Alternate Function mapping */ +#endif /* HRTIM1 */ +#if defined(FMC_BANK1) +#define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ +#endif /* FMC_BANK1 */ +#define GPIO_AF12_SAI1 ((uint8_t)0x0C) /* SAI1 Alternate Function mapping */ + +/** + * @brief AF 13 selection + */ +#if defined(HRTIM1) +#define GPIO_AF13_HRTIM1 ((uint8_t)0x0D) /* HRTIM1 Alternate Function mapping */ +#endif /* HRTIM1 */ +#define GPIO_AF13_SAI1 ((uint8_t)0x0D) /* SAI1 Alternate Function mapping */ + +/** + * @brief AF 14 selection + */ +#define GPIO_AF14_TIM2 ((uint8_t)0x0E) /* TIM2 Alternate Function mapping */ +#define GPIO_AF14_TIM15 ((uint8_t)0x0E) /* TIM15 Alternate Function mapping */ +#define GPIO_AF14_UCPD1 ((uint8_t)0x0E) /* UCPD1 Alternate Function mapping */ +#define GPIO_AF14_SAI1 ((uint8_t)0x0E) /* SAI1 Alternate Function mapping */ +#define GPIO_AF14_UART4 ((uint8_t)0x0E) /* UART4 Alternate Function mapping */ +#if defined(UART5) +#define GPIO_AF14_UART5 ((uint8_t)0x0E) /* UART5 Alternate Function mapping */ +#endif /* UART5 */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) ((AF) <= (uint8_t)0x0F) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup GPIOEx_Exported_Macros GPIOEx Exported Macros + * @{ + */ + +/** @defgroup GPIOEx_Get_Port_Index GPIOEx Get Port Index + * @{ + */ +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0UL :\ + ((__GPIOx__) == (GPIOB))? 1UL :\ + ((__GPIOx__) == (GPIOC))? 2UL :\ + ((__GPIOx__) == (GPIOD))? 3UL :\ + ((__GPIOx__) == (GPIOE))? 4UL :\ + ((__GPIOx__) == (GPIOF))? 5UL : 6UL) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_GPIO_EX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h new file mode 100644 index 0000000..57422ee --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h @@ -0,0 +1,411 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_pwr.h + * @author MCD Application Team + * @brief Header file of PWR HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_PWR_H +#define STM32G4xx_HAL_PWR_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup PWR + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Types PWR Exported Types + * @{ + */ + +/** + * @brief PWR PVD configuration structure definition + */ +typedef struct +{ + uint32_t PVDLevel; /*!< PVDLevel: Specifies the PVD detection level. + This parameter can be a value of @ref PWR_PVD_detection_level. */ + + uint32_t Mode; /*!< Mode: Specifies the operating mode for the selected pins. + This parameter can be a value of @ref PWR_PVD_Mode. */ +}PWR_PVDTypeDef; + + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Constants PWR Exported Constants + * @{ + */ + + +/** @defgroup PWR_PVD_detection_level Programmable Voltage Detection levels + * @{ + */ +#define PWR_PVDLEVEL_0 PWR_CR2_PLS_LEV0 /*!< PVD threshold around 2.0 V */ +#define PWR_PVDLEVEL_1 PWR_CR2_PLS_LEV1 /*!< PVD threshold around 2.2 V */ +#define PWR_PVDLEVEL_2 PWR_CR2_PLS_LEV2 /*!< PVD threshold around 2.4 V */ +#define PWR_PVDLEVEL_3 PWR_CR2_PLS_LEV3 /*!< PVD threshold around 2.5 V */ +#define PWR_PVDLEVEL_4 PWR_CR2_PLS_LEV4 /*!< PVD threshold around 2.6 V */ +#define PWR_PVDLEVEL_5 PWR_CR2_PLS_LEV5 /*!< PVD threshold around 2.8 V */ +#define PWR_PVDLEVEL_6 PWR_CR2_PLS_LEV6 /*!< PVD threshold around 2.9 V */ +#define PWR_PVDLEVEL_7 PWR_CR2_PLS_LEV7 /*!< External input analog voltage (compared internally to VREFINT) */ +/** + * @} + */ + +/** @defgroup PWR_PVD_Mode PWR PVD interrupt and event mode + * @{ + */ +#define PWR_PVD_MODE_NORMAL ((uint32_t)0x00000000) /*!< Basic mode is used */ +#define PWR_PVD_MODE_IT_RISING ((uint32_t)0x00010001) /*!< External Interrupt Mode with Rising edge trigger detection */ +#define PWR_PVD_MODE_IT_FALLING ((uint32_t)0x00010002) /*!< External Interrupt Mode with Falling edge trigger detection */ +#define PWR_PVD_MODE_IT_RISING_FALLING ((uint32_t)0x00010003) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */ +#define PWR_PVD_MODE_EVENT_RISING ((uint32_t)0x00020001) /*!< Event Mode with Rising edge trigger detection */ +#define PWR_PVD_MODE_EVENT_FALLING ((uint32_t)0x00020002) /*!< Event Mode with Falling edge trigger detection */ +#define PWR_PVD_MODE_EVENT_RISING_FALLING ((uint32_t)0x00020003) /*!< Event Mode with Rising/Falling edge trigger detection */ +/** + * @} + */ + + + + +/** @defgroup PWR_Regulator_state_in_SLEEP_STOP_mode PWR regulator mode + * @{ + */ +#define PWR_MAINREGULATOR_ON ((uint32_t)0x00000000) /*!< Regulator in main mode */ +#define PWR_LOWPOWERREGULATOR_ON PWR_CR1_LPR /*!< Regulator in low-power mode */ +/** + * @} + */ + +/** @defgroup PWR_SLEEP_mode_entry PWR SLEEP mode entry + * @{ + */ +#define PWR_SLEEPENTRY_WFI ((uint8_t)0x01) /*!< Wait For Interruption instruction to enter Sleep mode */ +#define PWR_SLEEPENTRY_WFE ((uint8_t)0x02) /*!< Wait For Event instruction to enter Sleep mode */ +/** + * @} + */ + +/** @defgroup PWR_STOP_mode_entry PWR STOP mode entry + * @{ + */ +#define PWR_STOPENTRY_WFI ((uint8_t)0x01) /*!< Wait For Interruption instruction to enter Stop mode */ +#define PWR_STOPENTRY_WFE ((uint8_t)0x02) /*!< Wait For Event instruction to enter Stop mode */ +/** + * @} + */ + + +/** @defgroup PWR_PVD_EXTI_LINE PWR PVD external interrupt line + * @{ + */ +#define PWR_EXTI_LINE_PVD ((uint32_t)0x00010000) /*!< External interrupt line 16 Connected to the PVD EXTI Line */ +/** + * @} + */ + +/** @defgroup PWR_PVD_EVENT_LINE PWR PVD event line + * @{ + */ +#define PWR_EVENT_LINE_PVD ((uint32_t)0x00010000) /*!< Event line 16 Connected to the PVD Event Line */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup PWR_Exported_Macros PWR Exported Macros + * @{ + */ + +/** @brief Check whether or not a specific PWR flag is set. + * @param __FLAG__: specifies the flag to check. + * This parameter can be one of the following values: + * @arg @ref PWR_FLAG_WUF1 Wake Up Flag 1. Indicates that a wakeup event + * was received from the WKUP pin 1. + * @arg @ref PWR_FLAG_WUF2 Wake Up Flag 2. Indicates that a wakeup event + * was received from the WKUP pin 2. + * @arg @ref PWR_FLAG_WUF3 Wake Up Flag 3. Indicates that a wakeup event + * was received from the WKUP pin 3. + * @arg @ref PWR_FLAG_WUF4 Wake Up Flag 4. Indicates that a wakeup event + * was received from the WKUP pin 4. + * @arg @ref PWR_FLAG_WUF5 Wake Up Flag 5. Indicates that a wakeup event + * was received from the WKUP pin 5. + * @arg @ref PWR_FLAG_SB StandBy Flag. Indicates that the system + * entered StandBy mode. + * @arg @ref PWR_FLAG_WUFI Wake-Up Flag Internal. Set when a wakeup is detected on + * the internal wakeup line. + * @arg @ref PWR_FLAG_REGLPS Low Power Regulator Started. Indicates whether or not the + * low-power regulator is ready. + * @arg @ref PWR_FLAG_REGLPF Low Power Regulator Flag. Indicates whether the + * regulator is ready in main mode or is in low-power mode. + * @arg @ref PWR_FLAG_VOSF Voltage Scaling Flag. Indicates whether the regulator is ready + * in the selected voltage range or is still changing to the required voltage level. + * @arg @ref PWR_FLAG_PVDO Power Voltage Detector Output. Indicates whether VDD voltage is + * below or above the selected PVD threshold. +@if PWR_CR2_PVME1 + * @arg @ref PWR_FLAG_PVMO1 Peripheral Voltage Monitoring Output 1. Indicates whether VDDUSB voltage is + * is below or above PVM1 threshold (applicable when USB feature is supported). +@endif +@if PWR_CR2_PVME2 + * @arg @ref PWR_FLAG_PVMO2 Peripheral Voltage Monitoring Output 2. Indicates whether VDDIO2 voltage is + * is below or above PVM2 threshold (applicable when VDDIO2 is present on device). +@endif + * @arg @ref PWR_FLAG_PVMO3 Peripheral Voltage Monitoring Output 3. Indicates whether VDDA voltage is + * is below or above PVM3 threshold. + * @arg @ref PWR_FLAG_PVMO4 Peripheral Voltage Monitoring Output 4. Indicates whether VDDA voltage is + * is below or above PVM4 threshold. + * + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_PWR_GET_FLAG(__FLAG__) ( ((((uint8_t)(__FLAG__)) >> 5U) == 1) ?\ + (PWR->SR1 & (1U << ((__FLAG__) & 31U))) :\ + (PWR->SR2 & (1U << ((__FLAG__) & 31U))) ) + +/** @brief Clear a specific PWR flag. + * @param __FLAG__: specifies the flag to clear. + * This parameter can be one of the following values: + * @arg @ref PWR_FLAG_WUF1 Wake Up Flag 1. Indicates that a wakeup event + * was received from the WKUP pin 1. + * @arg @ref PWR_FLAG_WUF2 Wake Up Flag 2. Indicates that a wakeup event + * was received from the WKUP pin 2. + * @arg @ref PWR_FLAG_WUF3 Wake Up Flag 3. Indicates that a wakeup event + * was received from the WKUP pin 3. + * @arg @ref PWR_FLAG_WUF4 Wake Up Flag 4. Indicates that a wakeup event + * was received from the WKUP pin 4. + * @arg @ref PWR_FLAG_WUF5 Wake Up Flag 5. Indicates that a wakeup event + * was received from the WKUP pin 5. + * @arg @ref PWR_FLAG_WU Encompasses all five Wake Up Flags. + * @arg @ref PWR_FLAG_SB Standby Flag. Indicates that the system + * entered Standby mode. + * @retval None + */ +#define __HAL_PWR_CLEAR_FLAG(__FLAG__) ( (((uint8_t)(__FLAG__)) == PWR_FLAG_WU) ?\ + (PWR->SCR = (__FLAG__)) :\ + (PWR->SCR = (1U << ((__FLAG__) & 31U))) ) +/** + * @brief Enable the PVD Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR1, PWR_EXTI_LINE_PVD) + +/** + * @brief Disable the PVD Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR1, PWR_EXTI_LINE_PVD) + +/** + * @brief Enable the PVD Event Line. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR1, PWR_EVENT_LINE_PVD) + +/** + * @brief Disable the PVD Event Line. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR1, PWR_EVENT_LINE_PVD) + +/** + * @brief Enable the PVD Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR1, PWR_EXTI_LINE_PVD) + +/** + * @brief Disable the PVD Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR1, PWR_EXTI_LINE_PVD) + +/** + * @brief Enable the PVD Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR1, PWR_EXTI_LINE_PVD) + + +/** + * @brief Disable the PVD Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR1, PWR_EXTI_LINE_PVD) + + +/** + * @brief Enable the PVD Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the PVD Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER1, PWR_EXTI_LINE_PVD) + +/** + * @brief Check whether or not the PVD EXTI interrupt flag is set. + * @retval EXTI PVD Line Status. + */ +#define __HAL_PWR_PVD_EXTI_GET_FLAG() (EXTI->PR1 & PWR_EXTI_LINE_PVD) + +/** + * @brief Clear the PVD EXTI interrupt flag. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR1, PWR_EXTI_LINE_PVD) + +/** + * @} + */ + + +/* Private macros --------------------------------------------------------*/ +/** @addtogroup PWR_Private_Macros PWR Private Macros + * @{ + */ + +#define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLEVEL_0) || ((LEVEL) == PWR_PVDLEVEL_1)|| \ + ((LEVEL) == PWR_PVDLEVEL_2) || ((LEVEL) == PWR_PVDLEVEL_3)|| \ + ((LEVEL) == PWR_PVDLEVEL_4) || ((LEVEL) == PWR_PVDLEVEL_5)|| \ + ((LEVEL) == PWR_PVDLEVEL_6) || ((LEVEL) == PWR_PVDLEVEL_7)) + +#define IS_PWR_PVD_MODE(MODE) (((MODE) == PWR_PVD_MODE_NORMAL) ||\ + ((MODE) == PWR_PVD_MODE_IT_RISING) ||\ + ((MODE) == PWR_PVD_MODE_IT_FALLING) ||\ + ((MODE) == PWR_PVD_MODE_IT_RISING_FALLING) ||\ + ((MODE) == PWR_PVD_MODE_EVENT_RISING) ||\ + ((MODE) == PWR_PVD_MODE_EVENT_FALLING) ||\ + ((MODE) == PWR_PVD_MODE_EVENT_RISING_FALLING)) + +#define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_MAINREGULATOR_ON) || \ + ((REGULATOR) == PWR_LOWPOWERREGULATOR_ON)) + +#define IS_PWR_SLEEP_ENTRY(ENTRY) (((ENTRY) == PWR_SLEEPENTRY_WFI) || ((ENTRY) == PWR_SLEEPENTRY_WFE)) + +#define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPENTRY_WFI) || ((ENTRY) == PWR_STOPENTRY_WFE) ) + +/** + * @} + */ + +/* Include PWR HAL Extended module */ +#include "stm32g4xx_hal_pwr_ex.h" + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup PWR_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @addtogroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ + +/* Initialization and de-initialization functions *******************************/ +void HAL_PWR_DeInit(void); +void HAL_PWR_EnableBkUpAccess(void); +void HAL_PWR_DisableBkUpAccess(void); + +/** + * @} + */ + +/** @addtogroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @{ + */ + +/* Peripheral Control functions ************************************************/ +HAL_StatusTypeDef HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD); +void HAL_PWR_EnablePVD(void); +void HAL_PWR_DisablePVD(void); + + +/* WakeUp pins configuration functions ****************************************/ +void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinPolarity); +void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx); + +/* Low Power modes configuration functions ************************************/ +void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry); +void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry); +void HAL_PWR_EnterSTANDBYMode(void); + +void HAL_PWR_EnableSleepOnExit(void); +void HAL_PWR_DisableSleepOnExit(void); +void HAL_PWR_EnableSEVOnPend(void); +void HAL_PWR_DisableSEVOnPend(void); + +void HAL_PWR_PVDCallback(void); + + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32G4xx_HAL_PWR_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h new file mode 100644 index 0000000..79fc57f --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h @@ -0,0 +1,817 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_pwr_ex.h + * @author MCD Application Team + * @brief Header file of PWR HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_PWR_EX_H +#define STM32G4xx_HAL_PWR_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup PWREx + * @{ + */ + + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Types PWR Extended Exported Types + * @{ + */ + + +/** + * @brief PWR PVM configuration structure definition + */ +typedef struct +{ + uint32_t PVMType; /*!< PVMType: Specifies which voltage is monitored and against which threshold. + This parameter can be a value of @ref PWREx_PVM_Type. */ + uint32_t Mode; /*!< Mode: Specifies the operating mode for the selected pins. + This parameter can be a value of @ref PWREx_PVM_Mode. */ +}PWR_PVMTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Constants PWR Extended Exported Constants + * @{ + */ + +/** @defgroup PWREx_WUP_Polarity Shift to apply to retrieve polarity information from PWR_WAKEUP_PINy_xxx constants + * @{ + */ +#define PWR_WUP_POLARITY_SHIFT 0x05U /*!< Internal constant used to retrieve wakeup pin polariry */ +/** + * @} + */ + + +/** @defgroup PWREx_WakeUp_Pins PWR wake-up pins + * @{ + */ +#define PWR_WAKEUP_PIN1 PWR_CR3_EWUP1 /*!< Wakeup pin 1 (with high level polarity) */ +#define PWR_WAKEUP_PIN2 PWR_CR3_EWUP2 /*!< Wakeup pin 2 (with high level polarity) */ +#define PWR_WAKEUP_PIN3 PWR_CR3_EWUP3 /*!< Wakeup pin 3 (with high level polarity) */ +#define PWR_WAKEUP_PIN4 PWR_CR3_EWUP4 /*!< Wakeup pin 4 (with high level polarity) */ +#define PWR_WAKEUP_PIN5 PWR_CR3_EWUP5 /*!< Wakeup pin 5 (with high level polarity) */ +#define PWR_WAKEUP_PIN1_HIGH PWR_CR3_EWUP1 /*!< Wakeup pin 1 (with high level polarity) */ +#define PWR_WAKEUP_PIN2_HIGH PWR_CR3_EWUP2 /*!< Wakeup pin 2 (with high level polarity) */ +#define PWR_WAKEUP_PIN3_HIGH PWR_CR3_EWUP3 /*!< Wakeup pin 3 (with high level polarity) */ +#define PWR_WAKEUP_PIN4_HIGH PWR_CR3_EWUP4 /*!< Wakeup pin 4 (with high level polarity) */ +#define PWR_WAKEUP_PIN5_HIGH PWR_CR3_EWUP5 /*!< Wakeup pin 5 (with high level polarity) */ +#define PWR_WAKEUP_PIN1_LOW (uint32_t)((PWR_CR4_WP1<IMR2, PWR_EXTI_LINE_PVM1) + +/** + * @brief Disable the PVM1 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM1) + +/** + * @brief Enable the PVM1 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM1) + +/** + * @brief Disable the PVM1 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM1) + +/** + * @brief Enable the PVM1 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM1) + +/** + * @brief Disable the PVM1 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM1) + +/** + * @brief Enable the PVM1 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM1) + + +/** + * @brief Disable the PVM1 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM1) + + +/** + * @brief PVM1 EXTI line configuration: set rising & falling edge trigger. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM1_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_PWR_PVM1_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the PVM1 Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM1) + +/** + * @brief Check whether the specified PVM1 EXTI interrupt flag is set or not. + * @retval EXTI PVM1 Line Status. + */ +#define __HAL_PWR_PVM1_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM1) + +/** + * @brief Clear the PVM1 EXTI flag. + * @retval None + */ +#define __HAL_PWR_PVM1_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM1) + +#endif /* PWR_CR2_PVME1 */ + + +#if defined(PWR_CR2_PVME2) +/** + * @brief Enable the PVM2 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM2) + +/** + * @brief Disable the PVM2 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM2) + +/** + * @brief Enable the PVM2 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM2) + +/** + * @brief Disable the PVM2 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM2) + +/** + * @brief Enable the PVM2 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM2) + +/** + * @brief Disable the PVM2 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM2) + +/** + * @brief Enable the PVM2 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM2) + + +/** + * @brief Disable the PVM2 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM2) + + +/** + * @brief PVM2 EXTI line configuration: set rising & falling edge trigger. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM2_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_PWR_PVM2_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the PVM2 Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM2_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVM2_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM2) + +/** + * @brief Check whether the specified PVM2 EXTI interrupt flag is set or not. + * @retval EXTI PVM2 Line Status. + */ +#define __HAL_PWR_PVM2_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM2) + +/** + * @brief Clear the PVM2 EXTI flag. + * @retval None + */ +#define __HAL_PWR_PVM2_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM2) + +#endif /* PWR_CR2_PVME2 */ + + +/** + * @brief Enable the PVM3 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM3) + +/** + * @brief Disable the PVM3 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM3) + +/** + * @brief Enable the PVM3 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM3) + +/** + * @brief Disable the PVM3 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM3) + +/** + * @brief Enable the PVM3 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM3) + +/** + * @brief Disable the PVM3 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM3) + +/** + * @brief Enable the PVM3 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM3) + + +/** + * @brief Disable the PVM3 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM3) + + +/** + * @brief PVM3 EXTI line configuration: set rising & falling edge trigger. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM3_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_PWR_PVM3_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the PVM3 Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM3) + +/** + * @brief Check whether the specified PVM3 EXTI interrupt flag is set or not. + * @retval EXTI PVM3 Line Status. + */ +#define __HAL_PWR_PVM3_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM3) + +/** + * @brief Clear the PVM3 EXTI flag. + * @retval None + */ +#define __HAL_PWR_PVM3_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM3) + + + + +/** + * @brief Enable the PVM4 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM4) + +/** + * @brief Disable the PVM4 Extended Interrupt Line. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM4) + +/** + * @brief Enable the PVM4 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM4) + +/** + * @brief Disable the PVM4 Event Line. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM4) + +/** + * @brief Enable the PVM4 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM4) + +/** + * @brief Disable the PVM4 Extended Interrupt Rising Trigger. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM4) + +/** + * @brief Enable the PVM4 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM4) + + +/** + * @brief Disable the PVM4 Extended Interrupt Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM4) + + +/** + * @brief PVM4 EXTI line configuration: set rising & falling edge trigger. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM4_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_PWR_PVM4_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the PVM4 Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVM4_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVM4_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM4) + +/** + * @brief Check whether or not the specified PVM4 EXTI interrupt flag is set. + * @retval EXTI PVM4 Line Status. + */ +#define __HAL_PWR_PVM4_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM4) + +/** + * @brief Clear the PVM4 EXTI flag. + * @retval None + */ +#define __HAL_PWR_PVM4_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM4) + + +/** + * @brief Configure the main internal regulator output voltage. + * @param __REGULATOR__: specifies the regulator output voltage to achieve + * a tradeoff between performance and power consumption. + * This parameter can be one of the following values: + * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1_BOOST Regulator voltage output range 1 mode, + * typical output voltage at 1.28 V, + * system frequency up to 170 MHz. + * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1 Regulator voltage output range 1 mode, + * typical output voltage at 1.2 V, + * system frequency up to 150 MHz. + * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE2 Regulator voltage output range 2 mode, + * typical output voltage at 1.0 V, + * system frequency up to 26 MHz. + * @note This macro is similar to HAL_PWREx_ControlVoltageScaling() API but doesn't check + * whether or not VOSF flag is cleared when moving from range 2 to range 1. User + * may resort to __HAL_PWR_GET_FLAG() macro to check VOSF bit resetting. + * @retval None + */ +#define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) do { \ + __IO uint32_t tmpreg; \ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, (__REGULATOR__)); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(PWR->CR1, PWR_CR1_VOS); \ + UNUSED(tmpreg); \ + } while(0) + +/** + * @} + */ + +/* Private macros --------------------------------------------------------*/ +/** @addtogroup PWREx_Private_Macros PWR Extended Private Macros + * @{ + */ + +#define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || \ + ((PIN) == PWR_WAKEUP_PIN2) || \ + ((PIN) == PWR_WAKEUP_PIN3) || \ + ((PIN) == PWR_WAKEUP_PIN4) || \ + ((PIN) == PWR_WAKEUP_PIN5) || \ + ((PIN) == PWR_WAKEUP_PIN1_HIGH) || \ + ((PIN) == PWR_WAKEUP_PIN2_HIGH) || \ + ((PIN) == PWR_WAKEUP_PIN3_HIGH) || \ + ((PIN) == PWR_WAKEUP_PIN4_HIGH) || \ + ((PIN) == PWR_WAKEUP_PIN5_HIGH) || \ + ((PIN) == PWR_WAKEUP_PIN1_LOW) || \ + ((PIN) == PWR_WAKEUP_PIN2_LOW) || \ + ((PIN) == PWR_WAKEUP_PIN3_LOW) || \ + ((PIN) == PWR_WAKEUP_PIN4_LOW) || \ + ((PIN) == PWR_WAKEUP_PIN5_LOW)) + +#define IS_PWR_PVM_TYPE(TYPE) (((TYPE) == PWR_PVM_1) ||\ + ((TYPE) == PWR_PVM_2) ||\ + ((TYPE) == PWR_PVM_3) ||\ + ((TYPE) == PWR_PVM_4)) + +#define IS_PWR_PVM_MODE(MODE) (((MODE) == PWR_PVM_MODE_NORMAL) ||\ + ((MODE) == PWR_PVM_MODE_IT_RISING) ||\ + ((MODE) == PWR_PVM_MODE_IT_FALLING) ||\ + ((MODE) == PWR_PVM_MODE_IT_RISING_FALLING) ||\ + ((MODE) == PWR_PVM_MODE_EVENT_RISING) ||\ + ((MODE) == PWR_PVM_MODE_EVENT_FALLING) ||\ + ((MODE) == PWR_PVM_MODE_EVENT_RISING_FALLING)) + +#if defined(PWR_CR5_R1MODE) +#define IS_PWR_VOLTAGE_SCALING_RANGE(RANGE) (((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) || \ + ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \ + ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE2)) +#else +#define IS_PWR_VOLTAGE_SCALING_RANGE(RANGE) (((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \ + ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE2)) +#endif + + +#define IS_PWR_BATTERY_RESISTOR_SELECT(RESISTOR) (((RESISTOR) == PWR_BATTERY_CHARGING_RESISTOR_5) ||\ + ((RESISTOR) == PWR_BATTERY_CHARGING_RESISTOR_1_5)) + +#define IS_PWR_BATTERY_CHARGING(CHARGING) (((CHARGING) == PWR_BATTERY_CHARGING_DISABLE) ||\ + ((CHARGING) == PWR_BATTERY_CHARGING_ENABLE)) + +#define IS_PWR_GPIO_BIT_NUMBER(BIT_NUMBER) (((BIT_NUMBER) & GPIO_PIN_MASK) != (uint32_t)0x00U) +#define IS_PWR_GPIO(GPIO) (((GPIO) == PWR_GPIO_A) ||\ + ((GPIO) == PWR_GPIO_B) ||\ + ((GPIO) == PWR_GPIO_C) ||\ + ((GPIO) == PWR_GPIO_D) ||\ + ((GPIO) == PWR_GPIO_E) ||\ + ((GPIO) == PWR_GPIO_F) ||\ + ((GPIO) == PWR_GPIO_G)) + + +/** + * @} + */ + + +/** @addtogroup PWREx_Exported_Functions PWR Extended Exported Functions + * @{ + */ + +/** @addtogroup PWREx_Exported_Functions_Group1 Extended Peripheral Control functions + * @{ + */ + + +/* Peripheral Control functions **********************************************/ +uint32_t HAL_PWREx_GetVoltageRange(void); +HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling); +void HAL_PWREx_EnableBatteryCharging(uint32_t ResistorSelection); +void HAL_PWREx_DisableBatteryCharging(void); +void HAL_PWREx_EnableInternalWakeUpLine(void); +void HAL_PWREx_DisableInternalWakeUpLine(void); +HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber); +HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber); +HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber); +HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber); +void HAL_PWREx_EnablePullUpPullDownConfig(void); +void HAL_PWREx_DisablePullUpPullDownConfig(void); +void HAL_PWREx_EnableSRAM2ContentRetention(void); +void HAL_PWREx_DisableSRAM2ContentRetention(void); +#if defined(PWR_CR2_PVME1) +void HAL_PWREx_EnablePVM1(void); +void HAL_PWREx_DisablePVM1(void); +#endif /* PWR_CR2_PVME1 */ +#if defined(PWR_CR2_PVME2) +void HAL_PWREx_EnablePVM2(void); +void HAL_PWREx_DisablePVM2(void); +#endif /* PWR_CR2_PVME2 */ +void HAL_PWREx_EnablePVM3(void); +void HAL_PWREx_DisablePVM3(void); +void HAL_PWREx_EnablePVM4(void); +void HAL_PWREx_DisablePVM4(void); +HAL_StatusTypeDef HAL_PWREx_ConfigPVM(PWR_PVMTypeDef *sConfigPVM); + +/* Low Power modes configuration functions ************************************/ +void HAL_PWREx_EnableLowPowerRunMode(void); +HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void); +void HAL_PWREx_EnterSTOP0Mode(uint8_t STOPEntry); +void HAL_PWREx_EnterSTOP1Mode(uint8_t STOPEntry); +void HAL_PWREx_EnterSHUTDOWNMode(void); + +void HAL_PWREx_PVD_PVM_IRQHandler(void); +#if defined(PWR_CR2_PVME1) +void HAL_PWREx_PVM1Callback(void); +#endif /* PWR_CR2_PVME1 */ +#if defined(PWR_CR2_PVME2) +void HAL_PWREx_PVM2Callback(void); +#endif /* PWR_CR2_PVME2 */ +void HAL_PWREx_PVM3Callback(void); +void HAL_PWREx_PVM4Callback(void); + +#if defined(PWR_CR3_UCPD_STDBY) +void HAL_PWREx_EnableUCPDStandbyMode(void); +void HAL_PWREx_DisableUCPDStandbyMode(void); +#endif /* PWR_CR3_UCPD_STDBY */ +#if defined(PWR_CR3_UCPD_DBDIS) +void HAL_PWREx_EnableUCPDDeadBattery(void); +void HAL_PWREx_DisableUCPDDeadBattery(void); +#endif /* PWR_CR3_UCPD_DBDIS */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32G4xx_HAL_PWR_EX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h new file mode 100644 index 0000000..c8f0773 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h @@ -0,0 +1,3406 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_rcc.h + * @author MCD Application Team + * @brief Header file of RCC HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_RCC_H +#define STM32G4xx_HAL_RCC_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCC + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup RCC_Exported_Types RCC Exported Types + * @{ + */ + +/** + * @brief RCC PLL configuration structure definition + */ +typedef struct +{ + uint32_t PLLState; /*!< The new state of the PLL. + This parameter can be a value of @ref RCC_PLL_Config */ + + uint32_t PLLSource; /*!< RCC_PLLSource: PLL entry clock source. + This parameter must be a value of @ref RCC_PLL_Clock_Source */ + + uint32_t PLLM; /*!< PLLM: Division factor for PLL VCO input clock. + This parameter must be a value of @ref RCC_PLLM_Clock_Divider */ + + uint32_t PLLN; /*!< PLLN: Multiplication factor for PLL VCO output clock. + This parameter must be a number between Min_Data = 8 and Max_Data = 127 */ + + uint32_t PLLP; /*!< PLLP: Division factor for ADC clock. + This parameter must be a value of @ref RCC_PLLP_Clock_Divider */ + + uint32_t PLLQ; /*!< PLLQ: Division factor for SAI, I2S, USB, FDCAN and QUADSPI clocks. + This parameter must be a value of @ref RCC_PLLQ_Clock_Divider */ + + uint32_t PLLR; /*!< PLLR: Division for the main system clock. + User have to set the PLLR parameter correctly to not exceed max frequency 170MHZ. + This parameter must be a value of @ref RCC_PLLR_Clock_Divider */ + +}RCC_PLLInitTypeDef; + +/** + * @brief RCC Internal/External Oscillator (HSE, HSI, LSE and LSI) configuration structure definition + */ +typedef struct +{ + uint32_t OscillatorType; /*!< The oscillators to be configured. + This parameter can be a value of @ref RCC_Oscillator_Type */ + + uint32_t HSEState; /*!< The new state of the HSE. + This parameter can be a value of @ref RCC_HSE_Config */ + + uint32_t LSEState; /*!< The new state of the LSE. + This parameter can be a value of @ref RCC_LSE_Config */ + + uint32_t HSIState; /*!< The new state of the HSI. + This parameter can be a value of @ref RCC_HSI_Config */ + + uint32_t HSICalibrationValue; /*!< The calibration trimming value (default is RCC_HSICALIBRATION_DEFAULT). + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF */ + + uint32_t LSIState; /*!< The new state of the LSI. + This parameter can be a value of @ref RCC_LSI_Config */ + + uint32_t HSI48State; /*!< The new state of the HSI48. + This parameter can be a value of @ref RCC_HSI48_Config */ + + RCC_PLLInitTypeDef PLL; /*!< Main PLL structure parameters */ + +}RCC_OscInitTypeDef; + +/** + * @brief RCC System, AHB and APB busses clock configuration structure definition + */ +typedef struct +{ + uint32_t ClockType; /*!< The clock to be configured. + This parameter can be a value of @ref RCC_System_Clock_Type */ + + uint32_t SYSCLKSource; /*!< The clock source used as system clock (SYSCLK). + This parameter can be a value of @ref RCC_System_Clock_Source */ + + uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK). + This parameter can be a value of @ref RCC_AHB_Clock_Source */ + + uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */ + + uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */ + +}RCC_ClkInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCC_Exported_Constants RCC Exported Constants + * @{ + */ + +/** @defgroup RCC_Timeout_Value Timeout Values + * @{ + */ +#define RCC_DBP_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define RCC_LSE_TIMEOUT_VALUE LSE_STARTUP_TIMEOUT +/** + * @} + */ + +/** @defgroup RCC_Oscillator_Type Oscillator Type + * @{ + */ +#define RCC_OSCILLATORTYPE_NONE 0x00000000U /*!< Oscillator configuration unchanged */ +#define RCC_OSCILLATORTYPE_HSE 0x00000001U /*!< HSE to configure */ +#define RCC_OSCILLATORTYPE_HSI 0x00000002U /*!< HSI to configure */ +#define RCC_OSCILLATORTYPE_LSE 0x00000004U /*!< LSE to configure */ +#define RCC_OSCILLATORTYPE_LSI 0x00000008U /*!< LSI to configure */ +#define RCC_OSCILLATORTYPE_HSI48 0x00000020U /*!< HSI48 to configure */ +/** + * @} + */ + +/** @defgroup RCC_HSE_Config HSE Config + * @{ + */ +#define RCC_HSE_OFF 0x00000000U /*!< HSE clock deactivation */ +#define RCC_HSE_ON RCC_CR_HSEON /*!< HSE clock activation */ +#define RCC_HSE_BYPASS (RCC_CR_HSEBYP | RCC_CR_HSEON) /*!< External clock source for HSE clock */ +/** + * @} + */ + +/** @defgroup RCC_LSE_Config LSE Config + * @{ + */ +#define RCC_LSE_OFF 0x00000000U /*!< LSE clock deactivation */ +#define RCC_LSE_ON RCC_BDCR_LSEON /*!< LSE clock activation */ +#define RCC_LSE_BYPASS (RCC_BDCR_LSEBYP | RCC_BDCR_LSEON) /*!< External clock source for LSE clock */ +/** + * @} + */ + +/** @defgroup RCC_HSI_Config HSI Config + * @{ + */ +#define RCC_HSI_OFF 0x00000000U /*!< HSI clock deactivation */ +#define RCC_HSI_ON RCC_CR_HSION /*!< HSI clock activation */ +#define RCC_HSICALIBRATION_DEFAULT 0x40U /* Default HSI calibration trimming value */ +/** + * @} + */ + +/** @defgroup RCC_LSI_Config LSI Config + * @{ + */ +#define RCC_LSI_OFF 0x00000000U /*!< LSI clock deactivation */ +#define RCC_LSI_ON RCC_CSR_LSION /*!< LSI clock activation */ +/** + * @} + */ + +/** @defgroup RCC_HSI48_Config HSI48 Config + * @{ + */ +#define RCC_HSI48_OFF 0x00000000U /*!< HSI48 clock deactivation */ +#define RCC_HSI48_ON RCC_CRRCR_HSI48ON /*!< HSI48 clock activation */ +/** + * @} + */ + +/** @defgroup RCC_PLL_Config PLL Config + * @{ + */ +#define RCC_PLL_NONE 0x00000000U /*!< PLL configuration unchanged */ +#define RCC_PLL_OFF 0x00000001U /*!< PLL deactivation */ +#define RCC_PLL_ON 0x00000002U /*!< PLL activation */ +/** + * @} + */ + +/** @defgroup RCC_PLLM_Clock_Divider PLLM Clock Divider + * @{ + */ +#define RCC_PLLM_DIV1 0x00000001U /*!< PLLM division factor = 1 */ +#define RCC_PLLM_DIV2 0x00000002U /*!< PLLM division factor = 2 */ +#define RCC_PLLM_DIV3 0x00000003U /*!< PLLM division factor = 3 */ +#define RCC_PLLM_DIV4 0x00000004U /*!< PLLM division factor = 4 */ +#define RCC_PLLM_DIV5 0x00000005U /*!< PLLM division factor = 5 */ +#define RCC_PLLM_DIV6 0x00000006U /*!< PLLM division factor = 6 */ +#define RCC_PLLM_DIV7 0x00000007U /*!< PLLM division factor = 7 */ +#define RCC_PLLM_DIV8 0x00000008U /*!< PLLM division factor = 8 */ +#define RCC_PLLM_DIV9 0x00000009U /*!< PLLM division factor = 9 */ +#define RCC_PLLM_DIV10 0x0000000AU /*!< PLLM division factor = 10 */ +#define RCC_PLLM_DIV11 0x0000000BU /*!< PLLM division factor = 11 */ +#define RCC_PLLM_DIV12 0x0000000CU /*!< PLLM division factor = 12 */ +#define RCC_PLLM_DIV13 0x0000000DU /*!< PLLM division factor = 13 */ +#define RCC_PLLM_DIV14 0x0000000EU /*!< PLLM division factor = 14 */ +#define RCC_PLLM_DIV15 0x0000000FU /*!< PLLM division factor = 15 */ +#define RCC_PLLM_DIV16 0x00000010U /*!< PLLM division factor = 16 */ +/** + * @} + */ + +/** @defgroup RCC_PLLP_Clock_Divider PLLP Clock Divider + * @{ + */ +#define RCC_PLLP_DIV2 0x00000002U /*!< PLLP division factor = 2 */ +#define RCC_PLLP_DIV3 0x00000003U /*!< PLLP division factor = 3 */ +#define RCC_PLLP_DIV4 0x00000004U /*!< PLLP division factor = 4 */ +#define RCC_PLLP_DIV5 0x00000005U /*!< PLLP division factor = 5 */ +#define RCC_PLLP_DIV6 0x00000006U /*!< PLLP division factor = 6 */ +#define RCC_PLLP_DIV7 0x00000007U /*!< PLLP division factor = 7 */ +#define RCC_PLLP_DIV8 0x00000008U /*!< PLLP division factor = 8 */ +#define RCC_PLLP_DIV9 0x00000009U /*!< PLLP division factor = 9 */ +#define RCC_PLLP_DIV10 0x0000000AU /*!< PLLP division factor = 10 */ +#define RCC_PLLP_DIV11 0x0000000BU /*!< PLLP division factor = 11 */ +#define RCC_PLLP_DIV12 0x0000000CU /*!< PLLP division factor = 12 */ +#define RCC_PLLP_DIV13 0x0000000DU /*!< PLLP division factor = 13 */ +#define RCC_PLLP_DIV14 0x0000000EU /*!< PLLP division factor = 14 */ +#define RCC_PLLP_DIV15 0x0000000FU /*!< PLLP division factor = 15 */ +#define RCC_PLLP_DIV16 0x00000010U /*!< PLLP division factor = 16 */ +#define RCC_PLLP_DIV17 0x00000011U /*!< PLLP division factor = 17 */ +#define RCC_PLLP_DIV18 0x00000012U /*!< PLLP division factor = 18 */ +#define RCC_PLLP_DIV19 0x00000013U /*!< PLLP division factor = 19 */ +#define RCC_PLLP_DIV20 0x00000014U /*!< PLLP division factor = 20 */ +#define RCC_PLLP_DIV21 0x00000015U /*!< PLLP division factor = 21 */ +#define RCC_PLLP_DIV22 0x00000016U /*!< PLLP division factor = 22 */ +#define RCC_PLLP_DIV23 0x00000017U /*!< PLLP division factor = 23 */ +#define RCC_PLLP_DIV24 0x00000018U /*!< PLLP division factor = 24 */ +#define RCC_PLLP_DIV25 0x00000019U /*!< PLLP division factor = 25 */ +#define RCC_PLLP_DIV26 0x0000001AU /*!< PLLP division factor = 26 */ +#define RCC_PLLP_DIV27 0x0000001BU /*!< PLLP division factor = 27 */ +#define RCC_PLLP_DIV28 0x0000001CU /*!< PLLP division factor = 28 */ +#define RCC_PLLP_DIV29 0x0000001DU /*!< PLLP division factor = 29 */ +#define RCC_PLLP_DIV30 0x0000001EU /*!< PLLP division factor = 30 */ +#define RCC_PLLP_DIV31 0x0000001FU /*!< PLLP division factor = 31 */ +/** + * @} + */ + +/** @defgroup RCC_PLLQ_Clock_Divider PLLQ Clock Divider + * @{ + */ +#define RCC_PLLQ_DIV2 0x00000002U /*!< PLLQ division factor = 2 */ +#define RCC_PLLQ_DIV4 0x00000004U /*!< PLLQ division factor = 4 */ +#define RCC_PLLQ_DIV6 0x00000006U /*!< PLLQ division factor = 6 */ +#define RCC_PLLQ_DIV8 0x00000008U /*!< PLLQ division factor = 8 */ +/** + * @} + */ + +/** @defgroup RCC_PLLR_Clock_Divider PLLR Clock Divider + * @{ + */ +#define RCC_PLLR_DIV2 0x00000002U /*!< PLLR division factor = 2 */ +#define RCC_PLLR_DIV4 0x00000004U /*!< PLLR division factor = 4 */ +#define RCC_PLLR_DIV6 0x00000006U /*!< PLLR division factor = 6 */ +#define RCC_PLLR_DIV8 0x00000008U /*!< PLLR division factor = 8 */ +/** + * @} + */ + +/** @defgroup RCC_PLL_Clock_Source PLL Clock Source + * @{ + */ +#define RCC_PLLSOURCE_NONE 0x00000000U /*!< No clock selected as PLL entry clock source */ +#define RCC_PLLSOURCE_HSI RCC_PLLCFGR_PLLSRC_HSI /*!< HSI clock selected as PLL entry clock source */ +#define RCC_PLLSOURCE_HSE RCC_PLLCFGR_PLLSRC_HSE /*!< HSE clock selected as PLL entry clock source */ +/** + * @} + */ + +/** @defgroup RCC_PLL_Clock_Output PLL Clock Output + * @{ + */ +#define RCC_PLL_ADCCLK RCC_PLLCFGR_PLLPEN /*!< PLLADCCLK selection from main PLL */ +#define RCC_PLL_48M1CLK RCC_PLLCFGR_PLLQEN /*!< PLL48M1CLK selection from main PLL */ +#define RCC_PLL_SYSCLK RCC_PLLCFGR_PLLREN /*!< PLLCLK selection from main PLL */ +/** + * @} + */ + +/** @defgroup RCC_System_Clock_Type System Clock Type + * @{ + */ +#define RCC_CLOCKTYPE_SYSCLK 0x00000001U /*!< SYSCLK to configure */ +#define RCC_CLOCKTYPE_HCLK 0x00000002U /*!< HCLK to configure */ +#define RCC_CLOCKTYPE_PCLK1 0x00000004U /*!< PCLK1 to configure */ +#define RCC_CLOCKTYPE_PCLK2 0x00000008U /*!< PCLK2 to configure */ +/** + * @} + */ + +/** @defgroup RCC_System_Clock_Source System Clock Source + * @{ + */ +#define RCC_SYSCLKSOURCE_HSI RCC_CFGR_SW_HSI /*!< HSI selection as system clock */ +#define RCC_SYSCLKSOURCE_HSE RCC_CFGR_SW_HSE /*!< HSE selection as system clock */ +#define RCC_SYSCLKSOURCE_PLLCLK RCC_CFGR_SW_PLL /*!< PLL selection as system clock */ +/** + * @} + */ + +/** @defgroup RCC_System_Clock_Source_Status System Clock Source Status + * @{ + */ +#define RCC_SYSCLKSOURCE_STATUS_HSI RCC_CFGR_SWS_HSI /*!< HSI used as system clock */ +#define RCC_SYSCLKSOURCE_STATUS_HSE RCC_CFGR_SWS_HSE /*!< HSE used as system clock */ +#define RCC_SYSCLKSOURCE_STATUS_PLLCLK RCC_CFGR_SWS_PLL /*!< PLL used as system clock */ +/** + * @} + */ + +/** @defgroup RCC_AHB_Clock_Source AHB Clock Source + * @{ + */ +#define RCC_SYSCLK_DIV1 RCC_CFGR_HPRE_DIV1 /*!< SYSCLK not divided */ +#define RCC_SYSCLK_DIV2 RCC_CFGR_HPRE_DIV2 /*!< SYSCLK divided by 2 */ +#define RCC_SYSCLK_DIV4 RCC_CFGR_HPRE_DIV4 /*!< SYSCLK divided by 4 */ +#define RCC_SYSCLK_DIV8 RCC_CFGR_HPRE_DIV8 /*!< SYSCLK divided by 8 */ +#define RCC_SYSCLK_DIV16 RCC_CFGR_HPRE_DIV16 /*!< SYSCLK divided by 16 */ +#define RCC_SYSCLK_DIV64 RCC_CFGR_HPRE_DIV64 /*!< SYSCLK divided by 64 */ +#define RCC_SYSCLK_DIV128 RCC_CFGR_HPRE_DIV128 /*!< SYSCLK divided by 128 */ +#define RCC_SYSCLK_DIV256 RCC_CFGR_HPRE_DIV256 /*!< SYSCLK divided by 256 */ +#define RCC_SYSCLK_DIV512 RCC_CFGR_HPRE_DIV512 /*!< SYSCLK divided by 512 */ +/** + * @} + */ + +/** @defgroup RCC_APB1_APB2_Clock_Source APB1 APB2 Clock Source + * @{ + */ +#define RCC_HCLK_DIV1 RCC_CFGR_PPRE1_DIV1 /*!< HCLK not divided */ +#define RCC_HCLK_DIV2 RCC_CFGR_PPRE1_DIV2 /*!< HCLK divided by 2 */ +#define RCC_HCLK_DIV4 RCC_CFGR_PPRE1_DIV4 /*!< HCLK divided by 4 */ +#define RCC_HCLK_DIV8 RCC_CFGR_PPRE1_DIV8 /*!< HCLK divided by 8 */ +#define RCC_HCLK_DIV16 RCC_CFGR_PPRE1_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_RTC_Clock_Source RTC Clock Source + * @{ + */ +#define RCC_RTCCLKSOURCE_NONE 0x00000000U /*!< No clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_LSE RCC_BDCR_RTCSEL_0 /*!< LSE oscillator clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_LSI RCC_BDCR_RTCSEL_1 /*!< LSI oscillator clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIV32 RCC_BDCR_RTCSEL /*!< HSE oscillator clock divided by 32 used as RTC clock */ +/** + * @} + */ + +/** @defgroup RCC_MCO_Index MCO Index + * @{ + */ +/* 32 28 20 16 0 + -------------------------------- + | MCO | GPIO | GPIO | GPIO | + | Index | AF | Port | Pin | + -------------------------------*/ + +#define RCC_MCO_GPIOPORT_POS 16U +#define RCC_MCO_GPIOPORT_MASK (0xFUL << RCC_MCO_GPIOPORT_POS) +#define RCC_MCO_GPIOAF_POS 20U +#define RCC_MCO_GPIOAF_MASK (0xFFUL << RCC_MCO_GPIOAF_POS) +#define RCC_MCO_INDEX_POS 28U +#define RCC_MCO_INDEX_MASK (0x1UL << RCC_MCO_INDEX_POS) +#define RCC_MCO1_INDEX (0x0UL << RCC_MCO_INDEX_POS) /*!< MCO1 index */ +#define RCC_MCO_PA8 (RCC_MCO1_INDEX | (GPIO_AF0_MCO << RCC_MCO_GPIOAF_POS) | (GPIO_GET_INDEX(GPIOA) << RCC_MCO_GPIOPORT_POS) | GPIO_PIN_8) +#define RCC_MCO_PG10 (RCC_MCO1_INDEX | (GPIO_AF0_MCO << RCC_MCO_GPIOAF_POS) | (GPIO_GET_INDEX(GPIOG) << RCC_MCO_GPIOPORT_POS) | GPIO_PIN_10) + +/* Legacy Defines*/ +#define RCC_MCO1 RCC_MCO_PA8 +#define RCC_MCO RCC_MCO1 /*!< MCO1 to be compliant with other families with 2 MCOs*/ +/** + * @} + */ + +/** @defgroup RCC_MCO1_Clock_Source MCO1 Clock Source + * @{ + */ +#define RCC_MCO1SOURCE_NOCLOCK 0x00000000U /*!< MCO1 output disabled, no clock on MCO1 */ +#define RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCOSEL_0 /*!< SYSCLK selection as MCO1 source */ +#define RCC_MCO1SOURCE_HSI (RCC_CFGR_MCOSEL_0| RCC_CFGR_MCOSEL_1) /*!< HSI selection as MCO1 source */ +#define RCC_MCO1SOURCE_HSE RCC_CFGR_MCOSEL_2 /*!< HSE selection as MCO1 source */ +#define RCC_MCO1SOURCE_PLLCLK (RCC_CFGR_MCOSEL_0|RCC_CFGR_MCOSEL_2) /*!< PLLCLK selection as MCO1 source */ +#define RCC_MCO1SOURCE_LSI (RCC_CFGR_MCOSEL_1|RCC_CFGR_MCOSEL_2) /*!< LSI selection as MCO1 source */ +#define RCC_MCO1SOURCE_LSE (RCC_CFGR_MCOSEL_0|RCC_CFGR_MCOSEL_1|RCC_CFGR_MCOSEL_2) /*!< LSE selection as MCO1 source */ +#define RCC_MCO1SOURCE_HSI48 RCC_CFGR_MCOSEL_3 /*!< HSI48 selection as MCO1 source */ +/** + * @} + */ + +/** @defgroup RCC_MCOx_Clock_Prescaler MCO1 Clock Prescaler + * @{ + */ +#define RCC_MCODIV_1 RCC_CFGR_MCOPRE_DIV1 /*!< MCO not divided */ +#define RCC_MCODIV_2 RCC_CFGR_MCOPRE_DIV2 /*!< MCO divided by 2 */ +#define RCC_MCODIV_4 RCC_CFGR_MCOPRE_DIV4 /*!< MCO divided by 4 */ +#define RCC_MCODIV_8 RCC_CFGR_MCOPRE_DIV8 /*!< MCO divided by 8 */ +#define RCC_MCODIV_16 RCC_CFGR_MCOPRE_DIV16 /*!< MCO divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_Interrupt Interrupts + * @{ + */ +#define RCC_IT_LSIRDY RCC_CIFR_LSIRDYF /*!< LSI Ready Interrupt flag */ +#define RCC_IT_LSERDY RCC_CIFR_LSERDYF /*!< LSE Ready Interrupt flag */ +#define RCC_IT_HSIRDY RCC_CIFR_HSIRDYF /*!< HSI16 Ready Interrupt flag */ +#define RCC_IT_HSERDY RCC_CIFR_HSERDYF /*!< HSE Ready Interrupt flag */ +#define RCC_IT_PLLRDY RCC_CIFR_PLLRDYF /*!< PLL Ready Interrupt flag */ +#define RCC_IT_CSS RCC_CIFR_CSSF /*!< Clock Security System Interrupt flag */ +#define RCC_IT_LSECSS RCC_CIFR_LSECSSF /*!< LSE Clock Security System Interrupt flag */ +#define RCC_IT_HSI48RDY RCC_CIFR_HSI48RDYF /*!< HSI48 Ready Interrupt flag */ +/** + * @} + */ + +/** @defgroup RCC_Flag Flags + * Elements values convention: XXXYYYYYb + * - YYYYY : Flag position in the register + * - XXX : Register index + * - 001: CR register + * - 010: BDCR register + * - 011: CSR register + * - 100: CRRCR register + * @{ + */ +/* Flags in the CR register */ +#define RCC_FLAG_HSIRDY ((CR_REG_INDEX << 5U) | RCC_CR_HSIRDY_Pos) /*!< HSI Ready flag */ +#define RCC_FLAG_HSERDY ((CR_REG_INDEX << 5U) | RCC_CR_HSERDY_Pos) /*!< HSE Ready flag */ +#define RCC_FLAG_PLLRDY ((CR_REG_INDEX << 5U) | RCC_CR_PLLRDY_Pos) /*!< PLL Ready flag */ + +/* Flags in the BDCR register */ +#define RCC_FLAG_LSERDY ((BDCR_REG_INDEX << 5U) | RCC_BDCR_LSERDY_Pos) /*!< LSE Ready flag */ +#define RCC_FLAG_LSECSSD ((BDCR_REG_INDEX << 5U) | RCC_BDCR_LSECSSD_Pos) /*!< LSE Clock Security System Interrupt flag */ + +/* Flags in the CSR register */ +#define RCC_FLAG_LSIRDY ((CSR_REG_INDEX << 5U) | RCC_CSR_LSIRDY_Pos) /*!< LSI Ready flag */ +#define RCC_FLAG_OBLRST ((CSR_REG_INDEX << 5U) | RCC_CSR_OBLRSTF_Pos) /*!< Option Byte Loader reset flag */ +#define RCC_FLAG_PINRST ((CSR_REG_INDEX << 5U) | RCC_CSR_PINRSTF_Pos) /*!< PIN reset flag */ +#define RCC_FLAG_BORRST ((CSR_REG_INDEX << 5U) | RCC_CSR_BORRSTF_Pos) /*!< BOR reset flag */ +#define RCC_FLAG_SFTRST ((CSR_REG_INDEX << 5U) | RCC_CSR_SFTRSTF_Pos) /*!< Software Reset flag */ +#define RCC_FLAG_IWDGRST ((CSR_REG_INDEX << 5U) | RCC_CSR_IWDGRSTF_Pos) /*!< Independent Watchdog reset flag */ +#define RCC_FLAG_WWDGRST ((CSR_REG_INDEX << 5U) | RCC_CSR_WWDGRSTF_Pos) /*!< Window watchdog reset flag */ +#define RCC_FLAG_LPWRRST ((CSR_REG_INDEX << 5U) | RCC_CSR_LPWRRSTF_Pos) /*!< Low-Power reset flag */ + +/* Flags in the CRRCR register */ +#define RCC_FLAG_HSI48RDY ((CRRCR_REG_INDEX << 5U) | RCC_CRRCR_HSI48RDY_Pos) /*!< HSI48 Ready flag */ +/** + * @} + */ + +/** @defgroup RCC_LSEDrive_Config LSE Drive Config + * @{ + */ +#define RCC_LSEDRIVE_LOW 0x00000000U /*!< LSE low drive capability */ +#define RCC_LSEDRIVE_MEDIUMLOW RCC_BDCR_LSEDRV_0 /*!< LSE medium low drive capability */ +#define RCC_LSEDRIVE_MEDIUMHIGH RCC_BDCR_LSEDRV_1 /*!< LSE medium high drive capability */ +#define RCC_LSEDRIVE_HIGH RCC_BDCR_LSEDRV /*!< LSE high drive capability */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ + +/** @defgroup RCC_Exported_Macros RCC Exported Macros + * @{ + */ + +/** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable AHB1 Peripheral Clock Enable Disable + * @brief Enable or disable the AHB1 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_DMA1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_DMA2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA2EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA2EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_DMAMUX1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMAMUX1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMAMUX1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_CORDIC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CORDICEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CORDICEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_FMAC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FMACEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FMACEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_FLASH_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FLASHEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FLASHEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_CRC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CRCEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CRCEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_DMA1_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA1EN) + +#define __HAL_RCC_DMA2_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA2EN) + +#define __HAL_RCC_DMAMUX1_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMAMUX1EN) + +#define __HAL_RCC_CORDIC_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CORDICEN) + +#define __HAL_RCC_FMAC_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FMACEN) + +#define __HAL_RCC_FLASH_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FLASHEN) + +#define __HAL_RCC_CRC_CLK_DISABLE() CLEAR_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CRCEN) + +/** + * @} + */ + +/** @defgroup RCC_AHB2_Peripheral_Clock_Enable_Disable AHB2 Peripheral Clock Enable Disable + * @brief Enable or disable the AHB2 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_GPIOA_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_GPIOB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOBEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOBEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_GPIOC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOCEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOCEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_GPIOD_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_GPIOE_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOEEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOEEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_GPIOF_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOFEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOFEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_GPIOG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOGEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOGEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_ADC12_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC12EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC12EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC345EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC345EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC2EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC2EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC3EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC3EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC4EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC4EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_AESEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_AESEN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* AES */ + +#define __HAL_RCC_RNG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_RNGEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_RNGEN); \ + UNUSED(tmpreg); \ + } while(0) + + +#define __HAL_RCC_GPIOA_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN) + +#define __HAL_RCC_GPIOB_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOBEN) + +#define __HAL_RCC_GPIOC_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOCEN) + +#define __HAL_RCC_GPIOD_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN) + +#define __HAL_RCC_GPIOE_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOEEN) + +#define __HAL_RCC_GPIOF_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOFEN) + +#define __HAL_RCC_GPIOG_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOGEN) + +#define __HAL_RCC_ADC12_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC12EN) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC345EN) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC1EN) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC2EN) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC3EN) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC4EN) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_AESEN); +#endif /* AES */ + +#define __HAL_RCC_RNG_CLK_DISABLE() CLEAR_BIT(RCC->AHB2ENR, RCC_AHB2ENR_RNGEN) + +/** + * @} + */ + +/** @defgroup RCC_AHB3_Clock_Enable_Disable AHB3 Peripheral Clock Enable Disable + * @brief Enable or disable the AHB3 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHB3ENR, RCC_AHB3ENR_QSPIEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_QSPIEN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* QUADSPI */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_CLK_DISABLE() CLEAR_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_CLK_DISABLE() CLEAR_BIT(RCC->AHB3ENR, RCC_AHB3ENR_QSPIEN) +#endif /* QUADSPI */ + +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Enable_Disable APB1 Peripheral Clock Enable Disable + * @brief Enable or disable the APB1 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_TIM2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM2EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM2EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM3EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM3EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM4EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM4EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM5EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM5EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM6EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM6EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM7_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM7EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM7EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_CRS_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_CRSEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_CRSEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_RTCAPB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_RTCAPBEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_RTCAPBEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_WWDG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDGEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDGEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_SPI2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI2EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI2EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_SPI3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI3EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI3EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_USART2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART2EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART2EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_USART3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART3EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART3EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(UART4) +#define __HAL_RCC_UART4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART4EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART4EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART5EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART5EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_I2C2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C2EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C2EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_USB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USBEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USBEN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_FDCANEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_FDCANEN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_I2C3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C3EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C3EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_LPTIM1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR1, RCC_APB1ENR1_LPTIM1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_LPTIM1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_LPUART1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR2, RCC_APB1ENR2_LPUART1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_LPUART1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR2, RCC_APB1ENR2_I2C4EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_I2C4EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR2, RCC_APB1ENR2_UCPD1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_UCPD1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM2_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM2EN) + +#define __HAL_RCC_TIM3_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM3EN) + +#define __HAL_RCC_TIM4_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM4EN) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM5EN) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM6EN) + +#define __HAL_RCC_TIM7_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM7EN) + +#define __HAL_RCC_CRS_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_CRSEN); + +#define __HAL_RCC_RTCAPB_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_RTCAPBEN); + +#define __HAL_RCC_WWDG_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDGEN) + +#define __HAL_RCC_SPI2_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI2EN) + +#define __HAL_RCC_SPI3_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI3EN) + +#define __HAL_RCC_USART2_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART2EN) + +#define __HAL_RCC_USART3_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART3EN) + +#if defined(UART4) +#define __HAL_RCC_UART4_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART4EN) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART5EN) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C1EN) + +#define __HAL_RCC_I2C2_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C2EN) + +#define __HAL_RCC_USB_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USBEN) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_FDCANEN) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN) + +#define __HAL_RCC_I2C3_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C3EN) + +#define __HAL_RCC_LPTIM1_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR1, RCC_APB1ENR1_LPTIM1EN) + +#define __HAL_RCC_LPUART1_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR2, RCC_APB1ENR2_LPUART1EN) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR2, RCC_APB1ENR2_I2C4EN) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_CLK_DISABLE() CLEAR_BIT(RCC->APB1ENR2, RCC_APB1ENR2_UCPD1EN) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Enable_Disable APB2 Peripheral Clock Enable Disable + * @brief Enable or disable the APB2 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_SYSCFG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_SPI1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM8_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM8EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM8EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_USART1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI4EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI4EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM15EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM15EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM16_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM16EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM16EN); \ + UNUSED(tmpreg); \ + } while(0) + +#define __HAL_RCC_TIM17_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM17EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM17EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM20EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM20EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SAI1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SAI1EN); \ + UNUSED(tmpreg); \ + } while(0) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_HRTIM1EN); \ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_HRTIM1EN); \ + UNUSED(tmpreg); \ + } while(0) +#endif /* HRTIM1 */ + +#define __HAL_RCC_SYSCFG_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN) + +#define __HAL_RCC_TIM1_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN) + +#define __HAL_RCC_SPI1_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN) + +#define __HAL_RCC_TIM8_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM8EN) + +#define __HAL_RCC_USART1_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI4EN) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM15EN) + +#define __HAL_RCC_TIM16_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM16EN) + +#define __HAL_RCC_TIM17_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM17EN) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM20EN) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_SAI1EN) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_CLK_DISABLE() CLEAR_BIT(RCC->APB2ENR, RCC_APB2ENR_HRTIM1EN) +#endif /* HRTIM1 */ + +/** + * @} + */ + +/** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable_Status AHB1 Peripheral Clock Enabled or Disabled Status + * @brief Check whether the AHB1 peripheral clock is enabled or not. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_DMA1_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA1EN) != 0U) + +#define __HAL_RCC_DMA2_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA2EN) != 0U) + +#define __HAL_RCC_DMAMUX1_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMAMUX1EN) != 0U) + +#define __HAL_RCC_CORDIC_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CORDICEN) != 0U) + +#define __HAL_RCC_FMAC_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FMACEN) != 0U) + +#define __HAL_RCC_FLASH_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FLASHEN) != 0U) + +#define __HAL_RCC_CRC_IS_CLK_ENABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CRCEN) != 0U) + +#define __HAL_RCC_DMA1_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA1EN) == 0U) + +#define __HAL_RCC_DMA2_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA2EN) == 0U) + +#define __HAL_RCC_DMAMUX1_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMAMUX1EN) == 0U) + +#define __HAL_RCC_CORDIC_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CORDICEN) == 0U) + +#define __HAL_RCC_FMAC_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FMACEN) == 0U) + +#define __HAL_RCC_FLASH_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_FLASHEN) == 0U) + +#define __HAL_RCC_CRC_IS_CLK_DISABLED() (READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_CRCEN) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_AHB2_Clock_Enable_Disable_Status AHB2 Peripheral Clock Enabled or Disabled Status + * @brief Check whether the AHB2 peripheral clock is enabled or not. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_GPIOA_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN) != 0U) + +#define __HAL_RCC_GPIOB_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOBEN) != 0U) + +#define __HAL_RCC_GPIOC_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOCEN) != 0U) + +#define __HAL_RCC_GPIOD_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN) != 0U) + +#define __HAL_RCC_GPIOE_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOEEN) != 0U) + +#define __HAL_RCC_GPIOF_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOFEN) != 0U) + +#define __HAL_RCC_GPIOG_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOGEN) != 0U) + +#define __HAL_RCC_ADC12_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC12EN) != 0U) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC345EN) != 0U) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC1EN) != 0U) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC2EN) != 0U) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC3EN) != 0U) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC4EN) != 0U) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_AESEN) != 0U) +#endif /* AES */ + +#define __HAL_RCC_RNG_IS_CLK_ENABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_RNGEN) != 0U) + + +#define __HAL_RCC_GPIOA_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN) == 0U) + +#define __HAL_RCC_GPIOB_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOBEN) == 0U) + +#define __HAL_RCC_GPIOC_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOCEN) == 0U) + +#define __HAL_RCC_GPIOD_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIODEN) == 0U) + +#define __HAL_RCC_GPIOE_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOEEN) == 0U) + +#define __HAL_RCC_GPIOF_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOFEN) == 0U) + +#define __HAL_RCC_GPIOG_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOGEN) == 0U) + +#define __HAL_RCC_ADC12_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC12EN) == 0U) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC345EN) == 0U) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC1EN) == 0U) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC2EN) == 0U) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC3EN) == 0U) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_DAC4EN) == 0U) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_AESEN) == 0U) +#endif /* AES */ + +#define __HAL_RCC_RNG_IS_CLK_DISABLED() (READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_RNGEN) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_AHB3_Clock_Enable_Disable_Status AHB3 Peripheral Clock Enabled or Disabled Status + * @brief Check whether the AHB3 peripheral clock is enabled or not. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_IS_CLK_ENABLED() (READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN) != 0U) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_IS_CLK_ENABLED() (READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_QSPIEN) != 0U) +#endif /* QUADSPI */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_IS_CLK_DISABLED() (READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN) == 0U) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_IS_CLK_DISABLED() (READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_QSPIEN) == 0U) +#endif /* QUADSPI */ + +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Enable_Disable_Status APB1 Peripheral Clock Enabled or Disabled Status + * @brief Check whether the APB1 peripheral clock is enabled or not. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_TIM2_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM2EN) != 0U) + +#define __HAL_RCC_TIM3_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM3EN) != 0U) + +#define __HAL_RCC_TIM4_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM4EN) != 0U) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM5EN) != 0U) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM6EN) != 0U) + +#define __HAL_RCC_TIM7_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM7EN) != 0U) + +#define __HAL_RCC_CRS_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_CRSEN) != 0U) + +#define __HAL_RCC_RTCAPB_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_RTCAPBEN) != 0U) + +#define __HAL_RCC_WWDG_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDGEN) != 0U) + +#define __HAL_RCC_SPI2_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI2EN) != 0U) + +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI3EN) != 0U) + +#define __HAL_RCC_USART2_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART2EN) != 0U) + +#define __HAL_RCC_USART3_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART3EN) != 0U) + +#if defined(UART4) +#define __HAL_RCC_UART4_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART4EN) != 0U) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART5EN) != 0U) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C1EN) != 0U) + +#define __HAL_RCC_I2C2_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C2EN) != 0U) + +#define __HAL_RCC_USB_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USBEN) != 0U) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_FDCANEN) != 0U) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN) != 0U) + +#define __HAL_RCC_I2C3_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C3EN) != 0U) + +#define __HAL_RCC_LPTIM1_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_LPTIM1EN) != 0U) + +#define __HAL_RCC_LPUART1_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_LPUART1EN) != 0U) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_I2C4EN) != 0U) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_IS_CLK_ENABLED() (READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_UCPD1EN) != 0U) + +#define __HAL_RCC_TIM2_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM2EN) == 0U) + +#define __HAL_RCC_TIM3_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM3EN) == 0U) + +#define __HAL_RCC_TIM4_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM4EN) == 0U) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM5EN) == 0U) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM6EN) == 0U) + +#define __HAL_RCC_TIM7_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_TIM7EN) == 0U) + +#define __HAL_RCC_CRS_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_CRSEN) == 0U) + +#define __HAL_RCC_RTCAPB_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_RTCAPBEN) == 0U) + +#define __HAL_RCC_WWDG_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_WWDGEN) == 0U) + +#define __HAL_RCC_SPI2_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI2EN) == 0U) + +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_SPI3EN) == 0U) + +#define __HAL_RCC_USART2_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART2EN) == 0U) + +#define __HAL_RCC_USART3_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USART3EN) == 0U) + +#if defined(UART4) +#define __HAL_RCC_UART4_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART4EN) == 0U) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_UART5EN) == 0U) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C1EN) == 0U) + +#define __HAL_RCC_I2C2_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C2EN) == 0U) + +#if defined(USB) +#define __HAL_RCC_USB_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_USBEN) == 0U) +#endif /* USB */ + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_FDCANEN) == 0U) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_PWREN) == 0U) + +#define __HAL_RCC_I2C3_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_I2C3EN) == 0U) + +#define __HAL_RCC_LPTIM1_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR1, RCC_APB1ENR1_LPTIM1EN) == 0U) + +#define __HAL_RCC_LPUART1_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_LPUART1EN) == 0U) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_I2C4EN) == 0U) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_IS_CLK_DISABLED() (READ_BIT(RCC->APB1ENR2, RCC_APB1ENR2_UCPD1EN) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Enable_Disable_Status APB2 Peripheral Clock Enabled or Disabled Status + * @brief Check whether the APB2 peripheral clock is enabled or not. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_SYSCFG_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN) != 0U) + +#define __HAL_RCC_TIM1_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN) != 0U) + +#define __HAL_RCC_SPI1_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN) != 0U) + +#define __HAL_RCC_TIM8_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM8EN) != 0U) + +#define __HAL_RCC_USART1_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN) != 0U) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI4EN) != 0U) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM15EN) != 0U) + +#define __HAL_RCC_TIM16_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM16EN) != 0U) + +#define __HAL_RCC_TIM17_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM17EN) != 0U) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM20EN) != 0U) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SAI1EN) != 0U) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_IS_CLK_ENABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_HRTIM1EN) != 0U) +#endif /* HRTIM1 */ + + +#define __HAL_RCC_SYSCFG_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN) == 0U) + +#define __HAL_RCC_TIM1_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN) == 0U) + +#define __HAL_RCC_SPI1_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN) == 0U) + +#define __HAL_RCC_TIM8_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM8EN) == 0U) + +#define __HAL_RCC_USART1_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN) == 0U) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI4EN) == 0U) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM15EN) == 0U) + +#define __HAL_RCC_TIM16_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM16EN) == 0U) + +#define __HAL_RCC_TIM17_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM17EN) == 0U) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM20EN) == 0U) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SAI1EN) == 0U) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_IS_CLK_DISABLED() (READ_BIT(RCC->APB2ENR, RCC_APB2ENR_HRTIM1EN) == 0U) +#endif /* HRTIM1 */ + +/** + * @} + */ + +/** @defgroup RCC_AHB1_Force_Release_Reset AHB1 Peripheral Force Release Reset + * @brief Force or release AHB1 peripheral reset. + * @{ + */ +#define __HAL_RCC_AHB1_FORCE_RESET() WRITE_REG(RCC->AHB1RSTR, 0xFFFFFFFFU) + +#define __HAL_RCC_DMA1_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_DMA1RST) + +#define __HAL_RCC_DMA2_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_DMA2RST) + +#define __HAL_RCC_DMAMUX1_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_DMAMUX1RST) + +#define __HAL_RCC_CORDIC_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_CORDICRST) + +#define __HAL_RCC_FMAC_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_FMACRST) + +#define __HAL_RCC_FLASH_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_FLASHRST) + +#define __HAL_RCC_CRC_FORCE_RESET() SET_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_CRCRST) + + +#define __HAL_RCC_AHB1_RELEASE_RESET() WRITE_REG(RCC->AHB1RSTR, 0x00000000U) + +#define __HAL_RCC_DMA1_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_DMA1RST) + +#define __HAL_RCC_DMA2_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_DMA2RST) + +#define __HAL_RCC_DMAMUX1_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_DMAMUX1RST) + +#define __HAL_RCC_CORDIC_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_CORDICRST) + +#define __HAL_RCC_FMAC_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_FMACRST) + +#define __HAL_RCC_FLASH_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_FLASHRST) + +#define __HAL_RCC_CRC_RELEASE_RESET() CLEAR_BIT(RCC->AHB1RSTR, RCC_AHB1RSTR_CRCRST) + +/** + * @} + */ + +/** @defgroup RCC_AHB2_Force_Release_Reset AHB2 Peripheral Force Release Reset + * @brief Force or release AHB2 peripheral reset. + * @{ + */ +#define __HAL_RCC_AHB2_FORCE_RESET() WRITE_REG(RCC->AHB2RSTR, 0xFFFFFFFFU) + +#define __HAL_RCC_GPIOA_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOARST) + +#define __HAL_RCC_GPIOB_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOBRST) + +#define __HAL_RCC_GPIOC_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOCRST) + +#define __HAL_RCC_GPIOD_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIODRST) + +#define __HAL_RCC_GPIOE_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOERST) + +#define __HAL_RCC_GPIOF_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOFRST) + +#define __HAL_RCC_GPIOG_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOGRST) + +#define __HAL_RCC_ADC12_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_ADC12RST) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_ADC345RST) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC1RST) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC2RST) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC3RST) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC4RST) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_AESRST) +#endif /* AES */ + +#define __HAL_RCC_RNG_FORCE_RESET() SET_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_RNGRST) + + +#define __HAL_RCC_AHB2_RELEASE_RESET() WRITE_REG(RCC->AHB2RSTR, 0x00000000U) + +#define __HAL_RCC_GPIOA_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOARST) + +#define __HAL_RCC_GPIOB_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOBRST) + +#define __HAL_RCC_GPIOC_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOCRST) + +#define __HAL_RCC_GPIOD_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIODRST) + +#define __HAL_RCC_GPIOE_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOERST) + +#define __HAL_RCC_GPIOF_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOFRST) + +#define __HAL_RCC_GPIOG_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_GPIOGRST) + +#define __HAL_RCC_ADC12_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_ADC12RST) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_ADC345RST) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC1RST) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC2RST) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC3RST) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_DAC4RST) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_AESRST) +#endif /* AES */ + +#define __HAL_RCC_RNG_RELEASE_RESET() CLEAR_BIT(RCC->AHB2RSTR, RCC_AHB2RSTR_RNGRST) + +/** + * @} + */ + +/** @defgroup RCC_AHB3_Force_Release_Reset AHB3 Peripheral Force Release Reset + * @brief Force or release AHB3 peripheral reset. + * @{ + */ +#define __HAL_RCC_AHB3_FORCE_RESET() WRITE_REG(RCC->AHB3RSTR, 0xFFFFFFFFU) + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_FORCE_RESET() SET_BIT(RCC->AHB3RSTR, RCC_AHB3RSTR_FMCRST) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_FORCE_RESET() SET_BIT(RCC->AHB3RSTR, RCC_AHB3RSTR_QSPIRST) +#endif /* QUADSPI */ + +#define __HAL_RCC_AHB3_RELEASE_RESET() WRITE_REG(RCC->AHB3RSTR, 0x00000000U) + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_RELEASE_RESET() CLEAR_BIT(RCC->AHB3RSTR, RCC_AHB3RSTR_FMCRST) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_RELEASE_RESET() CLEAR_BIT(RCC->AHB3RSTR, RCC_AHB3RSTR_QSPIRST) +#endif /* QUADSPI */ + +/** + * @} + */ + +/** @defgroup RCC_APB1_Force_Release_Reset APB1 Peripheral Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB1_FORCE_RESET() WRITE_REG(RCC->APB1RSTR1, 0xFFFFFFFFU) + +#define __HAL_RCC_TIM2_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM2RST) + +#define __HAL_RCC_TIM3_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM3RST) + +#define __HAL_RCC_TIM4_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM4RST) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM5RST) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM6RST) + +#define __HAL_RCC_TIM7_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM7RST) + +#define __HAL_RCC_CRS_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_CRSRST) + +#define __HAL_RCC_SPI2_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_SPI2RST) + +#define __HAL_RCC_SPI3_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_SPI3RST) + +#define __HAL_RCC_USART2_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_USART2RST) + +#define __HAL_RCC_USART3_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_USART3RST) + +#if defined(UART4) +#define __HAL_RCC_UART4_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_UART4RST) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_UART5RST) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_I2C1RST) + +#define __HAL_RCC_I2C2_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_I2C2RST) + +#define __HAL_RCC_USB_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_USBRST) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_FDCANRST) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_PWRRST) + +#define __HAL_RCC_I2C3_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_I2C3RST) + +#define __HAL_RCC_LPTIM1_FORCE_RESET() SET_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_LPTIM1RST) + +#define __HAL_RCC_LPUART1_FORCE_RESET() SET_BIT(RCC->APB1RSTR2, RCC_APB1RSTR2_LPUART1RST) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_FORCE_RESET() SET_BIT(RCC->APB1RSTR2, RCC_APB1RSTR2_I2C4RST) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_FORCE_RESET() SET_BIT(RCC->APB1RSTR2, RCC_APB1RSTR2_UCPD1RST) + +#define __HAL_RCC_APB1_RELEASE_RESET() WRITE_REG(RCC->APB1RSTR1, 0x00000000U) + +#define __HAL_RCC_TIM2_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM2RST) + +#define __HAL_RCC_TIM3_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM3RST) + +#define __HAL_RCC_TIM4_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM4RST) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM5RST) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM6RST) + +#define __HAL_RCC_TIM7_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_TIM7RST) + +#define __HAL_RCC_CRS_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_CRSRST) + +#define __HAL_RCC_SPI2_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_SPI2RST) + +#define __HAL_RCC_SPI3_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_SPI3RST) + +#define __HAL_RCC_USART2_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_USART2RST) + +#define __HAL_RCC_USART3_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_USART3RST) + +#if defined(UART4) +#define __HAL_RCC_UART4_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_UART4RST) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_UART5RST) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_I2C1RST) + +#define __HAL_RCC_I2C2_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_I2C2RST) + +#define __HAL_RCC_USB_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_USBRST) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_FDCANRST) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_PWRRST) + +#define __HAL_RCC_I2C3_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_I2C3RST) + +#define __HAL_RCC_LPTIM1_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR1, RCC_APB1RSTR1_LPTIM1RST) + +#define __HAL_RCC_LPUART1_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR2, RCC_APB1RSTR2_LPUART1RST) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR2, RCC_APB1RSTR2_I2C4RST) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_RELEASE_RESET() CLEAR_BIT(RCC->APB1RSTR2, RCC_APB1RSTR2_UCPD1RST) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Force_Release_Reset APB2 Peripheral Force Release Reset + * @brief Force or release APB2 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB2_FORCE_RESET() WRITE_REG(RCC->APB2RSTR, 0xFFFFFFFFU) + +#define __HAL_RCC_SYSCFG_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SYSCFGRST) + +#define __HAL_RCC_TIM1_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM1RST) + +#define __HAL_RCC_SPI1_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SPI1RST) + +#define __HAL_RCC_TIM8_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM8RST) + +#define __HAL_RCC_USART1_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_USART1RST) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SPI4RST) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM15RST) + +#define __HAL_RCC_TIM16_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM16RST) + +#define __HAL_RCC_TIM17_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM17RST) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM20RST) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SAI1RST) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_FORCE_RESET() SET_BIT(RCC->APB2RSTR, RCC_APB2RSTR_HRTIM1RST) +#endif /* HRTIM1 */ + + +#define __HAL_RCC_APB2_RELEASE_RESET() WRITE_REG(RCC->APB2RSTR, 0x00000000U) + +#define __HAL_RCC_SYSCFG_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SYSCFGRST) + +#define __HAL_RCC_TIM1_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM1RST) + +#define __HAL_RCC_SPI1_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SPI1RST) + +#define __HAL_RCC_TIM8_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM8RST) + +#define __HAL_RCC_USART1_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_USART1RST) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SPI4RST) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM15RST) + +#define __HAL_RCC_TIM16_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM16RST) + +#define __HAL_RCC_TIM17_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM17RST) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_TIM20RST) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_SAI1RST) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_RELEASE_RESET() CLEAR_BIT(RCC->APB2RSTR, RCC_APB2RSTR_HRTIM1RST) +#endif /* HRTIM1 */ + +/** + * @} + */ + +/** @defgroup RCC_AHB1_Clock_Sleep_Enable_Disable AHB1 Peripheral Clock Sleep Enable Disable + * @brief Enable or disable the AHB1 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_DMA1_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA1SMEN) + +#define __HAL_RCC_DMA2_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA2SMEN) + +#define __HAL_RCC_DMAMUX1_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMAMUX1SMEN) + +#define __HAL_RCC_CORDIC_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CORDICSMEN) + +#define __HAL_RCC_FMAC_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FMACSMEN) + +#define __HAL_RCC_FLASH_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FLASHSMEN) + +#define __HAL_RCC_SRAM1_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_SRAM1SMEN) + +#define __HAL_RCC_CRC_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CRCSMEN) + + +#define __HAL_RCC_DMA1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA1SMEN) + +#define __HAL_RCC_DMA2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA2SMEN) + +#define __HAL_RCC_DMAMUX1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMAMUX1SMEN) + +#define __HAL_RCC_CORDIC_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CORDICSMEN) + +#define __HAL_RCC_FMAC_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FMACSMEN) + +#define __HAL_RCC_FLASH_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FLASHSMEN) + +#define __HAL_RCC_SRAM1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_SRAM1SMEN) + +#define __HAL_RCC_CRC_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CRCSMEN) + +/** + * @} + */ + +/** @defgroup RCC_AHB2_Clock_Sleep_Enable_Disable AHB2 Peripheral Clock Sleep Enable Disable + * @brief Enable or disable the AHB2 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_GPIOA_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOASMEN) + +#define __HAL_RCC_GPIOB_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOBSMEN) + +#define __HAL_RCC_GPIOC_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOCSMEN) + +#define __HAL_RCC_GPIOD_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIODSMEN) + +#define __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOESMEN) + +#define __HAL_RCC_GPIOF_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOFSMEN) + +#define __HAL_RCC_GPIOG_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOGSMEN) + +#define __HAL_RCC_SRAM2_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_SRAM2SMEN) + +#define __HAL_RCC_CCM_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_CCMSRAMSMEN) + +#define __HAL_RCC_ADC12_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC12SMEN) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC345SMEN) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC1SMEN) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC2SMEN) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC3SMEN) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC4SMEN) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_AESSMEN) +#endif /* AES */ + +#define __HAL_RCC_RNG_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_RNGSMEN) + + +#define __HAL_RCC_GPIOA_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOASMEN) + +#define __HAL_RCC_GPIOB_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOBSMEN) + +#define __HAL_RCC_GPIOC_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOCSMEN) + +#define __HAL_RCC_GPIOD_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIODSMEN) + +#define __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOESMEN) + +#define __HAL_RCC_GPIOF_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOFSMEN) + +#define __HAL_RCC_GPIOG_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOGSMEN) + +#define __HAL_RCC_SRAM2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_SRAM2SMEN) + +#define __HAL_RCC_CCM_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_CCMSRAMSMEN) + +#define __HAL_RCC_ADC12_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC12SMEN) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC345SMEN) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC1SMEN) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC2SMEN) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC3SMEN) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC4SMEN) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_AESSMEN) +#endif /* AES */ + +#define __HAL_RCC_RNG_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_RNGSMEN) + +/** + * @} + */ + +/** @defgroup RCC_AHB3_Clock_Sleep_Enable_Disable AHB3 Peripheral Clock Sleep Enable Disable + * @brief Enable or disable the AHB3 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_FMCSMEN) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_CLK_SLEEP_ENABLE() SET_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_QSPISMEN) +#endif /* QUADSPI */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_FMCSMEN) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_QSPISMEN) +#endif /* QUADSPI */ + +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Sleep_Enable_Disable APB1 Peripheral Clock Sleep Enable Disable + * @brief Enable or disable the APB1 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_TIM2_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM2SMEN) + +#define __HAL_RCC_TIM3_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM3SMEN) + +#define __HAL_RCC_TIM4_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM4SMEN) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM5SMEN) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM6SMEN) + +#define __HAL_RCC_TIM7_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM7SMEN) + +#define __HAL_RCC_CRS_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_CRSSMEN) + +#define __HAL_RCC_RTCAPB_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_RTCAPBSMEN) + +#define __HAL_RCC_WWDG_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_WWDGSMEN) + +#define __HAL_RCC_SPI2_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI2SMEN) + +#define __HAL_RCC_SPI3_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI3SMEN) + +#define __HAL_RCC_USART2_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART2SMEN) + +#define __HAL_RCC_USART3_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART3SMEN) + +#if defined(UART4) +#define __HAL_RCC_UART4_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART4SMEN) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART5SMEN) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C1SMEN) + +#define __HAL_RCC_I2C2_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C2SMEN) + +#if defined(USB) +#define __HAL_RCC_USB_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USBSMEN) +#endif /* USB */ + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_FDCANSMEN) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_PWRSMEN) + +#define __HAL_RCC_I2C3_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C3SMEN) + +#define __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LPTIM1SMEN) + +#define __HAL_RCC_LPUART1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPUART1SMEN) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_I2C4SMEN) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_UCPD1SMEN) + + +#define __HAL_RCC_TIM2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM2SMEN) + +#define __HAL_RCC_TIM3_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM3SMEN) + +#define __HAL_RCC_TIM4_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM4SMEN) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM5SMEN) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM6SMEN) + +#define __HAL_RCC_TIM7_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM7SMEN) + +#define __HAL_RCC_CRS_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_CRSSMEN) + +#define __HAL_RCC_RTCAPB_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_RTCAPBSMEN) + +#define __HAL_RCC_WWDG_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_WWDGSMEN) + +#define __HAL_RCC_SPI2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI2SMEN) + +#define __HAL_RCC_SPI3_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI3SMEN) + +#define __HAL_RCC_USART2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART2SMEN) + +#define __HAL_RCC_USART3_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART3SMEN) + +#if defined(UART4) +#define __HAL_RCC_UART4_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART4SMEN) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART5SMEN) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C1SMEN) + +#define __HAL_RCC_I2C2_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C2SMEN) + +#if defined(USB) +#define __HAL_RCC_USB_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USBSMEN) +#endif /* USB */ + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_FDCANSMEN) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_PWRSMEN) + +#define __HAL_RCC_I2C3_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C3SMEN) + +#define __HAL_RCC_LPTIM1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LPTIM1SMEN) + +#define __HAL_RCC_LPUART1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPUART1SMEN) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_I2C4SMEN) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_UCPD1SMEN) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Sleep_Enable_Disable APB2 Peripheral Clock Sleep Enable Disable + * @brief Enable or disable the APB2 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_SYSCFG_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SYSCFGSMEN) + +#define __HAL_RCC_TIM1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM1SMEN) + +#define __HAL_RCC_SPI1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI1SMEN) + +#define __HAL_RCC_TIM8_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM8SMEN) + +#define __HAL_RCC_USART1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_USART1SMEN) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI4SMEN) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM15SMEN) + +#define __HAL_RCC_TIM16_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM16SMEN) + +#define __HAL_RCC_TIM17_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM17SMEN) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM20SMEN) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SAI1SMEN) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_CLK_SLEEP_ENABLE() SET_BIT(RCC->APB2SMENR, RCC_APB2SMENR_HRTIM1SMEN) +#endif /* HRTIM1 */ + + +#define __HAL_RCC_SYSCFG_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SYSCFGSMEN) + +#define __HAL_RCC_TIM1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM1SMEN) + +#define __HAL_RCC_SPI1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI1SMEN) + +#define __HAL_RCC_TIM8_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM8SMEN) + +#define __HAL_RCC_USART1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_USART1SMEN) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI4SMEN) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM15SMEN) + +#define __HAL_RCC_TIM16_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM16SMEN) + +#define __HAL_RCC_TIM17_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM17SMEN) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM20SMEN) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SAI1SMEN) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_CLK_SLEEP_DISABLE() CLEAR_BIT(RCC->APB2SMENR, RCC_APB2SMENR_HRTIM1SMEN) +#endif /* HRTIM1 */ + +/** + * @} + */ + +/** @defgroup RCC_AHB1_Clock_Sleep_Enable_Disable_Status AHB1 Peripheral Clock Sleep Enabled or Disabled Status + * @brief Check whether the AHB1 peripheral clock during Low Power (Sleep) mode is enabled or not. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_DMA1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA1SMEN) != 0U) + +#define __HAL_RCC_DMA2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA2SMEN) != 0U) + +#define __HAL_RCC_DMAMUX1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMAMUX1SMEN) != 0U) + +#define __HAL_RCC_CORDIC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CORDICSMEN) != 0U) + +#define __HAL_RCC_FMAC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FMACSMEN) != 0U) + +#define __HAL_RCC_FLASH_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FLASHSMEN) != 0U) + +#define __HAL_RCC_SRAM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_SRAM1SMEN) != 0U) + +#define __HAL_RCC_CRC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CRCSMEN) != 0U) + + +#define __HAL_RCC_DMA1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA1SMEN) == 0U) + +#define __HAL_RCC_DMA2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA2SMEN) == 0U) + +#define __HAL_RCC_DMAMUX1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMAMUX1SMEN) == 0U) + +#define __HAL_RCC_CORDIC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CORDICSMEN) == 0U) + +#define __HAL_RCC_FMAC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FMACSMEN) == 0U) + +#define __HAL_RCC_FLASH_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_FLASHSMEN) == 0U) + +#define __HAL_RCC_SRAM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_SRAM1SMEN) == 0U) + +#define __HAL_RCC_CRC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CRCSMEN) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_AHB2_Clock_Sleep_Enable_Disable_Status AHB2 Peripheral Clock Sleep Enabled or Disabled Status + * @brief Check whether the AHB2 peripheral clock during Low Power (Sleep) mode is enabled or not. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_GPIOA_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOASMEN) != 0U) + +#define __HAL_RCC_GPIOB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOBSMEN) != 0U) + +#define __HAL_RCC_GPIOC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOCSMEN) != 0U) + +#define __HAL_RCC_GPIOD_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIODSMEN) != 0U) + +#define __HAL_RCC_GPIOE_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOESMEN) != 0U) + +#define __HAL_RCC_GPIOF_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOFSMEN) != 0U) + +#define __HAL_RCC_GPIOG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOGSMEN) != 0U) + +#define __HAL_RCC_SRAM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_SRAM2SMEN) != 0U) + +#define __HAL_RCC_CCM_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_CCMSRAMSMEN) != 0U) + +#define __HAL_RCC_ADC12_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC12SMEN) != 0U) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC345SMEN) != 0U) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC1SMEN) != 0U) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC2SMEN) != 0U) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC3SMEN) != 0U) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC4SMEN) != 0U) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_AESSMEN) != 0U) +#endif /* AES */ + +#define __HAL_RCC_RNG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_RNGSMEN) != 0U) + + +#define __HAL_RCC_GPIOA_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOASMEN) == 0U) + +#define __HAL_RCC_GPIOB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOBSMEN) == 0U) + +#define __HAL_RCC_GPIOC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOCSMEN) == 0U) + +#define __HAL_RCC_GPIOD_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIODSMEN) == 0U) + +#define __HAL_RCC_GPIOE_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOESMEN) == 0U) + +#define __HAL_RCC_GPIOF_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOFSMEN) == 0U) + +#define __HAL_RCC_GPIOG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOGSMEN) == 0U) + +#define __HAL_RCC_SRAM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_SRAM2SMEN) == 0U) + +#define __HAL_RCC_CCM_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_CCMSRAMSMEN) == 0U) + +#define __HAL_RCC_ADC12_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC12SMEN) == 0U) + +#if defined(ADC345_COMMON) +#define __HAL_RCC_ADC345_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADC345SMEN) == 0U) +#endif /* ADC345_COMMON */ + +#define __HAL_RCC_DAC1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC1SMEN) == 0U) + +#if defined(DAC2) +#define __HAL_RCC_DAC2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC2SMEN) == 0U) +#endif /* DAC2 */ + +#define __HAL_RCC_DAC3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC3SMEN) == 0U) + +#if defined(DAC4) +#define __HAL_RCC_DAC4_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_DAC4SMEN) == 0U) +#endif /* DAC4 */ + +#if defined(AES) +#define __HAL_RCC_AES_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_AESSMEN) == 0U) +#endif /* AES */ + +#define __HAL_RCC_RNG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_RNGSMEN) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_AHB3_Clock_Sleep_Enable_Disable_Status AHB3 Peripheral Clock Sleep Enabled or Disabled Status + * @brief Check whether the AHB3 peripheral clock during Low Power (Sleep) mode is enabled or not. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_FMCSMEN) != 0U) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_QSPISMEN) != 0U) +#endif /* QUADSPI */ + +#if defined(FMC_BANK1) +#define __HAL_RCC_FMC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_FMCSMEN) == 0U) +#endif /* FMC_BANK1 */ + +#if defined(QUADSPI) +#define __HAL_RCC_QSPI_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_QSPISMEN) == 0U) +#endif /* QUADSPI */ + +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Sleep_Enable_Disable_Status APB1 Peripheral Clock Sleep Enabled or Disabled Status + * @brief Check whether the APB1 peripheral clock during Low Power (Sleep) mode is enabled or not. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_TIM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM2SMEN) != 0U) + +#define __HAL_RCC_TIM3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM3SMEN) != 0U) + +#define __HAL_RCC_TIM4_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM4SMEN) != 0U) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM5SMEN) != 0U) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM6SMEN) != 0U) + +#define __HAL_RCC_TIM7_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM7SMEN) != 0U) + +#define __HAL_RCC_CRS_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_CRSSMEN) != 0U) + +#define __HAL_RCC_RTCAPB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_RTCAPBSMEN) != 0U) + +#define __HAL_RCC_WWDG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_WWDGSMEN) != 0U) + +#define __HAL_RCC_SPI2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI2SMEN) != 0U) + +#define __HAL_RCC_SPI3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI3SMEN) != 0U) + +#define __HAL_RCC_USART2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART2SMEN) != 0U) + +#define __HAL_RCC_USART3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART3SMEN) != 0U) + +#if defined(UART4) +#define __HAL_RCC_UART4_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART4SMEN) != 0U) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART5SMEN) != 0U) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C1SMEN) != 0U) + +#define __HAL_RCC_I2C2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C2SMEN) != 0U) + +#define __HAL_RCC_USB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USBSMEN) != 0U) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_FDCANSMEN) != 0U) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_PWRSMEN) != 0U) + +#define __HAL_RCC_I2C3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C3SMEN) != 0U) + +#define __HAL_RCC_LPTIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LPTIM1SMEN) != 0U) + +#define __HAL_RCC_LPUART1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPUART1SMEN) != 0U) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_I2C4SMEN) != 0U) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_UCPD1SMEN) != 0U) + + +#define __HAL_RCC_TIM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM2SMEN) == 0U) + +#define __HAL_RCC_TIM3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM3SMEN) == 0U) + +#define __HAL_RCC_TIM4_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM4SMEN) == 0U) + +#if defined(TIM5) +#define __HAL_RCC_TIM5_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM5SMEN) == 0U) +#endif /* TIM5 */ + +#define __HAL_RCC_TIM6_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM6SMEN) == 0U) + +#define __HAL_RCC_TIM7_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM7SMEN) == 0U) + +#define __HAL_RCC_CRS_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_CRSSMEN) == 0U) + +#define __HAL_RCC_RTCAPB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_RTCAPBSMEN) == 0U) + +#define __HAL_RCC_WWDG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_WWDGSMEN) == 0U) + +#define __HAL_RCC_SPI2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI2SMEN) == 0U) + +#define __HAL_RCC_SPI3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI3SMEN) == 0U) + +#define __HAL_RCC_USART2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART2SMEN) == 0U) + +#define __HAL_RCC_USART3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USART3SMEN) == 0U) + +#if defined(UART4) +#define __HAL_RCC_UART4_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART4SMEN) == 0U) +#endif /* UART4 */ + +#if defined(UART5) +#define __HAL_RCC_UART5_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_UART5SMEN) == 0U) +#endif /* UART5 */ + +#define __HAL_RCC_I2C1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C1SMEN) == 0U) + +#define __HAL_RCC_I2C2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C2SMEN) == 0U) + +#define __HAL_RCC_USB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USBSMEN) == 0U) + +#if defined(FDCAN1) +#define __HAL_RCC_FDCAN_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_FDCANSMEN) == 0U) +#endif /* FDCAN1 */ + +#define __HAL_RCC_PWR_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_PWRSMEN) == 0U) + +#define __HAL_RCC_I2C3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C3SMEN) == 0U) + +#define __HAL_RCC_LPTIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LPTIM1SMEN) == 0U) + +#define __HAL_RCC_LPUART1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPUART1SMEN) == 0U) + +#if defined(I2C4) +#define __HAL_RCC_I2C4_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_I2C4SMEN) == 0U) +#endif /* I2C4 */ + +#define __HAL_RCC_UCPD1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_UCPD1SMEN) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Sleep_Enable_Disable_Status APB2 Peripheral Clock Sleep Enabled or Disabled Status + * @brief Check whether the APB2 peripheral clock during Low Power (Sleep) mode is enabled or not. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_SYSCFG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SYSCFGSMEN) != 0U) + +#define __HAL_RCC_TIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM1SMEN) != 0U) + +#define __HAL_RCC_SPI1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI1SMEN) != 0U) + +#define __HAL_RCC_TIM8_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM8SMEN) != 0U) + +#define __HAL_RCC_USART1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_USART1SMEN) != 0U) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI4SMEN) != 0U) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM15SMEN) != 0U) + +#define __HAL_RCC_TIM16_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM16SMEN) != 0U) + +#define __HAL_RCC_TIM17_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM17SMEN) != 0U) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM20SMEN) != 0U) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SAI1SMEN) != 0U) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_HRTIM1SMEN) != 0U) +#endif /* HRTIM1 */ + + +#define __HAL_RCC_SYSCFG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SYSCFGSMEN) == 0U) + +#define __HAL_RCC_TIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM1SMEN) == 0U) + +#define __HAL_RCC_SPI1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI1SMEN) == 0U) + +#define __HAL_RCC_TIM8_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM8SMEN) == 0U) + +#define __HAL_RCC_USART1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_USART1SMEN) == 0U) + +#if defined(SPI4) +#define __HAL_RCC_SPI4_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI4SMEN) == 0U) +#endif /* SPI4 */ + +#define __HAL_RCC_TIM15_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM15SMEN) == 0U) + +#define __HAL_RCC_TIM16_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM16SMEN) == 0U) + +#define __HAL_RCC_TIM17_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM17SMEN) == 0U) + +#if defined(TIM20) +#define __HAL_RCC_TIM20_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM20SMEN) == 0U) +#endif /* TIM20 */ + +#define __HAL_RCC_SAI1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SAI1SMEN) == 0U) + +#if defined(HRTIM1) +#define __HAL_RCC_HRTIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_HRTIM1SMEN) == 0U) +#endif /* HRTIM1 */ + + +/** + * @} + */ + +/** @defgroup RCC_Backup_Domain_Reset RCC Backup Domain Reset + * @{ + */ + +/** @brief Macros to force or release the Backup domain reset. + * @note This function resets the RTC peripheral (including the backup registers) + * and the RTC clock source selection in RCC_CSR register. + * @note The BKPSRAM is not affected by this reset. + * @retval None + */ +#define __HAL_RCC_BACKUPRESET_FORCE() SET_BIT(RCC->BDCR, RCC_BDCR_BDRST) + +#define __HAL_RCC_BACKUPRESET_RELEASE() CLEAR_BIT(RCC->BDCR, RCC_BDCR_BDRST) + +/** + * @} + */ + +/** @defgroup RCC_RTC_Clock_Configuration RCC RTC Clock Configuration + * @{ + */ + +/** @brief Macros to enable or disable the RTC clock. + * @note As the RTC is in the Backup domain and write access is denied to + * this domain after reset, you have to enable write access using + * HAL_PWR_EnableBkUpAccess() function before to configure the RTC + * (to be done once after reset). + * @note These macros must be used after the RTC clock source was selected. + * @retval None + */ +#define __HAL_RCC_RTC_ENABLE() SET_BIT(RCC->BDCR, RCC_BDCR_RTCEN) + +#define __HAL_RCC_RTC_DISABLE() CLEAR_BIT(RCC->BDCR, RCC_BDCR_RTCEN) + +/** + * @} + */ + +/** @brief Macros to enable or disable the Internal High Speed 16MHz oscillator (HSI). + * @note The HSI is stopped by hardware when entering STOP and STANDBY modes. + * It is used (enabled by hardware) as system clock source after startup + * from Reset, wakeup from STOP and STANDBY mode, or in case of failure + * of the HSE used directly or indirectly as system clock (if the Clock + * Security System CSS is enabled). + * @note HSI can not be stopped if it is used as system clock source. In this case, + * you have to select another source of the system clock then stop the HSI. + * @note After enabling the HSI, the application software should wait on HSIRDY + * flag to be set indicating that HSI clock is stable and can be used as + * system clock source. + * This parameter can be: ENABLE or DISABLE. + * @note When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator + * clock cycles. + * @retval None + */ +#define __HAL_RCC_HSI_ENABLE() SET_BIT(RCC->CR, RCC_CR_HSION) + +#define __HAL_RCC_HSI_DISABLE() CLEAR_BIT(RCC->CR, RCC_CR_HSION) + +/** @brief Macro to adjust the Internal High Speed 16MHz oscillator (HSI) calibration value. + * @note The calibration is used to compensate for the variations in voltage + * and temperature that influence the frequency of the internal HSI RC. + * @param __HSICALIBRATIONVALUE__ specifies the calibration trimming value + * (default is RCC_HSICALIBRATION_DEFAULT). + * This parameter must be a number between 0 and 0x7F. + * @retval None + */ +#define __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(__HSICALIBRATIONVALUE__) \ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSITRIM, (__HSICALIBRATIONVALUE__) << RCC_ICSCR_HSITRIM_Pos) + +/** + * @brief Macros to enable or disable the force of the Internal High Speed oscillator (HSI) + * in STOP mode to be quickly available as kernel clock for USARTs and I2Cs. + * @note Keeping the HSI ON in STOP mode allows to avoid slowing down the communication + * speed because of the HSI startup time. + * @note The enable of this function has not effect on the HSION bit. + * This parameter can be: ENABLE or DISABLE. + * @retval None + */ +#define __HAL_RCC_HSISTOP_ENABLE() SET_BIT(RCC->CR, RCC_CR_HSIKERON) + +#define __HAL_RCC_HSISTOP_DISABLE() CLEAR_BIT(RCC->CR, RCC_CR_HSIKERON) + +/** @brief Macros to enable or disable the Internal Low Speed oscillator (LSI). + * @note After enabling the LSI, the application software should wait on + * LSIRDY flag to be set indicating that LSI clock is stable and can + * be used to clock the IWDG and/or the RTC. + * @note LSI can not be disabled if the IWDG is running. + * @note When the LSI is stopped, LSIRDY flag goes low after 6 LSI oscillator + * clock cycles. + * @retval None + */ +#define __HAL_RCC_LSI_ENABLE() SET_BIT(RCC->CSR, RCC_CSR_LSION) + +#define __HAL_RCC_LSI_DISABLE() CLEAR_BIT(RCC->CSR, RCC_CSR_LSION) + +/** + * @brief Macro to configure the External High Speed oscillator (HSE). + * @note Transition HSE Bypass to HSE On and HSE On to HSE Bypass are not + * supported by this macro. User should request a transition to HSE Off + * first and then HSE On or HSE Bypass. + * @note After enabling the HSE (RCC_HSE_ON or RCC_HSE_Bypass), the application + * software should wait on HSERDY flag to be set indicating that HSE clock + * is stable and can be used to clock the PLL and/or system clock. + * @note HSE state can not be changed if it is used directly or through the + * PLL as system clock. In this case, you have to select another source + * of the system clock then change the HSE state (ex. disable it). + * @note The HSE is stopped by hardware when entering STOP and STANDBY modes. + * @note This function reset the CSSON bit, so if the clock security system(CSS) + * was previously enabled you have to enable it again after calling this + * function. + * @param __STATE__ specifies the new state of the HSE. + * This parameter can be one of the following values: + * @arg @ref RCC_HSE_OFF Turn OFF the HSE oscillator, HSERDY flag goes low after + * 6 HSE oscillator clock cycles. + * @arg @ref RCC_HSE_ON Turn ON the HSE oscillator. + * @arg @ref RCC_HSE_BYPASS HSE oscillator bypassed with external clock. + * @retval None + */ +#define __HAL_RCC_HSE_CONFIG(__STATE__) \ + do { \ + if((__STATE__) == RCC_HSE_ON) \ + { \ + SET_BIT(RCC->CR, RCC_CR_HSEON); \ + } \ + else if((__STATE__) == RCC_HSE_BYPASS) \ + { \ + SET_BIT(RCC->CR, RCC_CR_HSEBYP); \ + SET_BIT(RCC->CR, RCC_CR_HSEON); \ + } \ + else \ + { \ + CLEAR_BIT(RCC->CR, RCC_CR_HSEON); \ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); \ + } \ + } while(0) + +/** + * @brief Macro to configure the External Low Speed oscillator (LSE). + * @note Transitions LSE Bypass to LSE On and LSE On to LSE Bypass are not + * supported by this macro. User should request a transition to LSE Off + * first and then LSE On or LSE Bypass. + * @note As the LSE is in the Backup domain and write access is denied to + * this domain after reset, you have to enable write access using + * HAL_PWR_EnableBkUpAccess() function before to configure the LSE + * (to be done once after reset). + * @note After enabling the LSE (RCC_LSE_ON or RCC_LSE_BYPASS), the application + * software should wait on LSERDY flag to be set indicating that LSE clock + * is stable and can be used to clock the RTC. + * @param __STATE__ specifies the new state of the LSE. + * This parameter can be one of the following values: + * @arg @ref RCC_LSE_OFF Turn OFF the LSE oscillator, LSERDY flag goes low after + * 6 LSE oscillator clock cycles. + * @arg @ref RCC_LSE_ON Turn ON the LSE oscillator. + * @arg @ref RCC_LSE_BYPASS LSE oscillator bypassed with external clock. + * @retval None + */ +#define __HAL_RCC_LSE_CONFIG(__STATE__) \ + do { \ + if((__STATE__) == RCC_LSE_ON) \ + { \ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEON); \ + } \ + else if((__STATE__) == RCC_LSE_BYPASS) \ + { \ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); \ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEON); \ + } \ + else \ + { \ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); \ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); \ + } \ + } while(0) + +/** @brief Macros to enable or disable the Internal High Speed 48MHz oscillator (HSI48). + * @note The HSI48 is stopped by hardware when entering STOP and STANDBY modes. + * @note After enabling the HSI48, the application software should wait on HSI48RDY + * flag to be set indicating that HSI48 clock is stable. + * This parameter can be: ENABLE or DISABLE. + * @retval None + */ +#define __HAL_RCC_HSI48_ENABLE() SET_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON) + +#define __HAL_RCC_HSI48_DISABLE() CLEAR_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON) + +/** @brief Macros to configure the RTC clock (RTCCLK). + * @note As the RTC clock configuration bits are in the Backup domain and write + * access is denied to this domain after reset, you have to enable write + * access using the Power Backup Access macro before to configure + * the RTC clock source (to be done once after reset). + * @note Once the RTC clock is configured it cannot be changed unless the + * Backup domain is reset using __HAL_RCC_BACKUPRESET_FORCE() macro, or by + * a Power On Reset (POR). + * + * @param __RTC_CLKSOURCE__ specifies the RTC clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_RTCCLKSOURCE_NONE No clock selected as RTC clock. + * @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock. + * @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock. + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV32 HSE clock divided by 32 selected + * + * @note If the LSE or LSI is used as RTC clock source, the RTC continues to + * work in STOP and STANDBY modes, and can be used as wakeup source. + * However, when the HSE clock is used as RTC clock source, the RTC + * cannot be used in STOP and STANDBY modes. + * @note The maximum input clock frequency for RTC is 1MHz (when using HSE as + * RTC clock source). + * @retval None + */ +#define __HAL_RCC_RTC_CONFIG(__RTC_CLKSOURCE__) \ + MODIFY_REG( RCC->BDCR, RCC_BDCR_RTCSEL, (__RTC_CLKSOURCE__)) + + +/** @brief Macro to get the RTC clock source. + * @retval The returned value can be one of the following: + * @arg @ref RCC_RTCCLKSOURCE_NONE No clock selected as RTC clock. + * @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock. + * @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock. + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV32 HSE clock divided by 32 selected + */ +#define __HAL_RCC_GET_RTC_SOURCE() (READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL)) + +/** @brief Macros to enable or disable the main PLL. + * @note After enabling the main PLL, the application software should wait on + * PLLRDY flag to be set indicating that PLL clock is stable and can + * be used as system clock source. + * @note The main PLL can not be disabled if it is used as system clock source + * @note The main PLL is disabled by hardware when entering STOP and STANDBY modes. + * @retval None + */ +#define __HAL_RCC_PLL_ENABLE() SET_BIT(RCC->CR, RCC_CR_PLLON) + +#define __HAL_RCC_PLL_DISABLE() CLEAR_BIT(RCC->CR, RCC_CR_PLLON) + +/** @brief Macro to configure the PLL clock source. + * @note This function must be used only when the main PLL is disabled. + * @param __PLLSOURCE__ specifies the PLL entry clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_PLLSOURCE_NONE No clock selected as PLL clock entry + * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry + * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry + * @retval None + * + */ +#define __HAL_RCC_PLL_PLLSOURCE_CONFIG(__PLLSOURCE__) \ + MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, (__PLLSOURCE__)) + +/** @brief Macro to configure the PLL source division factor M. + * @note This function must be used only when the main PLL is disabled. + * @param __PLLM__ specifies the division factor for PLL VCO input clock + * This parameter must be a value of @ref RCC_PLLM_Clock_Divider. + * @note You have to set the PLLM parameter correctly to ensure that the VCO input + * frequency ranges from 2.66 to 8 MHz. It is recommended to select a frequency + * of 8 MHz to limit PLL jitter. + * @retval None + * + */ +#define __HAL_RCC_PLL_PLLM_CONFIG(__PLLM__) \ + MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, ((__PLLM__) - 1) << RCC_PLLCFGR_PLLM_Pos) + +/** + * @brief Macro to configure the main PLL clock source, multiplication and division factors. + * @note This macro must be used only when the main PLL is disabled. + * @note This macro preserves the PLL's output clocks enable state. + * + * @param __PLLSOURCE__ specifies the PLL entry clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_PLLSOURCE_NONE No clock selected as PLL clock entry + * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry + * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry + * + * @param __PLLM__ specifies the division factor for PLL VCO input clock. + * This parameter must be a value of @ref RCC_PLLM_Clock_Divider + * @note You have to set the PLLM parameter correctly to ensure that the VCO input + * frequency ranges from 2.66 to 8 MHz. It is recommended to select a frequency + * of 8 MHz to limit PLL jitter. + * + * @param __PLLN__ specifies the multiplication factor for PLL VCO output clock. + * This parameter must be a number between 8 and 127. + * @note You have to set the PLLN parameter correctly to ensure that the VCO + * output frequency is between 64 and 344 MHz. + * + * @param __PLLP__ specifies the division factor for SAI clock. + * This parameter must be a number in the range (2 to 31). + * + * @param __PLLQ__ specifies the division factor for OTG FS, SDMMC1 and RNG clocks. + * This parameter must be in the range (2, 4, 6 or 8). + * @note If the USB OTG FS is used in your application, you have to set the + * PLLQ parameter correctly to have 48 MHz clock for the USB. However, + * the SDMMC1 and RNG need a frequency lower than or equal to 48 MHz to work + * correctly. + * @param __PLLR__ specifies the division factor for the main system clock. + * @note You have to set the PLLR parameter correctly to not exceed 170MHZ. + * This parameter must be in the range (2, 4, 6 or 8). + * @retval None + */ +#define __HAL_RCC_PLL_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP__, __PLLQ__,__PLLR__ ) \ + MODIFY_REG(RCC->PLLCFGR, \ + (RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | \ + RCC_PLLCFGR_PLLQ | RCC_PLLCFGR_PLLR | RCC_PLLCFGR_PLLPDIV), \ + ((__PLLSOURCE__) | \ + (((__PLLM__) - 1U) << RCC_PLLCFGR_PLLM_Pos) | \ + ((__PLLN__) << RCC_PLLCFGR_PLLN_Pos) | \ + ((((__PLLQ__) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos) | \ + ((((__PLLR__) >> 1U) - 1U) << RCC_PLLCFGR_PLLR_Pos) | \ + ((__PLLP__) << RCC_PLLCFGR_PLLPDIV_Pos))) + +/** @brief Macro to get the oscillator used as PLL clock source. + * @retval The oscillator used as PLL clock source. The returned value can be one + * of the following: + * - RCC_PLLSOURCE_NONE: No oscillator is used as PLL clock source. + * - RCC_PLLSOURCE_HSI: HSI oscillator is used as PLL clock source. + * - RCC_PLLSOURCE_HSE: HSE oscillator is used as PLL clock source. + */ +#define __HAL_RCC_GET_PLL_OSCSOURCE() (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC)) + +/** + * @brief Enable or disable each clock output (RCC_PLL_SYSCLK, RCC_PLL_48M1CLK, RCC_PLL_ADCCLK) + * @note Enabling/disabling clock outputs RCC_PLL_ADCCLK and RCC_PLL_48M1CLK can be done at anytime + * without the need to stop the PLL in order to save power. But RCC_PLL_SYSCLK cannot + * be stopped if used as System Clock. + * @param __PLLCLOCKOUT__ specifies the PLL clock to be output. + * This parameter can be one or a combination of the following values: + * @arg @ref RCC_PLL_ADCCLK This clock is used to generate a clock on ADC. + * @arg @ref RCC_PLL_48M1CLK This Clock is used to generate the clock for the USB (48 MHz), + * FDCAN (<=48 MHz) and QSPI (<=48 MHz). + * @arg @ref RCC_PLL_SYSCLK This Clock is used to generate the high speed system clock (up to 170MHz) + * @retval None + */ +#define __HAL_RCC_PLLCLKOUT_ENABLE(__PLLCLOCKOUT__) SET_BIT(RCC->PLLCFGR, (__PLLCLOCKOUT__)) + +#define __HAL_RCC_PLLCLKOUT_DISABLE(__PLLCLOCKOUT__) CLEAR_BIT(RCC->PLLCFGR, (__PLLCLOCKOUT__)) + +/** + * @brief Get clock output enable status (RCC_PLL_SYSCLK, RCC_PLL_48M1CLK, RCC_PLL_SAI3CLK) + * @param __PLLCLOCKOUT__ specifies the output PLL clock to be checked. + * This parameter can be one of the following values: + * @arg @ref RCC_PLL_ADCCLK This clock is used to generate a clock on ADC. + * @arg @ref RCC_PLL_48M1CLK This Clock is used to generate the clock for the USB (48 MHz), + * FDCAN (<=48 MHz) and QSPI (<=48 MHz). + * @arg @ref RCC_PLL_SYSCLK This Clock is used to generate the high speed system clock (up to 170MHz) + * @retval SET / RESET + */ +#define __HAL_RCC_GET_PLLCLKOUT_CONFIG(__PLLCLOCKOUT__) READ_BIT(RCC->PLLCFGR, (__PLLCLOCKOUT__)) + +/** + * @brief Macro to configure the system clock source. + * @param __SYSCLKSOURCE__ specifies the system clock source. + * This parameter can be one of the following values: + * - RCC_SYSCLKSOURCE_HSI: HSI oscillator is used as system clock source. + * - RCC_SYSCLKSOURCE_HSE: HSE oscillator is used as system clock source. + * - RCC_SYSCLKSOURCE_PLLCLK: PLL output is used as system clock source. + * @retval None + */ +#define __HAL_RCC_SYSCLK_CONFIG(__SYSCLKSOURCE__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, (__SYSCLKSOURCE__)) + +/** @brief Macro to get the clock source used as system clock. + * @retval The clock source used as system clock. The returned value can be one + * of the following: + * - RCC_SYSCLKSOURCE_STATUS_HSI: HSI used as system clock. + * - RCC_SYSCLKSOURCE_STATUS_HSE: HSE used as system clock. + * - RCC_SYSCLKSOURCE_STATUS_PLLCLK: PLL used as system clock. + */ +#define __HAL_RCC_GET_SYSCLK_SOURCE() (READ_BIT(RCC->CFGR, RCC_CFGR_SWS)) + +/** + * @brief Macro to configure the External Low Speed oscillator (LSE) drive capability. + * @note As the LSE is in the Backup domain and write access is denied to + * this domain after reset, you have to enable write access using + * HAL_PWR_EnableBkUpAccess() function before to configure the LSE + * (to be done once after reset). + * @param __LSEDRIVE__ specifies the new state of the LSE drive capability. + * This parameter can be one of the following values: + * @arg @ref RCC_LSEDRIVE_LOW LSE oscillator low drive capability. + * @arg @ref RCC_LSEDRIVE_MEDIUMLOW LSE oscillator medium low drive capability. + * @arg @ref RCC_LSEDRIVE_MEDIUMHIGH LSE oscillator medium high drive capability. + * @arg @ref RCC_LSEDRIVE_HIGH LSE oscillator high drive capability. + * @retval None + */ +#define __HAL_RCC_LSEDRIVE_CONFIG(__LSEDRIVE__) \ + MODIFY_REG(RCC->BDCR, RCC_BDCR_LSEDRV, (__LSEDRIVE__)) + +/** @brief Macro to configure the MCO clock. + * @param __MCOCLKSOURCE__ specifies the MCO clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1SOURCE_NOCLOCK MCO output disabled + * @arg @ref RCC_MCO1SOURCE_SYSCLK System clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_HSI HSI clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_HSE HSE clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLLCLK Main PLL clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_LSI LSI clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_LSE LSE clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_HSI48 HSI48 clock selected as MCO source for devices with HSI48 + * @param __MCODIV__ specifies the MCO clock prescaler. + * This parameter can be one of the following values: + * @arg @ref RCC_MCODIV_1 MCO clock source is divided by 1 + * @arg @ref RCC_MCODIV_2 MCO clock source is divided by 2 + * @arg @ref RCC_MCODIV_4 MCO clock source is divided by 4 + * @arg @ref RCC_MCODIV_8 MCO clock source is divided by 8 + * @arg @ref RCC_MCODIV_16 MCO clock source is divided by 16 + */ +#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \ + MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE), ((__MCOCLKSOURCE__) | (__MCODIV__))) + +/** @defgroup RCC_Flags_Interrupts_Management Flags Interrupts Management + * @brief macros to manage the specified RCC Flags and interrupts. + * @{ + */ + +/** @brief Enable RCC interrupt (Perform Byte access to RCC_CIR[14:8] bits to enable + * the selected interrupts). + * @param __INTERRUPT__ specifies the RCC interrupt sources to be enabled. + * This parameter can be any combination of the following values: + * @arg @ref RCC_IT_LSIRDY LSI ready interrupt + * @arg @ref RCC_IT_LSERDY LSE ready interrupt + * @arg @ref RCC_IT_HSIRDY HSI ready interrupt + * @arg @ref RCC_IT_HSERDY HSE ready interrupt + * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt + * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt + * @arg @ref RCC_IT_HSI48RDY HSI48 ready interrupt for devices with HSI48 + * @retval None + */ +#define __HAL_RCC_ENABLE_IT(__INTERRUPT__) SET_BIT(RCC->CIER, (__INTERRUPT__)) + +/** @brief Disable RCC interrupt (Perform Byte access to RCC_CIR[14:8] bits to disable + * the selected interrupts). + * @param __INTERRUPT__ specifies the RCC interrupt sources to be disabled. + * This parameter can be any combination of the following values: + * @arg @ref RCC_IT_LSIRDY LSI ready interrupt + * @arg @ref RCC_IT_LSERDY LSE ready interrupt + * @arg @ref RCC_IT_HSIRDY HSI ready interrupt + * @arg @ref RCC_IT_HSERDY HSE ready interrupt + * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt + * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt + * @arg @ref RCC_IT_HSI48RDY HSI48 ready interrupt for devices with HSI48 + * @retval None + */ +#define __HAL_RCC_DISABLE_IT(__INTERRUPT__) CLEAR_BIT(RCC->CIER, (__INTERRUPT__)) + +/** @brief Clear the RCC's interrupt pending bits (Perform Byte access to RCC_CIR[23:16] + * bits to clear the selected interrupt pending bits. + * @param __INTERRUPT__ specifies the interrupt pending bit to clear. + * This parameter can be any combination of the following values: + * @arg @ref RCC_IT_LSIRDY LSI ready interrupt + * @arg @ref RCC_IT_LSERDY LSE ready interrupt + * @arg @ref RCC_IT_HSIRDY HSI ready interrupt + * @arg @ref RCC_IT_HSERDY HSE ready interrupt + * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt + * @arg @ref RCC_IT_CSS HSE Clock security system interrupt + * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt + * @arg @ref RCC_IT_HSI48RDY HSI48 ready interrupt for devices with HSI48 + * @retval None + */ +#define __HAL_RCC_CLEAR_IT(__INTERRUPT__) (RCC->CICR = (__INTERRUPT__)) + +/** @brief Check whether the RCC interrupt has occurred or not. + * @param __INTERRUPT__ specifies the RCC interrupt source to check. + * This parameter can be one of the following values: + * @arg @ref RCC_IT_LSIRDY LSI ready interrupt + * @arg @ref RCC_IT_LSERDY LSE ready interrupt + * @arg @ref RCC_IT_HSIRDY HSI ready interrupt + * @arg @ref RCC_IT_HSERDY HSE ready interrupt + * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt + * @arg @ref RCC_IT_CSS HSE Clock security system interrupt + * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt + * @arg @ref RCC_IT_HSI48RDY HSI48 ready interrupt for devices with HSI48 + * @retval The new state of __INTERRUPT__ (TRUE or FALSE). + */ +#define __HAL_RCC_GET_IT(__INTERRUPT__) ((RCC->CIFR & (__INTERRUPT__)) == (__INTERRUPT__)) + +/** @brief Set RMVF bit to clear the reset flags. + * The reset flags are: RCC_FLAG_FWRRST, RCC_FLAG_OBLRST, RCC_FLAG_PINRST, RCC_FLAG_BORRST, + * RCC_FLAG_SFTRST, RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST and RCC_FLAG_LPWRRST. + * @retval None + */ +#define __HAL_RCC_CLEAR_RESET_FLAGS() (RCC->CSR |= RCC_CSR_RMVF) + +/** @brief Check whether the selected RCC flag is set or not. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg @ref RCC_FLAG_HSIRDY HSI oscillator clock ready + * @arg @ref RCC_FLAG_HSERDY HSE oscillator clock ready + * @arg @ref RCC_FLAG_PLLRDY Main PLL clock ready + * @arg @ref RCC_FLAG_HSI48RDY HSI48 clock ready for devices with HSI48 + * @arg @ref RCC_FLAG_LSERDY LSE oscillator clock ready + * @arg @ref RCC_FLAG_LSECSSD Clock security system failure on LSE oscillator detection + * @arg @ref RCC_FLAG_LSIRDY LSI oscillator clock ready + * @arg @ref RCC_FLAG_BORRST BOR reset + * @arg @ref RCC_FLAG_OBLRST OBLRST reset + * @arg @ref RCC_FLAG_PINRST Pin reset + * @arg @ref RCC_FLAG_SFTRST Software reset + * @arg @ref RCC_FLAG_IWDGRST Independent Watchdog reset + * @arg @ref RCC_FLAG_WWDGRST Window Watchdog reset + * @arg @ref RCC_FLAG_LPWRRST Low Power reset + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_RCC_GET_FLAG(__FLAG__) (((((((__FLAG__) >> 5U) == 1U) ? RCC->CR : \ + ((((__FLAG__) >> 5U) == 4U) ? RCC->CRRCR : \ + ((((__FLAG__) >> 5U) == 2U) ? RCC->BDCR : \ + ((((__FLAG__) >> 5U) == 3U) ? RCC->CSR : RCC->CIFR)))) & \ + ((uint32_t)1U << ((__FLAG__) & RCC_FLAG_MASK))) != 0U) \ + ? 1U : 0U) + +/** + * @} + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @addtogroup RCC_Private_Constants + * @{ + */ +/* Defines used for Flags */ +#define CR_REG_INDEX 1U +#define BDCR_REG_INDEX 2U +#define CSR_REG_INDEX 3U +#define CRRCR_REG_INDEX 4U + +#define RCC_FLAG_MASK 0x1FU + +/* Define used for IS_RCC_CLOCKTYPE() */ +#define RCC_CLOCKTYPE_ALL (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2) /*!< All clcoktype to configure */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @addtogroup RCC_Private_Macros + * @{ + */ + +#define IS_RCC_OSCILLATORTYPE(__OSCILLATOR__) (((__OSCILLATOR__) == RCC_OSCILLATORTYPE_NONE) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSI48) == RCC_OSCILLATORTYPE_HSI48) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)) + +#define IS_RCC_HSE(__HSE__) (((__HSE__) == RCC_HSE_OFF) || ((__HSE__) == RCC_HSE_ON) || \ + ((__HSE__) == RCC_HSE_BYPASS)) + +#define IS_RCC_LSE(__LSE__) (((__LSE__) == RCC_LSE_OFF) || ((__LSE__) == RCC_LSE_ON) || \ + ((__LSE__) == RCC_LSE_BYPASS)) + +#define IS_RCC_HSI(__HSI__) (((__HSI__) == RCC_HSI_OFF) || ((__HSI__) == RCC_HSI_ON)) + +#define IS_RCC_HSI_CALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= (RCC_ICSCR_HSITRIM >> RCC_ICSCR_HSITRIM_Pos)) + +#define IS_RCC_LSI(__LSI__) (((__LSI__) == RCC_LSI_OFF) || ((__LSI__) == RCC_LSI_ON)) + +#define IS_RCC_HSI48(__HSI48__) (((__HSI48__) == RCC_HSI48_OFF) || ((__HSI48__) == RCC_HSI48_ON)) + +#define IS_RCC_PLL(__PLL__) (((__PLL__) == RCC_PLL_NONE) ||((__PLL__) == RCC_PLL_OFF) || \ + ((__PLL__) == RCC_PLL_ON)) + +#define IS_RCC_PLLSOURCE(__SOURCE__) (((__SOURCE__) == RCC_PLLSOURCE_NONE) || \ + ((__SOURCE__) == RCC_PLLSOURCE_HSI) || \ + ((__SOURCE__) == RCC_PLLSOURCE_HSE)) + +#define IS_RCC_PLLM_VALUE(__VALUE__) ((1U <= (__VALUE__)) && ((__VALUE__) <= 16U)) + +#define IS_RCC_PLLN_VALUE(__VALUE__) ((8U <= (__VALUE__)) && ((__VALUE__) <= 127U)) + +#define IS_RCC_PLLP_VALUE(__VALUE__) (((__VALUE__) >= 2U) && ((__VALUE__) <= 31U)) + +#define IS_RCC_PLLQ_VALUE(__VALUE__) (((__VALUE__) == 2U) || ((__VALUE__) == 4U) || \ + ((__VALUE__) == 6U) || ((__VALUE__) == 8U)) + +#define IS_RCC_PLLR_VALUE(__VALUE__) (((__VALUE__) == 2U) || ((__VALUE__) == 4U) || \ + ((__VALUE__) == 6U) || ((__VALUE__) == 8U)) + +#define IS_RCC_CLOCKTYPE(__CLK__) ((((__CLK__) & RCC_CLOCKTYPE_ALL) != 0x00UL) && (((__CLK__) & ~RCC_CLOCKTYPE_ALL) == 0x00UL)) + +#define IS_RCC_SYSCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_SYSCLKSOURCE_HSI) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_HSE) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_PLLCLK)) + +#define IS_RCC_HCLK(__HCLK__) (((__HCLK__) == RCC_SYSCLK_DIV1) || ((__HCLK__) == RCC_SYSCLK_DIV2) || \ + ((__HCLK__) == RCC_SYSCLK_DIV4) || ((__HCLK__) == RCC_SYSCLK_DIV8) || \ + ((__HCLK__) == RCC_SYSCLK_DIV16) || ((__HCLK__) == RCC_SYSCLK_DIV64) || \ + ((__HCLK__) == RCC_SYSCLK_DIV128) || ((__HCLK__) == RCC_SYSCLK_DIV256) || \ + ((__HCLK__) == RCC_SYSCLK_DIV512)) + +#define IS_RCC_PCLK(__PCLK__) (((__PCLK__) == RCC_HCLK_DIV1) || ((__PCLK__) == RCC_HCLK_DIV2) || \ + ((__PCLK__) == RCC_HCLK_DIV4) || ((__PCLK__) == RCC_HCLK_DIV8) || \ + ((__PCLK__) == RCC_HCLK_DIV16)) + +#define IS_RCC_RTCCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_RTCCLKSOURCE_NONE) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSI) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV32)) + +#define IS_RCC_MCO(__MCOX__) (((__MCOX__) == RCC_MCO_PA8) || \ + ((__MCOX__) == RCC_MCO_PG10)) + +#define IS_RCC_MCO1SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO1SOURCE_NOCLOCK) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_HSI) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_HSE) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_PLLCLK) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_LSI) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_LSE) || \ + ((__SOURCE__) == RCC_MCO1SOURCE_HSI48)) + +#define IS_RCC_MCODIV(__DIV__) (((__DIV__) == RCC_MCODIV_1) || ((__DIV__) == RCC_MCODIV_2) || \ + ((__DIV__) == RCC_MCODIV_4) || ((__DIV__) == RCC_MCODIV_8) || \ + ((__DIV__) == RCC_MCODIV_16)) + +#define IS_RCC_LSE_DRIVE(__DRIVE__) (((__DRIVE__) == RCC_LSEDRIVE_LOW) || \ + ((__DRIVE__) == RCC_LSEDRIVE_MEDIUMLOW) || \ + ((__DRIVE__) == RCC_LSEDRIVE_MEDIUMHIGH) || \ + ((__DRIVE__) == RCC_LSEDRIVE_HIGH)) + +/** + * @} + */ + +/* Include RCC HAL Extended module */ +#include "stm32g4xx_hal_rcc_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup RCC_Exported_Functions + * @{ + */ + + +/** @addtogroup RCC_Exported_Functions_Group1 + * @{ + */ + +/* Initialization and de-initialization functions ******************************/ +HAL_StatusTypeDef HAL_RCC_DeInit(void); +HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct); +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency); + +/** + * @} + */ + +/** @addtogroup RCC_Exported_Functions_Group2 + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv); +void HAL_RCC_EnableCSS(void); +void HAL_RCC_EnableLSECSS(void); +void HAL_RCC_DisableLSECSS(void); +uint32_t HAL_RCC_GetSysClockFreq(void); +uint32_t HAL_RCC_GetHCLKFreq(void); +uint32_t HAL_RCC_GetPCLK1Freq(void); +uint32_t HAL_RCC_GetPCLK2Freq(void); +void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct); +void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency); +/* CSS NMI IRQ handler */ +void HAL_RCC_NMI_IRQHandler(void); +/* User Callbacks in non blocking mode (IT mode) */ +void HAL_RCC_CSSCallback(void); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_RCC_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h new file mode 100644 index 0000000..115e625 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h @@ -0,0 +1,1646 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_rcc_ex.h + * @author MCD Application Team + * @brief Header file of RCC HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_RCC_EX_H +#define STM32G4xx_HAL_RCC_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCCEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Types RCCEx Exported Types + * @{ + */ + +/** + * @brief RCC extended clocks structure definition + */ +typedef struct +{ + uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured. + This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */ + + uint32_t Usart1ClockSelection; /*!< Specifies USART1 clock source. + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< Specifies USART2 clock source. + This parameter can be a value of @ref RCCEx_USART2_Clock_Source */ +#if defined(USART3) + uint32_t Usart3ClockSelection; /*!< Specifies USART3 clock source. + This parameter can be a value of @ref RCCEx_USART3_Clock_Source */ +#endif /* UART3 */ + +#if defined(UART4) + uint32_t Uart4ClockSelection; /*!< Specifies UART4 clock source. + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ +#endif /* UART4 */ + +#if defined(UART5) + uint32_t Uart5ClockSelection; /*!< Specifies UART5 clock source. + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + +#endif /* UART5 */ + + uint32_t Lpuart1ClockSelection; /*!< Specifies LPUART1 clock source. + This parameter can be a value of @ref RCCEx_LPUART1_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< Specifies I2C1 clock source. + This parameter can be a value of @ref RCCEx_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< Specifies I2C2 clock source. + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t I2c3ClockSelection; /*!< Specifies I2C3 clock source. + This parameter can be a value of @ref RCCEx_I2C3_Clock_Source */ + +#if defined(I2C4) + + uint32_t I2c4ClockSelection; /*!< Specifies I2C4 clock source. + This parameter can be a value of @ref RCCEx_I2C4_Clock_Source */ +#endif /* I2C4 */ + + uint32_t Lptim1ClockSelection; /*!< Specifies LPTIM1 clock source. + This parameter can be a value of @ref RCCEx_LPTIM1_Clock_Source */ + + uint32_t Sai1ClockSelection; /*!< Specifies SAI1 clock source. + This parameter can be a value of @ref RCCEx_SAI1_Clock_Source */ + + uint32_t I2sClockSelection; /*!< Specifies I2S clock source. + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ +#if defined(FDCAN1) + + uint32_t FdcanClockSelection; /*!< Specifies FDCAN clock source. + This parameter can be a value of @ref RCCEx_FDCAN_Clock_Source */ +#endif /* FDCAN1 */ +#if defined(USB) + + uint32_t UsbClockSelection; /*!< Specifies USB clock source (warning: same source for RNG). + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ +#endif /* USB */ + + uint32_t RngClockSelection; /*!< Specifies RNG clock source (warning: same source for USB). + This parameter can be a value of @ref RCCEx_RNG_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< Specifies ADC12 interface clock source. + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + +#if defined(ADC345_COMMON) + uint32_t Adc345ClockSelection; /*!< Specifies ADC345 interface clock source. + This parameter can be a value of @ref RCCEx_ADC345_Clock_Source */ +#endif /* ADC345_COMMON */ + +#if defined(QUADSPI) + uint32_t QspiClockSelection; /*!< Specifies QuadSPI clock source. + This parameter can be a value of @ref RCCEx_QSPI_Clock_Source */ +#endif + + uint32_t RTCClockSelection; /*!< Specifies RTC clock source. + This parameter can be a value of @ref RCC_RTC_Clock_Source */ +}RCC_PeriphCLKInitTypeDef; + +/** + * @brief RCC_CRS Init structure definition + */ +typedef struct +{ + uint32_t Prescaler; /*!< Specifies the division factor of the SYNC signal. + This parameter can be a value of @ref RCCEx_CRS_SynchroDivider */ + + uint32_t Source; /*!< Specifies the SYNC signal source. + This parameter can be a value of @ref RCCEx_CRS_SynchroSource */ + + uint32_t Polarity; /*!< Specifies the input polarity for the SYNC signal source. + This parameter can be a value of @ref RCCEx_CRS_SynchroPolarity */ + + uint32_t ReloadValue; /*!< Specifies the value to be loaded in the frequency error counter with each SYNC event. + It can be calculated in using macro __HAL_RCC_CRS_RELOADVALUE_CALCULATE(__FTARGET__, __FSYNC__) + This parameter must be a number between 0 and 0xFFFF or a value of @ref RCCEx_CRS_ReloadValueDefault .*/ + + uint32_t ErrorLimitValue; /*!< Specifies the value to be used to evaluate the captured frequency error value. + This parameter must be a number between 0 and 0xFF or a value of @ref RCCEx_CRS_ErrorLimitDefault */ + + uint32_t HSI48CalibrationValue; /*!< Specifies a user-programmable trimming value to the HSI48 oscillator. + This parameter must be a number between 0 and 0x7F or a value of @ref RCCEx_CRS_HSI48CalibrationDefault */ + +}RCC_CRSInitTypeDef; + +/** + * @brief RCC_CRS Synchronization structure definition + */ +typedef struct +{ + uint32_t ReloadValue; /*!< Specifies the value loaded in the Counter reload value. + This parameter must be a number between 0 and 0xFFFF */ + + uint32_t HSI48CalibrationValue; /*!< Specifies value loaded in HSI48 oscillator smooth trimming. + This parameter must be a number between 0 and 0x7F */ + + uint32_t FreqErrorCapture; /*!< Specifies the value loaded in the .FECAP, the frequency error counter + value latched in the time of the last SYNC event. + This parameter must be a number between 0 and 0xFFFF */ + + uint32_t FreqErrorDirection; /*!< Specifies the value loaded in the .FEDIR, the counting direction of the + frequency error counter latched in the time of the last SYNC event. + It shows whether the actual frequency is below or above the target. + This parameter must be a value of @ref RCCEx_CRS_FreqErrorDirection*/ + +}RCC_CRSSynchroInfoTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Constants RCCEx Exported Constants + * @{ + */ + +/** @defgroup RCCEx_LSCO_Clock_Source Low Speed Clock Source + * @{ + */ +#define RCC_LSCOSOURCE_LSI 0x00000000U /*!< LSI selection for low speed clock output */ +#define RCC_LSCOSOURCE_LSE RCC_BDCR_LSCOSEL /*!< LSE selection for low speed clock output */ +/** + * @} + */ + +/** @defgroup RCCEx_Periph_Clock_Selection Periph Clock Selection + * @{ + */ +#define RCC_PERIPHCLK_USART1 0x00000001U +#define RCC_PERIPHCLK_USART2 0x00000002U +#define RCC_PERIPHCLK_USART3 0x00000004U +#if defined(UART4) +#define RCC_PERIPHCLK_UART4 0x00000008U +#endif /* UART4 */ +#if defined(UART5) +#define RCC_PERIPHCLK_UART5 0x00000010U +#endif /* UART5 */ +#define RCC_PERIPHCLK_LPUART1 0x00000020U +#define RCC_PERIPHCLK_I2C1 0x00000040U +#define RCC_PERIPHCLK_I2C2 0x00000080U +#define RCC_PERIPHCLK_I2C3 0x00000100U +#define RCC_PERIPHCLK_LPTIM1 0x00000200U +#define RCC_PERIPHCLK_SAI1 0x00000400U +#define RCC_PERIPHCLK_I2S 0x00000800U +#if defined(FDCAN1) +#define RCC_PERIPHCLK_FDCAN 0x00001000U +#endif /* FDCAN1 */ +#define RCC_PERIPHCLK_USB 0x00002000U +#define RCC_PERIPHCLK_RNG 0x00004000U +#define RCC_PERIPHCLK_ADC12 0x00008000U +#if defined(ADC345_COMMON) +#define RCC_PERIPHCLK_ADC345 0x00010000U +#endif /* ADC345_COMMON */ +#if defined(I2C4) +#define RCC_PERIPHCLK_I2C4 0x00020000U +#endif /* I2C4 */ +#if defined(QUADSPI) +#define RCC_PERIPHCLK_QSPI 0x00040000U +#endif /* QUADSPI */ +#define RCC_PERIPHCLK_RTC 0x00080000U +/** + * @} + */ + + +/** @defgroup RCCEx_USART1_Clock_Source USART1 Clock Source + * @{ + */ +#define RCC_USART1CLKSOURCE_PCLK2 0x00000000U +#define RCC_USART1CLKSOURCE_SYSCLK RCC_CCIPR_USART1SEL_0 +#define RCC_USART1CLKSOURCE_HSI RCC_CCIPR_USART1SEL_1 +#define RCC_USART1CLKSOURCE_LSE (RCC_CCIPR_USART1SEL_0 | RCC_CCIPR_USART1SEL_1) +/** + * @} + */ + +/** @defgroup RCCEx_USART2_Clock_Source USART2 Clock Source + * @{ + */ +#define RCC_USART2CLKSOURCE_PCLK1 0x00000000U +#define RCC_USART2CLKSOURCE_SYSCLK RCC_CCIPR_USART2SEL_0 +#define RCC_USART2CLKSOURCE_HSI RCC_CCIPR_USART2SEL_1 +#define RCC_USART2CLKSOURCE_LSE (RCC_CCIPR_USART2SEL_0 | RCC_CCIPR_USART2SEL_1) +/** + * @} + */ + +/** @defgroup RCCEx_USART3_Clock_Source USART3 Clock Source + * @{ + */ +#define RCC_USART3CLKSOURCE_PCLK1 0x00000000U +#define RCC_USART3CLKSOURCE_SYSCLK RCC_CCIPR_USART3SEL_0 +#define RCC_USART3CLKSOURCE_HSI RCC_CCIPR_USART3SEL_1 +#define RCC_USART3CLKSOURCE_LSE (RCC_CCIPR_USART3SEL_0 | RCC_CCIPR_USART3SEL_1) +/** + * @} + */ + +#if defined(UART4) +/** @defgroup RCCEx_UART4_Clock_Source UART4 Clock Source + * @{ + */ +#define RCC_UART4CLKSOURCE_PCLK1 0x00000000U +#define RCC_UART4CLKSOURCE_SYSCLK RCC_CCIPR_UART4SEL_0 +#define RCC_UART4CLKSOURCE_HSI RCC_CCIPR_UART4SEL_1 +#define RCC_UART4CLKSOURCE_LSE (RCC_CCIPR_UART4SEL_0 | RCC_CCIPR_UART4SEL_1) +/** + * @} + */ +#endif /* UART4 */ + +#if defined(UART5) +/** @defgroup RCCEx_UART5_Clock_Source UART5 Clock Source + * @{ + */ +#define RCC_UART5CLKSOURCE_PCLK1 0x00000000U +#define RCC_UART5CLKSOURCE_SYSCLK RCC_CCIPR_UART5SEL_0 +#define RCC_UART5CLKSOURCE_HSI RCC_CCIPR_UART5SEL_1 +#define RCC_UART5CLKSOURCE_LSE (RCC_CCIPR_UART5SEL_0 | RCC_CCIPR_UART5SEL_1) +/** + * @} + */ +#endif /* UART5 */ + +/** @defgroup RCCEx_LPUART1_Clock_Source LPUART1 Clock Source + * @{ + */ +#define RCC_LPUART1CLKSOURCE_PCLK1 0x00000000U +#define RCC_LPUART1CLKSOURCE_SYSCLK RCC_CCIPR_LPUART1SEL_0 +#define RCC_LPUART1CLKSOURCE_HSI RCC_CCIPR_LPUART1SEL_1 +#define RCC_LPUART1CLKSOURCE_LSE (RCC_CCIPR_LPUART1SEL_0 | RCC_CCIPR_LPUART1SEL_1) +/** + * @} + */ + +/** @defgroup RCCEx_I2C1_Clock_Source I2C1 Clock Source + * @{ + */ +#define RCC_I2C1CLKSOURCE_PCLK1 0x00000000U +#define RCC_I2C1CLKSOURCE_SYSCLK RCC_CCIPR_I2C1SEL_0 +#define RCC_I2C1CLKSOURCE_HSI RCC_CCIPR_I2C1SEL_1 +/** + * @} + */ + +/** @defgroup RCCEx_I2C2_Clock_Source I2C2 Clock Source + * @{ + */ +#define RCC_I2C2CLKSOURCE_PCLK1 0x00000000U +#define RCC_I2C2CLKSOURCE_SYSCLK RCC_CCIPR_I2C2SEL_0 +#define RCC_I2C2CLKSOURCE_HSI RCC_CCIPR_I2C2SEL_1 +/** + * @} + */ + +/** @defgroup RCCEx_I2C3_Clock_Source I2C3 Clock Source + * @{ + */ +#define RCC_I2C3CLKSOURCE_PCLK1 0x00000000U +#define RCC_I2C3CLKSOURCE_SYSCLK RCC_CCIPR_I2C3SEL_0 +#define RCC_I2C3CLKSOURCE_HSI RCC_CCIPR_I2C3SEL_1 +/** + * @} + */ + +/** @defgroup RCCEx_LPTIM1_Clock_Source LPTIM1 Clock Source + * @{ + */ +#define RCC_LPTIM1CLKSOURCE_PCLK1 0x00000000U +#define RCC_LPTIM1CLKSOURCE_LSI RCC_CCIPR_LPTIM1SEL_0 +#define RCC_LPTIM1CLKSOURCE_HSI RCC_CCIPR_LPTIM1SEL_1 +#define RCC_LPTIM1CLKSOURCE_LSE RCC_CCIPR_LPTIM1SEL +/** + * @} + */ + +/** @defgroup RCCEx_SAI1_Clock_Source SAI1 Clock Source + * @{ + */ +#define RCC_SAI1CLKSOURCE_SYSCLK 0x00000000U +#define RCC_SAI1CLKSOURCE_PLL RCC_CCIPR_SAI1SEL_0 +#define RCC_SAI1CLKSOURCE_EXT RCC_CCIPR_SAI1SEL_1 +#define RCC_SAI1CLKSOURCE_HSI (RCC_CCIPR_SAI1SEL_1 | RCC_CCIPR_SAI1SEL_0) +/** + * @} + */ + +#if defined(SPI_I2S_SUPPORT) +/** @defgroup RCCEx_I2S_Clock_Source I2S Clock Source + * @{ + */ +#define RCC_I2SCLKSOURCE_SYSCLK 0x00000000U +#define RCC_I2SCLKSOURCE_PLL RCC_CCIPR_I2S23SEL_0 +#define RCC_I2SCLKSOURCE_EXT RCC_CCIPR_I2S23SEL_1 +#define RCC_I2SCLKSOURCE_HSI (RCC_CCIPR_I2S23SEL_1 | RCC_CCIPR_I2S23SEL_0) +/** + * @} + */ +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) +/** @defgroup RCCEx_FDCAN_Clock_Source FDCAN Clock Source + * @{ + */ +#define RCC_FDCANCLKSOURCE_HSE 0x00000000U +#define RCC_FDCANCLKSOURCE_PLL RCC_CCIPR_FDCANSEL_0 +#define RCC_FDCANCLKSOURCE_PCLK1 RCC_CCIPR_FDCANSEL_1 +/** + * @} + */ +#endif /* FDCAN1 */ + +/** @defgroup RCCEx_RNG_Clock_Source RNG Clock Source + * @{ + */ +#define RCC_RNGCLKSOURCE_HSI48 0x00000000U +#define RCC_RNGCLKSOURCE_PLL RCC_CCIPR_CLK48SEL_1 +/** + * @} + */ + +/** @defgroup RCCEx_USB_Clock_Source USB Clock Source + * @{ + */ +#define RCC_USBCLKSOURCE_HSI48 0x00000000U +#define RCC_USBCLKSOURCE_PLL RCC_CCIPR_CLK48SEL_1 +/** + * @} + */ + +/** @defgroup RCCEx_ADC12_Clock_Source ADC12 Clock Source + * @{ + */ +#define RCC_ADC12CLKSOURCE_NONE 0x00000000U +#define RCC_ADC12CLKSOURCE_PLL RCC_CCIPR_ADC12SEL_0 +#define RCC_ADC12CLKSOURCE_SYSCLK RCC_CCIPR_ADC12SEL_1 +/** + * @} + */ + +#if defined(ADC345_COMMON) +/** @defgroup RCCEx_ADC345_Clock_Source ADC345 Clock Source + * @{ + */ +#define RCC_ADC345CLKSOURCE_NONE 0x00000000U +#define RCC_ADC345CLKSOURCE_PLL RCC_CCIPR_ADC345SEL_0 +#define RCC_ADC345CLKSOURCE_SYSCLK RCC_CCIPR_ADC345SEL_1 +/** + * @} + */ +#endif /* ADC345_COMMON */ + +#if defined(I2C4) +/** @defgroup RCCEx_I2C4_Clock_Source I2C4 Clock Source + * @{ + */ +#define RCC_I2C4CLKSOURCE_PCLK1 0x00000000U +#define RCC_I2C4CLKSOURCE_SYSCLK RCC_CCIPR2_I2C4SEL_0 +#define RCC_I2C4CLKSOURCE_HSI RCC_CCIPR2_I2C4SEL_1 +/** + * @} + */ +#endif /* I2C4 */ + +#if defined(QUADSPI) +/** @defgroup RCCEx_QSPI_Clock_Source QuadSPI Clock Source + * @{ + */ +#define RCC_QSPICLKSOURCE_SYSCLK 0x00000000U +#define RCC_QSPICLKSOURCE_HSI RCC_CCIPR2_QSPISEL_0 +#define RCC_QSPICLKSOURCE_PLL RCC_CCIPR2_QSPISEL_1 +/** + * @} + */ +#endif /* QUADSPI */ + +/** @defgroup RCCEx_EXTI_LINE_LSECSS RCC LSE CSS external interrupt line + * @{ + */ +#define RCC_EXTI_LINE_LSECSS EXTI_IMR1_IM19 /*!< External interrupt line 19 connected to the LSE CSS EXTI Line */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_Status RCCEx CRS Status + * @{ + */ +#define RCC_CRS_NONE 0x00000000U +#define RCC_CRS_TIMEOUT 0x00000001U +#define RCC_CRS_SYNCOK 0x00000002U +#define RCC_CRS_SYNCWARN 0x00000004U +#define RCC_CRS_SYNCERR 0x00000008U +#define RCC_CRS_SYNCMISS 0x00000010U +#define RCC_CRS_TRIMOVF 0x00000020U +/** + * @} + */ + +/** @defgroup RCCEx_CRS_SynchroSource RCCEx CRS SynchroSource + * @{ + */ +#define RCC_CRS_SYNC_SOURCE_GPIO 0x00000000U /*!< Synchro Signal source GPIO */ +#define RCC_CRS_SYNC_SOURCE_LSE CRS_CFGR_SYNCSRC_0 /*!< Synchro Signal source LSE */ +#define RCC_CRS_SYNC_SOURCE_USB CRS_CFGR_SYNCSRC_1 /*!< Synchro Signal source USB SOF (default)*/ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_SynchroDivider RCCEx CRS SynchroDivider + * @{ + */ +#define RCC_CRS_SYNC_DIV1 0x00000000U /*!< Synchro Signal not divided (default) */ +#define RCC_CRS_SYNC_DIV2 CRS_CFGR_SYNCDIV_0 /*!< Synchro Signal divided by 2 */ +#define RCC_CRS_SYNC_DIV4 CRS_CFGR_SYNCDIV_1 /*!< Synchro Signal divided by 4 */ +#define RCC_CRS_SYNC_DIV8 (CRS_CFGR_SYNCDIV_1 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 8 */ +#define RCC_CRS_SYNC_DIV16 CRS_CFGR_SYNCDIV_2 /*!< Synchro Signal divided by 16 */ +#define RCC_CRS_SYNC_DIV32 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 32 */ +#define RCC_CRS_SYNC_DIV64 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_1) /*!< Synchro Signal divided by 64 */ +#define RCC_CRS_SYNC_DIV128 CRS_CFGR_SYNCDIV /*!< Synchro Signal divided by 128 */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_SynchroPolarity RCCEx CRS SynchroPolarity + * @{ + */ +#define RCC_CRS_SYNC_POLARITY_RISING 0x00000000U /*!< Synchro Active on rising edge (default) */ +#define RCC_CRS_SYNC_POLARITY_FALLING CRS_CFGR_SYNCPOL /*!< Synchro Active on falling edge */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_ReloadValueDefault RCCEx CRS ReloadValueDefault + * @{ + */ +#define RCC_CRS_RELOADVALUE_DEFAULT 0x0000BB7FU /*!< The reset value of the RELOAD field corresponds + to a target frequency of 48 MHz and a synchronization signal frequency of 1 kHz (SOF signal from USB). */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_ErrorLimitDefault RCCEx CRS ErrorLimitDefault + * @{ + */ +#define RCC_CRS_ERRORLIMIT_DEFAULT 0x00000022U /*!< Default Frequency error limit */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_HSI48CalibrationDefault RCCEx CRS HSI48CalibrationDefault + * @{ + */ +#define RCC_CRS_HSI48CALIBRATION_DEFAULT 0x00000040U /*!< The default value is 64, which corresponds to the middle of the trimming interval. + The trimming step is around 67 kHz between two consecutive TRIM steps. A higher TRIM value + corresponds to a higher output frequency */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_FreqErrorDirection RCCEx CRS FreqErrorDirection + * @{ + */ +#define RCC_CRS_FREQERRORDIR_UP 0x00000000U /*!< Upcounting direction, the actual frequency is above the target */ +#define RCC_CRS_FREQERRORDIR_DOWN CRS_ISR_FEDIR /*!< Downcounting direction, the actual frequency is below the target */ +/** + * @} + */ + +/** @defgroup RCCEx_CRS_Interrupt_Sources RCCEx CRS Interrupt Sources + * @{ + */ +#define RCC_CRS_IT_SYNCOK CRS_CR_SYNCOKIE /*!< SYNC event OK */ +#define RCC_CRS_IT_SYNCWARN CRS_CR_SYNCWARNIE /*!< SYNC warning */ +#define RCC_CRS_IT_ERR CRS_CR_ERRIE /*!< Error */ +#define RCC_CRS_IT_ESYNC CRS_CR_ESYNCIE /*!< Expected SYNC */ +#define RCC_CRS_IT_SYNCERR CRS_CR_ERRIE /*!< SYNC error */ +#define RCC_CRS_IT_SYNCMISS CRS_CR_ERRIE /*!< SYNC missed */ +#define RCC_CRS_IT_TRIMOVF CRS_CR_ERRIE /*!< Trimming overflow or underflow */ + +/** + * @} + */ + +/** @defgroup RCCEx_CRS_Flags RCCEx CRS Flags + * @{ + */ +#define RCC_CRS_FLAG_SYNCOK CRS_ISR_SYNCOKF /*!< SYNC event OK flag */ +#define RCC_CRS_FLAG_SYNCWARN CRS_ISR_SYNCWARNF /*!< SYNC warning flag */ +#define RCC_CRS_FLAG_ERR CRS_ISR_ERRF /*!< Error flag */ +#define RCC_CRS_FLAG_ESYNC CRS_ISR_ESYNCF /*!< Expected SYNC flag */ +#define RCC_CRS_FLAG_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */ +#define RCC_CRS_FLAG_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/ +#define RCC_CRS_FLAG_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros + * @{ + */ + +/** @brief Macro to configure the USART1 clock (USART1CLK). + * + * @param __USART1_CLKSOURCE__ specifies the USART1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + * @arg @ref RCC_USART1CLKSOURCE_HSI HSI selected as USART1 clock + * @arg @ref RCC_USART1CLKSOURCE_SYSCLK System Clock selected as USART1 clock + * @arg @ref RCC_USART1CLKSOURCE_LSE LSE selected as USART1 clock + * @retval None + */ +#define __HAL_RCC_USART1_CONFIG(__USART1_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_USART1SEL, (__USART1_CLKSOURCE__)) + +/** @brief Macro to get the USART1 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + * @arg @ref RCC_USART1CLKSOURCE_HSI HSI selected as USART1 clock + * @arg @ref RCC_USART1CLKSOURCE_SYSCLK System Clock selected as USART1 clock + * @arg @ref RCC_USART1CLKSOURCE_LSE LSE selected as USART1 clock + */ +#define __HAL_RCC_GET_USART1_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_USART1SEL)) + +/** @brief Macro to configure the USART2 clock (USART2CLK). + * + * @param __USART2_CLKSOURCE__ specifies the USART2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_USART2CLKSOURCE_PCLK1 PCLK1 selected as USART2 clock + * @arg @ref RCC_USART2CLKSOURCE_HSI HSI selected as USART2 clock + * @arg @ref RCC_USART2CLKSOURCE_SYSCLK System Clock selected as USART2 clock + * @arg @ref RCC_USART2CLKSOURCE_LSE LSE selected as USART2 clock + * @retval None + */ +#define __HAL_RCC_USART2_CONFIG(__USART2_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_USART2SEL, (__USART2_CLKSOURCE__)) + +/** @brief Macro to get the USART2 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_USART2CLKSOURCE_PCLK1 PCLK1 selected as USART2 clock + * @arg @ref RCC_USART2CLKSOURCE_HSI HSI selected as USART2 clock + * @arg @ref RCC_USART2CLKSOURCE_SYSCLK System Clock selected as USART2 clock + * @arg @ref RCC_USART2CLKSOURCE_LSE LSE selected as USART2 clock + */ +#define __HAL_RCC_GET_USART2_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_USART2SEL)) + +/** @brief Macro to configure the USART3 clock (USART3CLK). + * + * @param __USART3_CLKSOURCE__ specifies the USART3 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_USART3CLKSOURCE_PCLK1 PCLK1 selected as USART3 clock + * @arg @ref RCC_USART3CLKSOURCE_HSI HSI selected as USART3 clock + * @arg @ref RCC_USART3CLKSOURCE_SYSCLK System Clock selected as USART3 clock + * @arg @ref RCC_USART3CLKSOURCE_LSE LSE selected as USART3 clock + * @retval None + */ +#define __HAL_RCC_USART3_CONFIG(__USART3_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_USART3SEL, (__USART3_CLKSOURCE__)) + +/** @brief Macro to get the USART3 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_USART3CLKSOURCE_PCLK1 PCLK1 selected as USART3 clock + * @arg @ref RCC_USART3CLKSOURCE_HSI HSI selected as USART3 clock + * @arg @ref RCC_USART3CLKSOURCE_SYSCLK System Clock selected as USART3 clock + * @arg @ref RCC_USART3CLKSOURCE_LSE LSE selected as USART3 clock + */ +#define __HAL_RCC_GET_USART3_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_USART3SEL)) + +#if defined(UART4) +/** @brief Macro to configure the UART4 clock (UART4CLK). + * + * @param __UART4_CLKSOURCE__ specifies the UART4 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_UART4CLKSOURCE_PCLK1 PCLK1 selected as UART4 clock + * @arg @ref RCC_UART4CLKSOURCE_HSI HSI selected as UART4 clock + * @arg @ref RCC_UART4CLKSOURCE_SYSCLK System Clock selected as UART4 clock + * @arg @ref RCC_UART4CLKSOURCE_LSE LSE selected as UART4 clock + * @retval None + */ +#define __HAL_RCC_UART4_CONFIG(__UART4_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_UART4SEL, (__UART4_CLKSOURCE__)) + +/** @brief Macro to get the UART4 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_UART4CLKSOURCE_PCLK1 PCLK1 selected as UART4 clock + * @arg @ref RCC_UART4CLKSOURCE_HSI HSI selected as UART4 clock + * @arg @ref RCC_UART4CLKSOURCE_SYSCLK System Clock selected as UART4 clock + * @arg @ref RCC_UART4CLKSOURCE_LSE LSE selected as UART4 clock + */ +#define __HAL_RCC_GET_UART4_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_UART4SEL)) +#endif /* UART4 */ + +#if defined(UART5) + +/** @brief Macro to configure the UART5 clock (UART5CLK). + * + * @param __UART5_CLKSOURCE__ specifies the UART5 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_UART5CLKSOURCE_PCLK1 PCLK1 selected as UART5 clock + * @arg @ref RCC_UART5CLKSOURCE_HSI HSI selected as UART5 clock + * @arg @ref RCC_UART5CLKSOURCE_SYSCLK System Clock selected as UART5 clock + * @arg @ref RCC_UART5CLKSOURCE_LSE LSE selected as UART5 clock + * @retval None + */ +#define __HAL_RCC_UART5_CONFIG(__UART5_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_UART5SEL, (__UART5_CLKSOURCE__)) + +/** @brief Macro to get the UART5 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_UART5CLKSOURCE_PCLK1 PCLK1 selected as UART5 clock + * @arg @ref RCC_UART5CLKSOURCE_HSI HSI selected as UART5 clock + * @arg @ref RCC_UART5CLKSOURCE_SYSCLK System Clock selected as UART5 clock + * @arg @ref RCC_UART5CLKSOURCE_LSE LSE selected as UART5 clock + */ +#define __HAL_RCC_GET_UART5_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_UART5SEL)) + +#endif /* UART5 */ + +/** @brief Macro to configure the LPUART1 clock (LPUART1CLK). + * + * @param __LPUART1_CLKSOURCE__ specifies the LPUART1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_LPUART1CLKSOURCE_PCLK1 PCLK1 selected as LPUART1 clock + * @arg @ref RCC_LPUART1CLKSOURCE_HSI HSI selected as LPUART1 clock + * @arg @ref RCC_LPUART1CLKSOURCE_SYSCLK System Clock selected as LPUART1 clock + * @arg @ref RCC_LPUART1CLKSOURCE_LSE LSE selected as LPUART1 clock + * @retval None + */ +#define __HAL_RCC_LPUART1_CONFIG(__LPUART1_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_LPUART1SEL, (__LPUART1_CLKSOURCE__)) + +/** @brief Macro to get the LPUART1 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_LPUART1CLKSOURCE_PCLK1 PCLK1 selected as LPUART1 clock + * @arg @ref RCC_LPUART1CLKSOURCE_HSI HSI selected as LPUART1 clock + * @arg @ref RCC_LPUART1CLKSOURCE_SYSCLK System Clock selected as LPUART1 clock + * @arg @ref RCC_LPUART1CLKSOURCE_LSE LSE selected as LPUART1 clock + */ +#define __HAL_RCC_GET_LPUART1_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_LPUART1SEL)) + +/** @brief Macro to configure the I2C1 clock (I2C1CLK). + * + * @param __I2C1_CLKSOURCE__ specifies the I2C1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C1CLKSOURCE_PCLK1 PCLK1 selected as I2C1 clock + * @arg @ref RCC_I2C1CLKSOURCE_HSI HSI selected as I2C1 clock + * @arg @ref RCC_I2C1CLKSOURCE_SYSCLK System Clock selected as I2C1 clock + * @retval None + */ +#define __HAL_RCC_I2C1_CONFIG(__I2C1_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_I2C1SEL, (__I2C1_CLKSOURCE__)) + +/** @brief Macro to get the I2C1 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2C1CLKSOURCE_PCLK1 PCLK1 selected as I2C1 clock + * @arg @ref RCC_I2C1CLKSOURCE_HSI HSI selected as I2C1 clock + * @arg @ref RCC_I2C1CLKSOURCE_SYSCLK System Clock selected as I2C1 clock + */ +#define __HAL_RCC_GET_I2C1_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_I2C1SEL)) + + +/** @brief Macro to configure the I2C2 clock (I2C2CLK). + * + * @param __I2C2_CLKSOURCE__ specifies the I2C2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C2CLKSOURCE_PCLK1 PCLK1 selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_HSI HSI selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_SYSCLK System Clock selected as I2C2 clock + * @retval None + */ +#define __HAL_RCC_I2C2_CONFIG(__I2C2_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_I2C2SEL, (__I2C2_CLKSOURCE__)) + +/** @brief Macro to get the I2C2 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2C2CLKSOURCE_PCLK1 PCLK1 selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_HSI HSI selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_SYSCLK System Clock selected as I2C2 clock + */ +#define __HAL_RCC_GET_I2C2_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_I2C2SEL)) + +/** @brief Macro to configure the I2C3 clock (I2C3CLK). + * + * @param __I2C3_CLKSOURCE__ specifies the I2C3 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C3CLKSOURCE_PCLK1 PCLK1 selected as I2C3 clock + * @arg @ref RCC_I2C3CLKSOURCE_HSI HSI selected as I2C3 clock + * @arg @ref RCC_I2C3CLKSOURCE_SYSCLK System Clock selected as I2C3 clock + * @retval None + */ +#define __HAL_RCC_I2C3_CONFIG(__I2C3_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_I2C3SEL, (__I2C3_CLKSOURCE__)) + +/** @brief Macro to get the I2C3 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2C3CLKSOURCE_PCLK1 PCLK1 selected as I2C3 clock + * @arg @ref RCC_I2C3CLKSOURCE_HSI HSI selected as I2C3 clock + * @arg @ref RCC_I2C3CLKSOURCE_SYSCLK System Clock selected as I2C3 clock + */ +#define __HAL_RCC_GET_I2C3_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_I2C3SEL)) + +#if defined(I2C4) + +/** @brief Macro to configure the I2C4 clock (I2C4CLK). + * + * @param __I2C4_CLKSOURCE__ specifies the I2C4 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C4CLKSOURCE_PCLK1 PCLK1 selected as I2C4 clock + * @arg @ref RCC_I2C4CLKSOURCE_HSI HSI selected as I2C4 clock + * @arg @ref RCC_I2C4CLKSOURCE_SYSCLK System Clock selected as I2C4 clock + * @retval None + */ +#define __HAL_RCC_I2C4_CONFIG(__I2C4_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_I2C4SEL, (__I2C4_CLKSOURCE__)) + +/** @brief Macro to get the I2C4 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2C4CLKSOURCE_PCLK1 PCLK1 selected as I2C4 clock + * @arg @ref RCC_I2C4CLKSOURCE_HSI HSI selected as I2C4 clock + * @arg @ref RCC_I2C4CLKSOURCE_SYSCLK System Clock selected as I2C4 clock + */ +#define __HAL_RCC_GET_I2C4_SOURCE() (READ_BIT(RCC->CCIPR2, RCC_CCIPR2_I2C4SEL)) + +#endif /* I2C4 */ + +/** @brief Macro to configure the LPTIM1 clock (LPTIM1CLK). + * + * @param __LPTIM1_CLKSOURCE__ specifies the LPTIM1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_LPTIM1CLKSOURCE_PCLK1 PCLK1 selected as LPTIM1 clock + * @arg @ref RCC_LPTIM1CLKSOURCE_LSI HSI selected as LPTIM1 clock + * @arg @ref RCC_LPTIM1CLKSOURCE_HSI LSI selected as LPTIM1 clock + * @arg @ref RCC_LPTIM1CLKSOURCE_LSE LSE selected as LPTIM1 clock + * @retval None + */ +#define __HAL_RCC_LPTIM1_CONFIG(__LPTIM1_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_LPTIM1SEL, (__LPTIM1_CLKSOURCE__)) + +/** @brief Macro to get the LPTIM1 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_LPTIM1CLKSOURCE_PCLK1 PCLK1 selected as LPUART1 clock + * @arg @ref RCC_LPTIM1CLKSOURCE_LSI HSI selected as LPUART1 clock + * @arg @ref RCC_LPTIM1CLKSOURCE_HSI System Clock selected as LPUART1 clock + * @arg @ref RCC_LPTIM1CLKSOURCE_LSE LSE selected as LPUART1 clock + */ +#define __HAL_RCC_GET_LPTIM1_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_LPTIM1SEL)) + +/** + * @brief Macro to configure the SAI1 clock source. + * @param __SAI1_CLKSOURCE__ defines the SAI1 clock source. This clock is derived + * from the HSI, system PLL, System Clock or external clock. + * This parameter can be one of the following values: + * @arg @ref RCC_SAI1CLKSOURCE_SYSCLK SAI1 clock = System Clock + * @arg @ref RCC_SAI1CLKSOURCE_PLL SAI1 clock = PLL "Q" clock + * @arg @ref RCC_SAI1CLKSOURCE_EXT SAI1 clock = EXT + * @arg @ref RCC_SAI1CLKSOURCE_HSI SAI1 clock = HSI + * + * @retval None + */ + +#if defined(SAI1) +#define __HAL_RCC_SAI1_CONFIG(__SAI1_CLKSOURCE__)\ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_SAI1SEL, (__SAI1_CLKSOURCE__)) + +/** @brief Macro to get the SAI1 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_SAI1CLKSOURCE_SYSCLK SAI1 clock = System Clock + * @arg @ref RCC_SAI1CLKSOURCE_PLL SAI1 clock = PLL "Q" clock + * @arg @ref RCC_SAI1CLKSOURCE_EXT SAI1 clock = EXT + * @arg @ref RCC_SAI1CLKSOURCE_HSI SAI1 clock = HSI + * + */ +#define __HAL_RCC_GET_SAI1_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_SAI1SEL)) +#endif /* SAI1 */ + +#if defined(SPI_I2S_SUPPORT) +/** + * @brief Macro to configure the I2S clock source. + * @param __I2S_CLKSOURCE__ defines the I2S clock source. This clock is derived + * from the HSI, system PLL, System Clock or external clock. + * This parameter can be one of the following values: + * @arg @ref RCC_I2SCLKSOURCE_SYSCLK I2S clock = System Clock + * @arg @ref RCC_I2SCLKSOURCE_PLL I2S clock = PLL "Q" clock + * @arg @ref RCC_I2SCLKSOURCE_EXT I2S clock = EXT + * @arg @ref RCC_I2SCLKSOURCE_HSI I2S clock = HSI + * + * @retval None + */ +#define __HAL_RCC_I2S_CONFIG(__I2S_CLKSOURCE__)\ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_I2S23SEL, (__I2S_CLKSOURCE__)) + +/** @brief Macro to get the I2S clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2SCLKSOURCE_SYSCLK I2S clock = System Clock + * @arg @ref RCC_I2SCLKSOURCE_PLL I2S clock = PLL "Q" clock + * @arg @ref RCC_I2SCLKSOURCE_EXT I2S clock = EXT + * @arg @ref RCC_I2SCLKSOURCE_HSI I2S clock = HSI + * + */ +#define __HAL_RCC_GET_I2S_SOURCE() ((uint32_t)(READ_BIT(RCC->CCIPR, RCC_CCIPR_I2S23SEL))) +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) +/** + * @brief Macro to configure the FDCAN clock source. + * @param __FDCAN_CLKSOURCE__ defines the FDCAN clock source. This clock is derived + * from the HSE, system PLL or PCLK1. + * This parameter can be one of the following values: + * @arg @ref RCC_FDCANCLKSOURCE_HSE FDCAN clock = HSE + * @arg @ref RCC_FDCANCLKSOURCE_PLL FDCAN clock = PLL "Q" clock + * @arg @ref RCC_FDCANCLKSOURCE_PCLK1 FDCAN clock = PCLK1 + * + * @retval None + */ +#define __HAL_RCC_FDCAN_CONFIG(__FDCAN_CLKSOURCE__)\ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_FDCANSEL, (uint32_t)(__FDCAN_CLKSOURCE__)) + +/** @brief Macro to get the FDCAN clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_FDCANCLKSOURCE_HSE FDCAN clock = HSE + * @arg @ref RCC_FDCANCLKSOURCE_PLL FDCAN clock = PLL "Q" clock + * @arg @ref RCC_FDCANCLKSOURCE_PCLK1 FDCAN clock = PCLK1 + * + */ +#define __HAL_RCC_GET_FDCAN_SOURCE() ((uint32_t)(READ_BIT(RCC->CCIPR, RCC_CCIPR_FDCANSEL))) +#endif /* FDCAN1 */ + +/** @brief Macro to configure the RNG clock. + * + * @note USB and RNG peripherals share the same 48MHz clock source. + * + * @param __RNG_CLKSOURCE__ specifies the RNG clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_RNGCLKSOURCE_HSI48 HSI48 selected as RNG clock for devices with HSI48 + * @arg @ref RCC_RNGCLKSOURCE_PLL PLL Clock selected as RNG clock + * @retval None + */ +#define __HAL_RCC_RNG_CONFIG(__RNG_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_CLK48SEL, (__RNG_CLKSOURCE__)) + +/** @brief Macro to get the RNG clock. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_RNGCLKSOURCE_HSI48 HSI48 selected as RNG clock for devices with HSI48 + * @arg @ref RCC_RNGCLKSOURCE_PLL PLL "Q" clock selected as RNG clock + */ +#define __HAL_RCC_GET_RNG_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_CLK48SEL)) + +#if defined(USB) + +/** @brief Macro to configure the USB clock (USBCLK). + * + * @note USB, RNG peripherals share the same 48MHz clock source. + * + * @param __USB_CLKSOURCE__ specifies the USB clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_USBCLKSOURCE_HSI48 HSI48 selected as 48MHz clock for devices with HSI48 + * @arg @ref RCC_USBCLKSOURCE_PLL PLL "Q" clock (PLL48M1CLK) selected as USB clock + * @retval None + */ +#define __HAL_RCC_USB_CONFIG(__USB_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_CLK48SEL, (__USB_CLKSOURCE__)) + +/** @brief Macro to get the USB clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_USBCLKSOURCE_HSI48 HSI48 selected as 48MHz clock for devices with HSI48 + * @arg @ref RCC_USBCLKSOURCE_PLL PLL "Q" clock (PLL48M1CLK) selected as USB clock + */ +#define __HAL_RCC_GET_USB_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_CLK48SEL)) + +#endif /* USB */ + +/** @brief Macro to configure the ADC12 interface clock. + * @param __ADC12_CLKSOURCE__ specifies the ADC12 digital interface clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC12CLKSOURCE_NONE No clock selected as ADC12 clock + * @arg @ref RCC_ADC12CLKSOURCE_PLL PLL Clock selected as ADC12 clock + * @arg @ref RCC_ADC12CLKSOURCE_SYSCLK System Clock selected as ADC12 clock + * @retval None + */ +#define __HAL_RCC_ADC12_CONFIG(__ADC12_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_ADC12SEL, (__ADC12_CLKSOURCE__)) + +/** @brief Macro to get the ADC12 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC12CLKSOURCE_NONE No clock selected as ADC12 clock + * @arg @ref RCC_ADC12CLKSOURCE_PLL PLL Clock selected as ADC12 clock + * @arg @ref RCC_ADC12CLKSOURCE_SYSCLK System Clock selected as ADC12 clock + */ +#define __HAL_RCC_GET_ADC12_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_ADC12SEL)) + +#if defined(ADC345_COMMON) +/** @brief Macro to configure the ADC345 interface clock. + * @param __ADC345_CLKSOURCE__ specifies the ADC345 digital interface clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC345CLKSOURCE_NONE No clock selected as ADC345 clock + * @arg @ref RCC_ADC345CLKSOURCE_PLL PLL Clock selected as ADC345 clock + * @arg @ref RCC_ADC345CLKSOURCE_SYSCLK System Clock selected as ADC345 clock + * @retval None + */ +#define __HAL_RCC_ADC345_CONFIG(__ADC345_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_ADC345SEL, __ADC345_CLKSOURCE__) + +/** @brief Macro to get the ADC345 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC345CLKSOURCE_NONE No clock selected as ADC345 clock + * @arg @ref RCC_ADC345CLKSOURCE_PLL PLL Clock selected as ADC345 clock + * @arg @ref RCC_ADC345CLKSOURCE_SYSCLK System Clock selected as ADC345 clock + */ +#define __HAL_RCC_GET_ADC345_SOURCE() (READ_BIT(RCC->CCIPR, RCC_CCIPR_ADC345SEL)) +#endif /* ADC345_COMMON */ + +#if defined(QUADSPI) + +/** @brief Macro to configure the QuadSPI clock. + * @param __QSPI_CLKSOURCE__ specifies the QuadSPI clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_QSPICLKSOURCE_SYSCLK System Clock selected as QuadSPI clock + * @arg @ref RCC_QSPICLKSOURCE_HSI HSI clock selected as QuadSPI clock + * @arg @ref RCC_QSPICLKSOURCE_PLL PLL Q divider clock selected as QuadSPI clock + * @retval None + */ +#define __HAL_RCC_QSPI_CONFIG(__QSPI_CLKSOURCE__) \ + MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_QSPISEL, __QSPI_CLKSOURCE__) + +/** @brief Macro to get the QuadSPI clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_QSPICLKSOURCE_SYSCLK System Clock selected as QuadSPI clock + * @arg @ref RCC_QSPICLKSOURCE_HSI HSI clock selected as QuadSPI clock + * @arg @ref RCC_QSPICLKSOURCE_PLL PLL Q divider clock selected as QuadSPI clock + */ +#define __HAL_RCC_GET_QSPI_SOURCE() (READ_BIT(RCC->CCIPR2, RCC_CCIPR2_QSPISEL)) + +#endif /* QUADSPI */ + +/** @defgroup RCCEx_Flags_Interrupts_Management Flags Interrupts Management + * @brief macros to manage the specified RCC Flags and interrupts. + * @{ + */ + +/** + * @brief Enable the RCC LSE CSS Extended Interrupt Line. + * @retval None + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR1, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Line. + * @retval None + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR1, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Enable the RCC LSE CSS Event Line. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR1, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Disable the RCC LSE CSS Event Line. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR1, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief Enable the RCC LSE CSS Extended Interrupt Falling Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR1, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Falling Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR1, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief Enable the RCC LSE CSS Extended Interrupt Rising Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR1, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Rising Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR1, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Enable the RCC LSE CSS Extended Interrupt Rising & Falling Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_RCC_LSECSS_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Rising & Falling Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_RCC_LSECSS_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Check whether the specified RCC LSE CSS EXTI interrupt flag is set or not. + * @retval EXTI RCC LSE CSS Line Status. + */ +#define __HAL_RCC_LSECSS_EXTI_GET_FLAG() (READ_BIT(EXTI->PR1, RCC_EXTI_LINE_LSECSS) == RCC_EXTI_LINE_LSECSS) + +/** + * @brief Clear the RCC LSE CSS EXTI flag. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR1, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Generate a Software interrupt on the RCC LSE CSS EXTI line. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER1, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief Enable the specified CRS interrupts. + * @param __INTERRUPT__ specifies the CRS interrupt sources to be enabled. + * This parameter can be any combination of the following values: + * @arg @ref RCC_CRS_IT_SYNCOK SYNC event OK interrupt + * @arg @ref RCC_CRS_IT_SYNCWARN SYNC warning interrupt + * @arg @ref RCC_CRS_IT_ERR Synchronization or trimming error interrupt + * @arg @ref RCC_CRS_IT_ESYNC Expected SYNC interrupt + * @retval None + */ +#define __HAL_RCC_CRS_ENABLE_IT(__INTERRUPT__) SET_BIT(CRS->CR, (__INTERRUPT__)) + +/** + * @brief Disable the specified CRS interrupts. + * @param __INTERRUPT__ specifies the CRS interrupt sources to be disabled. + * This parameter can be any combination of the following values: + * @arg @ref RCC_CRS_IT_SYNCOK SYNC event OK interrupt + * @arg @ref RCC_CRS_IT_SYNCWARN SYNC warning interrupt + * @arg @ref RCC_CRS_IT_ERR Synchronization or trimming error interrupt + * @arg @ref RCC_CRS_IT_ESYNC Expected SYNC interrupt + * @retval None + */ +#define __HAL_RCC_CRS_DISABLE_IT(__INTERRUPT__) CLEAR_BIT(CRS->CR, (__INTERRUPT__)) + +/** @brief Check whether the CRS interrupt has occurred or not. + * @param __INTERRUPT__ specifies the CRS interrupt source to check. + * This parameter can be one of the following values: + * @arg @ref RCC_CRS_IT_SYNCOK SYNC event OK interrupt + * @arg @ref RCC_CRS_IT_SYNCWARN SYNC warning interrupt + * @arg @ref RCC_CRS_IT_ERR Synchronization or trimming error interrupt + * @arg @ref RCC_CRS_IT_ESYNC Expected SYNC interrupt + * @retval The new state of __INTERRUPT__ (SET or RESET). + */ +#define __HAL_RCC_CRS_GET_IT_SOURCE(__INTERRUPT__) ((READ_BIT(CRS->CR, (__INTERRUPT__)) != 0U) ? SET : RESET) + +/** @brief Clear the CRS interrupt pending bits + * @param __INTERRUPT__ specifies the interrupt pending bit to clear. + * This parameter can be any combination of the following values: + * @arg @ref RCC_CRS_IT_SYNCOK SYNC event OK interrupt + * @arg @ref RCC_CRS_IT_SYNCWARN SYNC warning interrupt + * @arg @ref RCC_CRS_IT_ERR Synchronization or trimming error interrupt + * @arg @ref RCC_CRS_IT_ESYNC Expected SYNC interrupt + * @arg @ref RCC_CRS_IT_TRIMOVF Trimming overflow or underflow interrupt + * @arg @ref RCC_CRS_IT_SYNCERR SYNC error interrupt + * @arg @ref RCC_CRS_IT_SYNCMISS SYNC missed interrupt + */ +/* CRS IT Error Mask */ +#define RCC_CRS_IT_ERROR_MASK (RCC_CRS_IT_TRIMOVF | RCC_CRS_IT_SYNCERR | RCC_CRS_IT_SYNCMISS) + +#define __HAL_RCC_CRS_CLEAR_IT(__INTERRUPT__) do { \ + if(((__INTERRUPT__) & RCC_CRS_IT_ERROR_MASK) != 0U) \ + { \ + WRITE_REG(CRS->ICR, CRS_ICR_ERRC | ((__INTERRUPT__) & ~RCC_CRS_IT_ERROR_MASK)); \ + } \ + else \ + { \ + WRITE_REG(CRS->ICR, (__INTERRUPT__)); \ + } \ + } while(0) + +/** + * @brief Check whether the specified CRS flag is set or not. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg @ref RCC_CRS_FLAG_SYNCOK SYNC event OK + * @arg @ref RCC_CRS_FLAG_SYNCWARN SYNC warning + * @arg @ref RCC_CRS_FLAG_ERR Error + * @arg @ref RCC_CRS_FLAG_ESYNC Expected SYNC + * @arg @ref RCC_CRS_FLAG_TRIMOVF Trimming overflow or underflow + * @arg @ref RCC_CRS_FLAG_SYNCERR SYNC error + * @arg @ref RCC_CRS_FLAG_SYNCMISS SYNC missed + * @retval The new state of _FLAG_ (TRUE or FALSE). + */ +#define __HAL_RCC_CRS_GET_FLAG(__FLAG__) (READ_BIT(CRS->ISR, (__FLAG__)) == (__FLAG__)) + +/** + * @brief Clear the CRS specified FLAG. + * @param __FLAG__ specifies the flag to clear. + * This parameter can be one of the following values: + * @arg @ref RCC_CRS_FLAG_SYNCOK SYNC event OK + * @arg @ref RCC_CRS_FLAG_SYNCWARN SYNC warning + * @arg @ref RCC_CRS_FLAG_ERR Error + * @arg @ref RCC_CRS_FLAG_ESYNC Expected SYNC + * @arg @ref RCC_CRS_FLAG_TRIMOVF Trimming overflow or underflow + * @arg @ref RCC_CRS_FLAG_SYNCERR SYNC error + * @arg @ref RCC_CRS_FLAG_SYNCMISS SYNC missed + * @note RCC_CRS_FLAG_ERR clears RCC_CRS_FLAG_TRIMOVF, RCC_CRS_FLAG_SYNCERR, RCC_CRS_FLAG_SYNCMISS and consequently RCC_CRS_FLAG_ERR + * @retval None + */ + +/* CRS Flag Error Mask */ +#define RCC_CRS_FLAG_ERROR_MASK (RCC_CRS_FLAG_TRIMOVF | RCC_CRS_FLAG_SYNCERR | RCC_CRS_FLAG_SYNCMISS) + +#define __HAL_RCC_CRS_CLEAR_FLAG(__FLAG__) do { \ + if(((__FLAG__) & RCC_CRS_FLAG_ERROR_MASK) != 0U) \ + { \ + WRITE_REG(CRS->ICR, CRS_ICR_ERRC | ((__FLAG__) & ~RCC_CRS_FLAG_ERROR_MASK)); \ + } \ + else \ + { \ + WRITE_REG(CRS->ICR, (__FLAG__)); \ + } \ + } while(0) + + +/** + * @} + */ + +/** @defgroup RCCEx_CRS_Extended_Features RCCEx CRS Extended Features + * @{ + */ +/** + * @brief Enable the oscillator clock for frequency error counter. + * @note when the CEN bit is set the CRS_CFGR register becomes write-protected. + * @retval None + */ +#define __HAL_RCC_CRS_FREQ_ERROR_COUNTER_ENABLE() SET_BIT(CRS->CR, CRS_CR_CEN) + +/** + * @brief Disable the oscillator clock for frequency error counter. + * @retval None + */ +#define __HAL_RCC_CRS_FREQ_ERROR_COUNTER_DISABLE() CLEAR_BIT(CRS->CR, CRS_CR_CEN) + +/** + * @brief Enable the automatic hardware adjustment of TRIM bits. + * @note When the AUTOTRIMEN bit is set the CRS_CFGR register becomes write-protected. + * @retval None + */ +#define __HAL_RCC_CRS_AUTOMATIC_CALIB_ENABLE() SET_BIT(CRS->CR, CRS_CR_AUTOTRIMEN) + +/** + * @brief Enable or disable the automatic hardware adjustment of TRIM bits. + * @retval None + */ +#define __HAL_RCC_CRS_AUTOMATIC_CALIB_DISABLE() CLEAR_BIT(CRS->CR, CRS_CR_AUTOTRIMEN) + +/** + * @brief Macro to calculate reload value to be set in CRS register according to target and sync frequencies + * @note The RELOAD value should be selected according to the ratio between the target frequency and the frequency + * of the synchronization source after prescaling. It is then decreased by one in order to + * reach the expected synchronization on the zero value. The formula is the following: + * RELOAD = (fTARGET / fSYNC) -1 + * @param __FTARGET__ Target frequency (value in Hz) + * @param __FSYNC__ Synchronization signal frequency (value in Hz) + * @retval None + */ +#define __HAL_RCC_CRS_RELOADVALUE_CALCULATE(__FTARGET__, __FSYNC__) (((__FTARGET__) / (__FSYNC__)) - 1U) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup RCCEx_Exported_Functions + * @{ + */ + +/** @addtogroup RCCEx_Exported_Functions_Group1 + * @{ + */ + +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit); +void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit); +uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk); + +/** + * @} + */ + +/** @addtogroup RCCEx_Exported_Functions_Group2 + * @{ + */ + +void HAL_RCCEx_EnableLSECSS(void); +void HAL_RCCEx_DisableLSECSS(void); +void HAL_RCCEx_EnableLSECSS_IT(void); +void HAL_RCCEx_LSECSS_IRQHandler(void); +void HAL_RCCEx_LSECSS_Callback(void); +void HAL_RCCEx_EnableLSCO(uint32_t LSCOSource); +void HAL_RCCEx_DisableLSCO(void); + +/** + * @} + */ + +/** @addtogroup RCCEx_Exported_Functions_Group3 + * @{ + */ + +void HAL_RCCEx_CRSConfig(RCC_CRSInitTypeDef *pInit); +void HAL_RCCEx_CRSSoftwareSynchronizationGenerate(void); +void HAL_RCCEx_CRSGetSynchronizationInfo(RCC_CRSSynchroInfoTypeDef *pSynchroInfo); +uint32_t HAL_RCCEx_CRSWaitSynchronization(uint32_t Timeout); +void HAL_RCCEx_CRS_IRQHandler(void); +void HAL_RCCEx_CRS_SyncOkCallback(void); +void HAL_RCCEx_CRS_SyncWarnCallback(void); +void HAL_RCCEx_CRS_ExpectedSyncCallback(void); +void HAL_RCCEx_CRS_ErrorCallback(uint32_t Error); + +/** + * @} + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @addtogroup RCCEx_Private_Macros + * @{ + */ + +#define IS_RCC_LSCOSOURCE(__SOURCE__) (((__SOURCE__) == RCC_LSCOSOURCE_LSI) || \ + ((__SOURCE__) == RCC_LSCOSOURCE_LSE)) + +#if defined(STM32G474xx) || defined(STM32G484xx) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC345) == RCC_PERIPHCLK_ADC345) || \ + (((__SELECTION__) & RCC_PERIPHCLK_QSPI) == RCC_PERIPHCLK_QSPI) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC345) == RCC_PERIPHCLK_ADC345) || \ + (((__SELECTION__) & RCC_PERIPHCLK_QSPI) == RCC_PERIPHCLK_QSPI) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) +#elif defined(STM32G473xx) || defined(STM32G483xx) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC345) == RCC_PERIPHCLK_ADC345) || \ + (((__SELECTION__) & RCC_PERIPHCLK_QSPI) == RCC_PERIPHCLK_QSPI) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) + +#elif defined(STM32G471xx) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) + +#elif defined(STM32G431xx) || defined(STM32G441xx) +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) + +#elif defined(STM32G411xB) || defined(STM32G411xC) +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) +#elif defined(STM32G414xx) +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) || \ + (((__SELECTION__) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) +#elif defined(STM32GBK1CB) +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) || \ + (((__SELECTION__) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RNG) == RCC_PERIPHCLK_RNG) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) || \ + (((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) + +#endif /* STM32G474xx || STM32G484xx */ + +#define IS_RCC_USART1CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_USART1CLKSOURCE_PCLK2) || \ + ((__SOURCE__) == RCC_USART1CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_USART1CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_USART1CLKSOURCE_HSI)) + +#define IS_RCC_USART2CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_USART2CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_USART2CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_USART2CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_USART2CLKSOURCE_HSI)) + +#define IS_RCC_USART3CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_USART3CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_USART3CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_USART3CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_USART3CLKSOURCE_HSI)) + +#if defined(UART4) +#define IS_RCC_UART4CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_UART4CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_UART4CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_UART4CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_UART4CLKSOURCE_HSI)) +#endif /* UART4 */ + +#if defined(UART5) +#define IS_RCC_UART5CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_UART5CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_UART5CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_UART5CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_UART5CLKSOURCE_HSI)) + +#endif /* UART5 */ + +#define IS_RCC_LPUART1CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_LPUART1CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_LPUART1CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_LPUART1CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_LPUART1CLKSOURCE_HSI)) + +#define IS_RCC_I2C1CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_I2C1CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_I2C1CLKSOURCE_SYSCLK)|| \ + ((__SOURCE__) == RCC_I2C1CLKSOURCE_HSI)) + +#define IS_RCC_I2C2CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_I2C2CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_I2C2CLKSOURCE_SYSCLK)|| \ + ((__SOURCE__) == RCC_I2C2CLKSOURCE_HSI)) + +#define IS_RCC_I2C3CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_I2C3CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_I2C3CLKSOURCE_SYSCLK)|| \ + ((__SOURCE__) == RCC_I2C3CLKSOURCE_HSI)) + +#if defined(I2C4) + +#define IS_RCC_I2C4CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_I2C4CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_I2C4CLKSOURCE_SYSCLK)|| \ + ((__SOURCE__) == RCC_I2C4CLKSOURCE_HSI)) + +#endif /* I2C4 */ + +#define IS_RCC_LPTIM1CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_LPTIM1CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_LPTIM1CLKSOURCE_LSI) || \ + ((__SOURCE__) == RCC_LPTIM1CLKSOURCE_HSI) || \ + ((__SOURCE__) == RCC_LPTIM1CLKSOURCE_LSE)) + +#if defined(SAI1) +#define IS_RCC_SAI1CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_SAI1CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_SAI1CLKSOURCE_PLL) || \ + ((__SOURCE__) == RCC_SAI1CLKSOURCE_EXT) || \ + ((__SOURCE__) == RCC_SAI1CLKSOURCE_HSI)) +#endif /* SAI1 */ + +#define IS_RCC_I2SCLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_I2SCLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_I2SCLKSOURCE_PLL) || \ + ((__SOURCE__) == RCC_I2SCLKSOURCE_EXT) || \ + ((__SOURCE__) == RCC_I2SCLKSOURCE_HSI)) + +#if defined(FDCAN1) +#define IS_RCC_FDCANCLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_FDCANCLKSOURCE_HSE) || \ + ((__SOURCE__) == RCC_FDCANCLKSOURCE_PLL) || \ + ((__SOURCE__) == RCC_FDCANCLKSOURCE_PCLK1)) + +#endif /* FDCAN1 */ +#define IS_RCC_RNGCLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_RNGCLKSOURCE_HSI48) || \ + ((__SOURCE__) == RCC_RNGCLKSOURCE_PLL)) + +#if defined(USB) +#define IS_RCC_USBCLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_USBCLKSOURCE_HSI48) || \ + ((__SOURCE__) == RCC_USBCLKSOURCE_PLL)) + +#endif /* USB */ + +#define IS_RCC_ADC12CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_ADC12CLKSOURCE_NONE) || \ + ((__SOURCE__) == RCC_ADC12CLKSOURCE_PLL) || \ + ((__SOURCE__) == RCC_ADC12CLKSOURCE_SYSCLK)) + +#if defined(ADC345_COMMON) +#define IS_RCC_ADC345CLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_ADC345CLKSOURCE_NONE) || \ + ((__SOURCE__) == RCC_ADC345CLKSOURCE_PLL) || \ + ((__SOURCE__) == RCC_ADC345CLKSOURCE_SYSCLK)) +#endif /* ADC345_COMMON */ + +#if defined(QUADSPI) + +#define IS_RCC_QSPICLKSOURCE(__SOURCE__) \ + (((__SOURCE__) == RCC_QSPICLKSOURCE_HSI) || \ + ((__SOURCE__) == RCC_QSPICLKSOURCE_SYSCLK)|| \ + ((__SOURCE__) == RCC_QSPICLKSOURCE_PLL)) + +#endif /* QUADSPI */ + +#define IS_RCC_CRS_SYNC_SOURCE(__SOURCE__) (((__SOURCE__) == RCC_CRS_SYNC_SOURCE_GPIO) || \ + ((__SOURCE__) == RCC_CRS_SYNC_SOURCE_LSE) || \ + ((__SOURCE__) == RCC_CRS_SYNC_SOURCE_USB)) + +#define IS_RCC_CRS_SYNC_DIV(__DIV__) (((__DIV__) == RCC_CRS_SYNC_DIV1) || ((__DIV__) == RCC_CRS_SYNC_DIV2) || \ + ((__DIV__) == RCC_CRS_SYNC_DIV4) || ((__DIV__) == RCC_CRS_SYNC_DIV8) || \ + ((__DIV__) == RCC_CRS_SYNC_DIV16) || ((__DIV__) == RCC_CRS_SYNC_DIV32) || \ + ((__DIV__) == RCC_CRS_SYNC_DIV64) || ((__DIV__) == RCC_CRS_SYNC_DIV128)) + +#define IS_RCC_CRS_SYNC_POLARITY(__POLARITY__) (((__POLARITY__) == RCC_CRS_SYNC_POLARITY_RISING) || \ + ((__POLARITY__) == RCC_CRS_SYNC_POLARITY_FALLING)) + +#define IS_RCC_CRS_RELOADVALUE(__VALUE__) (((__VALUE__) <= 0xFFFFU)) + +#define IS_RCC_CRS_ERRORLIMIT(__VALUE__) (((__VALUE__) <= 0xFFU)) + +#define IS_RCC_CRS_HSI48CALIBRATION(__VALUE__) (((__VALUE__) <= 0x3FU)) + +#define IS_RCC_CRS_FREQERRORDIR(__DIR__) (((__DIR__) == RCC_CRS_FREQERRORDIR_UP) || \ + ((__DIR__) == RCC_CRS_FREQERRORDIR_DOWN)) + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_RCC_EX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h new file mode 100644 index 0000000..df1ba62 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h @@ -0,0 +1,2613 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_tim.h + * @author MCD Application Team + * @brief Header file of TIM HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_TIM_H +#define STM32G4xx_HAL_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup TIM + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup TIM_Exported_Types TIM Exported Types + * @{ + */ + +/** + * @brief TIM Time base Configuration Structure definition + */ +typedef struct +{ + uint32_t Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF + Macro __HAL_TIM_CALC_PSC() can be used to calculate prescaler value */ + + uint32_t CounterMode; /*!< Specifies the counter mode. + This parameter can be a value of @ref TIM_Counter_Mode */ + + uint32_t Period; /*!< Specifies the period value to be loaded into the active + Auto-Reload Register at the next update event. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF + (or 0xFFEF if dithering is activated)Macros __HAL_TIM_CALC_PERIOD(), + __HAL_TIM_CALC_PERIOD_DITHER(),__HAL_TIM_CALC_PERIOD_BY_DELAY(), + __HAL_TIM_CALC_PERIOD_DITHER_BY_DELAY()can be used to calculate Period value */ + + uint32_t ClockDivision; /*!< Specifies the clock division. + This parameter can be a value of @ref TIM_ClockDivision */ + + uint32_t RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter + reaches zero, an update event is generated and counting restarts + from the RCR value (N). + This means in PWM mode that (N+1) corresponds to: + - the number of PWM periods in edge-aligned mode + - the number of half PWM period in center-aligned mode + GP timers: this parameter must be a number between Min_Data = 0x00 and + Max_Data = 0xFF. + Advanced timers: this parameter must be a number between Min_Data = 0x0000 and + Max_Data = 0xFFFF. */ + + uint32_t AutoReloadPreload; /*!< Specifies the auto-reload preload. + This parameter can be a value of @ref TIM_AutoReloadPreload */ +} TIM_Base_InitTypeDef; + +/** + * @brief TIM Output Compare Configuration Structure definition + */ +typedef struct +{ + uint32_t OCMode; /*!< Specifies the TIM mode. + This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */ + + uint32_t Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF + (or 0xFFEF if dithering is activated) + Macros __HAL_TIM_CALC_PULSE(), __HAL_TIM_CALC_PULSE_DITHER() can be used to calculate + Pulse value */ + + uint32_t OCPolarity; /*!< Specifies the output polarity. + This parameter can be a value of @ref TIM_Output_Compare_Polarity */ + + uint32_t OCNPolarity; /*!< Specifies the complementary output polarity. + This parameter can be a value of @ref TIM_Output_Compare_N_Polarity + @note This parameter is valid only for timer instances supporting break feature. */ + + uint32_t OCFastMode; /*!< Specifies the Fast mode state. + This parameter can be a value of @ref TIM_Output_Fast_State + @note This parameter is valid only in PWM1 and PWM2 mode. */ + + + uint32_t OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_Output_Compare_Idle_State + @note This parameter is valid only for timer instances supporting break feature. */ + + uint32_t OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State + @note This parameter is valid only for timer instances supporting break feature. */ +} TIM_OC_InitTypeDef; + +/** + * @brief TIM One Pulse Mode Configuration Structure definition + */ +typedef struct +{ + uint32_t OCMode; /*!< Specifies the TIM mode. + This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */ + + uint32_t Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF + (or 0xFFEF if dithering is activated) + Macros __HAL_TIM_CALC_PULSE(), __HAL_TIM_CALC_PULSE_DITHER() can be used to calculate + Pulse value */ + + uint32_t OCPolarity; /*!< Specifies the output polarity. + This parameter can be a value of @ref TIM_Output_Compare_Polarity */ + + uint32_t OCNPolarity; /*!< Specifies the complementary output polarity. + This parameter can be a value of @ref TIM_Output_Compare_N_Polarity + @note This parameter is valid only for timer instances supporting break feature. */ + + uint32_t OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_Output_Compare_Idle_State + @note This parameter is valid only for timer instances supporting break feature. */ + + uint32_t OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State + @note This parameter is valid only for timer instances supporting break feature. */ + + uint32_t ICPolarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Input_Capture_Polarity */ + + uint32_t ICSelection; /*!< Specifies the input. + This parameter can be a value of @ref TIM_Input_Capture_Selection */ + + uint32_t ICFilter; /*!< Specifies the input capture filter. + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ +} TIM_OnePulse_InitTypeDef; + +/** + * @brief TIM Input Capture Configuration Structure definition + */ +typedef struct +{ + uint32_t ICPolarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Input_Capture_Polarity */ + + uint32_t ICSelection; /*!< Specifies the input. + This parameter can be a value of @ref TIM_Input_Capture_Selection */ + + uint32_t ICPrescaler; /*!< Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_Input_Capture_Prescaler */ + + uint32_t ICFilter; /*!< Specifies the input capture filter. + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ +} TIM_IC_InitTypeDef; + +/** + * @brief TIM Encoder Configuration Structure definition + */ +typedef struct +{ + uint32_t EncoderMode; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Encoder_Mode */ + + uint32_t IC1Polarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Encoder_Input_Polarity */ + + uint32_t IC1Selection; /*!< Specifies the input. + This parameter can be a value of @ref TIM_Input_Capture_Selection */ + + uint32_t IC1Prescaler; /*!< Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_Input_Capture_Prescaler */ + + uint32_t IC1Filter; /*!< Specifies the input capture filter. + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + + uint32_t IC2Polarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Encoder_Input_Polarity */ + + uint32_t IC2Selection; /*!< Specifies the input. + This parameter can be a value of @ref TIM_Input_Capture_Selection */ + + uint32_t IC2Prescaler; /*!< Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_Input_Capture_Prescaler */ + + uint32_t IC2Filter; /*!< Specifies the input capture filter. + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ +} TIM_Encoder_InitTypeDef; + +/** + * @brief Clock Configuration Handle Structure definition + */ +typedef struct +{ + uint32_t ClockSource; /*!< TIM clock sources + This parameter can be a value of @ref TIM_Clock_Source */ + uint32_t ClockPolarity; /*!< TIM clock polarity + This parameter can be a value of @ref TIM_Clock_Polarity */ + uint32_t ClockPrescaler; /*!< TIM clock prescaler + This parameter can be a value of @ref TIM_Clock_Prescaler */ + uint32_t ClockFilter; /*!< TIM clock filter + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ +} TIM_ClockConfigTypeDef; + +/** + * @brief TIM Clear Input Configuration Handle Structure definition + */ +typedef struct +{ + uint32_t ClearInputState; /*!< TIM clear Input state + This parameter can be ENABLE or DISABLE */ + uint32_t ClearInputSource; /*!< TIM clear Input sources + This parameter can be a value of @ref TIM_ClearInput_Source */ + uint32_t ClearInputPolarity; /*!< TIM Clear Input polarity + This parameter can be a value of @ref TIM_ClearInput_Polarity */ + uint32_t ClearInputPrescaler; /*!< TIM Clear Input prescaler + This parameter must be 0: When OCRef clear feature is used with ETR source, + ETR prescaler must be off */ + uint32_t ClearInputFilter; /*!< TIM Clear Input filter + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ +} TIM_ClearInputConfigTypeDef; + +/** + * @brief TIM Master configuration Structure definition + * @note Advanced timers provide TRGO2 internal line which is redirected + * to the ADC + */ +typedef struct +{ + uint32_t MasterOutputTrigger; /*!< Trigger output (TRGO) selection + This parameter can be a value of @ref TIM_Master_Mode_Selection */ + uint32_t MasterOutputTrigger2; /*!< Trigger output2 (TRGO2) selection + This parameter can be a value of @ref TIM_Master_Mode_Selection_2 */ + uint32_t MasterSlaveMode; /*!< Master/slave mode selection + This parameter can be a value of @ref TIM_Master_Slave_Mode + @note When the Master/slave mode is enabled, the effect of + an event on the trigger input (TRGI) is delayed to allow a + perfect synchronization between the current timer and its + slaves (through TRGO). It is not mandatory in case of timer + synchronization mode. */ +} TIM_MasterConfigTypeDef; + +/** + * @brief TIM Slave configuration Structure definition + */ +typedef struct +{ + uint32_t SlaveMode; /*!< Slave mode selection + This parameter can be a value of @ref TIM_Slave_Mode */ + uint32_t InputTrigger; /*!< Input Trigger source + This parameter can be a value of @ref TIM_Trigger_Selection */ + uint32_t TriggerPolarity; /*!< Input Trigger polarity + This parameter can be a value of @ref TIM_Trigger_Polarity */ + uint32_t TriggerPrescaler; /*!< Input trigger prescaler + This parameter can be a value of @ref TIM_Trigger_Prescaler */ + uint32_t TriggerFilter; /*!< Input trigger filter + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + +} TIM_SlaveConfigTypeDef; + +/** + * @brief TIM Break input(s) and Dead time configuration Structure definition + * @note 2 break inputs can be configured (BKIN and BKIN2) with configurable + * filter and polarity. + */ +typedef struct +{ + uint32_t OffStateRunMode; /*!< TIM off state in run mode, This parameter can be a value of @ref TIM_OSSR_Off_State_Selection_for_Run_mode_state */ + + uint32_t OffStateIDLEMode; /*!< TIM off state in IDLE mode, This parameter can be a value of @ref TIM_OSSI_Off_State_Selection_for_Idle_mode_state */ + + uint32_t LockLevel; /*!< TIM Lock level, This parameter can be a value of @ref TIM_Lock_level */ + + uint32_t DeadTime; /*!< TIM dead Time, This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF */ + + uint32_t BreakState; /*!< TIM Break State, This parameter can be a value of @ref TIM_Break_Input_enable_disable */ + + uint32_t BreakPolarity; /*!< TIM Break input polarity, This parameter can be a value of @ref TIM_Break_Polarity */ + + uint32_t BreakFilter; /*!< Specifies the break input filter.This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + + uint32_t BreakAFMode; /*!< Specifies the alternate function mode of the break input.This parameter can be a value of @ref TIM_Break_Input_AF_Mode */ + + uint32_t Break2State; /*!< TIM Break2 State, This parameter can be a value of @ref TIM_Break2_Input_enable_disable */ + + uint32_t Break2Polarity; /*!< TIM Break2 input polarity, This parameter can be a value of @ref TIM_Break2_Polarity */ + + uint32_t Break2Filter; /*!< TIM break2 input filter.This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + + uint32_t Break2AFMode; /*!< Specifies the alternate function mode of the break2 input.This parameter can be a value of @ref TIM_Break2_Input_AF_Mode */ + + uint32_t AutomaticOutput; /*!< TIM Automatic Output Enable state, This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */ + +} TIM_BreakDeadTimeConfigTypeDef; + +/** + * @brief HAL State structures definition + */ +typedef enum +{ + HAL_TIM_STATE_RESET = 0x00U, /*!< Peripheral not yet initialized or disabled */ + HAL_TIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ + HAL_TIM_STATE_BUSY = 0x02U, /*!< An internal process is ongoing */ + HAL_TIM_STATE_TIMEOUT = 0x03U, /*!< Timeout state */ + HAL_TIM_STATE_ERROR = 0x04U /*!< Reception process is ongoing */ +} HAL_TIM_StateTypeDef; + +/** + * @brief TIM Channel States definition + */ +typedef enum +{ + HAL_TIM_CHANNEL_STATE_RESET = 0x00U, /*!< TIM Channel initial state */ + HAL_TIM_CHANNEL_STATE_READY = 0x01U, /*!< TIM Channel ready for use */ + HAL_TIM_CHANNEL_STATE_BUSY = 0x02U, /*!< An internal process is ongoing on the TIM channel */ +} HAL_TIM_ChannelStateTypeDef; + +/** + * @brief DMA Burst States definition + */ +typedef enum +{ + HAL_DMA_BURST_STATE_RESET = 0x00U, /*!< DMA Burst initial state */ + HAL_DMA_BURST_STATE_READY = 0x01U, /*!< DMA Burst ready for use */ + HAL_DMA_BURST_STATE_BUSY = 0x02U, /*!< Ongoing DMA Burst */ +} HAL_TIM_DMABurstStateTypeDef; + +/** + * @brief HAL Active channel structures definition + */ +typedef enum +{ + HAL_TIM_ACTIVE_CHANNEL_1 = 0x01U, /*!< The active channel is 1 */ + HAL_TIM_ACTIVE_CHANNEL_2 = 0x02U, /*!< The active channel is 2 */ + HAL_TIM_ACTIVE_CHANNEL_3 = 0x04U, /*!< The active channel is 3 */ + HAL_TIM_ACTIVE_CHANNEL_4 = 0x08U, /*!< The active channel is 4 */ + HAL_TIM_ACTIVE_CHANNEL_5 = 0x10U, /*!< The active channel is 5 */ + HAL_TIM_ACTIVE_CHANNEL_6 = 0x20U, /*!< The active channel is 6 */ + HAL_TIM_ACTIVE_CHANNEL_CLEARED = 0x00U /*!< All active channels cleared */ +} HAL_TIM_ActiveChannel; + +/** + * @brief TIM Time Base Handle Structure definition + */ +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +typedef struct __TIM_HandleTypeDef +#else +typedef struct +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +{ + TIM_TypeDef *Instance; /*!< Register base address */ + TIM_Base_InitTypeDef Init; /*!< TIM Time Base required parameters */ + HAL_TIM_ActiveChannel Channel; /*!< Active channel */ + DMA_HandleTypeDef *hdma[7]; /*!< DMA Handlers array + This array is accessed by a @ref DMA_Handle_index */ + HAL_LockTypeDef Lock; /*!< Locking object */ + __IO HAL_TIM_StateTypeDef State; /*!< TIM operation state */ + __IO HAL_TIM_ChannelStateTypeDef ChannelState[6]; /*!< TIM channel operation state */ + __IO HAL_TIM_ChannelStateTypeDef ChannelNState[4]; /*!< TIM complementary channel operation state */ + __IO HAL_TIM_DMABurstStateTypeDef DMABurstState; /*!< DMA burst operation state */ + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + void (* Base_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Base Msp Init Callback */ + void (* Base_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Base Msp DeInit Callback */ + void (* IC_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM IC Msp Init Callback */ + void (* IC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM IC Msp DeInit Callback */ + void (* OC_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM OC Msp Init Callback */ + void (* OC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM OC Msp DeInit Callback */ + void (* PWM_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM PWM Msp Init Callback */ + void (* PWM_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM PWM Msp DeInit Callback */ + void (* OnePulse_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM One Pulse Msp Init Callback */ + void (* OnePulse_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM One Pulse Msp DeInit Callback */ + void (* Encoder_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Encoder Msp Init Callback */ + void (* Encoder_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Encoder Msp DeInit Callback */ + void (* HallSensor_MspInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Hall Sensor Msp Init Callback */ + void (* HallSensor_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Hall Sensor Msp DeInit Callback */ + void (* PeriodElapsedCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Period Elapsed Callback */ + void (* PeriodElapsedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Period Elapsed half complete Callback */ + void (* TriggerCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Trigger Callback */ + void (* TriggerHalfCpltCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Trigger half complete Callback */ + void (* IC_CaptureCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Input Capture Callback */ + void (* IC_CaptureHalfCpltCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Input Capture half complete Callback */ + void (* OC_DelayElapsedCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Output Compare Delay Elapsed Callback */ + void (* PWM_PulseFinishedCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM PWM Pulse Finished Callback */ + void (* PWM_PulseFinishedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM PWM Pulse Finished half complete Callback */ + void (* ErrorCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Error Callback */ + void (* CommutationCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Commutation Callback */ + void (* CommutationHalfCpltCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Commutation half complete Callback */ + void (* BreakCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Break Callback */ + void (* Break2Callback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Break2 Callback */ + void (* EncoderIndexCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Encoder Index Callback */ + void (* DirectionChangeCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Direction Change Callback */ + void (* IndexErrorCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Index Error Callback */ + void (* TransitionErrorCallback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Transition Error Callback */ +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} TIM_HandleTypeDef; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +/** + * @brief HAL TIM Callback ID enumeration definition + */ +typedef enum +{ + HAL_TIM_BASE_MSPINIT_CB_ID = 0x00U /*!< TIM Base MspInit Callback ID */ + , HAL_TIM_BASE_MSPDEINIT_CB_ID = 0x01U /*!< TIM Base MspDeInit Callback ID */ + , HAL_TIM_IC_MSPINIT_CB_ID = 0x02U /*!< TIM IC MspInit Callback ID */ + , HAL_TIM_IC_MSPDEINIT_CB_ID = 0x03U /*!< TIM IC MspDeInit Callback ID */ + , HAL_TIM_OC_MSPINIT_CB_ID = 0x04U /*!< TIM OC MspInit Callback ID */ + , HAL_TIM_OC_MSPDEINIT_CB_ID = 0x05U /*!< TIM OC MspDeInit Callback ID */ + , HAL_TIM_PWM_MSPINIT_CB_ID = 0x06U /*!< TIM PWM MspInit Callback ID */ + , HAL_TIM_PWM_MSPDEINIT_CB_ID = 0x07U /*!< TIM PWM MspDeInit Callback ID */ + , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID = 0x08U /*!< TIM One Pulse MspInit Callback ID */ + , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID = 0x09U /*!< TIM One Pulse MspDeInit Callback ID */ + , HAL_TIM_ENCODER_MSPINIT_CB_ID = 0x0AU /*!< TIM Encoder MspInit Callback ID */ + , HAL_TIM_ENCODER_MSPDEINIT_CB_ID = 0x0BU /*!< TIM Encoder MspDeInit Callback ID */ + , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID = 0x0CU /*!< TIM Hall Sensor MspDeInit Callback ID */ + , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID = 0x0DU /*!< TIM Hall Sensor MspDeInit Callback ID */ + , HAL_TIM_PERIOD_ELAPSED_CB_ID = 0x0EU /*!< TIM Period Elapsed Callback ID */ + , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID = 0x0FU /*!< TIM Period Elapsed half complete Callback ID */ + , HAL_TIM_TRIGGER_CB_ID = 0x10U /*!< TIM Trigger Callback ID */ + , HAL_TIM_TRIGGER_HALF_CB_ID = 0x11U /*!< TIM Trigger half complete Callback ID */ + , HAL_TIM_IC_CAPTURE_CB_ID = 0x12U /*!< TIM Input Capture Callback ID */ + , HAL_TIM_IC_CAPTURE_HALF_CB_ID = 0x13U /*!< TIM Input Capture half complete Callback ID */ + , HAL_TIM_OC_DELAY_ELAPSED_CB_ID = 0x14U /*!< TIM Output Compare Delay Elapsed Callback ID */ + , HAL_TIM_PWM_PULSE_FINISHED_CB_ID = 0x15U /*!< TIM PWM Pulse Finished Callback ID */ + , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U /*!< TIM PWM Pulse Finished half complete Callback ID */ + , HAL_TIM_ERROR_CB_ID = 0x17U /*!< TIM Error Callback ID */ + , HAL_TIM_COMMUTATION_CB_ID = 0x18U /*!< TIM Commutation Callback ID */ + , HAL_TIM_COMMUTATION_HALF_CB_ID = 0x19U /*!< TIM Commutation half complete Callback ID */ + , HAL_TIM_BREAK_CB_ID = 0x1AU /*!< TIM Break Callback ID */ + , HAL_TIM_BREAK2_CB_ID = 0x1BU /*!< TIM Break2 Callback ID */ + , HAL_TIM_ENCODER_INDEX_CB_ID = 0x1CU /*!< TIM Encoder Index Callback ID */ + , HAL_TIM_DIRECTION_CHANGE_CB_ID = 0x1DU /*!< TIM Direction Change Callback ID */ + , HAL_TIM_INDEX_ERROR_CB_ID = 0x1EU /*!< TIM Index Error Callback ID */ + , HAL_TIM_TRANSITION_ERROR_CB_ID = 0x1FU /*!< TIM Transition Error Callback ID */ +} HAL_TIM_CallbackIDTypeDef; + +/** + * @brief HAL TIM Callback pointer definition + */ +typedef void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim); /*!< pointer to the TIM callback function */ + +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ +/* End of exported types -----------------------------------------------------*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup TIM_Exported_Constants TIM Exported Constants + * @{ + */ + +/** @defgroup TIM_ClearInput_Source TIM Clear Input Source + * @{ + */ +#define TIM_CLEARINPUTSOURCE_NONE 0xFFFFFFFFU /*!< OCREF_CLR is disabled */ +#define TIM_CLEARINPUTSOURCE_ETR 0x00000001U /*!< OCREF_CLR is connected to ETRF input */ +#define TIM_CLEARINPUTSOURCE_COMP1 0x00000000U /*!< OCREF_CLR_INT is connected to COMP1 output */ +#define TIM_CLEARINPUTSOURCE_COMP2 TIM1_AF2_OCRSEL_0 /*!< OCREF_CLR_INT is connected to COMP2 output */ +#define TIM_CLEARINPUTSOURCE_COMP3 TIM1_AF2_OCRSEL_1 /*!< OCREF_CLR_INT is connected to COMP3 output */ +#define TIM_CLEARINPUTSOURCE_COMP4 (TIM1_AF2_OCRSEL_1 | TIM1_AF2_OCRSEL_0) /*!< OCREF_CLR_INT is connected to COMP4 output */ +#if defined (COMP5) +#define TIM_CLEARINPUTSOURCE_COMP5 TIM1_AF2_OCRSEL_2 /*!< OCREF_CLR_INT is connected to COMP5 output */ +#endif /* COMP5 */ +#if defined (COMP6) +#define TIM_CLEARINPUTSOURCE_COMP6 (TIM1_AF2_OCRSEL_2 | TIM1_AF2_OCRSEL_0) /*!< OCREF_CLR_INT is connected to COMP6 output */ +#endif /* COMP6 */ +#if defined (COMP7) +#define TIM_CLEARINPUTSOURCE_COMP7 (TIM1_AF2_OCRSEL_2 | TIM1_AF2_OCRSEL_1) /*!< OCREF_CLR_INT is connected to COMP7 output */ +#endif /* COMP7 */ +/** + * @} + */ + +/** @defgroup TIM_DMA_Base_address TIM DMA Base Address + * @{ + */ +#define TIM_DMABASE_CR1 0x00000000U +#define TIM_DMABASE_CR2 0x00000001U +#define TIM_DMABASE_SMCR 0x00000002U +#define TIM_DMABASE_DIER 0x00000003U +#define TIM_DMABASE_SR 0x00000004U +#define TIM_DMABASE_EGR 0x00000005U +#define TIM_DMABASE_CCMR1 0x00000006U +#define TIM_DMABASE_CCMR2 0x00000007U +#define TIM_DMABASE_CCER 0x00000008U +#define TIM_DMABASE_CNT 0x00000009U +#define TIM_DMABASE_PSC 0x0000000AU +#define TIM_DMABASE_ARR 0x0000000BU +#define TIM_DMABASE_RCR 0x0000000CU +#define TIM_DMABASE_CCR1 0x0000000DU +#define TIM_DMABASE_CCR2 0x0000000EU +#define TIM_DMABASE_CCR3 0x0000000FU +#define TIM_DMABASE_CCR4 0x00000010U +#define TIM_DMABASE_BDTR 0x00000011U +#define TIM_DMABASE_CCR5 0x00000012U +#define TIM_DMABASE_CCR6 0x00000013U +#define TIM_DMABASE_CCMR3 0x00000014U +#define TIM_DMABASE_DTR2 0x00000015U +#define TIM_DMABASE_ECR 0x00000016U +#define TIM_DMABASE_TISEL 0x00000017U +#define TIM_DMABASE_AF1 0x00000018U +#define TIM_DMABASE_AF2 0x00000019U +#define TIM_DMABASE_OR 0x0000001AU +/** + * @} + */ + +/** @defgroup TIM_Event_Source TIM Event Source + * @{ + */ +#define TIM_EVENTSOURCE_UPDATE TIM_EGR_UG /*!< Reinitialize the counter and generates an update of the registers */ +#define TIM_EVENTSOURCE_CC1 TIM_EGR_CC1G /*!< A capture/compare event is generated on channel 1 */ +#define TIM_EVENTSOURCE_CC2 TIM_EGR_CC2G /*!< A capture/compare event is generated on channel 2 */ +#define TIM_EVENTSOURCE_CC3 TIM_EGR_CC3G /*!< A capture/compare event is generated on channel 3 */ +#define TIM_EVENTSOURCE_CC4 TIM_EGR_CC4G /*!< A capture/compare event is generated on channel 4 */ +#define TIM_EVENTSOURCE_COM TIM_EGR_COMG /*!< A commutation event is generated */ +#define TIM_EVENTSOURCE_TRIGGER TIM_EGR_TG /*!< A trigger event is generated */ +#define TIM_EVENTSOURCE_BREAK TIM_EGR_BG /*!< A break event is generated */ +#define TIM_EVENTSOURCE_BREAK2 TIM_EGR_B2G /*!< A break 2 event is generated */ +/** + * @} + */ + +/** @defgroup TIM_Input_Channel_Polarity TIM Input Channel polarity + * @{ + */ +#define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U /*!< Polarity for TIx source */ +#define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P /*!< Polarity for TIx source */ +#define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP) /*!< Polarity for TIx source */ +/** + * @} + */ + +/** @defgroup TIM_ETR_Polarity TIM ETR Polarity + * @{ + */ +#define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP /*!< Polarity for ETR source */ +#define TIM_ETRPOLARITY_NONINVERTED 0x00000000U /*!< Polarity for ETR source */ +/** + * @} + */ + +/** @defgroup TIM_ETR_Prescaler TIM ETR Prescaler + * @{ + */ +#define TIM_ETRPRESCALER_DIV1 0x00000000U /*!< No prescaler is used */ +#define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0 /*!< ETR input source is divided by 2 */ +#define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1 /*!< ETR input source is divided by 4 */ +#define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS /*!< ETR input source is divided by 8 */ +/** + * @} + */ + +/** @defgroup TIM_Counter_Mode TIM Counter Mode + * @{ + */ +#define TIM_COUNTERMODE_UP 0x00000000U /*!< Counter used as up-counter */ +#define TIM_COUNTERMODE_DOWN TIM_CR1_DIR /*!< Counter used as down-counter */ +#define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0 /*!< Center-aligned mode 1 */ +#define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1 /*!< Center-aligned mode 2 */ +#define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS /*!< Center-aligned mode 3 */ +/** + * @} + */ + +/** @defgroup TIM_Update_Interrupt_Flag_Remap TIM Update Interrupt Flag Remap + * @{ + */ +#define TIM_UIFREMAP_DISABLE 0x00000000U /*!< Update interrupt flag remap disabled */ +#define TIM_UIFREMAP_ENABLE TIM_CR1_UIFREMAP /*!< Update interrupt flag remap enabled */ +/** + * @} + */ + +/** @defgroup TIM_ClockDivision TIM Clock Division + * @{ + */ +#define TIM_CLOCKDIVISION_DIV1 0x00000000U /*!< Clock division: tDTS=tCK_INT */ +#define TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0 /*!< Clock division: tDTS=2*tCK_INT */ +#define TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1 /*!< Clock division: tDTS=4*tCK_INT */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_State TIM Output Compare State + * @{ + */ +#define TIM_OUTPUTSTATE_DISABLE 0x00000000U /*!< Capture/Compare 1 output disabled */ +#define TIM_OUTPUTSTATE_ENABLE TIM_CCER_CC1E /*!< Capture/Compare 1 output enabled */ +/** + * @} + */ + +/** @defgroup TIM_AutoReloadPreload TIM Auto-Reload Preload + * @{ + */ +#define TIM_AUTORELOAD_PRELOAD_DISABLE 0x00000000U /*!< TIMx_ARR register is not buffered */ +#define TIM_AUTORELOAD_PRELOAD_ENABLE TIM_CR1_ARPE /*!< TIMx_ARR register is buffered */ + +/** + * @} + */ + +/** @defgroup TIM_Output_Fast_State TIM Output Fast State + * @{ + */ +#define TIM_OCFAST_DISABLE 0x00000000U /*!< Output Compare fast disable */ +#define TIM_OCFAST_ENABLE TIM_CCMR1_OC1FE /*!< Output Compare fast enable */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_N_State TIM Complementary Output Compare State + * @{ + */ +#define TIM_OUTPUTNSTATE_DISABLE 0x00000000U /*!< OCxN is disabled */ +#define TIM_OUTPUTNSTATE_ENABLE TIM_CCER_CC1NE /*!< OCxN is enabled */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_Polarity TIM Output Compare Polarity + * @{ + */ +#define TIM_OCPOLARITY_HIGH 0x00000000U /*!< Capture/Compare output polarity */ +#define TIM_OCPOLARITY_LOW TIM_CCER_CC1P /*!< Capture/Compare output polarity */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_N_Polarity TIM Complementary Output Compare Polarity + * @{ + */ +#define TIM_OCNPOLARITY_HIGH 0x00000000U /*!< Capture/Compare complementary output polarity */ +#define TIM_OCNPOLARITY_LOW TIM_CCER_CC1NP /*!< Capture/Compare complementary output polarity */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_Idle_State TIM Output Compare Idle State + * @{ + */ +#define TIM_OCIDLESTATE_SET TIM_CR2_OIS1 /*!< Output Idle state: OCx=1 when MOE=0 */ +#define TIM_OCIDLESTATE_RESET 0x00000000U /*!< Output Idle state: OCx=0 when MOE=0 */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_N_Idle_State TIM Complementary Output Compare Idle State + * @{ + */ +#define TIM_OCNIDLESTATE_SET TIM_CR2_OIS1N /*!< Complementary output Idle state: OCxN=1 when MOE=0 */ +#define TIM_OCNIDLESTATE_RESET 0x00000000U /*!< Complementary output Idle state: OCxN=0 when MOE=0 */ +/** + * @} + */ + +/** @defgroup TIM_Input_Capture_Polarity TIM Input Capture Polarity + * @{ + */ +#define TIM_ICPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING /*!< Capture triggered by rising edge on timer input */ +#define TIM_ICPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING /*!< Capture triggered by falling edge on timer input */ +#define TIM_ICPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE /*!< Capture triggered by both rising and falling edges on timer input*/ +/** + * @} + */ + +/** @defgroup TIM_Encoder_Input_Polarity TIM Encoder Input Polarity + * @{ + */ +#define TIM_ENCODERINPUTPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING /*!< Encoder input with rising edge polarity */ +#define TIM_ENCODERINPUTPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING /*!< Encoder input with falling edge polarity */ +/** + * @} + */ + +/** @defgroup TIM_Input_Capture_Selection TIM Input Capture Selection + * @{ + */ +#define TIM_ICSELECTION_DIRECTTI TIM_CCMR1_CC1S_0 /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to IC1, IC2, IC3 or IC4, respectively */ +#define TIM_ICSELECTION_INDIRECTTI TIM_CCMR1_CC1S_1 /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to IC2, IC1, IC4 or IC3, respectively */ +#define TIM_ICSELECTION_TRC TIM_CCMR1_CC1S /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC */ +/** + * @} + */ + +/** @defgroup TIM_Input_Capture_Prescaler TIM Input Capture Prescaler + * @{ + */ +#define TIM_ICPSC_DIV1 0x00000000U /*!< Capture performed each time an edge is detected on the capture input */ +#define TIM_ICPSC_DIV2 TIM_CCMR1_IC1PSC_0 /*!< Capture performed once every 2 events */ +#define TIM_ICPSC_DIV4 TIM_CCMR1_IC1PSC_1 /*!< Capture performed once every 4 events */ +#define TIM_ICPSC_DIV8 TIM_CCMR1_IC1PSC /*!< Capture performed once every 8 events */ +/** + * @} + */ + +/** @defgroup TIM_One_Pulse_Mode TIM One Pulse Mode + * @{ + */ +#define TIM_OPMODE_SINGLE TIM_CR1_OPM /*!< Counter stops counting at the next update event */ +#define TIM_OPMODE_REPETITIVE 0x00000000U /*!< Counter is not stopped at update event */ +/** + * @} + */ + +/** @defgroup TIM_Encoder_Mode TIM Encoder Mode + * @{ + */ +#define TIM_ENCODERMODE_TI1 TIM_SMCR_SMS_0 /*!< Quadrature encoder mode 1, x2 mode, counts up/down on TI1FP1 edge depending on TI2FP2 level */ +#define TIM_ENCODERMODE_TI2 TIM_SMCR_SMS_1 /*!< Quadrature encoder mode 2, x2 mode, counts up/down on TI2FP2 edge depending on TI1FP1 level. */ +#define TIM_ENCODERMODE_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0) /*!< Quadrature encoder mode 3, x4 mode, counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input. */ +#define TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X2 (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_1) /*!< Encoder mode: Clock plus direction, x2 mode */ +#define TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X1 (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0) /*!< Encoder mode: Clock plus direction, x1 mode, TI2FP2 edge sensitivity is set by CC2P */ +#define TIM_ENCODERMODE_DIRECTIONALCLOCK_X2 (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_2) /*!< Encoder mode: Directional Clock, x2 mode */ +#define TIM_ENCODERMODE_DIRECTIONALCLOCK_X1_TI12 (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0) /*!< Encoder mode: Directional Clock, x1 mode, TI1FP1 and TI2FP2 edge sensitivity is set by CC1P and CC2P */ +#define TIM_ENCODERMODE_X1_TI1 (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1) /*!< Quadrature encoder mode: x1 mode, counting on TI1FP1 edges only, edge sensitivity is set by CC1P */ +#define TIM_ENCODERMODE_X1_TI2 (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0) /*!< Quadrature encoder mode: x1 mode, counting on TI2FP2 edges only, edge sensitivity is set by CC1P */ +/** + * @} + */ + +/** @defgroup TIM_Interrupt_definition TIM interrupt Definition + * @{ + */ +#define TIM_IT_UPDATE TIM_DIER_UIE /*!< Update interrupt */ +#define TIM_IT_CC1 TIM_DIER_CC1IE /*!< Capture/Compare 1 interrupt */ +#define TIM_IT_CC2 TIM_DIER_CC2IE /*!< Capture/Compare 2 interrupt */ +#define TIM_IT_CC3 TIM_DIER_CC3IE /*!< Capture/Compare 3 interrupt */ +#define TIM_IT_CC4 TIM_DIER_CC4IE /*!< Capture/Compare 4 interrupt */ +#define TIM_IT_COM TIM_DIER_COMIE /*!< Commutation interrupt */ +#define TIM_IT_TRIGGER TIM_DIER_TIE /*!< Trigger interrupt */ +#define TIM_IT_BREAK TIM_DIER_BIE /*!< Break interrupt */ +#define TIM_IT_IDX TIM_DIER_IDXIE /*!< Index interrupt */ +#define TIM_IT_DIR TIM_DIER_DIRIE /*!< Direction change interrupt */ +#define TIM_IT_IERR TIM_DIER_IERRIE /*!< Index error interrupt */ +#define TIM_IT_TERR TIM_DIER_TERRIE /*!< Transition error interrupt */ +/** + * @} + */ + +/** @defgroup TIM_Commutation_Source TIM Commutation Source + * @{ + */ +#define TIM_COMMUTATION_TRGI TIM_CR2_CCUS /*!< When Capture/compare control bits are preloaded, they are updated by setting the COMG bit or when an rising edge occurs on trigger input */ +#define TIM_COMMUTATION_SOFTWARE 0x00000000U /*!< When Capture/compare control bits are preloaded, they are updated by setting the COMG bit */ +/** + * @} + */ + +/** @defgroup TIM_DMA_sources TIM DMA Sources + * @{ + */ +#define TIM_DMA_UPDATE TIM_DIER_UDE /*!< DMA request is triggered by the update event */ +#define TIM_DMA_CC1 TIM_DIER_CC1DE /*!< DMA request is triggered by the capture/compare macth 1 event */ +#define TIM_DMA_CC2 TIM_DIER_CC2DE /*!< DMA request is triggered by the capture/compare macth 2 event event */ +#define TIM_DMA_CC3 TIM_DIER_CC3DE /*!< DMA request is triggered by the capture/compare macth 3 event event */ +#define TIM_DMA_CC4 TIM_DIER_CC4DE /*!< DMA request is triggered by the capture/compare macth 4 event event */ +#define TIM_DMA_COM TIM_DIER_COMDE /*!< DMA request is triggered by the commutation event */ +#define TIM_DMA_TRIGGER TIM_DIER_TDE /*!< DMA request is triggered by the trigger event */ +/** + * @} + */ + +/** @defgroup TIM_CC_DMA_Request CCx DMA request selection + * @{ + */ +#define TIM_CCDMAREQUEST_CC 0x00000000U /*!< CCx DMA request sent when capture or compare match event occurs */ +#define TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS /*!< CCx DMA requests sent when update event occurs */ +/** + * @} + */ + +/** @defgroup TIM_Flag_definition TIM Flag Definition + * @{ + */ +#define TIM_FLAG_UPDATE TIM_SR_UIF /*!< Update interrupt flag */ +#define TIM_FLAG_CC1 TIM_SR_CC1IF /*!< Capture/Compare 1 interrupt flag */ +#define TIM_FLAG_CC2 TIM_SR_CC2IF /*!< Capture/Compare 2 interrupt flag */ +#define TIM_FLAG_CC3 TIM_SR_CC3IF /*!< Capture/Compare 3 interrupt flag */ +#define TIM_FLAG_CC4 TIM_SR_CC4IF /*!< Capture/Compare 4 interrupt flag */ +#define TIM_FLAG_CC5 TIM_SR_CC5IF /*!< Capture/Compare 5 interrupt flag */ +#define TIM_FLAG_CC6 TIM_SR_CC6IF /*!< Capture/Compare 6 interrupt flag */ +#define TIM_FLAG_COM TIM_SR_COMIF /*!< Commutation interrupt flag */ +#define TIM_FLAG_TRIGGER TIM_SR_TIF /*!< Trigger interrupt flag */ +#define TIM_FLAG_BREAK TIM_SR_BIF /*!< Break interrupt flag */ +#define TIM_FLAG_BREAK2 TIM_SR_B2IF /*!< Break 2 interrupt flag */ +#define TIM_FLAG_SYSTEM_BREAK TIM_SR_SBIF /*!< System Break interrupt flag */ +#define TIM_FLAG_CC1OF TIM_SR_CC1OF /*!< Capture 1 overcapture flag */ +#define TIM_FLAG_CC2OF TIM_SR_CC2OF /*!< Capture 2 overcapture flag */ +#define TIM_FLAG_CC3OF TIM_SR_CC3OF /*!< Capture 3 overcapture flag */ +#define TIM_FLAG_CC4OF TIM_SR_CC4OF /*!< Capture 4 overcapture flag */ +#define TIM_FLAG_IDX TIM_SR_IDXF /*!< Encoder index flag */ +#define TIM_FLAG_DIR TIM_SR_DIRF /*!< Direction change flag */ +#define TIM_FLAG_IERR TIM_SR_IERRF /*!< Index error flag */ +#define TIM_FLAG_TERR TIM_SR_TERRF /*!< Transition error flag */ +/** + * @} + */ + +/** @defgroup TIM_Channel TIM Channel + * @{ + */ +#define TIM_CHANNEL_1 0x00000000U /*!< Capture/compare channel 1 identifier */ +#define TIM_CHANNEL_2 0x00000004U /*!< Capture/compare channel 2 identifier */ +#define TIM_CHANNEL_3 0x00000008U /*!< Capture/compare channel 3 identifier */ +#define TIM_CHANNEL_4 0x0000000CU /*!< Capture/compare channel 4 identifier */ +#define TIM_CHANNEL_5 0x00000010U /*!< Compare channel 5 identifier */ +#define TIM_CHANNEL_6 0x00000014U /*!< Compare channel 6 identifier */ +#define TIM_CHANNEL_ALL 0x0000003CU /*!< Global Capture/compare channel identifier */ +/** + * @} + */ + +/** @defgroup TIM_Clock_Source TIM Clock Source + * @{ + */ +#define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0 /*!< Internal clock source */ +#define TIM_CLOCKSOURCE_ETRMODE1 TIM_TS_ETRF /*!< External clock source mode 1 (ETRF) */ +#define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1 /*!< External clock source mode 2 */ +#define TIM_CLOCKSOURCE_TI1ED TIM_TS_TI1F_ED /*!< External clock source mode 1 (TTI1FP1 + edge detect.) */ +#define TIM_CLOCKSOURCE_TI1 TIM_TS_TI1FP1 /*!< External clock source mode 1 (TTI1FP1) */ +#define TIM_CLOCKSOURCE_TI2 TIM_TS_TI2FP2 /*!< External clock source mode 1 (TTI2FP2) */ +#define TIM_CLOCKSOURCE_ITR0 TIM_TS_ITR0 /*!< External clock source mode 1 (ITR0) */ +#define TIM_CLOCKSOURCE_ITR1 TIM_TS_ITR1 /*!< External clock source mode 1 (ITR1) */ +#define TIM_CLOCKSOURCE_ITR2 TIM_TS_ITR2 /*!< External clock source mode 1 (ITR2) */ +#define TIM_CLOCKSOURCE_ITR3 TIM_TS_ITR3 /*!< External clock source mode 1 (ITR3) */ +#if defined (TIM5) +#define TIM_CLOCKSOURCE_ITR4 TIM_TS_ITR4 /*!< External clock source mode 1 (ITR4) */ +#endif /* TIM5 */ +#define TIM_CLOCKSOURCE_ITR5 TIM_TS_ITR5 /*!< External clock source mode 1 (ITR5) */ +#define TIM_CLOCKSOURCE_ITR6 TIM_TS_ITR6 /*!< External clock source mode 1 (ITR6) */ +#define TIM_CLOCKSOURCE_ITR7 TIM_TS_ITR7 /*!< External clock source mode 1 (ITR7) */ +#define TIM_CLOCKSOURCE_ITR8 TIM_TS_ITR8 /*!< External clock source mode 1 (ITR8) */ +#if defined (TIM20) +#define TIM_CLOCKSOURCE_ITR9 TIM_TS_ITR9 /*!< External clock source mode 1 (ITR9) */ +#endif /* TIM20 */ +#define TIM_CLOCKSOURCE_ITR10 TIM_TS_ITR10 /*!< External clock source mode 1 (ITR10) */ +#define TIM_CLOCKSOURCE_ITR11 TIM_TS_ITR11 /*!< External clock source mode 1 (ITR11) */ +/** + * @} + */ + +/** @defgroup TIM_Clock_Polarity TIM Clock Polarity + * @{ + */ +#define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx clock sources */ +#define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx clock sources */ +#define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING /*!< Polarity for TIx clock sources */ +#define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING /*!< Polarity for TIx clock sources */ +#define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE /*!< Polarity for TIx clock sources */ +/** + * @} + */ + +/** @defgroup TIM_Clock_Prescaler TIM Clock Prescaler + * @{ + */ +#define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */ +#define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR Clock: Capture performed once every 2 events. */ +#define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR Clock: Capture performed once every 4 events. */ +#define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR Clock: Capture performed once every 8 events. */ +/** + * @} + */ + +/** @defgroup TIM_ClearInput_Polarity TIM Clear Input Polarity + * @{ + */ +#define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx pin */ +#define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx pin */ +/** + * @} + */ + +/** @defgroup TIM_ClearInput_Prescaler TIM Clear Input Prescaler + * @{ + */ +#define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */ +#define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR pin: Capture performed once every 2 events. */ +#define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR pin: Capture performed once every 4 events. */ +#define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR pin: Capture performed once every 8 events. */ +/** + * @} + */ + +/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state TIM OSSR OffState Selection for Run mode state + * @{ + */ +#define TIM_OSSR_ENABLE TIM_BDTR_OSSR /*!< When inactive, OC/OCN outputs are enabled (still controlled by the timer) */ +#define TIM_OSSR_DISABLE 0x00000000U /*!< When inactive, OC/OCN outputs are disabled (not controlled any longer by the timer) */ +/** + * @} + */ + +/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state TIM OSSI OffState Selection for Idle mode state + * @{ + */ +#define TIM_OSSI_ENABLE TIM_BDTR_OSSI /*!< When inactive, OC/OCN outputs are enabled (still controlled by the timer) */ +#define TIM_OSSI_DISABLE 0x00000000U /*!< When inactive, OC/OCN outputs are disabled (not controlled any longer by the timer) */ +/** + * @} + */ +/** @defgroup TIM_Lock_level TIM Lock level + * @{ + */ +#define TIM_LOCKLEVEL_OFF 0x00000000U /*!< LOCK OFF */ +#define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0 /*!< LOCK Level 1 */ +#define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1 /*!< LOCK Level 2 */ +#define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK /*!< LOCK Level 3 */ +/** + * @} + */ + +/** @defgroup TIM_Break_Input_enable_disable TIM Break Input Enable + * @{ + */ +#define TIM_BREAK_ENABLE TIM_BDTR_BKE /*!< Break input BRK is enabled */ +#define TIM_BREAK_DISABLE 0x00000000U /*!< Break input BRK is disabled */ +/** + * @} + */ + +/** @defgroup TIM_Break_Polarity TIM Break Input Polarity + * @{ + */ +#define TIM_BREAKPOLARITY_LOW 0x00000000U /*!< Break input BRK is active low */ +#define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP /*!< Break input BRK is active high */ +/** + * @} + */ + +/** @defgroup TIM_Break_Input_AF_Mode TIM Break Input Alternate Function Mode + * @{ + */ +#define TIM_BREAK_AFMODE_INPUT 0x00000000U /*!< Break input BRK in input mode */ +#define TIM_BREAK_AFMODE_BIDIRECTIONAL TIM_BDTR_BKBID /*!< Break input BRK in bidirectional mode */ +/** + * @} + */ + +/** @defgroup TIM_Break2_Input_enable_disable TIM Break input 2 Enable + * @{ + */ +#define TIM_BREAK2_DISABLE 0x00000000U /*!< Break input BRK2 is disabled */ +#define TIM_BREAK2_ENABLE TIM_BDTR_BK2E /*!< Break input BRK2 is enabled */ +/** + * @} + */ + +/** @defgroup TIM_Break2_Polarity TIM Break Input 2 Polarity + * @{ + */ +#define TIM_BREAK2POLARITY_LOW 0x00000000U /*!< Break input BRK2 is active low */ +#define TIM_BREAK2POLARITY_HIGH TIM_BDTR_BK2P /*!< Break input BRK2 is active high */ +/** + * @} + */ + +/** @defgroup TIM_Break2_Input_AF_Mode TIM Break2 Input Alternate Function Mode + * @{ + */ +#define TIM_BREAK2_AFMODE_INPUT 0x00000000U /*!< Break2 input BRK2 in input mode */ +#define TIM_BREAK2_AFMODE_BIDIRECTIONAL TIM_BDTR_BK2BID /*!< Break2 input BRK2 in bidirectional mode */ +/** + * @} + */ + +/** @defgroup TIM_AOE_Bit_Set_Reset TIM Automatic Output Enable + * @{ + */ +#define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U /*!< MOE can be set only by software */ +#define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE /*!< MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active) */ +/** + * @} + */ + +/** @defgroup TIM_Group_Channel5 TIM Group Channel 5 and Channel 1, 2 or 3 + * @{ + */ +#define TIM_GROUPCH5_NONE 0x00000000U /*!< No effect of OC5REF on OC1REFC, OC2REFC and OC3REFC */ +#define TIM_GROUPCH5_OC1REFC TIM_CCR5_GC5C1 /*!< OC1REFC is the logical AND of OC1REFC and OC5REF */ +#define TIM_GROUPCH5_OC2REFC TIM_CCR5_GC5C2 /*!< OC2REFC is the logical AND of OC2REFC and OC5REF */ +#define TIM_GROUPCH5_OC3REFC TIM_CCR5_GC5C3 /*!< OC3REFC is the logical AND of OC3REFC and OC5REF */ +/** + * @} + */ + +/** @defgroup TIM_Master_Mode_Selection TIM Master Mode Selection + * @{ + */ +#define TIM_TRGO_RESET 0x00000000U /*!< TIMx_EGR.UG bit is used as trigger output (TRGO) */ +#define TIM_TRGO_ENABLE TIM_CR2_MMS_0 /*!< TIMx_CR1.CEN bit is used as trigger output (TRGO) */ +#define TIM_TRGO_UPDATE TIM_CR2_MMS_1 /*!< Update event is used as trigger output (TRGO) */ +#define TIM_TRGO_OC1 (TIM_CR2_MMS_1 | TIM_CR2_MMS_0) /*!< Capture or a compare match 1 is used as trigger output (TRGO) */ +#define TIM_TRGO_OC1REF TIM_CR2_MMS_2 /*!< OC1REF signal is used as trigger output (TRGO) */ +#define TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0) /*!< OC2REF signal is used as trigger output(TRGO) */ +#define TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1) /*!< OC3REF signal is used as trigger output(TRGO) */ +#define TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0) /*!< OC4REF signal is used as trigger output(TRGO) */ +#define TIM_TRGO_ENCODER_CLK TIM_CR2_MMS_3 /*!< Encoder clock is used as trigger output(TRGO) */ +/** + * @} + */ + +/** @defgroup TIM_Master_Mode_Selection_2 TIM Master Mode Selection 2 (TRGO2) + * @{ + */ +#define TIM_TRGO2_RESET 0x00000000U /*!< TIMx_EGR.UG bit is used as trigger output (TRGO2) */ +#define TIM_TRGO2_ENABLE TIM_CR2_MMS2_0 /*!< TIMx_CR1.CEN bit is used as trigger output (TRGO2) */ +#define TIM_TRGO2_UPDATE TIM_CR2_MMS2_1 /*!< Update event is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC1 (TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0) /*!< Capture or a compare match 1 is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC1REF TIM_CR2_MMS2_2 /*!< OC1REF signal is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC2REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0) /*!< OC2REF signal is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC3REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1) /*!< OC3REF signal is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC4REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0) /*!< OC4REF signal is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC5REF TIM_CR2_MMS2_3 /*!< OC5REF signal is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC6REF (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_0) /*!< OC6REF signal is used as trigger output (TRGO2) */ +#define TIM_TRGO2_OC4REF_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1) /*!< OC4REF rising or falling edges generate pulses on TRGO2 */ +#define TIM_TRGO2_OC6REF_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0) /*!< OC6REF rising or falling edges generate pulses on TRGO2 */ +#define TIM_TRGO2_OC4REF_RISING_OC6REF_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2) /*!< OC4REF or OC6REF rising edges generate pulses on TRGO2 */ +#define TIM_TRGO2_OC4REF_RISING_OC6REF_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0) /*!< OC4REF rising or OC6REF falling edges generate pulses on TRGO2 */ +#define TIM_TRGO2_OC5REF_RISING_OC6REF_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 |TIM_CR2_MMS2_1) /*!< OC5REF or OC6REF rising edges generate pulses on TRGO2 */ +#define TIM_TRGO2_OC5REF_RISING_OC6REF_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0) /*!< OC5REF or OC6REF rising edges generate pulses on TRGO2 */ +/** + * @} + */ + +/** @defgroup TIM_Master_Slave_Mode TIM Master/Slave Mode + * @{ + */ +#define TIM_MASTERSLAVEMODE_ENABLE TIM_SMCR_MSM /*!< No action */ +#define TIM_MASTERSLAVEMODE_DISABLE 0x00000000U /*!< Master/slave mode is selected */ +/** + * @} + */ + +/** @defgroup TIM_Slave_Mode TIM Slave mode + * @{ + */ +#define TIM_SLAVEMODE_DISABLE 0x00000000U /*!< Slave mode disabled */ +#define TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2 /*!< Reset Mode */ +#define TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0) /*!< Gated Mode */ +#define TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1) /*!< Trigger Mode */ +#define TIM_SLAVEMODE_EXTERNAL1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0) /*!< External Clock Mode 1 */ +#define TIM_SLAVEMODE_COMBINED_RESETTRIGGER TIM_SMCR_SMS_3 /*!< Combined reset + trigger mode */ +#define TIM_SLAVEMODE_COMBINED_GATEDRESET (TIM_SMCR_SMS_3 | TIM_SMCR_SMS_0) /*!< Combined gated + reset mode */ +/** + * @} + */ + +/** @defgroup TIM_Output_Compare_and_PWM_modes TIM Output Compare and PWM Modes + * @{ + */ +#define TIM_OCMODE_TIMING 0x00000000U /*!< Frozen */ +#define TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0 /*!< Set channel to active level on match */ +#define TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1 /*!< Set channel to inactive level on match */ +#define TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0) /*!< Toggle */ +#define TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1) /*!< PWM mode 1 */ +#define TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0) /*!< PWM mode 2 */ +#define TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0) /*!< Force active level */ +#define TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2 /*!< Force inactive level */ +#define TIM_OCMODE_RETRIGERRABLE_OPM1 TIM_CCMR1_OC1M_3 /*!< Retrigerrable OPM mode 1 */ +#define TIM_OCMODE_RETRIGERRABLE_OPM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0) /*!< Retrigerrable OPM mode 2 */ +#define TIM_OCMODE_COMBINED_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_2) /*!< Combined PWM mode 1 */ +#define TIM_OCMODE_COMBINED_PWM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_2) /*!< Combined PWM mode 2 */ +#define TIM_OCMODE_ASYMMETRIC_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2) /*!< Asymmetric PWM mode 1 */ +#define TIM_OCMODE_ASYMMETRIC_PWM2 TIM_CCMR1_OC1M /*!< Asymmetric PWM mode 2 */ +#define TIM_OCMODE_PULSE_ON_COMPARE (TIM_CCMR2_OC3M_3 | TIM_CCMR2_OC3M_1) /*!< Pulse on compare (CH3&CH4 only) */ +#define TIM_OCMODE_DIRECTION_OUTPUT (TIM_CCMR2_OC3M_3 | TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_0) /*!< Direction output (CH3&CH4 only) */ +/** + * @} + */ + +/** @defgroup TIM_Trigger_Selection TIM Trigger Selection + * @{ + */ +#define TIM_TS_ITR0 0x00000000U /*!< Internal Trigger 0 (ITR0) */ +#define TIM_TS_ITR1 TIM_SMCR_TS_0 /*!< Internal Trigger 1 (ITR1) */ +#define TIM_TS_ITR2 TIM_SMCR_TS_1 /*!< Internal Trigger 2 (ITR2) */ +#define TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1) /*!< Internal Trigger 3 (ITR3) */ +#if defined (TIM5) +#define TIM_TS_ITR4 TIM_SMCR_TS_3 /*!< Internal Trigger 4 (ITR9) */ +#endif /* TIM5 */ +#define TIM_TS_ITR5 (TIM_SMCR_TS_0 | TIM_SMCR_TS_3) /*!< Internal Trigger 5 (ITR5) */ +#define TIM_TS_ITR6 (TIM_SMCR_TS_1 | TIM_SMCR_TS_3) /*!< Internal Trigger 6 (ITR6) */ +#define TIM_TS_ITR7 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_3) /*!< Internal Trigger 7 (ITR7) */ +#define TIM_TS_ITR8 (TIM_SMCR_TS_2 | TIM_SMCR_TS_3) /*!< Internal Trigger 8 (ITR8) */ +#if defined (TIM20) +#define TIM_TS_ITR9 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3) /*!< Internal Trigger 9 (ITR9) */ +#endif /* TIM20 */ +#define TIM_TS_ITR10 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3) /*!< Internal Trigger 10 (ITR10) */ +#define TIM_TS_ITR11 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3) /*!< Internal Trigger 11 (ITR11) */ +#define TIM_TS_TI1F_ED TIM_SMCR_TS_2 /*!< TI1 Edge Detector (TI1F_ED) */ +#define TIM_TS_TI1FP1 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2) /*!< Filtered Timer Input 1 (TI1FP1) */ +#define TIM_TS_TI2FP2 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2) /*!< Filtered Timer Input 2 (TI2FP2) */ +#define TIM_TS_ETRF (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2) /*!< Filtered External Trigger input (ETRF) */ +#define TIM_TS_NONE 0x0000FFFFU /*!< No trigger selected */ +/** + * @} + */ + +/** @defgroup TIM_Trigger_Polarity TIM Trigger Polarity + * @{ + */ +#define TIM_TRIGGERPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx trigger sources */ +#define TIM_TRIGGERPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx trigger sources */ +#define TIM_TRIGGERPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING /*!< Polarity for TIxFPx or TI1_ED trigger sources */ +#define TIM_TRIGGERPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING /*!< Polarity for TIxFPx or TI1_ED trigger sources */ +#define TIM_TRIGGERPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE /*!< Polarity for TIxFPx or TI1_ED trigger sources */ +/** + * @} + */ + +/** @defgroup TIM_Trigger_Prescaler TIM Trigger Prescaler + * @{ + */ +#define TIM_TRIGGERPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */ +#define TIM_TRIGGERPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR Trigger: Capture performed once every 2 events. */ +#define TIM_TRIGGERPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR Trigger: Capture performed once every 4 events. */ +#define TIM_TRIGGERPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR Trigger: Capture performed once every 8 events. */ +/** + * @} + */ + +/** @defgroup TIM_TI1_Selection TIM TI1 Input Selection + * @{ + */ +#define TIM_TI1SELECTION_CH1 0x00000000U /*!< The TIMx_CH1 pin is connected to TI1 input */ +#define TIM_TI1SELECTION_XORCOMBINATION TIM_CR2_TI1S /*!< The TIMx_CH1, CH2 and CH3 pins are connected to the TI1 input (XOR combination) */ +/** + * @} + */ + +/** @defgroup TIM_DMA_Burst_Length TIM DMA Burst Length + * @{ + */ +#define TIM_DMABURSTLENGTH_1TRANSFER 0x00000000U /*!< The transfer is done to 1 register starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U /*!< The transfer is done to 2 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U /*!< The transfer is done to 3 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U /*!< The transfer is done to 4 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U /*!< The transfer is done to 5 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U /*!< The transfer is done to 6 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U /*!< The transfer is done to 7 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U /*!< The transfer is done to 8 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U /*!< The transfer is done to 9 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U /*!< The transfer is done to 10 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U /*!< The transfer is done to 11 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U /*!< The transfer is done to 12 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U /*!< The transfer is done to 13 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U /*!< The transfer is done to 14 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U /*!< The transfer is done to 15 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U /*!< The transfer is done to 16 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U /*!< The transfer is done to 17 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U /*!< The transfer is done to 18 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_19TRANSFERS 0x00001200U /*!< The transfer is done to 19 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_20TRANSFERS 0x00001300U /*!< The transfer is done to 20 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_21TRANSFERS 0x00001400U /*!< The transfer is done to 21 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_22TRANSFERS 0x00001500U /*!< The transfer is done to 22 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_23TRANSFERS 0x00001600U /*!< The transfer is done to 23 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_24TRANSFERS 0x00001700U /*!< The transfer is done to 24 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_25TRANSFERS 0x00001800U /*!< The transfer is done to 25 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_26TRANSFERS 0x00001900U /*!< The transfer is done to 26 registers starting from TIMx_CR1 + TIMx_DCR.DBA */ +/** + * @} + */ + +/** @defgroup DMA_Handle_index TIM DMA Handle Index + * @{ + */ +#define TIM_DMA_ID_UPDATE ((uint16_t) 0x0000) /*!< Index of the DMA handle used for Update DMA requests */ +#define TIM_DMA_ID_CC1 ((uint16_t) 0x0001) /*!< Index of the DMA handle used for Capture/Compare 1 DMA requests */ +#define TIM_DMA_ID_CC2 ((uint16_t) 0x0002) /*!< Index of the DMA handle used for Capture/Compare 2 DMA requests */ +#define TIM_DMA_ID_CC3 ((uint16_t) 0x0003) /*!< Index of the DMA handle used for Capture/Compare 3 DMA requests */ +#define TIM_DMA_ID_CC4 ((uint16_t) 0x0004) /*!< Index of the DMA handle used for Capture/Compare 4 DMA requests */ +#define TIM_DMA_ID_COMMUTATION ((uint16_t) 0x0005) /*!< Index of the DMA handle used for Commutation DMA requests */ +#define TIM_DMA_ID_TRIGGER ((uint16_t) 0x0006) /*!< Index of the DMA handle used for Trigger DMA requests */ +/** + * @} + */ + +/** @defgroup Channel_CC_State TIM Capture/Compare Channel State + * @{ + */ +#define TIM_CCx_ENABLE 0x00000001U /*!< Input or output channel is enabled */ +#define TIM_CCx_DISABLE 0x00000000U /*!< Input or output channel is disabled */ +#define TIM_CCxN_ENABLE 0x00000004U /*!< Complementary output channel is enabled */ +#define TIM_CCxN_DISABLE 0x00000000U /*!< Complementary output channel is enabled */ +/** + * @} + */ + +/** @defgroup TIM_Break_System TIM Break System + * @{ + */ +#define TIM_BREAK_SYSTEM_ECC SYSCFG_CFGR2_ECCL /*!< Enables and locks the ECC error signal with Break Input of TIM1/8/15/16/17/20 */ +#define TIM_BREAK_SYSTEM_PVD SYSCFG_CFGR2_PVDL /*!< Enables and locks the PVD connection with TIM1/8/15/16/17/20 Break Input and also the PVDE and PLS bits of the Power Control Interface */ +#define TIM_BREAK_SYSTEM_SRAM_PARITY_ERROR SYSCFG_CFGR2_SPL /*!< Enables and locks the SRAM_PARITY error signal with Break Input of TIM1/8/15/16/17/20 */ +#define TIM_BREAK_SYSTEM_LOCKUP SYSCFG_CFGR2_CLL /*!< Enables and locks the LOCKUP output of CortexM4 with Break Input of TIM1/8/15/16/17/20 */ +/** + * @} + */ + +/** + * @} + */ +/* End of exported constants -------------------------------------------------*/ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup TIM_Exported_Macros TIM Exported Macros + * @{ + */ + +/** @brief Reset TIM handle state. + * @param __HANDLE__ TIM handle. + * @retval None + */ +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \ + (__HANDLE__)->State = HAL_TIM_STATE_RESET; \ + (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[4] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[5] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \ + (__HANDLE__)->Base_MspInitCallback = NULL; \ + (__HANDLE__)->Base_MspDeInitCallback = NULL; \ + (__HANDLE__)->IC_MspInitCallback = NULL; \ + (__HANDLE__)->IC_MspDeInitCallback = NULL; \ + (__HANDLE__)->OC_MspInitCallback = NULL; \ + (__HANDLE__)->OC_MspDeInitCallback = NULL; \ + (__HANDLE__)->PWM_MspInitCallback = NULL; \ + (__HANDLE__)->PWM_MspDeInitCallback = NULL; \ + (__HANDLE__)->OnePulse_MspInitCallback = NULL; \ + (__HANDLE__)->OnePulse_MspDeInitCallback = NULL; \ + (__HANDLE__)->Encoder_MspInitCallback = NULL; \ + (__HANDLE__)->Encoder_MspDeInitCallback = NULL; \ + (__HANDLE__)->HallSensor_MspInitCallback = NULL; \ + (__HANDLE__)->HallSensor_MspDeInitCallback = NULL; \ + } while(0) +#else +#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \ + (__HANDLE__)->State = HAL_TIM_STATE_RESET; \ + (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[4] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelState[5] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \ + (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \ + } while(0) +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @brief Enable the TIM peripheral. + * @param __HANDLE__ TIM handle + * @retval None + */ +#define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN)) + +/** + * @brief Enable the TIM main Output. + * @param __HANDLE__ TIM handle + * @retval None + */ +#define __HAL_TIM_MOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE)) + +/** + * @brief Disable the TIM peripheral. + * @param __HANDLE__ TIM handle + * @retval None + */ +#define __HAL_TIM_DISABLE(__HANDLE__) \ + do { \ + if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \ + { \ + if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \ + { \ + (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \ + } \ + } \ + } while(0) + +/** + * @brief Disable the TIM main Output. + * @param __HANDLE__ TIM handle + * @retval None + * @note The Main Output Enable of a timer instance is disabled only if all the CCx and CCxN channels have been + * disabled + */ +#define __HAL_TIM_MOE_DISABLE(__HANDLE__) \ + do { \ + if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \ + { \ + if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \ + { \ + (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \ + } \ + } \ + } while(0) + +/** + * @brief Disable the TIM main Output. + * @param __HANDLE__ TIM handle + * @retval None + * @note The Main Output Enable of a timer instance is disabled unconditionally + */ +#define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__) (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE) + +/** @brief Enable the specified TIM interrupt. + * @param __HANDLE__ specifies the TIM Handle. + * @param __INTERRUPT__ specifies the TIM interrupt source to enable. + * This parameter can be one of the following values: + * @arg TIM_IT_UPDATE: Update interrupt + * @arg TIM_IT_CC1: Capture/Compare 1 interrupt + * @arg TIM_IT_CC2: Capture/Compare 2 interrupt + * @arg TIM_IT_CC3: Capture/Compare 3 interrupt + * @arg TIM_IT_CC4: Capture/Compare 4 interrupt + * @arg TIM_IT_COM: Commutation interrupt + * @arg TIM_IT_TRIGGER: Trigger interrupt + * @arg TIM_IT_BREAK: Break interrupt + * @arg TIM_IT_IDX: Index interrupt + * @arg TIM_IT_DIR: Direction change interrupt + * @arg TIM_IT_IERR: Index error interrupt + * @arg TIM_IT_TERR: Transition error interrupt + * @retval None + */ +#define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__)) + +/** @brief Disable the specified TIM interrupt. + * @param __HANDLE__ specifies the TIM Handle. + * @param __INTERRUPT__ specifies the TIM interrupt source to disable. + * This parameter can be one of the following values: + * @arg TIM_IT_UPDATE: Update interrupt + * @arg TIM_IT_CC1: Capture/Compare 1 interrupt + * @arg TIM_IT_CC2: Capture/Compare 2 interrupt + * @arg TIM_IT_CC3: Capture/Compare 3 interrupt + * @arg TIM_IT_CC4: Capture/Compare 4 interrupt + * @arg TIM_IT_COM: Commutation interrupt + * @arg TIM_IT_TRIGGER: Trigger interrupt + * @arg TIM_IT_BREAK: Break interrupt + * @arg TIM_IT_IDX: Index interrupt + * @arg TIM_IT_DIR: Direction change interrupt + * @arg TIM_IT_IERR: Index error interrupt + * @arg TIM_IT_TERR: Transition error interrupt + * @retval None + */ +#define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__)) + +/** @brief Enable the specified DMA request. + * @param __HANDLE__ specifies the TIM Handle. + * @param __DMA__ specifies the TIM DMA request to enable. + * This parameter can be one of the following values: + * @arg TIM_DMA_UPDATE: Update DMA request + * @arg TIM_DMA_CC1: Capture/Compare 1 DMA request + * @arg TIM_DMA_CC2: Capture/Compare 2 DMA request + * @arg TIM_DMA_CC3: Capture/Compare 3 DMA request + * @arg TIM_DMA_CC4: Capture/Compare 4 DMA request + * @arg TIM_DMA_COM: Commutation DMA request + * @arg TIM_DMA_TRIGGER: Trigger DMA request + * @retval None + */ +#define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER |= (__DMA__)) + +/** @brief Disable the specified DMA request. + * @param __HANDLE__ specifies the TIM Handle. + * @param __DMA__ specifies the TIM DMA request to disable. + * This parameter can be one of the following values: + * @arg TIM_DMA_UPDATE: Update DMA request + * @arg TIM_DMA_CC1: Capture/Compare 1 DMA request + * @arg TIM_DMA_CC2: Capture/Compare 2 DMA request + * @arg TIM_DMA_CC3: Capture/Compare 3 DMA request + * @arg TIM_DMA_CC4: Capture/Compare 4 DMA request + * @arg TIM_DMA_COM: Commutation DMA request + * @arg TIM_DMA_TRIGGER: Trigger DMA request + * @retval None + */ +#define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER &= ~(__DMA__)) + +/** @brief Check whether the specified TIM interrupt flag is set or not. + * @param __HANDLE__ specifies the TIM Handle. + * @param __FLAG__ specifies the TIM interrupt flag to check. + * This parameter can be one of the following values: + * @arg TIM_FLAG_UPDATE: Update interrupt flag + * @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag + * @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag + * @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag + * @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag + * @arg TIM_FLAG_CC5: Compare 5 interrupt flag + * @arg TIM_FLAG_CC6: Compare 6 interrupt flag + * @arg TIM_FLAG_COM: Commutation interrupt flag + * @arg TIM_FLAG_TRIGGER: Trigger interrupt flag + * @arg TIM_FLAG_BREAK: Break interrupt flag + * @arg TIM_FLAG_BREAK2: Break 2 interrupt flag + * @arg TIM_FLAG_SYSTEM_BREAK: System Break interrupt flag + * @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag + * @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag + * @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag + * @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag + * @arg TIM_FLAG_IDX: Index interrupt flag + * @arg TIM_FLAG_DIR: Direction change interrupt flag + * @arg TIM_FLAG_IERR: Index error interrupt flag + * @arg TIM_FLAG_TERR: Transition error interrupt flag + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__)) + +/** @brief Clear the specified TIM interrupt flag. + * @param __HANDLE__ specifies the TIM Handle. + * @param __FLAG__ specifies the TIM interrupt flag to clear. + * This parameter can be one of the following values: + * @arg TIM_FLAG_UPDATE: Update interrupt flag + * @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag + * @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag + * @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag + * @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag + * @arg TIM_FLAG_CC5: Compare 5 interrupt flag + * @arg TIM_FLAG_CC6: Compare 6 interrupt flag + * @arg TIM_FLAG_COM: Commutation interrupt flag + * @arg TIM_FLAG_TRIGGER: Trigger interrupt flag + * @arg TIM_FLAG_BREAK: Break interrupt flag + * @arg TIM_FLAG_BREAK2: Break 2 interrupt flag + * @arg TIM_FLAG_SYSTEM_BREAK: System Break interrupt flag + * @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag + * @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag + * @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag + * @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag + * @arg TIM_FLAG_IDX: Index interrupt flag + * @arg TIM_FLAG_DIR: Direction change interrupt flag + * @arg TIM_FLAG_IERR: Index error interrupt flag + * @arg TIM_FLAG_TERR: Transition error interrupt flag + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__)) + +/** + * @brief Check whether the specified TIM interrupt source is enabled or not. + * @param __HANDLE__ TIM handle + * @param __INTERRUPT__ specifies the TIM interrupt source to check. + * This parameter can be one of the following values: + * @arg TIM_IT_UPDATE: Update interrupt + * @arg TIM_IT_CC1: Capture/Compare 1 interrupt + * @arg TIM_IT_CC2: Capture/Compare 2 interrupt + * @arg TIM_IT_CC3: Capture/Compare 3 interrupt + * @arg TIM_IT_CC4: Capture/Compare 4 interrupt + * @arg TIM_IT_COM: Commutation interrupt + * @arg TIM_IT_TRIGGER: Trigger interrupt + * @arg TIM_IT_BREAK: Break interrupt + * @arg TIM_IT_IDX: Index interrupt + * @arg TIM_IT_DIR: Direction change interrupt + * @arg TIM_IT_IERR: Index error interrupt + * @arg TIM_IT_TERR: Transition error interrupt + * @retval The state of TIM_IT (SET or RESET). + */ +#define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \ + == (__INTERRUPT__)) ? SET : RESET) + +/** @brief Clear the TIM interrupt pending bits. + * @param __HANDLE__ TIM handle + * @param __INTERRUPT__ specifies the interrupt pending bit to clear. + * This parameter can be one of the following values: + * @arg TIM_IT_UPDATE: Update interrupt + * @arg TIM_IT_CC1: Capture/Compare 1 interrupt + * @arg TIM_IT_CC2: Capture/Compare 2 interrupt + * @arg TIM_IT_CC3: Capture/Compare 3 interrupt + * @arg TIM_IT_CC4: Capture/Compare 4 interrupt + * @arg TIM_IT_COM: Commutation interrupt + * @arg TIM_IT_TRIGGER: Trigger interrupt + * @arg TIM_IT_BREAK: Break interrupt + * @arg TIM_IT_IDX: Index interrupt + * @arg TIM_IT_DIR: Direction change interrupt + * @arg TIM_IT_IERR: Index error interrupt + * @arg TIM_IT_TERR: Transition error interrupt + * @retval None + */ +#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__)) + +/** + * @brief Force a continuous copy of the update interrupt flag (UIF) into the timer counter register (bit 31). + * @note This allows both the counter value and a potential roll-over condition signalled by the UIFCPY flag to be read + * in an atomic way. + * @param __HANDLE__ TIM handle. + * @retval None +mode. + */ +#define __HAL_TIM_UIFREMAP_ENABLE(__HANDLE__) (((__HANDLE__)->Instance->CR1 |= TIM_CR1_UIFREMAP)) + +/** + * @brief Disable update interrupt flag (UIF) remapping. + * @param __HANDLE__ TIM handle. + * @retval None +mode. + */ +#define __HAL_TIM_UIFREMAP_DISABLE(__HANDLE__) (((__HANDLE__)->Instance->CR1 &= ~TIM_CR1_UIFREMAP)) + +/** + * @brief Get update interrupt flag (UIF) copy status. + * @param __COUNTER__ Counter value. + * @retval The state of UIFCPY (TRUE or FALSE). +mode. + */ +#define __HAL_TIM_GET_UIFCPY(__COUNTER__) (((__COUNTER__) & (TIM_CNT_UIFCPY)) == (TIM_CNT_UIFCPY)) + +/** + * @brief Indicates whether or not the TIM Counter is used as downcounter. + * @param __HANDLE__ TIM handle. + * @retval False (Counter used as upcounter) or True (Counter used as downcounter) + * @note This macro is particularly useful to get the counting mode when the timer operates in Center-aligned mode + * or Encoder mode. + */ +#define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR)) + +/** + * @brief Set the TIM Prescaler on runtime. + * @param __HANDLE__ TIM handle. + * @param __PRESC__ specifies the Prescaler new value. + * @retval None + */ +#define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) ((__HANDLE__)->Instance->PSC = (__PRESC__)) + +/** + * @brief Set the TIM Counter Register value on runtime. + * Note Please check if the bit 31 of CNT register is used as UIF copy or not, this may affect the counter range in + * case of 32 bits counter TIM instance. + * Bit 31 of CNT can be enabled/disabled using __HAL_TIM_UIFREMAP_ENABLE()/__HAL_TIM_UIFREMAP_DISABLE() macros. + * @param __HANDLE__ TIM handle. + * @param __COUNTER__ specifies the Counter register new value. + * @retval None + */ +#define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CNT = (__COUNTER__)) + +/** + * @brief Get the TIM Counter Register value on runtime. + * @param __HANDLE__ TIM handle. + * @retval 16-bit or 32-bit value of the timer counter register (TIMx_CNT) + */ +#define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT) + +/** + * @brief Set the TIM Autoreload Register value on runtime without calling another time any Init function. + * @param __HANDLE__ TIM handle. + * @param __AUTORELOAD__ specifies the Counter register new value. + * @retval None + */ +#define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \ + do{ \ + (__HANDLE__)->Instance->ARR = (__AUTORELOAD__); \ + (__HANDLE__)->Init.Period = (__AUTORELOAD__); \ + } while(0) + +/** + * @brief Get the TIM Autoreload Register value on runtime. + * @param __HANDLE__ TIM handle. + * @retval 16-bit or 32-bit value of the timer auto-reload register(TIMx_ARR) + */ +#define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) ((__HANDLE__)->Instance->ARR) + +/** + * @brief Set the TIM Clock Division value on runtime without calling another time any Init function. + * @param __HANDLE__ TIM handle. + * @param __CKD__ specifies the clock division value. + * This parameter can be one of the following value: + * @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT + * @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT + * @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT + * @retval None + */ +#define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \ + do{ \ + (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD); \ + (__HANDLE__)->Instance->CR1 |= (__CKD__); \ + (__HANDLE__)->Init.ClockDivision = (__CKD__); \ + } while(0) + +/** + * @brief Get the TIM Clock Division value on runtime. + * @param __HANDLE__ TIM handle. + * @retval The clock division can be one of the following values: + * @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT + * @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT + * @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT + */ +#define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__) ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD) + +/** + * @brief Set the TIM Input Capture prescaler on runtime without calling another time HAL_TIM_IC_ConfigChannel() + * function. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param __ICPSC__ specifies the Input Capture4 prescaler new value. + * This parameter can be one of the following values: + * @arg TIM_ICPSC_DIV1: no prescaler + * @arg TIM_ICPSC_DIV2: capture is done once every 2 events + * @arg TIM_ICPSC_DIV4: capture is done once every 4 events + * @arg TIM_ICPSC_DIV8: capture is done once every 8 events + * @retval None + */ +#define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \ + do{ \ + TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__)); \ + TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \ + } while(0) + +/** + * @brief Get the TIM Input Capture prescaler on runtime. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: get input capture 1 prescaler value + * @arg TIM_CHANNEL_2: get input capture 2 prescaler value + * @arg TIM_CHANNEL_3: get input capture 3 prescaler value + * @arg TIM_CHANNEL_4: get input capture 4 prescaler value + * @retval The input capture prescaler can be one of the following values: + * @arg TIM_ICPSC_DIV1: no prescaler + * @arg TIM_ICPSC_DIV2: capture is done once every 2 events + * @arg TIM_ICPSC_DIV4: capture is done once every 4 events + * @arg TIM_ICPSC_DIV8: capture is done once every 8 events + */ +#define __HAL_TIM_GET_ICPRESCALER(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC1PSC) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\ + (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U) + +/** + * @brief Set the TIM Capture Compare Register value on runtime without calling another time ConfigChannel function. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @param __COMPARE__ specifies the Capture Compare register new value. + * @retval None + */ +#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCR5 = (__COMPARE__)) :\ + ((__HANDLE__)->Instance->CCR6 = (__COMPARE__))) + +/** + * @brief Get the TIM Capture Compare Register value on runtime. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channel associated with the capture compare register + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: get capture/compare 1 register value + * @arg TIM_CHANNEL_2: get capture/compare 2 register value + * @arg TIM_CHANNEL_3: get capture/compare 3 register value + * @arg TIM_CHANNEL_4: get capture/compare 4 register value + * @arg TIM_CHANNEL_5: get capture/compare 5 register value + * @arg TIM_CHANNEL_6: get capture/compare 6 register value + * @retval 16-bit or 32-bit value of the capture/compare register (TIMx_CCRy) + */ +#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCR4) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCR5) :\ + ((__HANDLE__)->Instance->CCR6)) + +/** + * @brief Set the TIM Output compare preload. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval None + */ +#define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC5PE) :\ + ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC6PE)) + +/** + * @brief Reset the TIM Output compare preload. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval None + */ +#define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC5PE) :\ + ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC6PE)) + +/** + * @brief Enable fast mode for a given channel. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @note When fast mode is enabled an active edge on the trigger input acts + * like a compare match on CCx output. Delay to sample the trigger + * input and to activate CCx output is reduced to 3 clock cycles. + * @note Fast mode acts only if the channel is configured in PWM1 or PWM2 mode. + * @retval None + */ +#define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC5FE) :\ + ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC6FE)) + +/** + * @brief Disable fast mode for a given channel. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @note When fast mode is disabled CCx output behaves normally depending + * on counter and CCRx values even when the trigger is ON. The minimum + * delay to activate CCx output when an active edge occurs on the + * trigger input is 5 clock cycles. + * @retval None + */ +#define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE) :\ + ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE)) + +/** + * @brief Set the Update Request Source (URS) bit of the TIMx_CR1 register. + * @param __HANDLE__ TIM handle. + * @note When the URS bit of the TIMx_CR1 register is set, only counter + * overflow/underflow generates an update interrupt or DMA request (if + * enabled) + * @retval None + */ +#define __HAL_TIM_URS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS) + +/** + * @brief Reset the Update Request Source (URS) bit of the TIMx_CR1 register. + * @param __HANDLE__ TIM handle. + * @note When the URS bit of the TIMx_CR1 register is reset, any of the + * following events generate an update interrupt or DMA request (if + * enabled): + * _ Counter overflow underflow + * _ Setting the UG bit + * _ Update generation through the slave mode controller + * @retval None + */ +#define __HAL_TIM_URS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS) + +/** + * @brief Set the TIM Capture x input polarity on runtime. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channels to be configured. + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param __POLARITY__ Polarity for TIx source + * @arg TIM_INPUTCHANNELPOLARITY_RISING: Rising Edge + * @arg TIM_INPUTCHANNELPOLARITY_FALLING: Falling Edge + * @arg TIM_INPUTCHANNELPOLARITY_BOTHEDGE: Rising and Falling Edge + * @retval None + */ +#define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \ + do{ \ + TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__)); \ + TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \ + }while(0) + +/** @brief Select the Capture/compare DMA request source. + * @param __HANDLE__ specifies the TIM Handle. + * @param __CCDMA__ specifies Capture/compare DMA request source + * This parameter can be one of the following values: + * @arg TIM_CCDMAREQUEST_CC: CCx DMA request generated on Capture/Compare event + * @arg TIM_CCDMAREQUEST_UPDATE: CCx DMA request generated on Update event + * @retval None + */ +#define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__) \ + MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__)) + +/** + * @} + */ +/* End of exported macros ----------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup TIM_Private_Constants TIM Private Constants + * @{ + */ +/* The counter of a timer instance is disabled only if all the CCx and CCxN + channels have been disabled */ +#define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E)) +#define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) +/** + * @} + */ +/* End of private constants --------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup TIM_Private_Macros TIM Private Macros + * @{ + */ +#if defined(COMP5) && defined(COMP6) && defined(COMP7) +#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_ETR) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP1) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP2) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP3) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP4) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP5) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP6) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP7) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_NONE)) +#else /* COMP5 && COMP6 && COMP7 */ +#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_ETR) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP1) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP2) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP3) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_COMP4) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_NONE)) +#endif /* COMP5 && COMP6 && COMP7 */ + +#define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \ + ((__BASE__) == TIM_DMABASE_CR2) || \ + ((__BASE__) == TIM_DMABASE_SMCR) || \ + ((__BASE__) == TIM_DMABASE_DIER) || \ + ((__BASE__) == TIM_DMABASE_SR) || \ + ((__BASE__) == TIM_DMABASE_EGR) || \ + ((__BASE__) == TIM_DMABASE_CCMR1) || \ + ((__BASE__) == TIM_DMABASE_CCMR2) || \ + ((__BASE__) == TIM_DMABASE_CCER) || \ + ((__BASE__) == TIM_DMABASE_CNT) || \ + ((__BASE__) == TIM_DMABASE_PSC) || \ + ((__BASE__) == TIM_DMABASE_ARR) || \ + ((__BASE__) == TIM_DMABASE_RCR) || \ + ((__BASE__) == TIM_DMABASE_CCR1) || \ + ((__BASE__) == TIM_DMABASE_CCR2) || \ + ((__BASE__) == TIM_DMABASE_CCR3) || \ + ((__BASE__) == TIM_DMABASE_CCR4) || \ + ((__BASE__) == TIM_DMABASE_BDTR) || \ + ((__BASE__) == TIM_DMABASE_CCMR3) || \ + ((__BASE__) == TIM_DMABASE_CCR5) || \ + ((__BASE__) == TIM_DMABASE_CCR6) || \ + ((__BASE__) == TIM_DMABASE_AF1) || \ + ((__BASE__) == TIM_DMABASE_AF2) || \ + ((__BASE__) == TIM_DMABASE_TISEL) || \ + ((__BASE__) == TIM_DMABASE_DTR2) || \ + ((__BASE__) == TIM_DMABASE_ECR) || \ + ((__BASE__) == TIM_DMABASE_OR)) + +#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFE00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U)) + +#define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \ + ((__MODE__) == TIM_COUNTERMODE_DOWN) || \ + ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \ + ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \ + ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3)) + +#define IS_TIM_UIFREMAP_MODE(__MODE__) (((__MODE__) == TIM_UIFREMAP_DISABLE) || \ + ((__MODE__) == TIM_UIFREMAP_ENABLE)) + +#define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \ + ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \ + ((__DIV__) == TIM_CLOCKDIVISION_DIV4)) + +#define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \ + ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE)) + +#define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \ + ((__STATE__) == TIM_OCFAST_ENABLE)) + +#define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \ + ((__POLARITY__) == TIM_OCPOLARITY_LOW)) + +#define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \ + ((__POLARITY__) == TIM_OCNPOLARITY_LOW)) + +#define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \ + ((__STATE__) == TIM_OCIDLESTATE_RESET)) + +#define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \ + ((__STATE__) == TIM_OCNIDLESTATE_RESET)) + +#define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \ + ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING)) + +#define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \ + ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \ + ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE)) + +#define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \ + ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \ + ((__SELECTION__) == TIM_ICSELECTION_TRC)) + +#define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \ + ((__PRESCALER__) == TIM_ICPSC_DIV2) || \ + ((__PRESCALER__) == TIM_ICPSC_DIV4) || \ + ((__PRESCALER__) == TIM_ICPSC_DIV8)) + +#define IS_TIM_CCX_CHANNEL(__INSTANCE__, __CHANNEL__) (IS_TIM_CCX_INSTANCE(__INSTANCE__, __CHANNEL__) && \ + ((__CHANNEL__) != (TIM_CHANNEL_5)) && \ + ((__CHANNEL__) != (TIM_CHANNEL_6))) + +#define IS_TIM_OPM_MODE(__MODE__) (((__MODE__) == TIM_OPMODE_SINGLE) || \ + ((__MODE__) == TIM_OPMODE_REPETITIVE)) + +#define IS_TIM_ENCODER_MODE(__MODE__) (((__MODE__) == TIM_ENCODERMODE_TI1) || \ + ((__MODE__) == TIM_ENCODERMODE_TI2) || \ + ((__MODE__) == TIM_ENCODERMODE_TI12) || \ + ((__MODE__) == TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X2) || \ + ((__MODE__) == TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X1) || \ + ((__MODE__) == TIM_ENCODERMODE_DIRECTIONALCLOCK_X2) || \ + ((__MODE__) == TIM_ENCODERMODE_DIRECTIONALCLOCK_X1_TI12) || \ + ((__MODE__) == TIM_ENCODERMODE_X1_TI1) || \ + ((__MODE__) == TIM_ENCODERMODE_X1_TI2)) + +#define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U)) + +#define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \ + ((__CHANNEL__) == TIM_CHANNEL_2) || \ + ((__CHANNEL__) == TIM_CHANNEL_3) || \ + ((__CHANNEL__) == TIM_CHANNEL_4) || \ + ((__CHANNEL__) == TIM_CHANNEL_5) || \ + ((__CHANNEL__) == TIM_CHANNEL_6) || \ + ((__CHANNEL__) == TIM_CHANNEL_ALL)) + +#define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \ + ((__CHANNEL__) == TIM_CHANNEL_2)) + +#define IS_TIM_PERIOD(__HANDLE__, __PERIOD__) ((IS_TIM_32B_COUNTER_INSTANCE(((__HANDLE__)->Instance)) == 0U) ? \ + ((READ_BIT((__HANDLE__)->Instance->CR1, TIM_CR1_DITHEN) == 0U) ? \ + (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : \ + (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x000FFFEFU))) : \ + ((__PERIOD__) > 0U )) + +#define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \ + ((__CHANNEL__) == TIM_CHANNEL_2) || \ + ((__CHANNEL__) == TIM_CHANNEL_3) || \ + ((__CHANNEL__) == TIM_CHANNEL_4)) + +#if defined(TIM5) && defined(TIM20) +#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11)) +#elif defined(TIM5) +#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11)) +#elif defined(TIM20) +#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11)) +#else +#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11)) +#endif /* TIM5 && TIM20 */ + +#define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE)) + +#define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \ + ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \ + ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \ + ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8)) + +#define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU) + +#define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \ + ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED)) + +#define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \ + ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \ + ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \ + ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8)) + +#define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU) + +#define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \ + ((__STATE__) == TIM_OSSR_DISABLE)) + +#define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \ + ((__STATE__) == TIM_OSSI_DISABLE)) + +#define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \ + ((__LEVEL__) == TIM_LOCKLEVEL_1) || \ + ((__LEVEL__) == TIM_LOCKLEVEL_2) || \ + ((__LEVEL__) == TIM_LOCKLEVEL_3)) + +#define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL) + +#define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \ + ((__STATE__) == TIM_BREAK_DISABLE)) + +#define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \ + ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH)) + +#define IS_TIM_BREAK_AFMODE(__AFMODE__) (((__AFMODE__) == TIM_BREAK_AFMODE_INPUT) || \ + ((__AFMODE__) == TIM_BREAK_AFMODE_BIDIRECTIONAL)) + + +#define IS_TIM_BREAK2_STATE(__STATE__) (((__STATE__) == TIM_BREAK2_ENABLE) || \ + ((__STATE__) == TIM_BREAK2_DISABLE)) + +#define IS_TIM_BREAK2_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAK2POLARITY_LOW) || \ + ((__POLARITY__) == TIM_BREAK2POLARITY_HIGH)) + +#define IS_TIM_BREAK2_AFMODE(__AFMODE__) (((__AFMODE__) == TIM_BREAK2_AFMODE_INPUT) || \ + ((__AFMODE__) == TIM_BREAK2_AFMODE_BIDIRECTIONAL)) + + +#define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \ + ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE)) + +#define IS_TIM_GROUPCH5(__OCREF__) ((((__OCREF__) & 0x1FFFFFFFU) == 0x00000000U)) + +#define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET) || \ + ((__SOURCE__) == TIM_TRGO_ENABLE) || \ + ((__SOURCE__) == TIM_TRGO_UPDATE) || \ + ((__SOURCE__) == TIM_TRGO_OC1) || \ + ((__SOURCE__) == TIM_TRGO_OC1REF) || \ + ((__SOURCE__) == TIM_TRGO_OC2REF) || \ + ((__SOURCE__) == TIM_TRGO_OC3REF) || \ + ((__SOURCE__) == TIM_TRGO_OC4REF) || \ + ((__SOURCE__) == TIM_TRGO_ENCODER_CLK)) + +#define IS_TIM_TRGO2_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO2_RESET) || \ + ((__SOURCE__) == TIM_TRGO2_ENABLE) || \ + ((__SOURCE__) == TIM_TRGO2_UPDATE) || \ + ((__SOURCE__) == TIM_TRGO2_OC1) || \ + ((__SOURCE__) == TIM_TRGO2_OC1REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC2REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC3REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC3REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC4REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC5REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC6REF) || \ + ((__SOURCE__) == TIM_TRGO2_OC4REF_RISINGFALLING) || \ + ((__SOURCE__) == TIM_TRGO2_OC6REF_RISINGFALLING) || \ + ((__SOURCE__) == TIM_TRGO2_OC4REF_RISING_OC6REF_RISING) || \ + ((__SOURCE__) == TIM_TRGO2_OC4REF_RISING_OC6REF_FALLING) || \ + ((__SOURCE__) == TIM_TRGO2_OC5REF_RISING_OC6REF_RISING) || \ + ((__SOURCE__) == TIM_TRGO2_OC5REF_RISING_OC6REF_FALLING)) + +#define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \ + ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE)) + +#define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \ + ((__MODE__) == TIM_SLAVEMODE_RESET) || \ + ((__MODE__) == TIM_SLAVEMODE_GATED) || \ + ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \ + ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1) || \ + ((__MODE__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER) || \ + ((__MODE__) == TIM_SLAVEMODE_COMBINED_GATEDRESET)) + +#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \ + ((__MODE__) == TIM_OCMODE_PWM2) || \ + ((__MODE__) == TIM_OCMODE_COMBINED_PWM1) || \ + ((__MODE__) == TIM_OCMODE_COMBINED_PWM2) || \ + ((__MODE__) == TIM_OCMODE_ASYMMETRIC_PWM1) || \ + ((__MODE__) == TIM_OCMODE_ASYMMETRIC_PWM2)) + +#define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \ + ((__MODE__) == TIM_OCMODE_ACTIVE) || \ + ((__MODE__) == TIM_OCMODE_INACTIVE) || \ + ((__MODE__) == TIM_OCMODE_TOGGLE) || \ + ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \ + ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE) || \ + ((__MODE__) == TIM_OCMODE_RETRIGERRABLE_OPM1) || \ + ((__MODE__) == TIM_OCMODE_RETRIGERRABLE_OPM2) || \ + ((__MODE__) == TIM_OCMODE_DIRECTION_OUTPUT) || \ + ((__MODE__) == TIM_OCMODE_PULSE_ON_COMPARE)) + +#define IS_TIM_TRIGGERPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED ) || \ + ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \ + ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING ) || \ + ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING ) || \ + ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE )) + +#define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \ + ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \ + ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \ + ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8)) + +#define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU) + +#define IS_TIM_TI1SELECTION(__TI1SELECTION__) (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \ + ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION)) + +#define IS_TIM_DMA_LENGTH(__LENGTH__) (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_19TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_20TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_21TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_22TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_23TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_24TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_25TRANSFERS) || \ + ((__LENGTH__) == TIM_DMABURSTLENGTH_26TRANSFERS)) + +#define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U)) + +#define IS_TIM_IC_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU) + +#define IS_TIM_DEADTIME(__DEADTIME__) ((__DEADTIME__) <= 0xFFU) + +#define IS_TIM_BREAK_SYSTEM(__CONFIG__) (((__CONFIG__) == TIM_BREAK_SYSTEM_ECC) || \ + ((__CONFIG__) == TIM_BREAK_SYSTEM_PVD) || \ + ((__CONFIG__) == TIM_BREAK_SYSTEM_SRAM_PARITY_ERROR) || \ + ((__CONFIG__) == TIM_BREAK_SYSTEM_LOCKUP)) + +#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) (((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER) || \ + ((__TRIGGER__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER)) + +#define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\ + ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U))) + +#define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\ + ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC)) + +#define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\ + ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U)))) + +#define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\ + ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP))) + +#define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\ + (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? (__HANDLE__)->ChannelState[3] :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? (__HANDLE__)->ChannelState[4] :\ + (__HANDLE__)->ChannelState[5]) + +#define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->ChannelState[4] = (__CHANNEL_STATE__)) :\ + ((__HANDLE__)->ChannelState[5] = (__CHANNEL_STATE__))) + +#define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \ + (__HANDLE__)->ChannelState[0] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelState[1] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelState[2] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelState[3] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelState[4] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelState[5] = \ + (__CHANNEL_STATE__); \ + } while(0) + +#define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\ + (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\ + (__HANDLE__)->ChannelNState[3]) + +#define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\ + ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__))) + +#define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \ + (__HANDLE__)->ChannelNState[0] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelNState[1] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelNState[2] = \ + (__CHANNEL_STATE__); \ + (__HANDLE__)->ChannelNState[3] = \ + (__CHANNEL_STATE__); \ + } while(0) + +/** + * @} + */ +/* End of private macros -----------------------------------------------------*/ + +/* Include TIM HAL Extended module */ +#include "stm32g4xx_hal_tim_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup TIM_Exported_Functions TIM Exported Functions + * @{ + */ + +/** @addtogroup TIM_Exported_Functions_Group1 TIM Time Base functions + * @brief Time Base functions + * @{ + */ +/* Time Base functions ********************************************************/ +HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim); +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim); +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length); +HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** @addtogroup TIM_Exported_Functions_Group2 TIM Output Compare functions + * @brief TIM Output Compare functions + * @{ + */ +/* Timer Output Compare functions *********************************************/ +HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim); +void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim); +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length); +HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @addtogroup TIM_Exported_Functions_Group3 TIM PWM functions + * @brief TIM PWM functions + * @{ + */ +/* Timer PWM functions ********************************************************/ +HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim); +void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim); +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length); +HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @addtogroup TIM_Exported_Functions_Group4 TIM Input Capture functions + * @brief TIM Input Capture functions + * @{ + */ +/* Timer Input Capture functions **********************************************/ +HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim); +void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim); +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length); +HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @addtogroup TIM_Exported_Functions_Group5 TIM One Pulse functions + * @brief TIM One Pulse functions + * @{ + */ +/* Timer One Pulse functions **************************************************/ +HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode); +HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim); +void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim); +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +/** + * @} + */ + +/** @addtogroup TIM_Exported_Functions_Group6 TIM Encoder functions + * @brief TIM Encoder functions + * @{ + */ +/* Timer Encoder functions ****************************************************/ +HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig); +HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim); +void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim); +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, + uint32_t *pData2, uint16_t Length); +HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @addtogroup TIM_Exported_Functions_Group7 TIM IRQ handler management + * @brief IRQ handler management + * @{ + */ +/* Interrupt Handler functions ***********************************************/ +void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group8 TIM Peripheral Control functions + * @brief Peripheral Control functions + * @{ + */ +/* Control functions *********************************************************/ +HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, + uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, + uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, + uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, + uint32_t OutputChannel, uint32_t InputChannel); +HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, + const TIM_ClearInputConfigTypeDef *sClearInputConfig, + uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig); +HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection); +HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig); +HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig); +HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, + uint32_t BurstLength); +HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, + uint32_t BurstLength, uint32_t DataLength); +HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc); +HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength); +HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, uint32_t *BurstBuffer, + uint32_t BurstLength, uint32_t DataLength); +HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc); +HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource); +uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group9 TIM Callbacks functions + * @brief TIM Callbacks functions + * @{ + */ +/* Callback in non blocking modes (Interrupt and DMA) *************************/ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim); +void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim); + +/* Callbacks Register/UnRegister functions ***********************************/ +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID, + pTIM_CallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group10 TIM Peripheral State functions + * @brief Peripheral State functions + * @{ + */ +/* Peripheral State functions ************************************************/ +HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim); + +/* Peripheral Channel state functions ************************************************/ +HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim); +HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** + * @} + */ +/* End of exported functions -------------------------------------------------*/ + +/* Private functions----------------------------------------------------------*/ +/** @defgroup TIM_Private_Functions TIM Private Functions + * @{ + */ +void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure); +void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter); +void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, + uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter); + +void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma); +void TIM_DMAError(DMA_HandleTypeDef *hdma); +void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma); +void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma); +void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +void TIM_ResetCallback(TIM_HandleTypeDef *htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ +/* End of private functions --------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_TIM_H */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h new file mode 100644 index 0000000..339387f --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h @@ -0,0 +1,2140 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_tim_ex.h + * @author MCD Application Team + * @brief Header file of TIM HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_TIM_EX_H +#define STM32G4xx_HAL_TIM_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup TIMEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup TIMEx_Exported_Types TIM Extended Exported Types + * @{ + */ + +/** + * @brief TIM Hall sensor Configuration Structure definition + */ + +typedef struct +{ + uint32_t IC1Polarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_Input_Capture_Polarity */ + + uint32_t IC1Prescaler; /*!< Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_Input_Capture_Prescaler */ + + uint32_t IC1Filter; /*!< Specifies the input capture filter. + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + + uint32_t Commutation_Delay; /*!< Specifies the pulse value to be loaded into the Capture Compare Register. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */ +} TIM_HallSensor_InitTypeDef; + +/** + * @brief TIM Break/Break2 input configuration + */ +typedef struct +{ + uint32_t Source; /*!< Specifies the source of the timer break input. + This parameter can be a value of @ref TIMEx_Break_Input_Source */ + uint32_t Enable; /*!< Specifies whether or not the break input source is enabled. + This parameter can be a value of @ref TIMEx_Break_Input_Source_Enable */ + uint32_t Polarity; /*!< Specifies the break input source polarity. + This parameter can be a value of @ref TIMEx_Break_Input_Source_Polarity */ +} TIMEx_BreakInputConfigTypeDef; + +/** + * @brief TIM Encoder index configuration + */ +typedef struct +{ + uint32_t Polarity; /*!< TIM Encoder index polarity.This parameter can be a value of @ref TIMEx_Encoder_Index_Polarity */ + + uint32_t Prescaler; /*!< TIM Encoder index prescaler.This parameter can be a value of @ref TIMEx_Encoder_Index_Prescaler */ + + uint32_t Filter; /*!< TIM Encoder index filter.This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + + FunctionalState FirstIndexEnable; /*!< Specifies whether or not the encoder first index is enabled.This parameter value can be ENABLE or DISABLE. */ + + uint32_t Position; /*!< Specifies in which AB input configuration the index event resets the counter.This parameter can be a value of @ref TIMEx_Encoder_Index_Position */ + + uint32_t Direction; /*!< Specifies in which counter direction the index event resets the counter.This parameter can be a value of @ref TIMEx_Encoder_Index_Direction */ + +} TIMEx_EncoderIndexConfigTypeDef; + +/** + * @} + */ +/* End of exported types -----------------------------------------------------*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup TIMEx_Exported_Constants TIM Extended Exported Constants + * @{ + */ + +/** @defgroup TIMEx_Remap TIM Extended Remapping + * @{ + */ +#define TIM_TIM1_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM1_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM1_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM1_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM1_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM1_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM1_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM1_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM1_ETR_ADC1_AWD1 TIM1_AF1_ETRSEL_3 /*!< ADC1 analog watchdog 1 */ +#define TIM_TIM1_ETR_ADC1_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ADC1 analog watchdog 2 */ +#define TIM_TIM1_ETR_ADC1_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ADC1 analog watchdog 3 */ +#if defined (ADC4) +#define TIM_TIM1_ETR_ADC4_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC4 analog watchdog 1 */ +#define TIM_TIM1_ETR_ADC4_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC4 analog watchdog 2 */ +#define TIM_TIM1_ETR_ADC4_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC4 analog watchdog 3 */ +#endif /* ADC4 */ + +#define TIM_TIM2_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM2_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM2_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM2_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM2_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM2_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM2_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM2_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0)/*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM2_ETR_TIM3_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM3 ETR */ +#define TIM_TIM2_ETR_TIM4_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM4 ETR */ +#if defined (TIM5) +#define TIM_TIM2_ETR_TIM5_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to TIM5 ETR */ +#endif /* TIM5 */ +#define TIM_TIM2_ETR_LSE (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to LSE */ + +#define TIM_TIM3_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM3_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM3_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM3_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM3_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM3_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM3_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM3_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM3_ETR_TIM2_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM2 ETR */ +#define TIM_TIM3_ETR_TIM4_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM4 ETR */ +#define TIM_TIM3_ETR_ADC2_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC2 analog watchdog 1 */ +#define TIM_TIM3_ETR_ADC2_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC2 analog watchdog 2 */ +#define TIM_TIM3_ETR_ADC2_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC2 analog watchdog 3 */ + +#define TIM_TIM4_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM4_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM4_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM4_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM4_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM4_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM4_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM4_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM4_ETR_TIM3_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM3 ETR */ +#if defined (TIM5) +#define TIM_TIM4_ETR_TIM5_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM5 ETR */ +#endif /* TIM5 */ + +#if defined (TIM5) +#define TIM_TIM5_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM5_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM5_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM5_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM5_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM5_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM5_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM5_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM5_ETR_TIM2_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM2 ETR */ +#define TIM_TIM5_ETR_TIM3_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM3 ETR */ +#endif /* TIM5 */ + +#define TIM_TIM8_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM8_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM8_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM8_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM8_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM8_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM8_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM8_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM8_ETR_ADC2_AWD1 TIM1_AF1_ETRSEL_3 /*!< ADC2 analog watchdog 1 */ +#define TIM_TIM8_ETR_ADC2_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ADC2 analog watchdog 2 */ +#define TIM_TIM8_ETR_ADC2_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ADC2 analog watchdog 3 */ +#if defined (ADC3) +#define TIM_TIM8_ETR_ADC3_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC3 analog watchdog 1 */ +#define TIM_TIM8_ETR_ADC3_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC3 analog watchdog 2 */ +#define TIM_TIM8_ETR_ADC3_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC3 analog watchdog 3 */ +#endif /* ADC3 */ + +#if defined (TIM20) +#define TIM_TIM20_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */ +#define TIM_TIM20_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */ +#define TIM_TIM20_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */ +#define TIM_TIM20_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */ +#define TIM_TIM20_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM20_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM20_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM20_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */ +#endif /* COMP7 */ +#define TIM_TIM20_ETR_ADC3_AWD1 TIM1_AF1_ETRSEL_3 /*!< ADC3 analog watchdog 1 */ +#define TIM_TIM20_ETR_ADC3_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ADC3 analog watchdog 2 */ +#define TIM_TIM20_ETR_ADC3_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ADC3 analog watchdog 3 */ +#if defined (ADC5) +#define TIM_TIM20_ETR_ADC5_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC5 analog watchdog 1 */ +#define TIM_TIM20_ETR_ADC5_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC5 analog watchdog 2 */ +#define TIM_TIM20_ETR_ADC5_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC5 analog watchdog 3 */ +#endif /* ADC5 */ +#endif /* TIM20 */ +/** + * @} + */ + +/** @defgroup TIMEx_Break_Input TIM Extended Break input + * @{ + */ +#define TIM_BREAKINPUT_BRK 0x00000001U /*!< Timer break input */ +#define TIM_BREAKINPUT_BRK2 0x00000002U /*!< Timer break2 input */ +/** + * @} + */ + +/** @defgroup TIMEx_Break_Input_Source TIM Extended Break input source + * @{ + */ +#define TIM_BREAKINPUTSOURCE_BKIN 0x00000001U /*!< An external source (GPIO) is connected to the BKIN pin */ +#define TIM_BREAKINPUTSOURCE_COMP1 0x00000002U /*!< The COMP1 output is connected to the break input */ +#define TIM_BREAKINPUTSOURCE_COMP2 0x00000004U /*!< The COMP2 output is connected to the break input */ +#define TIM_BREAKINPUTSOURCE_COMP3 0x00000008U /*!< The COMP3 output is connected to the break input */ +#define TIM_BREAKINPUTSOURCE_COMP4 0x00000010U /*!< The COMP4 output is connected to the break input */ +#if defined(COMP5) +#define TIM_BREAKINPUTSOURCE_COMP5 0x00000020U /*!< The COMP5 output is connected to the break input */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_BREAKINPUTSOURCE_COMP6 0x00000040U /*!< The COMP6 output is connected to the break input */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_BREAKINPUTSOURCE_COMP7 0x00000080U /*!< The COMP7 output is connected to the break input */ +#endif /* COMP7 */ +/** + * @} + */ + +/** @defgroup TIMEx_Break_Input_Source_Enable TIM Extended Break input source enabling + * @{ + */ +#define TIM_BREAKINPUTSOURCE_DISABLE 0x00000000U /*!< Break input source is disabled */ +#define TIM_BREAKINPUTSOURCE_ENABLE 0x00000001U /*!< Break input source is enabled */ +/** + * @} + */ + +/** @defgroup TIMEx_Break_Input_Source_Polarity TIM Extended Break input polarity + * @{ + */ +#define TIM_BREAKINPUTSOURCE_POLARITY_LOW 0x00000001U /*!< Break input source is active low */ +#define TIM_BREAKINPUTSOURCE_POLARITY_HIGH 0x00000000U /*!< Break input source is active_high */ +/** + * @} + */ + +/** @defgroup TIMEx_Timer_Input_Selection TIM Extended Timer input selection + * @{ + */ +#define TIM_TIM1_TI1_GPIO 0x00000000U /*!< TIM1 input 1 is connected to GPIO */ +#define TIM_TIM1_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM1 input 1 is connected to COMP1_OUT */ +#define TIM_TIM1_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM1 input 1 is connected to COMP2_OUT */ +#define TIM_TIM1_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM1 input 1 is connected to COMP3_OUT */ +#define TIM_TIM1_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM1 input 1 is connected to COMP4_OUT */ + + +#define TIM_TIM2_TI1_GPIO 0x00000000U /*!< TIM2 input 1 is connected to GPIO */ +#define TIM_TIM2_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM2 input 1 is connected to COMP1_OUT */ +#define TIM_TIM2_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM2 input 1 is connected to COMP2_OUT */ +#define TIM_TIM2_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM2 input 1 is connected to COMP3_OUT */ +#define TIM_TIM2_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM2 input 1 is connected to COMP4_OUT */ +#if defined (COMP5) +#define TIM_TIM2_TI1_COMP5 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM2 input 1 is connected to COMP5_OUT */ +#endif /* COMP5 */ + +#define TIM_TIM2_TI2_GPIO 0x00000000U /*!< TIM2 input 2 is connected to GPIO */ +#define TIM_TIM2_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM2 input 2 is connected to COMP1_OUT */ +#define TIM_TIM2_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM2 input 2 is connected to COMP2_OUT */ +#define TIM_TIM2_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM2 input 2 is connected to COMP3_OUT */ +#define TIM_TIM2_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM2 input 2 is connected to COMP4_OUT */ +#if defined (COMP6) +#define TIM_TIM2_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM2 input 2 is connected to COMP6_OUT */ +#endif /* COMP6 */ + +#define TIM_TIM2_TI3_GPIO 0x00000000U /*!< TIM2 input 3 is connected to GPIO */ +#define TIM_TIM2_TI3_COMP4 TIM_TISEL_TI3SEL_0 /*!< TIM2 input 3 is connected to COMP4_OUT */ + +#define TIM_TIM2_TI4_GPIO 0x00000000U /*!< TIM2 input 4 is connected to GPIO */ +#define TIM_TIM2_TI4_COMP1 TIM_TISEL_TI4SEL_0 /*!< TIM2 input 4 is connected to COMP1_OUT */ +#define TIM_TIM2_TI4_COMP2 TIM_TISEL_TI4SEL_1 /*!< TIM2 input 4 is connected to COMP2_OUT */ + + +#define TIM_TIM3_TI1_GPIO 0x00000000U /*!< TIM3 input 1 is connected to GPIO */ +#define TIM_TIM3_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM3 input 1 is connected to COMP1_OUT */ +#define TIM_TIM3_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM3 input 1 is connected to COMP2_OUT */ +#define TIM_TIM3_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM3 input 1 is connected to COMP3_OUT */ +#define TIM_TIM3_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM3 input 1 is connected to COMP4_OUT */ +#if defined (COMP5) +#define TIM_TIM3_TI1_COMP5 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM3 input 1 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined (COMP6) +#define TIM_TIM3_TI1_COMP6 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM3 input 1 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined (COMP7) +#define TIM_TIM3_TI1_COMP7 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM3 input 1 is connected to COMP7_OUT */ +#endif /* COMP7 */ + +#define TIM_TIM3_TI2_GPIO 0x00000000U /*!< TIM3 input 2 is connected to GPIO */ +#define TIM_TIM3_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM3 input 2 is connected to COMP1_OUT */ +#define TIM_TIM3_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM3 input 2 is connected to COMP2_OUT */ +#define TIM_TIM3_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM3 input 2 is connected to COMP3_OUT */ +#define TIM_TIM3_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM3 input 2 is connected to COMP4_OUT */ +#if defined (COMP5) +#define TIM_TIM3_TI2_COMP5 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM3 input 2 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined (COMP6) +#define TIM_TIM3_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1) /*!< TIM3 input 2 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined (COMP7) +#define TIM_TIM3_TI2_COMP7 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM3 input 2 is connected to COMP7_OUT */ +#endif /* COMP7 */ + +#define TIM_TIM3_TI3_GPIO 0x00000000U /*!< TIM3 input 3 is connected to GPIO */ +#define TIM_TIM3_TI3_COMP3 TIM_TISEL_TI3SEL_0 /*!< TIM3 input 3 is connected to COMP3_OUT */ + + +#define TIM_TIM4_TI1_GPIO 0x00000000U /*!< TIM4 input 1 is connected to GPIO */ +#define TIM_TIM4_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM4 input 1 is connected to COMP1_OUT */ +#define TIM_TIM4_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM4 input 1 is connected to COMP2_OUT */ +#define TIM_TIM4_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM4 input 1 is connected to COMP3_OUT */ +#define TIM_TIM4_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM4 input 1 is connected to COMP4_OUT */ +#if defined (COMP5) +#define TIM_TIM4_TI1_COMP5 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM4 input 1 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined (COMP6) +#define TIM_TIM4_TI1_COMP6 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM4 input 1 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined (COMP7) +#define TIM_TIM4_TI1_COMP7 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM4 input 1 is connected to COMP7_OUT */ +#endif /* COMP7 */ + +#define TIM_TIM4_TI2_GPIO 0x00000000U /*!< TIM4 input 2 is connected to GPIO */ +#define TIM_TIM4_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM4 input 2 is connected to COMP1_OUT */ +#define TIM_TIM4_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM4 input 2 is connected to COMP2_OUT */ +#define TIM_TIM4_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM4 input 2 is connected to COMP3_OUT */ +#define TIM_TIM4_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM4 input 2 is connected to COMP4_OUT */ +#if defined (COMP5) +#define TIM_TIM4_TI2_COMP5 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM4 input 2 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined (COMP6) +#define TIM_TIM4_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1) /*!< TIM4 input 2 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined (COMP7) +#define TIM_TIM4_TI2_COMP7 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM4 input 2 is connected to COMP7_OUT */ +#endif /* COMP7 */ + +#define TIM_TIM4_TI3_GPIO 0x00000000U /*!< TIM4 input 3 is connected to GPIO */ +#if defined (COMP5) +#define TIM_TIM4_TI3_COMP5 TIM_TISEL_TI3SEL_0 /*!< TIM4 input 3 is connected to COMP5_OUT */ +#endif /* COMP5 */ + +#define TIM_TIM4_TI4_GPIO 0x00000000U /*!< TIM4 input 4 is connected to GPIO */ +#if defined (COMP6) +#define TIM_TIM4_TI4_COMP6 TIM_TISEL_TI4SEL_0 /*!< TIM4 input 4 is connected to COMP6_OUT */ +#endif /* COMP6 */ + + +#if defined(TIM5) +#define TIM_TIM5_TI1_GPIO 0x00000000U /*!< TIM5 input 1 is connected to GPIO */ +#define TIM_TIM5_TI1_LSI TIM_TISEL_TI1SEL_0 /*!< TIM5 input 1 is connected to LSI */ +#define TIM_TIM5_TI1_LSE TIM_TISEL_TI1SEL_1 /*!< TIM5 input 1 is connected to LSE */ +#define TIM_TIM5_TI1_RTC_WK (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to RTC_WAKEUP */ +#define TIM_TIM5_TI1_COMP1 TIM_TISEL_TI1SEL_2 /*!< TIM5 input 1 is connected to COMP1_OUT */ +#define TIM_TIM5_TI1_COMP2 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to COMP2_OUT */ +#define TIM_TIM5_TI1_COMP3 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM5 input 1 is connected to COMP3_OUT */ +#define TIM_TIM5_TI1_COMP4 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM5_TI1_COMP5 TIM_TISEL_TI1SEL_3 /*!< TIM5 input 1 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM5_TI1_COMP6 (TIM_TISEL_TI1SEL_3 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM5_TI1_COMP7 (TIM_TISEL_TI1SEL_3 | TIM_TISEL_TI1SEL_1) /*!< TIM5 input 1 is connected to COMP7_OUT */ +#endif /* COMP7 */ + +#define TIM_TIM5_TI2_GPIO 0x00000000U /*!< TIM5 input 2 is connected to GPIO */ +#define TIM_TIM5_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM5 input 2 is connected to COMP1_OUT */ +#define TIM_TIM5_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM5 input 2 is connected to COMP2_OUT */ +#define TIM_TIM5_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM5 input 2 is connected to COMP3_OUT */ +#define TIM_TIM5_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM5 input 2 is connected to COMP4_OUT */ +#if defined(COMP5) +#define TIM_TIM5_TI2_COMP5 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM5 input 2 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP6) +#define TIM_TIM5_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1) /*!< TIM5 input 2 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM5_TI2_COMP7 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM5 input 2 is connected to COMP7_OUT */ +#endif /* COMP7 */ +#endif /* TIM5 */ + + +#define TIM_TIM8_TI1_GPIO 0x00000000U /*!< TIM8 input 1 is connected to GPIO */ +#define TIM_TIM8_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM8 input 1 is connected to COMP1_OUT */ +#define TIM_TIM8_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM8 input 1 is connected to COMP2_OUT */ +#define TIM_TIM8_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM8 input 1 is connected to COMP3_OUT */ +#define TIM_TIM8_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM8 input 1 is connected to COMP4_OUT */ + + +#define TIM_TIM15_TI1_GPIO 0x00000000U /*!< TIM15 input 1 is connected to GPIO */ +#define TIM_TIM15_TI1_LSE TIM_TISEL_TI1SEL_0 /*!< TIM15 input 1 is connected to LSE */ +#define TIM_TIM15_TI1_COMP1 TIM_TISEL_TI1SEL_1 /*!< TIM15 input 1 is connected to COMP1_OUT */ +#define TIM_TIM15_TI1_COMP2 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM15 input 1 is connected to COMP2_OUT */ +#if defined (COMP5) +#define TIM_TIM15_TI1_COMP5 TIM_TISEL_TI1SEL_2 /*!< TIM15 input 1 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#if defined(COMP7) +#define TIM_TIM15_TI1_COMP7 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM15 input 1 is connected to COMP7_OUT */ +#endif /* COMP7 */ + +#define TIM_TIM15_TI2_GPIO 0x00000000U /*!< TIM15 input 2 is connected to GPIO */ +#define TIM_TIM15_TI2_COMP2 TIM_TISEL_TI2SEL_0 /*!< TIM15 input 2 is connected to COMP2_OUT */ +#define TIM_TIM15_TI2_COMP3 TIM_TISEL_TI2SEL_1 /*!< TIM15 input 2 is connected to COMP3_OUT */ +#if defined (COMP6) +#define TIM_TIM15_TI2_COMP6 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM15 input 2 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#if defined(COMP7) +#define TIM_TIM15_TI2_COMP7 TIM_TISEL_TI2SEL_2 /*!< TIM15 input 2 is connected to COMP7_OUT */ +#endif /* COMP7 */ + + +#define TIM_TIM16_TI1_GPIO 0x00000000U /*!< TIM16 input 1 is connected to GPIO */ +#if defined (COMP6) +#define TIM_TIM16_TI1_COMP6 TIM_TISEL_TI1SEL_0 /*!< TIM16 input 1 is connected to COMP6_OUT */ +#endif /* COMP6 */ +#define TIM_TIM16_TI1_MCO TIM_TISEL_TI1SEL_1 /*!< TIM16 input 1 is connected to MCO */ +#define TIM_TIM16_TI1_HSE_32 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM16 input 1 is connected to HSE/32 */ +#define TIM_TIM16_TI1_RTC_WK TIM_TISEL_TI1SEL_2 /*!< TIM16 input 1 is connected to RTC_WAKEUP */ +#define TIM_TIM16_TI1_LSE (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM16 input 1 is connected to LSE */ +#define TIM_TIM16_TI1_LSI (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM16 input 1 is connected to LSI */ + + +#define TIM_TIM17_TI1_GPIO 0x00000000U /*!< TIM17 input 1 is connected to GPIO */ +#if defined (COMP5) +#define TIM_TIM17_TI1_COMP5 TIM_TISEL_TI1SEL_0 /*!< TIM17 input 1 is connected to COMP5_OUT */ +#endif /* COMP5 */ +#define TIM_TIM17_TI1_MCO TIM_TISEL_TI1SEL_1 /*!< TIM17 input 1 is connected to MCO */ +#define TIM_TIM17_TI1_HSE_32 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM17 input 1 is connected to HSE/32 */ +#define TIM_TIM17_TI1_RTC_WK TIM_TISEL_TI1SEL_2 /*!< TIM17 input 1 is connected to RTC_WAKEUP */ +#define TIM_TIM17_TI1_LSE (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM17 input 1 is connected to LSE */ +#define TIM_TIM17_TI1_LSI (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM17 input 1 is connected to LSI */ + + +#if defined (TIM20) +#define TIM_TIM20_TI1_GPIO 0x00000000U /*!< TIM20 input 1 is connected to GPIO */ +#define TIM_TIM20_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM20 input 1 is connected to COMP1_OUT */ +#define TIM_TIM20_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM20 input 1 is connected to COMP2_OUT */ +#define TIM_TIM20_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM20 input 1 is connected to COMP3_OUT */ +#define TIM_TIM20_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM20 input 1 is connected to COMP4_OUT */ +#endif /* TIM20 */ +/** + * @} + */ + +/** @defgroup TIMEx_SMS_Preload_Enable TIM Extended Bitfield SMS preload enabling + * @{ + */ +#define TIM_SMS_PRELOAD_SOURCE_UPDATE 0x00000000U /*!< Prelaod of SMS bitfield is disabled */ +#define TIM_SMS_PRELOAD_SOURCE_INDEX TIM_SMCR_SMSPS /*!< Preload of SMS bitfield is enabled */ +/** + * @} + */ + +/** @defgroup TIMEx_Encoder_Index_Position TIM Extended Encoder index position + * @{ + */ +#define TIM_ENCODERINDEX_POSITION_00 0x00000000U /*!< Encoder index position is AB=00 */ +#define TIM_ENCODERINDEX_POSITION_01 TIM_ECR_IPOS_0 /*!< Encoder index position is AB=01 */ +#define TIM_ENCODERINDEX_POSITION_10 TIM_ECR_IPOS_1 /*!< Encoder index position is AB=10 */ +#define TIM_ENCODERINDEX_POSITION_11 (TIM_ECR_IPOS_1 | TIM_ECR_IPOS_0) /*!< Encoder index position is AB=11 */ +#define TIM_ENCODERINDEX_POSITION_0 0x00000000U /*!< In directional clock mode or clock plus direction mode, index resets the counter when clock is 0 */ +#define TIM_ENCODERINDEX_POSITION_1 TIM_ECR_IPOS_0 /*!< In directional clock mode or clock plus direction mode, index resets the counter when clock is 1 */ +/** + * @} + */ + +/** @defgroup TIMEx_Encoder_Index_Direction TIM Extended Encoder index direction + * @{ + */ +#define TIM_ENCODERINDEX_DIRECTION_UP_DOWN 0x00000000U /*!< Index resets the counter whatever the direction */ +#define TIM_ENCODERINDEX_DIRECTION_UP TIM_ECR_IDIR_0 /*!< Index resets the counter when up-counting only */ +#define TIM_ENCODERINDEX_DIRECTION_DOWN TIM_ECR_IDIR_1 /*!< Index resets the counter when down-counting only */ +/** + * @} + */ + +/** @defgroup TIMEx_Encoder_Index_Polarity TIM Extended Encoder index polarity + * @{ + */ +#define TIM_ENCODERINDEX_POLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx pin */ +#define TIM_ENCODERINDEX_POLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx pin */ +/** + * @} + */ + +/** @defgroup TIMEx_Encoder_Index_Prescaler TIM Extended Encodder index prescaler + * @{ + */ +#define TIM_ENCODERINDEX_PRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */ +#define TIM_ENCODERINDEX_PRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR pin: Capture performed once every 2 events. */ +#define TIM_ENCODERINDEX_PRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR pin: Capture performed once every 4 events. */ +#define TIM_ENCODERINDEX_PRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR pin: Capture performed once every 8 events. */ +/** + * @} + */ + +/** + * @} + */ +/* End of exported constants -------------------------------------------------*/ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup TIMEx_Exported_Macros TIM Extended Exported Macros + * @{ + */ + +/** + * @brief HELPER macro calculating the prescaler value to achieve the required counter clock frequency. + * @note ex: @ref __HAL_TIM_CALC_PSC(80000000, 1000000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CNTCLK__ counter clock frequency (in Hz) + * @retval Prescaler value (between Min_Data=0 and Max_Data=65535) + */ +#define __HAL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \ + ((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((__TIMCLK__)/(__CNTCLK__) - 1U) : 0U + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required output signal frequency. + * @note ex: @ref __HAL_TIM_CALC_PERIOD(1000000, 0, 10000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __FREQ__ output signal frequency (in Hz) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __HAL_TIM_CALC_PERIOD(__TIMCLK__, __PSC__, __FREQ__) \ + (((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? ((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U)) - 1U) : 0U + +/** + * @brief HELPER macro calculating the auto-reload value, with dithering feature enabled, to achieve the required + * output signal frequency. + * @note ex: @ref __HAL_TIM_CALC_PERIOD_DITHER(1000000, 0, 10000); + * @note This macro should be used only if dithering is already enabled + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __FREQ__ output signal frequency (in Hz) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65519) + */ +#define __HAL_TIM_CALC_PERIOD_DITHER(__TIMCLK__, __PSC__, __FREQ__) \ + (((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? \ + (uint32_t)(((uint64_t)(__TIMCLK__)*16/((__FREQ__) * ((__PSC__) + 1U)) - 16U)) : 0U + +/** + * @brief HELPER macro calculating the compare value required to achieve the required timer output compare + * active/inactive delay. + * @note ex: @ref __HAL_TIM_CALC_PULSE(1000000, 0, 10); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @retval Compare value (between Min_Data=0 and Max_Data=65535) + */ +#define __HAL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__) \ + ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \ + / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U)))) + +/** + * @brief HELPER macro calculating the compare value, with dithering feature enabled, to achieve the required timer + * output compare active/inactive delay. + * @note ex: @ref __HAL_TIM_CALC_PULSE_DITHER(1000000, 0, 10); + * @note This macro should be used only if dithering is already enabled + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @retval Compare value (between Min_Data=0 and Max_Data=65519) + */ +#define __HAL_TIM_CALC_PULSE_DITHER(__TIMCLK__, __PSC__, __DELAY__) \ + ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__) * 16U) \ + / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U)))) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required pulse duration + * (when the timer operates in one pulse mode). + * @note ex: @ref __HAL_TIM_CALC_PERIOD_BY_DELAY(1000000, 0, 10, 20); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @param __PULSE__ pulse duration (in us) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __HAL_TIM_CALC_PERIOD_BY_DELAY(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \ + ((uint32_t)(__HAL_TIM_CALC_PULSE((__TIMCLK__), (__PSC__), (__PULSE__)) \ + + __HAL_TIM_CALC_PULSE((__TIMCLK__), (__PSC__), (__DELAY__)))) + +/** + * @brief HELPER macro calculating the auto-reload value, with dithering feature enabled, to achieve the required + * pulse duration (when the timer operates in one pulse mode). + * @note ex: @ref __HAL_TIM_CALC_PERIOD_DITHER_BY_DELAY(1000000, 0, 10, 20); + * @note This macro should be used only if dithering is already enabled + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @param __PULSE__ pulse duration (in us) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65519) + */ +#define __HAL_TIM_CALC_PERIOD_DITHER_BY_DELAY(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \ + ((uint32_t)(__HAL_TIM_CALC_PULSE_DITHER((__TIMCLK__), (__PSC__), (__PULSE__)) \ + + __HAL_TIM_CALC_PULSE_DITHER((__TIMCLK__), (__PSC__), (__DELAY__)))) + +/** + * @} + */ +/* End of exported macro -----------------------------------------------------*/ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup TIMEx_Private_Macros TIM Extended Private Macros + * @{ + */ +#define IS_TIM_REMAP(__REMAP__) ((((__REMAP__) & 0xFFFC3FFFU) == 0x00000000U)) + +#define IS_TIM_BREAKINPUT(__BREAKINPUT__) (((__BREAKINPUT__) == TIM_BREAKINPUT_BRK) || \ + ((__BREAKINPUT__) == TIM_BREAKINPUT_BRK2)) + +#if defined (COMP5) && defined (COMP6) && defined (COMP7) +#define IS_TIM_BREAKINPUTSOURCE(__SOURCE__) (((__SOURCE__) == TIM_BREAKINPUTSOURCE_BKIN) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP1) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP2) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP3) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP4) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP5) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP6) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP7)) + + +#else +#define IS_TIM_BREAKINPUTSOURCE(__SOURCE__) (((__SOURCE__) == TIM_BREAKINPUTSOURCE_BKIN) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP1) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP2) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP3) || \ + ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP4)) + +#endif /* COMP5 && COMP6 && COMP7 */ +#define IS_TIM_BREAKINPUTSOURCE_STATE(__STATE__) (((__STATE__) == TIM_BREAKINPUTSOURCE_DISABLE) || \ + ((__STATE__) == TIM_BREAKINPUTSOURCE_ENABLE)) + +#define IS_TIM_BREAKINPUTSOURCE_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKINPUTSOURCE_POLARITY_LOW) || \ + ((__POLARITY__) == TIM_BREAKINPUTSOURCE_POLARITY_HIGH)) + +#define IS_TIM_TISEL(__TISEL__) ((((__TISEL__) & 0xF0F0F0F0U) == 0x00000000U)) + +#define IS_TIM_TISEL_TIX_INSTANCE(INSTANCE, CHANNEL) \ + (IS_TIM_CCX_INSTANCE(INSTANCE, CHANNEL) && ((CHANNEL) < TIM_CHANNEL_5)) + +#if defined(TIM5) && defined(TIM20) +#define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \ + ((((INSTANCE) == TIM1) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \ + || \ + (((INSTANCE) == TIM5) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \ + || \ + (((INSTANCE) == TIM20) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10)))) + +#define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10) || \ + ((__SELECTION__) == TIM_TS_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10))) \ + || \ + (((INSTANCE) == TIM5) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10))) \ + || \ + (((INSTANCE) == TIM20) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR10)))) + +#define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_ITR11)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM5) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM20) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR10)|| \ + ((__SELECTION__) == TIM_TS_NONE)))) + +#elif defined(TIM5) +#define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \ + ((((INSTANCE) == TIM1) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM5) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8)))) + +#define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM5) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8)))) + +#define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR11)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM5) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR4) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE)))) +#elif defined(TIM20) +#define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \ + ((((INSTANCE) == TIM1) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \ + || \ + (((INSTANCE) == TIM20) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8)))) + +#define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9))) \ + || \ + (((INSTANCE) == TIM20) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8)))) + +#define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_ITR11)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR9) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM20) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE)))) +#else +#define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \ + ((((INSTANCE) == TIM1) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8)))) + +#define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR11))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8)))) + +#define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \ + ((((INSTANCE) == TIM1) && \ + (((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM2) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_ITR11)|| \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM3) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM4) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM8) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR6) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE))) \ + || \ + (((INSTANCE) == TIM15) && \ + (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_ITR5) || \ + ((__SELECTION__) == TIM_TS_ITR7) || \ + ((__SELECTION__) == TIM_TS_ITR8) || \ + ((__SELECTION__) == TIM_TS_NONE)))) + +#endif /* TIM5 && TIM20 */ + +#define IS_TIM_OC_CHANNEL_MODE(__MODE__, __CHANNEL__) \ + (IS_TIM_OC_MODE(__MODE__) \ + && ((((__MODE__) == TIM_OCMODE_DIRECTION_OUTPUT) || ((__MODE__) == TIM_OCMODE_PULSE_ON_COMPARE)) \ + ? (((__CHANNEL__) == TIM_CHANNEL_3) || ((__CHANNEL__) == TIM_CHANNEL_4)) : (1 == 1))) + +#define IS_TIM_PULSEONCOMPARE_CHANNEL(__CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_3) || \ + ((__CHANNEL__) == TIM_CHANNEL_4)) + +#define IS_TIM_PULSEONCOMPARE_INSTANCE(INSTANCE) IS_TIM_CC3_INSTANCE(INSTANCE) + +#define IS_TIM_PULSEONCOMPARE_WIDTH(__WIDTH__) ((__WIDTH__) <= 0xFFU) + +#define IS_TIM_PULSEONCOMPARE_WIDTHPRESCALER(__PRESCALER__) ((__PRESCALER__) <= 0x7U) + +#define IS_TIM_SLAVE_PRELOAD_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_SMS_PRELOAD_SOURCE_UPDATE) \ + || ((__SOURCE__) == TIM_SMS_PRELOAD_SOURCE_INDEX)) + +#define IS_TIM_ENCODERINDEX_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINDEX_POLARITY_INVERTED) || \ + ((__POLARITY__) == TIM_ENCODERINDEX_POLARITY_NONINVERTED)) + +#define IS_TIM_ENCODERINDEX_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV1) || \ + ((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV2) || \ + ((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV4) || \ + ((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV8)) + +#define IS_TIM_ENCODERINDEX_FILTER(__FILTER__) ((__FILTER__) <= 0xFUL) + +#define IS_TIM_ENCODERINDEX_POSITION(__POSITION__) (((__POSITION__) == TIM_ENCODERINDEX_POSITION_00) || \ + ((__POSITION__) == TIM_ENCODERINDEX_POSITION_01) || \ + ((__POSITION__) == TIM_ENCODERINDEX_POSITION_10) || \ + ((__POSITION__) == TIM_ENCODERINDEX_POSITION_11) || \ + ((__POSITION__) == TIM_ENCODERINDEX_POSITION_0) || \ + ((__POSITION__) == TIM_ENCODERINDEX_POSITION_1)) + +#define IS_TIM_ENCODERINDEX_DIRECTION(__DIRECTION__) (((__DIRECTION__) == TIM_ENCODERINDEX_DIRECTION_UP_DOWN) || \ + ((__DIRECTION__) == TIM_ENCODERINDEX_DIRECTION_UP) || \ + ((__DIRECTION__) == TIM_ENCODERINDEX_DIRECTION_DOWN)) +/** + * @} + */ +/* End of private macro ------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup TIMEx_Exported_Functions TIM Extended Exported Functions + * @{ + */ + +/** @addtogroup TIMEx_Exported_Functions_Group1 Extended Timer Hall Sensor functions + * @brief Timer Hall Sensor functions + * @{ + */ +/* Timer Hall Sensor functions **********************************************/ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, const TIM_HallSensor_InitTypeDef *sConfig); +HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim); + +void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim); +void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim); + +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim); +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length); +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** @addtogroup TIMEx_Exported_Functions_Group2 Extended Timer Complementary Output Compare functions + * @brief Timer Complementary Output Compare functions + * @{ + */ +/* Timer Complementary Output Compare functions *****************************/ +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel); + +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel); + +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length); +HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @addtogroup TIMEx_Exported_Functions_Group3 Extended Timer Complementary PWM functions + * @brief Timer Complementary PWM functions + * @{ + */ +/* Timer Complementary PWM functions ****************************************/ +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel); + +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel); +/* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length); +HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel); +/** + * @} + */ + +/** @addtogroup TIMEx_Exported_Functions_Group4 Extended Timer Complementary One Pulse functions + * @brief Timer Complementary One Pulse functions + * @{ + */ +/* Timer Complementary One Pulse functions **********************************/ +/* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel); + +/* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel); +/** + * @} + */ + +/** @addtogroup TIMEx_Exported_Functions_Group5 Extended Peripheral Control functions + * @brief Peripheral Control functions + * @{ + */ +/* Extended Control functions ************************************************/ +HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, uint32_t InputTrigger, + uint32_t CommutationSource); +HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim, uint32_t InputTrigger, + uint32_t CommutationSource); +HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *htim, uint32_t InputTrigger, + uint32_t CommutationSource); +HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, + const TIM_MasterConfigTypeDef *sMasterConfig); +HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim, + const TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig); +HAL_StatusTypeDef HAL_TIMEx_ConfigBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput, + const TIMEx_BreakInputConfigTypeDef *sBreakInputConfig); +HAL_StatusTypeDef HAL_TIMEx_GroupChannel5(TIM_HandleTypeDef *htim, uint32_t Channels); +HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap); +HAL_StatusTypeDef HAL_TIMEx_TISelection(TIM_HandleTypeDef *htim, uint32_t TISelection, uint32_t Channel); + +HAL_StatusTypeDef HAL_TIMEx_DisarmBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput); +HAL_StatusTypeDef HAL_TIMEx_ReArmBreakInput(const TIM_HandleTypeDef *htim, uint32_t BreakInput); +HAL_StatusTypeDef HAL_TIMEx_DitheringEnable(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_DitheringDisable(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_OC_ConfigPulseOnCompare(TIM_HandleTypeDef *htim, uint32_t PulseWidthPrescaler, + uint32_t PulseWidth); +HAL_StatusTypeDef HAL_TIMEx_ConfigSlaveModePreload(TIM_HandleTypeDef *htim, uint32_t Source); +HAL_StatusTypeDef HAL_TIMEx_EnableSlaveModePreload(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_DisableSlaveModePreload(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_EnableDeadTimePreload(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_DisableDeadTimePreload(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_ConfigDeadTime(TIM_HandleTypeDef *htim, uint32_t Deadtime); +HAL_StatusTypeDef HAL_TIMEx_ConfigAsymmetricalDeadTime(TIM_HandleTypeDef *htim, uint32_t FallingDeadtime); +HAL_StatusTypeDef HAL_TIMEx_EnableAsymmetricalDeadTime(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_DisableAsymmetricalDeadTime(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_ConfigEncoderIndex(TIM_HandleTypeDef *htim, + TIMEx_EncoderIndexConfigTypeDef *sEncoderIndexConfig); +HAL_StatusTypeDef HAL_TIMEx_EnableEncoderIndex(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_DisableEncoderIndex(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_EnableEncoderFirstIndex(TIM_HandleTypeDef *htim); +HAL_StatusTypeDef HAL_TIMEx_DisableEncoderFirstIndex(TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** @addtogroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions + * @brief Extended Callbacks functions + * @{ + */ +/* Extended Callback **********************************************************/ +void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_EncoderIndexCallback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_DirectionChangeCallback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_IndexErrorCallback(TIM_HandleTypeDef *htim); +void HAL_TIMEx_TransitionErrorCallback(TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** @addtogroup TIMEx_Exported_Functions_Group7 Extended Peripheral State functions + * @brief Extended Peripheral State functions + * @{ + */ +/* Extended Peripheral State functions ***************************************/ +HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(const TIM_HandleTypeDef *htim); +HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(const TIM_HandleTypeDef *htim, uint32_t ChannelN); +/** + * @} + */ + +/** + * @} + */ +/* End of exported functions -------------------------------------------------*/ + +/* Private functions----------------------------------------------------------*/ +/** @addtogroup TIMEx_Private_Functions TIM Extended Private Functions + * @{ + */ +void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma); +void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma); +/** + * @} + */ +/* End of private functions --------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32G4xx_HAL_TIM_EX_H */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h new file mode 100644 index 0000000..2f308b3 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h @@ -0,0 +1,1745 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_uart.h + * @author MCD Application Team + * @brief Header file of UART HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_UART_H +#define STM32G4xx_HAL_UART_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup UART + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup UART_Exported_Types UART Exported Types + * @{ + */ + +/** + * @brief UART Init Structure definition + */ +typedef struct +{ + uint32_t BaudRate; /*!< This member configures the UART communication baud rate. + The baud rate register is computed using the following formula: + LPUART: + ======= + Baud Rate Register = ((256 * lpuart_ker_ckpres) / ((huart->Init.BaudRate))) + where lpuart_ker_ck_pres is the UART input clock divided by a prescaler + UART: + ===== + - If oversampling is 16 or in LIN mode, + Baud Rate Register = ((uart_ker_ckpres) / ((huart->Init.BaudRate))) + - If oversampling is 8, + Baud Rate Register[15:4] = ((2 * uart_ker_ckpres) / + ((huart->Init.BaudRate)))[15:4] + Baud Rate Register[3] = 0 + Baud Rate Register[2:0] = (((2 * uart_ker_ckpres) / + ((huart->Init.BaudRate)))[3:0]) >> 1 + where uart_ker_ck_pres is the UART input clock divided by a prescaler */ + + uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. + This parameter can be a value of @ref UARTEx_Word_Length. */ + + uint32_t StopBits; /*!< Specifies the number of stop bits transmitted. + This parameter can be a value of @ref UART_Stop_Bits. */ + + uint32_t Parity; /*!< Specifies the parity mode. + This parameter can be a value of @ref UART_Parity + @note When parity is enabled, the computed parity is inserted + at the MSB position of the transmitted data (9th bit when + the word length is set to 9 data bits; 8th bit when the + word length is set to 8 data bits). */ + + uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled. + This parameter can be a value of @ref UART_Mode. */ + + uint32_t HwFlowCtl; /*!< Specifies whether the hardware flow control mode is enabled + or disabled. + This parameter can be a value of @ref UART_Hardware_Flow_Control. */ + + uint32_t OverSampling; /*!< Specifies whether the Over sampling 8 is enabled or disabled, + to achieve higher speed (up to f_PCLK/8). + This parameter can be a value of @ref UART_Over_Sampling. */ + + uint32_t OneBitSampling; /*!< Specifies whether a single sample or three samples' majority vote is selected. + Selecting the single sample method increases the receiver tolerance to clock + deviations. This parameter can be a value of @ref UART_OneBit_Sampling. */ + + uint32_t ClockPrescaler; /*!< Specifies the prescaler value used to divide the UART clock source. + This parameter can be a value of @ref UART_ClockPrescaler. */ + +} UART_InitTypeDef; + +/** + * @brief UART Advanced Features initialization structure definition + */ +typedef struct +{ + uint32_t AdvFeatureInit; /*!< Specifies which advanced UART features is initialized. Several + Advanced Features may be initialized at the same time . + This parameter can be a value of + @ref UART_Advanced_Features_Initialization_Type. */ + + uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted. + This parameter can be a value of @ref UART_Tx_Inv. */ + + uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted. + This parameter can be a value of @ref UART_Rx_Inv. */ + + uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic + vs negative/inverted logic). + This parameter can be a value of @ref UART_Data_Inv. */ + + uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped. + This parameter can be a value of @ref UART_Rx_Tx_Swap. */ + + uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled. + This parameter can be a value of @ref UART_Overrun_Disable. */ + + uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error. + This parameter can be a value of @ref UART_DMA_Disable_on_Rx_Error. */ + + uint32_t AutoBaudRateEnable; /*!< Specifies whether auto Baud rate detection is enabled. + This parameter can be a value of @ref UART_AutoBaudRate_Enable. */ + + uint32_t AutoBaudRateMode; /*!< If auto Baud rate detection is enabled, specifies how the rate + detection is carried out. + This parameter can be a value of @ref UART_AutoBaud_Rate_Mode. */ + + uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line. + This parameter can be a value of @ref UART_MSB_First. */ +} UART_AdvFeatureInitTypeDef; + +/** + * @brief HAL UART State definition + * @note HAL UART State value is a combination of 2 different substates: + * gState and RxState (see @ref UART_State_Definition). + * - gState contains UART state information related to global Handle management + * and also information related to Tx operations. + * gState value coding follow below described bitmap : + * b7-b6 Error information + * 00 : No Error + * 01 : (Not Used) + * 10 : Timeout + * 11 : Error + * b5 Peripheral initialization status + * 0 : Reset (Peripheral not initialized) + * 1 : Init done (Peripheral initialized. HAL UART Init function already called) + * b4-b3 (not used) + * xx : Should be set to 00 + * b2 Intrinsic process state + * 0 : Ready + * 1 : Busy (Peripheral busy with some configuration or internal operations) + * b1 (not used) + * x : Should be set to 0 + * b0 Tx state + * 0 : Ready (no Tx operation ongoing) + * 1 : Busy (Tx operation ongoing) + * - RxState contains information related to Rx operations. + * RxState value coding follow below described bitmap : + * b7-b6 (not used) + * xx : Should be set to 00 + * b5 Peripheral initialization status + * 0 : Reset (Peripheral not initialized) + * 1 : Init done (Peripheral initialized) + * b4-b2 (not used) + * xxx : Should be set to 000 + * b1 Rx state + * 0 : Ready (no Rx operation ongoing) + * 1 : Busy (Rx operation ongoing) + * b0 (not used) + * x : Should be set to 0. + */ +typedef uint32_t HAL_UART_StateTypeDef; + +/** + * @brief UART clock sources definition + */ +typedef enum +{ + UART_CLOCKSOURCE_PCLK1 = 0x00U, /*!< PCLK1 clock source */ + UART_CLOCKSOURCE_PCLK2 = 0x01U, /*!< PCLK2 clock source */ + UART_CLOCKSOURCE_HSI = 0x02U, /*!< HSI clock source */ + UART_CLOCKSOURCE_SYSCLK = 0x04U, /*!< SYSCLK clock source */ + UART_CLOCKSOURCE_LSE = 0x08U, /*!< LSE clock source */ + UART_CLOCKSOURCE_UNDEFINED = 0x10U /*!< Undefined clock source */ +} UART_ClockSourceTypeDef; + +/** + * @brief HAL UART Reception type definition + * @note HAL UART Reception type value aims to identify which type of Reception is ongoing. + * This parameter can be a value of @ref UART_Reception_Type_Values : + * HAL_UART_RECEPTION_STANDARD = 0x00U, + * HAL_UART_RECEPTION_TOIDLE = 0x01U, + * HAL_UART_RECEPTION_TORTO = 0x02U, + * HAL_UART_RECEPTION_TOCHARMATCH = 0x03U, + */ +typedef uint32_t HAL_UART_RxTypeTypeDef; + +/** + * @brief HAL UART Rx Event type definition + * @note HAL UART Rx Event type value aims to identify which type of Event has occurred + * leading to call of the RxEvent callback. + * This parameter can be a value of @ref UART_RxEvent_Type_Values : + * HAL_UART_RXEVENT_TC = 0x00U, + * HAL_UART_RXEVENT_HT = 0x01U, + * HAL_UART_RXEVENT_IDLE = 0x02U, + */ +typedef uint32_t HAL_UART_RxEventTypeTypeDef; + +/** + * @brief UART handle Structure definition + */ +typedef struct __UART_HandleTypeDef +{ + USART_TypeDef *Instance; /*!< UART registers base address */ + + UART_InitTypeDef Init; /*!< UART communication parameters */ + + UART_AdvFeatureInitTypeDef AdvancedInit; /*!< UART Advanced Features initialization parameters */ + + const uint8_t *pTxBuffPtr; /*!< Pointer to UART Tx transfer Buffer */ + + uint16_t TxXferSize; /*!< UART Tx Transfer size */ + + __IO uint16_t TxXferCount; /*!< UART Tx Transfer Counter */ + + uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */ + + uint16_t RxXferSize; /*!< UART Rx Transfer size */ + + __IO uint16_t RxXferCount; /*!< UART Rx Transfer Counter */ + + uint16_t Mask; /*!< UART Rx RDR register mask */ + + uint32_t FifoMode; /*!< Specifies if the FIFO mode is being used. + This parameter can be a value of @ref UARTEx_FIFO_mode. */ + + uint16_t NbRxDataToProcess; /*!< Number of data to process during RX ISR execution */ + + uint16_t NbTxDataToProcess; /*!< Number of data to process during TX ISR execution */ + + __IO HAL_UART_RxTypeTypeDef ReceptionType; /*!< Type of ongoing reception */ + + __IO HAL_UART_RxEventTypeTypeDef RxEventType; /*!< Type of Rx Event */ + + void (*RxISR)(struct __UART_HandleTypeDef *huart); /*!< Function pointer on Rx IRQ handler */ + + void (*TxISR)(struct __UART_HandleTypeDef *huart); /*!< Function pointer on Tx IRQ handler */ + + DMA_HandleTypeDef *hdmatx; /*!< UART Tx DMA Handle parameters */ + + DMA_HandleTypeDef *hdmarx; /*!< UART Rx DMA Handle parameters */ + + HAL_LockTypeDef Lock; /*!< Locking object */ + + __IO HAL_UART_StateTypeDef gState; /*!< UART state information related to global Handle management + and also related to Tx operations. This parameter + can be a value of @ref HAL_UART_StateTypeDef */ + + __IO HAL_UART_StateTypeDef RxState; /*!< UART state information related to Rx operations. This + parameter can be a value of @ref HAL_UART_StateTypeDef */ + + __IO uint32_t ErrorCode; /*!< UART Error code */ + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + void (* TxHalfCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Tx Half Complete Callback */ + void (* TxCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Tx Complete Callback */ + void (* RxHalfCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Rx Half Complete Callback */ + void (* RxCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Rx Complete Callback */ + void (* ErrorCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Error Callback */ + void (* AbortCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Abort Complete Callback */ + void (* AbortTransmitCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Abort Transmit Complete Callback */ + void (* AbortReceiveCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Abort Receive Complete Callback */ + void (* WakeupCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Wakeup Callback */ + void (* RxFifoFullCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Rx Fifo Full Callback */ + void (* TxFifoEmptyCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Tx Fifo Empty Callback */ + void (* RxEventCallback)(struct __UART_HandleTypeDef *huart, uint16_t Pos); /*!< UART Reception Event Callback */ + + void (* MspInitCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Msp Init callback */ + void (* MspDeInitCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Msp DeInit callback */ +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + +} UART_HandleTypeDef; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +/** + * @brief HAL UART Callback ID enumeration definition + */ +typedef enum +{ + HAL_UART_TX_HALFCOMPLETE_CB_ID = 0x00U, /*!< UART Tx Half Complete Callback ID */ + HAL_UART_TX_COMPLETE_CB_ID = 0x01U, /*!< UART Tx Complete Callback ID */ + HAL_UART_RX_HALFCOMPLETE_CB_ID = 0x02U, /*!< UART Rx Half Complete Callback ID */ + HAL_UART_RX_COMPLETE_CB_ID = 0x03U, /*!< UART Rx Complete Callback ID */ + HAL_UART_ERROR_CB_ID = 0x04U, /*!< UART Error Callback ID */ + HAL_UART_ABORT_COMPLETE_CB_ID = 0x05U, /*!< UART Abort Complete Callback ID */ + HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U, /*!< UART Abort Transmit Complete Callback ID */ + HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID = 0x07U, /*!< UART Abort Receive Complete Callback ID */ + HAL_UART_WAKEUP_CB_ID = 0x08U, /*!< UART Wakeup Callback ID */ + HAL_UART_RX_FIFO_FULL_CB_ID = 0x09U, /*!< UART Rx Fifo Full Callback ID */ + HAL_UART_TX_FIFO_EMPTY_CB_ID = 0x0AU, /*!< UART Tx Fifo Empty Callback ID */ + + HAL_UART_MSPINIT_CB_ID = 0x0BU, /*!< UART MspInit callback ID */ + HAL_UART_MSPDEINIT_CB_ID = 0x0CU /*!< UART MspDeInit callback ID */ + +} HAL_UART_CallbackIDTypeDef; + +/** + * @brief HAL UART Callback pointer definition + */ +typedef void (*pUART_CallbackTypeDef)(UART_HandleTypeDef *huart); /*!< pointer to an UART callback function */ +typedef void (*pUART_RxEventCallbackTypeDef) +(struct __UART_HandleTypeDef *huart, uint16_t Pos); /*!< pointer to a UART Rx Event specific callback function */ + +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup UART_Exported_Constants UART Exported Constants + * @{ + */ + +/** @defgroup UART_State_Definition UART State Code Definition + * @{ + */ +#define HAL_UART_STATE_RESET 0x00000000U /*!< Peripheral is not initialized + Value is allowed for gState and RxState */ +#define HAL_UART_STATE_READY 0x00000020U /*!< Peripheral Initialized and ready for use + Value is allowed for gState and RxState */ +#define HAL_UART_STATE_BUSY 0x00000024U /*!< an internal process is ongoing + Value is allowed for gState only */ +#define HAL_UART_STATE_BUSY_TX 0x00000021U /*!< Data Transmission process is ongoing + Value is allowed for gState only */ +#define HAL_UART_STATE_BUSY_RX 0x00000022U /*!< Data Reception process is ongoing + Value is allowed for RxState only */ +#define HAL_UART_STATE_BUSY_TX_RX 0x00000023U /*!< Data Transmission and Reception process is ongoing + Not to be used for neither gState nor RxState.Value is result + of combination (Or) between gState and RxState values */ +#define HAL_UART_STATE_TIMEOUT 0x000000A0U /*!< Timeout state + Value is allowed for gState only */ +#define HAL_UART_STATE_ERROR 0x000000E0U /*!< Error + Value is allowed for gState only */ +/** + * @} + */ + +/** @defgroup UART_Error_Definition UART Error Definition + * @{ + */ +#define HAL_UART_ERROR_NONE (0x00000000U) /*!< No error */ +#define HAL_UART_ERROR_PE (0x00000001U) /*!< Parity error */ +#define HAL_UART_ERROR_NE (0x00000002U) /*!< Noise error */ +#define HAL_UART_ERROR_FE (0x00000004U) /*!< Frame error */ +#define HAL_UART_ERROR_ORE (0x00000008U) /*!< Overrun error */ +#define HAL_UART_ERROR_DMA (0x00000010U) /*!< DMA transfer error */ +#define HAL_UART_ERROR_RTO (0x00000020U) /*!< Receiver Timeout error */ + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +#define HAL_UART_ERROR_INVALID_CALLBACK (0x00000040U) /*!< Invalid Callback error */ +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @defgroup UART_Stop_Bits UART Number of Stop Bits + * @{ + */ +#define UART_STOPBITS_0_5 USART_CR2_STOP_0 /*!< UART frame with 0.5 stop bit */ +#define UART_STOPBITS_1 0x00000000U /*!< UART frame with 1 stop bit */ +#define UART_STOPBITS_1_5 (USART_CR2_STOP_0 | USART_CR2_STOP_1) /*!< UART frame with 1.5 stop bits */ +#define UART_STOPBITS_2 USART_CR2_STOP_1 /*!< UART frame with 2 stop bits */ +/** + * @} + */ + +/** @defgroup UART_Parity UART Parity + * @{ + */ +#define UART_PARITY_NONE 0x00000000U /*!< No parity */ +#define UART_PARITY_EVEN USART_CR1_PCE /*!< Even parity */ +#define UART_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) /*!< Odd parity */ +/** + * @} + */ + +/** @defgroup UART_Hardware_Flow_Control UART Hardware Flow Control + * @{ + */ +#define UART_HWCONTROL_NONE 0x00000000U /*!< No hardware control */ +#define UART_HWCONTROL_RTS USART_CR3_RTSE /*!< Request To Send */ +#define UART_HWCONTROL_CTS USART_CR3_CTSE /*!< Clear To Send */ +#define UART_HWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) /*!< Request and Clear To Send */ +/** + * @} + */ + +/** @defgroup UART_Mode UART Transfer Mode + * @{ + */ +#define UART_MODE_RX USART_CR1_RE /*!< RX mode */ +#define UART_MODE_TX USART_CR1_TE /*!< TX mode */ +#define UART_MODE_TX_RX (USART_CR1_TE |USART_CR1_RE) /*!< RX and TX mode */ +/** + * @} + */ + +/** @defgroup UART_State UART State + * @{ + */ +#define UART_STATE_DISABLE 0x00000000U /*!< UART disabled */ +#define UART_STATE_ENABLE USART_CR1_UE /*!< UART enabled */ +/** + * @} + */ + +/** @defgroup UART_Over_Sampling UART Over Sampling + * @{ + */ +#define UART_OVERSAMPLING_16 0x00000000U /*!< Oversampling by 16 */ +#define UART_OVERSAMPLING_8 USART_CR1_OVER8 /*!< Oversampling by 8 */ +/** + * @} + */ + +/** @defgroup UART_OneBit_Sampling UART One Bit Sampling Method + * @{ + */ +#define UART_ONE_BIT_SAMPLE_DISABLE 0x00000000U /*!< One-bit sampling disable */ +#define UART_ONE_BIT_SAMPLE_ENABLE USART_CR3_ONEBIT /*!< One-bit sampling enable */ +/** + * @} + */ + +/** @defgroup UART_ClockPrescaler UART Clock Prescaler + * @{ + */ +#define UART_PRESCALER_DIV1 0x00000000U /*!< fclk_pres = fclk */ +#define UART_PRESCALER_DIV2 0x00000001U /*!< fclk_pres = fclk/2 */ +#define UART_PRESCALER_DIV4 0x00000002U /*!< fclk_pres = fclk/4 */ +#define UART_PRESCALER_DIV6 0x00000003U /*!< fclk_pres = fclk/6 */ +#define UART_PRESCALER_DIV8 0x00000004U /*!< fclk_pres = fclk/8 */ +#define UART_PRESCALER_DIV10 0x00000005U /*!< fclk_pres = fclk/10 */ +#define UART_PRESCALER_DIV12 0x00000006U /*!< fclk_pres = fclk/12 */ +#define UART_PRESCALER_DIV16 0x00000007U /*!< fclk_pres = fclk/16 */ +#define UART_PRESCALER_DIV32 0x00000008U /*!< fclk_pres = fclk/32 */ +#define UART_PRESCALER_DIV64 0x00000009U /*!< fclk_pres = fclk/64 */ +#define UART_PRESCALER_DIV128 0x0000000AU /*!< fclk_pres = fclk/128 */ +#define UART_PRESCALER_DIV256 0x0000000BU /*!< fclk_pres = fclk/256 */ +/** + * @} + */ + +/** @defgroup UART_AutoBaud_Rate_Mode UART Advanced Feature AutoBaud Rate Mode + * @{ + */ +#define UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT 0x00000000U /*!< Auto Baud rate detection + on start bit */ +#define UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE USART_CR2_ABRMODE_0 /*!< Auto Baud rate detection + on falling edge */ +#define UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME USART_CR2_ABRMODE_1 /*!< Auto Baud rate detection + on 0x7F frame detection */ +#define UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME USART_CR2_ABRMODE /*!< Auto Baud rate detection + on 0x55 frame detection */ +/** + * @} + */ + +/** @defgroup UART_Receiver_Timeout UART Receiver Timeout + * @{ + */ +#define UART_RECEIVER_TIMEOUT_DISABLE 0x00000000U /*!< UART Receiver Timeout disable */ +#define UART_RECEIVER_TIMEOUT_ENABLE USART_CR2_RTOEN /*!< UART Receiver Timeout enable */ +/** + * @} + */ + +/** @defgroup UART_LIN UART Local Interconnection Network mode + * @{ + */ +#define UART_LIN_DISABLE 0x00000000U /*!< Local Interconnect Network disable */ +#define UART_LIN_ENABLE USART_CR2_LINEN /*!< Local Interconnect Network enable */ +/** + * @} + */ + +/** @defgroup UART_LIN_Break_Detection UART LIN Break Detection + * @{ + */ +#define UART_LINBREAKDETECTLENGTH_10B 0x00000000U /*!< LIN 10-bit break detection length */ +#define UART_LINBREAKDETECTLENGTH_11B USART_CR2_LBDL /*!< LIN 11-bit break detection length */ +/** + * @} + */ + +/** @defgroup UART_DMA_Tx UART DMA Tx + * @{ + */ +#define UART_DMA_TX_DISABLE 0x00000000U /*!< UART DMA TX disabled */ +#define UART_DMA_TX_ENABLE USART_CR3_DMAT /*!< UART DMA TX enabled */ +/** + * @} + */ + +/** @defgroup UART_DMA_Rx UART DMA Rx + * @{ + */ +#define UART_DMA_RX_DISABLE 0x00000000U /*!< UART DMA RX disabled */ +#define UART_DMA_RX_ENABLE USART_CR3_DMAR /*!< UART DMA RX enabled */ +/** + * @} + */ + +/** @defgroup UART_Half_Duplex_Selection UART Half Duplex Selection + * @{ + */ +#define UART_HALF_DUPLEX_DISABLE 0x00000000U /*!< UART half-duplex disabled */ +#define UART_HALF_DUPLEX_ENABLE USART_CR3_HDSEL /*!< UART half-duplex enabled */ +/** + * @} + */ + +/** @defgroup UART_WakeUp_Methods UART WakeUp Methods + * @{ + */ +#define UART_WAKEUPMETHOD_IDLELINE 0x00000000U /*!< UART wake-up on idle line */ +#define UART_WAKEUPMETHOD_ADDRESSMARK USART_CR1_WAKE /*!< UART wake-up on address mark */ +/** + * @} + */ + +/** @defgroup UART_Request_Parameters UART Request Parameters + * @{ + */ +#define UART_AUTOBAUD_REQUEST USART_RQR_ABRRQ /*!< Auto-Baud Rate Request */ +#define UART_SENDBREAK_REQUEST USART_RQR_SBKRQ /*!< Send Break Request */ +#define UART_MUTE_MODE_REQUEST USART_RQR_MMRQ /*!< Mute Mode Request */ +#define UART_RXDATA_FLUSH_REQUEST USART_RQR_RXFRQ /*!< Receive Data flush Request */ +#define UART_TXDATA_FLUSH_REQUEST USART_RQR_TXFRQ /*!< Transmit data flush Request */ +/** + * @} + */ + +/** @defgroup UART_Advanced_Features_Initialization_Type UART Advanced Feature Initialization Type + * @{ + */ +#define UART_ADVFEATURE_NO_INIT 0x00000000U /*!< No advanced feature initialization */ +#define UART_ADVFEATURE_TXINVERT_INIT 0x00000001U /*!< TX pin active level inversion */ +#define UART_ADVFEATURE_RXINVERT_INIT 0x00000002U /*!< RX pin active level inversion */ +#define UART_ADVFEATURE_DATAINVERT_INIT 0x00000004U /*!< Binary data inversion */ +#define UART_ADVFEATURE_SWAP_INIT 0x00000008U /*!< TX/RX pins swap */ +#define UART_ADVFEATURE_RXOVERRUNDISABLE_INIT 0x00000010U /*!< RX overrun disable */ +#define UART_ADVFEATURE_DMADISABLEONERROR_INIT 0x00000020U /*!< DMA disable on Reception Error */ +#define UART_ADVFEATURE_AUTOBAUDRATE_INIT 0x00000040U /*!< Auto Baud rate detection initialization */ +#define UART_ADVFEATURE_MSBFIRST_INIT 0x00000080U /*!< Most significant bit sent/received first */ +/** + * @} + */ + +/** @defgroup UART_Tx_Inv UART Advanced Feature TX Pin Active Level Inversion + * @{ + */ +#define UART_ADVFEATURE_TXINV_DISABLE 0x00000000U /*!< TX pin active level inversion disable */ +#define UART_ADVFEATURE_TXINV_ENABLE USART_CR2_TXINV /*!< TX pin active level inversion enable */ +/** + * @} + */ + +/** @defgroup UART_Rx_Inv UART Advanced Feature RX Pin Active Level Inversion + * @{ + */ +#define UART_ADVFEATURE_RXINV_DISABLE 0x00000000U /*!< RX pin active level inversion disable */ +#define UART_ADVFEATURE_RXINV_ENABLE USART_CR2_RXINV /*!< RX pin active level inversion enable */ +/** + * @} + */ + +/** @defgroup UART_Data_Inv UART Advanced Feature Binary Data Inversion + * @{ + */ +#define UART_ADVFEATURE_DATAINV_DISABLE 0x00000000U /*!< Binary data inversion disable */ +#define UART_ADVFEATURE_DATAINV_ENABLE USART_CR2_DATAINV /*!< Binary data inversion enable */ +/** + * @} + */ + +/** @defgroup UART_Rx_Tx_Swap UART Advanced Feature RX TX Pins Swap + * @{ + */ +#define UART_ADVFEATURE_SWAP_DISABLE 0x00000000U /*!< TX/RX pins swap disable */ +#define UART_ADVFEATURE_SWAP_ENABLE USART_CR2_SWAP /*!< TX/RX pins swap enable */ +/** + * @} + */ + +/** @defgroup UART_Overrun_Disable UART Advanced Feature Overrun Disable + * @{ + */ +#define UART_ADVFEATURE_OVERRUN_ENABLE 0x00000000U /*!< RX overrun enable */ +#define UART_ADVFEATURE_OVERRUN_DISABLE USART_CR3_OVRDIS /*!< RX overrun disable */ +/** + * @} + */ + +/** @defgroup UART_AutoBaudRate_Enable UART Advanced Feature Auto BaudRate Enable + * @{ + */ +#define UART_ADVFEATURE_AUTOBAUDRATE_DISABLE 0x00000000U /*!< RX Auto Baud rate detection enable */ +#define UART_ADVFEATURE_AUTOBAUDRATE_ENABLE USART_CR2_ABREN /*!< RX Auto Baud rate detection disable */ +/** + * @} + */ + +/** @defgroup UART_DMA_Disable_on_Rx_Error UART Advanced Feature DMA Disable On Rx Error + * @{ + */ +#define UART_ADVFEATURE_DMA_ENABLEONRXERROR 0x00000000U /*!< DMA enable on Reception Error */ +#define UART_ADVFEATURE_DMA_DISABLEONRXERROR USART_CR3_DDRE /*!< DMA disable on Reception Error */ +/** + * @} + */ + +/** @defgroup UART_MSB_First UART Advanced Feature MSB First + * @{ + */ +#define UART_ADVFEATURE_MSBFIRST_DISABLE 0x00000000U /*!< Most significant bit sent/received + first disable */ +#define UART_ADVFEATURE_MSBFIRST_ENABLE USART_CR2_MSBFIRST /*!< Most significant bit sent/received + first enable */ +/** + * @} + */ + +/** @defgroup UART_Stop_Mode_Enable UART Advanced Feature Stop Mode Enable + * @{ + */ +#define UART_ADVFEATURE_STOPMODE_DISABLE 0x00000000U /*!< UART stop mode disable */ +#define UART_ADVFEATURE_STOPMODE_ENABLE USART_CR1_UESM /*!< UART stop mode enable */ +/** + * @} + */ + +/** @defgroup UART_Mute_Mode UART Advanced Feature Mute Mode Enable + * @{ + */ +#define UART_ADVFEATURE_MUTEMODE_DISABLE 0x00000000U /*!< UART mute mode disable */ +#define UART_ADVFEATURE_MUTEMODE_ENABLE USART_CR1_MME /*!< UART mute mode enable */ +/** + * @} + */ + +/** @defgroup UART_CR2_ADDRESS_LSB_POS UART Address-matching LSB Position In CR2 Register + * @{ + */ +#define UART_CR2_ADDRESS_LSB_POS 24U /*!< UART address-matching LSB position in CR2 register */ +/** + * @} + */ + +/** @defgroup UART_WakeUp_from_Stop_Selection UART WakeUp From Stop Selection + * @{ + */ +#define UART_WAKEUP_ON_ADDRESS 0x00000000U /*!< UART wake-up on address */ +#define UART_WAKEUP_ON_STARTBIT USART_CR3_WUS_1 /*!< UART wake-up on start bit */ +#define UART_WAKEUP_ON_READDATA_NONEMPTY USART_CR3_WUS /*!< UART wake-up on receive data register + not empty or RXFIFO is not empty */ +/** + * @} + */ + +/** @defgroup UART_DriverEnable_Polarity UART DriverEnable Polarity + * @{ + */ +#define UART_DE_POLARITY_HIGH 0x00000000U /*!< Driver enable signal is active high */ +#define UART_DE_POLARITY_LOW USART_CR3_DEP /*!< Driver enable signal is active low */ +/** + * @} + */ + +/** @defgroup UART_CR1_DEAT_ADDRESS_LSB_POS UART Driver Enable Assertion Time LSB Position In CR1 Register + * @{ + */ +#define UART_CR1_DEAT_ADDRESS_LSB_POS 21U /*!< UART Driver Enable assertion time LSB + position in CR1 register */ +/** + * @} + */ + +/** @defgroup UART_CR1_DEDT_ADDRESS_LSB_POS UART Driver Enable DeAssertion Time LSB Position In CR1 Register + * @{ + */ +#define UART_CR1_DEDT_ADDRESS_LSB_POS 16U /*!< UART Driver Enable de-assertion time LSB + position in CR1 register */ +/** + * @} + */ + +/** @defgroup UART_Interruption_Mask UART Interruptions Flag Mask + * @{ + */ +#define UART_IT_MASK 0x001FU /*!< UART interruptions flags mask */ +/** + * @} + */ + +/** @defgroup UART_TimeOut_Value UART polling-based communications time-out value + * @{ + */ +#define HAL_UART_TIMEOUT_VALUE 0x1FFFFFFU /*!< UART polling-based communications time-out value */ +/** + * @} + */ + +/** @defgroup UART_Flags UART Status Flags + * Elements values convention: 0xXXXX + * - 0xXXXX : Flag mask in the ISR register + * @{ + */ +#define UART_FLAG_TXFT USART_ISR_TXFT /*!< UART TXFIFO threshold flag */ +#define UART_FLAG_RXFT USART_ISR_RXFT /*!< UART RXFIFO threshold flag */ +#define UART_FLAG_RXFF USART_ISR_RXFF /*!< UART RXFIFO Full flag */ +#define UART_FLAG_TXFE USART_ISR_TXFE /*!< UART TXFIFO Empty flag */ +#define UART_FLAG_REACK USART_ISR_REACK /*!< UART receive enable acknowledge flag */ +#define UART_FLAG_TEACK USART_ISR_TEACK /*!< UART transmit enable acknowledge flag */ +#define UART_FLAG_WUF USART_ISR_WUF /*!< UART wake-up from stop mode flag */ +#define UART_FLAG_RWU USART_ISR_RWU /*!< UART receiver wake-up from mute mode flag */ +#define UART_FLAG_SBKF USART_ISR_SBKF /*!< UART send break flag */ +#define UART_FLAG_CMF USART_ISR_CMF /*!< UART character match flag */ +#define UART_FLAG_BUSY USART_ISR_BUSY /*!< UART busy flag */ +#define UART_FLAG_ABRF USART_ISR_ABRF /*!< UART auto Baud rate flag */ +#define UART_FLAG_ABRE USART_ISR_ABRE /*!< UART auto Baud rate error */ +#define UART_FLAG_RTOF USART_ISR_RTOF /*!< UART receiver timeout flag */ +#define UART_FLAG_CTS USART_ISR_CTS /*!< UART clear to send flag */ +#define UART_FLAG_CTSIF USART_ISR_CTSIF /*!< UART clear to send interrupt flag */ +#define UART_FLAG_LBDF USART_ISR_LBDF /*!< UART LIN break detection flag */ +#define UART_FLAG_TXE USART_ISR_TXE_TXFNF /*!< UART transmit data register empty */ +#define UART_FLAG_TXFNF USART_ISR_TXE_TXFNF /*!< UART TXFIFO not full */ +#define UART_FLAG_TC USART_ISR_TC /*!< UART transmission complete */ +#define UART_FLAG_RXNE USART_ISR_RXNE_RXFNE /*!< UART read data register not empty */ +#define UART_FLAG_RXFNE USART_ISR_RXNE_RXFNE /*!< UART RXFIFO not empty */ +#define UART_FLAG_IDLE USART_ISR_IDLE /*!< UART idle flag */ +#define UART_FLAG_ORE USART_ISR_ORE /*!< UART overrun error */ +#define UART_FLAG_NE USART_ISR_NE /*!< UART noise error */ +#define UART_FLAG_FE USART_ISR_FE /*!< UART frame error */ +#define UART_FLAG_PE USART_ISR_PE /*!< UART parity error */ +/** + * @} + */ + +/** @defgroup UART_Interrupt_definition UART Interrupts Definition + * Elements values convention: 000ZZZZZ0XXYYYYYb + * - YYYYY : Interrupt source position in the XX register (5bits) + * - XX : Interrupt source register (2bits) + * - 01: CR1 register + * - 10: CR2 register + * - 11: CR3 register + * - ZZZZZ : Flag position in the ISR register(5bits) + * Elements values convention: 000000000XXYYYYYb + * - YYYYY : Interrupt source position in the XX register (5bits) + * - XX : Interrupt source register (2bits) + * - 01: CR1 register + * - 10: CR2 register + * - 11: CR3 register + * Elements values convention: 0000ZZZZ00000000b + * - ZZZZ : Flag position in the ISR register(4bits) + * @{ + */ +#define UART_IT_PE 0x0028U /*!< UART parity error interruption */ +#define UART_IT_TXE 0x0727U /*!< UART transmit data register empty interruption */ +#define UART_IT_TXFNF 0x0727U /*!< UART TX FIFO not full interruption */ +#define UART_IT_TC 0x0626U /*!< UART transmission complete interruption */ +#define UART_IT_RXNE 0x0525U /*!< UART read data register not empty interruption */ +#define UART_IT_RXFNE 0x0525U /*!< UART RXFIFO not empty interruption */ +#define UART_IT_IDLE 0x0424U /*!< UART idle interruption */ +#define UART_IT_LBD 0x0846U /*!< UART LIN break detection interruption */ +#define UART_IT_CTS 0x096AU /*!< UART CTS interruption */ +#define UART_IT_CM 0x112EU /*!< UART character match interruption */ +#define UART_IT_WUF 0x1476U /*!< UART wake-up from stop mode interruption */ +#define UART_IT_RXFF 0x183FU /*!< UART RXFIFO full interruption */ +#define UART_IT_TXFE 0x173EU /*!< UART TXFIFO empty interruption */ +#define UART_IT_RXFT 0x1A7CU /*!< UART RXFIFO threshold reached interruption */ +#define UART_IT_TXFT 0x1B77U /*!< UART TXFIFO threshold reached interruption */ +#define UART_IT_RTO 0x0B3AU /*!< UART receiver timeout interruption */ + +#define UART_IT_ERR 0x0060U /*!< UART error interruption */ + +#define UART_IT_ORE 0x0300U /*!< UART overrun error interruption */ +#define UART_IT_NE 0x0200U /*!< UART noise error interruption */ +#define UART_IT_FE 0x0100U /*!< UART frame error interruption */ +/** + * @} + */ + +/** @defgroup UART_IT_CLEAR_Flags UART Interruption Clear Flags + * @{ + */ +#define UART_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */ +#define UART_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */ +#define UART_CLEAR_NEF USART_ICR_NECF /*!< Noise Error detected Clear Flag */ +#define UART_CLEAR_OREF USART_ICR_ORECF /*!< Overrun Error Clear Flag */ +#define UART_CLEAR_IDLEF USART_ICR_IDLECF /*!< IDLE line detected Clear Flag */ +#define UART_CLEAR_TXFECF USART_ICR_TXFECF /*!< TXFIFO empty clear flag */ +#define UART_CLEAR_TCF USART_ICR_TCCF /*!< Transmission Complete Clear Flag */ +#define UART_CLEAR_LBDF USART_ICR_LBDCF /*!< LIN Break Detection Clear Flag */ +#define UART_CLEAR_CTSF USART_ICR_CTSCF /*!< CTS Interrupt Clear Flag */ +#define UART_CLEAR_CMF USART_ICR_CMCF /*!< Character Match Clear Flag */ +#define UART_CLEAR_WUF USART_ICR_WUCF /*!< Wake Up from stop mode Clear Flag */ +#define UART_CLEAR_RTOF USART_ICR_RTOCF /*!< UART receiver timeout clear flag */ +/** + * @} + */ + +/** @defgroup UART_Reception_Type_Values UART Reception type values + * @{ + */ +#define HAL_UART_RECEPTION_STANDARD (0x00000000U) /*!< Standard reception */ +#define HAL_UART_RECEPTION_TOIDLE (0x00000001U) /*!< Reception till completion or IDLE event */ +#define HAL_UART_RECEPTION_TORTO (0x00000002U) /*!< Reception till completion or RTO event */ +#define HAL_UART_RECEPTION_TOCHARMATCH (0x00000003U) /*!< Reception till completion or CM event */ +/** + * @} + */ + +/** @defgroup UART_RxEvent_Type_Values UART RxEvent type values + * @{ + */ +#define HAL_UART_RXEVENT_TC (0x00000000U) /*!< RxEvent linked to Transfer Complete event */ +#define HAL_UART_RXEVENT_HT (0x00000001U) /*!< RxEvent linked to Half Transfer event */ +#define HAL_UART_RXEVENT_IDLE (0x00000002U) /*!< RxEvent linked to IDLE event */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup UART_Exported_Macros UART Exported Macros + * @{ + */ + +/** @brief Reset UART handle states. + * @param __HANDLE__ UART handle. + * @retval None + */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \ + (__HANDLE__)->gState = HAL_UART_STATE_RESET; \ + (__HANDLE__)->RxState = HAL_UART_STATE_RESET; \ + (__HANDLE__)->MspInitCallback = NULL; \ + (__HANDLE__)->MspDeInitCallback = NULL; \ + } while(0U) +#else +#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \ + (__HANDLE__)->gState = HAL_UART_STATE_RESET; \ + (__HANDLE__)->RxState = HAL_UART_STATE_RESET; \ + } while(0U) +#endif /*USE_HAL_UART_REGISTER_CALLBACKS */ + +/** @brief Flush the UART Data registers. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__) \ + do{ \ + SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST); \ + SET_BIT((__HANDLE__)->Instance->RQR, UART_TXDATA_FLUSH_REQUEST); \ + } while(0U) + +/** @brief Clear the specified UART pending flag. + * @param __HANDLE__ specifies the UART Handle. + * @param __FLAG__ specifies the flag to check. + * This parameter can be any combination of the following values: + * @arg @ref UART_CLEAR_PEF Parity Error Clear Flag + * @arg @ref UART_CLEAR_FEF Framing Error Clear Flag + * @arg @ref UART_CLEAR_NEF Noise detected Clear Flag + * @arg @ref UART_CLEAR_OREF Overrun Error Clear Flag + * @arg @ref UART_CLEAR_IDLEF IDLE line detected Clear Flag + * @arg @ref UART_CLEAR_TXFECF TXFIFO empty clear Flag + * @arg @ref UART_CLEAR_TCF Transmission Complete Clear Flag + * @arg @ref UART_CLEAR_RTOF Receiver Timeout clear flag + * @arg @ref UART_CLEAR_LBDF LIN Break Detection Clear Flag + * @arg @ref UART_CLEAR_CTSF CTS Interrupt Clear Flag + * @arg @ref UART_CLEAR_CMF Character Match Clear Flag + * @arg @ref UART_CLEAR_WUF Wake Up from stop mode Clear Flag + * @retval None + */ +#define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) + +/** @brief Clear the UART PE pending flag. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_PEF) + +/** @brief Clear the UART FE pending flag. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_CLEAR_FEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_FEF) + +/** @brief Clear the UART NE pending flag. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_CLEAR_NEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_NEF) + +/** @brief Clear the UART ORE pending flag. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_CLEAR_OREFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_OREF) + +/** @brief Clear the UART IDLE pending flag. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_IDLEF) + +/** @brief Clear the UART TX FIFO empty clear flag. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_CLEAR_TXFECF(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_TXFECF) + +/** @brief Check whether the specified UART flag is set or not. + * @param __HANDLE__ specifies the UART Handle. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg @ref UART_FLAG_TXFT TXFIFO threshold flag + * @arg @ref UART_FLAG_RXFT RXFIFO threshold flag + * @arg @ref UART_FLAG_RXFF RXFIFO Full flag + * @arg @ref UART_FLAG_TXFE TXFIFO Empty flag + * @arg @ref UART_FLAG_REACK Receive enable acknowledge flag + * @arg @ref UART_FLAG_TEACK Transmit enable acknowledge flag + * @arg @ref UART_FLAG_WUF Wake up from stop mode flag + * @arg @ref UART_FLAG_RWU Receiver wake up flag (if the UART in mute mode) + * @arg @ref UART_FLAG_SBKF Send Break flag + * @arg @ref UART_FLAG_CMF Character match flag + * @arg @ref UART_FLAG_BUSY Busy flag + * @arg @ref UART_FLAG_ABRF Auto Baud rate detection flag + * @arg @ref UART_FLAG_ABRE Auto Baud rate detection error flag + * @arg @ref UART_FLAG_CTS CTS Change flag + * @arg @ref UART_FLAG_LBDF LIN Break detection flag + * @arg @ref UART_FLAG_TXE Transmit data register empty flag + * @arg @ref UART_FLAG_TXFNF UART TXFIFO not full flag + * @arg @ref UART_FLAG_TC Transmission Complete flag + * @arg @ref UART_FLAG_RXNE Receive data register not empty flag + * @arg @ref UART_FLAG_RXFNE UART RXFIFO not empty flag + * @arg @ref UART_FLAG_RTOF Receiver Timeout flag + * @arg @ref UART_FLAG_IDLE Idle Line detection flag + * @arg @ref UART_FLAG_ORE Overrun Error flag + * @arg @ref UART_FLAG_NE Noise Error flag + * @arg @ref UART_FLAG_FE Framing Error flag + * @arg @ref UART_FLAG_PE Parity Error flag + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) + +/** @brief Enable the specified UART interrupt. + * @param __HANDLE__ specifies the UART Handle. + * @param __INTERRUPT__ specifies the UART interrupt source to enable. + * This parameter can be one of the following values: + * @arg @ref UART_IT_RXFF RXFIFO Full interrupt + * @arg @ref UART_IT_TXFE TXFIFO Empty interrupt + * @arg @ref UART_IT_RXFT RXFIFO threshold interrupt + * @arg @ref UART_IT_TXFT TXFIFO threshold interrupt + * @arg @ref UART_IT_WUF Wakeup from stop mode interrupt + * @arg @ref UART_IT_CM Character match interrupt + * @arg @ref UART_IT_CTS CTS change interrupt + * @arg @ref UART_IT_LBD LIN Break detection interrupt + * @arg @ref UART_IT_TXE Transmit Data Register empty interrupt + * @arg @ref UART_IT_TXFNF TX FIFO not full interrupt + * @arg @ref UART_IT_TC Transmission complete interrupt + * @arg @ref UART_IT_RXNE Receive Data register not empty interrupt + * @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt + * @arg @ref UART_IT_RTO Receive Timeout interrupt + * @arg @ref UART_IT_IDLE Idle line detection interrupt + * @arg @ref UART_IT_PE Parity Error interrupt + * @arg @ref UART_IT_ERR Error interrupt (frame error, noise error, overrun error) + * @retval None + */ +#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__) (\ + ((((uint8_t)(__INTERRUPT__)) >> 5U) == 1U)?\ + ((__HANDLE__)->Instance->CR1 |= (1U <<\ + ((__INTERRUPT__) & UART_IT_MASK))): \ + ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2U)?\ + ((__HANDLE__)->Instance->CR2 |= (1U <<\ + ((__INTERRUPT__) & UART_IT_MASK))): \ + ((__HANDLE__)->Instance->CR3 |= (1U <<\ + ((__INTERRUPT__) & UART_IT_MASK)))) + +/** @brief Disable the specified UART interrupt. + * @param __HANDLE__ specifies the UART Handle. + * @param __INTERRUPT__ specifies the UART interrupt source to disable. + * This parameter can be one of the following values: + * @arg @ref UART_IT_RXFF RXFIFO Full interrupt + * @arg @ref UART_IT_TXFE TXFIFO Empty interrupt + * @arg @ref UART_IT_RXFT RXFIFO threshold interrupt + * @arg @ref UART_IT_TXFT TXFIFO threshold interrupt + * @arg @ref UART_IT_WUF Wakeup from stop mode interrupt + * @arg @ref UART_IT_CM Character match interrupt + * @arg @ref UART_IT_CTS CTS change interrupt + * @arg @ref UART_IT_LBD LIN Break detection interrupt + * @arg @ref UART_IT_TXE Transmit Data Register empty interrupt + * @arg @ref UART_IT_TXFNF TX FIFO not full interrupt + * @arg @ref UART_IT_TC Transmission complete interrupt + * @arg @ref UART_IT_RXNE Receive Data register not empty interrupt + * @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt + * @arg @ref UART_IT_RTO Receive Timeout interrupt + * @arg @ref UART_IT_IDLE Idle line detection interrupt + * @arg @ref UART_IT_PE Parity Error interrupt + * @arg @ref UART_IT_ERR Error interrupt (Frame error, noise error, overrun error) + * @retval None + */ +#define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__) (\ + ((((uint8_t)(__INTERRUPT__)) >> 5U) == 1U)?\ + ((__HANDLE__)->Instance->CR1 &= ~ (1U <<\ + ((__INTERRUPT__) & UART_IT_MASK))): \ + ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2U)?\ + ((__HANDLE__)->Instance->CR2 &= ~ (1U <<\ + ((__INTERRUPT__) & UART_IT_MASK))): \ + ((__HANDLE__)->Instance->CR3 &= ~ (1U <<\ + ((__INTERRUPT__) & UART_IT_MASK)))) + +/** @brief Check whether the specified UART interrupt has occurred or not. + * @param __HANDLE__ specifies the UART Handle. + * @param __INTERRUPT__ specifies the UART interrupt to check. + * This parameter can be one of the following values: + * @arg @ref UART_IT_RXFF RXFIFO Full interrupt + * @arg @ref UART_IT_TXFE TXFIFO Empty interrupt + * @arg @ref UART_IT_RXFT RXFIFO threshold interrupt + * @arg @ref UART_IT_TXFT TXFIFO threshold interrupt + * @arg @ref UART_IT_WUF Wakeup from stop mode interrupt + * @arg @ref UART_IT_CM Character match interrupt + * @arg @ref UART_IT_CTS CTS change interrupt + * @arg @ref UART_IT_LBD LIN Break detection interrupt + * @arg @ref UART_IT_TXE Transmit Data Register empty interrupt + * @arg @ref UART_IT_TXFNF TX FIFO not full interrupt + * @arg @ref UART_IT_TC Transmission complete interrupt + * @arg @ref UART_IT_RXNE Receive Data register not empty interrupt + * @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt + * @arg @ref UART_IT_RTO Receive Timeout interrupt + * @arg @ref UART_IT_IDLE Idle line detection interrupt + * @arg @ref UART_IT_PE Parity Error interrupt + * @arg @ref UART_IT_ERR Error interrupt (Frame error, noise error, overrun error) + * @retval The new state of __INTERRUPT__ (SET or RESET). + */ +#define __HAL_UART_GET_IT(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISR\ + & (1U << ((__INTERRUPT__)>> 8U))) != RESET) ? SET : RESET) + +/** @brief Check whether the specified UART interrupt source is enabled or not. + * @param __HANDLE__ specifies the UART Handle. + * @param __INTERRUPT__ specifies the UART interrupt source to check. + * This parameter can be one of the following values: + * @arg @ref UART_IT_RXFF RXFIFO Full interrupt + * @arg @ref UART_IT_TXFE TXFIFO Empty interrupt + * @arg @ref UART_IT_RXFT RXFIFO threshold interrupt + * @arg @ref UART_IT_TXFT TXFIFO threshold interrupt + * @arg @ref UART_IT_WUF Wakeup from stop mode interrupt + * @arg @ref UART_IT_CM Character match interrupt + * @arg @ref UART_IT_CTS CTS change interrupt + * @arg @ref UART_IT_LBD LIN Break detection interrupt + * @arg @ref UART_IT_TXE Transmit Data Register empty interrupt + * @arg @ref UART_IT_TXFNF TX FIFO not full interrupt + * @arg @ref UART_IT_TC Transmission complete interrupt + * @arg @ref UART_IT_RXNE Receive Data register not empty interrupt + * @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt + * @arg @ref UART_IT_RTO Receive Timeout interrupt + * @arg @ref UART_IT_IDLE Idle line detection interrupt + * @arg @ref UART_IT_PE Parity Error interrupt + * @arg @ref UART_IT_ERR Error interrupt (Frame error, noise error, overrun error) + * @retval The new state of __INTERRUPT__ (SET or RESET). + */ +#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((((((uint8_t)(__INTERRUPT__)) >> 5U) == 1U) ?\ + (__HANDLE__)->Instance->CR1 : \ + (((((uint8_t)(__INTERRUPT__)) >> 5U) == 2U) ?\ + (__HANDLE__)->Instance->CR2 : \ + (__HANDLE__)->Instance->CR3)) & (1U <<\ + (((uint16_t)(__INTERRUPT__)) &\ + UART_IT_MASK))) != RESET) ? SET : RESET) + +/** @brief Clear the specified UART ISR flag, in setting the proper ICR register flag. + * @param __HANDLE__ specifies the UART Handle. + * @param __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set + * to clear the corresponding interrupt + * This parameter can be one of the following values: + * @arg @ref UART_CLEAR_PEF Parity Error Clear Flag + * @arg @ref UART_CLEAR_FEF Framing Error Clear Flag + * @arg @ref UART_CLEAR_NEF Noise detected Clear Flag + * @arg @ref UART_CLEAR_OREF Overrun Error Clear Flag + * @arg @ref UART_CLEAR_IDLEF IDLE line detected Clear Flag + * @arg @ref UART_CLEAR_RTOF Receiver timeout clear flag + * @arg @ref UART_CLEAR_TXFECF TXFIFO empty Clear Flag + * @arg @ref UART_CLEAR_TCF Transmission Complete Clear Flag + * @arg @ref UART_CLEAR_LBDF LIN Break Detection Clear Flag + * @arg @ref UART_CLEAR_CTSF CTS Interrupt Clear Flag + * @arg @ref UART_CLEAR_CMF Character Match Clear Flag + * @arg @ref UART_CLEAR_WUF Wake Up from stop mode Clear Flag + * @retval None + */ +#define __HAL_UART_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__)) + +/** @brief Set a specific UART request flag. + * @param __HANDLE__ specifies the UART Handle. + * @param __REQ__ specifies the request flag to set + * This parameter can be one of the following values: + * @arg @ref UART_AUTOBAUD_REQUEST Auto-Baud Rate Request + * @arg @ref UART_SENDBREAK_REQUEST Send Break Request + * @arg @ref UART_MUTE_MODE_REQUEST Mute Mode Request + * @arg @ref UART_RXDATA_FLUSH_REQUEST Receive Data flush Request + * @arg @ref UART_TXDATA_FLUSH_REQUEST Transmit data flush Request + * @retval None + */ +#define __HAL_UART_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__)) + +/** @brief Enable the UART one bit sample method. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT) + +/** @brief Disable the UART one bit sample method. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= ~USART_CR3_ONEBIT) + +/** @brief Enable UART. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE) + +/** @brief Disable UART. + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE) + +/** @brief Enable CTS flow control. + * @note This macro allows to enable CTS hardware flow control for a given UART instance, + * without need to call HAL_UART_Init() function. + * As involving direct access to UART registers, usage of this macro should be fully endorsed by user. + * @note As macro is expected to be used for modifying CTS Hw flow control feature activation, without need + * for USART instance Deinit/Init, following conditions for macro call should be fulfilled : + * - UART instance should have already been initialised (through call of HAL_UART_Init() ) + * - macro could only be called when corresponding UART instance is disabled + * (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable + * macro (i.e. __HAL_UART_ENABLE(__HANDLE__)). + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__) \ + do{ \ + ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \ + (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE; \ + } while(0U) + +/** @brief Disable CTS flow control. + * @note This macro allows to disable CTS hardware flow control for a given UART instance, + * without need to call HAL_UART_Init() function. + * As involving direct access to UART registers, usage of this macro should be fully endorsed by user. + * @note As macro is expected to be used for modifying CTS Hw flow control feature activation, without need + * for USART instance Deinit/Init, following conditions for macro call should be fulfilled : + * - UART instance should have already been initialised (through call of HAL_UART_Init() ) + * - macro could only be called when corresponding UART instance is disabled + * (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable + * macro (i.e. __HAL_UART_ENABLE(__HANDLE__)). + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__) \ + do{ \ + ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \ + (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE); \ + } while(0U) + +/** @brief Enable RTS flow control. + * @note This macro allows to enable RTS hardware flow control for a given UART instance, + * without need to call HAL_UART_Init() function. + * As involving direct access to UART registers, usage of this macro should be fully endorsed by user. + * @note As macro is expected to be used for modifying RTS Hw flow control feature activation, without need + * for USART instance Deinit/Init, following conditions for macro call should be fulfilled : + * - UART instance should have already been initialised (through call of HAL_UART_Init() ) + * - macro could only be called when corresponding UART instance is disabled + * (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable + * macro (i.e. __HAL_UART_ENABLE(__HANDLE__)). + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__) \ + do{ \ + ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \ + (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE; \ + } while(0U) + +/** @brief Disable RTS flow control. + * @note This macro allows to disable RTS hardware flow control for a given UART instance, + * without need to call HAL_UART_Init() function. + * As involving direct access to UART registers, usage of this macro should be fully endorsed by user. + * @note As macro is expected to be used for modifying RTS Hw flow control feature activation, without need + * for USART instance Deinit/Init, following conditions for macro call should be fulfilled : + * - UART instance should have already been initialised (through call of HAL_UART_Init() ) + * - macro could only be called when corresponding UART instance is disabled + * (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable + * macro (i.e. __HAL_UART_ENABLE(__HANDLE__)). + * @param __HANDLE__ specifies the UART Handle. + * @retval None + */ +#define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__) \ + do{ \ + ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\ + (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE); \ + } while(0U) +/** + * @} + */ + +/* Private macros --------------------------------------------------------*/ +/** @defgroup UART_Private_Macros UART Private Macros + * @{ + */ +/** @brief Get UART clock division factor from clock prescaler value. + * @param __CLOCKPRESCALER__ UART prescaler value. + * @retval UART clock division factor + */ +#define UART_GET_DIV_FACTOR(__CLOCKPRESCALER__) \ + (((__CLOCKPRESCALER__) == UART_PRESCALER_DIV1) ? 1U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV2) ? 2U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV4) ? 4U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV6) ? 6U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV8) ? 8U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV10) ? 10U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV12) ? 12U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV16) ? 16U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV32) ? 32U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV64) ? 64U : \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV128) ? 128U : 256U) + +/** @brief BRR division operation to set BRR register with LPUART. + * @param __PCLK__ LPUART clock. + * @param __BAUD__ Baud rate set by the user. + * @param __CLOCKPRESCALER__ UART prescaler value. + * @retval Division result + */ +#define UART_DIV_LPUART(__PCLK__, __BAUD__, __CLOCKPRESCALER__) \ + ((uint32_t)((((((uint64_t)(__PCLK__))/(UARTPrescTable[(__CLOCKPRESCALER__)]))*256U)+ \ + (uint32_t)((__BAUD__)/2U)) / (__BAUD__)) \ + ) + +/** @brief BRR division operation to set BRR register in 8-bit oversampling mode. + * @param __PCLK__ UART clock. + * @param __BAUD__ Baud rate set by the user. + * @param __CLOCKPRESCALER__ UART prescaler value. + * @retval Division result + */ +#define UART_DIV_SAMPLING8(__PCLK__, __BAUD__, __CLOCKPRESCALER__) \ + (((((__PCLK__)/UARTPrescTable[(__CLOCKPRESCALER__)])*2U) + ((__BAUD__)/2U)) / (__BAUD__)) + +/** @brief BRR division operation to set BRR register in 16-bit oversampling mode. + * @param __PCLK__ UART clock. + * @param __BAUD__ Baud rate set by the user. + * @param __CLOCKPRESCALER__ UART prescaler value. + * @retval Division result + */ +#define UART_DIV_SAMPLING16(__PCLK__, __BAUD__, __CLOCKPRESCALER__) \ + ((((__PCLK__)/UARTPrescTable[(__CLOCKPRESCALER__)]) + ((__BAUD__)/2U)) / (__BAUD__)) + +/** @brief Check whether or not UART instance is Low Power UART. + * @param __HANDLE__ specifies the UART Handle. + * @retval SET (instance is LPUART) or RESET (instance isn't LPUART) + */ +#define UART_INSTANCE_LOWPOWER(__HANDLE__) (IS_LPUART_INSTANCE((__HANDLE__)->Instance)) + +/** @brief Check UART Baud rate. + * @param __BAUDRATE__ Baudrate specified by the user. + * The maximum Baud Rate is derived from the maximum clock on G4 (i.e. 150 MHz) + * divided by the smallest oversampling used on the USART (i.e. 8) + * @retval SET (__BAUDRATE__ is valid) or RESET (__BAUDRATE__ is invalid) + */ +#define IS_UART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 18750001U) + +/** @brief Check UART assertion time. + * @param __TIME__ 5-bit value assertion time. + * @retval Test result (TRUE or FALSE). + */ +#define IS_UART_ASSERTIONTIME(__TIME__) ((__TIME__) <= 0x1FU) + +/** @brief Check UART deassertion time. + * @param __TIME__ 5-bit value deassertion time. + * @retval Test result (TRUE or FALSE). + */ +#define IS_UART_DEASSERTIONTIME(__TIME__) ((__TIME__) <= 0x1FU) + +/** + * @brief Ensure that UART frame number of stop bits is valid. + * @param __STOPBITS__ UART frame number of stop bits. + * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid) + */ +#define IS_UART_STOPBITS(__STOPBITS__) (((__STOPBITS__) == UART_STOPBITS_0_5) || \ + ((__STOPBITS__) == UART_STOPBITS_1) || \ + ((__STOPBITS__) == UART_STOPBITS_1_5) || \ + ((__STOPBITS__) == UART_STOPBITS_2)) + +/** + * @brief Ensure that LPUART frame number of stop bits is valid. + * @param __STOPBITS__ LPUART frame number of stop bits. + * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid) + */ +#define IS_LPUART_STOPBITS(__STOPBITS__) (((__STOPBITS__) == UART_STOPBITS_1) || \ + ((__STOPBITS__) == UART_STOPBITS_2)) + +/** + * @brief Ensure that UART frame parity is valid. + * @param __PARITY__ UART frame parity. + * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid) + */ +#define IS_UART_PARITY(__PARITY__) (((__PARITY__) == UART_PARITY_NONE) || \ + ((__PARITY__) == UART_PARITY_EVEN) || \ + ((__PARITY__) == UART_PARITY_ODD)) + +/** + * @brief Ensure that UART hardware flow control is valid. + * @param __CONTROL__ UART hardware flow control. + * @retval SET (__CONTROL__ is valid) or RESET (__CONTROL__ is invalid) + */ +#define IS_UART_HARDWARE_FLOW_CONTROL(__CONTROL__)\ + (((__CONTROL__) == UART_HWCONTROL_NONE) || \ + ((__CONTROL__) == UART_HWCONTROL_RTS) || \ + ((__CONTROL__) == UART_HWCONTROL_CTS) || \ + ((__CONTROL__) == UART_HWCONTROL_RTS_CTS)) + +/** + * @brief Ensure that UART communication mode is valid. + * @param __MODE__ UART communication mode. + * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) + */ +#define IS_UART_MODE(__MODE__) ((((__MODE__) & (~((uint32_t)(UART_MODE_TX_RX)))) == 0x00U) && ((__MODE__) != 0x00U)) + +/** + * @brief Ensure that UART state is valid. + * @param __STATE__ UART state. + * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid) + */ +#define IS_UART_STATE(__STATE__) (((__STATE__) == UART_STATE_DISABLE) || \ + ((__STATE__) == UART_STATE_ENABLE)) + +/** + * @brief Ensure that UART oversampling is valid. + * @param __SAMPLING__ UART oversampling. + * @retval SET (__SAMPLING__ is valid) or RESET (__SAMPLING__ is invalid) + */ +#define IS_UART_OVERSAMPLING(__SAMPLING__) (((__SAMPLING__) == UART_OVERSAMPLING_16) || \ + ((__SAMPLING__) == UART_OVERSAMPLING_8)) + +/** + * @brief Ensure that UART frame sampling is valid. + * @param __ONEBIT__ UART frame sampling. + * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid) + */ +#define IS_UART_ONE_BIT_SAMPLE(__ONEBIT__) (((__ONEBIT__) == UART_ONE_BIT_SAMPLE_DISABLE) || \ + ((__ONEBIT__) == UART_ONE_BIT_SAMPLE_ENABLE)) + +/** + * @brief Ensure that UART auto Baud rate detection mode is valid. + * @param __MODE__ UART auto Baud rate detection mode. + * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) + */ +#define IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(__MODE__) (((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT) || \ + ((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE) || \ + ((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME) || \ + ((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME)) + +/** + * @brief Ensure that UART receiver timeout setting is valid. + * @param __TIMEOUT__ UART receiver timeout setting. + * @retval SET (__TIMEOUT__ is valid) or RESET (__TIMEOUT__ is invalid) + */ +#define IS_UART_RECEIVER_TIMEOUT(__TIMEOUT__) (((__TIMEOUT__) == UART_RECEIVER_TIMEOUT_DISABLE) || \ + ((__TIMEOUT__) == UART_RECEIVER_TIMEOUT_ENABLE)) + +/** @brief Check the receiver timeout value. + * @note The maximum UART receiver timeout value is 0xFFFFFF. + * @param __TIMEOUTVALUE__ receiver timeout value. + * @retval Test result (TRUE or FALSE) + */ +#define IS_UART_RECEIVER_TIMEOUT_VALUE(__TIMEOUTVALUE__) ((__TIMEOUTVALUE__) <= 0xFFFFFFU) + +/** + * @brief Ensure that UART LIN state is valid. + * @param __LIN__ UART LIN state. + * @retval SET (__LIN__ is valid) or RESET (__LIN__ is invalid) + */ +#define IS_UART_LIN(__LIN__) (((__LIN__) == UART_LIN_DISABLE) || \ + ((__LIN__) == UART_LIN_ENABLE)) + +/** + * @brief Ensure that UART LIN break detection length is valid. + * @param __LENGTH__ UART LIN break detection length. + * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid) + */ +#define IS_UART_LIN_BREAK_DETECT_LENGTH(__LENGTH__) (((__LENGTH__) == UART_LINBREAKDETECTLENGTH_10B) || \ + ((__LENGTH__) == UART_LINBREAKDETECTLENGTH_11B)) + +/** + * @brief Ensure that UART DMA TX state is valid. + * @param __DMATX__ UART DMA TX state. + * @retval SET (__DMATX__ is valid) or RESET (__DMATX__ is invalid) + */ +#define IS_UART_DMA_TX(__DMATX__) (((__DMATX__) == UART_DMA_TX_DISABLE) || \ + ((__DMATX__) == UART_DMA_TX_ENABLE)) + +/** + * @brief Ensure that UART DMA RX state is valid. + * @param __DMARX__ UART DMA RX state. + * @retval SET (__DMARX__ is valid) or RESET (__DMARX__ is invalid) + */ +#define IS_UART_DMA_RX(__DMARX__) (((__DMARX__) == UART_DMA_RX_DISABLE) || \ + ((__DMARX__) == UART_DMA_RX_ENABLE)) + +/** + * @brief Ensure that UART half-duplex state is valid. + * @param __HDSEL__ UART half-duplex state. + * @retval SET (__HDSEL__ is valid) or RESET (__HDSEL__ is invalid) + */ +#define IS_UART_HALF_DUPLEX(__HDSEL__) (((__HDSEL__) == UART_HALF_DUPLEX_DISABLE) || \ + ((__HDSEL__) == UART_HALF_DUPLEX_ENABLE)) + +/** + * @brief Ensure that UART wake-up method is valid. + * @param __WAKEUP__ UART wake-up method . + * @retval SET (__WAKEUP__ is valid) or RESET (__WAKEUP__ is invalid) + */ +#define IS_UART_WAKEUPMETHOD(__WAKEUP__) (((__WAKEUP__) == UART_WAKEUPMETHOD_IDLELINE) || \ + ((__WAKEUP__) == UART_WAKEUPMETHOD_ADDRESSMARK)) + +/** + * @brief Ensure that UART request parameter is valid. + * @param __PARAM__ UART request parameter. + * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid) + */ +#define IS_UART_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == UART_AUTOBAUD_REQUEST) || \ + ((__PARAM__) == UART_SENDBREAK_REQUEST) || \ + ((__PARAM__) == UART_MUTE_MODE_REQUEST) || \ + ((__PARAM__) == UART_RXDATA_FLUSH_REQUEST) || \ + ((__PARAM__) == UART_TXDATA_FLUSH_REQUEST)) + +/** + * @brief Ensure that UART advanced features initialization is valid. + * @param __INIT__ UART advanced features initialization. + * @retval SET (__INIT__ is valid) or RESET (__INIT__ is invalid) + */ +#define IS_UART_ADVFEATURE_INIT(__INIT__) ((__INIT__) <= (UART_ADVFEATURE_NO_INIT | \ + UART_ADVFEATURE_TXINVERT_INIT | \ + UART_ADVFEATURE_RXINVERT_INIT | \ + UART_ADVFEATURE_DATAINVERT_INIT | \ + UART_ADVFEATURE_SWAP_INIT | \ + UART_ADVFEATURE_RXOVERRUNDISABLE_INIT | \ + UART_ADVFEATURE_DMADISABLEONERROR_INIT | \ + UART_ADVFEATURE_AUTOBAUDRATE_INIT | \ + UART_ADVFEATURE_MSBFIRST_INIT)) + +/** + * @brief Ensure that UART frame TX inversion setting is valid. + * @param __TXINV__ UART frame TX inversion setting. + * @retval SET (__TXINV__ is valid) or RESET (__TXINV__ is invalid) + */ +#define IS_UART_ADVFEATURE_TXINV(__TXINV__) (((__TXINV__) == UART_ADVFEATURE_TXINV_DISABLE) || \ + ((__TXINV__) == UART_ADVFEATURE_TXINV_ENABLE)) + +/** + * @brief Ensure that UART frame RX inversion setting is valid. + * @param __RXINV__ UART frame RX inversion setting. + * @retval SET (__RXINV__ is valid) or RESET (__RXINV__ is invalid) + */ +#define IS_UART_ADVFEATURE_RXINV(__RXINV__) (((__RXINV__) == UART_ADVFEATURE_RXINV_DISABLE) || \ + ((__RXINV__) == UART_ADVFEATURE_RXINV_ENABLE)) + +/** + * @brief Ensure that UART frame data inversion setting is valid. + * @param __DATAINV__ UART frame data inversion setting. + * @retval SET (__DATAINV__ is valid) or RESET (__DATAINV__ is invalid) + */ +#define IS_UART_ADVFEATURE_DATAINV(__DATAINV__) (((__DATAINV__) == UART_ADVFEATURE_DATAINV_DISABLE) || \ + ((__DATAINV__) == UART_ADVFEATURE_DATAINV_ENABLE)) + +/** + * @brief Ensure that UART frame RX/TX pins swap setting is valid. + * @param __SWAP__ UART frame RX/TX pins swap setting. + * @retval SET (__SWAP__ is valid) or RESET (__SWAP__ is invalid) + */ +#define IS_UART_ADVFEATURE_SWAP(__SWAP__) (((__SWAP__) == UART_ADVFEATURE_SWAP_DISABLE) || \ + ((__SWAP__) == UART_ADVFEATURE_SWAP_ENABLE)) + +/** + * @brief Ensure that UART frame overrun setting is valid. + * @param __OVERRUN__ UART frame overrun setting. + * @retval SET (__OVERRUN__ is valid) or RESET (__OVERRUN__ is invalid) + */ +#define IS_UART_OVERRUN(__OVERRUN__) (((__OVERRUN__) == UART_ADVFEATURE_OVERRUN_ENABLE) || \ + ((__OVERRUN__) == UART_ADVFEATURE_OVERRUN_DISABLE)) + +/** + * @brief Ensure that UART auto Baud rate state is valid. + * @param __AUTOBAUDRATE__ UART auto Baud rate state. + * @retval SET (__AUTOBAUDRATE__ is valid) or RESET (__AUTOBAUDRATE__ is invalid) + */ +#define IS_UART_ADVFEATURE_AUTOBAUDRATE(__AUTOBAUDRATE__) (((__AUTOBAUDRATE__) == \ + UART_ADVFEATURE_AUTOBAUDRATE_DISABLE) || \ + ((__AUTOBAUDRATE__) == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)) + +/** + * @brief Ensure that UART DMA enabling or disabling on error setting is valid. + * @param __DMA__ UART DMA enabling or disabling on error setting. + * @retval SET (__DMA__ is valid) or RESET (__DMA__ is invalid) + */ +#define IS_UART_ADVFEATURE_DMAONRXERROR(__DMA__) (((__DMA__) == UART_ADVFEATURE_DMA_ENABLEONRXERROR) || \ + ((__DMA__) == UART_ADVFEATURE_DMA_DISABLEONRXERROR)) + +/** + * @brief Ensure that UART frame MSB first setting is valid. + * @param __MSBFIRST__ UART frame MSB first setting. + * @retval SET (__MSBFIRST__ is valid) or RESET (__MSBFIRST__ is invalid) + */ +#define IS_UART_ADVFEATURE_MSBFIRST(__MSBFIRST__) (((__MSBFIRST__) == UART_ADVFEATURE_MSBFIRST_DISABLE) || \ + ((__MSBFIRST__) == UART_ADVFEATURE_MSBFIRST_ENABLE)) + +/** + * @brief Ensure that UART stop mode state is valid. + * @param __STOPMODE__ UART stop mode state. + * @retval SET (__STOPMODE__ is valid) or RESET (__STOPMODE__ is invalid) + */ +#define IS_UART_ADVFEATURE_STOPMODE(__STOPMODE__) (((__STOPMODE__) == UART_ADVFEATURE_STOPMODE_DISABLE) || \ + ((__STOPMODE__) == UART_ADVFEATURE_STOPMODE_ENABLE)) + +/** + * @brief Ensure that UART mute mode state is valid. + * @param __MUTE__ UART mute mode state. + * @retval SET (__MUTE__ is valid) or RESET (__MUTE__ is invalid) + */ +#define IS_UART_MUTE_MODE(__MUTE__) (((__MUTE__) == UART_ADVFEATURE_MUTEMODE_DISABLE) || \ + ((__MUTE__) == UART_ADVFEATURE_MUTEMODE_ENABLE)) + +/** + * @brief Ensure that UART wake-up selection is valid. + * @param __WAKE__ UART wake-up selection. + * @retval SET (__WAKE__ is valid) or RESET (__WAKE__ is invalid) + */ +#define IS_UART_WAKEUP_SELECTION(__WAKE__) (((__WAKE__) == UART_WAKEUP_ON_ADDRESS) || \ + ((__WAKE__) == UART_WAKEUP_ON_STARTBIT) || \ + ((__WAKE__) == UART_WAKEUP_ON_READDATA_NONEMPTY)) + +/** + * @brief Ensure that UART driver enable polarity is valid. + * @param __POLARITY__ UART driver enable polarity. + * @retval SET (__POLARITY__ is valid) or RESET (__POLARITY__ is invalid) + */ +#define IS_UART_DE_POLARITY(__POLARITY__) (((__POLARITY__) == UART_DE_POLARITY_HIGH) || \ + ((__POLARITY__) == UART_DE_POLARITY_LOW)) + +/** + * @brief Ensure that UART Prescaler is valid. + * @param __CLOCKPRESCALER__ UART Prescaler value. + * @retval SET (__CLOCKPRESCALER__ is valid) or RESET (__CLOCKPRESCALER__ is invalid) + */ +#define IS_UART_PRESCALER(__CLOCKPRESCALER__) (((__CLOCKPRESCALER__) == UART_PRESCALER_DIV1) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV2) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV4) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV6) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV8) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV10) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV12) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV16) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV32) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV64) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV128) || \ + ((__CLOCKPRESCALER__) == UART_PRESCALER_DIV256)) + +/** + * @} + */ + +/* Include UART HAL Extended module */ +#include "stm32g4xx_hal_uart_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup UART_Exported_Functions UART Exported Functions + * @{ + */ + +/** @addtogroup UART_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ + +/* Initialization and de-initialization functions ****************************/ +HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength); +HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod); +HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart); +void HAL_UART_MspInit(UART_HandleTypeDef *huart); +void HAL_UART_MspDeInit(UART_HandleTypeDef *huart); + +/* Callbacks Register/UnRegister functions ***********************************/ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID, + pUART_CallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID); + +HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @addtogroup UART_Exported_Functions_Group2 IO operation functions + * @{ + */ + +/* IO operation functions *****************************************************/ +HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart); +/* Transfer Abort functions */ +HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart); + +void HAL_UART_IRQHandler(UART_HandleTypeDef *huart); +void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart); +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart); +void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart); +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart); +void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart); +void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart); +void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart); +void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart); + +void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size); + +/** + * @} + */ + +/** @addtogroup UART_Exported_Functions_Group3 Peripheral Control functions + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue); +HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart); + +HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart); +void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart); + +/** + * @} + */ + +/** @addtogroup UART_Exported_Functions_Group4 Peripheral State and Error functions + * @{ + */ + +/* Peripheral State and Errors functions **************************************************/ +HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart); +uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart); + +/** + * @} + */ + +/** + * @} + */ + +/* Private functions -----------------------------------------------------------*/ +/** @addtogroup UART_Private_Functions UART Private Functions + * @{ + */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart); +HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart); +HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, + uint32_t Tickstart, uint32_t Timeout); +void UART_AdvFeatureConfig(UART_HandleTypeDef *huart); +HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); + +/** + * @} + */ + +/* Private variables -----------------------------------------------------------*/ +/** @defgroup UART_Private_variables UART Private variables + * @{ + */ +/* Prescaler Table used in BRR computation macros. + Declared as extern here to allow use of private UART macros, outside of HAL UART functions */ +extern const uint16_t UARTPrescTable[12]; +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_UART_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h new file mode 100644 index 0000000..0c56e27 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h @@ -0,0 +1,929 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_uart_ex.h + * @author MCD Application Team + * @brief Header file of UART HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_HAL_UART_EX_H +#define STM32G4xx_HAL_UART_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal_def.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup UARTEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup UARTEx_Exported_Types UARTEx Exported Types + * @{ + */ + +/** + * @brief UART wake up from stop mode parameters + */ +typedef struct +{ + uint32_t WakeUpEvent; /*!< Specifies which event will activate the Wakeup from Stop mode flag (WUF). + This parameter can be a value of @ref UART_WakeUp_from_Stop_Selection. + If set to UART_WAKEUP_ON_ADDRESS, the two other fields below must + be filled up. */ + + uint16_t AddressLength; /*!< Specifies whether the address is 4 or 7-bit long. + This parameter can be a value of @ref UARTEx_WakeUp_Address_Length. */ + + uint8_t Address; /*!< UART/USART node address (7-bit long max). */ +} UART_WakeUpTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup UARTEx_Exported_Constants UARTEx Exported Constants + * @{ + */ + +/** @defgroup UARTEx_Word_Length UARTEx Word Length + * @{ + */ +#define UART_WORDLENGTH_7B USART_CR1_M1 /*!< 7-bit long UART frame */ +#define UART_WORDLENGTH_8B 0x00000000U /*!< 8-bit long UART frame */ +#define UART_WORDLENGTH_9B USART_CR1_M0 /*!< 9-bit long UART frame */ +/** + * @} + */ + +/** @defgroup UARTEx_WakeUp_Address_Length UARTEx WakeUp Address Length + * @{ + */ +#define UART_ADDRESS_DETECT_4B 0x00000000U /*!< 4-bit long wake-up address */ +#define UART_ADDRESS_DETECT_7B USART_CR2_ADDM7 /*!< 7-bit long wake-up address */ +/** + * @} + */ + +/** @defgroup UARTEx_FIFO_mode UARTEx FIFO mode + * @brief UART FIFO mode + * @{ + */ +#define UART_FIFOMODE_DISABLE 0x00000000U /*!< FIFO mode disable */ +#define UART_FIFOMODE_ENABLE USART_CR1_FIFOEN /*!< FIFO mode enable */ +/** + * @} + */ + +/** @defgroup UARTEx_TXFIFO_threshold_level UARTEx TXFIFO threshold level + * @brief UART TXFIFO threshold level + * @{ + */ +#define UART_TXFIFO_THRESHOLD_1_8 0x00000000U /*!< TX FIFO reaches 1/8 of its depth */ +#define UART_TXFIFO_THRESHOLD_1_4 USART_CR3_TXFTCFG_0 /*!< TX FIFO reaches 1/4 of its depth */ +#define UART_TXFIFO_THRESHOLD_1_2 USART_CR3_TXFTCFG_1 /*!< TX FIFO reaches 1/2 of its depth */ +#define UART_TXFIFO_THRESHOLD_3_4 (USART_CR3_TXFTCFG_0|USART_CR3_TXFTCFG_1) /*!< TX FIFO reaches 3/4 of its depth */ +#define UART_TXFIFO_THRESHOLD_7_8 USART_CR3_TXFTCFG_2 /*!< TX FIFO reaches 7/8 of its depth */ +#define UART_TXFIFO_THRESHOLD_8_8 (USART_CR3_TXFTCFG_2|USART_CR3_TXFTCFG_0) /*!< TX FIFO becomes empty */ +/** + * @} + */ + +/** @defgroup UARTEx_RXFIFO_threshold_level UARTEx RXFIFO threshold level + * @brief UART RXFIFO threshold level + * @{ + */ +#define UART_RXFIFO_THRESHOLD_1_8 0x00000000U /*!< RX FIFO reaches 1/8 of its depth */ +#define UART_RXFIFO_THRESHOLD_1_4 USART_CR3_RXFTCFG_0 /*!< RX FIFO reaches 1/4 of its depth */ +#define UART_RXFIFO_THRESHOLD_1_2 USART_CR3_RXFTCFG_1 /*!< RX FIFO reaches 1/2 of its depth */ +#define UART_RXFIFO_THRESHOLD_3_4 (USART_CR3_RXFTCFG_0|USART_CR3_RXFTCFG_1) /*!< RX FIFO reaches 3/4 of its depth */ +#define UART_RXFIFO_THRESHOLD_7_8 USART_CR3_RXFTCFG_2 /*!< RX FIFO reaches 7/8 of its depth */ +#define UART_RXFIFO_THRESHOLD_8_8 (USART_CR3_RXFTCFG_2|USART_CR3_RXFTCFG_0) /*!< RX FIFO becomes full */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup UARTEx_Exported_Functions + * @{ + */ + +/** @addtogroup UARTEx_Exported_Functions_Group1 + * @{ + */ + +/* Initialization and de-initialization functions ****************************/ +HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, + uint32_t DeassertionTime); + +/** + * @} + */ + +/** @addtogroup UARTEx_Exported_Functions_Group2 + * @{ + */ + +void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart); + +void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart); +void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart); + +/** + * @} + */ + +/** @addtogroup UARTEx_Exported_Functions_Group3 + * @{ + */ + +/* Peripheral Control functions **********************************************/ +HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection); +HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart); + +HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength); + +HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart); +HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold); +HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold); + +HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen, + uint32_t Timeout); +HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); + +HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(const UART_HandleTypeDef *huart); + + +/** + * @} + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup UARTEx_Private_Macros UARTEx Private Macros + * @{ + */ + +/** @brief Report the UART clock source. + * @param __HANDLE__ specifies the UART Handle. + * @param __CLOCKSOURCE__ output variable. + * @retval UART clocking source, written in __CLOCKSOURCE__. + */ +#if defined(UART5) && defined(USART3) +#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ + do { \ + if((__HANDLE__)->Instance == USART1) \ + { \ + switch(__HAL_RCC_GET_USART1_SOURCE()) \ + { \ + case RCC_USART1CLKSOURCE_PCLK2: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \ + break; \ + case RCC_USART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART2) \ + { \ + switch(__HAL_RCC_GET_USART2_SOURCE()) \ + { \ + case RCC_USART2CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART2CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART2CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART2CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART3) \ + { \ + switch(__HAL_RCC_GET_USART3_SOURCE()) \ + { \ + case RCC_USART3CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART3CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART3CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART3CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == UART4) \ + { \ + switch(__HAL_RCC_GET_UART4_SOURCE()) \ + { \ + case RCC_UART4CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_UART4CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_UART4CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_UART4CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == UART5) \ + { \ + switch(__HAL_RCC_GET_UART5_SOURCE()) \ + { \ + case RCC_UART5CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_UART5CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_UART5CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_UART5CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == LPUART1) \ + { \ + switch(__HAL_RCC_GET_LPUART1_SOURCE()) \ + { \ + case RCC_LPUART1CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_LPUART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_LPUART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_LPUART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else \ + { \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + } \ + } while(0U) +#elif defined(UART5) && !defined(USART3) +#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ + do { \ + if((__HANDLE__)->Instance == USART1) \ + { \ + switch(__HAL_RCC_GET_USART1_SOURCE()) \ + { \ + case RCC_USART1CLKSOURCE_PCLK2: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \ + break; \ + case RCC_USART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART2) \ + { \ + switch(__HAL_RCC_GET_USART2_SOURCE()) \ + { \ + case RCC_USART2CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART2CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART2CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART2CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == UART4) \ + { \ + switch(__HAL_RCC_GET_UART4_SOURCE()) \ + { \ + case RCC_UART4CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_UART4CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_UART4CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_UART4CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == UART5) \ + { \ + switch(__HAL_RCC_GET_UART5_SOURCE()) \ + { \ + case RCC_UART5CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_UART5CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_UART5CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_UART5CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == LPUART1) \ + { \ + switch(__HAL_RCC_GET_LPUART1_SOURCE()) \ + { \ + case RCC_LPUART1CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_LPUART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_LPUART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_LPUART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else \ + { \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + } \ + } while(0U) +#elif defined(UART4) && defined(USART3) +#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ + do { \ + if((__HANDLE__)->Instance == USART1) \ + { \ + switch(__HAL_RCC_GET_USART1_SOURCE()) \ + { \ + case RCC_USART1CLKSOURCE_PCLK2: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \ + break; \ + case RCC_USART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART2) \ + { \ + switch(__HAL_RCC_GET_USART2_SOURCE()) \ + { \ + case RCC_USART2CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART2CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART2CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART2CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART3) \ + { \ + switch(__HAL_RCC_GET_USART3_SOURCE()) \ + { \ + case RCC_USART3CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART3CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART3CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART3CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == UART4) \ + { \ + switch(__HAL_RCC_GET_UART4_SOURCE()) \ + { \ + case RCC_UART4CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_UART4CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_UART4CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_UART4CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == LPUART1) \ + { \ + switch(__HAL_RCC_GET_LPUART1_SOURCE()) \ + { \ + case RCC_LPUART1CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_LPUART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_LPUART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_LPUART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else \ + { \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + } \ + } while(0U) +#elif defined(UART4) && !defined(USART3) +#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ + do { \ + if((__HANDLE__)->Instance == USART1) \ + { \ + switch(__HAL_RCC_GET_USART1_SOURCE()) \ + { \ + case RCC_USART1CLKSOURCE_PCLK2: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \ + break; \ + case RCC_USART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART2) \ + { \ + switch(__HAL_RCC_GET_USART2_SOURCE()) \ + { \ + case RCC_USART2CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART2CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART2CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART2CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == UART4) \ + { \ + switch(__HAL_RCC_GET_UART4_SOURCE()) \ + { \ + case RCC_UART4CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_UART4CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_UART4CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_UART4CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == LPUART1) \ + { \ + switch(__HAL_RCC_GET_LPUART1_SOURCE()) \ + { \ + case RCC_LPUART1CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_LPUART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_LPUART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_LPUART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else \ + { \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + } \ + } while(0U) +#elif defined(USART3) +#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ + do { \ + if((__HANDLE__)->Instance == USART1) \ + { \ + switch(__HAL_RCC_GET_USART1_SOURCE()) \ + { \ + case RCC_USART1CLKSOURCE_PCLK2: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \ + break; \ + case RCC_USART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART2) \ + { \ + switch(__HAL_RCC_GET_USART2_SOURCE()) \ + { \ + case RCC_USART2CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART2CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART2CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART2CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART3) \ + { \ + switch(__HAL_RCC_GET_USART3_SOURCE()) \ + { \ + case RCC_USART3CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART3CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART3CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART3CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == LPUART1) \ + { \ + switch(__HAL_RCC_GET_LPUART1_SOURCE()) \ + { \ + case RCC_LPUART1CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_LPUART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_LPUART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_LPUART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else \ + { \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + } \ + } while(0U) +#else +#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ + do { \ + if((__HANDLE__)->Instance == USART1) \ + { \ + switch(__HAL_RCC_GET_USART1_SOURCE()) \ + { \ + case RCC_USART1CLKSOURCE_PCLK2: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \ + break; \ + case RCC_USART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == USART2) \ + { \ + switch(__HAL_RCC_GET_USART2_SOURCE()) \ + { \ + case RCC_USART2CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_USART2CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_USART2CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_USART2CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else if((__HANDLE__)->Instance == LPUART1) \ + { \ + switch(__HAL_RCC_GET_LPUART1_SOURCE()) \ + { \ + case RCC_LPUART1CLKSOURCE_PCLK1: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \ + break; \ + case RCC_LPUART1CLKSOURCE_HSI: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \ + break; \ + case RCC_LPUART1CLKSOURCE_SYSCLK: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \ + break; \ + case RCC_LPUART1CLKSOURCE_LSE: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \ + break; \ + default: \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + break; \ + } \ + } \ + else \ + { \ + (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \ + } \ + } while(0U) +#endif /* UART5 && !USART3 */ + +/** @brief Report the UART mask to apply to retrieve the received data + * according to the word length and to the parity bits activation. + * @note If PCE = 1, the parity bit is not included in the data extracted + * by the reception API(). + * This masking operation is not carried out in the case of + * DMA transfers. + * @param __HANDLE__ specifies the UART Handle. + * @retval None, the mask to apply to UART RDR register is stored in (__HANDLE__)->Mask field. + */ +#define UART_MASK_COMPUTATION(__HANDLE__) \ + do { \ + if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \ + { \ + if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \ + { \ + (__HANDLE__)->Mask = 0x01FFU ; \ + } \ + else \ + { \ + (__HANDLE__)->Mask = 0x00FFU ; \ + } \ + } \ + else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \ + { \ + if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \ + { \ + (__HANDLE__)->Mask = 0x00FFU ; \ + } \ + else \ + { \ + (__HANDLE__)->Mask = 0x007FU ; \ + } \ + } \ + else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_7B) \ + { \ + if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \ + { \ + (__HANDLE__)->Mask = 0x007FU ; \ + } \ + else \ + { \ + (__HANDLE__)->Mask = 0x003FU ; \ + } \ + } \ + else \ + { \ + (__HANDLE__)->Mask = 0x0000U; \ + } \ + } while(0U) + +/** + * @brief Ensure that UART frame length is valid. + * @param __LENGTH__ UART frame length. + * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid) + */ +#define IS_UART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == UART_WORDLENGTH_7B) || \ + ((__LENGTH__) == UART_WORDLENGTH_8B) || \ + ((__LENGTH__) == UART_WORDLENGTH_9B)) + +/** + * @brief Ensure that UART wake-up address length is valid. + * @param __ADDRESS__ UART wake-up address length. + * @retval SET (__ADDRESS__ is valid) or RESET (__ADDRESS__ is invalid) + */ +#define IS_UART_ADDRESSLENGTH_DETECT(__ADDRESS__) (((__ADDRESS__) == UART_ADDRESS_DETECT_4B) || \ + ((__ADDRESS__) == UART_ADDRESS_DETECT_7B)) + +/** + * @brief Ensure that UART TXFIFO threshold level is valid. + * @param __THRESHOLD__ UART TXFIFO threshold level. + * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid) + */ +#define IS_UART_TXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_8) || \ + ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_4) || \ + ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_2) || \ + ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_3_4) || \ + ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_7_8) || \ + ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_8_8)) + +/** + * @brief Ensure that UART RXFIFO threshold level is valid. + * @param __THRESHOLD__ UART RXFIFO threshold level. + * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid) + */ +#define IS_UART_RXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_8) || \ + ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_4) || \ + ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_2) || \ + ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_3_4) || \ + ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_7_8) || \ + ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_8_8)) + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_HAL_UART_EX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h new file mode 100644 index 0000000..72c7104 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h @@ -0,0 +1,9204 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_adc.h + * @author MCD Application Team + * @brief Header file of ADC LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_ADC_H +#define STM32G4xx_LL_ADC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (ADC1) || defined (ADC2) || defined (ADC3) || defined (ADC4) || defined (ADC5) + +/** @defgroup ADC_LL ADC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup ADC_LL_Private_Constants ADC Private Constants + * @{ + */ + +/* Internal mask for ADC group regular sequencer: */ +/* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */ +/* - sequencer register offset */ +/* - sequencer rank bits position into the selected register */ + +/* Internal register offset for ADC group regular sequencer configuration */ +/* (offset placed into a spare area of literal definition) */ +#define ADC_SQR1_REGOFFSET (0x00000000UL) +#define ADC_SQR2_REGOFFSET (0x00000100UL) +#define ADC_SQR3_REGOFFSET (0x00000200UL) +#define ADC_SQR4_REGOFFSET (0x00000300UL) + +#define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET \ + | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET) +#define ADC_SQRX_REGOFFSET_POS (8UL) /* Position of bits ADC_SQRx_REGOFFSET in ADC_REG_SQRX_REGOFFSET_MASK*/ +#define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0) + +/* Definition of ADC group regular sequencer bits information to be inserted */ +/* into ADC group regular sequencer ranks literals definition. */ +#define ADC_REG_RANK_1_SQRX_BITOFFSET_POS (ADC_SQR1_SQ1_Pos) +#define ADC_REG_RANK_2_SQRX_BITOFFSET_POS (ADC_SQR1_SQ2_Pos) +#define ADC_REG_RANK_3_SQRX_BITOFFSET_POS (ADC_SQR1_SQ3_Pos) +#define ADC_REG_RANK_4_SQRX_BITOFFSET_POS (ADC_SQR1_SQ4_Pos) +#define ADC_REG_RANK_5_SQRX_BITOFFSET_POS (ADC_SQR2_SQ5_Pos) +#define ADC_REG_RANK_6_SQRX_BITOFFSET_POS (ADC_SQR2_SQ6_Pos) +#define ADC_REG_RANK_7_SQRX_BITOFFSET_POS (ADC_SQR2_SQ7_Pos) +#define ADC_REG_RANK_8_SQRX_BITOFFSET_POS (ADC_SQR2_SQ8_Pos) +#define ADC_REG_RANK_9_SQRX_BITOFFSET_POS (ADC_SQR2_SQ9_Pos) +#define ADC_REG_RANK_10_SQRX_BITOFFSET_POS (ADC_SQR3_SQ10_Pos) +#define ADC_REG_RANK_11_SQRX_BITOFFSET_POS (ADC_SQR3_SQ11_Pos) +#define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (ADC_SQR3_SQ12_Pos) +#define ADC_REG_RANK_13_SQRX_BITOFFSET_POS (ADC_SQR3_SQ13_Pos) +#define ADC_REG_RANK_14_SQRX_BITOFFSET_POS (ADC_SQR3_SQ14_Pos) +#define ADC_REG_RANK_15_SQRX_BITOFFSET_POS (ADC_SQR4_SQ15_Pos) +#define ADC_REG_RANK_16_SQRX_BITOFFSET_POS (ADC_SQR4_SQ16_Pos) + + + +/* Internal mask for ADC group injected sequencer: */ +/* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */ +/* - data register offset */ +/* - sequencer rank bits position into the selected register */ + +/* Internal register offset for ADC group injected data register */ +/* (offset placed into a spare area of literal definition) */ +#define ADC_JDR1_REGOFFSET (0x00000000UL) +#define ADC_JDR2_REGOFFSET (0x00000100UL) +#define ADC_JDR3_REGOFFSET (0x00000200UL) +#define ADC_JDR4_REGOFFSET (0x00000300UL) + +#define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET \ + | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET) +#define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0) +#define ADC_JDRX_REGOFFSET_POS (8UL) /* Position of bits ADC_JDRx_REGOFFSET in ADC_INJ_JDRX_REGOFFSET_MASK*/ + +/* Definition of ADC group injected sequencer bits information to be inserted */ +/* into ADC group injected sequencer ranks literals definition. */ +#define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ1_Pos) +#define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ2_Pos) +#define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ3_Pos) +#define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ4_Pos) + + + +/* Internal mask for ADC group regular trigger: */ +/* To select into literal LL_ADC_REG_TRIG_x the relevant bits for: */ +/* - regular trigger source */ +/* - regular trigger edge */ +#define ADC_REG_TRIG_EXT_EDGE_DEFAULT (ADC_CFGR_EXTEN_0) /* Trigger edge set to rising edge (default setting for + compatibility with some ADC on other STM32 series + having this setting set by HW default value) */ + +/* Mask containing trigger source masks for each of possible */ +/* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ +/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ +#define ADC_REG_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTSEL) << (4U * 0UL)) | \ + ((ADC_CFGR_EXTSEL) << (4U * 1UL)) | \ + ((ADC_CFGR_EXTSEL) << (4U * 2UL)) | \ + ((ADC_CFGR_EXTSEL) << (4U * 3UL)) ) + +/* Mask containing trigger edge masks for each of possible */ +/* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ +/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ +#define ADC_REG_TRIG_EDGE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN) << (4U * 0UL)) | \ + ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 1UL)) | \ + ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 2UL)) | \ + ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 3UL)) ) + +/* Definition of ADC group regular trigger bits information. */ +#define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS (ADC_CFGR_EXTSEL_Pos) +#define ADC_REG_TRIG_EXTEN_BITOFFSET_POS (ADC_CFGR_EXTEN_Pos) + + + +/* Internal mask for ADC group injected trigger: */ +/* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for: */ +/* - injected trigger source */ +/* - injected trigger edge */ +#define ADC_INJ_TRIG_EXT_EDGE_DEFAULT (ADC_JSQR_JEXTEN_0) /* Trigger edge set to rising edge (default setting for + compatibility with some ADC on other STM32 series + having this setting set by HW default value) */ + +/* Mask containing trigger source masks for each of possible */ +/* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ +/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ +#define ADC_INJ_TRIG_SOURCE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTSEL) << (4U * 0UL)) | \ + ((ADC_JSQR_JEXTSEL) << (4U * 1UL)) | \ + ((ADC_JSQR_JEXTSEL) << (4U * 2UL)) | \ + ((ADC_JSQR_JEXTSEL) << (4U * 3UL)) ) + +/* Mask containing trigger edge masks for each of possible */ +/* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ +/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ +#define ADC_INJ_TRIG_EDGE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN) << (4U * 0UL)) | \ + ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 1UL)) | \ + ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 2UL)) | \ + ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 3UL)) ) + +/* Definition of ADC group injected trigger bits information. */ +#define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS (ADC_JSQR_JEXTSEL_Pos) +#define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS (ADC_JSQR_JEXTEN_Pos) + + + + + + +/* Internal mask for ADC channel: */ +/* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */ +/* - channel identifier defined by number */ +/* - channel identifier defined by bitfield */ +/* - channel differentiation between external channels (connected to */ +/* GPIO pins) and internal channels (connected to internal paths) */ +/* - channel sampling time defined by SMPRx register offset */ +/* and SMPx bits positions into SMPRx register */ +#define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CFGR_AWD1CH) +#define ADC_CHANNEL_ID_BITFIELD_MASK (ADC_AWD2CR_AWD2CH) +#define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS (ADC_CFGR_AWD1CH_Pos) +#define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_BITFIELD_MASK \ + | ADC_CHANNEL_ID_INTERNAL_CH_MASK) +/* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */ +#define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 (ADC_SQR2_SQ5) /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK + >> [Position of bitfield "ADC_CHANNEL_NUMBER_MASK" in register]) */ + +/* Channel differentiation between external and internal channels */ +#define ADC_CHANNEL_ID_INTERNAL_CH (0x80000000UL) /* Marker of internal channel */ +#define ADC_CHANNEL_ID_INTERNAL_CH_2 (0x00080000UL) /* Marker of internal channel for other ADC instances, in case + of different ADC internal channels mapped on same channel + number on different ADC instances */ +#define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) + +/* Internal register offset for ADC channel sampling time configuration */ +/* (offset placed into a spare area of literal definition) */ +#define ADC_SMPR1_REGOFFSET (0x00000000UL) +#define ADC_SMPR2_REGOFFSET (0x02000000UL) +#define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET) +#define ADC_SMPRX_REGOFFSET_POS (25UL) /* Position of bits ADC_SMPRx_REGOFFSET + in ADC_CHANNEL_SMPRX_REGOFFSET_MASK */ + +#define ADC_CHANNEL_SMPx_BITOFFSET_MASK (0x01F00000UL) +#define ADC_CHANNEL_SMPx_BITOFFSET_POS (20UL) /* Equivalent to bitfield "ADC_CHANNEL_SMPx_BITOFFSET_MASK" + position in register */ + +/* Definition of channels ID number information to be inserted into */ +/* channels literals definition. */ +#define ADC_CHANNEL_0_NUMBER (0x00000000UL) +#define ADC_CHANNEL_1_NUMBER (ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_2_NUMBER (ADC_CFGR_AWD1CH_1) +#define ADC_CHANNEL_3_NUMBER (ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_4_NUMBER (ADC_CFGR_AWD1CH_2) +#define ADC_CHANNEL_5_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_6_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1) +#define ADC_CHANNEL_7_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_8_NUMBER (ADC_CFGR_AWD1CH_3) +#define ADC_CHANNEL_9_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_10_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1) +#define ADC_CHANNEL_11_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_12_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2) +#define ADC_CHANNEL_13_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_14_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1) +#define ADC_CHANNEL_15_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | \ + ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_16_NUMBER (ADC_CFGR_AWD1CH_4) +#define ADC_CHANNEL_17_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_0) +#define ADC_CHANNEL_18_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_1) + +/* Definition of channels ID bitfield information to be inserted into */ +/* channels literals definition. */ +#define ADC_CHANNEL_0_BITFIELD (ADC_AWD2CR_AWD2CH_0) +#define ADC_CHANNEL_1_BITFIELD (ADC_AWD2CR_AWD2CH_1) +#define ADC_CHANNEL_2_BITFIELD (ADC_AWD2CR_AWD2CH_2) +#define ADC_CHANNEL_3_BITFIELD (ADC_AWD2CR_AWD2CH_3) +#define ADC_CHANNEL_4_BITFIELD (ADC_AWD2CR_AWD2CH_4) +#define ADC_CHANNEL_5_BITFIELD (ADC_AWD2CR_AWD2CH_5) +#define ADC_CHANNEL_6_BITFIELD (ADC_AWD2CR_AWD2CH_6) +#define ADC_CHANNEL_7_BITFIELD (ADC_AWD2CR_AWD2CH_7) +#define ADC_CHANNEL_8_BITFIELD (ADC_AWD2CR_AWD2CH_8) +#define ADC_CHANNEL_9_BITFIELD (ADC_AWD2CR_AWD2CH_9) +#define ADC_CHANNEL_10_BITFIELD (ADC_AWD2CR_AWD2CH_10) +#define ADC_CHANNEL_11_BITFIELD (ADC_AWD2CR_AWD2CH_11) +#define ADC_CHANNEL_12_BITFIELD (ADC_AWD2CR_AWD2CH_12) +#define ADC_CHANNEL_13_BITFIELD (ADC_AWD2CR_AWD2CH_13) +#define ADC_CHANNEL_14_BITFIELD (ADC_AWD2CR_AWD2CH_14) +#define ADC_CHANNEL_15_BITFIELD (ADC_AWD2CR_AWD2CH_15) +#define ADC_CHANNEL_16_BITFIELD (ADC_AWD2CR_AWD2CH_16) +#define ADC_CHANNEL_17_BITFIELD (ADC_AWD2CR_AWD2CH_17) +#define ADC_CHANNEL_18_BITFIELD (ADC_AWD2CR_AWD2CH_18) + +/* Definition of channels sampling time information to be inserted into */ +/* channels literals definition. */ +/* Value shifted are equivalent to bitfield "ADC_SMPRx_SMPy" position */ +/* in register. */ +#define ADC_CHANNEL_0_SMP (ADC_SMPR1_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_1_SMP (ADC_SMPR1_REGOFFSET | (( 3UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_2_SMP (ADC_SMPR1_REGOFFSET | (( 6UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_3_SMP (ADC_SMPR1_REGOFFSET | (( 9UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_4_SMP (ADC_SMPR1_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_5_SMP (ADC_SMPR1_REGOFFSET | ((15UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_6_SMP (ADC_SMPR1_REGOFFSET | ((18UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_7_SMP (ADC_SMPR1_REGOFFSET | ((21UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_8_SMP (ADC_SMPR1_REGOFFSET | ((24UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_9_SMP (ADC_SMPR1_REGOFFSET | ((27UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_10_SMP (ADC_SMPR2_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_11_SMP (ADC_SMPR2_REGOFFSET | (( 3UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_12_SMP (ADC_SMPR2_REGOFFSET | (( 6UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_13_SMP (ADC_SMPR2_REGOFFSET | (( 9UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_14_SMP (ADC_SMPR2_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_15_SMP (ADC_SMPR2_REGOFFSET | ((15UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_16_SMP (ADC_SMPR2_REGOFFSET | ((18UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_17_SMP (ADC_SMPR2_REGOFFSET | ((21UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +#define ADC_CHANNEL_18_SMP (ADC_SMPR2_REGOFFSET | ((24UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) + + +/* Internal mask for ADC mode single or differential ended: */ +/* To select into literals LL_ADC_SINGLE_ENDED or LL_ADC_SINGLE_DIFFERENTIAL */ +/* the relevant bits for: */ +/* (concatenation of multiple bits used in different registers) */ +/* - ADC calibration: calibration start, calibration factor get or set */ +/* - ADC channels: set each ADC channel ending mode */ +#define ADC_SINGLEDIFF_CALIB_START_MASK (ADC_CR_ADCALDIF) +#define ADC_SINGLEDIFF_CALIB_FACTOR_MASK (ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S) +#define ADC_SINGLEDIFF_CHANNEL_MASK (ADC_CHANNEL_ID_BITFIELD_MASK) /* Equivalent to ADC_DIFSEL_DIFSEL */ +#define ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK (ADC_CALFACT_CALFACT_S_4 | ADC_CALFACT_CALFACT_S_3) /* Bits chosen + to perform of shift when single mode is selected, shift value out of + channels bits range. */ +#define ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK (0x00010000UL) /* Selection of 1 bit to discriminate differential mode: + mask of bit */ +#define ADC_SINGLEDIFF_CALIB_F_BIT_D_POS (16UL) /* Selection of 1 bit to discriminate differential mode: + position of bit */ +#define ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4 (ADC_SINGLEDIFF_CALIB_F_BIT_D_POS - 4UL) /* Shift of bit + ADC_SINGLEDIFF_CALIB_F_BIT_D to perform a shift of 4 ranks */ + +/* Internal mask for ADC analog watchdog: */ +/* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */ +/* (concatenation of multiple bits used in different analog watchdogs, */ +/* (feature of several watchdogs not available on all STM32 series)). */ +/* - analog watchdog 1: monitored channel defined by number, */ +/* selection of ADC group (ADC groups regular and-or injected). */ +/* - analog watchdog 2 and 3: monitored channel defined by bitfield, no */ +/* selection on groups. */ + +/* Internal register offset for ADC analog watchdog channel configuration */ +#define ADC_AWD_CR1_REGOFFSET (0x00000000UL) +#define ADC_AWD_CR2_REGOFFSET (0x00100000UL) +#define ADC_AWD_CR3_REGOFFSET (0x00200000UL) + +/* Register offset gap between AWD1 and AWD2-AWD3 configuration registers */ +/* (Set separately as ADC_AWD_CRX_REGOFFSET to spare 32 bits space */ +#define ADC_AWD_CR12_REGOFFSETGAP_MASK (ADC_AWD2CR_AWD2CH_0) +#define ADC_AWD_CR12_REGOFFSETGAP_VAL (0x00000024UL) + +#define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET | ADC_AWD_CR2_REGOFFSET | ADC_AWD_CR3_REGOFFSET) + +#define ADC_AWD_CR1_CHANNEL_MASK (ADC_CFGR_AWD1CH | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +#define ADC_AWD_CR23_CHANNEL_MASK (ADC_AWD2CR_AWD2CH) +#define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR23_CHANNEL_MASK) + +#define ADC_AWD_CRX_REGOFFSET_POS (20UL) /* Position of bits ADC_AWD_CRx_REGOFFSET + in ADC_AWD_CRX_REGOFFSET_MASK */ + +/* Internal register offset for ADC analog watchdog threshold configuration */ +#define ADC_AWD_TR1_REGOFFSET (ADC_AWD_CR1_REGOFFSET) +#define ADC_AWD_TR2_REGOFFSET (ADC_AWD_CR2_REGOFFSET) +#define ADC_AWD_TR3_REGOFFSET (ADC_AWD_CR3_REGOFFSET) +#define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_REGOFFSET | ADC_AWD_TR2_REGOFFSET | ADC_AWD_TR3_REGOFFSET) +#define ADC_AWD_TRX_REGOFFSET_POS (ADC_AWD_CRX_REGOFFSET_POS) /* Position of bits ADC_SQRx_REGOFFSET + in ADC_AWD_TRX_REGOFFSET_MASK */ +#define ADC_AWD_TRX_BIT_HIGH_MASK (0x00010000UL) /* Selection of 1 bit to discriminate + threshold high: mask of bit */ +#define ADC_AWD_TRX_BIT_HIGH_POS (16UL) /* Selection of 1 bit to discriminate + threshold high: position of bit */ +#define ADC_AWD_TRX_BIT_HIGH_SHIFT4 (ADC_AWD_TRX_BIT_HIGH_POS - 4UL) /* Shift of bit ADC_AWD_TRX_BIT_HIGH to + position to perform a shift of 4 ranks */ + +/* Internal mask for ADC offset: */ +/* Internal register offset for ADC offset instance configuration */ +#define ADC_OFR1_REGOFFSET (0x00000000UL) +#define ADC_OFR2_REGOFFSET (0x00000001UL) +#define ADC_OFR3_REGOFFSET (0x00000002UL) +#define ADC_OFR4_REGOFFSET (0x00000003UL) +#define ADC_OFRx_REGOFFSET_MASK (ADC_OFR1_REGOFFSET | ADC_OFR2_REGOFFSET \ + | ADC_OFR3_REGOFFSET | ADC_OFR4_REGOFFSET) + + +/* ADC registers bits positions */ +#define ADC_CFGR_RES_BITOFFSET_POS (ADC_CFGR_RES_Pos) +#define ADC_CFGR_AWD1SGL_BITOFFSET_POS (ADC_CFGR_AWD1SGL_Pos) +#define ADC_CFGR_AWD1EN_BITOFFSET_POS (ADC_CFGR_AWD1EN_Pos) +#define ADC_CFGR_JAWD1EN_BITOFFSET_POS (ADC_CFGR_JAWD1EN_Pos) +#define ADC_TR1_HT1_BITOFFSET_POS (ADC_TR1_HT1_Pos) + + +/* ADC registers bits groups */ +#define ADC_CR_BITS_PROPERTY_RS (ADC_CR_ADCAL | ADC_CR_ADEN | ADC_CR_ADDIS \ + | ADC_CR_JADSTART | ADC_CR_JADSTP \ + | ADC_CR_ADSTART | ADC_CR_ADSTP) /* ADC register CR bits with + HW property "rs": Software can read as well as set this bit. + Writing '0' has no effect on the bit value. */ + + +/* ADC internal channels related definitions */ +/* Internal voltage reference VrefInt */ +#define VREFINT_CAL_ADDR ((uint16_t*) (0x1FFF75AAUL)) /* Internal voltage reference, address of + parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC + (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */ +#define VREFINT_CAL_VREF (3000UL) /* Analog voltage reference (Vref+) value + with which VrefInt has been calibrated in production + (tolerance: +-10 mV) (unit: mV). */ +/* Temperature sensor */ +#define TEMPSENSOR_CAL1_ADDR ((uint16_t*) (0x1FFF75A8UL)) /* Address of parameter TS_CAL1: On STM32G4, + temperature sensor ADC raw data acquired at temperature 30 DegC + (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */ +#define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1FFF75CAUL)) /* Address of parameter TS_CAL2: On STM32G4, + temperature sensor ADC raw data acquired at temperature 110 DegC + (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */ +#define TEMPSENSOR_CAL1_TEMP (30L) /* Temperature at which temperature sensor + has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR + (tolerance: +-5 DegC) (unit: DegC). */ +#define TEMPSENSOR_CAL2_TEMP (110L) /* Temperature at which temperature sensor + has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR + (tolerance: +-5 DegC) (unit: DegC). */ +#define TEMPSENSOR_CAL_VREFANALOG (3000UL) /* Analog voltage reference (Vref+) value + with which temperature sensor has been calibrated in production + (tolerance +-10 mV) (unit: mV). */ + +/** + * @} + */ + + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup ADC_LL_Private_Macros ADC Private Macros + * @{ + */ + +/** + * @brief Driver macro reserved for internal use: set a pointer to + * a register from a register basis from which an offset + * is applied. + * @param __REG__ Register basis from which the offset is applied. + * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers). + * @retval Pointer to register address + */ +#define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \ + ((__IO uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2UL)))) + +/** + * @} + */ + + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup ADC_LL_ES_INIT ADC Exported Init structure + * @{ + */ + +/** + * @brief Structure definition of some features of ADC common parameters + * and multimode + * (all ADC instances belonging to the same ADC common instance). + * @note The setting of these parameters by function @ref LL_ADC_CommonInit() + * is conditioned to ADC instances state (all ADC instances + * sharing the same ADC common instance): + * All ADC instances sharing the same ADC common instance must be + * disabled. + */ +typedef struct +{ + uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and prescaler. + This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE + @note On this STM32 series, if ADC group injected is used, some clock ratio + constraints between ADC clock and AHB clock must be respected. + Refer to reference manual. + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetCommonClock(). */ + +#if defined(ADC_MULTIMODE_SUPPORT) + uint32_t Multimode; /*!< Set ADC multimode configuration to operate in independent mode or multimode + (for devices with several ADC instances). + This parameter can be a value of @ref ADC_LL_EC_MULTI_MODE + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetMultimode(). */ + + uint32_t MultiDMATransfer; /*!< Set ADC multimode conversion data transfer: no transfer or transfer by DMA. + This parameter can be a value of @ref ADC_LL_EC_MULTI_DMA_TRANSFER + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetMultiDMATransfer(). */ + + uint32_t MultiTwoSamplingDelay; /*!< Set ADC multimode delay between 2 sampling phases. + This parameter can be a value of @ref ADC_LL_EC_MULTI_TWOSMP_DELAY + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetMultiTwoSamplingDelay(). */ +#endif /* ADC_MULTIMODE_SUPPORT */ + +} LL_ADC_CommonInitTypeDef; + +/** + * @brief Structure definition of some features of ADC instance. + * @note These parameters have an impact on ADC scope: ADC instance. + * Affects both group regular and group injected (availability + * of ADC group injected depends on STM32 series). + * Refer to corresponding unitary functions into + * @ref ADC_LL_EF_Configuration_ADC_Instance . + * @note The setting of these parameters by function @ref LL_ADC_Init() + * is conditioned to ADC state: + * ADC instance must be disabled. + * This condition is applied to all ADC features, for efficiency + * and compatibility over all STM32 series. However, the different + * features can be set under different ADC state conditions + * (setting possible with ADC enabled without conversion on going, + * ADC enabled with conversion on going, ...) + * Each feature can be updated afterwards with a unitary function + * and potentially with ADC in a different state than disabled, + * refer to description of each function for setting + * conditioned to ADC state. + */ +typedef struct +{ + uint32_t Resolution; /*!< Set ADC resolution. + This parameter can be a value of @ref ADC_LL_EC_RESOLUTION + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetResolution(). */ + + uint32_t DataAlignment; /*!< Set ADC conversion data alignment. + This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetDataAlignment(). */ + + uint32_t LowPowerMode; /*!< Set ADC low power mode. + This parameter can be a value of @ref ADC_LL_EC_LP_MODE + This feature can be modified afterwards using unitary function + @ref LL_ADC_SetLowPowerMode(). */ + +} LL_ADC_InitTypeDef; + +/** + * @brief Structure definition of some features of ADC group regular. + * @note These parameters have an impact on ADC scope: ADC group regular. + * Refer to corresponding unitary functions into + * @ref ADC_LL_EF_Configuration_ADC_Group_Regular + * (functions with prefix "REG"). + * @note The setting of these parameters by function @ref LL_ADC_REG_Init() + * is conditioned to ADC state: + * ADC instance must be disabled. + * This condition is applied to all ADC features, for efficiency + * and compatibility over all STM32 series. However, the different + * features can be set under different ADC state conditions + * (setting possible with ADC enabled without conversion on going, + * ADC enabled with conversion on going, ...) + * Each feature can be updated afterwards with a unitary function + * and potentially with ADC in a different state than disabled, + * refer to description of each function for setting + * conditioned to ADC state. + */ +typedef struct +{ + uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or + from external peripheral (timer event, external interrupt line). + This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE + @note On this STM32 series, setting trigger source to external trigger also + set trigger polarity to rising edge(default setting for compatibility + with some ADC on other STM32 series having this setting set by HW + default value). + In case of need to modify trigger edge, use function + @ref LL_ADC_REG_SetTriggerEdge(). + This feature can be modified afterwards using unitary function + @ref LL_ADC_REG_SetTriggerSource(). */ + + uint32_t SequencerLength; /*!< Set ADC group regular sequencer length. + This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH + This feature can be modified afterwards using unitary function + @ref LL_ADC_REG_SetSequencerLength(). */ + + uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided + and scan conversions interrupted every selected number of ranks. + This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE + @note This parameter has an effect only if group regular sequencer is + enabled (scan length of 2 ranks or more). + This feature can be modified afterwards using unitary function + @ref LL_ADC_REG_SetSequencerDiscont(). */ + + uint32_t ContinuousMode; /*!< Set ADC continuous conversion mode on ADC group regular, whether ADC + conversions are performed in single mode (one conversion per trigger) or in + continuous mode (after the first trigger, following conversions launched + successively automatically). + This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE + Note: It is not possible to enable both ADC group regular continuous mode + and discontinuous mode. + This feature can be modified afterwards using unitary function + @ref LL_ADC_REG_SetContinuousMode(). */ + + uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no transfer or transfer + by DMA, and DMA requests mode. + This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER + This feature can be modified afterwards using unitary function + @ref LL_ADC_REG_SetDMATransfer(). */ + + uint32_t Overrun; /*!< Set ADC group regular behavior in case of overrun: + data preserved or overwritten. + This parameter can be a value of @ref ADC_LL_EC_REG_OVR_DATA_BEHAVIOR + This feature can be modified afterwards using unitary function + @ref LL_ADC_REG_SetOverrun(). */ + +} LL_ADC_REG_InitTypeDef; + +/** + * @brief Structure definition of some features of ADC group injected. + * @note These parameters have an impact on ADC scope: ADC group injected. + * Refer to corresponding unitary functions into + * @ref ADC_LL_EF_Configuration_ADC_Group_Regular + * (functions with prefix "INJ"). + * @note The setting of these parameters by function @ref LL_ADC_INJ_Init() + * is conditioned to ADC state: + * ADC instance must be disabled. + * This condition is applied to all ADC features, for efficiency + * and compatibility over all STM32 series. However, the different + * features can be set under different ADC state conditions + * (setting possible with ADC enabled without conversion on going, + * ADC enabled with conversion on going, ...) + * Each feature can be updated afterwards with a unitary function + * and potentially with ADC in a different state than disabled, + * refer to description of each function for setting + * conditioned to ADC state. + */ +typedef struct +{ + uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) + or from external peripheral (timer event, external interrupt line). + This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE + @note On this STM32 series, setting trigger source to external trigger also + set trigger polarity to rising edge (default setting for + compatibility with some ADC on other STM32 series having this + setting set by HW default value). + In case of need to modify trigger edge, use function + @ref LL_ADC_INJ_SetTriggerEdge(). + This feature can be modified afterwards using unitary function + @ref LL_ADC_INJ_SetTriggerSource(). */ + + uint32_t SequencerLength; /*!< Set ADC group injected sequencer length. + This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH + This feature can be modified afterwards using unitary function + @ref LL_ADC_INJ_SetSequencerLength(). */ + + uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided + and scan conversions interrupted every selected number of ranks. + This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE + @note This parameter has an effect only if group injected sequencer is + enabled (scan length of 2 ranks or more). + This feature can be modified afterwards using unitary function + @ref LL_ADC_INJ_SetSequencerDiscont(). */ + + uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group + regular. + This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO + Note: This parameter must be set to set to independent trigger if injected + trigger source is set to an external trigger. + This feature can be modified afterwards using unitary function + @ref LL_ADC_INJ_SetTrigAuto(). */ + +} LL_ADC_INJ_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup ADC_LL_Exported_Constants ADC Exported Constants + * @{ + */ + +/** @defgroup ADC_LL_EC_FLAG ADC flags + * @brief Flags defines which can be used with LL_ADC_ReadReg function + * @{ + */ +#define LL_ADC_FLAG_ADRDY ADC_ISR_ADRDY /*!< ADC flag ADC instance ready */ +#define LL_ADC_FLAG_EOC ADC_ISR_EOC /*!< ADC flag ADC group regular end of unitary + conversion */ +#define LL_ADC_FLAG_EOS ADC_ISR_EOS /*!< ADC flag ADC group regular end of sequence + conversions */ +#define LL_ADC_FLAG_OVR ADC_ISR_OVR /*!< ADC flag ADC group regular overrun */ +#define LL_ADC_FLAG_EOSMP ADC_ISR_EOSMP /*!< ADC flag ADC group regular end of sampling phase */ +#define LL_ADC_FLAG_JEOC ADC_ISR_JEOC /*!< ADC flag ADC group injected end of unitary + conversion */ +#define LL_ADC_FLAG_JEOS ADC_ISR_JEOS /*!< ADC flag ADC group injected end of sequence + conversions */ +#define LL_ADC_FLAG_JQOVF ADC_ISR_JQOVF /*!< ADC flag ADC group injected contexts queue + overflow */ +#define LL_ADC_FLAG_AWD1 ADC_ISR_AWD1 /*!< ADC flag ADC analog watchdog 1 */ +#define LL_ADC_FLAG_AWD2 ADC_ISR_AWD2 /*!< ADC flag ADC analog watchdog 2 */ +#define LL_ADC_FLAG_AWD3 ADC_ISR_AWD3 /*!< ADC flag ADC analog watchdog 3 */ +#if defined(ADC_MULTIMODE_SUPPORT) +#define LL_ADC_FLAG_ADRDY_MST ADC_CSR_ADRDY_MST /*!< ADC flag ADC multimode master instance ready */ +#define LL_ADC_FLAG_ADRDY_SLV ADC_CSR_ADRDY_SLV /*!< ADC flag ADC multimode slave instance ready */ +#define LL_ADC_FLAG_EOC_MST ADC_CSR_EOC_MST /*!< ADC flag ADC multimode master group regular end of + unitary conversion */ +#define LL_ADC_FLAG_EOC_SLV ADC_CSR_EOC_SLV /*!< ADC flag ADC multimode slave group regular end of + unitary conversion */ +#define LL_ADC_FLAG_EOS_MST ADC_CSR_EOS_MST /*!< ADC flag ADC multimode master group regular end of + sequence conversions */ +#define LL_ADC_FLAG_EOS_SLV ADC_CSR_EOS_SLV /*!< ADC flag ADC multimode slave group regular end of + sequence conversions */ +#define LL_ADC_FLAG_OVR_MST ADC_CSR_OVR_MST /*!< ADC flag ADC multimode master group regular + overrun */ +#define LL_ADC_FLAG_OVR_SLV ADC_CSR_OVR_SLV /*!< ADC flag ADC multimode slave group regular + overrun */ +#define LL_ADC_FLAG_EOSMP_MST ADC_CSR_EOSMP_MST /*!< ADC flag ADC multimode master group regular end of + sampling phase */ +#define LL_ADC_FLAG_EOSMP_SLV ADC_CSR_EOSMP_SLV /*!< ADC flag ADC multimode slave group regular end of + sampling phase */ +#define LL_ADC_FLAG_JEOC_MST ADC_CSR_JEOC_MST /*!< ADC flag ADC multimode master group injected end of + unitary conversion */ +#define LL_ADC_FLAG_JEOC_SLV ADC_CSR_JEOC_SLV /*!< ADC flag ADC multimode slave group injected end of + unitary conversion */ +#define LL_ADC_FLAG_JEOS_MST ADC_CSR_JEOS_MST /*!< ADC flag ADC multimode master group injected end of + sequence conversions */ +#define LL_ADC_FLAG_JEOS_SLV ADC_CSR_JEOS_SLV /*!< ADC flag ADC multimode slave group injected end of + sequence conversions */ +#define LL_ADC_FLAG_JQOVF_MST ADC_CSR_JQOVF_MST /*!< ADC flag ADC multimode master group injected + contexts queue overflow */ +#define LL_ADC_FLAG_JQOVF_SLV ADC_CSR_JQOVF_SLV /*!< ADC flag ADC multimode slave group injected + contexts queue overflow */ +#define LL_ADC_FLAG_AWD1_MST ADC_CSR_AWD1_MST /*!< ADC flag ADC multimode master analog watchdog 1 + of the ADC master */ +#define LL_ADC_FLAG_AWD1_SLV ADC_CSR_AWD1_SLV /*!< ADC flag ADC multimode slave analog watchdog 1 + of the ADC slave */ +#define LL_ADC_FLAG_AWD2_MST ADC_CSR_AWD2_MST /*!< ADC flag ADC multimode master analog watchdog 2 + of the ADC master */ +#define LL_ADC_FLAG_AWD2_SLV ADC_CSR_AWD2_SLV /*!< ADC flag ADC multimode slave analog watchdog 2 + of the ADC slave */ +#define LL_ADC_FLAG_AWD3_MST ADC_CSR_AWD3_MST /*!< ADC flag ADC multimode master analog watchdog 3 + of the ADC master */ +#define LL_ADC_FLAG_AWD3_SLV ADC_CSR_AWD3_SLV /*!< ADC flag ADC multimode slave analog watchdog 3 + of the ADC slave */ +#endif /* ADC_MULTIMODE_SUPPORT */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable) + * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions + * @{ + */ +#define LL_ADC_IT_ADRDY ADC_IER_ADRDYIE /*!< ADC interruption ADC instance ready */ +#define LL_ADC_IT_EOC ADC_IER_EOCIE /*!< ADC interruption ADC group regular end of unitary + conversion */ +#define LL_ADC_IT_EOS ADC_IER_EOSIE /*!< ADC interruption ADC group regular end of sequence + conversions */ +#define LL_ADC_IT_OVR ADC_IER_OVRIE /*!< ADC interruption ADC group regular overrun */ +#define LL_ADC_IT_EOSMP ADC_IER_EOSMPIE /*!< ADC interruption ADC group regular end of sampling + phase */ +#define LL_ADC_IT_JEOC ADC_IER_JEOCIE /*!< ADC interruption ADC group injected end of unitary + conversion */ +#define LL_ADC_IT_JEOS ADC_IER_JEOSIE /*!< ADC interruption ADC group injected end of sequence + conversions */ +#define LL_ADC_IT_JQOVF ADC_IER_JQOVFIE /*!< ADC interruption ADC group injected contexts queue + overflow */ +#define LL_ADC_IT_AWD1 ADC_IER_AWD1IE /*!< ADC interruption ADC analog watchdog 1 */ +#define LL_ADC_IT_AWD2 ADC_IER_AWD2IE /*!< ADC interruption ADC analog watchdog 2 */ +#define LL_ADC_IT_AWD3 ADC_IER_AWD3IE /*!< ADC interruption ADC analog watchdog 3 */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose + * @{ + */ +/* List of ADC registers intended to be used (most commonly) with */ +/* DMA transfer. */ +/* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */ +#define LL_ADC_DMA_REG_REGULAR_DATA (0x00000000UL) /* ADC group regular conversion data register + (corresponding to register DR) to be used with ADC configured in independent + mode. Without DMA transfer, register accessed by LL function + @ref LL_ADC_REG_ReadConversionData32() and other + functions @ref LL_ADC_REG_ReadConversionDatax() */ +#if defined(ADC_MULTIMODE_SUPPORT) +#define LL_ADC_DMA_REG_REGULAR_DATA_MULTI (0x00000001UL) /* ADC group regular conversion data register + (corresponding to register CDR) to be used with ADC configured in multimode + (available on STM32 devices with several ADC instances). + Without DMA transfer, register accessed by LL function + @ref LL_ADC_REG_ReadMultiConversionData32() */ +#endif /* ADC_MULTIMODE_SUPPORT */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source + * @{ + */ +#define LL_ADC_CLOCK_SYNC_PCLK_DIV1 (ADC_CCR_CKMODE_0) /*!< ADC synchronous clock derived from + AHB clock without prescaler */ +#define LL_ADC_CLOCK_SYNC_PCLK_DIV2 (ADC_CCR_CKMODE_1) /*!< ADC synchronous clock derived from + AHB clock with prescaler division by 2 */ +#define LL_ADC_CLOCK_SYNC_PCLK_DIV4 (ADC_CCR_CKMODE_1 | ADC_CCR_CKMODE_0) /*!< ADC synchronous clock derived from + AHB clock with prescaler division by 4 */ +#define LL_ADC_CLOCK_ASYNC_DIV1 (0x00000000UL) /*!< ADC asynchronous clock without + prescaler */ +#define LL_ADC_CLOCK_ASYNC_DIV2 (ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with + prescaler division by 2 */ +#define LL_ADC_CLOCK_ASYNC_DIV4 (ADC_CCR_PRESC_1) /*!< ADC asynchronous clock with + prescaler division by 4 */ +#define LL_ADC_CLOCK_ASYNC_DIV6 (ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with + prescaler division by 6 */ +#define LL_ADC_CLOCK_ASYNC_DIV8 (ADC_CCR_PRESC_2) /*!< ADC asynchronous clock with + prescaler division by 8 */ +#define LL_ADC_CLOCK_ASYNC_DIV10 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with + prescaler division by 10 */ +#define LL_ADC_CLOCK_ASYNC_DIV12 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_1) /*!< ADC asynchronous clock with + prescaler division by 12 */ +#define LL_ADC_CLOCK_ASYNC_DIV16 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_1 \ + | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with + prescaler division by 16 */ +#define LL_ADC_CLOCK_ASYNC_DIV32 (ADC_CCR_PRESC_3) /*!< ADC asynchronous clock with + prescaler division by 32 */ +#define LL_ADC_CLOCK_ASYNC_DIV64 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with + prescaler division by 64 */ +#define LL_ADC_CLOCK_ASYNC_DIV128 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_1) /*!< ADC asynchronous clock with + prescaler division by 128 */ +#define LL_ADC_CLOCK_ASYNC_DIV256 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_1 \ + | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with + prescaler division by 256 */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels + * @{ + */ +/* Note: Other measurement paths to internal channels may be available */ +/* (connections to other peripherals). */ +/* If they are not listed below, they do not require any specific */ +/* path enable. In this case, Access to measurement path is done */ +/* only by selecting the corresponding ADC internal channel. */ +#define LL_ADC_PATH_INTERNAL_NONE (0x00000000UL) /*!< ADC measurement paths all disabled */ +#define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CCR_VREFEN) /*!< ADC measurement path to internal channel VrefInt */ +#define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CCR_VSENSESEL) /*!< ADC measurement path to internal channel + temperature sensor */ +#define LL_ADC_PATH_INTERNAL_VBAT (ADC_CCR_VBATSEL) /*!< ADC measurement path to internal channel Vbat */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution + * @{ + */ +#define LL_ADC_RESOLUTION_12B (0x00000000UL) /*!< ADC resolution 12 bits */ +#define LL_ADC_RESOLUTION_10B ( ADC_CFGR_RES_0) /*!< ADC resolution 10 bits */ +#define LL_ADC_RESOLUTION_8B (ADC_CFGR_RES_1 ) /*!< ADC resolution 8 bits */ +#define LL_ADC_RESOLUTION_6B (ADC_CFGR_RES_1 | ADC_CFGR_RES_0) /*!< ADC resolution 6 bits */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment + * @{ + */ +#define LL_ADC_DATA_ALIGN_RIGHT (0x00000000UL) /*!< ADC conversion data alignment: right aligned + (alignment on data register LSB bit 0)*/ +#define LL_ADC_DATA_ALIGN_LEFT (ADC_CFGR_ALIGN) /*!< ADC conversion data alignment: left aligned + (alignment on data register MSB bit 15)*/ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_LP_MODE ADC instance - Low power mode + * @{ + */ +#define LL_ADC_LP_MODE_NONE (0x00000000UL) /*!< No ADC low power mode activated */ +#define LL_ADC_LP_AUTOWAIT (ADC_CFGR_AUTDLY) /*!< ADC low power mode auto delay: Dynamic low power + mode, ADC conversions are performed only when necessary + (when previous ADC conversion data is read). + See description with function @ref LL_ADC_SetLowPowerMode(). */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OFFSET_NB ADC instance - Offset instance + * @{ + */ +#define LL_ADC_OFFSET_1 ADC_OFR1_REGOFFSET /*!< ADC offset instance 1: ADC channel and offset level + to which the offset programmed will be applied (independently of channel + mapped on ADC group regular or injected) */ +#define LL_ADC_OFFSET_2 ADC_OFR2_REGOFFSET /*!< ADC offset instance 2: ADC channel and offset level + to which the offset programmed will be applied (independently of channel + mapped on ADC group regular or injected) */ +#define LL_ADC_OFFSET_3 ADC_OFR3_REGOFFSET /*!< ADC offset instance 3: ADC channel and offset level + to which the offset programmed will be applied (independently of channel + mapped on ADC group regular or injected) */ +#define LL_ADC_OFFSET_4 ADC_OFR4_REGOFFSET /*!< ADC offset instance 4: ADC channel and offset level + to which the offset programmed will be applied (independently of channel + mapped on ADC group regular or injected) */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OFFSET_STATE ADC instance - Offset state + * @{ + */ +#define LL_ADC_OFFSET_DISABLE (0x00000000UL) /*!< ADC offset disabled + (setting offset instance wise) */ +#define LL_ADC_OFFSET_ENABLE (ADC_OFR1_OFFSET1_EN) /*!< ADC offset enabled + (setting offset instance wise) */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OFFSET_SIGN ADC instance - Offset sign + * @{ + */ +#define LL_ADC_OFFSET_SIGN_NEGATIVE (0x00000000UL) /*!< ADC offset is negative */ +#define LL_ADC_OFFSET_SIGN_POSITIVE (ADC_OFR1_OFFSETPOS) /*!< ADC offset is positive */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OFFSET_SATURATION ADC instance - Offset saturation mode + * @{ + */ +#define LL_ADC_OFFSET_SATURATION_DISABLE (0x00000000UL) /*!< ADC offset saturation is disabled (among ADC + selected offset instance 1, 2, 3 or 4) */ +#define LL_ADC_OFFSET_SATURATION_ENABLE (ADC_OFR1_SATEN) /*!< ADC offset saturation is enabled (among ADC + selected offset instance 1, 2, 3 or 4) */ +/** + * @} + */ +/** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups + * @{ + */ +#define LL_ADC_GROUP_REGULAR (0x00000001UL) /*!< ADC group regular (available on all STM32 devices) */ +#define LL_ADC_GROUP_INJECTED (0x00000002UL) /*!< ADC group injected (not available on all STM32 + devices)*/ +#define LL_ADC_GROUP_REGULAR_INJECTED (0x00000003UL) /*!< ADC both groups regular and injected */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number + * @{ + */ +#define LL_ADC_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP \ + | ADC_CHANNEL_0_BITFIELD) /*!< ADC channel ADCx_IN0 */ +#define LL_ADC_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP \ + | ADC_CHANNEL_1_BITFIELD) /*!< ADC channel ADCx_IN1 */ +#define LL_ADC_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP \ + | ADC_CHANNEL_2_BITFIELD) /*!< ADC channel ADCx_IN2 */ +#define LL_ADC_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP \ + | ADC_CHANNEL_3_BITFIELD) /*!< ADC channel ADCx_IN3 */ +#define LL_ADC_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP \ + | ADC_CHANNEL_4_BITFIELD) /*!< ADC channel ADCx_IN4 */ +#define LL_ADC_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP \ + | ADC_CHANNEL_5_BITFIELD) /*!< ADC channel ADCx_IN5 */ +#define LL_ADC_CHANNEL_6 (ADC_CHANNEL_6_NUMBER | ADC_CHANNEL_6_SMP \ + | ADC_CHANNEL_6_BITFIELD) /*!< ADC channel ADCx_IN6 */ +#define LL_ADC_CHANNEL_7 (ADC_CHANNEL_7_NUMBER | ADC_CHANNEL_7_SMP \ + | ADC_CHANNEL_7_BITFIELD) /*!< ADC channel ADCx_IN7 */ +#define LL_ADC_CHANNEL_8 (ADC_CHANNEL_8_NUMBER | ADC_CHANNEL_8_SMP \ + | ADC_CHANNEL_8_BITFIELD) /*!< ADC channel ADCx_IN8 */ +#define LL_ADC_CHANNEL_9 (ADC_CHANNEL_9_NUMBER | ADC_CHANNEL_9_SMP \ + | ADC_CHANNEL_9_BITFIELD) /*!< ADC channel ADCx_IN9 */ +#define LL_ADC_CHANNEL_10 (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP \ + | ADC_CHANNEL_10_BITFIELD) /*!< ADC channel ADCx_IN10 */ +#define LL_ADC_CHANNEL_11 (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP \ + | ADC_CHANNEL_11_BITFIELD) /*!< ADC channel ADCx_IN11 */ +#define LL_ADC_CHANNEL_12 (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP \ + | ADC_CHANNEL_12_BITFIELD) /*!< ADC channel ADCx_IN12 */ +#define LL_ADC_CHANNEL_13 (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP \ + | ADC_CHANNEL_13_BITFIELD) /*!< ADC channel ADCx_IN13 */ +#define LL_ADC_CHANNEL_14 (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP \ + | ADC_CHANNEL_14_BITFIELD) /*!< ADC channel ADCx_IN14 */ +#define LL_ADC_CHANNEL_15 (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP \ + | ADC_CHANNEL_15_BITFIELD) /*!< ADC channel ADCx_IN15 */ +#define LL_ADC_CHANNEL_16 (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP | \ + ADC_CHANNEL_16_BITFIELD) /*!< ADC channel ADCx_IN16 */ +#define LL_ADC_CHANNEL_17 (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP | \ + ADC_CHANNEL_17_BITFIELD) /*!< ADC channel ADCx_IN17 */ +#define LL_ADC_CHANNEL_18 (ADC_CHANNEL_18_NUMBER | ADC_CHANNEL_18_SMP | \ + ADC_CHANNEL_18_BITFIELD) /*!< ADC channel ADCx_IN18 */ +#define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel + connected to VrefInt: Internal voltage reference. + On this STM32 series, ADC channel available on all instances but ADC2. */ +#define LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel + connected to internal temperature sensor. + On this STM32 series, ADC channel available only on ADC1 instance. */ +#define LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (LL_ADC_CHANNEL_4 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel + connected to internal temperature sensor. + On this STM32 series, ADC channel available only on ADC5 instance. + Refer to device datasheet for ADC5 availability */ +#define LL_ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel + connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 + to have channel voltage always below Vdda. On this STM32 series, ADC channel + available on all ADC instances but ADC2 & ADC4. Refer to device datasheet + for ADC4 availability */ +#define LL_ADC_CHANNEL_VOPAMP1 (LL_ADC_CHANNEL_13 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel + connected to OPAMP1 output. + On this STM32 series, ADC channel available only on ADC1 instance. */ +#define LL_ADC_CHANNEL_VOPAMP2 (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH | \ + ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to OPAMP2 + output. On this STM32 series, ADC channel available only on ADC2 instance. */ +#define LL_ADC_CHANNEL_VOPAMP3_ADC2 (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH | \ + ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to OPAMP3 + output. On this STM32 series, ADC channel available only on ADC2 instance. */ +#define LL_ADC_CHANNEL_VOPAMP3_ADC3 (LL_ADC_CHANNEL_13 | ADC_CHANNEL_ID_INTERNAL_CH | \ + ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to OPAMP3 + output. On this STM32 series, ADC channel available only on ADC3 instance. + Refer to device datasheet for ADC3 availability */ +#define LL_ADC_CHANNEL_VOPAMP4 (LL_ADC_CHANNEL_5 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel +connected to OPAMP4 output. On this STM32 series, ADC channel available only on ADC5 instance. +Refer to device datasheet for ADC5 & OPAMP4 availability */ +#define LL_ADC_CHANNEL_VOPAMP5 (LL_ADC_CHANNEL_3 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel +connected to OPAMP5 output. On this STM32 series, ADC channel available only on ADC5 instance. +Refer to device datasheet for ADC5 & OPAMP5 availability */ +#define LL_ADC_CHANNEL_VOPAMP6 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | \ + ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel + connected to OPAMP6 output. + On this STM32 series, ADC channel available only on ADC4 instance. + Refer to device datasheet for ADC4 & OPAMP6 availability */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source + * @{ + */ +#define LL_ADC_REG_TRIG_SOFTWARE (0x00000000UL) /*!< ADC group regular + conversion trigger internal: SW start. */ +#define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM1 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM1 TRGO2. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM1_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM1 channel 1 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances */ +#define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM1 channel 2 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances */ +#define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM1 channel 3 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM2 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM2_CH1 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< + conversion trigger from external peripheral: TIM2 channel 1 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM2 channel 2 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances */ +#define LL_ADC_REG_TRIG_EXT_TIM2_CH3 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM2 channel 3 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM3 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM3_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM3 channel 1 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM3 channel 4 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances */ +#define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM4 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM4_CH1 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM4 channel 1 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_REG_TRIG_EXT_TIM4_CH4 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM4 channel 4 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances */ +#define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM6 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM7_TRGO (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< + conversion trigger from external peripheral: TIM7 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM8_TRGO (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM8 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM8 TRGO2. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM8_CH1 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM8 channel 1 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM15 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_REG_TRIG_EXT_TIM20_TRGO (ADC_CFGR_EXTSEL_4 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM20 TRGO. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, TIM20 is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM20 TRGO2. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, TIM20 is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_TIM20_CH1 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_1 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM20 channel 1 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, TIM20 is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_TIM20_CH2 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_1 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM20 channel 2 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances, and TIM20 is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_TIM20_CH3 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: TIM20 channel 3 event (capture + compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances, and TIM20 is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 1 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_1 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 2 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances, and HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 3 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 4 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances, and HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | \ + ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 5 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 6 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 7 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 8 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 9 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: HRTIMER ADC trigger 10 event. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. + Refer to device datasheet for more details */ +#define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: external interrupt line 11. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC1/2 instances */ +#define LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: external interrupt line 2. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on + ADC3/4/5 instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_REG_TRIG_EXT_LPTIM_OUT (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | \ + ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | \ + ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular + conversion trigger from external peripheral: LPTIMER OUT event. + Trigger edge set to rising edge (default setting). */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge + * @{ + */ +#define LL_ADC_REG_TRIG_EXT_RISING (ADC_CFGR_EXTEN_0) /*!< ADC group regular conversion + trigger polarity set to rising edge */ +#define LL_ADC_REG_TRIG_EXT_FALLING (ADC_CFGR_EXTEN_1) /*!< ADC group regular conversion + trigger polarity set to falling edge */ +#define LL_ADC_REG_TRIG_EXT_RISINGFALLING (ADC_CFGR_EXTEN_1 | ADC_CFGR_EXTEN_0) /*!< ADC group regular conversion + trigger polarity set to both rising and falling edges */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_SAMPLING_MODE ADC group regular - Sampling mode + * @{ + */ +#define LL_ADC_REG_SAMPLING_MODE_NORMAL (0x00000000UL) /*!< ADC conversions sampling phase duration + is defined using @ref ADC_LL_EC_CHANNEL_SAMPLINGTIME */ +#define LL_ADC_REG_SAMPLING_MODE_BULB (ADC_CFGR2_BULB) /*!< ADC conversions sampling phase starts + immediately after end of conversion, and stops upon trigger event. + Note: First conversion is using minimal sampling time + (see @ref ADC_LL_EC_CHANNEL_SAMPLINGTIME) */ +#define LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED (ADC_CFGR2_SMPTRIG) /*!< ADC conversions sampling phase is + controlled by trigger events: trigger rising edge for start sampling, + trigger falling edge for stop sampling and start conversion */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode + * @{ + */ +#define LL_ADC_REG_CONV_SINGLE (0x00000000UL) /*!< ADC conversions performed in single mode: + one conversion per trigger */ +#define LL_ADC_REG_CONV_CONTINUOUS (ADC_CFGR_CONT) /*!< ADC conversions performed in continuous mode: + after the first trigger, following conversions launched successively + automatically */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer of ADC conversion data + * @{ + */ +#define LL_ADC_REG_DMA_TRANSFER_NONE (0x00000000UL) /*!< ADC conversions are not transferred by DMA */ +#define LL_ADC_REG_DMA_TRANSFER_LIMITED (ADC_CFGR_DMAEN) /*!< ADC conversion data are transferred by DMA + in limited mode (one shot mode): DMA transfer requests are stopped when + number of DMA data transfers (number of ADC conversions) is reached. + This ADC mode is intended to be used with DMA mode non-circular. */ +#define LL_ADC_REG_DMA_TRANSFER_UNLIMITED (ADC_CFGR_DMACFG | ADC_CFGR_DMAEN) /*!< ADC conversion data are + transferred by DMA, in unlimited mode: DMA transfer requests are unlimited, + whatever number of DMA data transferred (number of ADC conversions). + This ADC mode is intended to be used with DMA mode circular. */ +/** + * @} + */ + +#if defined(ADC_SMPR1_SMPPLUS) +/** @defgroup ADC_LL_EC_SAMPLINGTIME_COMMON_CONFIG ADC instance - ADC sampling time common configuration + * @{ + */ +#define LL_ADC_SAMPLINGTIME_COMMON_DEFAULT (0x00000000UL) /*!< ADC sampling time let to default settings. */ +#define LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 (ADC_SMPR1_SMPPLUS) /*!< ADC additional sampling time 3.5 ADC clock + cycles replacing 2.5 ADC clock cycles (this applies to all channels mapped + with selection sampling time 2.5 ADC clock cycles, whatever channels mapped + on ADC groups regular or injected). */ +/** + * @} + */ +#endif /* ADC_SMPR1_SMPPLUS */ + +/** @defgroup ADC_LL_EC_REG_OVR_DATA_BEHAVIOR ADC group regular - Overrun behavior on conversion data + * @{ + */ +#define LL_ADC_REG_OVR_DATA_PRESERVED (0x00000000UL) /*!< ADC group regular behavior in case of overrun: + data preserved */ +#define LL_ADC_REG_OVR_DATA_OVERWRITTEN (ADC_CFGR_OVRMOD) /*!< ADC group regular behavior in case of overrun: + data overwritten */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length + * @{ + */ +#define LL_ADC_REG_SEQ_SCAN_DISABLE (0x00000000UL) /*!< ADC group regular sequencer disable + (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS (ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 2 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS (ADC_SQR1_L_1) /*!< ADC group regular sequencer enable + with 3 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS (ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 4 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS (ADC_SQR1_L_2) /*!< ADC group regular sequencer enable + with 5 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS (ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 6 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS (ADC_SQR1_L_2 | ADC_SQR1_L_1) /*!< ADC group regular sequencer enable + with 7 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS (ADC_SQR1_L_2 | ADC_SQR1_L_1 \ + | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 8 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3) /*!< ADC group regular sequencer enable + with 9 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 10 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1) /*!< ADC group regular sequencer enable + with 11 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 \ + | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 12 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2) /*!< ADC group regular sequencer enable + with 13 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 \ + | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 14 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 \ + | ADC_SQR1_L_1) /*!< ADC group regular sequencerenable + with 15 ranks in the sequence */ +#define LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 \ + | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable + with 16 ranks in the sequence */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode + * @{ + */ +#define LL_ADC_REG_SEQ_DISCONT_DISABLE (0x00000000UL) /*!< ADC group regular sequencer + discontinuous mode disable */ +#define LL_ADC_REG_SEQ_DISCONT_1RANK (ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every rank */ +#define LL_ADC_REG_SEQ_DISCONT_2RANKS (ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enabled with sequence interruption every 2 ranks */ +#define LL_ADC_REG_SEQ_DISCONT_3RANKS (ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every 3 ranks */ +#define LL_ADC_REG_SEQ_DISCONT_4RANKS (ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCNUM_0 \ + | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every 4 ranks */ +#define LL_ADC_REG_SEQ_DISCONT_5RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every 5 ranks */ +#define LL_ADC_REG_SEQ_DISCONT_6RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_0 \ + | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every 6 ranks */ +#define LL_ADC_REG_SEQ_DISCONT_7RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_1 \ + | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every 7 ranks */ +#define LL_ADC_REG_SEQ_DISCONT_8RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_1 \ + | ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer + discontinuous mode enable with sequence interruption every 8 ranks */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks + * @{ + */ +#define LL_ADC_REG_RANK_1 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 1 */ +#define LL_ADC_REG_RANK_2 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 2 */ +#define LL_ADC_REG_RANK_3 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 3 */ +#define LL_ADC_REG_RANK_4 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 4 */ +#define LL_ADC_REG_RANK_5 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 5 */ +#define LL_ADC_REG_RANK_6 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 6 */ +#define LL_ADC_REG_RANK_7 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 7 */ +#define LL_ADC_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 8 */ +#define LL_ADC_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 9 */ +#define LL_ADC_REG_RANK_10 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 10 */ +#define LL_ADC_REG_RANK_11 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 11 */ +#define LL_ADC_REG_RANK_12 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 12 */ +#define LL_ADC_REG_RANK_13 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 13 */ +#define LL_ADC_REG_RANK_14 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 14 */ +#define LL_ADC_REG_RANK_15 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 15 */ +#define LL_ADC_REG_RANK_16 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group + regular sequencer rank 16 */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source + * @{ + */ +#define LL_ADC_INJ_TRIG_SOFTWARE (0x00000000UL) /*!< ADC group injected + conversion trigger internal: SW start. */ +#define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM1 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM1 TRGO2. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM1 + channel 3 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM1 + channel 4 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM2 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM2 + channel 1 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC1/2 + instances */ +#define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM3 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM3 + channel 1 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC1/2 + instances */ +#define LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM3 + channel 3 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC1/2 + instances */ +#define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM3 + channel 4 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC1/2 + instances */ +#define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM4 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM4 + channel 3 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM4 + channel 4 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM6 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM7_TRGO (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM7 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM8 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM8 TRGO2. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM8 + channel 2 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_INJ_TRIG_EXT_TIM8_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM8 + channel 4 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM15 TRGO. + Trigger edge set to rising edge (default setting). */ +#define LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM8 + channel 4 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC1/2 + instances */ +#define LL_ADC_INJ_TRIG_EXT_TIM20_TRGO (ADC_JSQR_JEXTSEL_4 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM20 TRGO. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, TIM20 is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_0 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM20 TRGO2. + Trigger edge set to rising edge (default setting). + Note: On this STM32 series, TIM20 is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_1 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM20 + channel 2 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Trigger available only on ADC3/4/5 instances. On this STM32 series, TIM20 is + not available on all devices. Refer to device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_1 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: TIM20 + channel 4 event (capture compare: input capture or output capture). + Trigger edge set to rising edge (default setting). + Trigger available only on ADC1/2 instances. On this STM32 series, TIM20 is + not available on all devices. Refer to device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER + ADC trigger 1 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances, and HRTIM is not available on all devices. Refer to device + datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_1 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 2 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER + ADC trigger 3 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances, and HRTIM is not available on all devices. Refer to device + datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 4 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 5 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 6 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 7 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 8 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 9 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices. Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: HRTIMER ADC + trigger 10 event. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, HRTIM is not available on all devices.Refer to + device datasheet for more details */ +#define LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | \ + ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: external + interrupt line 3. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC3/4/5 + instances. Refer to device datasheet for ADCx availability */ +#define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | \ + ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: external + interrupt line 15. Trigger edge set to rising edge (default setting). + Note: On this STM32 series, this trigger is available only on ADC1/2 + instances. */ +#define LL_ADC_INJ_TRIG_EXT_LPTIM_OUT (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | \ + ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< + ADC group injected conversion trigger from external peripheral: LPTIMER OUT + event. Trigger edge set to rising edge (default setting). */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge + * @{ + */ +#define LL_ADC_INJ_TRIG_EXT_RISING ( ADC_JSQR_JEXTEN_0) /*!< ADC group injected conversion + trigger polarity set to rising edge */ +#define LL_ADC_INJ_TRIG_EXT_FALLING (ADC_JSQR_JEXTEN_1 ) /*!< ADC group injected conversion + trigger polarity set to falling edge */ +#define LL_ADC_INJ_TRIG_EXT_RISINGFALLING (ADC_JSQR_JEXTEN_1 | ADC_JSQR_JEXTEN_0) /*!< ADC group injected conversion + trigger polarity set to both rising and falling edges */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode + * @{ + */ +#define LL_ADC_INJ_TRIG_INDEPENDENT (0x00000000UL) /*!< ADC group injected conversion trigger independent. + Setting mandatory if ADC group injected injected trigger source is set to + an external trigger. */ +#define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR (ADC_CFGR_JAUTO) /*!< ADC group injected conversion trigger from ADC group + regular. Setting compliant only with group injected trigger source set to + SW start, without any further action on ADC group injected conversion start + or stop: in this case, ADC group injected is controlled only from ADC group + regular. */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_CONTEXT_QUEUE ADC group injected - Context queue mode + * @{ + */ +#define LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE (0x00000000UL) /* Group injected sequence context queue is enabled + and can contain up to 2 contexts. When all contexts have been processed, + the queue maintains the last context active perpetually. */ +#define LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY (ADC_CFGR_JQM) /* Group injected sequence context queue is enabled + and can contain up to 2 contexts. When all contexts have been processed, + the queue is empty and injected group triggers are disabled. */ +#define LL_ADC_INJ_QUEUE_DISABLE (ADC_CFGR_JQDIS) /* Group injected sequence context queue is disabled: + only 1 sequence can be configured and is active perpetually. */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length + * @{ + */ +#define LL_ADC_INJ_SEQ_SCAN_DISABLE (0x00000000UL) /*!< ADC group injected sequencer disable + (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */ +#define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable + with 2 ranks in the sequence */ +#define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected sequencer enable + with 3 ranks in the sequence */ +#define LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS (ADC_JSQR_JL_1 | ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable + with 4 ranks in the sequence */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode + * @{ + */ +#define LL_ADC_INJ_SEQ_DISCONT_DISABLE (0x00000000UL) /*!< ADC group injected sequencer discontinuous mode + disable */ +#define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CFGR_JDISCEN) /*!< ADC group injected sequencer discontinuous mode + enable with sequence interruption every rank */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks + * @{ + */ +#define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET \ + | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) /*!< ADC group inj. sequencer rank 1 */ +#define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET \ + | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) /*!< ADC group inj. sequencer rank 2 */ +#define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET \ + | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) /*!< ADC group inj. sequencer rank 3 */ +#define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET \ + | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) /*!< ADC group inj. sequencer rank 4 */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time + * @{ + */ +#define LL_ADC_SAMPLINGTIME_2CYCLES_5 (0x00000000UL) /*!< Sampling time 2.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_6CYCLES_5 (ADC_SMPR2_SMP10_0) /*!< Sampling time 6.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_12CYCLES_5 (ADC_SMPR2_SMP10_1) /*!< Sampling time 12.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_24CYCLES_5 (ADC_SMPR2_SMP10_1 \ + | ADC_SMPR2_SMP10_0) /*!< Sampling time 24.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_47CYCLES_5 (ADC_SMPR2_SMP10_2) /*!< Sampling time 47.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_92CYCLES_5 (ADC_SMPR2_SMP10_2 \ + | ADC_SMPR2_SMP10_0) /*!< Sampling time 92.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_247CYCLES_5 (ADC_SMPR2_SMP10_2 \ + | ADC_SMPR2_SMP10_1) /*!< Sampling time 247.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_640CYCLES_5 (ADC_SMPR2_SMP10_2 \ + | ADC_SMPR2_SMP10_1 \ + | ADC_SMPR2_SMP10_0) /*!< Sampling time 640.5 ADC clock cycles */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_CHANNEL_SINGLE_DIFF_ENDING Channel - Single or differential ending + * @{ + */ +#define LL_ADC_SINGLE_ENDED ( ADC_CALFACT_CALFACT_S) /*!< ADC channel ending + set to single ended (literal also used to set calibration mode) */ +#define LL_ADC_DIFFERENTIAL_ENDED (ADC_CR_ADCALDIF | ADC_CALFACT_CALFACT_D) /*!< ADC channel ending + set to differential (literal also used to set calibration mode) */ +#define LL_ADC_BOTH_SINGLE_DIFF_ENDED (LL_ADC_SINGLE_ENDED | LL_ADC_DIFFERENTIAL_ENDED) /*!< ADC channel ending + set to both single ended and differential (literal used only to set + calibration factors) */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number + * @{ + */ +#define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK \ + | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */ +#define LL_ADC_AWD2 (ADC_AWD_CR23_CHANNEL_MASK \ + | ADC_AWD_CR2_REGOFFSET) /*!< ADC analog watchdog number 2 */ +#define LL_ADC_AWD3 (ADC_AWD_CR23_CHANNEL_MASK \ + | ADC_AWD_CR3_REGOFFSET) /*!< ADC analog watchdog number 3 */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels + * @{ + */ +#define LL_ADC_AWD_DISABLE (0x00000000UL) /*!< ADC analog watchdog monitoring + disabled */ +#define LL_ADC_AWD_ALL_CHANNELS_REG (ADC_AWD_CR23_CHANNEL_MASK \ + | ADC_CFGR_AWD1EN) /*!< ADC analog watchdog monitoring + of all channels, converted by group regular only */ +#define LL_ADC_AWD_ALL_CHANNELS_INJ (ADC_AWD_CR23_CHANNEL_MASK \ + | ADC_CFGR_JAWD1EN) /*!< ADC analog watchdog monitoring + of all channels, converted by group injected only */ +#define LL_ADC_AWD_ALL_CHANNELS_REG_INJ (ADC_AWD_CR23_CHANNEL_MASK \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN) /*!< ADC analog watchdog monitoring + of all channels, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_0_REG ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN0, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_0_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN0, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_0_REG_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN0, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_1_REG ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN1, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_1_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN1, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_1_REG_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN1, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_2_REG ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN2, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_2_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN2, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_2_REG_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN2, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_3_REG ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN3, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_3_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN3, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_3_REG_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN3, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_4_REG ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN4, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_4_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN4, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_4_REG_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN4, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_5_REG ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN5, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_5_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN5, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_5_REG_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN5, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_6_REG ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN6, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_6_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN6, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_6_REG_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN6, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_7_REG ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN7, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_7_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN7, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_7_REG_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN7, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_8_REG ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN8, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_8_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN8, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_8_REG_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN8, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_9_REG ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN9, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_9_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN9, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_9_REG_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN9, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_10_REG ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN10, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_10_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN10, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_10_REG_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK)\ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN10, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_11_REG ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN11, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_11_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN11, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_11_REG_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN11, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_12_REG ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN12, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_12_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN12, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_12_REG_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN12, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_13_REG ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN13, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_13_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN13, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_13_REG_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN13, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_14_REG ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN14, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_14_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN14, converted by group only */ +#define LL_ADC_AWD_CHANNEL_14_REG_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN14, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_15_REG ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + monitoring of ADC channel ADCx_IN15, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_15_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN15, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_15_REG_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN15, converted by either group + regular or injected */ +#define LL_ADC_AWD_CHANNEL_16_REG ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN16, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_16_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN16, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_16_REG_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN16, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_17_REG ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN17, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_17_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN17, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_17_REG_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN17, converted by either group regular or injected */ +#define LL_ADC_AWD_CHANNEL_18_REG ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN18, converted by group regular only */ +#define LL_ADC_AWD_CHANNEL_18_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN18, converted by group injected only */ +#define LL_ADC_AWD_CHANNEL_18_REG_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC channel ADCx_IN18, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VREFINT_REG ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to VrefInt: Internal + voltage reference, converted by group regular only */ +#define LL_ADC_AWD_CH_VREFINT_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to VrefInt: Internal + voltage reference, converted by group injected only */ +#define LL_ADC_AWD_CH_VREFINT_REG_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to VrefInt: Internal + voltage reference, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG ((LL_ADC_CHANNEL_TEMPSENSOR_ADC1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC1 internal channel connected to internal temperature sensor, + converted by group regular only */ +#define LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog + of ADC1 internal channel connected to internal temperature sensor, + converted by group injected only */ +#define LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC1 internal channel connected to internal temperature sensor, + converted by either group regular or injected */ +#define LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG ((LL_ADC_CHANNEL_TEMPSENSOR_ADC5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC5 internal channel connected to internal temperature sensor, + converted by group regular only */ +#define LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog + of ADC5 internal channel connected to internal temperature sensor, + converted by group injected only */ +#define LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC5 internal channel connected to internal temperature sensor, + converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VBAT_REG ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to Vbat/3: Vbat + voltage through a divider ladder of factor 1/3 to have channel voltage always below + Vdda, converted by group regular only */ +#define LL_ADC_AWD_CH_VBAT_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to Vbat/3: Vbat + voltage through a divider ladder of factor 1/3 to have channel voltage always below + Vdda, converted by group injected only */ +#define LL_ADC_AWD_CH_VBAT_REG_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to Vbat/3: Vbat + voltage through a divider ladder of factor 1/3 to have channel voltage always below + Vdda */ +#define LL_ADC_AWD_CH_VOPAMP1_REG ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP1 output, + channel specific to ADC1, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP1_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP1 output, + channel specific to ADC1, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP1_REG_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP1 output, + channel specific to ADC1, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VOPAMP2_REG ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + channel specific to ADC2, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP2_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP2 output, + channel specific to ADC2, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP2_REG_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP2 output, + channel specific to ADC2, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VOPAMP3_ADC2_REG ((LL_ADC_CHANNEL_VOPAMP3_ADC2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP3 output, + channel specific to ADC2, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP3 output, + channel specific to ADC2, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC2 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP3 output, + channel specific to ADC2, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VOPAMP3_ADC3_REG ((LL_ADC_CHANNEL_VOPAMP3_ADC3 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP3 output, + channel specific to ADC3, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC3 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP3 output, + channel specific to ADC3, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC3 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP3 output, + channel specific to ADC3, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VOPAMP4_REG ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP4 output, + channel specific to ADC5, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP4_INJ ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP4 output, + channel specific to ADC5, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP4_REG_INJ ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP4 output, + channel specific to ADC5, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VOPAMP5_REG ((LL_ADC_CHANNEL_VOPAMP5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP5 output, + channel specific to ADC5, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP5_INJ ((LL_ADC_CHANNEL_VOPAMP5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP5 output, + channel specific to ADC5, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP5_REG_INJ ((LL_ADC_CHANNEL_VOPAMP5 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP5 output, + channel specific to ADC5, converted by either group regular or injected */ +#define LL_ADC_AWD_CH_VOPAMP6_REG ((LL_ADC_CHANNEL_VOPAMP6 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP6 output, + channel specific to ADC4, converted by group regular only */ +#define LL_ADC_AWD_CH_VOPAMP6_INJ ((LL_ADC_CHANNEL_VOPAMP6 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP6 output, + channel specific to ADC4, converted by group injected only */ +#define LL_ADC_AWD_CH_VOPAMP6_REG_INJ ((LL_ADC_CHANNEL_VOPAMP6 & ADC_CHANNEL_ID_MASK) \ + | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN \ + | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring + of ADC internal channel connected to OPAMP6 output, + channel specific to ADC4, converted by either group regular or injected */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds + * @{ + */ +#define LL_ADC_AWD_THRESHOLD_HIGH (ADC_TR1_HT1) /*!< ADC analog watchdog threshold high */ +#define LL_ADC_AWD_THRESHOLD_LOW (ADC_TR1_LT1) /*!< ADC analog watchdog threshold low */ +#define LL_ADC_AWD_THRESHOLDS_HIGH_LOW (ADC_TR1_HT1 \ + | ADC_TR1_LT1) /*!< ADC analog watchdog both thresholds high and low + concatenated into the same data */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_AWD_FILTERING_CONFIG Analog watchdog - filtering config + * @{ + */ +#define LL_ADC_AWD_FILTERING_NONE (0x00000000UL) /*!< ADC analog watchdog no filtering, + one out-of-window sample is needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_2SAMPLES (ADC_TR1_AWDFILT_0) /*!< ADC analog watchdog 2 + out-of-window samples are needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_3SAMPLES (ADC_TR1_AWDFILT_1) /*!< ADC analog watchdog 3 + consecutives out-of-window samples are needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_4SAMPLES (ADC_TR1_AWDFILT_1 | ADC_TR1_AWDFILT_0) /*!< ADC analog watchdog 4 + consecutives out-of-window samples are needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_5SAMPLES (ADC_TR1_AWDFILT_2) /*!< ADC analog watchdog 5 + consecutives out-of-window samples are needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_6SAMPLES (ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_0) /*!< ADC analog watchdog 6 + consecutives out-of-window samples are needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_7SAMPLES (ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_1) /*!< ADC analog watchdog 7 + consecutives out-of-window samples are needed to raise flag or interrupt */ +#define LL_ADC_AWD_FILTERING_8SAMPLES (ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_1 \ + | ADC_TR1_AWDFILT_0) /*!< ADC analog watchdog 8 + consecutives out-of-window samples are needed to raise flag or interrupt */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OVS_SCOPE Oversampling - Oversampling scope + * @{ + */ +#define LL_ADC_OVS_DISABLE (0x00000000UL) /*!< ADC oversampling disabled. */ +#define LL_ADC_OVS_GRP_REGULAR_CONTINUED (ADC_CFGR2_ROVSE) /*!< ADC oversampling on conversions of + ADC group regular. If group injected interrupts group regular: + when ADC group injected is triggered, the oversampling on ADC group regular + is temporary stopped and continued afterwards. */ +#define LL_ADC_OVS_GRP_REGULAR_RESUMED (ADC_CFGR2_ROVSM | ADC_CFGR2_ROVSE) /*!< ADC oversampling on conversions of + ADC group regular. If group injected interrupts group regular: + when ADC group injected is triggered, the oversampling on ADC group regular + is resumed from start (oversampler buffer reset). */ +#define LL_ADC_OVS_GRP_INJECTED (ADC_CFGR2_JOVSE) /*!< ADC oversampling on conversions of + ADC group injected. */ +#define LL_ADC_OVS_GRP_INJ_REG_RESUMED (ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE) /*!< ADC oversampling on conversions of + both ADC groups regular and injected. If group injected interrupting group + regular: when ADC group injected is triggered, the oversampling on ADC group + regular is resumed from start (oversampler buffer reset). */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OVS_DISCONT_MODE Oversampling - Discontinuous mode + * @{ + */ +#define LL_ADC_OVS_REG_CONT (0x00000000UL) /*!< ADC oversampling discontinuous mode: continuous mode +(all conversions of oversampling ratio are done from 1 trigger) */ +#define LL_ADC_OVS_REG_DISCONT (ADC_CFGR2_TROVS) /*!< ADC oversampling discontinuous mode: discontinuous + mode (each conversion of oversampling ratio needs a trigger) */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OVS_RATIO Oversampling - Ratio + * @{ + */ +#define LL_ADC_OVS_RATIO_2 (0x00000000UL) /*!< ADC oversampling ratio of 2 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_4 (ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 4 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_8 (ADC_CFGR2_OVSR_1) /*!< ADC oversampling ratio of 8 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_16 (ADC_CFGR2_OVSR_1 | ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 16 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_32 (ADC_CFGR2_OVSR_2) /*!< ADC oversampling ratio of 32 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_64 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 64 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_128 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_1) /*!< ADC oversampling ratio of 128 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +#define LL_ADC_OVS_RATIO_256 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_1 \ + | ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 256 + (sum of conversions data computed to result as oversampling conversion data + (before potential shift) */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_OVS_SHIFT Oversampling - Data right shift + * @{ + */ +#define LL_ADC_OVS_SHIFT_NONE (0x00000000UL) /*!< ADC oversampling no shift + (sum of the ADC conversions data is not divided to result as oversampling + conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_1 (ADC_CFGR2_OVSS_0) /*!< ADC oversampling right shift of 1 + (sum of the ADC conversions data (after OVS ratio) is divided by 2 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_2 (ADC_CFGR2_OVSS_1) /*!< ADC oversampling right shift of 2 + (sum of the ADC conversions data (after OVS ratio) is divided by 4 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_3 (ADC_CFGR2_OVSS_1 | ADC_CFGR2_OVSS_0) /*!< ADC oversampling right shift of 3 + (sum of the ADC conversions data (after OVS ratio) is divided by 8 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_4 (ADC_CFGR2_OVSS_2) /*!< ADC oversampling right shift of 4 + (sum of the ADC conversions data (after OVS ratio) is divided by 16 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_5 (ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_0) /*!< ADC oversampling right shift of 5 + (sum of the ADC conversions data (after OVS ratio) is divided by 32 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_6 (ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_1) /*!< ADC oversampling right shift of 6 + (sum of the ADC conversions data (after OVS ratio) is divided by 64 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_7 (ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_1 \ + | ADC_CFGR2_OVSS_0) /*!< ADC oversampling right shift of 7 + (sum of the ADC conversions data (after OVS ratio) is divided by 128 + to result as oversampling conversion data) */ +#define LL_ADC_OVS_SHIFT_RIGHT_8 (ADC_CFGR2_OVSS_3) /*!< ADC oversampling right shift of 8 + (sum of the ADC conversions data (after OVS ratio) is divided by 256 + to result as oversampling conversion data) */ +/** + * @} + */ + +#if defined(ADC_MULTIMODE_SUPPORT) +/** @defgroup ADC_LL_EC_MULTI_MODE Multimode - Mode + * @{ + */ +#define LL_ADC_MULTI_INDEPENDENT (0x00000000UL) /*!< ADC dual mode disabled (ADC + independent mode) */ +#define LL_ADC_MULTI_DUAL_REG_SIMULT (ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1) /*!< ADC dual mode enabled: group regular + simultaneous */ +#define LL_ADC_MULTI_DUAL_REG_INTERL (ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1 \ + | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group + regular interleaved */ +#define LL_ADC_MULTI_DUAL_INJ_SIMULT (ADC_CCR_DUAL_2 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: group injected + simultaneous */ +#define LL_ADC_MULTI_DUAL_INJ_ALTERN (ADC_CCR_DUAL_3 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: group injected + alternate trigger. Works only with external triggers (not SW start) */ +#define LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM (ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group + regular simultaneous + group injected simultaneous */ +#define LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT (ADC_CCR_DUAL_1) /*!< ADC dual mode enabled: Combined group + regular simultaneous + group injected alternate trigger */ +#define LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM (ADC_CCR_DUAL_1 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group + regular interleaved + group injected simultaneous */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER Multimode - DMA transfer + * @{ + */ +#define LL_ADC_MULTI_REG_DMA_EACH_ADC (0x00000000UL) /*!< ADC multimode group regular + conversions are transferred by DMA: each ADC uses its own DMA channel, + with its individual DMA transfer settings */ +#define LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B (ADC_CCR_MDMA_1) /*!< ADC multimode group regular + conversions are transferred by DMA, one DMA channel for both ADC(DMA of + ADC master), in limited mode (one shot mode): DMA transfer requests + are stopped when number of DMA data transfers (number of ADC conversions) + is reached. This ADC mode is intended to be used with DMA mode + non-circular. Setting for ADC resolution of 12 and 10 bits */ +#define LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B (ADC_CCR_MDMA_1 | ADC_CCR_MDMA_0) /*!< ADC multimode group regular + conversions are transferred by DMA, one DMA channel for both ADC(DMA of + ADC master), in limited mode (one shot mode): DMA transfer requests + are stopped when number of DMA data transfers (number of ADC conversions) + is reached. This ADC mode is intended to be used with DMA mode + non-circular. Setting for ADC resolution of 8 and 6 bits */ +#define LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B (ADC_CCR_DMACFG | ADC_CCR_MDMA_1) /*!< ADC multimode group regular + conversions are transferred by DMA, one DMA channel for both ADC(DMA of + ADC master), in unlimited mode: DMA transfer requests are unlimited, + whatever number of DMA data transferred (number of ADC conversions). + This ADC mode is intended to be used with DMA mode circular. + Setting for ADC resolution of 12 and 10 bits */ +#define LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B (ADC_CCR_DMACFG | ADC_CCR_MDMA_1 \ + | ADC_CCR_MDMA_0) /*!< ADC multimode group regular + conversions are transferred by DMA, one DMA channel for both ADC (DMA of + ADC master), in unlimited mode: DMA transfer requests are unlimited, + whatever number of DMA data transferred (number of ADC conversions). + This ADC mode is intended to be used with DMA mode circular. + Setting for ADC resolution of 8 and 6 bits */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY Multimode - Delay between two sampling phases + * @{ + */ +#define LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE (0x00000000UL) /*!< ADC multimode delay between two + sampling phases: 1 ADC clock cycle */ +#define LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES (ADC_CCR_DELAY_0) /*!< ADC multimode delay between two + sampling phases: 2 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES (ADC_CCR_DELAY_1) /*!< ADC multimode delay between two + sampling phases: 3 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES (ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two + sampling phases: 4 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES (ADC_CCR_DELAY_2) /*!< ADC multimode delay between two + sampling phases: 5 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two + sampling phases: 6 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1) /*!< ADC multimode delay between two + sampling phases: 7 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 \ + | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two + sampling phases: 8 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (ADC_CCR_DELAY_3) /*!< ADC multimode delay between two + sampling phases: 9 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two + sampling phases: 10 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1) /*!< ADC multimode delay between two + sampling phases: 11 ADC clock cycles */ +#define LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 \ + | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two + sampling phases: 12 ADC clock cycles */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE Multimode - ADC master or slave + * @{ + */ +#define LL_ADC_MULTI_MASTER (ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC + instances: ADC master */ +#define LL_ADC_MULTI_SLAVE (ADC_CDR_RDATA_SLV) /*!< In multimode, selection among several ADC + instances: ADC slave */ +#define LL_ADC_MULTI_MASTER_SLAVE (ADC_CDR_RDATA_SLV \ + | ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC + instances: both ADC master and ADC slave */ +/** + * @} + */ + +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** @defgroup ADC_LL_EC_HELPER_MACRO Definitions of constants used by helper macro + * @{ + */ +#define LL_ADC_TEMPERATURE_CALC_ERROR ((int16_t)0x7FFF) /* Temperature calculation error using helper macro + @ref __LL_ADC_CALC_TEMPERATURE(), due to issue on + calibration parameters. This value is coded on 16 bits + (to fit on signed word or double word) and corresponds + to an inconsistent temperature value. */ +/** + * @} + */ + +/** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays + * @note Only ADC peripheral HW delays are defined in ADC LL driver driver, + * not timeout values. + * For details on delays values, refer to descriptions in source code + * above each literal definition. + * @{ + */ + +/* Note: Only ADC peripheral HW delays are defined in ADC LL driver driver, */ +/* not timeout values. */ +/* Timeout values for ADC operations are dependent to device clock */ +/* configuration (system clock versus ADC clock), */ +/* and therefore must be defined in user application. */ +/* Indications for estimation of ADC timeout delays, for this */ +/* STM32 series: */ +/* - ADC calibration time: maximum delay is 112/fADC. */ +/* (refer to device datasheet, parameter "tCAL") */ +/* - ADC enable time: maximum delay is 1 conversion cycle. */ +/* (refer to device datasheet, parameter "tSTAB") */ +/* - ADC disable time: maximum delay should be a few ADC clock cycles */ +/* - ADC stop conversion time: maximum delay should be a few ADC clock */ +/* cycles */ +/* - ADC conversion time: duration depending on ADC clock and ADC */ +/* configuration. */ +/* (refer to device reference manual, section "Timing") */ + +/* Delay for ADC stabilization time (ADC voltage regulator start-up time) */ +/* Delay set to maximum value (refer to device datasheet, */ +/* parameter "tADCVREG_STUP"). */ +/* Unit: us */ +#define LL_ADC_DELAY_INTERNAL_REGUL_STAB_US ( 20UL) /*!< Delay for ADC stabilization time (ADC voltage + regulator start-up time) */ + +/* Delay for internal voltage reference stabilization time. */ +/* Delay set to maximum value (refer to device datasheet, */ +/* parameter "tstart_vrefint"). */ +/* Unit: us */ +#define LL_ADC_DELAY_VREFINT_STAB_US ( 12UL) /*!< Delay for internal voltage reference stabilization + time */ + +/* Delay for temperature sensor stabilization time. */ +/* Literal set to maximum value (refer to device datasheet, */ +/* parameter "tSTART"). */ +/* Unit: us */ +#define LL_ADC_DELAY_TEMPSENSOR_STAB_US (120UL) /*!< Delay for temperature sensor stabilization time */ +#define LL_ADC_DELAY_TEMPSENSOR_BUFFER_STAB_US ( 15UL) /*!< Delay for temperature sensor buffer stabilization + time (starting from ADC enable, refer to + @ref LL_ADC_Enable()) */ + +/* Delay required between ADC end of calibration and ADC enable. */ +/* Note: On this STM32 series, a minimum number of ADC clock cycles */ +/* are required between ADC end of calibration and ADC enable. */ +/* Wait time can be computed in user application by waiting for the */ +/* equivalent number of CPU cycles, by taking into account */ +/* ratio of CPU clock versus ADC clock prescalers. */ +/* Unit: ADC clock cycles. */ +#define LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES ( 4UL) /*!< Delay required between ADC end of calibration + and ADC enable */ + +/** + * @} + */ + +/** + * @} + */ + + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup ADC_LL_Exported_Macros ADC Exported Macros + * @{ + */ + +/** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in ADC register + * @param __INSTANCE__ ADC Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in ADC register + * @param __INSTANCE__ ADC Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro + * @{ + */ + +/** + * @brief Helper macro to get ADC channel number in decimal format + * from literals LL_ADC_CHANNEL_x. + * @note Example: + * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4) + * will return decimal number "4". + * @note The input can be a value from functions where a channel + * number is returned, either defined with number + * or with bitfield (only one bit must be set). + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Value between Min_Data=0 and Max_Data=18 + */ +#define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \ + ((((__CHANNEL__) & ADC_CHANNEL_ID_BITFIELD_MASK) == 0UL) ? \ + ( \ + ((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS \ + ) \ + : \ + ( \ + (uint32_t)POSITION_VAL((__CHANNEL__)) \ + ) \ + ) + +/** + * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x + * from number in decimal format. + * @note Example: + * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4) + * will return a data equivalent to "LL_ADC_CHANNEL_4". + * @param __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + */ +#define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ + (((__DECIMAL_NB__) <= 9UL) ? \ + ( \ + ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \ + (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | \ + (ADC_SMPR1_REGOFFSET | (((3UL * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \ + ) \ + : \ + ( \ + ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \ + (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | \ + (ADC_SMPR2_REGOFFSET | (((3UL * ((__DECIMAL_NB__) - 10UL))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \ + ) \ + ) + +/** + * @brief Helper macro to determine whether the selected channel + * corresponds to literal definitions of driver. + * @note The different literal definitions of ADC channels are: + * - ADC internal channel: + * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ... + * - ADC external channel (channel connected to a GPIO pin): + * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ... + * @note The channel parameter must be a value defined from literal + * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, + * LL_ADC_CHANNEL_TEMPSENSOR, ...), + * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...), + * must not be a value from functions where a channel number is + * returned from ADC registers, + * because internal and external channels share the same channel + * number in ADC registers. The differentiation is made only with + * parameters definitions of driver. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel + connected to a GPIO pin). + * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel. + */ +#define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \ + (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0UL) + +/** + * @brief Helper macro to convert a channel defined from parameter + * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, + * LL_ADC_CHANNEL_TEMPSENSOR, ...), + * to its equivalent parameter definition of a ADC external channel + * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...). + * @note The channel parameter can be, additionally to a value + * defined from parameter definition of a ADC internal channel + * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...), + * a value defined from parameter definition of + * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...) + * or a value from functions where a channel number is returned + * from ADC registers. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 + * @arg @ref LL_ADC_CHANNEL_2 + * @arg @ref LL_ADC_CHANNEL_3 + * @arg @ref LL_ADC_CHANNEL_4 + * @arg @ref LL_ADC_CHANNEL_5 + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + */ +#define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \ + ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK) + +/** + * @brief Helper macro to determine whether the internal channel + * selected is available on the ADC instance selected. + * @note The channel parameter must be a value defined from parameter + * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, + * LL_ADC_CHANNEL_TEMPSENSOR, ...), + * must not be a value defined from parameter definition of + * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...) + * or a value from functions where a channel number is + * returned from ADC registers, + * because internal and external channels share the same channel + * number in ADC registers. The differentiation is made only with + * parameters definitions of driver. + * @param __ADC_INSTANCE__ ADC instance + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * @retval Value "0" if the internal channel selected is not available on the ADC instance selected. + * Value "1" if the internal channel selected is available on the ADC instance selected. + */ +#if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +#define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ + ((((__ADC_INSTANCE__) == ADC1) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC2) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC3) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC4) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP6) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC5) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP5) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC5) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP4) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + ) +#elif defined(STM32G471xx) +#define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ + ((((__ADC_INSTANCE__) == ADC1) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC2) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC3) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + ) +#elif defined(STM32G411xB) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ + ((((__ADC_INSTANCE__) == ADC1) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC2) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ + ) \ + ) \ + ) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) || defined(STM32G411xC) +#define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ + ((((__ADC_INSTANCE__) == ADC1) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC2) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ + ) \ + ) \ + || \ + (((__ADC_INSTANCE__) == ADC3) \ + &&( \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP6) || \ + ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ + ) \ + ) \ + ) +#endif /* STM32G4xx */ + +/** + * @brief Helper macro to define ADC analog watchdog parameter: + * define a single channel to monitor with analog watchdog + * from sequencer channel and groups definition. + * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels(). + * Example: + * LL_ADC_SetAnalogWDMonitChannels( + * ADC1, LL_ADC_AWD1, + * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR)) + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + * @param __GROUP__ This parameter can be one of the following values: + * @arg @ref LL_ADC_GROUP_REGULAR + * @arg @ref LL_ADC_GROUP_INJECTED + * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_AWD_DISABLE + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ + * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0) + * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0) + * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG (0)(1) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ (0)(1) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ (1) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG (0)(5) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ (0)(5) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ (5) + * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(6) + * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(6) + * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (6) + * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1) + * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1) + * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1) + * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ (2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG (0)(3) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ (0)(3) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ (3) + * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP5_INJ (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG_INJ (5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG (0)(4) + * @arg @ref LL_ADC_AWD_CH_VOPAMP6_INJ (0)(4) + * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG_INJ (4) + * + * (0) On STM32G4, parameter available only on analog watchdog number: AWD1.\n + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + */ +#define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) \ + (((__GROUP__) == LL_ADC_GROUP_REGULAR) \ + ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) \ + : \ + ((__GROUP__) == LL_ADC_GROUP_INJECTED) \ + ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) \ + : \ + (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) \ + ) + +/** + * @brief Helper macro to set the value of ADC analog watchdog threshold high + * or low in function of ADC resolution, when ADC resolution is + * different of 12 bits. + * @note To be used with function @ref LL_ADC_ConfigAnalogWDThresholds() + * or @ref LL_ADC_SetAnalogWDThresholds(). + * Example, with a ADC resolution of 8 bits, to set the value of + * analog watchdog threshold high (on 8 bits): + * LL_ADC_SetAnalogWDThresholds + * (< ADCx param >, + * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, ) + * ); + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @param __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +#define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \ + ((__AWD_THRESHOLD__) << ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U ))) + +/** + * @brief Helper macro to get the value of ADC analog watchdog threshold high + * or low in function of ADC resolution, when ADC resolution is + * different of 12 bits. + * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds(). + * Example, with a ADC resolution of 8 bits, to get the value of + * analog watchdog threshold high (on 8 bits): + * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION + * (LL_ADC_RESOLUTION_8B, + * LL_ADC_GetAnalogWDThresholds(, LL_ADC_AWD_THRESHOLD_HIGH) + * ); + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +#define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \ + ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U ))) + +/** + * @brief Helper macro to get the ADC analog watchdog threshold high + * or low from raw value containing both thresholds concatenated. + * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds(). + * Example, to get analog watchdog threshold high from the register raw value: + * __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(LL_ADC_AWD_THRESHOLD_HIGH, ); + * @param __AWD_THRESHOLD_TYPE__ This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH + * @arg @ref LL_ADC_AWD_THRESHOLD_LOW + * @param __AWD_THRESHOLDS__ Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +#define __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(__AWD_THRESHOLD_TYPE__, __AWD_THRESHOLDS__) \ + (((__AWD_THRESHOLDS__) >> (((__AWD_THRESHOLD_TYPE__) & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH_SHIFT4)) \ + & LL_ADC_AWD_THRESHOLD_LOW) + +/** + * @brief Helper macro to set the ADC calibration value with both single ended + * and differential modes calibration factors concatenated. + * @note To be used with function @ref LL_ADC_SetCalibrationFactor(). + * Example, to set calibration factors single ended to 0x55 + * and differential ended to 0x2A: + * LL_ADC_SetCalibrationFactor( + * ADC1, + * __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(0x55, 0x2A)) + * @param __CALIB_FACTOR_SINGLE_ENDED__ Value between Min_Data=0x00 and Max_Data=0x7F + * @param __CALIB_FACTOR_DIFFERENTIAL__ Value between Min_Data=0x00 and Max_Data=0x7F + * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF + */ +#define __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(__CALIB_FACTOR_SINGLE_ENDED__, __CALIB_FACTOR_DIFFERENTIAL__) \ + (((__CALIB_FACTOR_DIFFERENTIAL__) << ADC_CALFACT_CALFACT_D_Pos) | (__CALIB_FACTOR_SINGLE_ENDED__)) + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Helper macro to get the ADC multimode conversion data of ADC master + * or ADC slave from raw value with both ADC conversion data concatenated. + * @note This macro is intended to be used when multimode transfer by DMA + * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer(). + * In this case the transferred data need to processed with this macro + * to separate the conversion data of ADC master and ADC slave. + * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values: + * @arg @ref LL_ADC_MULTI_MASTER + * @arg @ref LL_ADC_MULTI_SLAVE + * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +#define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \ + (((__ADC_MULTI_CONV_DATA__) >> ((ADC_CDR_RDATA_SLV_Pos) & ~(__ADC_MULTI_MASTER_SLAVE__))) & ADC_CDR_RDATA_MST) +#endif /* ADC_MULTIMODE_SUPPORT */ + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Helper macro to select, from a ADC instance, to which ADC instance + * it has a dependence in multimode (ADC master of the corresponding + * ADC common instance). + * @note In case of device with multimode available and a mix of + * ADC instances compliant and not compliant with multimode feature, + * ADC instances not compliant with multimode feature are + * considered as master instances (do not depend to + * any other ADC instance). + * @param __ADCx__ ADC instance + * @retval __ADCx__ ADC instance master of the corresponding ADC common instance + */ +#if defined(ADC5) +#define __LL_ADC_MULTI_INSTANCE_MASTER(__ADCx__) \ + ( ( ((__ADCx__) == ADC2) \ + )? \ + (ADC1) \ + : \ + ( ( ((__ADCx__) == ADC4) \ + )? \ + (ADC3) \ + : \ + (__ADCx__) \ + ) \ + ) +#else +#define __LL_ADC_MULTI_INSTANCE_MASTER(__ADCx__) \ + ( ( ((__ADCx__) == ADC2) \ + )? \ + (ADC1) \ + : \ + (__ADCx__) \ + ) +#endif /* ADC5 */ +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @brief Helper macro to select the ADC common instance + * to which is belonging the selected ADC instance. + * @note ADC common register instance can be used for: + * - Set parameters common to several ADC instances + * - Multimode (for devices with several ADC instances) + * Refer to functions having argument "ADCxy_COMMON" as parameter. + * @param __ADCx__ ADC instance + * @retval ADC common register instance + */ +#if defined(ADC345_COMMON) +#define __LL_ADC_COMMON_INSTANCE(__ADCx__) \ + ((((__ADCx__) == ADC1) || ((__ADCx__) == ADC2)) \ + ? ( \ + (ADC12_COMMON) \ + ) \ + : \ + ( \ + (ADC345_COMMON) \ + ) \ + ) +#else +#define __LL_ADC_COMMON_INSTANCE(__ADCx__) (ADC12_COMMON) +#endif /* ADC345_COMMON */ +/** + * @brief Helper macro to check if all ADC instances sharing the same + * ADC common instance are disabled. + * @note This check is required by functions with setting conditioned to + * ADC state: + * All ADC instances of the ADC common group must be disabled. + * Refer to functions having argument "ADCxy_COMMON" as parameter. + * @note On devices with only 1 ADC common instance, parameter of this macro + * is useless and can be ignored (parameter kept for compatibility + * with devices featuring several ADC common instances). + * @param __ADCXY_COMMON__ ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Value "0" if all ADC instances sharing the same ADC common instance + * are disabled. + * Value "1" if at least one ADC instance sharing the same ADC common instance + * is enabled. + */ +#if defined(ADC345_COMMON) +#if defined(ADC4) && defined(ADC5) +#define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ + (((__ADCXY_COMMON__) == ADC12_COMMON) \ + ? ( \ + (LL_ADC_IsEnabled(ADC1) | \ + LL_ADC_IsEnabled(ADC2) ) \ + ) \ + : \ + ( \ + (LL_ADC_IsEnabled(ADC3) | \ + LL_ADC_IsEnabled(ADC4) | \ + LL_ADC_IsEnabled(ADC5) ) \ + ) \ + ) +#else +#define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ + (((__ADCXY_COMMON__) == ADC12_COMMON) \ + ? ( \ + (LL_ADC_IsEnabled(ADC1) | \ + LL_ADC_IsEnabled(ADC2) ) \ + ) \ + : \ + (LL_ADC_IsEnabled(ADC3)) \ + ) +#endif /* ADC4 && ADC5 */ +#else +#define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ + (LL_ADC_IsEnabled(ADC1) | LL_ADC_IsEnabled(ADC2)) +#endif /* ADC345_COMMON */ + +/** + * @brief Helper macro to define the ADC conversion data full-scale digital + * value corresponding to the selected ADC resolution. + * @note ADC conversion data full-scale corresponds to voltage range + * determined by analog voltage references Vref+ and Vref- + * (refer to reference manual). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval ADC conversion data full-scale digital value (unit: digital value of ADC conversion data) + */ +#define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ + (0xFFFUL >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL))) + +/** + * @brief Helper macro to convert the ADC conversion data from + * a resolution to another resolution. + * @param __DATA__ ADC conversion data to be converted + * @param __ADC_RESOLUTION_CURRENT__ Resolution of the data to be converted + * This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion + * This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval ADC conversion data to the requested resolution + */ +#define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\ + __ADC_RESOLUTION_CURRENT__,\ + __ADC_RESOLUTION_TARGET__) \ +(((__DATA__) \ + << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL))) \ + >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL)) \ +) + +/** + * @brief Helper macro to calculate the voltage (unit: mVolt) + * corresponding to a ADC conversion data (unit: digital value). + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __ADC_DATA__ ADC conversion data (resolution 12 bits) + * (unit: digital value). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval ADC conversion data equivalent voltage value (unit: mVolt) + */ +#define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ + __ADC_DATA__,\ + __ADC_RESOLUTION__) \ +((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \ + / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ +) + +/** + * @brief Helper macro to calculate the voltage (unit: mVolt) + * corresponding to a ADC conversion data (unit: digital value) in + * differential ended mode. + * @note ADC data from ADC data register is unsigned and centered around + * middle code in. Converted voltage can be positive or negative + * depending on differential input voltages. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __ADC_DATA__ ADC conversion data (unit: digital value). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval ADC conversion data equivalent voltage value (unit: mVolt) + */ +#define __LL_ADC_CALC_DIFF_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ + __ADC_DATA__,\ + __ADC_RESOLUTION__)\ +((int32_t)((__ADC_DATA__) << 1U) * (int32_t)(__VREFANALOG_VOLTAGE__)\ + / (int32_t)(__LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__))\ + - (int32_t)(__VREFANALOG_VOLTAGE__)) + +/** + * @brief Helper macro to calculate analog reference voltage (Vref+) + * (unit: mVolt) from ADC conversion data of internal voltage + * reference VrefInt. + * @note Computation is using VrefInt calibration value + * stored in system memory for each device during production. + * @note This voltage depends on user board environment: voltage level + * connected to pin Vref+. + * On devices with small package, the pin Vref+ is not present + * and internally bonded to pin Vdda. + * @note On this STM32 series, calibration data of internal voltage reference + * VrefInt corresponds to a resolution of 12 bits, + * this is the recommended ADC resolution to convert voltage of + * internal voltage reference VrefInt. + * Otherwise, this macro performs the processing to scale + * ADC conversion data to 12 bits. + * @param __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits) + * of internal voltage reference VrefInt (unit: digital value). + * @param __ADC_RESOLUTION__ This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval Analog reference voltage (unit: mV) + */ +#define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\ + __ADC_RESOLUTION__) \ +(((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \ + / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \ + (__ADC_RESOLUTION__), \ + LL_ADC_RESOLUTION_12B) \ +) + +/** + * @brief Helper macro to calculate the temperature (unit: degree Celsius) + * from ADC conversion data of internal temperature sensor. + * @note Computation is using temperature sensor calibration values + * stored in system memory for each device during production. + * @note Calculation formula: + * Temperature = ((TS_ADC_DATA - TS_CAL1) + * * (TS_CAL2_TEMP - TS_CAL1_TEMP)) + * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP + * with TS_ADC_DATA = temperature sensor raw data measured by ADC + * Avg_Slope = (TS_CAL2 - TS_CAL1) + * / (TS_CAL2_TEMP - TS_CAL1_TEMP) + * TS_CAL1 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL1 (calibrated in factory) + * TS_CAL2 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL2 (calibrated in factory) + * Caution: Calculation relevancy under reserve that calibration + * parameters are correct (address and data). + * To calculate temperature using temperature sensor + * datasheet typical values (generic values less, therefore + * less accurate than calibrated values), + * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(). + * @note As calculation input, the analog reference voltage (Vref+) must be + * defined as it impacts the ADC LSB equivalent voltage. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @note On this STM32 series, calibration data of temperature sensor + * corresponds to a resolution of 12 bits, + * this is the recommended ADC resolution to convert voltage of + * temperature sensor. + * Otherwise, this macro performs the processing to scale + * ADC conversion data to 12 bits. + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal + * temperature sensor (unit: digital value). + * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature + * sensor voltage has been measured. + * This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval Temperature (unit: degree Celsius) + * In case or error, value LL_ADC_TEMPERATURE_CALC_ERROR is returned (inconsistent temperature value) + */ +#define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\ + __TEMPSENSOR_ADC_DATA__,\ + __ADC_RESOLUTION__)\ +((((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) != 0) ? \ + (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \ + (__ADC_RESOLUTION__), \ + LL_ADC_RESOLUTION_12B) \ + * (__VREFANALOG_VOLTAGE__)) \ + / TEMPSENSOR_CAL_VREFANALOG) \ + - (int32_t) *TEMPSENSOR_CAL1_ADDR) \ + ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \ + ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \ + ) + TEMPSENSOR_CAL1_TEMP \ + ) \ + : \ + ((int32_t)LL_ADC_TEMPERATURE_CALC_ERROR) \ +) + +/** + * @brief Helper macro to calculate the temperature (unit: degree Celsius) + * from ADC conversion data of internal temperature sensor. + * @note Computation is using temperature sensor typical values + * (refer to device datasheet). + * @note Calculation formula: + * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV) + * / Avg_Slope + CALx_TEMP + * with TS_ADC_DATA = temperature sensor raw data measured by ADC + * (unit: digital value) + * Avg_Slope = temperature sensor slope + * (unit: uV/Degree Celsius) + * TS_TYP_CALx_VOLT = temperature sensor digital value at + * temperature CALx_TEMP (unit: mV) + * Caution: Calculation relevancy under reserve the temperature sensor + * of the current device has characteristics in line with + * datasheet typical values. + * If temperature sensor calibration values are available on + * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()), + * temperature calculation will be more accurate using + * helper macro @ref __LL_ADC_CALC_TEMPERATURE(). + * @note As calculation input, the analog reference voltage (Vref+) must be + * defined as it impacts the ADC LSB equivalent voltage. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @note ADC measurement data must correspond to a resolution of 12 bits + * (full scale digital value 4095). If not the case, the data must be + * preliminarily rescaled to an equivalent resolution of 12 bits. + * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical value + * (unit: uV/DegCelsius). + * On STM32G4, refer to device datasheet parameter "Avg_Slope". + * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical value + * (at temperature and Vref+ defined in parameters below) (unit: mV). + * On STM32G4, refer to datasheet parameter "V30" (corresponding to TS_CAL1). + * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature sensor voltage + * (see parameter above) is corresponding (unit: mV) + * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) value (unit: mV) + * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: digital value). + * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured. + * This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval Temperature (unit: degree Celsius) + */ +#define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\ + __TEMPSENSOR_TYP_CALX_V__,\ + __TEMPSENSOR_CALX_TEMP__,\ + __VREFANALOG_VOLTAGE__,\ + __TEMPSENSOR_ADC_DATA__,\ + __ADC_RESOLUTION__) \ +(((((int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \ + / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \ + * 1000UL) \ + - \ + (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \ + * 1000UL) \ + ) \ + ) / (int32_t)(__TEMPSENSOR_TYP_AVGSLOPE__) \ + ) + (int32_t)(__TEMPSENSOR_CALX_TEMP__) \ +) + +/** + * @} + */ + +/** + * @} + */ + + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup ADC_LL_Exported_Functions ADC Exported Functions + * @{ + */ + +/** @defgroup ADC_LL_EF_DMA_Management ADC DMA management + * @{ + */ +/* Note: LL ADC functions to set DMA transfer are located into sections of */ +/* configuration of ADC instance, groups and multimode (if available): */ +/* @ref LL_ADC_REG_SetDMATransfer(), ... */ + +/** + * @brief Function to help to configure DMA transfer from ADC: retrieve the + * ADC register address from ADC instance and a list of ADC registers + * intended to be used (most commonly) with DMA transfer. + * @note These ADC registers are data registers: + * when ADC conversion data is available in ADC data registers, + * ADC generates a DMA transfer request. + * @note This macro is intended to be used with LL DMA driver, refer to + * function "LL_DMA_ConfigAddresses()". + * Example: + * LL_DMA_ConfigAddresses(DMA1, + * LL_DMA_CHANNEL_1, + * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA), + * (uint32_t)&< array or variable >, + * LL_DMA_DIRECTION_PERIPH_TO_MEMORY); + * @note For devices with several ADC: in multimode, some devices + * use a different data register outside of ADC instance scope + * (common data register). This macro manages this register difference, + * only ADC instance has to be set as parameter. + * @rmtoll DR RDATA LL_ADC_DMA_GetRegAddr\n + * CDR RDATA_MST LL_ADC_DMA_GetRegAddr\n + * CDR RDATA_SLV LL_ADC_DMA_GetRegAddr + * @param ADCx ADC instance + * @param Register This parameter can be one of the following values: + * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA + * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1) + * + * (1) Available on devices with several ADC instances. + * @retval ADC register address + */ +#if defined(ADC_MULTIMODE_SUPPORT) +__STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(const ADC_TypeDef *ADCx, uint32_t Register) +{ + uint32_t data_reg_addr; + + if (Register == LL_ADC_DMA_REG_REGULAR_DATA) + { + /* Retrieve address of register DR */ + data_reg_addr = (uint32_t) &(ADCx->DR); + } + else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */ + { + /* Retrieve address of register CDR */ + data_reg_addr = (uint32_t) &((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR); + } + + return data_reg_addr; +} +#else +__STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(const ADC_TypeDef *ADCx, uint32_t Register) +{ + /* Prevent unused argument(s) compilation warning */ + (void)(Register); + + /* Retrieve address of register DR */ + return (uint32_t) &(ADCx->DR); +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several + * ADC instances + * @{ + */ + +/** + * @brief Set parameter common to several ADC: Clock source and prescaler. + * @note On this STM32 series, if ADC group injected is used, some + * clock ratio constraints between ADC clock and AHB clock + * must be respected. + * Refer to reference manual. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * All ADC instances of the ADC common group must be disabled. + * This check can be done with function @ref LL_ADC_IsEnabled() for each + * ADC instance or by using helper macro helper macro + * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). + * @rmtoll CCR CKMODE LL_ADC_SetCommonClock\n + * CCR PRESC LL_ADC_SetCommonClock + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param CommonClock This parameter can be one of the following values: + * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1 + * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2 + * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock) +{ + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC, CommonClock); +} + +/** + * @brief Get parameter common to several ADC: Clock source and prescaler. + * @rmtoll CCR CKMODE LL_ADC_GetCommonClock\n + * CCR PRESC LL_ADC_GetCommonClock + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1 + * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2 + * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 + * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 + */ +__STATIC_INLINE uint32_t LL_ADC_GetCommonClock(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC)); +} + +/** + * @brief Set parameter common to several ADC: measurement path to + * internal channels (VrefInt, temperature sensor, ...). + * Configure all paths (overwrite current configuration). + * @note One or several values can be selected. + * Example: (LL_ADC_PATH_INTERNAL_VREFINT | + * LL_ADC_PATH_INTERNAL_TEMPSENSOR) + * The values not selected are removed from configuration. + * @note Stabilization time of measurement path to internal channel: + * After enabling internal paths, before starting ADC conversion, + * a delay is required for internal voltage reference and + * temperature sensor stabilization time. + * Refer to device datasheet. + * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US. + * Refer to literals @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US, + * @ref LL_ADC_DELAY_TEMPSENSOR_BUFFER_STAB_US. + * @note ADC internal channel sampling time constraint: + * For ADC conversion of internal channels, + * a sampling time minimum value is required. + * Refer to device datasheet. + * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalCh\n + * CCR VSENSESEL LL_ADC_SetCommonPathInternalCh\n + * CCR VBATSEL LL_ADC_SetCommonPathInternalCh + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param PathInternal This parameter can be a combination of the following values: + * @arg @ref LL_ADC_PATH_INTERNAL_NONE + * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT + * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR + * @arg @ref LL_ADC_PATH_INTERNAL_VBAT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal) +{ + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSEL, PathInternal); +} + +/** + * @brief Set parameter common to several ADC: measurement path to + * internal channels (VrefInt, temperature sensor, ...). + * Add paths to the current configuration. + * @note One or several values can be selected. + * Example: (LL_ADC_PATH_INTERNAL_VREFINT | + * LL_ADC_PATH_INTERNAL_TEMPSENSOR) + * @note Stabilization time of measurement path to internal channel: + * After enabling internal paths, before starting ADC conversion, + * a delay is required for internal voltage reference and + * temperature sensor stabilization time. + * Refer to device datasheet. + * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US. + * Refer to literals @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US, + * @ref LL_ADC_DELAY_TEMPSENSOR_BUFFER_STAB_US. + * @note ADC internal channel sampling time constraint: + * For ADC conversion of internal channels, + * a sampling time minimum value is required. + * Refer to device datasheet. + * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalChAdd\n + * CCR VSENSESEL LL_ADC_SetCommonPathInternalChAdd\n + * CCR VBATSEL LL_ADC_SetCommonPathInternalChAdd + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param PathInternal This parameter can be a combination of the following values: + * @arg @ref LL_ADC_PATH_INTERNAL_NONE + * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT + * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR + * @arg @ref LL_ADC_PATH_INTERNAL_VBAT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCommonPathInternalChAdd(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal) +{ + SET_BIT(ADCxy_COMMON->CCR, PathInternal); +} + +/** + * @brief Set parameter common to several ADC: measurement path to + * internal channels (VrefInt, temperature sensor, ...). + * Remove paths to the current configuration. + * @note One or several values can be selected. + * Example: (LL_ADC_PATH_INTERNAL_VREFINT | + * LL_ADC_PATH_INTERNAL_TEMPSENSOR) + * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalChRem\n + * CCR VSENSESEL LL_ADC_SetCommonPathInternalChRem\n + * CCR VBATSEL LL_ADC_SetCommonPathInternalChRem + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param PathInternal This parameter can be a combination of the following values: + * @arg @ref LL_ADC_PATH_INTERNAL_NONE + * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT + * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR + * @arg @ref LL_ADC_PATH_INTERNAL_VBAT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCommonPathInternalChRem(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal) +{ + CLEAR_BIT(ADCxy_COMMON->CCR, PathInternal); +} + +/** + * @brief Get parameter common to several ADC: measurement path to internal + * channels (VrefInt, temperature sensor, ...). + * @note One or several values can be selected. + * Example: (LL_ADC_PATH_INTERNAL_VREFINT | + * LL_ADC_PATH_INTERNAL_TEMPSENSOR) + * @rmtoll CCR VREFEN LL_ADC_GetCommonPathInternalCh\n + * CCR VSENSESEL LL_ADC_GetCommonPathInternalCh\n + * CCR VBATSEL LL_ADC_GetCommonPathInternalCh + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Returned value can be a combination of the following values: + * @arg @ref LL_ADC_PATH_INTERNAL_NONE + * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT + * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR + * @arg @ref LL_ADC_PATH_INTERNAL_VBAT + */ +__STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSEL)); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance + * @{ + */ + +/** + * @brief Set ADC calibration factor in the mode single-ended + * or differential (for devices with differential mode available). + * @note This function is intended to set calibration parameters + * without having to perform a new calibration using + * @ref LL_ADC_StartCalibration(). + * @note For devices with differential mode available: + * Calibration of offset is specific to each of + * single-ended and differential modes + * (calibration factor must be specified for each of these + * differential modes, if used afterwards and if the application + * requires their calibration). + * @note In case of setting calibration factors of both modes single ended + * and differential (parameter LL_ADC_BOTH_SINGLE_DIFF_ENDED): + * both calibration factors must be concatenated. + * To perform this processing, use helper macro + * @ref __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled, without calibration on going, without conversion + * on going on group regular. + * @rmtoll CALFACT CALFACT_S LL_ADC_SetCalibrationFactor\n + * CALFACT CALFACT_D LL_ADC_SetCalibrationFactor + * @param ADCx ADC instance + * @param SingleDiff This parameter can be one of the following values: + * @arg @ref LL_ADC_SINGLE_ENDED + * @arg @ref LL_ADC_DIFFERENTIAL_ENDED + * @arg @ref LL_ADC_BOTH_SINGLE_DIFF_ENDED + * @param CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x7F + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff, uint32_t CalibrationFactor) +{ + MODIFY_REG(ADCx->CALFACT, + SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK, + CalibrationFactor << (((SingleDiff & ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK) + >> ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4) + & ~(SingleDiff & ADC_CALFACT_CALFACT_S))); +} + +/** + * @brief Get ADC calibration factor in the mode single-ended + * or differential (for devices with differential mode available). + * @note Calibration factors are set by hardware after performing + * a calibration run using function @ref LL_ADC_StartCalibration(). + * @note For devices with differential mode available: + * Calibration of offset is specific to each of + * single-ended and differential modes + * @rmtoll CALFACT CALFACT_S LL_ADC_GetCalibrationFactor\n + * CALFACT CALFACT_D LL_ADC_GetCalibrationFactor + * @param ADCx ADC instance + * @param SingleDiff This parameter can be one of the following values: + * @arg @ref LL_ADC_SINGLE_ENDED + * @arg @ref LL_ADC_DIFFERENTIAL_ENDED + * @retval Value between Min_Data=0x00 and Max_Data=0x7F + */ +__STATIC_INLINE uint32_t LL_ADC_GetCalibrationFactor(const ADC_TypeDef *ADCx, uint32_t SingleDiff) +{ + /* Retrieve bits with position in register depending on parameter */ + /* "SingleDiff". */ + /* Parameter used with mask "ADC_SINGLEDIFF_CALIB_FACTOR_MASK" because */ + /* containing other bits reserved for other purpose. */ + return (uint32_t)(READ_BIT(ADCx->CALFACT, + (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) + >> ((SingleDiff & ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK) >> + ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4)); +} + +/** + * @brief Set ADC resolution. + * Refer to reference manual for alignments formats + * dependencies to ADC resolutions. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR RES LL_ADC_SetResolution + * @param ADCx ADC instance + * @param Resolution This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_RES, Resolution); +} + +/** + * @brief Get ADC resolution. + * Refer to reference manual for alignments formats + * dependencies to ADC resolutions. + * @rmtoll CFGR RES LL_ADC_GetResolution + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + */ +__STATIC_INLINE uint32_t LL_ADC_GetResolution(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_RES)); +} + +/** + * @brief Set ADC conversion data alignment. + * @note Refer to reference manual for alignments formats + * dependencies to ADC resolutions. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR ALIGN LL_ADC_SetDataAlignment + * @param ADCx ADC instance + * @param DataAlignment This parameter can be one of the following values: + * @arg @ref LL_ADC_DATA_ALIGN_RIGHT + * @arg @ref LL_ADC_DATA_ALIGN_LEFT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_ALIGN, DataAlignment); +} + +/** + * @brief Get ADC conversion data alignment. + * @note Refer to reference manual for alignments formats + * dependencies to ADC resolutions. + * @rmtoll CFGR ALIGN LL_ADC_GetDataAlignment + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_DATA_ALIGN_RIGHT + * @arg @ref LL_ADC_DATA_ALIGN_LEFT + */ +__STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_ALIGN)); +} + +/** + * @brief Set ADC low power mode. + * @note Description of ADC low power modes: + * - ADC low power mode "auto wait": Dynamic low power mode, + * ADC conversions occurrences are limited to the minimum necessary + * in order to reduce power consumption. + * New ADC conversion starts only when the previous + * unitary conversion data (for ADC group regular) + * or previous sequence conversions data (for ADC group injected) + * has been retrieved by user software. + * In the meantime, ADC remains idle: does not performs any + * other conversion. + * This mode allows to automatically adapt the ADC conversions + * triggers to the speed of the software that reads the data. + * Moreover, this avoids risk of overrun for low frequency + * applications. + * How to use this low power mode: + * - It is not recommended to use with interruption or DMA + * since these modes have to clear immediately the EOC flag + * (by CPU to free the IRQ pending event or by DMA). + * Auto wait will work but fort a very short time, discarding + * its intended benefit (except specific case of high load of CPU + * or DMA transfers which can justify usage of auto wait). + * - Do use with polling: 1. Start conversion, + * 2. Later on, when conversion data is needed: poll for end of + * conversion to ensure that conversion is completed and + * retrieve ADC conversion data. This will trig another + * ADC conversion start. + * @note With ADC low power mode "auto wait", the ADC conversion data read + * is corresponding to previous ADC conversion start, independently + * of delay during which ADC was idle. + * Therefore, the ADC conversion data may be outdated: does not + * correspond to the current voltage level on the selected + * ADC channel. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR AUTDLY LL_ADC_SetLowPowerMode + * @param ADCx ADC instance + * @param LowPowerMode This parameter can be one of the following values: + * @arg @ref LL_ADC_LP_MODE_NONE + * @arg @ref LL_ADC_LP_AUTOWAIT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetLowPowerMode(ADC_TypeDef *ADCx, uint32_t LowPowerMode) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_AUTDLY, LowPowerMode); +} + +/** + * @brief Get ADC low power mode: + * @note Description of ADC low power modes: + * - ADC low power mode "auto wait": Dynamic low power mode, + * ADC conversions occurrences are limited to the minimum necessary + * in order to reduce power consumption. + * New ADC conversion starts only when the previous + * unitary conversion data (for ADC group regular) + * or previous sequence conversions data (for ADC group injected) + * has been retrieved by user software. + * In the meantime, ADC remains idle: does not performs any + * other conversion. + * This mode allows to automatically adapt the ADC conversions + * triggers to the speed of the software that reads the data. + * Moreover, this avoids risk of overrun for low frequency + * applications. + * How to use this low power mode: + * - It is not recommended to use with interruption or DMA + * since these modes have to clear immediately the EOC flag + * (by CPU to free the IRQ pending event or by DMA). + * Auto wait will work but fort a very short time, discarding + * its intended benefit (except specific case of high load of CPU + * or DMA transfers which can justify usage of auto wait). + * - Do use with polling: 1. Start conversion, + * 2. Later on, when conversion data is needed: poll for end of + * conversion to ensure that conversion is completed and + * retrieve ADC conversion data. This will trig another + * ADC conversion start. + * @note With ADC low power mode "auto wait", the ADC conversion data read + * is corresponding to previous ADC conversion start, independently + * of delay during which ADC was idle. + * Therefore, the ADC conversion data may be outdated: does not + * correspond to the current voltage level on the selected + * ADC channel. + * @rmtoll CFGR AUTDLY LL_ADC_GetLowPowerMode + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_LP_MODE_NONE + * @arg @ref LL_ADC_LP_AUTOWAIT + */ +__STATIC_INLINE uint32_t LL_ADC_GetLowPowerMode(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_AUTDLY)); +} + +/** + * @brief Set ADC selected offset instance 1, 2, 3 or 4. + * @note This function set the 2 items of offset configuration: + * - ADC channel to which the offset programmed will be applied + * (independently of channel mapped on ADC group regular + * or group injected) + * - Offset level (offset to be subtracted from the raw + * converted data). + * @note Caution: Offset format is dependent to ADC resolution: + * offset has to be left-aligned on bit 11, the LSB (right bits) + * are set to 0. + * @note This function enables the offset, by default. It can be forced + * to disable state using function LL_ADC_SetOffsetState(). + * @note If a channel is mapped on several offsets numbers, only the offset + * with the lowest value is considered for the subtraction. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @note On STM32G4, some fast channels are available: fast analog inputs + * coming from GPIO pads (ADC_IN1..5). + * @rmtoll OFR1 OFFSET1_CH LL_ADC_SetOffset\n + * OFR1 OFFSET1 LL_ADC_SetOffset\n + * OFR1 OFFSET1_EN LL_ADC_SetOffset\n + * OFR2 OFFSET2_CH LL_ADC_SetOffset\n + * OFR2 OFFSET2 LL_ADC_SetOffset\n + * OFR2 OFFSET2_EN LL_ADC_SetOffset\n + * OFR3 OFFSET3_CH LL_ADC_SetOffset\n + * OFR3 OFFSET3 LL_ADC_SetOffset\n + * OFR3 OFFSET3_EN LL_ADC_SetOffset\n + * OFR4 OFFSET4_CH LL_ADC_SetOffset\n + * OFR4 OFFSET4 LL_ADC_SetOffset\n + * OFR4 OFFSET4_EN LL_ADC_SetOffset + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32_t OffsetLevel) +{ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + MODIFY_REG(*preg, + ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + ADC_OFR1_OFFSET1_EN | (Channel & ADC_CHANNEL_ID_NUMBER_MASK) | OffsetLevel); +} + +/** + * @brief Get for the ADC selected offset instance 1, 2, 3 or 4: + * Channel to which the offset programmed will be applied + * (independently of channel mapped on ADC group regular + * or group injected) + * @note Usage of the returned channel number: + * - To reinject this channel into another function LL_ADC_xxx: + * the returned channel number is only partly formatted on definition + * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared + * with parts of literals LL_ADC_CHANNEL_x or using + * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * Then the selected literal LL_ADC_CHANNEL_x can be used + * as parameter for another function. + * - To get the channel number in decimal format: + * process the returned value with the helper macro + * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * @note On STM32G4, some fast channels are available: fast analog inputs + * coming from GPIO pads (ADC_IN1..5). + * @rmtoll OFR1 OFFSET1_CH LL_ADC_GetOffsetChannel\n + * OFR2 OFFSET2_CH LL_ADC_GetOffsetChannel\n + * OFR3 OFFSET3_CH LL_ADC_GetOffsetChannel\n + * OFR4 OFFSET4_CH LL_ADC_GetOffsetChannel + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + */ +__STATIC_INLINE uint32_t LL_ADC_GetOffsetChannel(const ADC_TypeDef *ADCx, uint32_t Offsety) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_CH); +} + +/** + * @brief Get for the ADC selected offset instance 1, 2, 3 or 4: + * Offset level (offset to be subtracted from the raw + * converted data). + * @note Caution: Offset format is dependent to ADC resolution: + * offset has to be left-aligned on bit 11, the LSB (right bits) + * are set to 0. + * @rmtoll OFR1 OFFSET1 LL_ADC_GetOffsetLevel\n + * OFR2 OFFSET2 LL_ADC_GetOffsetLevel\n + * OFR3 OFFSET3 LL_ADC_GetOffsetLevel\n + * OFR4 OFFSET4 LL_ADC_GetOffsetLevel + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +__STATIC_INLINE uint32_t LL_ADC_GetOffsetLevel(const ADC_TypeDef *ADCx, uint32_t Offsety) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1); +} + +/** + * @brief Set for the ADC selected offset instance 1, 2, 3 or 4: + * force offset state disable or enable + * without modifying offset channel or offset value. + * @note This function should be needed only in case of offset to be + * enabled-disabled dynamically, and should not be needed in other cases: + * function LL_ADC_SetOffset() automatically enables the offset. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll OFR1 OFFSET1_EN LL_ADC_SetOffsetState\n + * OFR2 OFFSET2_EN LL_ADC_SetOffsetState\n + * OFR3 OFFSET3_EN LL_ADC_SetOffsetState\n + * OFR4 OFFSET4_EN LL_ADC_SetOffsetState + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @param OffsetState This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_DISABLE + * @arg @ref LL_ADC_OFFSET_ENABLE + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetState) +{ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + MODIFY_REG(*preg, + ADC_OFR1_OFFSET1_EN, + OffsetState); +} + +/** + * @brief Get for the ADC selected offset instance 1, 2, 3 or 4: + * offset state disabled or enabled. + * @rmtoll OFR1 OFFSET1_EN LL_ADC_GetOffsetState\n + * OFR2 OFFSET2_EN LL_ADC_GetOffsetState\n + * OFR3 OFFSET3_EN LL_ADC_GetOffsetState\n + * OFR4 OFFSET4_EN LL_ADC_GetOffsetState + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_OFFSET_DISABLE + * @arg @ref LL_ADC_OFFSET_ENABLE + */ +__STATIC_INLINE uint32_t LL_ADC_GetOffsetState(const ADC_TypeDef *ADCx, uint32_t Offsety) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_EN); +} + +/** + * @brief Set for the ADC selected offset instance 1, 2, 3 or 4: + * choose offset sign. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll OFR1 OFFSETPOS LL_ADC_SetOffsetSign\n + * OFR2 OFFSETPOS LL_ADC_SetOffsetSign\n + * OFR3 OFFSETPOS LL_ADC_SetOffsetSign\n + * OFR4 OFFSETPOS LL_ADC_SetOffsetSign + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @param OffsetSign This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE + * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffsetSign(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSign) +{ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + MODIFY_REG(*preg, + ADC_OFR1_OFFSETPOS, + OffsetSign); +} + +/** + * @brief Get for the ADC selected offset instance 1, 2, 3 or 4: + * offset sign if positive or negative. + * @rmtoll OFR1 OFFSETPOS LL_ADC_GetOffsetSign\n + * OFR2 OFFSETPOS LL_ADC_GetOffsetSign\n + * OFR3 OFFSETPOS LL_ADC_GetOffsetSign\n + * OFR4 OFFSETPOS LL_ADC_GetOffsetSign + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE + * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE + */ +__STATIC_INLINE uint32_t LL_ADC_GetOffsetSign(const ADC_TypeDef *ADCx, uint32_t Offsety) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSETPOS); +} + +/** + * @brief Set for the ADC selected offset instance 1, 2, 3 or 4: + * choose offset saturation mode. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll OFR1 SATEN LL_ADC_SetOffsetSaturation\n + * OFR2 SATEN LL_ADC_SetOffsetSaturation\n + * OFR3 SATEN LL_ADC_SetOffsetSaturation\n + * OFR4 SATEN LL_ADC_SetOffsetSaturation + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @param OffsetSaturation This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE + * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOffsetSaturation(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSaturation) +{ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + MODIFY_REG(*preg, + ADC_OFR1_SATEN, + OffsetSaturation); +} + +/** + * @brief Get for the ADC selected offset instance 1, 2, 3 or 4: + * offset saturation if enabled or disabled. + * @rmtoll OFR1 SATEN LL_ADC_GetOffsetSaturation\n + * OFR2 SATEN LL_ADC_GetOffsetSaturation\n + * OFR3 SATEN LL_ADC_GetOffsetSaturation\n + * OFR4 SATEN LL_ADC_GetOffsetSaturation + * @param ADCx ADC instance + * @param Offsety This parameter can be one of the following values: + * @arg @ref LL_ADC_OFFSET_1 + * @arg @ref LL_ADC_OFFSET_2 + * @arg @ref LL_ADC_OFFSET_3 + * @arg @ref LL_ADC_OFFSET_4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE + * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE + */ +__STATIC_INLINE uint32_t LL_ADC_GetOffsetSaturation(const ADC_TypeDef *ADCx, uint32_t Offsety) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + + return (uint32_t) READ_BIT(*preg, ADC_OFR1_SATEN); +} + +/** + * @brief Set ADC gain compensation. + * @note This function set the gain compensation coefficient + * that is applied to raw converted data using the formula: + * DATA = DATA(raw) * (gain compensation coef) / 4096 + * @note This function enables the gain compensation if given + * coefficient is above 0, otherwise it disables it. + * @note Gain compensation when enabled is applied to all channels. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll GCOMP GCOMPCOEFF LL_ADC_SetGainCompensation\n + * CFGR2 GCOMP LL_ADC_SetGainCompensation + * @param ADCx ADC instance + * @param GainCompensation This parameter can be: + * 0 Gain compensation will be disabled and value set to 0 + * 1 -> 16393 Gain compensation will be enabled with specified value + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetGainCompensation(ADC_TypeDef *ADCx, uint32_t GainCompensation) +{ + MODIFY_REG(ADCx->GCOMP, ADC_GCOMP_GCOMPCOEFF, GainCompensation); + MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_GCOMP, ((GainCompensation == 0UL) ? 0UL : 1UL) << ADC_CFGR2_GCOMP_Pos); +} + +/** + * @brief Get the ADC gain compensation value + * @rmtoll GCOMP GCOMPCOEFF LL_ADC_GetGainCompensation\n + * CFGR2 GCOMP LL_ADC_GetGainCompensation + * @param ADCx ADC instance + * @retval Returned value can be: + * 0 Gain compensation is disabled + * 1 -> 16393 Gain compensation is enabled with returned value + */ +__STATIC_INLINE uint32_t LL_ADC_GetGainCompensation(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CFGR2, ADC_CFGR2_GCOMP) == ADC_CFGR2_GCOMP) ? + READ_BIT(ADCx->GCOMP, ADC_GCOMP_GCOMPCOEFF) : 0UL); +} + +#if defined(ADC_SMPR1_SMPPLUS) +/** + * @brief Set ADC sampling time common configuration impacting + * settings of sampling time channel wise. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll SMPR1 SMPPLUS LL_ADC_SetSamplingTimeCommonConfig + * @param ADCx ADC instance + * @param SamplingTimeCommonConfig This parameter can be one of the following values: + * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT + * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetSamplingTimeCommonConfig(ADC_TypeDef *ADCx, uint32_t SamplingTimeCommonConfig) +{ + MODIFY_REG(ADCx->SMPR1, ADC_SMPR1_SMPPLUS, SamplingTimeCommonConfig); +} + +/** + * @brief Get ADC sampling time common configuration impacting + * settings of sampling time channel wise. + * @rmtoll SMPR1 SMPPLUS LL_ADC_GetSamplingTimeCommonConfig + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT + * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 + */ +__STATIC_INLINE uint32_t LL_ADC_GetSamplingTimeCommonConfig(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->SMPR1, ADC_SMPR1_SMPPLUS)); +} +#endif /* ADC_SMPR1_SMPPLUS */ + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular + * @{ + */ + +/** + * @brief Set ADC group regular conversion trigger source: + * internal (SW start) or from external peripheral (timer event, + * external interrupt line). + * @note On this STM32 series, setting trigger source to external trigger + * also set trigger polarity to rising edge + * (default setting for compatibility with some ADC on other + * STM32 series having this setting set by HW default value). + * In case of need to modify trigger edge, use + * function @ref LL_ADC_REG_SetTriggerEdge(). + * @note Availability of parameters of trigger sources from timer + * depends on timers availability on the selected device. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll CFGR EXTSEL LL_ADC_REG_SetTriggerSource\n + * CFGR EXTEN LL_ADC_REG_SetTriggerSource + * @param ADCx ADC instance + * @param TriggerSource This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_TRIG_SOFTWARE + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 + * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM_OUT + * + * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n + * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL, TriggerSource); +} + +/** + * @brief Get ADC group regular conversion trigger source: + * internal (SW start) or from external peripheral (timer event, + * external interrupt line). + * @note To determine whether group regular trigger source is + * internal (SW start) or external, without detail + * of which peripheral is selected as external trigger, + * (equivalent to + * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)") + * use function @ref LL_ADC_REG_IsTriggerSourceSWStart. + * @note Availability of parameters of trigger sources from timer + * depends on timers availability on the selected device. + * @rmtoll CFGR EXTSEL LL_ADC_REG_GetTriggerSource\n + * CFGR EXTEN LL_ADC_REG_GetTriggerSource + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_TRIG_SOFTWARE + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1 + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 + * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 + * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (1) + * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (2) + * @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM_OUT + * + * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n + * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(const ADC_TypeDef *ADCx) +{ + __IO uint32_t trigger_source = READ_BIT(ADCx->CFGR, ADC_CFGR_EXTSEL | ADC_CFGR_EXTEN); + + /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */ + /* corresponding to ADC_CFGR_EXTEN {0; 1; 2; 3}. */ + uint32_t shift_exten = ((trigger_source & ADC_CFGR_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2UL)); + + /* Set bitfield corresponding to ADC_CFGR_EXTEN and ADC_CFGR_EXTSEL */ + /* to match with triggers literals definition. */ + return ((trigger_source + & (ADC_REG_TRIG_SOURCE_MASK >> shift_exten) & ADC_CFGR_EXTSEL) + | ((ADC_REG_TRIG_EDGE_MASK >> shift_exten) & ADC_CFGR_EXTEN) + ); +} + +/** + * @brief Get ADC group regular conversion trigger source internal (SW start) + * or external. + * @note In case of group regular trigger source set to external trigger, + * to determine which peripheral is selected as external trigger, + * use function @ref LL_ADC_REG_GetTriggerSource(). + * @rmtoll CFGR EXTEN LL_ADC_REG_IsTriggerSourceSWStart + * @param ADCx ADC instance + * @retval Value "0" if trigger source external trigger + * Value "1" if trigger source SW start. + */ +__STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN)) ? 1UL : 0UL); +} + +/** + * @brief Set ADC group regular conversion trigger polarity. + * @note Applicable only for trigger source set to external trigger. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll CFGR EXTEN LL_ADC_REG_SetTriggerEdge + * @param ADCx ADC instance + * @param ExternalTriggerEdge This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_TRIG_EXT_RISING + * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING + * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN, ExternalTriggerEdge); +} + +/** + * @brief Get ADC group regular conversion trigger polarity. + * @note Applicable only for trigger source set to external trigger. + * @rmtoll CFGR EXTEN LL_ADC_REG_GetTriggerEdge + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_TRIG_EXT_RISING + * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING + * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN)); +} + +/** + * @brief Set ADC sampling mode. + * @note This function set the ADC conversion sampling mode + * @note This mode applies to regular group only. + * @note Set sampling mode is applied to all conversion of regular group. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll CFGR2 BULB LL_ADC_REG_SetSamplingMode\n + * CFGR2 SMPTRIG LL_ADC_REG_SetSamplingMode + * @param ADCx ADC instance + * @param SamplingMode This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_SAMPLING_MODE_NORMAL + * @arg @ref LL_ADC_REG_SAMPLING_MODE_BULB + * @arg @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetSamplingMode(ADC_TypeDef *ADCx, uint32_t SamplingMode) +{ + MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG, SamplingMode); +} + +/** + * @brief Get the ADC sampling mode + * @rmtoll CFGR2 BULB LL_ADC_REG_GetSamplingMode\n + * CFGR2 SMPTRIG LL_ADC_REG_GetSamplingMode + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_SAMPLING_MODE_NORMAL + * @arg @ref LL_ADC_REG_SAMPLING_MODE_BULB + * @arg @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetSamplingMode(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG)); +} + +/** + * @brief Set ADC group regular sequencer length and scan direction. + * @note Description of ADC group regular sequencer features: + * - For devices with sequencer fully configurable + * (function "LL_ADC_REG_SetSequencerRanks()" available): + * sequencer length and each rank affectation to a channel + * are configurable. + * This function performs configuration of: + * - Sequence length: Number of ranks in the scan sequence. + * - Sequence direction: Unless specified in parameters, sequencer + * scan direction is forward (from rank 1 to rank n). + * Sequencer ranks are selected using + * function "LL_ADC_REG_SetSequencerRanks()". + * - For devices with sequencer not fully configurable + * (function "LL_ADC_REG_SetSequencerChannels()" available): + * sequencer length and each rank affectation to a channel + * are defined by channel number. + * This function performs configuration of: + * - Sequence length: Number of ranks in the scan sequence is + * defined by number of channels set in the sequence, + * rank of each channel is fixed by channel HW number. + * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...). + * - Sequence direction: Unless specified in parameters, sequencer + * scan direction is forward (from lowest channel number to + * highest channel number). + * Sequencer ranks are selected using + * function "LL_ADC_REG_SetSequencerChannels()". + * @note Sequencer disabled is equivalent to sequencer of 1 rank: + * ADC conversion on only 1 channel. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength + * @param ADCx ADC instance + * @param SequencerNbRanks This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks) +{ + MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks); +} + +/** + * @brief Get ADC group regular sequencer length and scan direction. + * @note Description of ADC group regular sequencer features: + * - For devices with sequencer fully configurable + * (function "LL_ADC_REG_SetSequencerRanks()" available): + * sequencer length and each rank affectation to a channel + * are configurable. + * This function retrieves: + * - Sequence length: Number of ranks in the scan sequence. + * - Sequence direction: Unless specified in parameters, sequencer + * scan direction is forward (from rank 1 to rank n). + * Sequencer ranks are selected using + * function "LL_ADC_REG_SetSequencerRanks()". + * - For devices with sequencer not fully configurable + * (function "LL_ADC_REG_SetSequencerChannels()" available): + * sequencer length and each rank affectation to a channel + * are defined by channel number. + * This function retrieves: + * - Sequence length: Number of ranks in the scan sequence is + * defined by number of channels set in the sequence, + * rank of each channel is fixed by channel HW number. + * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...). + * - Sequence direction: Unless specified in parameters, sequencer + * scan direction is forward (from lowest channel number to + * highest channel number). + * Sequencer ranks are selected using + * function "LL_ADC_REG_SetSequencerChannels()". + * @note Sequencer disabled is equivalent to sequencer of 1 rank: + * ADC conversion on only 1 channel. + * @rmtoll SQR1 L LL_ADC_REG_GetSequencerLength + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS + * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L)); +} + +/** + * @brief Set ADC group regular sequencer discontinuous mode: + * sequence subdivided and scan conversions interrupted every selected + * number of ranks. + * @note It is not possible to enable both ADC group regular + * continuous mode and sequencer discontinuous mode. + * @note It is not possible to enable both ADC auto-injected mode + * and ADC group regular sequencer discontinuous mode. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll CFGR DISCEN LL_ADC_REG_SetSequencerDiscont\n + * CFGR DISCNUM LL_ADC_REG_SetSequencerDiscont + * @param ADCx ADC instance + * @param SeqDiscont This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE + * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK + * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM, SeqDiscont); +} + +/** + * @brief Get ADC group regular sequencer discontinuous mode: + * sequence subdivided and scan conversions interrupted every selected + * number of ranks. + * @rmtoll CFGR DISCEN LL_ADC_REG_GetSequencerDiscont\n + * CFGR DISCNUM LL_ADC_REG_GetSequencerDiscont + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE + * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK + * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS + * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM)); +} + +/** + * @brief Set ADC group regular sequence: channel on the selected + * scan sequence rank. + * @note This function performs configuration of: + * - Channels ordering into each rank of scan sequence: + * whatever channel can be placed into whatever rank. + * @note On this STM32 series, ADC group regular sequencer is + * fully configurable: sequencer length and each rank + * affectation to a channel are configurable. + * Refer to description of function @ref LL_ADC_REG_SetSequencerLength(). + * @note Depending on devices and packages, some channels may not be available. + * Refer to device datasheet for channels availability. + * @note On this STM32 series, to measure internal channels (VrefInt, + * TempSensor, ...), measurement paths to internal channels must be + * enabled separately. + * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll SQR1 SQ1 LL_ADC_REG_SetSequencerRanks\n + * SQR1 SQ2 LL_ADC_REG_SetSequencerRanks\n + * SQR1 SQ3 LL_ADC_REG_SetSequencerRanks\n + * SQR1 SQ4 LL_ADC_REG_SetSequencerRanks\n + * SQR2 SQ5 LL_ADC_REG_SetSequencerRanks\n + * SQR2 SQ6 LL_ADC_REG_SetSequencerRanks\n + * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n + * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n + * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n + * SQR3 SQ10 LL_ADC_REG_SetSequencerRanks\n + * SQR3 SQ11 LL_ADC_REG_SetSequencerRanks\n + * SQR3 SQ12 LL_ADC_REG_SetSequencerRanks\n + * SQR3 SQ13 LL_ADC_REG_SetSequencerRanks\n + * SQR3 SQ14 LL_ADC_REG_SetSequencerRanks\n + * SQR4 SQ15 LL_ADC_REG_SetSequencerRanks\n + * SQR4 SQ16 LL_ADC_REG_SetSequencerRanks + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_RANK_1 + * @arg @ref LL_ADC_REG_RANK_2 + * @arg @ref LL_ADC_REG_RANK_3 + * @arg @ref LL_ADC_REG_RANK_4 + * @arg @ref LL_ADC_REG_RANK_5 + * @arg @ref LL_ADC_REG_RANK_6 + * @arg @ref LL_ADC_REG_RANK_7 + * @arg @ref LL_ADC_REG_RANK_8 + * @arg @ref LL_ADC_REG_RANK_9 + * @arg @ref LL_ADC_REG_RANK_10 + * @arg @ref LL_ADC_REG_RANK_11 + * @arg @ref LL_ADC_REG_RANK_12 + * @arg @ref LL_ADC_REG_RANK_13 + * @arg @ref LL_ADC_REG_RANK_14 + * @arg @ref LL_ADC_REG_RANK_15 + * @arg @ref LL_ADC_REG_RANK_16 + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel) +{ + /* Set bits with content of parameter "Channel" with bits position */ + /* in register and register position depending on parameter "Rank". */ + /* Parameters "Rank" and "Channel" are used with masks because containing */ + /* other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, + ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> ADC_SQRX_REGOFFSET_POS)); + + MODIFY_REG(*preg, + ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK), + ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (Rank & ADC_REG_RANK_ID_SQRX_MASK)); +} + +/** + * @brief Get ADC group regular sequence: channel on the selected + * scan sequence rank. + * @note On this STM32 series, ADC group regular sequencer is + * fully configurable: sequencer length and each rank + * affectation to a channel are configurable. + * Refer to description of function @ref LL_ADC_REG_SetSequencerLength(). + * @note Depending on devices and packages, some channels may not be available. + * Refer to device datasheet for channels availability. + * @note Usage of the returned channel number: + * - To reinject this channel into another function LL_ADC_xxx: + * the returned channel number is only partly formatted on definition + * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared + * with parts of literals LL_ADC_CHANNEL_x or using + * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * Then the selected literal LL_ADC_CHANNEL_x can be used + * as parameter for another function. + * - To get the channel number in decimal format: + * process the returned value with the helper macro + * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * @rmtoll SQR1 SQ1 LL_ADC_REG_GetSequencerRanks\n + * SQR1 SQ2 LL_ADC_REG_GetSequencerRanks\n + * SQR1 SQ3 LL_ADC_REG_GetSequencerRanks\n + * SQR1 SQ4 LL_ADC_REG_GetSequencerRanks\n + * SQR2 SQ5 LL_ADC_REG_GetSequencerRanks\n + * SQR2 SQ6 LL_ADC_REG_GetSequencerRanks\n + * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n + * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n + * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n + * SQR3 SQ10 LL_ADC_REG_GetSequencerRanks\n + * SQR3 SQ11 LL_ADC_REG_GetSequencerRanks\n + * SQR3 SQ12 LL_ADC_REG_GetSequencerRanks\n + * SQR3 SQ13 LL_ADC_REG_GetSequencerRanks\n + * SQR3 SQ14 LL_ADC_REG_GetSequencerRanks\n + * SQR4 SQ15 LL_ADC_REG_GetSequencerRanks\n + * SQR4 SQ16 LL_ADC_REG_GetSequencerRanks + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_RANK_1 + * @arg @ref LL_ADC_REG_RANK_2 + * @arg @ref LL_ADC_REG_RANK_3 + * @arg @ref LL_ADC_REG_RANK_4 + * @arg @ref LL_ADC_REG_RANK_5 + * @arg @ref LL_ADC_REG_RANK_6 + * @arg @ref LL_ADC_REG_RANK_7 + * @arg @ref LL_ADC_REG_RANK_8 + * @arg @ref LL_ADC_REG_RANK_9 + * @arg @ref LL_ADC_REG_RANK_10 + * @arg @ref LL_ADC_REG_RANK_11 + * @arg @ref LL_ADC_REG_RANK_12 + * @arg @ref LL_ADC_REG_RANK_13 + * @arg @ref LL_ADC_REG_RANK_14 + * @arg @ref LL_ADC_REG_RANK_15 + * @arg @ref LL_ADC_REG_RANK_16 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, + ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> ADC_SQRX_REGOFFSET_POS)); + + return (uint32_t)((READ_BIT(*preg, + ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK)) + >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS + ); +} + +/** + * @brief Set ADC continuous conversion mode on ADC group regular. + * @note Description of ADC continuous conversion mode: + * - single mode: one conversion per trigger + * - continuous mode: after the first trigger, following + * conversions launched successively automatically. + * @note It is not possible to enable both ADC group regular + * continuous mode and sequencer discontinuous mode. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll CFGR CONT LL_ADC_REG_SetContinuousMode + * @param ADCx ADC instance + * @param Continuous This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_CONV_SINGLE + * @arg @ref LL_ADC_REG_CONV_CONTINUOUS + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_CONT, Continuous); +} + +/** + * @brief Get ADC continuous conversion mode on ADC group regular. + * @note Description of ADC continuous conversion mode: + * - single mode: one conversion per trigger + * - continuous mode: after the first trigger, following + * conversions launched successively automatically. + * @rmtoll CFGR CONT LL_ADC_REG_GetContinuousMode + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_CONV_SINGLE + * @arg @ref LL_ADC_REG_CONV_CONTINUOUS + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_CONT)); +} + +/** + * @brief Set ADC group regular conversion data transfer: no transfer or + * transfer by DMA, and DMA requests mode. + * @note If transfer by DMA selected, specifies the DMA requests + * mode: + * - Limited mode (One shot mode): DMA transfer requests are stopped + * when number of DMA data transfers (number of + * ADC conversions) is reached. + * This ADC mode is intended to be used with DMA mode non-circular. + * - Unlimited mode: DMA transfer requests are unlimited, + * whatever number of DMA data transfers (number of + * ADC conversions). + * This ADC mode is intended to be used with DMA mode circular. + * @note If ADC DMA requests mode is set to unlimited and DMA is set to + * mode non-circular: + * when DMA transfers size will be reached, DMA will stop transfers of + * ADC conversions data ADC will raise an overrun error + * (overrun flag and interruption if enabled). + * @note For devices with several ADC instances: ADC multimode DMA + * settings are available using function @ref LL_ADC_SetMultiDMATransfer(). + * @note To configure DMA source address (peripheral address), + * use function @ref LL_ADC_DMA_GetRegAddr(). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR DMAEN LL_ADC_REG_SetDMATransfer\n + * CFGR DMACFG LL_ADC_REG_SetDMATransfer + * @param ADCx ADC instance + * @param DMATransfer This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE + * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED + * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG, DMATransfer); +} + +/** + * @brief Get ADC group regular conversion data transfer: no transfer or + * transfer by DMA, and DMA requests mode. + * @note If transfer by DMA selected, specifies the DMA requests + * mode: + * - Limited mode (One shot mode): DMA transfer requests are stopped + * when number of DMA data transfers (number of + * ADC conversions) is reached. + * This ADC mode is intended to be used with DMA mode non-circular. + * - Unlimited mode: DMA transfer requests are unlimited, + * whatever number of DMA data transfers (number of + * ADC conversions). + * This ADC mode is intended to be used with DMA mode circular. + * @note If ADC DMA requests mode is set to unlimited and DMA is set to + * mode non-circular: + * when DMA transfers size will be reached, DMA will stop transfers of + * ADC conversions data ADC will raise an overrun error + * (overrun flag and interruption if enabled). + * @note For devices with several ADC instances: ADC multimode DMA + * settings are available using function @ref LL_ADC_GetMultiDMATransfer(). + * @note To configure DMA source address (peripheral address), + * use function @ref LL_ADC_DMA_GetRegAddr(). + * @rmtoll CFGR DMAEN LL_ADC_REG_GetDMATransfer\n + * CFGR DMACFG LL_ADC_REG_GetDMATransfer + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE + * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED + * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG)); +} + +/** + * @brief Set ADC group regular behavior in case of overrun: + * data preserved or overwritten. + * @note Compatibility with devices without feature overrun: + * other devices without this feature have a behavior + * equivalent to data overwritten. + * The default setting of overrun is data preserved. + * Therefore, for compatibility with all devices, parameter + * overrun should be set to data overwritten. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @rmtoll CFGR OVRMOD LL_ADC_REG_SetOverrun + * @param ADCx ADC instance + * @param Overrun This parameter can be one of the following values: + * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED + * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_SetOverrun(ADC_TypeDef *ADCx, uint32_t Overrun) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_OVRMOD, Overrun); +} + +/** + * @brief Get ADC group regular behavior in case of overrun: + * data preserved or overwritten. + * @rmtoll CFGR OVRMOD LL_ADC_REG_GetOverrun + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED + * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN + */ +__STATIC_INLINE uint32_t LL_ADC_REG_GetOverrun(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_OVRMOD)); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected + * @{ + */ + +/** + * @brief Set ADC group injected conversion trigger source: + * internal (SW start) or from external peripheral (timer event, + * external interrupt line). + * @note On this STM32 series, setting trigger source to external trigger + * also set trigger polarity to rising edge + * (default setting for compatibility with some ADC on other + * STM32 series having this setting set by HW default value). + * In case of need to modify trigger edge, use + * function @ref LL_ADC_INJ_SetTriggerEdge(). + * @note Availability of parameters of trigger sources from timer + * depends on timers availability on the selected device. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must not be disabled. Can be enabled with or without conversion + * on going on either groups regular or injected. + * @rmtoll JSQR JEXTSEL LL_ADC_INJ_SetTriggerSource\n + * JSQR JEXTEN LL_ADC_INJ_SetTriggerSource + * @param ADCx ADC instance + * @param TriggerSource This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 + * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT + * + * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n + * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource) +{ + MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN, TriggerSource); +} + +/** + * @brief Get ADC group injected conversion trigger source: + * internal (SW start) or from external peripheral (timer event, + * external interrupt line). + * @note To determine whether group injected trigger source is + * internal (SW start) or external, without detail + * of which peripheral is selected as external trigger, + * (equivalent to + * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)") + * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart. + * @note Availability of parameters of trigger sources from timer + * depends on timers availability on the selected device. + * @rmtoll JSQR JEXTSEL LL_ADC_INJ_GetTriggerSource\n + * JSQR JEXTEN LL_ADC_INJ_GetTriggerSource + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 + * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT + * + * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n + * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(const ADC_TypeDef *ADCx) +{ + __IO uint32_t trigger_source = READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN); + + /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */ + /* corresponding to ADC_JSQR_JEXTEN {0; 1; 2; 3}. */ + uint32_t shift_jexten = ((trigger_source & ADC_JSQR_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - 2UL)); + + /* Set bitfield corresponding to ADC_JSQR_JEXTEN and ADC_JSQR_JEXTSEL */ + /* to match with triggers literals definition. */ + return ((trigger_source + & (ADC_INJ_TRIG_SOURCE_MASK >> shift_jexten) & ADC_JSQR_JEXTSEL) + | ((ADC_INJ_TRIG_EDGE_MASK >> shift_jexten) & ADC_JSQR_JEXTEN) + ); +} + +/** + * @brief Get ADC group injected conversion trigger source internal (SW start) + or external + * @note In case of group injected trigger source set to external trigger, + * to determine which peripheral is selected as external trigger, + * use function @ref LL_ADC_INJ_GetTriggerSource. + * @rmtoll JSQR JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart + * @param ADCx ADC instance + * @retval Value "0" if trigger source external trigger + * Value "1" if trigger source SW start. + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN)) ? 1UL : 0UL); +} + +/** + * @brief Set ADC group injected conversion trigger polarity. + * Applicable only for trigger source set to external trigger. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must not be disabled. Can be enabled with or without conversion + * on going on either groups regular or injected. + * @rmtoll JSQR JEXTEN LL_ADC_INJ_SetTriggerEdge + * @param ADCx ADC instance + * @param ExternalTriggerEdge This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING + * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING + * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge) +{ + MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTEN, ExternalTriggerEdge); +} + +/** + * @brief Get ADC group injected conversion trigger polarity. + * Applicable only for trigger source set to external trigger. + * @rmtoll JSQR JEXTEN LL_ADC_INJ_GetTriggerEdge + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING + * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING + * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN)); +} + +/** + * @brief Set ADC group injected sequencer length and scan direction. + * @note This function performs configuration of: + * - Sequence length: Number of ranks in the scan sequence. + * - Sequence direction: Unless specified in parameters, sequencer + * scan direction is forward (from rank 1 to rank n). + * @note Sequencer disabled is equivalent to sequencer of 1 rank: + * ADC conversion on only 1 channel. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must not be disabled. Can be enabled with or without conversion + * on going on either groups regular or injected. + * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength + * @param ADCx ADC instance + * @param SequencerNbRanks This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks) +{ + MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks); +} + +/** + * @brief Get ADC group injected sequencer length and scan direction. + * @note This function retrieves: + * - Sequence length: Number of ranks in the scan sequence. + * - Sequence direction: Unless specified in parameters, sequencer + * scan direction is forward (from rank 1 to rank n). + * @note Sequencer disabled is equivalent to sequencer of 1 rank: + * ADC conversion on only 1 channel. + * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL)); +} + +/** + * @brief Set ADC group injected sequencer discontinuous mode: + * sequence subdivided and scan conversions interrupted every selected + * number of ranks. + * @note It is not possible to enable both ADC group injected + * auto-injected mode and sequencer discontinuous mode. + * @rmtoll CFGR JDISCEN LL_ADC_INJ_SetSequencerDiscont + * @param ADCx ADC instance + * @param SeqDiscont This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE + * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_JDISCEN, SeqDiscont); +} + +/** + * @brief Get ADC group injected sequencer discontinuous mode: + * sequence subdivided and scan conversions interrupted every selected + * number of ranks. + * @rmtoll CFGR JDISCEN LL_ADC_INJ_GetSequencerDiscont + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE + * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JDISCEN)); +} + +/** + * @brief Set ADC group injected sequence: channel on the selected + * sequence rank. + * @note Depending on devices and packages, some channels may not be available. + * Refer to device datasheet for channels availability. + * @note On this STM32 series, to measure internal channels (VrefInt, + * TempSensor, ...), measurement paths to internal channels must be + * enabled separately. + * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). + * @note On STM32G4, some fast channels are available: fast analog inputs + * coming from GPIO pads (ADC_IN1..5). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must not be disabled. Can be enabled with or without conversion + * on going on either groups regular or injected. + * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n + * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n + * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n + * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel) +{ + /* Set bits with content of parameter "Channel" with bits position */ + /* in register depending on parameter "Rank". */ + /* Parameters "Rank" and "Channel" are used with masks because containing */ + /* other bits reserved for other purpose. */ + MODIFY_REG(ADCx->JSQR, + (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (Rank & ADC_INJ_RANK_ID_JSQR_MASK), + ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (Rank & ADC_INJ_RANK_ID_JSQR_MASK)); +} + +/** + * @brief Get ADC group injected sequence: channel on the selected + * sequence rank. + * @note Depending on devices and packages, some channels may not be available. + * Refer to device datasheet for channels availability. + * @note Usage of the returned channel number: + * - To reinject this channel into another function LL_ADC_xxx: + * the returned channel number is only partly formatted on definition + * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared + * with parts of literals LL_ADC_CHANNEL_x or using + * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * Then the selected literal LL_ADC_CHANNEL_x can be used + * as parameter for another function. + * - To get the channel number in decimal format: + * process the returned value with the helper macro + * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * @rmtoll JSQR JSQ1 LL_ADC_INJ_GetSequencerRanks\n + * JSQR JSQ2 LL_ADC_INJ_GetSequencerRanks\n + * JSQR JSQ3 LL_ADC_INJ_GetSequencerRanks\n + * JSQR JSQ4 LL_ADC_INJ_GetSequencerRanks + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, + * comparison with internal channel parameter to be done + * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + return (uint32_t)((READ_BIT(ADCx->JSQR, + (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (Rank & ADC_INJ_RANK_ID_JSQR_MASK)) + >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS + ); +} + +/** + * @brief Set ADC group injected conversion trigger: + * independent or from ADC group regular. + * @note This mode can be used to extend number of data registers + * updated after one ADC conversion trigger and with data + * permanently kept (not erased by successive conversions of scan of + * ADC sequencer ranks), up to 5 data registers: + * 1 data register on ADC group regular, 4 data registers + * on ADC group injected. + * @note If ADC group injected injected trigger source is set to an + * external trigger, this feature must be must be set to + * independent trigger. + * ADC group injected automatic trigger is compliant only with + * group injected trigger source set to SW start, without any + * further action on ADC group injected conversion start or stop: + * in this case, ADC group injected is controlled only + * from ADC group regular. + * @note It is not possible to enable both ADC group injected + * auto-injected mode and sequencer discontinuous mode. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR JAUTO LL_ADC_INJ_SetTrigAuto + * @param ADCx ADC instance + * @param TrigAuto This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT + * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_JAUTO, TrigAuto); +} + +/** + * @brief Get ADC group injected conversion trigger: + * independent or from ADC group regular. + * @rmtoll CFGR JAUTO LL_ADC_INJ_GetTrigAuto + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT + * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JAUTO)); +} + +/** + * @brief Set ADC group injected contexts queue mode. + * @note A context is a setting of group injected sequencer: + * - group injected trigger + * - sequencer length + * - sequencer ranks + * If contexts queue is disabled: + * - only 1 sequence can be configured + * and is active perpetually. + * If contexts queue is enabled: + * - up to 2 contexts can be queued + * and are checked in and out as a FIFO stack (first-in, first-out). + * - If a new context is set when queues is full, error is triggered + * by interruption "Injected Queue Overflow". + * - Two behaviors are possible when all contexts have been processed: + * the contexts queue can maintain the last context active perpetually + * or can be empty and injected group triggers are disabled. + * - Triggers can be only external (not internal SW start) + * - Caution: The sequence must be fully configured in one time + * (one write of register JSQR makes a check-in of a new context + * into the queue). + * Therefore functions to set separately injected trigger and + * sequencer channels cannot be used, register JSQR must be set + * using function @ref LL_ADC_INJ_ConfigQueueContext(). + * @note This parameter can be modified only when no conversion is on going + * on either groups regular or injected. + * @note A modification of the context mode (bit JQDIS) causes the contexts + * queue to be flushed and the register JSQR is cleared. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR JQM LL_ADC_INJ_SetQueueMode\n + * CFGR JQDIS LL_ADC_INJ_SetQueueMode + * @param ADCx ADC instance + * @param QueueMode This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_QUEUE_DISABLE + * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE + * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_SetQueueMode(ADC_TypeDef *ADCx, uint32_t QueueMode) +{ + MODIFY_REG(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS, QueueMode); +} + +/** + * @brief Get ADC group injected context queue mode. + * @rmtoll CFGR JQM LL_ADC_INJ_GetQueueMode\n + * CFGR JQDIS LL_ADC_INJ_GetQueueMode + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_INJ_QUEUE_DISABLE + * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE + * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_GetQueueMode(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS)); +} + +/** + * @brief Set one context on ADC group injected that will be checked in + * contexts queue. + * @note A context is a setting of group injected sequencer: + * - group injected trigger + * - sequencer length + * - sequencer ranks + * This function is intended to be used when contexts queue is enabled, + * because the sequence must be fully configured in one time + * (functions to set separately injected trigger and sequencer channels + * cannot be used): + * Refer to function @ref LL_ADC_INJ_SetQueueMode(). + * @note In the contexts queue, only the active context can be read. + * The parameters of this function can be read using functions: + * @arg @ref LL_ADC_INJ_GetTriggerSource() + * @arg @ref LL_ADC_INJ_GetTriggerEdge() + * @arg @ref LL_ADC_INJ_GetSequencerRanks() + * @note On this STM32 series, to measure internal channels (VrefInt, + * TempSensor, ...), measurement paths to internal channels must be + * enabled separately. + * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). + * @note On STM32G4, some fast channels are available: fast analog inputs + * coming from GPIO pads (ADC_IN1..5). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must not be disabled. Can be enabled with or without conversion + * on going on either groups regular or injected. + * @rmtoll JSQR JEXTSEL LL_ADC_INJ_ConfigQueueContext\n + * JSQR JEXTEN LL_ADC_INJ_ConfigQueueContext\n + * JSQR JL LL_ADC_INJ_ConfigQueueContext\n + * JSQR JSQ1 LL_ADC_INJ_ConfigQueueContext\n + * JSQR JSQ2 LL_ADC_INJ_ConfigQueueContext\n + * JSQR JSQ3 LL_ADC_INJ_ConfigQueueContext\n + * JSQR JSQ4 LL_ADC_INJ_ConfigQueueContext + * @param ADCx ADC instance + * @param TriggerSource This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 + * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 + * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) + * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) + * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT + * + * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n + * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet for + * more details. + * @param ExternalTriggerEdge This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING + * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING + * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING + * + * Note: This parameter is discarded in case of SW start: + * parameter "TriggerSource" set to "LL_ADC_INJ_TRIG_SOFTWARE". + * @param SequencerNbRanks This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS + * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS + * @param Rank1_Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @param Rank2_Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @param Rank3_Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @param Rank4_Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_ConfigQueueContext(ADC_TypeDef *ADCx, + uint32_t TriggerSource, + uint32_t ExternalTriggerEdge, + uint32_t SequencerNbRanks, + uint32_t Rank1_Channel, + uint32_t Rank2_Channel, + uint32_t Rank3_Channel, + uint32_t Rank4_Channel) +{ + /* Set bits with content of parameter "Rankx_Channel" with bits position */ + /* in register depending on literal "LL_ADC_INJ_RANK_x". */ + /* Parameters "Rankx_Channel" and "LL_ADC_INJ_RANK_x" are used with masks */ + /* because containing other bits reserved for other purpose. */ + /* If parameter "TriggerSource" is set to SW start, then parameter */ + /* "ExternalTriggerEdge" is discarded. */ + uint32_t is_trigger_not_sw = (uint32_t)((TriggerSource != LL_ADC_INJ_TRIG_SOFTWARE) ? 1UL : 0UL); + MODIFY_REG(ADCx->JSQR, + ADC_JSQR_JEXTSEL | + ADC_JSQR_JEXTEN | + ADC_JSQR_JSQ4 | + ADC_JSQR_JSQ3 | + ADC_JSQR_JSQ2 | + ADC_JSQR_JSQ1 | + ADC_JSQR_JL, + (TriggerSource & ADC_JSQR_JEXTSEL) | + (ExternalTriggerEdge * (is_trigger_not_sw)) | + (((Rank4_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (LL_ADC_INJ_RANK_4 & ADC_INJ_RANK_ID_JSQR_MASK)) | + (((Rank3_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (LL_ADC_INJ_RANK_3 & ADC_INJ_RANK_ID_JSQR_MASK)) | + (((Rank2_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (LL_ADC_INJ_RANK_2 & ADC_INJ_RANK_ID_JSQR_MASK)) | + (((Rank1_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) + << (LL_ADC_INJ_RANK_1 & ADC_INJ_RANK_ID_JSQR_MASK)) | + SequencerNbRanks + ); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels + * @{ + */ + +/** + * @brief Set sampling time of the selected ADC channel + * Unit: ADC clock cycles. + * @note On this device, sampling time is on channel scope: independently + * of channel mapped on ADC group regular or injected. + * @note In case of internal channel (VrefInt, TempSensor, ...) to be + * converted: + * sampling time constraints must be respected (sampling time can be + * adjusted in function of ADC clock frequency and sampling time + * setting). + * Refer to device datasheet for timings values (parameters TS_vrefint, + * TS_temp, ...). + * @note Conversion time is the addition of sampling time and processing time. + * On this STM32 series, ADC processing time is: + * - 12.5 ADC clock cycles at ADC resolution 12 bits + * - 10.5 ADC clock cycles at ADC resolution 10 bits + * - 8.5 ADC clock cycles at ADC resolution 8 bits + * - 6.5 ADC clock cycles at ADC resolution 6 bits + * @note In case of ADC conversion of internal channel (VrefInt, + * temperature sensor, ...), a sampling time minimum value + * is required. + * Refer to device datasheet. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll SMPR1 SMP0 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP1 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP2 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP3 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP4 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP5 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP6 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP7 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP8 LL_ADC_SetChannelSamplingTime\n + * SMPR1 SMP9 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP10 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP11 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP12 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP13 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP14 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP15 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP16 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP17 LL_ADC_SetChannelSamplingTime\n + * SMPR2 SMP18 LL_ADC_SetChannelSamplingTime + * @param ADCx ADC instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @param SamplingTime This parameter can be one of the following values: + * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1) + * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5 + * + * (1) On some devices, ADC sampling time 2.5 ADC clock cycles + * can be replaced by 3.5 ADC clock cycles. + * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime) +{ + /* Set bits with content of parameter "SamplingTime" with bits position */ + /* in register and register position depending on parameter "Channel". */ + /* Parameter "Channel" is used with masks because containing */ + /* other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, + ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_MASK) >> ADC_SMPRX_REGOFFSET_POS)); + + MODIFY_REG(*preg, + ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS), + SamplingTime << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS)); +} + +/** + * @brief Get sampling time of the selected ADC channel + * Unit: ADC clock cycles. + * @note On this device, sampling time is on channel scope: independently + * of channel mapped on ADC group regular or injected. + * @note Conversion time is the addition of sampling time and processing time. + * On this STM32 series, ADC processing time is: + * - 12.5 ADC clock cycles at ADC resolution 12 bits + * - 10.5 ADC clock cycles at ADC resolution 10 bits + * - 8.5 ADC clock cycles at ADC resolution 8 bits + * - 6.5 ADC clock cycles at ADC resolution 6 bits + * @rmtoll SMPR1 SMP0 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP1 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP2 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP3 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP4 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP5 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP6 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP7 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP8 LL_ADC_GetChannelSamplingTime\n + * SMPR1 SMP9 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP10 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP11 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP12 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP13 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP14 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP15 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP16 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP17 LL_ADC_GetChannelSamplingTime\n + * SMPR2 SMP18 LL_ADC_GetChannelSamplingTime + * @param ADCx ADC instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_0 + * @arg @ref LL_ADC_CHANNEL_1 (8) + * @arg @ref LL_ADC_CHANNEL_2 (8) + * @arg @ref LL_ADC_CHANNEL_3 (8) + * @arg @ref LL_ADC_CHANNEL_4 (8) + * @arg @ref LL_ADC_CHANNEL_5 (8) + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @arg @ref LL_ADC_CHANNEL_16 + * @arg @ref LL_ADC_CHANNEL_17 + * @arg @ref LL_ADC_CHANNEL_18 + * @arg @ref LL_ADC_CHANNEL_VREFINT (7) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) + * @arg @ref LL_ADC_CHANNEL_VBAT (6) + * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) + * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + * + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock cycles (fADC) to + * convert in 12-bit resolution. + * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 ADC clock cycles + * (fADC) to convert in 12-bit resolution.\n + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1) + * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5 + * + * (1) On some devices, ADC sampling time 2.5 ADC clock cycles + * can be replaced by 3.5 ADC clock cycles. + * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). + */ +__STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(const ADC_TypeDef *ADCx, uint32_t Channel) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_MASK) + >> ADC_SMPRX_REGOFFSET_POS)); + + return (uint32_t)(READ_BIT(*preg, + ADC_SMPR1_SMP0 + << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS)) + >> ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS) + ); +} + +/** + * @brief Set mode single-ended or differential input of the selected + * ADC channel. + * @note Channel ending is on channel scope: independently of channel mapped + * on ADC group regular or injected. + * In differential mode: Differential measurement is carried out + * between the selected channel 'i' (positive input) and + * channel 'i+1' (negative input). Only channel 'i' has to be + * configured, channel 'i+1' is configured automatically. + * @note Refer to Reference Manual to ensure the selected channel is + * available in differential mode. + * For example, internal channels (VrefInt, TempSensor, ...) are + * not available in differential mode. + * @note When configuring a channel 'i' in differential mode, + * the channel 'i+1' is not usable separately. + * @note On STM32G4, some channels are internally fixed to single-ended inputs + * configuration: + * - ADC1: Channels 12, 15, 16, 17 and 18 + * - ADC2: Channels 15, 17 and 18 + * - ADC3: Channels 12, 16, 17 and 18 (1) + * - ADC4: Channels 16, 17 and 18 (1) + * - ADC5: Channels 2, 3, 4, 16, 17 and 18 (1) + * (1) ADC3/4/5 are not available on all devices, refer to device datasheet + * for more details. + * @note For ADC channels configured in differential mode, both inputs + * should be biased at (Vref+)/2 +/-200mV. + * (Vref+ is the analog voltage reference) + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled. + * @note One or several values can be selected. + * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...) + * @rmtoll DIFSEL DIFSEL LL_ADC_SetChannelSingleDiff + * @param ADCx ADC instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_ADC_CHANNEL_1 + * @arg @ref LL_ADC_CHANNEL_2 + * @arg @ref LL_ADC_CHANNEL_3 + * @arg @ref LL_ADC_CHANNEL_4 + * @arg @ref LL_ADC_CHANNEL_5 + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @param SingleDiff This parameter can be a combination of the following values: + * @arg @ref LL_ADC_SINGLE_ENDED + * @arg @ref LL_ADC_DIFFERENTIAL_ENDED + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff) +{ + /* Bits of channels in single or differential mode are set only for */ + /* differential mode (for single mode, mask of bits allowed to be set is */ + /* shifted out of range of bits of channels in single or differential mode. */ + MODIFY_REG(ADCx->DIFSEL, + Channel & ADC_SINGLEDIFF_CHANNEL_MASK, + (Channel & ADC_SINGLEDIFF_CHANNEL_MASK) + & (ADC_DIFSEL_DIFSEL >> (SingleDiff & ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK))); +} + +/** + * @brief Get mode single-ended or differential input of the selected + * ADC channel. + * @note When configuring a channel 'i' in differential mode, + * the channel 'i+1' is not usable separately. + * Therefore, to ensure a channel is configured in single-ended mode, + * the configuration of channel itself and the channel 'i-1' must be + * read back (to ensure that the selected channel channel has not been + * configured in differential mode by the previous channel). + * @note Refer to Reference Manual to ensure the selected channel is + * available in differential mode. + * For example, internal channels (VrefInt, TempSensor, ...) are + * not available in differential mode. + * @note When configuring a channel 'i' in differential mode, + * the channel 'i+1' is not usable separately. + * @note On STM32G4, some channels are internally fixed to single-ended inputs + * configuration: + * - ADC1: Channels 12, 15, 16, 17 and 18 + * - ADC2: Channels 15, 17 and 18 + * - ADC3: Channels 12, 16, 17 and 18 (1) + * - ADC4: Channels 16, 17 and 18 (1) + * - ADC5: Channels 2, 3, 4, 16, 17 and 18 (1) + * (1) ADC3/4/5 are not available on all devices, refer to device datasheet + * for more details. + * @note One or several values can be selected. In this case, the value + * returned is null if all channels are in single ended-mode. + * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...) + * @rmtoll DIFSEL DIFSEL LL_ADC_GetChannelSingleDiff + * @param ADCx ADC instance + * @param Channel This parameter can be a combination of the following values: + * @arg @ref LL_ADC_CHANNEL_1 + * @arg @ref LL_ADC_CHANNEL_2 + * @arg @ref LL_ADC_CHANNEL_3 + * @arg @ref LL_ADC_CHANNEL_4 + * @arg @ref LL_ADC_CHANNEL_5 + * @arg @ref LL_ADC_CHANNEL_6 + * @arg @ref LL_ADC_CHANNEL_7 + * @arg @ref LL_ADC_CHANNEL_8 + * @arg @ref LL_ADC_CHANNEL_9 + * @arg @ref LL_ADC_CHANNEL_10 + * @arg @ref LL_ADC_CHANNEL_11 + * @arg @ref LL_ADC_CHANNEL_12 + * @arg @ref LL_ADC_CHANNEL_13 + * @arg @ref LL_ADC_CHANNEL_14 + * @arg @ref LL_ADC_CHANNEL_15 + * @retval 0: channel in single-ended mode, else: channel in differential mode + */ +__STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff(const ADC_TypeDef *ADCx, uint32_t Channel) +{ + return (uint32_t)(READ_BIT(ADCx->DIFSEL, (Channel & ADC_SINGLEDIFF_CHANNEL_MASK))); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog + * @{ + */ + +/** + * @brief Set ADC analog watchdog monitored channels: + * a single channel, multiple channels or all channels, + * on ADC groups regular and-or injected. + * @note Once monitored channels are selected, analog watchdog + * is enabled. + * @note In case of need to define a single channel to monitor + * with analog watchdog from sequencer channel definition, + * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP(). + * @note On this STM32 series, there are 2 kinds of analog watchdog + * instance: + * - AWD standard (instance AWD1): + * - channels monitored: can monitor 1 channel or all channels. + * - groups monitored: ADC groups regular and-or injected. + * - resolution: resolution is not limited (corresponds to + * ADC resolution configured). + * - AWD flexible (instances AWD2, AWD3): + * - channels monitored: flexible on channels monitored, selection is + * channel wise, from from 1 to all channels. + * Specificity of this analog watchdog: Multiple channels can + * be selected. For example: + * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) + * - groups monitored: not selection possible (monitoring on both + * groups regular and injected). + * Channels selected are monitored on groups regular and injected: + * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters + * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) + * - resolution: resolution is limited to 8 bits: if ADC resolution is + * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits + * the 2 LSB are ignored. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR AWD1CH LL_ADC_SetAnalogWDMonitChannels\n + * CFGR AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n + * CFGR AWD1EN LL_ADC_SetAnalogWDMonitChannels\n + * CFGR JAWD1EN LL_ADC_SetAnalogWDMonitChannels\n + * AWD2CR AWD2CH LL_ADC_SetAnalogWDMonitChannels\n + * AWD3CR AWD3CH LL_ADC_SetAnalogWDMonitChannels + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @arg @ref LL_ADC_AWD2 + * @arg @ref LL_ADC_AWD3 + * @param AWDChannelGroup This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD_DISABLE + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ + * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0) + * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0) + * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG (0)(1) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ (0)(1) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ (1) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG (0)(5) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ (0)(5) + * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ (5) + * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(6) + * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(6) + * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (6) + * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1) + * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1) + * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1) + * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ (0)(2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ (2) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG (0)(3) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ (0)(3) + * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ (3) + * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP5_INJ (0)(5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG_INJ (5) + * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG (0)(4) + * @arg @ref LL_ADC_AWD_CH_VOPAMP6_INJ (0)(4) + * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG_INJ (4) + * + * (0) On STM32G4, parameter available only on analog watchdog number: AWD1.\n + * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n + * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n + * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n + * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n + * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n + * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + * On this STM32 series, all ADCx are not available on all devices. Refer to device datasheet + * for more details. + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDChannelGroup) +{ + /* Set bits with content of parameter "AWDChannelGroup" with bits position */ + /* in register and register position depending on parameter "AWDy". */ + /* Parameters "AWDChannelGroup" and "AWDy" are used with masks because */ + /* containing other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, + ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) >> ADC_AWD_CRX_REGOFFSET_POS) + + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) + * ADC_AWD_CR12_REGOFFSETGAP_VAL)); + + MODIFY_REG(*preg, + (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + AWDChannelGroup & AWDy); +} + +/** + * @brief Get ADC analog watchdog monitored channel. + * @note Usage of the returned channel number: + * - To reinject this channel into another function LL_ADC_xxx: + * the returned channel number is only partly formatted on definition + * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared + * with parts of literals LL_ADC_CHANNEL_x or using + * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * Then the selected literal LL_ADC_CHANNEL_x can be used + * as parameter for another function. + * - To get the channel number in decimal format: + * process the returned value with the helper macro + * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). + * Applicable only when the analog watchdog is set to monitor + * one channel. + * @note On this STM32 series, there are 2 kinds of analog watchdog + * instance: + * - AWD standard (instance AWD1): + * - channels monitored: can monitor 1 channel or all channels. + * - groups monitored: ADC groups regular and-or injected. + * - resolution: resolution is not limited (corresponds to + * ADC resolution configured). + * - AWD flexible (instances AWD2, AWD3): + * - channels monitored: flexible on channels monitored, selection is + * channel wise, from from 1 to all channels. + * Specificity of this analog watchdog: Multiple channels can + * be selected. For example: + * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) + * - groups monitored: not selection possible (monitoring on both + * groups regular and injected). + * Channels selected are monitored on groups regular and injected: + * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters + * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) + * - resolution: resolution is limited to 8 bits: if ADC resolution is + * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits + * the 2 LSB are ignored. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR AWD1CH LL_ADC_GetAnalogWDMonitChannels\n + * CFGR AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n + * CFGR AWD1EN LL_ADC_GetAnalogWDMonitChannels\n + * CFGR JAWD1EN LL_ADC_GetAnalogWDMonitChannels\n + * AWD2CR AWD2CH LL_ADC_GetAnalogWDMonitChannels\n + * AWD3CR AWD3CH LL_ADC_GetAnalogWDMonitChannels + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @arg @ref LL_ADC_AWD2 (1) + * @arg @ref LL_ADC_AWD3 (1) + * + * (1) On this AWD number, monitored channel can be retrieved + * if only 1 channel is programmed (or none or all channels). + * This function cannot retrieve monitored channel if + * multiple channels are programmed simultaneously + * by bitfield. + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_AWD_DISABLE + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) + * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ + * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) + * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) + * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ + * + * (0) On STM32G4, parameter available only on analog watchdog number: AWD1. + */ +__STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(const ADC_TypeDef *ADCx, uint32_t AWDy) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, + ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) >> ADC_AWD_CRX_REGOFFSET_POS) + + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) + * ADC_AWD_CR12_REGOFFSETGAP_VAL)); + + uint32_t analog_wd_monit_channels = (READ_BIT(*preg, AWDy) & AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK); + + /* If "analog_wd_monit_channels" == 0, then the selected AWD is disabled */ + /* (parameter value LL_ADC_AWD_DISABLE). */ + /* Else, the selected AWD is enabled and is monitoring a group of channels */ + /* or a single channel. */ + if (analog_wd_monit_channels != 0UL) + { + if (AWDy == LL_ADC_AWD1) + { + if ((analog_wd_monit_channels & ADC_CFGR_AWD1SGL) == 0UL) + { + /* AWD monitoring a group of channels */ + analog_wd_monit_channels = ((analog_wd_monit_channels + | (ADC_AWD_CR23_CHANNEL_MASK) + ) + & (~(ADC_CFGR_AWD1CH)) + ); + } + else + { + /* AWD monitoring a single channel */ + analog_wd_monit_channels = (analog_wd_monit_channels + | (ADC_AWD2CR_AWD2CH_0 << (analog_wd_monit_channels >> ADC_CFGR_AWD1CH_Pos)) + ); + } + } + else + { + if ((analog_wd_monit_channels & ADC_AWD_CR23_CHANNEL_MASK) == ADC_AWD_CR23_CHANNEL_MASK) + { + /* AWD monitoring a group of channels */ + analog_wd_monit_channels = (ADC_AWD_CR23_CHANNEL_MASK + | ((ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN)) + ); + } + else + { + /* AWD monitoring a single channel */ + /* AWD monitoring a group of channels */ + analog_wd_monit_channels = (analog_wd_monit_channels + | (ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) + | (__LL_ADC_CHANNEL_TO_DECIMAL_NB(analog_wd_monit_channels) << ADC_CFGR_AWD1CH_Pos) + ); + } + } + } + + return analog_wd_monit_channels; +} + +/** + * @brief Set ADC analog watchdog thresholds value of both thresholds + * high and low. + * @note If value of only one threshold high or low must be set, + * use function @ref LL_ADC_SetAnalogWDThresholds(). + * @note In case of ADC resolution different of 12 bits, + * analog watchdog thresholds data require a specific shift. + * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(). + * @note On this STM32 series, there are 2 kinds of analog watchdog + * instance: + * - AWD standard (instance AWD1): + * - channels monitored: can monitor 1 channel or all channels. + * - groups monitored: ADC groups regular and-or injected. + * - resolution: resolution is not limited (corresponds to + * ADC resolution configured). + * - AWD flexible (instances AWD2, AWD3): + * - channels monitored: flexible on channels monitored, selection is + * channel wise, from from 1 to all channels. + * Specificity of this analog watchdog: Multiple channels can + * be selected. For example: + * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) + * - groups monitored: not selection possible (monitoring on both + * groups regular and injected). + * Channels selected are monitored on groups regular and injected: + * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters + * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) + * - resolution: resolution is limited to 8 bits: if ADC resolution is + * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits + * the 2 LSB are ignored. + * @note If ADC oversampling is enabled, ADC analog watchdog thresholds are + * impacted: the comparison of analog watchdog thresholds is done on + * oversampling final computation (after ratio and shift application): + * ADC data register bitfield [15:4] (12 most significant bits). + * Examples: + * - Oversampling ratio and shift selected to have ADC conversion data + * on 12 bits (ratio 16 and shift 4, or ratio 32 and shift 5, ...): + * ADC analog watchdog thresholds must be divided by 16. + * - Oversampling ratio and shift selected to have ADC conversion data + * on 14 bits (ratio 16 and shift 2, or ratio 32 and shift 3, ...): + * ADC analog watchdog thresholds must be divided by 4. + * - Oversampling ratio and shift selected to have ADC conversion data + * on 16 bits (ratio 16 and shift none, or ratio 32 and shift 1, ...): + * ADC analog watchdog thresholds match directly to ADC data register. + * @rmtoll TR1 HT1 LL_ADC_ConfigAnalogWDThresholds\n + * TR2 HT2 LL_ADC_ConfigAnalogWDThresholds\n + * TR3 HT3 LL_ADC_ConfigAnalogWDThresholds\n + * TR1 LT1 LL_ADC_ConfigAnalogWDThresholds\n + * TR2 LT2 LL_ADC_ConfigAnalogWDThresholds\n + * TR3 LT3 LL_ADC_ConfigAnalogWDThresholds + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @arg @ref LL_ADC_AWD2 + * @arg @ref LL_ADC_AWD3 + * @param AWDThresholdHighValue Value between Min_Data=0x000 and Max_Data=0xFFF + * @param AWDThresholdLowValue Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval None + */ +__STATIC_INLINE void LL_ADC_ConfigAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdHighValue, + uint32_t AWDThresholdLowValue) +{ + /* Set bits with content of parameter "AWDThresholdxxxValue" with bits */ + /* position in register and register position depending on parameter */ + /* "AWDy". */ + /* Parameters "AWDy" and "AWDThresholdxxxValue" are used with masks because */ + /* containing other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, + ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_REGOFFSET_POS)); + + MODIFY_REG(*preg, + ADC_TR1_HT1 | ADC_TR1_LT1, + (AWDThresholdHighValue << ADC_TR1_HT1_BITOFFSET_POS) | AWDThresholdLowValue); +} + +/** + * @brief Set ADC analog watchdog threshold value of threshold + * high or low. + * @note If values of both thresholds high or low must be set, + * use function @ref LL_ADC_ConfigAnalogWDThresholds(). + * @note In case of ADC resolution different of 12 bits, + * analog watchdog thresholds data require a specific shift. + * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(). + * @note On this STM32 series, there are 2 kinds of analog watchdog + * instance: + * - AWD standard (instance AWD1): + * - channels monitored: can monitor 1 channel or all channels. + * - groups monitored: ADC groups regular and-or injected. + * - resolution: resolution is not limited (corresponds to + * ADC resolution configured). + * - AWD flexible (instances AWD2, AWD3): + * - channels monitored: flexible on channels monitored, selection is + * channel wise, from from 1 to all channels. + * Specificity of this analog watchdog: Multiple channels can + * be selected. For example: + * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) + * - groups monitored: not selection possible (monitoring on both + * groups regular and injected). + * Channels selected are monitored on groups regular and injected: + * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters + * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) + * - resolution: resolution is limited to 8 bits: if ADC resolution is + * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits + * the 2 LSB are ignored. + * @note If ADC oversampling is enabled, ADC analog watchdog thresholds are + * impacted: the comparison of analog watchdog thresholds is done on + * oversampling final computation (after ratio and shift application): + * ADC data register bitfield [15:4] (12 most significant bits). + * Examples: + * - Oversampling ratio and shift selected to have ADC conversion data + * on 12 bits (ratio 16 and shift 4, or ratio 32 and shift 5, ...): + * ADC analog watchdog thresholds must be divided by 16. + * - Oversampling ratio and shift selected to have ADC conversion data + * on 14 bits (ratio 16 and shift 2, or ratio 32 and shift 3, ...): + * ADC analog watchdog thresholds must be divided by 4. + * - Oversampling ratio and shift selected to have ADC conversion data + * on 16 bits (ratio 16 and shift none, or ratio 32 and shift 1, ...): + * ADC analog watchdog thresholds match directly to ADC data register. + * @note On this STM32 series, setting of this feature is not conditioned to + * ADC state: + * ADC can be disabled, enabled with or without conversion on going + * on either ADC groups regular or injected. + * @rmtoll TR1 HT1 LL_ADC_SetAnalogWDThresholds\n + * TR2 HT2 LL_ADC_SetAnalogWDThresholds\n + * TR3 HT3 LL_ADC_SetAnalogWDThresholds\n + * TR1 LT1 LL_ADC_SetAnalogWDThresholds\n + * TR2 LT2 LL_ADC_SetAnalogWDThresholds\n + * TR3 LT3 LL_ADC_SetAnalogWDThresholds + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @arg @ref LL_ADC_AWD2 + * @arg @ref LL_ADC_AWD3 + * @param AWDThresholdsHighLow This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH + * @arg @ref LL_ADC_AWD_THRESHOLD_LOW + * @param AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow, + uint32_t AWDThresholdValue) +{ + /* Set bits with content of parameter "AWDThresholdValue" with bits */ + /* position in register and register position depending on parameters */ + /* "AWDThresholdsHighLow" and "AWDy". */ + /* Parameters "AWDy" and "AWDThresholdValue" are used with masks because */ + /* containing other bits reserved for other purpose. */ + __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, + ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_REGOFFSET_POS)); + + MODIFY_REG(*preg, + AWDThresholdsHighLow, + AWDThresholdValue << ((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH_SHIFT4)); +} + +/** + * @brief Get ADC analog watchdog threshold value of threshold high, + * threshold low or raw data with ADC thresholds high and low + * concatenated. + * @note If raw data with ADC thresholds high and low is retrieved, + * the data of each threshold high or low can be isolated + * using helper macro: + * @ref __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(). + * @note In case of ADC resolution different of 12 bits, + * analog watchdog thresholds data require a specific shift. + * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(). + * @rmtoll TR1 HT1 LL_ADC_GetAnalogWDThresholds\n + * TR2 HT2 LL_ADC_GetAnalogWDThresholds\n + * TR3 HT3 LL_ADC_GetAnalogWDThresholds\n + * TR1 LT1 LL_ADC_GetAnalogWDThresholds\n + * TR2 LT2 LL_ADC_GetAnalogWDThresholds\n + * TR3 LT3 LL_ADC_GetAnalogWDThresholds + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @arg @ref LL_ADC_AWD2 + * @arg @ref LL_ADC_AWD3 + * @param AWDThresholdsHighLow This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH + * @arg @ref LL_ADC_AWD_THRESHOLD_LOW + * @arg @ref LL_ADC_AWD_THRESHOLDS_HIGH_LOW + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +__STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(const ADC_TypeDef *ADCx, + uint32_t AWDy, uint32_t AWDThresholdsHighLow) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, + ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_REGOFFSET_POS)); + + return (uint32_t)(READ_BIT(*preg, + (AWDThresholdsHighLow | ADC_TR1_LT1)) + >> (((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH_SHIFT4) + & ~(AWDThresholdsHighLow & ADC_TR1_LT1))); +} + +/** + * @brief Set ADC analog watchdog filtering configuration + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @note On this STM32 series, this feature is only available on first + * analog watchdog (AWD1) + * @rmtoll TR1 AWDFILT LL_ADC_SetAWDFilteringConfiguration + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @param FilteringConfig This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD_FILTERING_NONE + * @arg @ref LL_ADC_AWD_FILTERING_2SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_3SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_4SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_5SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_6SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_7SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_8SAMPLES + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetAWDFilteringConfiguration(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t FilteringConfig) +{ + /* Prevent unused argument(s) compilation warning */ + (void)(AWDy); + MODIFY_REG(ADCx->TR1, ADC_TR1_AWDFILT, FilteringConfig); +} + +/** + * @brief Get ADC analog watchdog filtering configuration + * @note On this STM32 series, this feature is only available on first + * analog watchdog (AWD1) + * @rmtoll TR1 AWDFILT LL_ADC_GetAWDFilteringConfiguration + * @param ADCx ADC instance + * @param AWDy This parameter can be one of the following values: + * @arg @ref LL_ADC_AWD1 + * @retval Returned value can be: + * @arg @ref LL_ADC_AWD_FILTERING_NONE + * @arg @ref LL_ADC_AWD_FILTERING_2SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_3SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_4SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_5SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_6SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_7SAMPLES + * @arg @ref LL_ADC_AWD_FILTERING_8SAMPLES + */ +__STATIC_INLINE uint32_t LL_ADC_GetAWDFilteringConfiguration(const ADC_TypeDef *ADCx, uint32_t AWDy) +{ + /* Prevent unused argument(s) compilation warning */ + (void)(AWDy); + return (uint32_t)(READ_BIT(ADCx->TR1, ADC_TR1_AWDFILT)); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_oversampling Configuration of ADC transversal scope: oversampling + * @{ + */ + +/** + * @brief Set ADC oversampling scope: ADC groups regular and-or injected + * (availability of ADC group injected depends on STM32 series). + * @note If both groups regular and injected are selected, + * specify behavior of ADC group injected interrupting + * group regular: when ADC group injected is triggered, + * the oversampling on ADC group regular is either + * temporary stopped and continued, or resumed from start + * (oversampler buffer reset). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR2 ROVSE LL_ADC_SetOverSamplingScope\n + * CFGR2 JOVSE LL_ADC_SetOverSamplingScope\n + * CFGR2 ROVSM LL_ADC_SetOverSamplingScope + * @param ADCx ADC instance + * @param OvsScope This parameter can be one of the following values: + * @arg @ref LL_ADC_OVS_DISABLE + * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED + * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED + * @arg @ref LL_ADC_OVS_GRP_INJECTED + * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOverSamplingScope(ADC_TypeDef *ADCx, uint32_t OvsScope) +{ + MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM, OvsScope); +} + +/** + * @brief Get ADC oversampling scope: ADC groups regular and-or injected + * (availability of ADC group injected depends on STM32 series). + * @note If both groups regular and injected are selected, + * specify behavior of ADC group injected interrupting + * group regular: when ADC group injected is triggered, + * the oversampling on ADC group regular is either + * temporary stopped and continued, or resumed from start + * (oversampler buffer reset). + * @rmtoll CFGR2 ROVSE LL_ADC_GetOverSamplingScope\n + * CFGR2 JOVSE LL_ADC_GetOverSamplingScope\n + * CFGR2 ROVSM LL_ADC_GetOverSamplingScope + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_OVS_DISABLE + * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED + * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED + * @arg @ref LL_ADC_OVS_GRP_INJECTED + * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED + */ +__STATIC_INLINE uint32_t LL_ADC_GetOverSamplingScope(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM)); +} + +/** + * @brief Set ADC oversampling discontinuous mode (triggered mode) + * on the selected ADC group. + * @note Number of oversampled conversions are done either in: + * - continuous mode (all conversions of oversampling ratio + * are done from 1 trigger) + * - discontinuous mode (each conversion of oversampling ratio + * needs a trigger) + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on group regular. + * @note On this STM32 series, oversampling discontinuous mode + * (triggered mode) can be used only when oversampling is + * set on group regular only and in resumed mode. + * @rmtoll CFGR2 TROVS LL_ADC_SetOverSamplingDiscont + * @param ADCx ADC instance + * @param OverSamplingDiscont This parameter can be one of the following values: + * @arg @ref LL_ADC_OVS_REG_CONT + * @arg @ref LL_ADC_OVS_REG_DISCONT + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetOverSamplingDiscont(ADC_TypeDef *ADCx, uint32_t OverSamplingDiscont) +{ + MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_TROVS, OverSamplingDiscont); +} + +/** + * @brief Get ADC oversampling discontinuous mode (triggered mode) + * on the selected ADC group. + * @note Number of oversampled conversions are done either in: + * - continuous mode (all conversions of oversampling ratio + * are done from 1 trigger) + * - discontinuous mode (each conversion of oversampling ratio + * needs a trigger) + * @rmtoll CFGR2 TROVS LL_ADC_GetOverSamplingDiscont + * @param ADCx ADC instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_OVS_REG_CONT + * @arg @ref LL_ADC_OVS_REG_DISCONT + */ +__STATIC_INLINE uint32_t LL_ADC_GetOverSamplingDiscont(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_TROVS)); +} + +/** + * @brief Set ADC oversampling + * (impacting both ADC groups regular and injected) + * @note This function set the 2 items of oversampling configuration: + * - ratio + * - shift + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be disabled or enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CFGR2 OVSS LL_ADC_ConfigOverSamplingRatioShift\n + * CFGR2 OVSR LL_ADC_ConfigOverSamplingRatioShift + * @param ADCx ADC instance + * @param Ratio This parameter can be one of the following values: + * @arg @ref LL_ADC_OVS_RATIO_2 + * @arg @ref LL_ADC_OVS_RATIO_4 + * @arg @ref LL_ADC_OVS_RATIO_8 + * @arg @ref LL_ADC_OVS_RATIO_16 + * @arg @ref LL_ADC_OVS_RATIO_32 + * @arg @ref LL_ADC_OVS_RATIO_64 + * @arg @ref LL_ADC_OVS_RATIO_128 + * @arg @ref LL_ADC_OVS_RATIO_256 + * @param Shift This parameter can be one of the following values: + * @arg @ref LL_ADC_OVS_SHIFT_NONE + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8 + * @retval None + */ +__STATIC_INLINE void LL_ADC_ConfigOverSamplingRatioShift(ADC_TypeDef *ADCx, uint32_t Ratio, uint32_t Shift) +{ + MODIFY_REG(ADCx->CFGR2, (ADC_CFGR2_OVSS | ADC_CFGR2_OVSR), (Shift | Ratio)); +} + +/** + * @brief Get ADC oversampling ratio + * (impacting both ADC groups regular and injected) + * @rmtoll CFGR2 OVSR LL_ADC_GetOverSamplingRatio + * @param ADCx ADC instance + * @retval Ratio This parameter can be one of the following values: + * @arg @ref LL_ADC_OVS_RATIO_2 + * @arg @ref LL_ADC_OVS_RATIO_4 + * @arg @ref LL_ADC_OVS_RATIO_8 + * @arg @ref LL_ADC_OVS_RATIO_16 + * @arg @ref LL_ADC_OVS_RATIO_32 + * @arg @ref LL_ADC_OVS_RATIO_64 + * @arg @ref LL_ADC_OVS_RATIO_128 + * @arg @ref LL_ADC_OVS_RATIO_256 + */ +__STATIC_INLINE uint32_t LL_ADC_GetOverSamplingRatio(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSR)); +} + +/** + * @brief Get ADC oversampling shift + * (impacting both ADC groups regular and injected) + * @rmtoll CFGR2 OVSS LL_ADC_GetOverSamplingShift + * @param ADCx ADC instance + * @retval Shift This parameter can be one of the following values: + * @arg @ref LL_ADC_OVS_SHIFT_NONE + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7 + * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8 + */ +__STATIC_INLINE uint32_t LL_ADC_GetOverSamplingShift(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSS)); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multimode + * @{ + */ + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Set ADC multimode configuration to operate in independent mode + * or multimode (for devices with several ADC instances). + * @note If multimode configuration: the selected ADC instance is + * either master or slave depending on hardware. + * Refer to reference manual. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * All ADC instances of the ADC common group must be disabled. + * This check can be done with function @ref LL_ADC_IsEnabled() for each + * ADC instance or by using helper macro + * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). + * @rmtoll CCR DUAL LL_ADC_SetMultimode + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param Multimode This parameter can be one of the following values: + * @arg @ref LL_ADC_MULTI_INDEPENDENT + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT + * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL + * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT + * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT + * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode) +{ + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DUAL, Multimode); +} + +/** + * @brief Get ADC multimode configuration to operate in independent mode + * or multimode (for devices with several ADC instances). + * @note If multimode configuration: the selected ADC instance is + * either master or slave depending on hardware. + * Refer to reference manual. + * @rmtoll CCR DUAL LL_ADC_GetMultimode + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_MULTI_INDEPENDENT + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT + * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL + * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT + * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM + * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT + * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM + */ +__STATIC_INLINE uint32_t LL_ADC_GetMultimode(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DUAL)); +} + +/** + * @brief Set ADC multimode conversion data transfer: no transfer + * or transfer by DMA. + * @note If ADC multimode transfer by DMA is not selected: + * each ADC uses its own DMA channel, with its individual + * DMA transfer settings. + * If ADC multimode transfer by DMA is selected: + * One DMA channel is used for both ADC (DMA of ADC master) + * Specifies the DMA requests mode: + * - Limited mode (One shot mode): DMA transfer requests are stopped + * when number of DMA data transfers (number of + * ADC conversions) is reached. + * This ADC mode is intended to be used with DMA mode non-circular. + * - Unlimited mode: DMA transfer requests are unlimited, + * whatever number of DMA data transfers (number of + * ADC conversions). + * This ADC mode is intended to be used with DMA mode circular. + * @note If ADC DMA requests mode is set to unlimited and DMA is set to + * mode non-circular: + * when DMA transfers size will be reached, DMA will stop transfers of + * ADC conversions data ADC will raise an overrun error + * (overrun flag and interruption if enabled). + * @note How to retrieve multimode conversion data: + * Whatever multimode transfer by DMA setting: using function + * @ref LL_ADC_REG_ReadMultiConversionData32(). + * If ADC multimode transfer by DMA is selected: conversion data + * is a raw data with ADC master and slave concatenated. + * A macro is available to get the conversion data of + * ADC master or ADC slave: see helper macro + * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * All ADC instances of the ADC common group must be disabled + * or enabled without conversion on going on group regular. + * @rmtoll CCR MDMA LL_ADC_SetMultiDMATransfer\n + * CCR DMACFG LL_ADC_SetMultiDMATransfer + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param MultiDMATransfer This parameter can be one of the following values: + * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC + * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B + * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B + * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B + * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMATransfer) +{ + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, MultiDMATransfer); +} + +/** + * @brief Get ADC multimode conversion data transfer: no transfer + * or transfer by DMA. + * @note If ADC multimode transfer by DMA is not selected: + * each ADC uses its own DMA channel, with its individual + * DMA transfer settings. + * If ADC multimode transfer by DMA is selected: + * One DMA channel is used for both ADC (DMA of ADC master) + * Specifies the DMA requests mode: + * - Limited mode (One shot mode): DMA transfer requests are stopped + * when number of DMA data transfers (number of + * ADC conversions) is reached. + * This ADC mode is intended to be used with DMA mode non-circular. + * - Unlimited mode: DMA transfer requests are unlimited, + * whatever number of DMA data transfers (number of + * ADC conversions). + * This ADC mode is intended to be used with DMA mode circular. + * @note If ADC DMA requests mode is set to unlimited and DMA is set to + * mode non-circular: + * when DMA transfers size will be reached, DMA will stop transfers of + * ADC conversions data ADC will raise an overrun error + * (overrun flag and interruption if enabled). + * @note How to retrieve multimode conversion data: + * Whatever multimode transfer by DMA setting: using function + * @ref LL_ADC_REG_ReadMultiConversionData32(). + * If ADC multimode transfer by DMA is selected: conversion data + * is a raw data with ADC master and slave concatenated. + * A macro is available to get the conversion data of + * ADC master or ADC slave: see helper macro + * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). + * @rmtoll CCR MDMA LL_ADC_GetMultiDMATransfer\n + * CCR DMACFG LL_ADC_GetMultiDMATransfer + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC + * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B + * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B + * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B + * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B + */ +__STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG)); +} + +/** + * @brief Set ADC multimode delay between 2 sampling phases. + * @note The sampling delay range depends on ADC resolution: + * - ADC resolution 12 bits can have maximum delay of 12 cycles. + * - ADC resolution 10 bits can have maximum delay of 10 cycles. + * - ADC resolution 8 bits can have maximum delay of 8 cycles. + * - ADC resolution 6 bits can have maximum delay of 6 cycles. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * All ADC instances of the ADC common group must be disabled. + * This check can be done with function @ref LL_ADC_IsEnabled() for each + * ADC instance or by using helper macro helper macro + * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). + * @rmtoll CCR DELAY LL_ADC_SetMultiTwoSamplingDelay + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param MultiTwoSamplingDelay This parameter can be one of the following values: + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3) + * + * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n + * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n + * (3) Parameter available only if ADC resolution is 12 bits. + * @retval None + */ +__STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiTwoSamplingDelay) +{ + MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay); +} + +/** + * @brief Get ADC multimode delay between 2 sampling phases. + * @rmtoll CCR DELAY LL_ADC_GetMultiTwoSamplingDelay + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval Returned value can be one of the following values: + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3) + * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3) + * + * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n + * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n + * (3) Parameter available only if ADC resolution is 12 bits. + */ +__STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY)); +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ +/** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance + * @{ + */ + +/** + * @brief Put ADC instance in deep power down state. + * @note In case of ADC calibration necessary: When ADC is in deep-power-down + * state, the internal analog calibration is lost. After exiting from + * deep power down, calibration must be relaunched or calibration factor + * (preliminarily saved) must be set back into calibration register. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled. + * @rmtoll CR DEEPPWD LL_ADC_EnableDeepPowerDown + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableDeepPowerDown(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_DEEPPWD); +} + +/** + * @brief Disable ADC deep power down mode. + * @note In case of ADC calibration necessary: When ADC is in deep-power-down + * state, the internal analog calibration is lost. After exiting from + * deep power down, calibration must be relaunched or calibration factor + * (preliminarily saved) must be set back into calibration register. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled. + * @rmtoll CR DEEPPWD LL_ADC_DisableDeepPowerDown + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableDeepPowerDown(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + CLEAR_BIT(ADCx->CR, (ADC_CR_DEEPPWD | ADC_CR_BITS_PROPERTY_RS)); +} + +/** + * @brief Get the selected ADC instance deep power down state. + * @rmtoll CR DEEPPWD LL_ADC_IsDeepPowerDownEnabled + * @param ADCx ADC instance + * @retval 0: deep power down is disabled, 1: deep power down is enabled. + */ +__STATIC_INLINE uint32_t LL_ADC_IsDeepPowerDownEnabled(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_DEEPPWD) == (ADC_CR_DEEPPWD)) ? 1UL : 0UL); +} + +/** + * @brief Enable ADC instance internal voltage regulator. + * @note On this STM32 series, after ADC internal voltage regulator enable, + * a delay for ADC internal voltage regulator stabilization + * is required before performing a ADC calibration or ADC enable. + * Refer to device datasheet, parameter tADCVREG_STUP. + * Refer to literal @ref LL_ADC_DELAY_INTERNAL_REGUL_STAB_US. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled. + * @rmtoll CR ADVREGEN LL_ADC_EnableInternalRegulator + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADVREGEN); +} + +/** + * @brief Disable ADC internal voltage regulator. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled. + * @rmtoll CR ADVREGEN LL_ADC_DisableInternalRegulator + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableInternalRegulator(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN | ADC_CR_BITS_PROPERTY_RS)); +} + +/** + * @brief Get the selected ADC instance internal voltage regulator state. + * @rmtoll CR ADVREGEN LL_ADC_IsInternalRegulatorEnabled + * @param ADCx ADC instance + * @retval 0: internal regulator is disabled, 1: internal regulator is enabled. + */ +__STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable the selected ADC instance. + * @note On this STM32 series, after ADC enable, a delay for + * ADC internal analog stabilization is required before performing a + * ADC conversion start. + * Refer to device datasheet, parameter tSTAB. + * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC + * is enabled and when conversion clock is active. + * (not only core clock: this ADC has a dual clock domain) + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled and ADC internal voltage regulator enabled. + * @rmtoll CR ADEN LL_ADC_Enable + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADEN); +} + +/** + * @brief Disable the selected ADC instance. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be not disabled. Must be enabled without conversion on going + * on either groups regular or injected. + * @rmtoll CR ADDIS LL_ADC_Disable + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADDIS); +} + +/** + * @brief Get the selected ADC instance enable state. + * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC + * is enabled and when conversion clock is active. + * (not only core clock: this ADC has a dual clock domain) + * @rmtoll CR ADEN LL_ADC_IsEnabled + * @param ADCx ADC instance + * @retval 0: ADC is disabled, 1: ADC is enabled. + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabled(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL); +} + +/** + * @brief Get the selected ADC instance disable state. + * @rmtoll CR ADDIS LL_ADC_IsDisableOngoing + * @param ADCx ADC instance + * @retval 0: no ADC disable command on going. + */ +__STATIC_INLINE uint32_t LL_ADC_IsDisableOngoing(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS)) ? 1UL : 0UL); +} + +/** + * @brief Start ADC calibration in the mode single-ended + * or differential (for devices with differential mode available). + * @note On this STM32 series, a minimum number of ADC clock cycles + * are required between ADC end of calibration and ADC enable. + * Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES. + * @note For devices with differential mode available: + * Calibration of offset is specific to each of + * single-ended and differential modes + * (calibration run must be performed for each of these + * differential modes, if used afterwards and if the application + * requires their calibration). + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be ADC disabled. + * @rmtoll CR ADCAL LL_ADC_StartCalibration\n + * CR ADCALDIF LL_ADC_StartCalibration + * @param ADCx ADC instance + * @param SingleDiff This parameter can be one of the following values: + * @arg @ref LL_ADC_SINGLE_ENDED + * @arg @ref LL_ADC_DIFFERENTIAL_ENDED + * @retval None + */ +__STATIC_INLINE void LL_ADC_StartCalibration(ADC_TypeDef *ADCx, uint32_t SingleDiff) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_ADCALDIF | ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADCAL | (SingleDiff & ADC_SINGLEDIFF_CALIB_START_MASK)); +} + +/** + * @brief Get ADC calibration state. + * @rmtoll CR ADCAL LL_ADC_IsCalibrationOnGoing + * @param ADCx ADC instance + * @retval 0: calibration complete, 1: calibration in progress. + */ +__STATIC_INLINE uint32_t LL_ADC_IsCalibrationOnGoing(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_ADCAL) == (ADC_CR_ADCAL)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular + * @{ + */ + +/** + * @brief Start ADC group regular conversion. + * @note On this STM32 series, this function is relevant for both + * internal trigger (SW start) and external trigger: + * - If ADC trigger has been set to software start, ADC conversion + * starts immediately. + * - If ADC trigger has been set to external trigger, ADC conversion + * will start at next trigger event (on the selected trigger edge) + * following the ADC start conversion command. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled without conversion on going on group regular, + * without conversion stop command on going on group regular, + * without ADC disable command on going. + * @rmtoll CR ADSTART LL_ADC_REG_StartConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADSTART); +} + +/** + * @brief Stop ADC group regular conversion. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled with conversion on going on group regular, + * without ADC disable command on going. + * @rmtoll CR ADSTP LL_ADC_REG_StopConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_ADSTP); +} + +/** + * @brief Get ADC group regular conversion state. + * @rmtoll CR ADSTART LL_ADC_REG_IsConversionOngoing + * @param ADCx ADC instance + * @retval 0: no conversion is on going on ADC group regular. + */ +__STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL); +} + +/** + * @brief Get ADC group regular command of conversion stop state + * @rmtoll CR ADSTP LL_ADC_REG_IsStopConversionOngoing + * @param ADCx ADC instance + * @retval 0: no command of conversion stop is on going on ADC group regular. + */ +__STATIC_INLINE uint32_t LL_ADC_REG_IsStopConversionOngoing(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_ADSTP) == (ADC_CR_ADSTP)) ? 1UL : 0UL); +} + +/** + * @brief Start ADC sampling phase for sampling time trigger mode + * @note This function is relevant only when + * - @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED has been set + * using @ref LL_ADC_REG_SetSamplingMode + * - @ref LL_ADC_REG_TRIG_SOFTWARE is used as trigger source + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled without conversion on going on group regular, + * without conversion stop command on going on group regular, + * without ADC disable command on going. + * @rmtoll CFGR2 SWTRIG LL_ADC_REG_StartSamplingPhase + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_StartSamplingPhase(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->CFGR2, ADC_CFGR2_SWTRIG); +} + +/** + * @brief Stop ADC sampling phase for sampling time trigger mode and start conversion + * @note This function is relevant only when + * - @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED has been set + * using @ref LL_ADC_REG_SetSamplingMode + * - @ref LL_ADC_REG_TRIG_SOFTWARE is used as trigger source + * - @ref LL_ADC_REG_StartSamplingPhase has been called to start + * the sampling phase + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled without conversion on going on group regular, + * without conversion stop command on going on group regular, + * without ADC disable command on going. + * @rmtoll CFGR2 SWTRIG LL_ADC_REG_StopSamplingPhase + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_REG_StopSamplingPhase(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->CFGR2, ADC_CFGR2_SWTRIG); +} + +/** + * @brief Get ADC group regular conversion data, range fit for + * all ADC configurations: all ADC resolutions and + * all oversampling increased data width (for devices + * with feature oversampling). + * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32 + * @param ADCx ADC instance + * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(const ADC_TypeDef *ADCx) +{ + return (uint32_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +} + +/** + * @brief Get ADC group regular conversion data, range fit for + * ADC resolution 12 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_REG_ReadConversionData32. + * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12 + * @param ADCx ADC instance + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +__STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(const ADC_TypeDef *ADCx) +{ + return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +} + +/** + * @brief Get ADC group regular conversion data, range fit for + * ADC resolution 10 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_REG_ReadConversionData32. + * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10 + * @param ADCx ADC instance + * @retval Value between Min_Data=0x000 and Max_Data=0x3FF + */ +__STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(const ADC_TypeDef *ADCx) +{ + return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +} + +/** + * @brief Get ADC group regular conversion data, range fit for + * ADC resolution 8 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_REG_ReadConversionData32. + * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8 + * @param ADCx ADC instance + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(const ADC_TypeDef *ADCx) +{ + return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +} + +/** + * @brief Get ADC group regular conversion data, range fit for + * ADC resolution 6 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_REG_ReadConversionData32. + * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6 + * @param ADCx ADC instance + * @retval Value between Min_Data=0x00 and Max_Data=0x3F + */ +__STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(const ADC_TypeDef *ADCx) +{ + return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +} + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Get ADC multimode conversion data of ADC master, ADC slave + * or raw data with ADC master and slave concatenated. + * @note If raw data with ADC master and slave concatenated is retrieved, + * a macro is available to get the conversion data of + * ADC master or ADC slave: see helper macro + * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). + * (however this macro is mainly intended for multimode + * transfer by DMA, because this function can do the same + * by getting multimode conversion data of ADC master or ADC slave + * separately). + * @rmtoll CDR RDATA_MST LL_ADC_REG_ReadMultiConversionData32\n + * CDR RDATA_SLV LL_ADC_REG_ReadMultiConversionData32 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param ConversionData This parameter can be one of the following values: + * @arg @ref LL_ADC_MULTI_MASTER + * @arg @ref LL_ADC_MULTI_SLAVE + * @arg @ref LL_ADC_MULTI_MASTER_SLAVE + * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(const ADC_Common_TypeDef *ADCxy_COMMON, + uint32_t ConversionData) +{ + return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR, + ConversionData) + >> (POSITION_VAL(ConversionData) & 0x1FUL) + ); +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected + * @{ + */ + +/** + * @brief Start ADC group injected conversion. + * @note On this STM32 series, this function is relevant for both + * internal trigger (SW start) and external trigger: + * - If ADC trigger has been set to software start, ADC conversion + * starts immediately. + * - If ADC trigger has been set to external trigger, ADC conversion + * will start at next trigger event (on the selected trigger edge) + * following the ADC start conversion command. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled without conversion on going on group injected, + * without conversion stop command on going on group injected, + * without ADC disable command on going. + * @rmtoll CR JADSTART LL_ADC_INJ_StartConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_JADSTART); +} + +/** + * @brief Stop ADC group injected conversion. + * @note On this STM32 series, setting of this feature is conditioned to + * ADC state: + * ADC must be enabled with conversion on going on group injected, + * without ADC disable command on going. + * @rmtoll CR JADSTP LL_ADC_INJ_StopConversion + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx) +{ + /* Note: Write register with some additional bits forced to state reset */ + /* instead of modifying only the selected bit for this function, */ + /* to not interfere with bits with HW property "rs". */ + MODIFY_REG(ADCx->CR, + ADC_CR_BITS_PROPERTY_RS, + ADC_CR_JADSTP); +} + +/** + * @brief Get ADC group injected conversion state. + * @rmtoll CR JADSTART LL_ADC_INJ_IsConversionOngoing + * @param ADCx ADC instance + * @retval 0: no conversion is on going on ADC group injected. + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_IsConversionOngoing(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART)) ? 1UL : 0UL); +} + +/** + * @brief Get ADC group injected command of conversion stop state + * @rmtoll CR JADSTP LL_ADC_INJ_IsStopConversionOngoing + * @param ADCx ADC instance + * @retval 0: no command of conversion stop is on going on ADC group injected. + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_IsStopConversionOngoing(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->CR, ADC_CR_JADSTP) == (ADC_CR_JADSTP)) ? 1UL : 0UL); +} + +/** + * @brief Get ADC group injected conversion data, range fit for + * all ADC configurations: all ADC resolutions and + * all oversampling increased data width (for devices + * with feature oversampling). + * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n + * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n + * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n + * JDR4 JDATA LL_ADC_INJ_ReadConversionData32 + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, + ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS)); + + return (uint32_t)(READ_BIT(*preg, + ADC_JDR1_JDATA) + ); +} + +/** + * @brief Get ADC group injected conversion data, range fit for + * ADC resolution 12 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_INJ_ReadConversionData32. + * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n + * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n + * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n + * JDR4 JDATA LL_ADC_INJ_ReadConversionData12 + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + */ +__STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, + ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS)); + + return (uint16_t)(READ_BIT(*preg, + ADC_JDR1_JDATA) + ); +} + +/** + * @brief Get ADC group injected conversion data, range fit for + * ADC resolution 10 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_INJ_ReadConversionData32. + * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData10\n + * JDR2 JDATA LL_ADC_INJ_ReadConversionData10\n + * JDR3 JDATA LL_ADC_INJ_ReadConversionData10\n + * JDR4 JDATA LL_ADC_INJ_ReadConversionData10 + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @retval Value between Min_Data=0x000 and Max_Data=0x3FF + */ +__STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, + ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS)); + + return (uint16_t)(READ_BIT(*preg, + ADC_JDR1_JDATA) + ); +} + +/** + * @brief Get ADC group injected conversion data, range fit for + * ADC resolution 8 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_INJ_ReadConversionData32. + * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData8\n + * JDR2 JDATA LL_ADC_INJ_ReadConversionData8\n + * JDR3 JDATA LL_ADC_INJ_ReadConversionData8\n + * JDR4 JDATA LL_ADC_INJ_ReadConversionData8 + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, + ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS)); + + return (uint8_t)(READ_BIT(*preg, + ADC_JDR1_JDATA) + ); +} + +/** + * @brief Get ADC group injected conversion data, range fit for + * ADC resolution 6 bits. + * @note For devices with feature oversampling: Oversampling + * can increase data width, function for extended range + * may be needed: @ref LL_ADC_INJ_ReadConversionData32. + * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData6\n + * JDR2 JDATA LL_ADC_INJ_ReadConversionData6\n + * JDR3 JDATA LL_ADC_INJ_ReadConversionData6\n + * JDR4 JDATA LL_ADC_INJ_ReadConversionData6 + * @param ADCx ADC instance + * @param Rank This parameter can be one of the following values: + * @arg @ref LL_ADC_INJ_RANK_1 + * @arg @ref LL_ADC_INJ_RANK_2 + * @arg @ref LL_ADC_INJ_RANK_3 + * @arg @ref LL_ADC_INJ_RANK_4 + * @retval Value between Min_Data=0x00 and Max_Data=0x3F + */ +__STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(const ADC_TypeDef *ADCx, uint32_t Rank) +{ + const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, + ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS)); + + return (uint8_t)(READ_BIT(*preg, + ADC_JDR1_JDATA) + ); +} + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_FLAG_Management ADC flag management + * @{ + */ + +/** + * @brief Get flag ADC ready. + * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC + * is enabled and when conversion clock is active. + * (not only core clock: this ADC has a dual clock domain) + * @rmtoll ISR ADRDY LL_ADC_IsActiveFlag_ADRDY + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_ADRDY(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_ADRDY) == (LL_ADC_FLAG_ADRDY)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group regular end of unitary conversion. + * @rmtoll ISR EOC LL_ADC_IsActiveFlag_EOC + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOC(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, ADC_ISR_EOC) == (ADC_ISR_EOC)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group regular end of sequence conversions. + * @rmtoll ISR EOS LL_ADC_IsActiveFlag_EOS + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOS(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOS) == (LL_ADC_FLAG_EOS)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group regular overrun. + * @rmtoll ISR OVR LL_ADC_IsActiveFlag_OVR + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group regular end of sampling phase. + * @rmtoll ISR EOSMP LL_ADC_IsActiveFlag_EOSMP + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOSMP(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOSMP) == (LL_ADC_FLAG_EOSMP)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group injected end of unitary conversion. + * @rmtoll ISR JEOC LL_ADC_IsActiveFlag_JEOC + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOC(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOC) == (LL_ADC_FLAG_JEOC)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group injected end of sequence conversions. + * @rmtoll ISR JEOS LL_ADC_IsActiveFlag_JEOS + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC group injected contexts queue overflow. + * @rmtoll ISR JQOVF LL_ADC_IsActiveFlag_JQOVF + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JQOVF(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_JQOVF) == (LL_ADC_FLAG_JQOVF)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC analog watchdog 1 flag + * @rmtoll ISR AWD1 LL_ADC_IsActiveFlag_AWD1 + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC analog watchdog 2. + * @rmtoll ISR AWD2 LL_ADC_IsActiveFlag_AWD2 + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD2(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD2) == (LL_ADC_FLAG_AWD2)) ? 1UL : 0UL); +} + +/** + * @brief Get flag ADC analog watchdog 3. + * @rmtoll ISR AWD3 LL_ADC_IsActiveFlag_AWD3 + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD3(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD3) == (LL_ADC_FLAG_AWD3)) ? 1UL : 0UL); +} + +/** + * @brief Clear flag ADC ready. + * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC + * is enabled and when conversion clock is active. + * (not only core clock: this ADC has a dual clock domain) + * @rmtoll ISR ADRDY LL_ADC_ClearFlag_ADRDY + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_ADRDY(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_ADRDY); +} + +/** + * @brief Clear flag ADC group regular end of unitary conversion. + * @rmtoll ISR EOC LL_ADC_ClearFlag_EOC + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_EOC(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOC); +} + +/** + * @brief Clear flag ADC group regular end of sequence conversions. + * @rmtoll ISR EOS LL_ADC_ClearFlag_EOS + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_EOS(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOS); +} + +/** + * @brief Clear flag ADC group regular overrun. + * @rmtoll ISR OVR LL_ADC_ClearFlag_OVR + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_OVR); +} + +/** + * @brief Clear flag ADC group regular end of sampling phase. + * @rmtoll ISR EOSMP LL_ADC_ClearFlag_EOSMP + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_EOSMP(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOSMP); +} + +/** + * @brief Clear flag ADC group injected end of unitary conversion. + * @rmtoll ISR JEOC LL_ADC_ClearFlag_JEOC + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_JEOC(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOC); +} + +/** + * @brief Clear flag ADC group injected end of sequence conversions. + * @rmtoll ISR JEOS LL_ADC_ClearFlag_JEOS + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOS); +} + +/** + * @brief Clear flag ADC group injected contexts queue overflow. + * @rmtoll ISR JQOVF LL_ADC_ClearFlag_JQOVF + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_JQOVF(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JQOVF); +} + +/** + * @brief Clear flag ADC analog watchdog 1. + * @rmtoll ISR AWD1 LL_ADC_ClearFlag_AWD1 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD1); +} + +/** + * @brief Clear flag ADC analog watchdog 2. + * @rmtoll ISR AWD2 LL_ADC_ClearFlag_AWD2 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_AWD2(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD2); +} + +/** + * @brief Clear flag ADC analog watchdog 3. + * @rmtoll ISR AWD3 LL_ADC_ClearFlag_AWD3 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_ClearFlag_AWD3(ADC_TypeDef *ADCx) +{ + WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD3); +} + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Get flag multimode ADC ready of the ADC master. + * @rmtoll CSR ADRDY_MST LL_ADC_IsActiveFlag_MST_ADRDY + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_ADRDY(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_MST) == (LL_ADC_FLAG_ADRDY_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC ready of the ADC slave. + * @rmtoll CSR ADRDY_SLV LL_ADC_IsActiveFlag_SLV_ADRDY + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_ADRDY(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_SLV) == (LL_ADC_FLAG_ADRDY_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC master. + * @rmtoll CSR EOC_MST LL_ADC_IsActiveFlag_MST_EOC + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOC(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC slave. + * @rmtoll CSR EOC_SLV LL_ADC_IsActiveFlag_SLV_EOC + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOC(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC master. + * @rmtoll CSR EOS_MST LL_ADC_IsActiveFlag_MST_EOS + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOS(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_MST) == (LL_ADC_FLAG_EOS_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC slave. + * @rmtoll CSR EOS_SLV LL_ADC_IsActiveFlag_SLV_EOS + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOS(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_SLV) == (LL_ADC_FLAG_EOS_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular overrun of the ADC master. + * @rmtoll CSR OVR_MST LL_ADC_IsActiveFlag_MST_OVR + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_OVR(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_MST) == (LL_ADC_FLAG_OVR_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular overrun of the ADC slave. + * @rmtoll CSR OVR_SLV LL_ADC_IsActiveFlag_SLV_OVR + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_OVR(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV) == (LL_ADC_FLAG_OVR_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular end of sampling of the ADC master. + * @rmtoll CSR EOSMP_MST LL_ADC_IsActiveFlag_MST_EOSMP + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOSMP(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_MST) == (LL_ADC_FLAG_EOSMP_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group regular end of sampling of the ADC slave. + * @rmtoll CSR EOSMP_SLV LL_ADC_IsActiveFlag_SLV_EOSMP + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOSMP(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_SLV) == (LL_ADC_FLAG_EOSMP_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC master. + * @rmtoll CSR JEOC_MST LL_ADC_IsActiveFlag_MST_JEOC + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOC(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_MST) == (LL_ADC_FLAG_JEOC_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC slave. + * @rmtoll CSR JEOC_SLV LL_ADC_IsActiveFlag_SLV_JEOC + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOC(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_SLV) == (LL_ADC_FLAG_JEOC_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC master. + * @rmtoll CSR JEOS_MST LL_ADC_IsActiveFlag_MST_JEOS + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOS(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_MST) == (LL_ADC_FLAG_JEOS_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC slave. + * @rmtoll CSR JEOS_SLV LL_ADC_IsActiveFlag_SLV_JEOS + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOS(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_SLV) == (LL_ADC_FLAG_JEOS_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group injected context queue overflow of the ADC master. + * @rmtoll CSR JQOVF_MST LL_ADC_IsActiveFlag_MST_JQOVF + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JQOVF(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_MST) == (LL_ADC_FLAG_JQOVF_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC group injected context queue overflow of the ADC slave. + * @rmtoll CSR JQOVF_SLV LL_ADC_IsActiveFlag_SLV_JQOVF + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JQOVF(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_SLV) == (LL_ADC_FLAG_JQOVF_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC analog watchdog 1 of the ADC master. + * @rmtoll CSR AWD1_MST LL_ADC_IsActiveFlag_MST_AWD1 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD1(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_MST) == (LL_ADC_FLAG_AWD1_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode analog watchdog 1 of the ADC slave. + * @rmtoll CSR AWD1_SLV LL_ADC_IsActiveFlag_SLV_AWD1 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD1(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV) == (LL_ADC_FLAG_AWD1_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC analog watchdog 2 of the ADC master. + * @rmtoll CSR AWD2_MST LL_ADC_IsActiveFlag_MST_AWD2 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD2(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_MST) == (LL_ADC_FLAG_AWD2_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC analog watchdog 2 of the ADC slave. + * @rmtoll CSR AWD2_SLV LL_ADC_IsActiveFlag_SLV_AWD2 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD2(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_SLV) == (LL_ADC_FLAG_AWD2_SLV)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC analog watchdog 3 of the ADC master. + * @rmtoll CSR AWD3_MST LL_ADC_IsActiveFlag_MST_AWD3 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD3(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_MST) == (LL_ADC_FLAG_AWD3_MST)) ? 1UL : 0UL); +} + +/** + * @brief Get flag multimode ADC analog watchdog 3 of the ADC slave. + * @rmtoll CSR AWD3_SLV LL_ADC_IsActiveFlag_SLV_AWD3 + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD3(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_SLV) == (LL_ADC_FLAG_AWD3_SLV)) ? 1UL : 0UL); +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ + +/** @defgroup ADC_LL_EF_IT_Management ADC IT management + * @{ + */ + +/** + * @brief Enable ADC ready. + * @rmtoll IER ADRDYIE LL_ADC_EnableIT_ADRDY + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_ADRDY(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_ADRDY); +} + +/** + * @brief Enable interruption ADC group regular end of unitary conversion. + * @rmtoll IER EOCIE LL_ADC_EnableIT_EOC + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_EOC(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_EOC); +} + +/** + * @brief Enable interruption ADC group regular end of sequence conversions. + * @rmtoll IER EOSIE LL_ADC_EnableIT_EOS + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_EOS(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_EOS); +} + +/** + * @brief Enable ADC group regular interruption overrun. + * @rmtoll IER OVRIE LL_ADC_EnableIT_OVR + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_OVR); +} + +/** + * @brief Enable interruption ADC group regular end of sampling. + * @rmtoll IER EOSMPIE LL_ADC_EnableIT_EOSMP + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_EOSMP(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_EOSMP); +} + +/** + * @brief Enable interruption ADC group injected end of unitary conversion. + * @rmtoll IER JEOCIE LL_ADC_EnableIT_JEOC + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_JEOC(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_JEOC); +} + +/** + * @brief Enable interruption ADC group injected end of sequence conversions. + * @rmtoll IER JEOSIE LL_ADC_EnableIT_JEOS + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_JEOS); +} + +/** + * @brief Enable interruption ADC group injected context queue overflow. + * @rmtoll IER JQOVFIE LL_ADC_EnableIT_JQOVF + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_JQOVF(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_JQOVF); +} + +/** + * @brief Enable interruption ADC analog watchdog 1. + * @rmtoll IER AWD1IE LL_ADC_EnableIT_AWD1 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_AWD1); +} + +/** + * @brief Enable interruption ADC analog watchdog 2. + * @rmtoll IER AWD2IE LL_ADC_EnableIT_AWD2 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_AWD2(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_AWD2); +} + +/** + * @brief Enable interruption ADC analog watchdog 3. + * @rmtoll IER AWD3IE LL_ADC_EnableIT_AWD3 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_EnableIT_AWD3(ADC_TypeDef *ADCx) +{ + SET_BIT(ADCx->IER, LL_ADC_IT_AWD3); +} + +/** + * @brief Disable interruption ADC ready. + * @rmtoll IER ADRDYIE LL_ADC_DisableIT_ADRDY + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_ADRDY(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_ADRDY); +} + +/** + * @brief Disable interruption ADC group regular end of unitary conversion. + * @rmtoll IER EOCIE LL_ADC_DisableIT_EOC + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_EOC(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOC); +} + +/** + * @brief Disable interruption ADC group regular end of sequence conversions. + * @rmtoll IER EOSIE LL_ADC_DisableIT_EOS + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_EOS(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOS); +} + +/** + * @brief Disable interruption ADC group regular overrun. + * @rmtoll IER OVRIE LL_ADC_DisableIT_OVR + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_OVR); +} + +/** + * @brief Disable interruption ADC group regular end of sampling. + * @rmtoll IER EOSMPIE LL_ADC_DisableIT_EOSMP + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_EOSMP(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOSMP); +} + +/** + * @brief Disable interruption ADC group regular end of unitary conversion. + * @rmtoll IER JEOCIE LL_ADC_DisableIT_JEOC + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_JEOC(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOC); +} + +/** + * @brief Disable interruption ADC group injected end of sequence conversions. + * @rmtoll IER JEOSIE LL_ADC_DisableIT_JEOS + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOS); +} + +/** + * @brief Disable interruption ADC group injected context queue overflow. + * @rmtoll IER JQOVFIE LL_ADC_DisableIT_JQOVF + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_JQOVF(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_JQOVF); +} + +/** + * @brief Disable interruption ADC analog watchdog 1. + * @rmtoll IER AWD1IE LL_ADC_DisableIT_AWD1 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD1); +} + +/** + * @brief Disable interruption ADC analog watchdog 2. + * @rmtoll IER AWD2IE LL_ADC_DisableIT_AWD2 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_AWD2(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD2); +} + +/** + * @brief Disable interruption ADC analog watchdog 3. + * @rmtoll IER AWD3IE LL_ADC_DisableIT_AWD3 + * @param ADCx ADC instance + * @retval None + */ +__STATIC_INLINE void LL_ADC_DisableIT_AWD3(ADC_TypeDef *ADCx) +{ + CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD3); +} + +/** + * @brief Get state of interruption ADC ready + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER ADRDYIE LL_ADC_IsEnabledIT_ADRDY + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_ADRDY(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_ADRDY) == (LL_ADC_IT_ADRDY)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group regular end of unitary conversion + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER EOCIE LL_ADC_IsEnabledIT_EOC + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOC(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_EOC) == (LL_ADC_IT_EOC)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group regular end of sequence conversions + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER EOSIE LL_ADC_IsEnabledIT_EOS + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOS(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_EOS) == (LL_ADC_IT_EOS)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group regular overrun + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER OVRIE LL_ADC_IsEnabledIT_OVR + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_OVR(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_OVR) == (LL_ADC_IT_OVR)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group regular end of sampling + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER EOSMPIE LL_ADC_IsEnabledIT_EOSMP + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOSMP(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_EOSMP) == (LL_ADC_IT_EOSMP)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group injected end of unitary conversion + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER JEOCIE LL_ADC_IsEnabledIT_JEOC + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOC(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_JEOC) == (LL_ADC_IT_JEOC)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group injected end of sequence conversions + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER JEOSIE LL_ADC_IsEnabledIT_JEOS + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC group injected context queue overflow interrupt state + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER JQOVFIE LL_ADC_IsEnabledIT_JQOVF + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JQOVF(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_JQOVF) == (LL_ADC_IT_JQOVF)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption ADC analog watchdog 1 + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER AWD1IE LL_ADC_IsEnabledIT_AWD1 + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption Get ADC analog watchdog 2 + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER AWD2IE LL_ADC_IsEnabledIT_AWD2 + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD2(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_AWD2) == (LL_ADC_IT_AWD2)) ? 1UL : 0UL); +} + +/** + * @brief Get state of interruption Get ADC analog watchdog 3 + * (0: interrupt disabled, 1: interrupt enabled). + * @rmtoll IER AWD3IE LL_ADC_IsEnabledIT_AWD3 + * @param ADCx ADC instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD3(const ADC_TypeDef *ADCx) +{ + return ((READ_BIT(ADCx->IER, LL_ADC_IT_AWD3) == (LL_ADC_IT_AWD3)) ? 1UL : 0UL); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +/* Initialization of some features of ADC common parameters and multimode */ +ErrorStatus LL_ADC_CommonDeInit(const ADC_Common_TypeDef *ADCxy_COMMON); +ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, const LL_ADC_CommonInitTypeDef *pADC_CommonInitStruct); +void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *pADC_CommonInitStruct); + +/* De-initialization of ADC instance, ADC group regular and ADC group injected */ +/* (availability of ADC group injected depends on STM32 series) */ +ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx); + +/* Initialization of some features of ADC instance */ +ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, const LL_ADC_InitTypeDef *pADC_InitStruct); +void LL_ADC_StructInit(LL_ADC_InitTypeDef *pADC_InitStruct); + +/* Initialization of some features of ADC instance and ADC group regular */ +ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, const LL_ADC_REG_InitTypeDef *pADC_RegInitStruct); +void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *pADC_RegInitStruct); + +/* Initialization of some features of ADC instance and ADC group injected */ +ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, const LL_ADC_INJ_InitTypeDef *pADC_InjInitStruct); +void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *pADC_InjInitStruct); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* ADC1 || ADC2 || ADC3 || ADC4 || ADC5 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_ADC_H */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h new file mode 100644 index 0000000..ffd3b7b --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h @@ -0,0 +1,1680 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_bus.h + * @author MCD Application Team + * @brief Header file of BUS LL module. + + @verbatim + ##### RCC Limitations ##### + ============================================================================== + [..] + A delay between an RCC peripheral clock enable and the effective peripheral + enabling should be taken into account in order to manage the peripheral read/write + from/to registers. + (+) This delay depends on the peripheral mapping. + (++) AHB & APB peripherals, 1 dummy read is necessary + + [..] + Workarounds: + (#) For AHB & APB peripherals, a dummy read to the peripheral register has been + inserted in each LL_{BUS}_GRP{x}_EnableClock() function. + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_BUS_H +#define STM32G4xx_LL_BUS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined(RCC) + +/** @defgroup BUS_LL BUS + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup BUS_LL_Exported_Constants BUS Exported Constants + * @{ + */ + +/** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH + * @{ + */ +#define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN +#define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN +#define LL_AHB1_GRP1_PERIPH_DMAMUX1 RCC_AHB1ENR_DMAMUX1EN +#define LL_AHB1_GRP1_PERIPH_CORDIC RCC_AHB1ENR_CORDICEN +#define LL_AHB1_GRP1_PERIPH_FMAC RCC_AHB1ENR_FMACEN +#define LL_AHB1_GRP1_PERIPH_FLASH RCC_AHB1ENR_FLASHEN +#define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1SMENR_SRAM1SMEN +#define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN +/** + * @} + */ + +/** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH AHB2 GRP1 PERIPH + * @{ + */ +#define LL_AHB2_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_AHB2_GRP1_PERIPH_GPIOA RCC_AHB2ENR_GPIOAEN +#define LL_AHB2_GRP1_PERIPH_GPIOB RCC_AHB2ENR_GPIOBEN +#define LL_AHB2_GRP1_PERIPH_GPIOC RCC_AHB2ENR_GPIOCEN +#define LL_AHB2_GRP1_PERIPH_GPIOD RCC_AHB2ENR_GPIODEN +#define LL_AHB2_GRP1_PERIPH_GPIOE RCC_AHB2ENR_GPIOEEN +#define LL_AHB2_GRP1_PERIPH_GPIOF RCC_AHB2ENR_GPIOFEN +#define LL_AHB2_GRP1_PERIPH_GPIOG RCC_AHB2ENR_GPIOGEN +#define LL_AHB2_GRP1_PERIPH_CCM RCC_AHB2SMENR_CCMSRAMSMEN +#define LL_AHB2_GRP1_PERIPH_SRAM2 RCC_AHB2SMENR_SRAM2SMEN +#define LL_AHB2_GRP1_PERIPH_ADC12 RCC_AHB2ENR_ADC12EN +#if defined(ADC345_COMMON) +#define LL_AHB2_GRP1_PERIPH_ADC345 RCC_AHB2ENR_ADC345EN +#endif /* ADC345_COMMON */ +#define LL_AHB2_GRP1_PERIPH_DAC1 RCC_AHB2ENR_DAC1EN +#if defined(DAC2) +#define LL_AHB2_GRP1_PERIPH_DAC2 RCC_AHB2ENR_DAC2EN +#endif /* DAC2 */ +#define LL_AHB2_GRP1_PERIPH_DAC3 RCC_AHB2ENR_DAC3EN +#if defined(DAC4) +#define LL_AHB2_GRP1_PERIPH_DAC4 RCC_AHB2ENR_DAC4EN +#endif /* DAC4 */ +#if defined(AES) +#define LL_AHB2_GRP1_PERIPH_AES RCC_AHB2ENR_AESEN +#endif /* AES */ +#define LL_AHB2_GRP1_PERIPH_RNG RCC_AHB2ENR_RNGEN +/** + * @} + */ + +/** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH AHB3 GRP1 PERIPH + * @{ + */ +#define LL_AHB3_GRP1_PERIPH_ALL 0xFFFFFFFFU +#if defined(FMC_Bank1_R) +#define LL_AHB3_GRP1_PERIPH_FMC RCC_AHB3ENR_FMCEN +#endif /* FMC_Bank1_R */ +#if defined(QUADSPI) +#define LL_AHB3_GRP1_PERIPH_QSPI RCC_AHB3ENR_QSPIEN +#endif /* QUADSPI */ +/** + * @} + */ + +/** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH + * @{ + */ +#define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR1_TIM2EN +#define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR1_TIM3EN +#define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR1_TIM4EN +#if defined(TIM5) +#define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR1_TIM5EN +#endif /* TIM5 */ +#define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR1_TIM6EN +#define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR1_TIM7EN +#define LL_APB1_GRP1_PERIPH_CRS RCC_APB1ENR1_CRSEN +#define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR1_RTCAPBEN +#define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR1_WWDGEN +#define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR1_SPI2EN +#define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR1_SPI3EN +#define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR1_USART2EN +#define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR1_USART3EN +#if defined(UART4) +#define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR1_UART4EN +#endif /* UART4 */ +#if defined(UART5) +#define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR1_UART5EN +#endif /* UART5 */ +#define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR1_I2C1EN +#define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR1_I2C2EN +#define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR1_USBEN +#if defined(FDCAN1) +#define LL_APB1_GRP1_PERIPH_FDCAN RCC_APB1ENR1_FDCANEN +#endif /* FDCAN1 */ +#define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR1_PWREN +#define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR1_I2C3EN +#define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR1_LPTIM1EN +/** + * @} + */ + + +/** @defgroup BUS_LL_EC_APB1_GRP2_PERIPH APB1 GRP2 PERIPH + * @{ + */ +#define LL_APB1_GRP2_PERIPH_ALL 0xFFFFFFFFU +#define LL_APB1_GRP2_PERIPH_LPUART1 RCC_APB1ENR2_LPUART1EN +#if defined(I2C4) +#define LL_APB1_GRP2_PERIPH_I2C4 RCC_APB1ENR2_I2C4EN +#endif /* I2C4 */ +#define LL_APB1_GRP2_PERIPH_UCPD1 RCC_APB1ENR2_UCPD1EN +/** + * @} + */ + +/** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH + * @{ + */ +#define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN +#define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN +#define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN +#define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN +#define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN +#if defined(SPI4) +#define LL_APB2_GRP1_PERIPH_SPI4 RCC_APB2ENR_SPI4EN +#endif /* SPI4 */ +#define LL_APB2_GRP1_PERIPH_TIM15 RCC_APB2ENR_TIM15EN +#define LL_APB2_GRP1_PERIPH_TIM16 RCC_APB2ENR_TIM16EN +#define LL_APB2_GRP1_PERIPH_TIM17 RCC_APB2ENR_TIM17EN +#if defined(TIM20) +#define LL_APB2_GRP1_PERIPH_TIM20 RCC_APB2ENR_TIM20EN +#endif /* TIM20 */ +#define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN +#if defined(HRTIM1) +#define LL_APB2_GRP1_PERIPH_HRTIM1 RCC_APB2ENR_HRTIM1EN +#endif /* HRTIM1 */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @defgroup BUS_LL_Exported_Functions BUS Exported Functions + * @{ + */ + +/** @defgroup BUS_LL_EF_AHB1 AHB1 + * @{ + */ + +/** + * @brief Enable AHB1 peripherals clock. + * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_EnableClock\n + * AHB1ENR DMA2EN LL_AHB1_GRP1_EnableClock\n + * AHB1ENR DMAMMUXEN LL_AHB1_GRP1_EnableClock\n + * AHB1ENR CORDICEN LL_AHB1_GRP1_EnableClock\n + * AHB1ENR FMACEN LL_AHB1_GRP1_EnableClock\n + * AHB1ENR FLASHEN LL_AHB1_GRP1_EnableClock\n + * AHB1ENR CRCEN LL_AHB1_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval None + */ +__STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHB1ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHB1ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if AHB1 peripheral clock is enabled or not + * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n + * AHB1ENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n + * AHB1ENR DMAMUXEN LL_AHB1_GRP1_IsEnabledClock\n + * AHB1ENR CORDICEN LL_AHB1_GRP1_IsEnabledClock\n + * AHB1ENR FMACEN LL_AHB1_GRP1_IsEnabledClock\n + * AHB1ENR FLASHEN LL_AHB1_GRP1_IsEnabledClock\n + * AHB1ENR CRCEN LL_AHB1_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval State of Periphs (1 or 0). + */ +__STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->AHB1ENR, Periphs) == Periphs) ? 1UL : 0UL); +} + +/** + * @brief Disable AHB1 peripherals clock. + * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_DisableClock\n + * AHB1ENR DMA2EN LL_AHB1_GRP1_DisableClock\n + * AHB1ENR DMAMUXEN LL_AHB1_GRP1_DisableClock\n + * AHB1ENR CORDICEN LL_AHB1_GRP1_DisableClock\n + * AHB1ENR FMACEN LL_AHB1_GRP1_DisableClock\n + * AHB1ENR FLASHEN LL_AHB1_GRP1_DisableClock\n + * AHB1ENR CRCEN LL_AHB1_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval None + */ +__STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB1ENR, Periphs); +} + +/** + * @brief Force AHB1 peripherals reset. + * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset\n + * AHB1RSTR DMA2RST LL_AHB1_GRP1_ForceReset\n + * AHB1RSTR DMAMUXRST LL_AHB1_GRP1_ForceReset\n + * AHB1RSTR CORDICRST LL_AHB1_GRP1_ForceReset\n + * AHB1RSTR FMACRST LL_AHB1_GRP1_ForceReset\n + * AHB1RSTR FLASHRST LL_AHB1_GRP1_ForceReset\n + * AHB1RSTR CRCRST LL_AHB1_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_ALL + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval None + */ +__STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->AHB1RSTR, Periphs); +} + +/** + * @brief Release AHB1 peripherals reset. + * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n + * AHB1RSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n + * AHB1RSTR DMAMUXRST LL_AHB1_GRP1_ReleaseReset\n + * AHB1RSTR CORDICRST LL_AHB1_GRP1_ReleaseReset\n + * AHB1RSTR FMACRST LL_AHB1_GRP1_ReleaseReset\n + * AHB1RSTR FLASHRST LL_AHB1_GRP1_ReleaseReset\n + * AHB1RSTR CRCRST LL_AHB1_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_ALL + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval None + */ +__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB1RSTR, Periphs); +} + +/** + * @brief Enable AHB1 peripheral clocks in Sleep and Stop modes + * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_EnableClockStopSleep\n + * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_EnableClockStopSleep\n + * AHB1SMENR DMAMUXSMEN LL_AHB1_GRP1_EnableClockStopSleep\n + * AHB1SMENR CORDICSMEN LL_AHB1_GRP1_EnableClockStopSleep\n + * AHB1SMENR FMACSMEN LL_AHB1_GRP1_EnableClockStopSleep\n + * AHB1SMENR FLASHSMEN LL_AHB1_GRP1_EnableClockStopSleep\n + * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR CRCSMEN LL_AHB1_GRP1_EnableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval None + */ +__STATIC_INLINE void LL_AHB1_GRP1_EnableClockStopSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHB1SMENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHB1SMENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable AHB1 peripheral clocks in Sleep and Stop modes + * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR DMAMUXSMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR CORDICSMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR FMACSMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR FLASHSMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n + * AHB1SMENR CRCSMEN LL_AHB1_GRP1_DisableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC + * @arg @ref LL_AHB1_GRP1_PERIPH_FMAC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1 + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @retval None + */ +__STATIC_INLINE void LL_AHB1_GRP1_DisableClockStopSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB1SMENR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_AHB2 AHB2 + * @{ + */ + +/** + * @brief Enable AHB2 peripherals clock. + * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR GPIOBEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR GPIOCEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR GPIODEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR GPIOEEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR GPIOFEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR GPIOGEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR ADC12EN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR ADC345EN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR DAC1EN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR DAC2EN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR DAC3EN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR DAC4EN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR AESEN LL_AHB2_GRP1_EnableClock\n + * AHB2ENR RNGEN LL_AHB2_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHB2ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHB2ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if AHB2 peripheral clock is enabled or not + * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR GPIOBEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR GPIOCEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR GPIODEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR GPIOEEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR GPIOFEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR GPIOGEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR ADC12EN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR ADC345EN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR DAC1EN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR DAC2EN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR DAC3EN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR DAC4EN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR AESEN LL_AHB2_GRP1_IsEnabledClock\n + * AHB2ENR RNGEN LL_AHB2_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). + */ +__STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->AHB2ENR, Periphs) == Periphs) ? 1UL : 0UL); +} + +/** + * @brief Disable AHB2 peripherals clock. + * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR GPIOBEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR GPIOCEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR GPIODEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR GPIOEEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR GPIOFEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR GPIOGEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR ADC12EN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR ADC345EN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR DAC1EN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR DAC2EN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR DAC3EN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR DAC4EN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR AESEN LL_AHB2_GRP1_DisableClock\n + * AHB2ENR RNGEN LL_AHB2_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB2ENR, Periphs); +} + +/** + * @brief Force AHB2 peripherals reset. + * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR GPIODRST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR GPIOERST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR GPIOFRST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR GPIOGRST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR ADC12RST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR ADC345RST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR DAC1RST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR DAC2RST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR DAC3RST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR DAC4RST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR AESRST LL_AHB2_GRP1_ForceReset\n + * AHB2RSTR RNGRST LL_AHB2_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->AHB2RSTR, Periphs); +} + +/** + * @brief Release AHB2 peripherals reset. + * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR GPIODRST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR GPIOERST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR GPIOFRST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR GPIOGRST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR ADC12RST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR ADC345RST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR DAC1RST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR DAC2RST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR DAC3RST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR DAC4RST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR AESRST LL_AHB2_GRP1_ReleaseReset\n + * AHB2RSTR RNGRST LL_AHB2_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB2RSTR, Periphs); +} + +/** + * @brief Enable AHB2 peripheral clocks in Sleep and Stop modes + * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR GPIOFSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR GPIOGSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR SRAM2SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR CCMSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR ADC12SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR ADC345SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR DAC1SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR DAC2SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR DAC3SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR DAC4SMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR AESSMEN LL_AHB2_GRP1_EnableClockStopSleep\n + * AHB2SMENR RNGSMEN LL_AHB2_GRP1_EnableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 + * @arg @ref LL_AHB2_GRP1_PERIPH_CCM + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB2_GRP1_EnableClockStopSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHB2SMENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHB2SMENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable AHB2 peripheral clocks in Sleep and Stop modes + * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR GPIOFSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR GPIOGSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR SRAM2SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR CCMSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR ADC12SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR ADC345SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR DAC1SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR DAC2SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR DAC3SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR DAC4SMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR AESSMEN LL_AHB2_GRP1_DisableClockStopSleep\n + * AHB2SMENR RNGSMEN LL_AHB2_GRP1_DisableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG + * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 + * @arg @ref LL_AHB2_GRP1_PERIPH_CCM + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC12 + * @arg @ref LL_AHB2_GRP1_PERIPH_ADC345 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC1 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC3 + * @arg @ref LL_AHB2_GRP1_PERIPH_DAC4 (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) + * @arg @ref LL_AHB2_GRP1_PERIPH_RNG + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB2_GRP1_DisableClockStopSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB2SMENR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_AHB3 AHB3 + * @{ + */ + +/** + * @brief Enable AHB3 peripherals clock. + * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_EnableClock\n + * AHB3ENR QSPIEN LL_AHB3_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHB3ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHB3ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if AHB3 peripheral clock is enabled or not + * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_IsEnabledClock\n + * AHB3ENR QSPIEN LL_AHB3_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). + */ +__STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->AHB3ENR, Periphs) == Periphs) ? 1UL : 0UL); +} + +/** + * @brief Disable AHB3 peripherals clock. + * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_DisableClock\n + * AHB3ENR QSPIEN LL_AHB3_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB3ENR, Periphs); +} + +/** + * @brief Force AHB3 peripherals reset. + * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ForceReset\n + * AHB3RSTR QSPIRST LL_AHB3_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_ALL + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->AHB3RSTR, Periphs); +} + +/** + * @brief Release AHB3 peripherals reset. + * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ReleaseReset\n + * AHB3RSTR QSPIRST LL_AHB3_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_ALL + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB3RSTR, Periphs); +} + +/** + * @brief Enable AHB3 peripheral clocks in Sleep and Stop modes + * @rmtoll AHB3SMENR FMCSMEN LL_AHB3_GRP1_EnableClockStopSleep\n + * AHB3SMENR QSPISMEN LL_AHB3_GRP1_EnableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB3_GRP1_EnableClockStopSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHB3SMENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHB3SMENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable AHB3 peripheral clocks in Sleep and Stop modes + * @rmtoll AHB3SMENR FMCSMEN LL_AHB3_GRP1_DisableClockStopSleep\n + * AHB3SMENR QSPISMEN LL_AHB3_GRP1_DisableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_AHB3_GRP1_DisableClockStopSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHB3SMENR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_APB1 APB1 + * @{ + */ + +/** + * @brief Enable APB1 peripherals clock. + * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 TIM3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 TIM4EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 TIM5EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 TIM6EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 TIM7EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 CRSEN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 RTCAPBEN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 WWDGEN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 SPI2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 SPI3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 USART2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 USART3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 UART4EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 UART5EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 I2C1EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 I2C2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 USBEN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 FDCANEN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 PWREN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 I2C3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR1 LPTIM1EN LL_APB1_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB1ENR1, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1ENR1, Periphs); + (void)tmpreg; +} + +/** + * @brief Enable APB1 peripherals clock. + * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_EnableClock\n + * APB1ENR2 I2C4EN LL_APB1_GRP2_EnableClock\n + * APB1ENR2 UCPD1EN LL_APB1_GRP2_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP2_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB1ENR2, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1ENR2, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if APB1 peripheral clock is enabled or not + * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 TIM3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 TIM4EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 TIM5EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 TIM6EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 TIM7EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 CRSEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 RTCAPBEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 WWDGEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 SPI2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 SPI3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 USART2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 USART3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 UART4EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 UART5EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 I2C1EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 I2C2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 USBEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 FDCANEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 PWREN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 I2C3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR1 LPTIM1EN LL_APB1_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). + */ +__STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->APB1ENR1, Periphs) == Periphs) ? 1UL : 0UL); +} + +/** + * @brief Check if APB1 peripheral clock is enabled or not + * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_IsEnabledClock\n + * APB1ENR2 I2C4EN LL_APB1_GRP2_IsEnabledClock\n + * APB1ENR2 UCPD1EN LL_APB1_GRP2_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). + */ +__STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->APB1ENR2, Periphs) == Periphs) ? 1UL : 0UL); +} + +/** + * @brief Disable APB1 peripherals clock. + * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 TIM3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 TIM4EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 TIM5EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 TIM6EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 TIM7EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 CRSEN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 RTCAPBEN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 WWDGEN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 SPI2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 SPI3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 USART2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 USART3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 UART4EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 UART5EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 I2C1EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 I2C2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 USBEN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 FDCANEN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 PWREN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 I2C3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR1 LPTIM1EN LL_APB1_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1ENR1, Periphs); +} + +/** + * @brief Disable APB1 peripherals clock. + * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_DisableClock\n + * APB1ENR2 I2C4EN LL_APB1_GRP2_DisableClock\n + * APB1ENR2 UCPD1EN LL_APB1_GRP2_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP2_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1ENR2, Periphs); +} + +/** + * @brief Force APB1 peripherals reset. + * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 TIM3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 TIM4RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 TIM5RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 TIM6RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 TIM7RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 CRSRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 SPI2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 SPI3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 USART2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 USART3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 UART4RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 UART5RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 I2C1RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 I2C2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 USBRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 FDCANRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 PWRRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 I2C3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->APB1RSTR1, Periphs); +} + +/** + * @brief Force APB1 peripherals reset. + * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ForceReset\n + * APB1RSTR2 I2C4RST LL_APB1_GRP2_ForceReset\n + * APB1RSTR2 UCPD1RST LL_APB1_GRP2_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP2_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->APB1RSTR2, Periphs); +} + +/** + * @brief Release APB1 peripherals reset. + * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 TIM3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 TIM4RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 TIM5RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 TIM6RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 TIM7RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 CRSRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 SPI2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 SPI3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 USART2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 USART3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 UART4RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 UART5RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 I2C1RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 I2C2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 USBRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 FDCANRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 PWRRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 I2C3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1RSTR1, Periphs); +} + +/** + * @brief Release APB1 peripherals reset. + * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ReleaseReset\n + * APB1RSTR2 I2C4RST LL_APB1_GRP2_ReleaseReset\n + * APB1RSTR2 UCPD1RST LL_APB1_GRP2_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP2_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1RSTR2, Periphs); +} + +/** + * @brief Enable APB1 peripheral clocks in Sleep and Stop modes + * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 TIM3SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 TIM4SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 TIM5SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 TIM6SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 TIM7SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 CRSSMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 SPI3SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 USART2SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 USART3SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 UART4SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 UART5SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 I2C2SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 USBSMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 FDCANSMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 PWRSMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_EnableClockStopSleep\n + * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_EnableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP1_EnableClockStopSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB1SMENR1, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1SMENR1, Periphs); + (void)tmpreg; +} + +/** + * @brief Enable APB1 peripheral clocks in Sleep and Stop modes + * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_EnableClockStopSleep\n + * APB1SMENR2 I2C4SMEN LL_APB1_GRP2_EnableClockStopSleep\n + * APB1SMENR2 UCPD1SMEN LL_APB1_GRP2_EnableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP2_EnableClockStopSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB1SMENR2, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1SMENR2, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable APB1 peripheral clocks in Sleep and Stop modes + * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 TIM3SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 TIM4SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 TIM5SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 TIM6SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 TIM7SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 CRSSMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 SPI3SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 USART2SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 USART3SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 UART4SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 UART5SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 I2C2SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 USBSMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 FDCANSMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 PWRSMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_DisableClockStopSleep\n + * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_DisableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_CRS + * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_FDCAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 + * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP1_DisableClockStopSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1SMENR1, Periphs); +} + +/** + * @brief Disable APB1 peripheral clocks in Sleep and Stop modes + * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_DisableClockStopSleep\n + * APB1SMENR2 I2C4SMEN LL_APB1_GRP2_DisableClockStopSleep\n + * APB1SMENR2 UCPD1SMEN LL_APB1_GRP2_DisableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 + * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) + * @arg @ref LL_APB1_GRP2_PERIPH_UCPD1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB1_GRP2_DisableClockStopSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1SMENR2, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_APB2 APB2 + * @{ + */ + +/** + * @brief Enable APB2 peripherals clock. + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM8EN LL_APB2_GRP1_EnableClock\n + * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SPI4EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM15EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM16EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM17EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM20EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SAI1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR HRTIM1EN LL_APB2_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB2ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB2ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if APB2 peripheral clock is enabled or not + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM8EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SPI4EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM15EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM16EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM17EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM20EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SAI1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR HRTIM1EN LL_APB2_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). + */ +__STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->APB2ENR, Periphs) == Periphs) ? 1UL : 0UL); +} + +/** + * @brief Disable APB2 peripherals clock. + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM8EN LL_APB2_GRP1_DisableClock\n + * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SPI4EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM15EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM16EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM17EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM20EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SAI1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR HRTIM1EN LL_APB2_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2ENR, Periphs); +} + +/** + * @brief Force APB2 peripherals reset. + * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SPI4RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM15RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM16RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM17RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM20RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR HRTIM1RST LL_APB2_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->APB2RSTR, Periphs); +} + +/** + * @brief Release APB2 peripherals reset. + * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SPI4RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM15RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM16RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM17RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM20RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR HRTIM1RST LL_APB2_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2RSTR, Periphs); +} + +/** + * @brief Enable APB2 peripheral clocks in Sleep and Stop modes + * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR TIM1SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR SPI1SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR TIM8SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR USART1SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR SPI4SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR TIM15SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR TIM16SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR TIM17SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR TIM20SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR SAI1SMEN LL_APB2_GRP1_EnableClockStopSleep\n + * APB2SMENR HRTIM1SMEN LL_APB2_GRP1_EnableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB2_GRP1_EnableClockStopSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB2SMENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB2SMENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable APB2 peripheral clocks in Sleep and Stop modes + * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR TIM1SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR SPI1SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR TIM8SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR USART1SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR SPI4SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR TIM15SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR TIM16SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR TIM17SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR TIM20SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR SAI1SMEN LL_APB2_GRP1_DisableClockStopSleep\n + * APB2SMENR HRTIM1SMEN LL_APB2_GRP1_DisableClockStopSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_APB2_GRP1_DisableClockStopSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2SMENR, Periphs); +} + +/** + * @} + */ + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(RCC) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_BUS_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_cortex.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_cortex.h new file mode 100644 index 0000000..5f91639 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_cortex.h @@ -0,0 +1,637 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL CORTEX driver contains a set of generic APIs that can be + used by user: + (+) SYSTICK configuration used by LL_mDelay and LL_Init1msTick + functions + (+) Low power mode configuration (SCB register of Cortex-MCU) + (+) MPU API to configure and enable regions + (+) API to access to MCU info (CPUID register) + (+) API to enable fault handler (SHCSR accesses) + + @endverbatim + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_CORTEX_H +#define __STM32G4xx_LL_CORTEX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +/** @defgroup CORTEX_LL CORTEX + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup CORTEX_LL_Exported_Constants CORTEX Exported Constants + * @{ + */ + +/** @defgroup CORTEX_LL_EC_CLKSOURCE_HCLK SYSTICK Clock Source + * @{ + */ +#define LL_SYSTICK_CLKSOURCE_HCLK_DIV8 0x00000000U /*!< AHB clock divided by 8 selected as SysTick clock source.*/ +#define LL_SYSTICK_CLKSOURCE_HCLK SysTick_CTRL_CLKSOURCE_Msk /*!< AHB clock selected as SysTick clock source. */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_FAULT Handler Fault type + * @{ + */ +#define LL_HANDLER_FAULT_USG SCB_SHCSR_USGFAULTENA_Msk /*!< Usage fault */ +#define LL_HANDLER_FAULT_BUS SCB_SHCSR_BUSFAULTENA_Msk /*!< Bus fault */ +#define LL_HANDLER_FAULT_MEM SCB_SHCSR_MEMFAULTENA_Msk /*!< Memory management fault */ +/** + * @} + */ + +#if __MPU_PRESENT + +/** @defgroup CORTEX_LL_EC_CTRL_HFNMI_PRIVDEF MPU Control + * @{ + */ +#define LL_MPU_CTRL_HFNMI_PRIVDEF_NONE 0x00000000U /*!< Disable NMI and privileged SW access */ +#define LL_MPU_CTRL_HARDFAULT_NMI MPU_CTRL_HFNMIENA_Msk /*!< Enables the operation of MPU during hard fault, NMI, and FAULTMASK handlers */ +#define LL_MPU_CTRL_PRIVILEGED_DEFAULT MPU_CTRL_PRIVDEFENA_Msk /*!< Enable privileged software access to default memory map */ +#define LL_MPU_CTRL_HFNMI_PRIVDEF (MPU_CTRL_HFNMIENA_Msk | MPU_CTRL_PRIVDEFENA_Msk) /*!< Enable NMI and privileged SW access */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_REGION MPU Region Number + * @{ + */ +#define LL_MPU_REGION_NUMBER0 0x00U /*!< REGION Number 0 */ +#define LL_MPU_REGION_NUMBER1 0x01U /*!< REGION Number 1 */ +#define LL_MPU_REGION_NUMBER2 0x02U /*!< REGION Number 2 */ +#define LL_MPU_REGION_NUMBER3 0x03U /*!< REGION Number 3 */ +#define LL_MPU_REGION_NUMBER4 0x04U /*!< REGION Number 4 */ +#define LL_MPU_REGION_NUMBER5 0x05U /*!< REGION Number 5 */ +#define LL_MPU_REGION_NUMBER6 0x06U /*!< REGION Number 6 */ +#define LL_MPU_REGION_NUMBER7 0x07U /*!< REGION Number 7 */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_REGION_SIZE MPU Region Size + * @{ + */ +#define LL_MPU_REGION_SIZE_32B (0x04U << MPU_RASR_SIZE_Pos) /*!< 32B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_64B (0x05U << MPU_RASR_SIZE_Pos) /*!< 64B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_128B (0x06U << MPU_RASR_SIZE_Pos) /*!< 128B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_256B (0x07U << MPU_RASR_SIZE_Pos) /*!< 256B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_512B (0x08U << MPU_RASR_SIZE_Pos) /*!< 512B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_1KB (0x09U << MPU_RASR_SIZE_Pos) /*!< 1KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_2KB (0x0AU << MPU_RASR_SIZE_Pos) /*!< 2KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_4KB (0x0BU << MPU_RASR_SIZE_Pos) /*!< 4KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_8KB (0x0CU << MPU_RASR_SIZE_Pos) /*!< 8KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_16KB (0x0DU << MPU_RASR_SIZE_Pos) /*!< 16KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_32KB (0x0EU << MPU_RASR_SIZE_Pos) /*!< 32KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_64KB (0x0FU << MPU_RASR_SIZE_Pos) /*!< 64KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_128KB (0x10U << MPU_RASR_SIZE_Pos) /*!< 128KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_256KB (0x11U << MPU_RASR_SIZE_Pos) /*!< 256KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_512KB (0x12U << MPU_RASR_SIZE_Pos) /*!< 512KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_1MB (0x13U << MPU_RASR_SIZE_Pos) /*!< 1MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_2MB (0x14U << MPU_RASR_SIZE_Pos) /*!< 2MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_4MB (0x15U << MPU_RASR_SIZE_Pos) /*!< 4MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_8MB (0x16U << MPU_RASR_SIZE_Pos) /*!< 8MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_16MB (0x17U << MPU_RASR_SIZE_Pos) /*!< 16MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_32MB (0x18U << MPU_RASR_SIZE_Pos) /*!< 32MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_64MB (0x19U << MPU_RASR_SIZE_Pos) /*!< 64MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_128MB (0x1AU << MPU_RASR_SIZE_Pos) /*!< 128MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_256MB (0x1BU << MPU_RASR_SIZE_Pos) /*!< 256MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_512MB (0x1CU << MPU_RASR_SIZE_Pos) /*!< 512MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_1GB (0x1DU << MPU_RASR_SIZE_Pos) /*!< 1GB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_2GB (0x1EU << MPU_RASR_SIZE_Pos) /*!< 2GB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_4GB (0x1FU << MPU_RASR_SIZE_Pos) /*!< 4GB Size of the MPU protection region */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_REGION_PRIVILEDGES MPU Region Privileges + * @{ + */ +#define LL_MPU_REGION_NO_ACCESS (0x00U << MPU_RASR_AP_Pos) /*!< No access*/ +#define LL_MPU_REGION_PRIV_RW (0x01U << MPU_RASR_AP_Pos) /*!< RW privileged (privileged access only)*/ +#define LL_MPU_REGION_PRIV_RW_URO (0x02U << MPU_RASR_AP_Pos) /*!< RW privileged - RO user (Write in a user program generates a fault) */ +#define LL_MPU_REGION_FULL_ACCESS (0x03U << MPU_RASR_AP_Pos) /*!< RW privileged & user (Full access) */ +#define LL_MPU_REGION_PRIV_RO (0x05U << MPU_RASR_AP_Pos) /*!< RO privileged (privileged read only)*/ +#define LL_MPU_REGION_PRIV_RO_URO (0x06U << MPU_RASR_AP_Pos) /*!< RO privileged & user (read only) */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_TEX MPU TEX Level + * @{ + */ +#define LL_MPU_TEX_LEVEL0 (0x00U << MPU_RASR_TEX_Pos) /*!< b000 for TEX bits */ +#define LL_MPU_TEX_LEVEL1 (0x01U << MPU_RASR_TEX_Pos) /*!< b001 for TEX bits */ +#define LL_MPU_TEX_LEVEL2 (0x02U << MPU_RASR_TEX_Pos) /*!< b010 for TEX bits */ +#define LL_MPU_TEX_LEVEL4 (0x04U << MPU_RASR_TEX_Pos) /*!< b100 for TEX bits */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_INSTRUCTION_ACCESS MPU Instruction Access + * @{ + */ +#define LL_MPU_INSTRUCTION_ACCESS_ENABLE 0x00U /*!< Instruction fetches enabled */ +#define LL_MPU_INSTRUCTION_ACCESS_DISABLE MPU_RASR_XN_Msk /*!< Instruction fetches disabled*/ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_SHAREABLE_ACCESS MPU Shareable Access + * @{ + */ +#define LL_MPU_ACCESS_SHAREABLE MPU_RASR_S_Msk /*!< Shareable memory attribute */ +#define LL_MPU_ACCESS_NOT_SHAREABLE 0x00U /*!< Not Shareable memory attribute */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_CACHEABLE_ACCESS MPU Cacheable Access + * @{ + */ +#define LL_MPU_ACCESS_CACHEABLE MPU_RASR_C_Msk /*!< Cacheable memory attribute */ +#define LL_MPU_ACCESS_NOT_CACHEABLE 0x00U /*!< Not Cacheable memory attribute */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_BUFFERABLE_ACCESS MPU Bufferable Access + * @{ + */ +#define LL_MPU_ACCESS_BUFFERABLE MPU_RASR_B_Msk /*!< Bufferable memory attribute */ +#define LL_MPU_ACCESS_NOT_BUFFERABLE 0x00U /*!< Not Bufferable memory attribute */ +/** + * @} + */ +#endif /* __MPU_PRESENT */ +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup CORTEX_LL_Exported_Functions CORTEX Exported Functions + * @{ + */ + +/** @defgroup CORTEX_LL_EF_SYSTICK SYSTICK + * @{ + */ + +/** + * @brief This function checks if the Systick counter flag is active or not. + * @note It can be used in timeout function on application side. + * @rmtoll STK_CTRL COUNTFLAG LL_SYSTICK_IsActiveCounterFlag + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSTICK_IsActiveCounterFlag(void) +{ + return (((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == (SysTick_CTRL_COUNTFLAG_Msk)) ? 1UL : 0UL); +} + +/** + * @brief Configures the SysTick clock source + * @rmtoll STK_CTRL CLKSOURCE LL_SYSTICK_SetClkSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK_DIV8 + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK + * @retval None + */ +__STATIC_INLINE void LL_SYSTICK_SetClkSource(uint32_t Source) +{ + if (Source == LL_SYSTICK_CLKSOURCE_HCLK) + { + SET_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); + } + else + { + CLEAR_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); + } +} + +/** + * @brief Get the SysTick clock source + * @rmtoll STK_CTRL CLKSOURCE LL_SYSTICK_GetClkSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK_DIV8 + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK + */ +__STATIC_INLINE uint32_t LL_SYSTICK_GetClkSource(void) +{ + return READ_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); +} + +/** + * @brief Enable SysTick exception request + * @rmtoll STK_CTRL TICKINT LL_SYSTICK_EnableIT + * @retval None + */ +__STATIC_INLINE void LL_SYSTICK_EnableIT(void) +{ + SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Disable SysTick exception request + * @rmtoll STK_CTRL TICKINT LL_SYSTICK_DisableIT + * @retval None + */ +__STATIC_INLINE void LL_SYSTICK_DisableIT(void) +{ + CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Checks if the SYSTICK interrupt is enabled or disabled. + * @rmtoll STK_CTRL TICKINT LL_SYSTICK_IsEnabledIT + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSTICK_IsEnabledIT(void) +{ + return ((READ_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk) == (SysTick_CTRL_TICKINT_Msk)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup CORTEX_LL_EF_LOW_POWER_MODE LOW POWER MODE + * @{ + */ + +/** + * @brief Processor uses sleep as its low power mode + * @rmtoll SCB_SCR SLEEPDEEP LL_LPM_EnableSleep + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableSleep(void) +{ + /* Clear SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); +} + +/** + * @brief Processor uses deep sleep as its low power mode + * @rmtoll SCB_SCR SLEEPDEEP LL_LPM_EnableDeepSleep + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableDeepSleep(void) +{ + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); +} + +/** + * @brief Configures sleep-on-exit when returning from Handler mode to Thread mode. + * @note Setting this bit to 1 enables an interrupt-driven application to avoid returning to an + * empty main application. + * @rmtoll SCB_SCR SLEEPONEXIT LL_LPM_EnableSleepOnExit + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableSleepOnExit(void) +{ + /* Set SLEEPONEXIT bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); +} + +/** + * @brief Do not sleep when returning to Thread mode. + * @rmtoll SCB_SCR SLEEPONEXIT LL_LPM_DisableSleepOnExit + * @retval None + */ +__STATIC_INLINE void LL_LPM_DisableSleepOnExit(void) +{ + /* Clear SLEEPONEXIT bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); +} + +/** + * @brief Enabled events and all interrupts, including disabled interrupts, can wakeup the + * processor. + * @rmtoll SCB_SCR SEVEONPEND LL_LPM_EnableEventOnPend + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableEventOnPend(void) +{ + /* Set SEVEONPEND bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); +} + +/** + * @brief Only enabled interrupts or events can wakeup the processor, disabled interrupts are + * excluded + * @rmtoll SCB_SCR SEVEONPEND LL_LPM_DisableEventOnPend + * @retval None + */ +__STATIC_INLINE void LL_LPM_DisableEventOnPend(void) +{ + /* Clear SEVEONPEND bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); +} + +/** + * @} + */ + +/** @defgroup CORTEX_LL_EF_HANDLER HANDLER + * @{ + */ + +/** + * @brief Enable a fault in System handler control register (SHCSR) + * @rmtoll SCB_SHCSR MEMFAULTENA LL_HANDLER_EnableFault + * @param Fault This parameter can be a combination of the following values: + * @arg @ref LL_HANDLER_FAULT_USG + * @arg @ref LL_HANDLER_FAULT_BUS + * @arg @ref LL_HANDLER_FAULT_MEM + * @retval None + */ +__STATIC_INLINE void LL_HANDLER_EnableFault(uint32_t Fault) +{ + /* Enable the system handler fault */ + SET_BIT(SCB->SHCSR, Fault); +} + +/** + * @brief Disable a fault in System handler control register (SHCSR) + * @rmtoll SCB_SHCSR MEMFAULTENA LL_HANDLER_DisableFault + * @param Fault This parameter can be a combination of the following values: + * @arg @ref LL_HANDLER_FAULT_USG + * @arg @ref LL_HANDLER_FAULT_BUS + * @arg @ref LL_HANDLER_FAULT_MEM + * @retval None + */ +__STATIC_INLINE void LL_HANDLER_DisableFault(uint32_t Fault) +{ + /* Disable the system handler fault */ + CLEAR_BIT(SCB->SHCSR, Fault); +} + +/** + * @} + */ + +/** @defgroup CORTEX_LL_EF_MCU_INFO MCU INFO + * @{ + */ + +/** + * @brief Get Implementer code + * @rmtoll SCB_CPUID IMPLEMENTER LL_CPUID_GetImplementer + * @retval Value should be equal to 0x41 for ARM + */ +__STATIC_INLINE uint32_t LL_CPUID_GetImplementer(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_IMPLEMENTER_Msk) >> SCB_CPUID_IMPLEMENTER_Pos); +} + +/** + * @brief Get Variant number (The r value in the rnpn product revision identifier) + * @rmtoll SCB_CPUID VARIANT LL_CPUID_GetVariant + * @retval Value between 0 and 255 (0x0: revision 0) + */ +__STATIC_INLINE uint32_t LL_CPUID_GetVariant(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_VARIANT_Msk) >> SCB_CPUID_VARIANT_Pos); +} + +/** + * @brief Get Architecture number + * @rmtoll SCB_CPUID ARCHITECTURE LL_CPUID_GetArchitecture + * @retval Value should be equal to 0xF for Cortex-M4 devices + */ +__STATIC_INLINE uint32_t LL_CPUID_GetArchitecture(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_ARCHITECTURE_Msk) >> SCB_CPUID_ARCHITECTURE_Pos); +} + +/** + * @brief Get Part number + * @rmtoll SCB_CPUID PARTNO LL_CPUID_GetParNo + * @retval Value should be equal to 0xC24 for Cortex-M4 + */ +__STATIC_INLINE uint32_t LL_CPUID_GetParNo(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_PARTNO_Msk) >> SCB_CPUID_PARTNO_Pos); +} + +/** + * @brief Get Revision number (The p value in the rnpn product revision identifier, indicates patch release) + * @rmtoll SCB_CPUID REVISION LL_CPUID_GetRevision + * @retval Value between 0 and 255 (0x1: patch 1) + */ +__STATIC_INLINE uint32_t LL_CPUID_GetRevision(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_REVISION_Msk) >> SCB_CPUID_REVISION_Pos); +} + +/** + * @} + */ + +#if __MPU_PRESENT +/** @defgroup CORTEX_LL_EF_MPU MPU + * @{ + */ + +/** + * @brief Enable MPU with input options + * @rmtoll MPU_CTRL ENABLE LL_MPU_Enable + * @param Options This parameter can be one of the following values: + * @arg @ref LL_MPU_CTRL_HFNMI_PRIVDEF_NONE + * @arg @ref LL_MPU_CTRL_HARDFAULT_NMI + * @arg @ref LL_MPU_CTRL_PRIVILEGED_DEFAULT + * @arg @ref LL_MPU_CTRL_HFNMI_PRIVDEF + * @retval None + */ +__STATIC_INLINE void LL_MPU_Enable(uint32_t Options) +{ + /* Enable the MPU*/ + WRITE_REG(MPU->CTRL, (MPU_CTRL_ENABLE_Msk | Options)); + /* Ensure MPU settings take effects */ + __DSB(); + /* Sequence instruction fetches using update settings */ + __ISB(); +} + +/** + * @brief Disable MPU + * @rmtoll MPU_CTRL ENABLE LL_MPU_Disable + * @retval None + */ +__STATIC_INLINE void LL_MPU_Disable(void) +{ + /* Make sure outstanding transfers are done */ + __DMB(); + /* Disable MPU*/ + WRITE_REG(MPU->CTRL, 0U); +} + +/** + * @brief Check if MPU is enabled or not + * @rmtoll MPU_CTRL ENABLE LL_MPU_IsEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_MPU_IsEnabled(void) +{ + return ((READ_BIT(MPU->CTRL, MPU_CTRL_ENABLE_Msk) == (MPU_CTRL_ENABLE_Msk)) ? 1UL : 0UL); +} + +/** + * @brief Enable a MPU region + * @rmtoll MPU_RASR ENABLE LL_MPU_EnableRegion + * @param Region This parameter can be one of the following values: + * @arg @ref LL_MPU_REGION_NUMBER0 + * @arg @ref LL_MPU_REGION_NUMBER1 + * @arg @ref LL_MPU_REGION_NUMBER2 + * @arg @ref LL_MPU_REGION_NUMBER3 + * @arg @ref LL_MPU_REGION_NUMBER4 + * @arg @ref LL_MPU_REGION_NUMBER5 + * @arg @ref LL_MPU_REGION_NUMBER6 + * @arg @ref LL_MPU_REGION_NUMBER7 + * @retval None + */ +__STATIC_INLINE void LL_MPU_EnableRegion(uint32_t Region) +{ + /* Set Region number */ + WRITE_REG(MPU->RNR, Region); + /* Enable the MPU region */ + SET_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @brief Configure and enable a region + * @rmtoll MPU_RNR REGION LL_MPU_ConfigRegion\n + * MPU_RBAR REGION LL_MPU_ConfigRegion\n + * MPU_RBAR ADDR LL_MPU_ConfigRegion\n + * MPU_RASR XN LL_MPU_ConfigRegion\n + * MPU_RASR AP LL_MPU_ConfigRegion\n + * MPU_RASR S LL_MPU_ConfigRegion\n + * MPU_RASR C LL_MPU_ConfigRegion\n + * MPU_RASR B LL_MPU_ConfigRegion\n + * MPU_RASR SIZE LL_MPU_ConfigRegion + * @param Region This parameter can be one of the following values: + * @arg @ref LL_MPU_REGION_NUMBER0 + * @arg @ref LL_MPU_REGION_NUMBER1 + * @arg @ref LL_MPU_REGION_NUMBER2 + * @arg @ref LL_MPU_REGION_NUMBER3 + * @arg @ref LL_MPU_REGION_NUMBER4 + * @arg @ref LL_MPU_REGION_NUMBER5 + * @arg @ref LL_MPU_REGION_NUMBER6 + * @arg @ref LL_MPU_REGION_NUMBER7 + * @param Address Value of region base address + * @param SubRegionDisable Sub-region disable value between Min_Data = 0x00 and Max_Data = 0xFF + * @param Attributes This parameter can be a combination of the following values: + * @arg @ref LL_MPU_REGION_SIZE_32B or @ref LL_MPU_REGION_SIZE_64B or @ref LL_MPU_REGION_SIZE_128B or @ref LL_MPU_REGION_SIZE_256B or @ref LL_MPU_REGION_SIZE_512B + * or @ref LL_MPU_REGION_SIZE_1KB or @ref LL_MPU_REGION_SIZE_2KB or @ref LL_MPU_REGION_SIZE_4KB or @ref LL_MPU_REGION_SIZE_8KB or @ref LL_MPU_REGION_SIZE_16KB + * or @ref LL_MPU_REGION_SIZE_32KB or @ref LL_MPU_REGION_SIZE_64KB or @ref LL_MPU_REGION_SIZE_128KB or @ref LL_MPU_REGION_SIZE_256KB or @ref LL_MPU_REGION_SIZE_512KB + * or @ref LL_MPU_REGION_SIZE_1MB or @ref LL_MPU_REGION_SIZE_2MB or @ref LL_MPU_REGION_SIZE_4MB or @ref LL_MPU_REGION_SIZE_8MB or @ref LL_MPU_REGION_SIZE_16MB + * or @ref LL_MPU_REGION_SIZE_32MB or @ref LL_MPU_REGION_SIZE_64MB or @ref LL_MPU_REGION_SIZE_128MB or @ref LL_MPU_REGION_SIZE_256MB or @ref LL_MPU_REGION_SIZE_512MB + * or @ref LL_MPU_REGION_SIZE_1GB or @ref LL_MPU_REGION_SIZE_2GB or @ref LL_MPU_REGION_SIZE_4GB + * @arg @ref LL_MPU_REGION_NO_ACCESS or @ref LL_MPU_REGION_PRIV_RW or @ref LL_MPU_REGION_PRIV_RW_URO or @ref LL_MPU_REGION_FULL_ACCESS + * or @ref LL_MPU_REGION_PRIV_RO or @ref LL_MPU_REGION_PRIV_RO_URO + * @arg @ref LL_MPU_TEX_LEVEL0 or @ref LL_MPU_TEX_LEVEL1 or @ref LL_MPU_TEX_LEVEL2 or @ref LL_MPU_TEX_LEVEL4 + * @arg @ref LL_MPU_INSTRUCTION_ACCESS_ENABLE or @ref LL_MPU_INSTRUCTION_ACCESS_DISABLE + * @arg @ref LL_MPU_ACCESS_SHAREABLE or @ref LL_MPU_ACCESS_NOT_SHAREABLE + * @arg @ref LL_MPU_ACCESS_CACHEABLE or @ref LL_MPU_ACCESS_NOT_CACHEABLE + * @arg @ref LL_MPU_ACCESS_BUFFERABLE or @ref LL_MPU_ACCESS_NOT_BUFFERABLE + * @retval None + */ +__STATIC_INLINE void LL_MPU_ConfigRegion(uint32_t Region, uint32_t SubRegionDisable, uint32_t Address, uint32_t Attributes) +{ + /* Set Region number */ + WRITE_REG(MPU->RNR, Region); + /* Set base address */ + WRITE_REG(MPU->RBAR, (Address & 0xFFFFFFE0U)); + /* Configure MPU */ + WRITE_REG(MPU->RASR, (MPU_RASR_ENABLE_Msk | Attributes | (SubRegionDisable << MPU_RASR_SRD_Pos))); +} + +/** + * @brief Disable a region + * @rmtoll MPU_RNR REGION LL_MPU_DisableRegion\n + * MPU_RASR ENABLE LL_MPU_DisableRegion + * @param Region This parameter can be one of the following values: + * @arg @ref LL_MPU_REGION_NUMBER0 + * @arg @ref LL_MPU_REGION_NUMBER1 + * @arg @ref LL_MPU_REGION_NUMBER2 + * @arg @ref LL_MPU_REGION_NUMBER3 + * @arg @ref LL_MPU_REGION_NUMBER4 + * @arg @ref LL_MPU_REGION_NUMBER5 + * @arg @ref LL_MPU_REGION_NUMBER6 + * @arg @ref LL_MPU_REGION_NUMBER7 + * @retval None + */ +__STATIC_INLINE void LL_MPU_DisableRegion(uint32_t Region) +{ + /* Set Region number */ + WRITE_REG(MPU->RNR, Region); + /* Disable the MPU region */ + CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @} + */ + +#endif /* __MPU_PRESENT */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_CORTEX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_crs.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_crs.h new file mode 100644 index 0000000..fcd3e5a --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_crs.h @@ -0,0 +1,781 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_crs.h + * @author MCD Application Team + * @brief Header file of CRS LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2018 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_CRS_H +#define __STM32G4xx_LL_CRS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined(CRS) + +/** @defgroup CRS_LL CRS + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup CRS_LL_Exported_Constants CRS Exported Constants + * @{ + */ + +/** @defgroup CRS_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_CRS_ReadReg function + * @{ + */ +#define LL_CRS_ISR_SYNCOKF CRS_ISR_SYNCOKF +#define LL_CRS_ISR_SYNCWARNF CRS_ISR_SYNCWARNF +#define LL_CRS_ISR_ERRF CRS_ISR_ERRF +#define LL_CRS_ISR_ESYNCF CRS_ISR_ESYNCF +#define LL_CRS_ISR_SYNCERR CRS_ISR_SYNCERR +#define LL_CRS_ISR_SYNCMISS CRS_ISR_SYNCMISS +#define LL_CRS_ISR_TRIMOVF CRS_ISR_TRIMOVF +/** + * @} + */ + +/** @defgroup CRS_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_CRS_ReadReg and LL_CRS_WriteReg functions + * @{ + */ +#define LL_CRS_CR_SYNCOKIE CRS_CR_SYNCOKIE +#define LL_CRS_CR_SYNCWARNIE CRS_CR_SYNCWARNIE +#define LL_CRS_CR_ERRIE CRS_CR_ERRIE +#define LL_CRS_CR_ESYNCIE CRS_CR_ESYNCIE +/** + * @} + */ + +/** @defgroup CRS_LL_EC_SYNC_DIV Synchronization Signal Divider + * @{ + */ +#define LL_CRS_SYNC_DIV_1 ((uint32_t)0x00U) /*!< Synchro Signal not divided (default) */ +#define LL_CRS_SYNC_DIV_2 CRS_CFGR_SYNCDIV_0 /*!< Synchro Signal divided by 2 */ +#define LL_CRS_SYNC_DIV_4 CRS_CFGR_SYNCDIV_1 /*!< Synchro Signal divided by 4 */ +#define LL_CRS_SYNC_DIV_8 (CRS_CFGR_SYNCDIV_1 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 8 */ +#define LL_CRS_SYNC_DIV_16 CRS_CFGR_SYNCDIV_2 /*!< Synchro Signal divided by 16 */ +#define LL_CRS_SYNC_DIV_32 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 32 */ +#define LL_CRS_SYNC_DIV_64 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_1) /*!< Synchro Signal divided by 64 */ +#define LL_CRS_SYNC_DIV_128 CRS_CFGR_SYNCDIV /*!< Synchro Signal divided by 128 */ +/** + * @} + */ + +/** @defgroup CRS_LL_EC_SYNC_SOURCE Synchronization Signal Source + * @{ + */ +#define LL_CRS_SYNC_SOURCE_GPIO ((uint32_t)0x00U) /*!< Synchro Signal source GPIO */ +#define LL_CRS_SYNC_SOURCE_LSE CRS_CFGR_SYNCSRC_0 /*!< Synchro Signal source LSE */ +#define LL_CRS_SYNC_SOURCE_USB CRS_CFGR_SYNCSRC_1 /*!< Synchro Signal source USB SOF (default)*/ +/** + * @} + */ + +/** @defgroup CRS_LL_EC_SYNC_POLARITY Synchronization Signal Polarity + * @{ + */ +#define LL_CRS_SYNC_POLARITY_RISING ((uint32_t)0x00U) /*!< Synchro Active on rising edge (default) */ +#define LL_CRS_SYNC_POLARITY_FALLING CRS_CFGR_SYNCPOL /*!< Synchro Active on falling edge */ +/** + * @} + */ + +/** @defgroup CRS_LL_EC_FREQERRORDIR Frequency Error Direction + * @{ + */ +#define LL_CRS_FREQ_ERROR_DIR_UP ((uint32_t)0x00U) /*!< Upcounting direction, the actual frequency is above the target */ +#define LL_CRS_FREQ_ERROR_DIR_DOWN ((uint32_t)CRS_ISR_FEDIR) /*!< Downcounting direction, the actual frequency is below the target */ +/** + * @} + */ + +/** @defgroup CRS_LL_EC_DEFAULTVALUES Default Values + * @{ + */ +/** + * @brief Reset value of the RELOAD field + * @note The reset value of the RELOAD field corresponds to a target frequency of 48 MHz + * and a synchronization signal frequency of 1 kHz (SOF signal from USB) + */ +#define LL_CRS_RELOADVALUE_DEFAULT ((uint32_t)0xBB7FU) + +/** + * @brief Reset value of Frequency error limit. + */ +#define LL_CRS_ERRORLIMIT_DEFAULT ((uint32_t)0x22U) + +/** + * @brief Reset value of the HSI48 Calibration field + * @note The default value is 64, which corresponds to the middle of the trimming interval. + * The trimming step is specified in the product datasheet. + * A higher TRIM value corresponds to a higher output frequency + */ +#define LL_CRS_HSI48CALIBRATION_DEFAULT ((uint32_t)0x40U) +/** + * @} + */ +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup CRS_LL_Exported_Macros CRS Exported Macros + * @{ + */ + +/** @defgroup CRS_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in CRS register + * @param __INSTANCE__ CRS Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_CRS_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in CRS register + * @param __INSTANCE__ CRS Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_CRS_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup CRS_LL_EM_Exported_Macros_Calculate_Reload Exported_Macros_Calculate_Reload + * @{ + */ + +/** + * @brief Macro to calculate reload value to be set in CRS register according to target and sync frequencies + * @note The RELOAD value should be selected according to the ratio between + * the target frequency and the frequency of the synchronization source after + * prescaling. It is then decreased by one in order to reach the expected + * synchronization on the zero value. The formula is the following: + * RELOAD = (fTARGET / fSYNC) -1 + * @param __FTARGET__ Target frequency (value in Hz) + * @param __FSYNC__ Synchronization signal frequency (value in Hz) + * @retval Reload value (in Hz) + */ +#define __LL_CRS_CALC_CALCULATE_RELOADVALUE(__FTARGET__, __FSYNC__) (((__FTARGET__) / (__FSYNC__)) - 1U) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup CRS_LL_Exported_Functions CRS Exported Functions + * @{ + */ + +/** @defgroup CRS_LL_EF_Configuration Configuration + * @{ + */ + +/** + * @brief Enable Frequency error counter + * @note When this bit is set, the CRS_CFGR register is write-protected and cannot be modified + * @rmtoll CR CEN LL_CRS_EnableFreqErrorCounter + * @retval None + */ +__STATIC_INLINE void LL_CRS_EnableFreqErrorCounter(void) +{ + SET_BIT(CRS->CR, CRS_CR_CEN); +} + +/** + * @brief Disable Frequency error counter + * @rmtoll CR CEN LL_CRS_DisableFreqErrorCounter + * @retval None + */ +__STATIC_INLINE void LL_CRS_DisableFreqErrorCounter(void) +{ + CLEAR_BIT(CRS->CR, CRS_CR_CEN); +} + +/** + * @brief Check if Frequency error counter is enabled or not + * @rmtoll CR CEN LL_CRS_IsEnabledFreqErrorCounter + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsEnabledFreqErrorCounter(void) +{ + return ((READ_BIT(CRS->CR, CRS_CR_CEN) == (CRS_CR_CEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable Automatic trimming counter + * @rmtoll CR AUTOTRIMEN LL_CRS_EnableAutoTrimming + * @retval None + */ +__STATIC_INLINE void LL_CRS_EnableAutoTrimming(void) +{ + SET_BIT(CRS->CR, CRS_CR_AUTOTRIMEN); +} + +/** + * @brief Disable Automatic trimming counter + * @rmtoll CR AUTOTRIMEN LL_CRS_DisableAutoTrimming + * @retval None + */ +__STATIC_INLINE void LL_CRS_DisableAutoTrimming(void) +{ + CLEAR_BIT(CRS->CR, CRS_CR_AUTOTRIMEN); +} + +/** + * @brief Check if Automatic trimming is enabled or not + * @rmtoll CR AUTOTRIMEN LL_CRS_IsEnabledAutoTrimming + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsEnabledAutoTrimming(void) +{ + return ((READ_BIT(CRS->CR, CRS_CR_AUTOTRIMEN) == (CRS_CR_AUTOTRIMEN)) ? 1UL : 0UL); +} + +/** + * @brief Set HSI48 oscillator smooth trimming + * @note When the AUTOTRIMEN bit is set, this field is controlled by hardware and is read-only + * @rmtoll CR TRIM LL_CRS_SetHSI48SmoothTrimming + * @param Value a number between Min_Data = 0 and Max_Data = 63 + * @note Default value can be set thanks to @ref LL_CRS_HSI48CALIBRATION_DEFAULT + * @retval None + */ +__STATIC_INLINE void LL_CRS_SetHSI48SmoothTrimming(uint32_t Value) +{ + MODIFY_REG(CRS->CR, CRS_CR_TRIM, Value << CRS_CR_TRIM_Pos); +} + +/** + * @brief Get HSI48 oscillator smooth trimming + * @rmtoll CR TRIM LL_CRS_GetHSI48SmoothTrimming + * @retval a number between Min_Data = 0 and Max_Data = 63 + */ +__STATIC_INLINE uint32_t LL_CRS_GetHSI48SmoothTrimming(void) +{ + return (uint32_t)(READ_BIT(CRS->CR, CRS_CR_TRIM) >> CRS_CR_TRIM_Pos); +} + +/** + * @brief Set counter reload value + * @rmtoll CFGR RELOAD LL_CRS_SetReloadCounter + * @param Value a number between Min_Data = 0 and Max_Data = 0xFFFF + * @note Default value can be set thanks to @ref LL_CRS_RELOADVALUE_DEFAULT + * Otherwise it can be calculated in using macro @ref __LL_CRS_CALC_CALCULATE_RELOADVALUE (_FTARGET_, _FSYNC_) + * @retval None + */ +__STATIC_INLINE void LL_CRS_SetReloadCounter(uint32_t Value) +{ + MODIFY_REG(CRS->CFGR, CRS_CFGR_RELOAD, Value); +} + +/** + * @brief Get counter reload value + * @rmtoll CFGR RELOAD LL_CRS_GetReloadCounter + * @retval a number between Min_Data = 0 and Max_Data = 0xFFFF + */ +__STATIC_INLINE uint32_t LL_CRS_GetReloadCounter(void) +{ + return (uint32_t)(READ_BIT(CRS->CFGR, CRS_CFGR_RELOAD)); +} + +/** + * @brief Set frequency error limit + * @rmtoll CFGR FELIM LL_CRS_SetFreqErrorLimit + * @param Value a number between Min_Data = 0 and Max_Data = 255 + * @note Default value can be set thanks to @ref LL_CRS_ERRORLIMIT_DEFAULT + * @retval None + */ +__STATIC_INLINE void LL_CRS_SetFreqErrorLimit(uint32_t Value) +{ + MODIFY_REG(CRS->CFGR, CRS_CFGR_FELIM, Value << CRS_CFGR_FELIM_Pos); +} + +/** + * @brief Get frequency error limit + * @rmtoll CFGR FELIM LL_CRS_GetFreqErrorLimit + * @retval A number between Min_Data = 0 and Max_Data = 255 + */ +__STATIC_INLINE uint32_t LL_CRS_GetFreqErrorLimit(void) +{ + return (uint32_t)(READ_BIT(CRS->CFGR, CRS_CFGR_FELIM) >> CRS_CFGR_FELIM_Pos); +} + +/** + * @brief Set division factor for SYNC signal + * @rmtoll CFGR SYNCDIV LL_CRS_SetSyncDivider + * @param Divider This parameter can be one of the following values: + * @arg @ref LL_CRS_SYNC_DIV_1 + * @arg @ref LL_CRS_SYNC_DIV_2 + * @arg @ref LL_CRS_SYNC_DIV_4 + * @arg @ref LL_CRS_SYNC_DIV_8 + * @arg @ref LL_CRS_SYNC_DIV_16 + * @arg @ref LL_CRS_SYNC_DIV_32 + * @arg @ref LL_CRS_SYNC_DIV_64 + * @arg @ref LL_CRS_SYNC_DIV_128 + * @retval None + */ +__STATIC_INLINE void LL_CRS_SetSyncDivider(uint32_t Divider) +{ + MODIFY_REG(CRS->CFGR, CRS_CFGR_SYNCDIV, Divider); +} + +/** + * @brief Get division factor for SYNC signal + * @rmtoll CFGR SYNCDIV LL_CRS_GetSyncDivider + * @retval Returned value can be one of the following values: + * @arg @ref LL_CRS_SYNC_DIV_1 + * @arg @ref LL_CRS_SYNC_DIV_2 + * @arg @ref LL_CRS_SYNC_DIV_4 + * @arg @ref LL_CRS_SYNC_DIV_8 + * @arg @ref LL_CRS_SYNC_DIV_16 + * @arg @ref LL_CRS_SYNC_DIV_32 + * @arg @ref LL_CRS_SYNC_DIV_64 + * @arg @ref LL_CRS_SYNC_DIV_128 + */ +__STATIC_INLINE uint32_t LL_CRS_GetSyncDivider(void) +{ + return (uint32_t)(READ_BIT(CRS->CFGR, CRS_CFGR_SYNCDIV)); +} + +/** + * @brief Set SYNC signal source + * @rmtoll CFGR SYNCSRC LL_CRS_SetSyncSignalSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_CRS_SYNC_SOURCE_GPIO + * @arg @ref LL_CRS_SYNC_SOURCE_LSE + * @arg @ref LL_CRS_SYNC_SOURCE_USB + * @retval None + */ +__STATIC_INLINE void LL_CRS_SetSyncSignalSource(uint32_t Source) +{ + MODIFY_REG(CRS->CFGR, CRS_CFGR_SYNCSRC, Source); +} + +/** + * @brief Get SYNC signal source + * @rmtoll CFGR SYNCSRC LL_CRS_GetSyncSignalSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_CRS_SYNC_SOURCE_GPIO + * @arg @ref LL_CRS_SYNC_SOURCE_LSE + * @arg @ref LL_CRS_SYNC_SOURCE_USB + */ +__STATIC_INLINE uint32_t LL_CRS_GetSyncSignalSource(void) +{ + return (uint32_t)(READ_BIT(CRS->CFGR, CRS_CFGR_SYNCSRC)); +} + +/** + * @brief Set input polarity for the SYNC signal source + * @rmtoll CFGR SYNCPOL LL_CRS_SetSyncPolarity + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_CRS_SYNC_POLARITY_RISING + * @arg @ref LL_CRS_SYNC_POLARITY_FALLING + * @retval None + */ +__STATIC_INLINE void LL_CRS_SetSyncPolarity(uint32_t Polarity) +{ + MODIFY_REG(CRS->CFGR, CRS_CFGR_SYNCPOL, Polarity); +} + +/** + * @brief Get input polarity for the SYNC signal source + * @rmtoll CFGR SYNCPOL LL_CRS_GetSyncPolarity + * @retval Returned value can be one of the following values: + * @arg @ref LL_CRS_SYNC_POLARITY_RISING + * @arg @ref LL_CRS_SYNC_POLARITY_FALLING + */ +__STATIC_INLINE uint32_t LL_CRS_GetSyncPolarity(void) +{ + return (uint32_t)(READ_BIT(CRS->CFGR, CRS_CFGR_SYNCPOL)); +} + +/** + * @brief Configure CRS for the synchronization + * @rmtoll CR TRIM LL_CRS_ConfigSynchronization\n + * CFGR RELOAD LL_CRS_ConfigSynchronization\n + * CFGR FELIM LL_CRS_ConfigSynchronization\n + * CFGR SYNCDIV LL_CRS_ConfigSynchronization\n + * CFGR SYNCSRC LL_CRS_ConfigSynchronization\n + * CFGR SYNCPOL LL_CRS_ConfigSynchronization + * @param HSI48CalibrationValue a number between Min_Data = 0 and Max_Data = 63 + * @param ErrorLimitValue a number between Min_Data = 0 and Max_Data = 0xFFFF + * @param ReloadValue a number between Min_Data = 0 and Max_Data = 255 + * @param Settings This parameter can be a combination of the following values: + * @arg @ref LL_CRS_SYNC_DIV_1 or @ref LL_CRS_SYNC_DIV_2 or @ref LL_CRS_SYNC_DIV_4 or @ref LL_CRS_SYNC_DIV_8 + * or @ref LL_CRS_SYNC_DIV_16 or @ref LL_CRS_SYNC_DIV_32 or @ref LL_CRS_SYNC_DIV_64 or @ref LL_CRS_SYNC_DIV_128 + * @arg @ref LL_CRS_SYNC_SOURCE_GPIO or @ref LL_CRS_SYNC_SOURCE_LSE or @ref LL_CRS_SYNC_SOURCE_USB + * @arg @ref LL_CRS_SYNC_POLARITY_RISING or @ref LL_CRS_SYNC_POLARITY_FALLING + * @retval None + */ +__STATIC_INLINE void LL_CRS_ConfigSynchronization(uint32_t HSI48CalibrationValue, uint32_t ErrorLimitValue, + uint32_t ReloadValue, uint32_t Settings) +{ + MODIFY_REG(CRS->CR, CRS_CR_TRIM, HSI48CalibrationValue); + MODIFY_REG(CRS->CFGR, + CRS_CFGR_RELOAD | CRS_CFGR_FELIM | CRS_CFGR_SYNCDIV | CRS_CFGR_SYNCSRC | CRS_CFGR_SYNCPOL, + ReloadValue | (ErrorLimitValue << CRS_CFGR_FELIM_Pos) | Settings); +} + +/** + * @} + */ + +/** @defgroup CRS_LL_EF_CRS_Management CRS_Management + * @{ + */ + +/** + * @brief Generate software SYNC event + * @rmtoll CR SWSYNC LL_CRS_GenerateEvent_SWSYNC + * @retval None + */ +__STATIC_INLINE void LL_CRS_GenerateEvent_SWSYNC(void) +{ + SET_BIT(CRS->CR, CRS_CR_SWSYNC); +} + +/** + * @brief Get the frequency error direction latched in the time of the last + * SYNC event + * @rmtoll ISR FEDIR LL_CRS_GetFreqErrorDirection + * @retval Returned value can be one of the following values: + * @arg @ref LL_CRS_FREQ_ERROR_DIR_UP + * @arg @ref LL_CRS_FREQ_ERROR_DIR_DOWN + */ +__STATIC_INLINE uint32_t LL_CRS_GetFreqErrorDirection(void) +{ + return (uint32_t)(READ_BIT(CRS->ISR, CRS_ISR_FEDIR)); +} + +/** + * @brief Get the frequency error counter value latched in the time of the last SYNC event + * @rmtoll ISR FECAP LL_CRS_GetFreqErrorCapture + * @retval A number between Min_Data = 0x0000 and Max_Data = 0xFFFF + */ +__STATIC_INLINE uint32_t LL_CRS_GetFreqErrorCapture(void) +{ + return (uint32_t)(READ_BIT(CRS->ISR, CRS_ISR_FECAP) >> CRS_ISR_FECAP_Pos); +} + +/** + * @} + */ + +/** @defgroup CRS_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Check if SYNC event OK signal occurred or not + * @rmtoll ISR SYNCOKF LL_CRS_IsActiveFlag_SYNCOK + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_SYNCOK(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_SYNCOKF) == (CRS_ISR_SYNCOKF)) ? 1UL : 0UL); +} + +/** + * @brief Check if SYNC warning signal occurred or not + * @rmtoll ISR SYNCWARNF LL_CRS_IsActiveFlag_SYNCWARN + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_SYNCWARN(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_SYNCWARNF) == (CRS_ISR_SYNCWARNF)) ? 1UL : 0UL); +} + +/** + * @brief Check if Synchronization or trimming error signal occurred or not + * @rmtoll ISR ERRF LL_CRS_IsActiveFlag_ERR + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_ERR(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_ERRF) == (CRS_ISR_ERRF)) ? 1UL : 0UL); +} + +/** + * @brief Check if Expected SYNC signal occurred or not + * @rmtoll ISR ESYNCF LL_CRS_IsActiveFlag_ESYNC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_ESYNC(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_ESYNCF) == (CRS_ISR_ESYNCF)) ? 1UL : 0UL); +} + +/** + * @brief Check if SYNC error signal occurred or not + * @rmtoll ISR SYNCERR LL_CRS_IsActiveFlag_SYNCERR + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_SYNCERR(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_SYNCERR) == (CRS_ISR_SYNCERR)) ? 1UL : 0UL); +} + +/** + * @brief Check if SYNC missed error signal occurred or not + * @rmtoll ISR SYNCMISS LL_CRS_IsActiveFlag_SYNCMISS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_SYNCMISS(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_SYNCMISS) == (CRS_ISR_SYNCMISS)) ? 1UL : 0UL); +} + +/** + * @brief Check if Trimming overflow or underflow occurred or not + * @rmtoll ISR TRIMOVF LL_CRS_IsActiveFlag_TRIMOVF + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsActiveFlag_TRIMOVF(void) +{ + return ((READ_BIT(CRS->ISR, CRS_ISR_TRIMOVF) == (CRS_ISR_TRIMOVF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the SYNC event OK flag + * @rmtoll ICR SYNCOKC LL_CRS_ClearFlag_SYNCOK + * @retval None + */ +__STATIC_INLINE void LL_CRS_ClearFlag_SYNCOK(void) +{ + WRITE_REG(CRS->ICR, CRS_ICR_SYNCOKC); +} + +/** + * @brief Clear the SYNC warning flag + * @rmtoll ICR SYNCWARNC LL_CRS_ClearFlag_SYNCWARN + * @retval None + */ +__STATIC_INLINE void LL_CRS_ClearFlag_SYNCWARN(void) +{ + WRITE_REG(CRS->ICR, CRS_ICR_SYNCWARNC); +} + +/** + * @brief Clear TRIMOVF, SYNCMISS and SYNCERR bits and consequently also + * the ERR flag + * @rmtoll ICR ERRC LL_CRS_ClearFlag_ERR + * @retval None + */ +__STATIC_INLINE void LL_CRS_ClearFlag_ERR(void) +{ + WRITE_REG(CRS->ICR, CRS_ICR_ERRC); +} + +/** + * @brief Clear Expected SYNC flag + * @rmtoll ICR ESYNCC LL_CRS_ClearFlag_ESYNC + * @retval None + */ +__STATIC_INLINE void LL_CRS_ClearFlag_ESYNC(void) +{ + WRITE_REG(CRS->ICR, CRS_ICR_ESYNCC); +} + +/** + * @} + */ + +/** @defgroup CRS_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable SYNC event OK interrupt + * @rmtoll CR SYNCOKIE LL_CRS_EnableIT_SYNCOK + * @retval None + */ +__STATIC_INLINE void LL_CRS_EnableIT_SYNCOK(void) +{ + SET_BIT(CRS->CR, CRS_CR_SYNCOKIE); +} + +/** + * @brief Disable SYNC event OK interrupt + * @rmtoll CR SYNCOKIE LL_CRS_DisableIT_SYNCOK + * @retval None + */ +__STATIC_INLINE void LL_CRS_DisableIT_SYNCOK(void) +{ + CLEAR_BIT(CRS->CR, CRS_CR_SYNCOKIE); +} + +/** + * @brief Check if SYNC event OK interrupt is enabled or not + * @rmtoll CR SYNCOKIE LL_CRS_IsEnabledIT_SYNCOK + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsEnabledIT_SYNCOK(void) +{ + return ((READ_BIT(CRS->CR, CRS_CR_SYNCOKIE) == (CRS_CR_SYNCOKIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable SYNC warning interrupt + * @rmtoll CR SYNCWARNIE LL_CRS_EnableIT_SYNCWARN + * @retval None + */ +__STATIC_INLINE void LL_CRS_EnableIT_SYNCWARN(void) +{ + SET_BIT(CRS->CR, CRS_CR_SYNCWARNIE); +} + +/** + * @brief Disable SYNC warning interrupt + * @rmtoll CR SYNCWARNIE LL_CRS_DisableIT_SYNCWARN + * @retval None + */ +__STATIC_INLINE void LL_CRS_DisableIT_SYNCWARN(void) +{ + CLEAR_BIT(CRS->CR, CRS_CR_SYNCWARNIE); +} + +/** + * @brief Check if SYNC warning interrupt is enabled or not + * @rmtoll CR SYNCWARNIE LL_CRS_IsEnabledIT_SYNCWARN + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsEnabledIT_SYNCWARN(void) +{ + return ((READ_BIT(CRS->CR, CRS_CR_SYNCWARNIE) == (CRS_CR_SYNCWARNIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable Synchronization or trimming error interrupt + * @rmtoll CR ERRIE LL_CRS_EnableIT_ERR + * @retval None + */ +__STATIC_INLINE void LL_CRS_EnableIT_ERR(void) +{ + SET_BIT(CRS->CR, CRS_CR_ERRIE); +} + +/** + * @brief Disable Synchronization or trimming error interrupt + * @rmtoll CR ERRIE LL_CRS_DisableIT_ERR + * @retval None + */ +__STATIC_INLINE void LL_CRS_DisableIT_ERR(void) +{ + CLEAR_BIT(CRS->CR, CRS_CR_ERRIE); +} + +/** + * @brief Check if Synchronization or trimming error interrupt is enabled or not + * @rmtoll CR ERRIE LL_CRS_IsEnabledIT_ERR + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsEnabledIT_ERR(void) +{ + return ((READ_BIT(CRS->CR, CRS_CR_ERRIE) == (CRS_CR_ERRIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable Expected SYNC interrupt + * @rmtoll CR ESYNCIE LL_CRS_EnableIT_ESYNC + * @retval None + */ +__STATIC_INLINE void LL_CRS_EnableIT_ESYNC(void) +{ + SET_BIT(CRS->CR, CRS_CR_ESYNCIE); +} + +/** + * @brief Disable Expected SYNC interrupt + * @rmtoll CR ESYNCIE LL_CRS_DisableIT_ESYNC + * @retval None + */ +__STATIC_INLINE void LL_CRS_DisableIT_ESYNC(void) +{ + CLEAR_BIT(CRS->CR, CRS_CR_ESYNCIE); +} + +/** + * @brief Check if Expected SYNC interrupt is enabled or not + * @rmtoll CR ESYNCIE LL_CRS_IsEnabledIT_ESYNC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_CRS_IsEnabledIT_ESYNC(void) +{ + return ((READ_BIT(CRS->CR, CRS_CR_ESYNCIE) == (CRS_CR_ESYNCIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup CRS_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +ErrorStatus LL_CRS_DeInit(void); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(CRS) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_CRS_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dma.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dma.h new file mode 100644 index 0000000..515b32e --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dma.h @@ -0,0 +1,2578 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_dma.h + * @author MCD Application Team + * @brief Header file of DMA LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_DMA_H +#define __STM32G4xx_LL_DMA_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" +#include "stm32g4xx_ll_dmamux.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (DMA1) || defined (DMA2) + +/** @defgroup DMA_LL DMA + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup DMA_LL_Private_Variables DMA Private Variables + * @{ + */ +/* Array used to get the DMA channel register offset versus channel index LL_DMA_CHANNEL_x */ +static const uint8_t CHANNEL_OFFSET_TAB[] = +{ + (uint8_t)(DMA1_Channel1_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel2_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel3_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel4_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel5_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel6_BASE - DMA1_BASE) +#if defined (DMA1_Channel7) + , + (uint8_t)(DMA1_Channel7_BASE - DMA1_BASE) +#endif /* DMA1_Channel7 */ +#if defined (DMA1_Channel8) + , + (uint8_t)(DMA1_Channel8_BASE - DMA1_BASE) +#endif /* DMA1_Channel8 */ +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup DMA_LL_Private_Constants DMA Private Constants + * @{ + */ +/* Define used to get CSELR register offset */ +#define DMA_CSELR_OFFSET (uint32_t)(DMA1_CSELR_BASE - DMA1_BASE) + +/* Defines used for the bit position in the register and perform offsets */ +#define DMA_POSITION_CSELR_CXS POSITION_VAL(DMA_CSELR_C1S << ((Channel-1U)*4U)) +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup DMA_LL_Private_Macros DMA Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup DMA_LL_ES_INIT DMA Exported Init structure + * @{ + */ +typedef struct +{ + uint32_t PeriphOrM2MSrcAddress; /*!< Specifies the peripheral base address for DMA transfer + or as Source base address in case of memory to memory transfer direction. + + This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */ + + uint32_t MemoryOrM2MDstAddress; /*!< Specifies the memory base address for DMA transfer + or as Destination base address in case of memory to memory transfer direction. + + This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */ + + uint32_t Direction; /*!< Specifies if the data will be transferred from memory to peripheral, + from memory to memory or from peripheral to memory. + This parameter can be a value of @ref DMA_LL_EC_DIRECTION + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetDataTransferDirection(). */ + + uint32_t Mode; /*!< Specifies the normal or circular operation mode. + This parameter can be a value of @ref DMA_LL_EC_MODE + @note: The circular buffer mode cannot be used if the memory to memory + data transfer direction is configured on the selected Channel + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetMode(). */ + + uint32_t PeriphOrM2MSrcIncMode; /*!< Specifies whether the Peripheral address or Source address in case of memory to memory transfer direction + is incremented or not. + This parameter can be a value of @ref DMA_LL_EC_PERIPH + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphIncMode(). */ + + uint32_t MemoryOrM2MDstIncMode; /*!< Specifies whether the Memory address or Destination address in case of memory to memory transfer direction + is incremented or not. + This parameter can be a value of @ref DMA_LL_EC_MEMORY + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemoryIncMode(). */ + + uint32_t PeriphOrM2MSrcDataSize; /*!< Specifies the Peripheral data size alignment or Source data size alignment (byte, half word, word) + in case of memory to memory transfer direction. + This parameter can be a value of @ref DMA_LL_EC_PDATAALIGN + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphSize(). */ + + uint32_t MemoryOrM2MDstDataSize; /*!< Specifies the Memory data size alignment or Destination data size alignment (byte, half word, word) + in case of memory to memory transfer direction. + This parameter can be a value of @ref DMA_LL_EC_MDATAALIGN + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemorySize(). */ + + uint32_t NbData; /*!< Specifies the number of data to transfer, in data unit. + The data unit is equal to the source buffer configuration set in PeripheralSize + or MemorySize parameters depending in the transfer direction. + This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000FFFF + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetDataLength(). */ + + uint32_t PeriphRequest; /*!< Specifies the peripheral request. + This parameter can be a value of @ref DMAMUX_LL_EC_REQUEST + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphRequest(). */ + + uint32_t Priority; /*!< Specifies the channel priority level. + This parameter can be a value of @ref DMA_LL_EC_PRIORITY + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetChannelPriorityLevel(). */ + +} LL_DMA_InitTypeDef; +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup DMA_LL_Exported_Constants DMA Exported Constants + * @{ + */ +/** @defgroup DMA_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_DMA_WriteReg function + * @{ + */ +#define LL_DMA_IFCR_CGIF1 DMA_IFCR_CGIF1 /*!< Channel 1 global flag */ +#define LL_DMA_IFCR_CTCIF1 DMA_IFCR_CTCIF1 /*!< Channel 1 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF1 DMA_IFCR_CHTIF1 /*!< Channel 1 half transfer flag */ +#define LL_DMA_IFCR_CTEIF1 DMA_IFCR_CTEIF1 /*!< Channel 1 transfer error flag */ +#define LL_DMA_IFCR_CGIF2 DMA_IFCR_CGIF2 /*!< Channel 2 global flag */ +#define LL_DMA_IFCR_CTCIF2 DMA_IFCR_CTCIF2 /*!< Channel 2 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF2 DMA_IFCR_CHTIF2 /*!< Channel 2 half transfer flag */ +#define LL_DMA_IFCR_CTEIF2 DMA_IFCR_CTEIF2 /*!< Channel 2 transfer error flag */ +#define LL_DMA_IFCR_CGIF3 DMA_IFCR_CGIF3 /*!< Channel 3 global flag */ +#define LL_DMA_IFCR_CTCIF3 DMA_IFCR_CTCIF3 /*!< Channel 3 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF3 DMA_IFCR_CHTIF3 /*!< Channel 3 half transfer flag */ +#define LL_DMA_IFCR_CTEIF3 DMA_IFCR_CTEIF3 /*!< Channel 3 transfer error flag */ +#define LL_DMA_IFCR_CGIF4 DMA_IFCR_CGIF4 /*!< Channel 4 global flag */ +#define LL_DMA_IFCR_CTCIF4 DMA_IFCR_CTCIF4 /*!< Channel 4 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF4 DMA_IFCR_CHTIF4 /*!< Channel 4 half transfer flag */ +#define LL_DMA_IFCR_CTEIF4 DMA_IFCR_CTEIF4 /*!< Channel 4 transfer error flag */ +#define LL_DMA_IFCR_CGIF5 DMA_IFCR_CGIF5 /*!< Channel 5 global flag */ +#define LL_DMA_IFCR_CTCIF5 DMA_IFCR_CTCIF5 /*!< Channel 5 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF5 DMA_IFCR_CHTIF5 /*!< Channel 5 half transfer flag */ +#define LL_DMA_IFCR_CTEIF5 DMA_IFCR_CTEIF5 /*!< Channel 5 transfer error flag */ +#define LL_DMA_IFCR_CGIF6 DMA_IFCR_CGIF6 /*!< Channel 6 global flag */ +#define LL_DMA_IFCR_CTCIF6 DMA_IFCR_CTCIF6 /*!< Channel 6 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF6 DMA_IFCR_CHTIF6 /*!< Channel 6 half transfer flag */ +#define LL_DMA_IFCR_CTEIF6 DMA_IFCR_CTEIF6 /*!< Channel 6 transfer error flag */ +#if defined (DMA1_Channel7) +#define LL_DMA_IFCR_CGIF7 DMA_IFCR_CGIF7 /*!< Channel 7 global flag */ +#define LL_DMA_IFCR_CTCIF7 DMA_IFCR_CTCIF7 /*!< Channel 7 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF7 DMA_IFCR_CHTIF7 /*!< Channel 7 half transfer flag */ +#define LL_DMA_IFCR_CTEIF7 DMA_IFCR_CTEIF7 /*!< Channel 7 transfer error flag */ +#endif /* DMA1_Channel7 */ +#if defined (DMA1_Channel8) +#define LL_DMA_IFCR_CGIF8 DMA_IFCR_CGIF8 /*!< Channel 8 global flag */ +#define LL_DMA_IFCR_CTCIF8 DMA_IFCR_CTCIF8 /*!< Channel 8 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF8 DMA_IFCR_CHTIF8 /*!< Channel 8 half transfer flag */ +#define LL_DMA_IFCR_CTEIF8 DMA_IFCR_CTEIF8 /*!< Channel 8 transfer error flag */ +#endif /* DMA1_Channel8 */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_DMA_ReadReg function + * @{ + */ +#define LL_DMA_ISR_GIF1 DMA_ISR_GIF1 /*!< Channel 1 global flag */ +#define LL_DMA_ISR_TCIF1 DMA_ISR_TCIF1 /*!< Channel 1 transfer complete flag */ +#define LL_DMA_ISR_HTIF1 DMA_ISR_HTIF1 /*!< Channel 1 half transfer flag */ +#define LL_DMA_ISR_TEIF1 DMA_ISR_TEIF1 /*!< Channel 1 transfer error flag */ +#define LL_DMA_ISR_GIF2 DMA_ISR_GIF2 /*!< Channel 2 global flag */ +#define LL_DMA_ISR_TCIF2 DMA_ISR_TCIF2 /*!< Channel 2 transfer complete flag */ +#define LL_DMA_ISR_HTIF2 DMA_ISR_HTIF2 /*!< Channel 2 half transfer flag */ +#define LL_DMA_ISR_TEIF2 DMA_ISR_TEIF2 /*!< Channel 2 transfer error flag */ +#define LL_DMA_ISR_GIF3 DMA_ISR_GIF3 /*!< Channel 3 global flag */ +#define LL_DMA_ISR_TCIF3 DMA_ISR_TCIF3 /*!< Channel 3 transfer complete flag */ +#define LL_DMA_ISR_HTIF3 DMA_ISR_HTIF3 /*!< Channel 3 half transfer flag */ +#define LL_DMA_ISR_TEIF3 DMA_ISR_TEIF3 /*!< Channel 3 transfer error flag */ +#define LL_DMA_ISR_GIF4 DMA_ISR_GIF4 /*!< Channel 4 global flag */ +#define LL_DMA_ISR_TCIF4 DMA_ISR_TCIF4 /*!< Channel 4 transfer complete flag */ +#define LL_DMA_ISR_HTIF4 DMA_ISR_HTIF4 /*!< Channel 4 half transfer flag */ +#define LL_DMA_ISR_TEIF4 DMA_ISR_TEIF4 /*!< Channel 4 transfer error flag */ +#define LL_DMA_ISR_GIF5 DMA_ISR_GIF5 /*!< Channel 5 global flag */ +#define LL_DMA_ISR_TCIF5 DMA_ISR_TCIF5 /*!< Channel 5 transfer complete flag */ +#define LL_DMA_ISR_HTIF5 DMA_ISR_HTIF5 /*!< Channel 5 half transfer flag */ +#define LL_DMA_ISR_TEIF5 DMA_ISR_TEIF5 /*!< Channel 5 transfer error flag */ +#define LL_DMA_ISR_GIF6 DMA_ISR_GIF6 /*!< Channel 6 global flag */ +#define LL_DMA_ISR_TCIF6 DMA_ISR_TCIF6 /*!< Channel 6 transfer complete flag */ +#define LL_DMA_ISR_HTIF6 DMA_ISR_HTIF6 /*!< Channel 6 half transfer flag */ +#define LL_DMA_ISR_TEIF6 DMA_ISR_TEIF6 /*!< Channel 6 transfer error flag */ +#if defined (DMA1_Channel7) +#define LL_DMA_ISR_GIF7 DMA_ISR_GIF7 /*!< Channel 7 global flag */ +#define LL_DMA_ISR_TCIF7 DMA_ISR_TCIF7 /*!< Channel 7 transfer complete flag */ +#define LL_DMA_ISR_HTIF7 DMA_ISR_HTIF7 /*!< Channel 7 half transfer flag */ +#define LL_DMA_ISR_TEIF7 DMA_ISR_TEIF7 /*!< Channel 7 transfer error flag */ +#endif /* DMA1_Channel7 */ +#if defined (DMA1_Channel8) +#define LL_DMA_ISR_GIF8 DMA_ISR_GIF8 /*!< Channel 8 global flag */ +#define LL_DMA_ISR_TCIF8 DMA_ISR_TCIF8 /*!< Channel 8 transfer complete flag */ +#define LL_DMA_ISR_HTIF8 DMA_ISR_HTIF8 /*!< Channel 8 half transfer flag */ +#define LL_DMA_ISR_TEIF8 DMA_ISR_TEIF8 /*!< Channel 8 transfer error flag */ +#endif /* DMA1_Channel8 */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_DMA_ReadReg and LL_DMA_WriteReg functions + * @{ + */ +#define LL_DMA_CCR_TCIE DMA_CCR_TCIE /*!< Transfer complete interrupt */ +#define LL_DMA_CCR_HTIE DMA_CCR_HTIE /*!< Half Transfer interrupt */ +#define LL_DMA_CCR_TEIE DMA_CCR_TEIE /*!< Transfer error interrupt */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_CHANNEL CHANNEL + * @{ + */ +#define LL_DMA_CHANNEL_1 0x00000000U /*!< DMA Channel 1 */ +#define LL_DMA_CHANNEL_2 0x00000001U /*!< DMA Channel 2 */ +#define LL_DMA_CHANNEL_3 0x00000002U /*!< DMA Channel 3 */ +#define LL_DMA_CHANNEL_4 0x00000003U /*!< DMA Channel 4 */ +#define LL_DMA_CHANNEL_5 0x00000004U /*!< DMA Channel 5 */ +#define LL_DMA_CHANNEL_6 0x00000005U /*!< DMA Channel 6 */ +#if defined (DMA1_Channel7) +#define LL_DMA_CHANNEL_7 0x00000006U /*!< DMA Channel 7 */ +#endif /* DMA1_Channel7 */ +#if defined (DMA1_Channel8) +#define LL_DMA_CHANNEL_8 0x00000007U /*!< DMA Channel 8 */ +#endif /* DMA1_Channel8 */ +#if defined(USE_FULL_LL_DRIVER) +#define LL_DMA_CHANNEL_ALL 0xFFFF0000U /*!< DMA Channel all (used only for function @ref LL_DMA_DeInit(). */ +#endif /*USE_FULL_LL_DRIVER*/ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_DIRECTION Transfer Direction + * @{ + */ +#define LL_DMA_DIRECTION_PERIPH_TO_MEMORY 0x00000000U /*!< Peripheral to memory direction */ +#define LL_DMA_DIRECTION_MEMORY_TO_PERIPH DMA_CCR_DIR /*!< Memory to peripheral direction */ +#define LL_DMA_DIRECTION_MEMORY_TO_MEMORY DMA_CCR_MEM2MEM /*!< Memory to memory direction */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_MODE Transfer mode + * @{ + */ +#define LL_DMA_MODE_NORMAL 0x00000000U /*!< Normal Mode */ +#define LL_DMA_MODE_CIRCULAR DMA_CCR_CIRC /*!< Circular Mode */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_PERIPH Peripheral increment mode + * @{ + */ +#define LL_DMA_PERIPH_INCREMENT DMA_CCR_PINC /*!< Peripheral increment mode Enable */ +#define LL_DMA_PERIPH_NOINCREMENT 0x00000000U /*!< Peripheral increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_MEMORY Memory increment mode + * @{ + */ +#define LL_DMA_MEMORY_INCREMENT DMA_CCR_MINC /*!< Memory increment mode Enable */ +#define LL_DMA_MEMORY_NOINCREMENT 0x00000000U /*!< Memory increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_PDATAALIGN Peripheral data alignment + * @{ + */ +#define LL_DMA_PDATAALIGN_BYTE 0x00000000U /*!< Peripheral data alignment : Byte */ +#define LL_DMA_PDATAALIGN_HALFWORD DMA_CCR_PSIZE_0 /*!< Peripheral data alignment : HalfWord */ +#define LL_DMA_PDATAALIGN_WORD DMA_CCR_PSIZE_1 /*!< Peripheral data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_MDATAALIGN Memory data alignment + * @{ + */ +#define LL_DMA_MDATAALIGN_BYTE 0x00000000U /*!< Memory data alignment : Byte */ +#define LL_DMA_MDATAALIGN_HALFWORD DMA_CCR_MSIZE_0 /*!< Memory data alignment : HalfWord */ +#define LL_DMA_MDATAALIGN_WORD DMA_CCR_MSIZE_1 /*!< Memory data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_PRIORITY Transfer Priority level + * @{ + */ +#define LL_DMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */ +#define LL_DMA_PRIORITY_MEDIUM DMA_CCR_PL_0 /*!< Priority level : Medium */ +#define LL_DMA_PRIORITY_HIGH DMA_CCR_PL_1 /*!< Priority level : High */ +#define LL_DMA_PRIORITY_VERYHIGH DMA_CCR_PL /*!< Priority level : Very_High */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup DMA_LL_Exported_Macros DMA Exported Macros + * @{ + */ + +/** @defgroup DMA_LL_EM_WRITE_READ Common Write and read registers macros + * @{ + */ +/** + * @brief Write a value in DMA register + * @param __INSTANCE__ DMA Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_DMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in DMA register + * @param __INSTANCE__ DMA Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_DMA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup DMA_LL_EM_CONVERT_DMAxCHANNELy Convert DMAxChannely + * @{ + */ +/** + * @brief Convert DMAx_Channely into DMAx + * @param __CHANNEL_INSTANCE__ DMAx_Channely + * @retval DMAx + */ +#if defined (DMA1_Channel8) +#define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) \ + (((uint32_t)(__CHANNEL_INSTANCE__) > ((uint32_t)DMA1_Channel8)) ? DMA2 : DMA1) +#else +#define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) \ + (((uint32_t)(__CHANNEL_INSTANCE__) > ((uint32_t)DMA1_Channel6)) ? DMA2 : DMA1) +#endif /* DMA1_Channel8 */ +/** + * @brief Convert DMAx_Channely into LL_DMA_CHANNEL_y + * @param __CHANNEL_INSTANCE__ DMAx_Channely + * @retval LL_DMA_CHANNEL_y + */ +#if defined (DMA1_Channel8) +#define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ + (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel6)) ? LL_DMA_CHANNEL_6 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel7)) ? LL_DMA_CHANNEL_7 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel7)) ? LL_DMA_CHANNEL_7 : \ + LL_DMA_CHANNEL_8) +#else +#define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ + (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel5)) ? LL_DMA_CHANNEL_5 : \ + LL_DMA_CHANNEL_6) +#endif /* DMA1_Channel8 */ + +/** + * @brief Convert DMA Instance DMAx and LL_DMA_CHANNEL_y into DMAx_Channely + * @param __DMA_INSTANCE__ DMAx + * @param __CHANNEL__ LL_DMA_CHANNEL_y + * @retval DMAx_Channely + */ +#if defined (DMA1_Channel8) +#define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \ + ((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA2_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA2_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA2_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA2_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA2_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA2_Channel6 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_7))) ? DMA1_Channel7 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_7))) ? DMA2_Channel7 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_8))) ? DMA1_Channel8 : \ + DMA2_Channel8) +#else +#define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \ + ((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA2_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA2_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA2_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA2_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA2_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \ + DMA2_Channel6) +#endif /* DMA1_Channel8 */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup DMA_LL_Exported_Functions DMA Exported Functions + * @{ + */ + +/** @defgroup DMA_LL_EF_Configuration Configuration + * @{ + */ +/** + * @brief Enable DMA channel. + * @rmtoll CCR EN LL_DMA_EnableChannel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_EN); +} + +/** + * @brief Disable DMA channel. + * @rmtoll CCR EN LL_DMA_DisableChannel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_EN); +} + +/** + * @brief Check if DMA channel is enabled or disabled. + * @rmtoll CCR EN LL_DMA_IsEnabledChannel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return ((READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_EN) == (DMA_CCR_EN)) ? 1UL : 0UL); +} + +/** + * @brief Configure all parameters link to DMA transfer. + * @rmtoll CCR DIR LL_DMA_ConfigTransfer\n + * CCR MEM2MEM LL_DMA_ConfigTransfer\n + * CCR CIRC LL_DMA_ConfigTransfer\n + * CCR PINC LL_DMA_ConfigTransfer\n + * CCR MINC LL_DMA_ConfigTransfer\n + * CCR PSIZE LL_DMA_ConfigTransfer\n + * CCR MSIZE LL_DMA_ConfigTransfer\n + * CCR PL LL_DMA_ConfigTransfer + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY or @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH or @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + * @arg @ref LL_DMA_MODE_NORMAL or @ref LL_DMA_MODE_CIRCULAR + * @arg @ref LL_DMA_PERIPH_INCREMENT or @ref LL_DMA_PERIPH_NOINCREMENT + * @arg @ref LL_DMA_MEMORY_INCREMENT or @ref LL_DMA_MEMORY_NOINCREMENT + * @arg @ref LL_DMA_PDATAALIGN_BYTE or @ref LL_DMA_PDATAALIGN_HALFWORD or @ref LL_DMA_PDATAALIGN_WORD + * @arg @ref LL_DMA_MDATAALIGN_BYTE or @ref LL_DMA_MDATAALIGN_HALFWORD or @ref LL_DMA_MDATAALIGN_WORD + * @arg @ref LL_DMA_PRIORITY_LOW or @ref LL_DMA_PRIORITY_MEDIUM or @ref LL_DMA_PRIORITY_HIGH or @ref LL_DMA_PRIORITY_VERYHIGH + * @retval None + */ +__STATIC_INLINE void LL_DMA_ConfigTransfer(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Configuration) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_DIR | DMA_CCR_MEM2MEM | DMA_CCR_CIRC | DMA_CCR_PINC | DMA_CCR_MINC | DMA_CCR_PSIZE | DMA_CCR_MSIZE | DMA_CCR_PL, + Configuration); +} + +/** + * @brief Set Data transfer direction (read from peripheral or from memory). + * @rmtoll CCR DIR LL_DMA_SetDataTransferDirection\n + * CCR MEM2MEM LL_DMA_SetDataTransferDirection + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param Direction This parameter can be one of the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_DIR | DMA_CCR_MEM2MEM, Direction); +} + +/** + * @brief Get Data transfer direction (read from peripheral or from memory). + * @rmtoll CCR DIR LL_DMA_GetDataTransferDirection\n + * CCR MEM2MEM LL_DMA_GetDataTransferDirection + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + */ +__STATIC_INLINE uint32_t LL_DMA_GetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_DIR | DMA_CCR_MEM2MEM)); +} + +/** + * @brief Set DMA mode circular or normal. + * @note The circular buffer mode cannot be used if the memory-to-memory + * data transfer is configured on the selected Channel. + * @rmtoll CCR CIRC LL_DMA_SetMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param Mode This parameter can be one of the following values: + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_CIRC, + Mode); +} + +/** + * @brief Get DMA mode circular or normal. + * @rmtoll CCR CIRC LL_DMA_GetMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_MODE_NORMAL + * @arg @ref LL_DMA_MODE_CIRCULAR + */ +__STATIC_INLINE uint32_t LL_DMA_GetMode(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_CIRC)); +} + +/** + * @brief Set Peripheral increment mode. + * @rmtoll CCR PINC LL_DMA_SetPeriphIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param PeriphOrM2MSrcIncMode This parameter can be one of the following values: + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_PINC, + PeriphOrM2MSrcIncMode); +} + +/** + * @brief Get Peripheral increment mode. + * @rmtoll CCR PINC LL_DMA_GetPeriphIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_PERIPH_INCREMENT + * @arg @ref LL_DMA_PERIPH_NOINCREMENT + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_PINC)); +} + +/** + * @brief Set Memory increment mode. + * @rmtoll CCR MINC LL_DMA_SetMemoryIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param MemoryOrM2MDstIncMode This parameter can be one of the following values: + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_MINC, + MemoryOrM2MDstIncMode); +} + +/** + * @brief Get Memory increment mode. + * @rmtoll CCR MINC LL_DMA_GetMemoryIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_MEMORY_INCREMENT + * @arg @ref LL_DMA_MEMORY_NOINCREMENT + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_MINC)); +} + +/** + * @brief Set Peripheral size. + * @rmtoll CCR PSIZE LL_DMA_SetPeriphSize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param PeriphOrM2MSrcDataSize This parameter can be one of the following values: + * @arg @ref LL_DMA_PDATAALIGN_BYTE + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_PSIZE, + PeriphOrM2MSrcDataSize); +} + +/** + * @brief Get Peripheral size. + * @rmtoll CCR PSIZE LL_DMA_GetPeriphSize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_PDATAALIGN_BYTE + * @arg @ref LL_DMA_PDATAALIGN_HALFWORD + * @arg @ref LL_DMA_PDATAALIGN_WORD + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_PSIZE)); +} + +/** + * @brief Set Memory size. + * @rmtoll CCR MSIZE LL_DMA_SetMemorySize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param MemoryOrM2MDstDataSize This parameter can be one of the following values: + * @arg @ref LL_DMA_MDATAALIGN_BYTE + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_MSIZE, + MemoryOrM2MDstDataSize); +} + +/** + * @brief Get Memory size. + * @rmtoll CCR MSIZE LL_DMA_GetMemorySize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_MDATAALIGN_BYTE + * @arg @ref LL_DMA_MDATAALIGN_HALFWORD + * @arg @ref LL_DMA_MDATAALIGN_WORD + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_MSIZE)); +} + +/** + * @brief Set Channel priority level. + * @rmtoll CCR PL LL_DMA_SetChannelPriorityLevel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param Priority This parameter can be one of the following values: + * @arg @ref LL_DMA_PRIORITY_LOW + * @arg @ref LL_DMA_PRIORITY_MEDIUM + * @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) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_PL, + Priority); +} + +/** + * @brief Get Channel priority level. + * @rmtoll CCR PL LL_DMA_GetChannelPriorityLevel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_PRIORITY_LOW + * @arg @ref LL_DMA_PRIORITY_MEDIUM + * @arg @ref LL_DMA_PRIORITY_HIGH + * @arg @ref LL_DMA_PRIORITY_VERYHIGH + */ +__STATIC_INLINE uint32_t LL_DMA_GetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_PL)); +} + +/** + * @brief Set Number of data to transfer. + * @note This action has no effect if + * channel is enabled. + * @rmtoll CNDTR NDT LL_DMA_SetDataLength + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param NbData Between Min_Data = 0 and Max_Data = 0x0000FFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetDataLength(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t NbData) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CNDTR, + DMA_CNDTR_NDT, NbData); +} + +/** + * @brief Get Number of data to transfer. + * @note Once the channel is enabled, the return value indicate the + * remaining bytes to be transmitted. + * @rmtoll CNDTR NDT LL_DMA_GetDataLength + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetDataLength(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CNDTR, + DMA_CNDTR_NDT)); +} + +/** + * @brief Configure the Source and Destination addresses. + * @note This API must not be called when the DMA channel is enabled. + * @note Each IP using DMA provides an API to get directly the register address (LL_PPP_DMA_GetRegAddr). + * @rmtoll CPAR PA LL_DMA_ConfigAddresses\n + * CMAR MA LL_DMA_ConfigAddresses + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param SrcAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @param DstAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @param Direction This parameter can be one of the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + * @retval None + */ +__STATIC_INLINE void LL_DMA_ConfigAddresses(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t SrcAddress, + uint32_t DstAddress, uint32_t Direction) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + + /* Direction Memory to Periph */ + if (Direction == LL_DMA_DIRECTION_MEMORY_TO_PERIPH) + { + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CMAR, SrcAddress); + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CPAR, DstAddress); + } + /* Direction Periph to Memory and Memory to Memory */ + else + { + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CPAR, SrcAddress); + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CMAR, DstAddress); + } +} + +/** + * @brief Set the Memory address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CMAR MA LL_DMA_SetMemoryAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CMAR, MemoryAddress); +} + +/** + * @brief Set the Peripheral address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CPAR PA LL_DMA_SetPeriphAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param PeriphAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphAddress) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CPAR, PeriphAddress); +} + +/** + * @brief Get Memory address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @rmtoll CMAR MA LL_DMA_GetMemoryAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CMAR)); +} + +/** + * @brief Get Peripheral address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @rmtoll CPAR PA LL_DMA_GetPeriphAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CPAR)); +} + +/** + * @brief Set the Memory to Memory Source address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CPAR PA LL_DMA_SetM2MSrcAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CPAR, MemoryAddress); +} + +/** + * @brief Set the Memory to Memory Destination address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CMAR MA LL_DMA_SetM2MDstAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CMAR, MemoryAddress); +} + +/** + * @brief Get the Memory to Memory Source address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @rmtoll CPAR PA LL_DMA_GetM2MSrcAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CPAR)); +} + +/** + * @brief Get the Memory to Memory Destination address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @rmtoll CMAR MA LL_DMA_GetM2MDstAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CMAR)); +} + +/** + * @brief Set DMA request for DMA instance on Channel x. + * @note Please refer to Reference Manual to get the available mapping of Request value link to Channel Selection. + * @rmtoll CSELR C1S LL_DMA_SetPeriphRequest\n + * CSELR C2S LL_DMA_SetPeriphRequest\n + * CSELR C3S LL_DMA_SetPeriphRequest\n + * CSELR C4S LL_DMA_SetPeriphRequest\n + * CSELR C5S LL_DMA_SetPeriphRequest\n + * CSELR C6S LL_DMA_SetPeriphRequest\n + * CSELR C7S LL_DMA_SetPeriphRequest + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @param PeriphRequest This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_MEM2MEM + * @arg @ref LL_DMAMUX_REQ_GENERATOR0 + * @arg @ref LL_DMAMUX_REQ_GENERATOR1 + * @arg @ref LL_DMAMUX_REQ_GENERATOR2 + * @arg @ref LL_DMAMUX_REQ_GENERATOR3 + * @arg @ref LL_DMAMUX_REQ_ADC1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM6_UP + * @arg @ref LL_DMAMUX_REQ_TIM7_UP + * @arg @ref LL_DMAMUX_REQ_SPI1_RX + * @arg @ref LL_DMAMUX_REQ_SPI1_TX + * @arg @ref LL_DMAMUX_REQ_SPI2_RX + * @arg @ref LL_DMAMUX_REQ_SPI2_TX + * @arg @ref LL_DMAMUX_REQ_SPI3_RX + * @arg @ref LL_DMAMUX_REQ_SPI3_TX + * @arg @ref LL_DMAMUX_REQ_I2C1_RX + * @arg @ref LL_DMAMUX_REQ_I2C1_TX + * @arg @ref LL_DMAMUX_REQ_I2C2_RX + * @arg @ref LL_DMAMUX_REQ_I2C2_TX + * @arg @ref LL_DMAMUX_REQ_I2C3_RX + * @arg @ref LL_DMAMUX_REQ_I2C3_TX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_RX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_TX + * @arg @ref LL_DMAMUX_REQ_USART1_RX + * @arg @ref LL_DMAMUX_REQ_USART1_TX + * @arg @ref LL_DMAMUX_REQ_USART2_RX + * @arg @ref LL_DMAMUX_REQ_USART2_TX + * @arg @ref LL_DMAMUX_REQ_USART3_RX + * @arg @ref LL_DMAMUX_REQ_USART3_TX + * @arg @ref LL_DMAMUX_REQ_UART4_RX + * @arg @ref LL_DMAMUX_REQ_UART4_TX + * @arg @ref LL_DMAMUX_REQ_UART5_RX (*) + * @arg @ref LL_DMAMUX_REQ_UART5_TX (*) + * @arg @ref LL_DMAMUX_REQ_LPUART1_RX + * @arg @ref LL_DMAMUX_REQ_LPUART1_TX + * @arg @ref LL_DMAMUX_REQ_ADC2 + * @arg @ref LL_DMAMUX_REQ_ADC3 (*) + * @arg @ref LL_DMAMUX_REQ_ADC4 (*) + * @arg @ref LL_DMAMUX_REQ_ADC5 (*) + * @arg @ref LL_DMAMUX_REQ_QSPI (*) + * @arg @ref LL_DMAMUX_REQ_DAC2_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM1_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM1_UP + * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM1_COM + * @arg @ref LL_DMAMUX_REQ_TIM8_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM8_UP + * @arg @ref LL_DMAMUX_REQ_TIM8_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM8_COM + * @arg @ref LL_DMAMUX_REQ_TIM2_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM2_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM3_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM4_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM4_UP + * @arg @ref LL_DMAMUX_REQ_TIM5_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_UP (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM15_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM15_UP + * @arg @ref LL_DMAMUX_REQ_TIM15_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM15_COM + * @arg @ref LL_DMAMUX_REQ_TIM16_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM16_UP + * @arg @ref LL_DMAMUX_REQ_TIM17_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM17_UP + * @arg @ref LL_DMAMUX_REQ_TIM20_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_UP (*) + * @arg @ref LL_DMAMUX_REQ_AES_IN + * @arg @ref LL_DMAMUX_REQ_AES_OUT + * @arg @ref LL_DMAMUX_REQ_TIM20_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_COM (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_M (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_A (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_B (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_C (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_D (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_E (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_F (*) + * @arg @ref LL_DMAMUX_REQ_DAC3_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC3_CH2 + * @arg @ref LL_DMAMUX_REQ_DAC4_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_DAC4_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_RX (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_TX (*) + * @arg @ref LL_DMAMUX_REQ_SAI1_A + * @arg @ref LL_DMAMUX_REQ_SAI1_B + * @arg @ref LL_DMAMUX_REQ_FMAC_WRITE + * @arg @ref LL_DMAMUX_REQ_FMAC_READ + * @arg @ref LL_DMAMUX_REQ_CORDIC_WRITE + * @arg @ref LL_DMAMUX_REQ_CORDIC_READ + * @arg @ref LL_DMAMUX_REQ_UCPD1_RX + * @arg @ref LL_DMAMUX_REQ_UCPD1_TX + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphRequest) +{ + uint32_t dmamux_ccr_offset = ((((uint32_t)DMAx ^ (uint32_t)DMA1) >> 10U) * 8U); + MODIFY_REG((DMAMUX1_Channel0 + Channel + dmamux_ccr_offset)->CCR, DMAMUX_CxCR_DMAREQ_ID, PeriphRequest); +} + +/** + * @brief Get DMA request for DMA instance on Channel x. + * @rmtoll CSELR C1S LL_DMA_GetPeriphRequest\n + * CSELR C2S LL_DMA_GetPeriphRequest\n + * CSELR C3S LL_DMA_GetPeriphRequest\n + * CSELR C4S LL_DMA_GetPeriphRequest\n + * CSELR C5S LL_DMA_GetPeriphRequest\n + * CSELR C6S LL_DMA_GetPeriphRequest\n + * CSELR C7S LL_DMA_GetPeriphRequest + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_MEM2MEM + * @arg @ref LL_DMAMUX_REQ_GENERATOR0 + * @arg @ref LL_DMAMUX_REQ_GENERATOR1 + * @arg @ref LL_DMAMUX_REQ_GENERATOR2 + * @arg @ref LL_DMAMUX_REQ_GENERATOR3 + * @arg @ref LL_DMAMUX_REQ_ADC1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM6_UP + * @arg @ref LL_DMAMUX_REQ_TIM7_UP + * @arg @ref LL_DMAMUX_REQ_SPI1_RX + * @arg @ref LL_DMAMUX_REQ_SPI1_TX + * @arg @ref LL_DMAMUX_REQ_SPI2_RX + * @arg @ref LL_DMAMUX_REQ_SPI2_TX + * @arg @ref LL_DMAMUX_REQ_SPI3_RX + * @arg @ref LL_DMAMUX_REQ_SPI3_TX + * @arg @ref LL_DMAMUX_REQ_I2C1_RX + * @arg @ref LL_DMAMUX_REQ_I2C1_TX + * @arg @ref LL_DMAMUX_REQ_I2C2_RX + * @arg @ref LL_DMAMUX_REQ_I2C2_TX + * @arg @ref LL_DMAMUX_REQ_I2C3_RX + * @arg @ref LL_DMAMUX_REQ_I2C3_TX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_RX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_TX + * @arg @ref LL_DMAMUX_REQ_USART1_RX + * @arg @ref LL_DMAMUX_REQ_USART1_TX + * @arg @ref LL_DMAMUX_REQ_USART2_RX + * @arg @ref LL_DMAMUX_REQ_USART2_TX + * @arg @ref LL_DMAMUX_REQ_USART3_RX + * @arg @ref LL_DMAMUX_REQ_USART3_TX + * @arg @ref LL_DMAMUX_REQ_UART4_RX + * @arg @ref LL_DMAMUX_REQ_UART4_TX + * @arg @ref LL_DMAMUX_REQ_UART5_RX (*) + * @arg @ref LL_DMAMUX_REQ_UART5_TX (*) + * @arg @ref LL_DMAMUX_REQ_LPUART1_RX + * @arg @ref LL_DMAMUX_REQ_LPUART1_TX + * @arg @ref LL_DMAMUX_REQ_ADC2 + * @arg @ref LL_DMAMUX_REQ_ADC3 (*) + * @arg @ref LL_DMAMUX_REQ_ADC4 (*) + * @arg @ref LL_DMAMUX_REQ_ADC5 (*) + * @arg @ref LL_DMAMUX_REQ_QSPI (*) + * @arg @ref LL_DMAMUX_REQ_DAC2_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM1_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM1_UP + * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM1_COM + * @arg @ref LL_DMAMUX_REQ_TIM8_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM8_UP + * @arg @ref LL_DMAMUX_REQ_TIM8_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM8_COM + * @arg @ref LL_DMAMUX_REQ_TIM2_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM2_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM3_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM4_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM4_UP + * @arg @ref LL_DMAMUX_REQ_TIM5_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_UP (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM15_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM15_UP + * @arg @ref LL_DMAMUX_REQ_TIM15_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM15_COM + * @arg @ref LL_DMAMUX_REQ_TIM16_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM16_UP + * @arg @ref LL_DMAMUX_REQ_TIM17_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM17_UP + * @arg @ref LL_DMAMUX_REQ_TIM20_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_UP (*) + * @arg @ref LL_DMAMUX_REQ_AES_IN + * @arg @ref LL_DMAMUX_REQ_AES_OUT + * @arg @ref LL_DMAMUX_REQ_TIM20_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_COM (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_M (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_A (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_B (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_C (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_D (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_E (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_F (*) + * @arg @ref LL_DMAMUX_REQ_DAC3_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC3_CH2 + * @arg @ref LL_DMAMUX_REQ_DAC4_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_DAC4_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_RX (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_TX (*) + * @arg @ref LL_DMAMUX_REQ_SAI1_A + * @arg @ref LL_DMAMUX_REQ_SAI1_B + * @arg @ref LL_DMAMUX_REQ_FMAC_WRITE + * @arg @ref LL_DMAMUX_REQ_FMAC_READ + * @arg @ref LL_DMAMUX_REQ_CORDIC_WRITE + * @arg @ref LL_DMAMUX_REQ_CORDIC_READ + * @arg @ref LL_DMAMUX_REQ_UCPD1_RX + * @arg @ref LL_DMAMUX_REQ_UCPD1_TX + * (*) Not on all G4 devices + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dmamux_ccr_offset = ((((uint32_t)DMAx ^ (uint32_t)DMA1) >> 10U) * 8U); + return (READ_BIT((DMAMUX1_Channel0 + Channel + dmamux_ccr_offset)->CCR, DMAMUX_CxCR_DMAREQ_ID)); +} + +/** + * @} + */ + +/** @defgroup DMA_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Get Channel 1 global interrupt flag. + * @rmtoll ISR GIF1 LL_DMA_IsActiveFlag_GI1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI1(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF1) == (DMA_ISR_GIF1)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 2 global interrupt flag. + * @rmtoll ISR GIF2 LL_DMA_IsActiveFlag_GI2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI2(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF2) == (DMA_ISR_GIF2)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 3 global interrupt flag. + * @rmtoll ISR GIF3 LL_DMA_IsActiveFlag_GI3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI3(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF3) == (DMA_ISR_GIF3)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 4 global interrupt flag. + * @rmtoll ISR GIF4 LL_DMA_IsActiveFlag_GI4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI4(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF4) == (DMA_ISR_GIF4)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 5 global interrupt flag. + * @rmtoll ISR GIF5 LL_DMA_IsActiveFlag_GI5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI5(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF5) == (DMA_ISR_GIF5)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 6 global interrupt flag. + * @rmtoll ISR GIF6 LL_DMA_IsActiveFlag_GI6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI6(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF6) == (DMA_ISR_GIF6)) ? 1UL : 0UL); +} + +#if defined (DMA1_Channel7) +/** + * @brief Get Channel 7 global interrupt flag. + * @rmtoll ISR GIF7 LL_DMA_IsActiveFlag_GI7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI7(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF7) == (DMA_ISR_GIF7)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Get Channel 8 global interrupt flag. + * @rmtoll ISR GIF8 LL_DMA_IsActiveFlag_GI8 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI8(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_GIF8) == (DMA_ISR_GIF8)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Get Channel 1 transfer complete flag. + * @rmtoll ISR TCIF1 LL_DMA_IsActiveFlag_TC1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC1(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF1) == (DMA_ISR_TCIF1)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 2 transfer complete flag. + * @rmtoll ISR TCIF2 LL_DMA_IsActiveFlag_TC2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC2(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF2) == (DMA_ISR_TCIF2)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 3 transfer complete flag. + * @rmtoll ISR TCIF3 LL_DMA_IsActiveFlag_TC3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC3(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF3) == (DMA_ISR_TCIF3)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 4 transfer complete flag. + * @rmtoll ISR TCIF4 LL_DMA_IsActiveFlag_TC4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC4(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF4) == (DMA_ISR_TCIF4)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 5 transfer complete flag. + * @rmtoll ISR TCIF5 LL_DMA_IsActiveFlag_TC5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC5(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF5) == (DMA_ISR_TCIF5)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 6 transfer complete flag. + * @rmtoll ISR TCIF6 LL_DMA_IsActiveFlag_TC6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC6(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF6) == (DMA_ISR_TCIF6)) ? 1UL : 0UL); +} + +#if defined (DMA1_Channel7) +/** + * @brief Get Channel 7 transfer complete flag. + * @rmtoll ISR TCIF7 LL_DMA_IsActiveFlag_TC7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC7(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF7) == (DMA_ISR_TCIF7)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Get Channel 8 transfer complete flag. + * @rmtoll ISR TCIF8 LL_DMA_IsActiveFlag_TC8 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC8(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TCIF8) == (DMA_ISR_TCIF8)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Get Channel 1 half transfer flag. + * @rmtoll ISR HTIF1 LL_DMA_IsActiveFlag_HT1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT1(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF1) == (DMA_ISR_HTIF1)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 2 half transfer flag. + * @rmtoll ISR HTIF2 LL_DMA_IsActiveFlag_HT2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT2(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF2) == (DMA_ISR_HTIF2)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 3 half transfer flag. + * @rmtoll ISR HTIF3 LL_DMA_IsActiveFlag_HT3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT3(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF3) == (DMA_ISR_HTIF3)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 4 half transfer flag. + * @rmtoll ISR HTIF4 LL_DMA_IsActiveFlag_HT4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT4(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF4) == (DMA_ISR_HTIF4)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 5 half transfer flag. + * @rmtoll ISR HTIF5 LL_DMA_IsActiveFlag_HT5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT5(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF5) == (DMA_ISR_HTIF5)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 6 half transfer flag. + * @rmtoll ISR HTIF6 LL_DMA_IsActiveFlag_HT6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT6(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF6) == (DMA_ISR_HTIF6)) ? 1UL : 0UL); +} + +#if defined (DMA1_Channel8) +/** + * @brief Get Channel 7 half transfer flag. + * @rmtoll ISR HTIF7 LL_DMA_IsActiveFlag_HT7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT7(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF7) == (DMA_ISR_HTIF7)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Get Channel 8 half transfer flag. + * @rmtoll ISR HTIF8 LL_DMA_IsActiveFlag_HT8 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT8(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_HTIF8) == (DMA_ISR_HTIF8)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Get Channel 1 transfer error flag. + * @rmtoll ISR TEIF1 LL_DMA_IsActiveFlag_TE1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE1(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF1) == (DMA_ISR_TEIF1)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 2 transfer error flag. + * @rmtoll ISR TEIF2 LL_DMA_IsActiveFlag_TE2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE2(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF2) == (DMA_ISR_TEIF2)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 3 transfer error flag. + * @rmtoll ISR TEIF3 LL_DMA_IsActiveFlag_TE3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE3(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF3) == (DMA_ISR_TEIF3)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 4 transfer error flag. + * @rmtoll ISR TEIF4 LL_DMA_IsActiveFlag_TE4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE4(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF4) == (DMA_ISR_TEIF4)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 5 transfer error flag. + * @rmtoll ISR TEIF5 LL_DMA_IsActiveFlag_TE5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE5(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF5) == (DMA_ISR_TEIF5)) ? 1UL : 0UL); +} + +/** + * @brief Get Channel 6 transfer error flag. + * @rmtoll ISR TEIF6 LL_DMA_IsActiveFlag_TE6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE6(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF6) == (DMA_ISR_TEIF6)) ? 1UL : 0UL); +} + +#if defined (DMA1_Channel7) +/** + * @brief Get Channel 7 transfer error flag. + * @rmtoll ISR TEIF7 LL_DMA_IsActiveFlag_TE7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE7(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF7) == (DMA_ISR_TEIF7)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Get Channel 8 transfer error flag. + * @rmtoll ISR TEIF8 LL_DMA_IsActiveFlag_TE8 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE8(DMA_TypeDef *DMAx) +{ + return ((READ_BIT(DMAx->ISR, DMA_ISR_TEIF8) == (DMA_ISR_TEIF8)) ? 1UL : 0UL); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Clear Channel 1 global interrupt flag. + * @note Do not Clear Channel 1 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC1, LL_DMA_ClearFlag_HT1, + LL_DMA_ClearFlag_TE1. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF1 LL_DMA_ClearFlag_GI1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI1(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF1); +} + +/** + * @brief Clear Channel 2 global interrupt flag. + * @note Do not Clear Channel 2 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC2, LL_DMA_ClearFlag_HT2, + LL_DMA_ClearFlag_TE2. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF2 LL_DMA_ClearFlag_GI2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI2(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF2); +} + +/** + * @brief Clear Channel 3 global interrupt flag. + * @note Do not Clear Channel 3 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC3, LL_DMA_ClearFlag_HT3, + LL_DMA_ClearFlag_TE3. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF3 LL_DMA_ClearFlag_GI3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI3(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF3); +} + +/** + * @brief Clear Channel 4 global interrupt flag. + * @note Do not Clear Channel 4 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC4, LL_DMA_ClearFlag_HT4, + LL_DMA_ClearFlag_TE4. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF4 LL_DMA_ClearFlag_GI4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI4(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF4); +} + +/** + * @brief Clear Channel 5 global interrupt flag. + * @note Do not Clear Channel 5 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC5, LL_DMA_ClearFlag_HT5, + LL_DMA_ClearFlag_TE5. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF5 LL_DMA_ClearFlag_GI5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI5(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF5); +} + +/** + * @brief Clear Channel 6 global interrupt flag. + * @note Do not Clear Channel 6 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC6, LL_DMA_ClearFlag_HT6, + LL_DMA_ClearFlag_TE6. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF6 LL_DMA_ClearFlag_GI6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI6(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF6); +} + +#if defined (DMA1_Channel7) +/** + * @brief Clear Channel 7 global interrupt flag. + * @note Do not Clear Channel 7 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC7, LL_DMA_ClearFlag_HT7, + LL_DMA_ClearFlag_TE7. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF7 LL_DMA_ClearFlag_GI7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI7(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF7); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Clear Channel 8 global interrupt flag. + * @note Do not Clear Channel 8 global interrupt flag when the channel in ON. + Instead clear specific flags transfer complete, half transfer & transfer + error flag with LL_DMA_ClearFlag_TC8, LL_DMA_ClearFlag_HT8, + LL_DMA_ClearFlag_TE8. bug id 2.3.1 in Product Errata Sheet. + * @rmtoll IFCR CGIF8 LL_DMA_ClearFlag_GI8 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI8(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CGIF8); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Clear Channel 1 transfer complete flag. + * @rmtoll IFCR CTCIF1 LL_DMA_ClearFlag_TC1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC1(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF1); +} + +/** + * @brief Clear Channel 2 transfer complete flag. + * @rmtoll IFCR CTCIF2 LL_DMA_ClearFlag_TC2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC2(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF2); +} + +/** + * @brief Clear Channel 3 transfer complete flag. + * @rmtoll IFCR CTCIF3 LL_DMA_ClearFlag_TC3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC3(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF3); +} + +/** + * @brief Clear Channel 4 transfer complete flag. + * @rmtoll IFCR CTCIF4 LL_DMA_ClearFlag_TC4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC4(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF4); +} + +/** + * @brief Clear Channel 5 transfer complete flag. + * @rmtoll IFCR CTCIF5 LL_DMA_ClearFlag_TC5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC5(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF5); +} + +/** + * @brief Clear Channel 6 transfer complete flag. + * @rmtoll IFCR CTCIF6 LL_DMA_ClearFlag_TC6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC6(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF6); +} + +#if defined (DMA1_Channel7) +/** + * @brief Clear Channel 7 transfer complete flag. + * @rmtoll IFCR CTCIF7 LL_DMA_ClearFlag_TC7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC7(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF7); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Clear Channel 8 transfer complete flag. + * @rmtoll IFCR CTCIF8 LL_DMA_ClearFlag_TC8 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC8(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTCIF8); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Clear Channel 1 half transfer flag. + * @rmtoll IFCR CHTIF1 LL_DMA_ClearFlag_HT1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT1(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF1); +} + +/** + * @brief Clear Channel 2 half transfer flag. + * @rmtoll IFCR CHTIF2 LL_DMA_ClearFlag_HT2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT2(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF2); +} + +/** + * @brief Clear Channel 3 half transfer flag. + * @rmtoll IFCR CHTIF3 LL_DMA_ClearFlag_HT3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT3(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF3); +} + +/** + * @brief Clear Channel 4 half transfer flag. + * @rmtoll IFCR CHTIF4 LL_DMA_ClearFlag_HT4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT4(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF4); +} + +/** + * @brief Clear Channel 5 half transfer flag. + * @rmtoll IFCR CHTIF5 LL_DMA_ClearFlag_HT5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT5(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF5); +} + +/** + * @brief Clear Channel 6 half transfer flag. + * @rmtoll IFCR CHTIF6 LL_DMA_ClearFlag_HT6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT6(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF6); +} + +#if defined (DMA1_Channel7) +/** + * @brief Clear Channel 7 half transfer flag. + * @rmtoll IFCR CHTIF7 LL_DMA_ClearFlag_HT7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT7(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF7); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Clear Channel 8 half transfer flag. + * @rmtoll IFCR CHTIF8 LL_DMA_ClearFlag_HT8 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT8(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CHTIF8); +} +#endif /* DMA1_Channel8 */ + +/** + * @brief Clear Channel 1 transfer error flag. + * @rmtoll IFCR CTEIF1 LL_DMA_ClearFlag_TE1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE1(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF1); +} + +/** + * @brief Clear Channel 2 transfer error flag. + * @rmtoll IFCR CTEIF2 LL_DMA_ClearFlag_TE2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE2(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF2); +} + +/** + * @brief Clear Channel 3 transfer error flag. + * @rmtoll IFCR CTEIF3 LL_DMA_ClearFlag_TE3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE3(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF3); +} + +/** + * @brief Clear Channel 4 transfer error flag. + * @rmtoll IFCR CTEIF4 LL_DMA_ClearFlag_TE4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE4(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF4); +} + +/** + * @brief Clear Channel 5 transfer error flag. + * @rmtoll IFCR CTEIF5 LL_DMA_ClearFlag_TE5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE5(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF5); +} + +/** + * @brief Clear Channel 6 transfer error flag. + * @rmtoll IFCR CTEIF6 LL_DMA_ClearFlag_TE6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE6(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF6); +} + +#if defined (DMA1_Channel7) +/** + * @brief Clear Channel 7 transfer error flag. + * @rmtoll IFCR CTEIF7 LL_DMA_ClearFlag_TE7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE7(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF7); +} +#endif /* DMA1_Channel7 */ + +#if defined (DMA1_Channel8) +/** + * @brief Clear Channel 8 transfer error flag. + * @rmtoll IFCR CTEIF8 LL_DMA_ClearFlag_TE8 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE8(DMA_TypeDef *DMAx) +{ + WRITE_REG(DMAx->IFCR, DMA_IFCR_CTEIF8); +} +#endif /* DMA1_Channel8 */ + +/** + * @} + */ + +/** @defgroup DMA_LL_EF_IT_Management IT_Management + * @{ + */ +/** + * @brief Enable Transfer complete interrupt. + * @rmtoll CCR TCIE LL_DMA_EnableIT_TC + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_TCIE); +} + +/** + * @brief Enable Half transfer interrupt. + * @rmtoll CCR HTIE LL_DMA_EnableIT_HT + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_HTIE); +} + +/** + * @brief Enable Transfer error interrupt. + * @rmtoll CCR TEIE LL_DMA_EnableIT_TE + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_TEIE); +} + +/** + * @brief Disable Transfer complete interrupt. + * @rmtoll CCR TCIE LL_DMA_DisableIT_TC + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_TCIE); +} + +/** + * @brief Disable Half transfer interrupt. + * @rmtoll CCR HTIE LL_DMA_DisableIT_HT + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_HTIE); +} + +/** + * @brief Disable Transfer error interrupt. + * @rmtoll CCR TEIE LL_DMA_DisableIT_TE + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, DMA_CCR_TEIE); +} + +/** + * @brief Check if Transfer complete Interrupt is enabled. + * @rmtoll CCR TCIE LL_DMA_IsEnabledIT_TC + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return ((READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_TCIE) == (DMA_CCR_TCIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if Half transfer Interrupt is enabled. + * @rmtoll CCR HTIE LL_DMA_IsEnabledIT_HT + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return ((READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_HTIE) == (DMA_CCR_HTIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if Transfer error Interrupt is enabled. + * @rmtoll CCR TEIE LL_DMA_IsEnabledIT_TE + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 (*) + * @arg @ref LL_DMA_CHANNEL_8 (*) + * (*) Not on all G4 devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + uint32_t dma_base_addr = (uint32_t)DMAx; + return ((READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)(dma_base_addr + CHANNEL_OFFSET_TAB[Channel])))->CCR, + DMA_CCR_TEIE) == (DMA_CCR_TEIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup DMA_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +uint32_t LL_DMA_Init(DMA_TypeDef *DMAx, uint32_t Channel, LL_DMA_InitTypeDef *DMA_InitStruct); +uint32_t LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Channel); +void LL_DMA_StructInit(LL_DMA_InitTypeDef *DMA_InitStruct); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* DMA1 || DMA2 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_DMA_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dmamux.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dmamux.h new file mode 100644 index 0000000..28c640c --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dmamux.h @@ -0,0 +1,2006 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_dmamux.h + * @author MCD Application Team + * @brief Header file of DMAMUX LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_DMAMUX_H +#define __STM32G4xx_LL_DMAMUX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (DMAMUX1) + +/** @defgroup DMAMUX_LL DMAMUX + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup DMAMUX_LL_Private_Constants DMAMUX Private Constants + * @{ + */ +/* Define used to get DMAMUX CCR register size */ +#define DMAMUX_CCR_SIZE 0x00000004U + +/* Define used to get DMAMUX RGCR register size */ +#define DMAMUX_RGCR_SIZE 0x00000004U +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup DMAMUX_LL_Private_Macros DMAMUX Private Macros + * @{ + */ +#define UNUSED(X) (void)X +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup DMAMUX_LL_Exported_Constants DMAMUX Exported Constants + * @{ + */ +/** @defgroup DMAMUX_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_DMAMUX_WriteReg function + * @{ + */ +#define LL_DMAMUX_CFR_CSOF0 DMAMUX_CFR_CSOF0 /*!< Synchronization Event Overrun Flag Channel 0 */ +#define LL_DMAMUX_CFR_CSOF1 DMAMUX_CFR_CSOF1 /*!< Synchronization Event Overrun Flag Channel 1 */ +#define LL_DMAMUX_CFR_CSOF2 DMAMUX_CFR_CSOF2 /*!< Synchronization Event Overrun Flag Channel 2 */ +#define LL_DMAMUX_CFR_CSOF3 DMAMUX_CFR_CSOF3 /*!< Synchronization Event Overrun Flag Channel 3 */ +#define LL_DMAMUX_CFR_CSOF4 DMAMUX_CFR_CSOF4 /*!< Synchronization Event Overrun Flag Channel 4 */ +#define LL_DMAMUX_CFR_CSOF5 DMAMUX_CFR_CSOF5 /*!< Synchronization Event Overrun Flag Channel 5 */ +#define LL_DMAMUX_CFR_CSOF6 DMAMUX_CFR_CSOF6 /*!< Synchronization Event Overrun Flag Channel 6 */ +#define LL_DMAMUX_CFR_CSOF7 DMAMUX_CFR_CSOF7 /*!< Synchronization Event Overrun Flag Channel 7 */ +#define LL_DMAMUX_CFR_CSOF8 DMAMUX_CFR_CSOF8 /*!< Synchronization Event Overrun Flag Channel 8 */ +#define LL_DMAMUX_CFR_CSOF9 DMAMUX_CFR_CSOF9 /*!< Synchronization Event Overrun Flag Channel 9 */ +#define LL_DMAMUX_CFR_CSOF10 DMAMUX_CFR_CSOF10 /*!< Synchronization Event Overrun Flag Channel 10 */ +#define LL_DMAMUX_CFR_CSOF11 DMAMUX_CFR_CSOF11 /*!< Synchronization Event Overrun Flag Channel 11 */ +#define LL_DMAMUX_CFR_CSOF12 DMAMUX_CFR_CSOF12 /*!< Synchronization Event Overrun Flag Channel 12 */ +#define LL_DMAMUX_CFR_CSOF13 DMAMUX_CFR_CSOF13 /*!< Synchronization Event Overrun Flag Channel 13 */ +#define LL_DMAMUX_CFR_CSOF14 DMAMUX_CFR_CSOF14 /*!< Synchronization Event Overrun Flag Channel 14 */ +#define LL_DMAMUX_CFR_CSOF15 DMAMUX_CFR_CSOF15 /*!< Synchronization Event Overrun Flag Channel 15 */ +#define LL_DMAMUX_RGCFR_RGCOF0 DMAMUX_RGCFR_COF0 /*!< Request Generator 0 Trigger Event Overrun Flag */ +#define LL_DMAMUX_RGCFR_RGCOF1 DMAMUX_RGCFR_COF1 /*!< Request Generator 1 Trigger Event Overrun Flag */ +#define LL_DMAMUX_RGCFR_RGCOF2 DMAMUX_RGCFR_COF2 /*!< Request Generator 2 Trigger Event Overrun Flag */ +#define LL_DMAMUX_RGCFR_RGCOF3 DMAMUX_RGCFR_COF3 /*!< Request Generator 3 Trigger Event Overrun Flag */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_DMAMUX_ReadReg function + * @{ + */ +#define LL_DMAMUX_CSR_SOF0 DMAMUX_CSR_SOF0 /*!< Synchronization Event Overrun Flag Channel 0 */ +#define LL_DMAMUX_CSR_SOF1 DMAMUX_CSR_SOF1 /*!< Synchronization Event Overrun Flag Channel 1 */ +#define LL_DMAMUX_CSR_SOF2 DMAMUX_CSR_SOF2 /*!< Synchronization Event Overrun Flag Channel 2 */ +#define LL_DMAMUX_CSR_SOF3 DMAMUX_CSR_SOF3 /*!< Synchronization Event Overrun Flag Channel 3 */ +#define LL_DMAMUX_CSR_SOF4 DMAMUX_CSR_SOF4 /*!< Synchronization Event Overrun Flag Channel 4 */ +#define LL_DMAMUX_CSR_SOF5 DMAMUX_CSR_SOF5 /*!< Synchronization Event Overrun Flag Channel 5 */ +#define LL_DMAMUX_CSR_SOF6 DMAMUX_CSR_SOF6 /*!< Synchronization Event Overrun Flag Channel 6 */ +#define LL_DMAMUX_CSR_SOF7 DMAMUX_CSR_SOF7 /*!< Synchronization Event Overrun Flag Channel 7 */ +#define LL_DMAMUX_CSR_SOF8 DMAMUX_CSR_SOF8 /*!< Synchronization Event Overrun Flag Channel 8 */ +#define LL_DMAMUX_CSR_SOF9 DMAMUX_CSR_SOF9 /*!< Synchronization Event Overrun Flag Channel 9 */ +#define LL_DMAMUX_CSR_SOF10 DMAMUX_CSR_SOF10 /*!< Synchronization Event Overrun Flag Channel 10 */ +#define LL_DMAMUX_CSR_SOF11 DMAMUX_CSR_SOF11 /*!< Synchronization Event Overrun Flag Channel 11 */ +#define LL_DMAMUX_CSR_SOF12 DMAMUX_CSR_SOF12 /*!< Synchronization Event Overrun Flag Channel 12 */ +#define LL_DMAMUX_CSR_SOF13 DMAMUX_CSR_SOF13 /*!< Synchronization Event Overrun Flag Channel 13 */ +#define LL_DMAMUX_CSR_SOF14 DMAMUX_CSR_SOF14 /*!< Synchronization Event Overrun Flag Channel 14 */ +#define LL_DMAMUX_CSR_SOF15 DMAMUX_CSR_SOF15 /*!< Synchronization Event Overrun Flag Channel 15 */ +#define LL_DMAMUX_RGSR_RGOF0 DMAMUX_RGSR_OF0 /*!< Request Generator 0 Trigger Event Overrun Flag */ +#define LL_DMAMUX_RGSR_RGOF1 DMAMUX_RGSR_OF1 /*!< Request Generator 1 Trigger Event Overrun Flag */ +#define LL_DMAMUX_RGSR_RGOF2 DMAMUX_RGSR_OF2 /*!< Request Generator 2 Trigger Event Overrun Flag */ +#define LL_DMAMUX_RGSR_RGOF3 DMAMUX_RGSR_OF3 /*!< Request Generator 3 Trigger Event Overrun Flag */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_DMA_ReadReg and LL_DMAMUX_WriteReg functions + * @{ + */ +#define LL_DMAMUX_CCR_SOIE DMAMUX_CxCR_SOIE /*!< Synchronization Event Overrun Interrupt */ +#define LL_DMAMUX_RGCR_RGOIE DMAMUX_RGxCR_OIE /*!< Request Generation Trigger Event Overrun Interrupt */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_REQUEST Transfer request + * @{ + */ +#define LL_DMAMUX_REQ_MEM2MEM 0x00000000U /*!< Memory to memory transfer */ +#define LL_DMAMUX_REQ_GENERATOR0 0x00000001U /*!< DMAMUX request generator 0 */ +#define LL_DMAMUX_REQ_GENERATOR1 0x00000002U /*!< DMAMUX request generator 1 */ +#define LL_DMAMUX_REQ_GENERATOR2 0x00000003U /*!< DMAMUX request generator 2 */ +#define LL_DMAMUX_REQ_GENERATOR3 0x00000004U /*!< DMAMUX request generator 3 */ +#define LL_DMAMUX_REQ_ADC1 0x00000005U /*!< DMAMUX ADC1 request */ +#define LL_DMAMUX_REQ_DAC1_CH1 0x00000006U /*!< DMAMUX DAC1 CH1 request */ +#define LL_DMAMUX_REQ_DAC1_CH2 0x00000007U /*!< DMAMUX DAC1 CH2 request */ +#define LL_DMAMUX_REQ_TIM6_UP 0x00000008U /*!< DMAMUX TIM6 UP request */ +#define LL_DMAMUX_REQ_TIM7_UP 0x00000009U /*!< DMAMUX TIM7 UP request */ +#define LL_DMAMUX_REQ_SPI1_RX 0x0000000AU /*!< DMAMUX SPI1 RX request */ +#define LL_DMAMUX_REQ_SPI1_TX 0x0000000BU /*!< DMAMUX SPI1 TX request */ +#define LL_DMAMUX_REQ_SPI2_RX 0x0000000CU /*!< DMAMUX SPI2 RX request */ +#define LL_DMAMUX_REQ_SPI2_TX 0x0000000DU /*!< DMAMUX SPI2 TX request */ +#define LL_DMAMUX_REQ_SPI3_RX 0x0000000EU /*!< DMAMUX SPI3 RX request */ +#define LL_DMAMUX_REQ_SPI3_TX 0x0000000FU /*!< DMAMUX SPI3 TX request */ +#define LL_DMAMUX_REQ_I2C1_RX 0x00000010U /*!< DMAMUX I2C1 RX request */ +#define LL_DMAMUX_REQ_I2C1_TX 0x00000011U /*!< DMAMUX I2C1 TX request */ +#define LL_DMAMUX_REQ_I2C2_RX 0x00000012U /*!< DMAMUX I2C2 RX request */ +#define LL_DMAMUX_REQ_I2C2_TX 0x00000013U /*!< DMAMUX I2C2 TX request */ +#define LL_DMAMUX_REQ_I2C3_RX 0x00000014U /*!< DMAMUX I2C3 RX request */ +#define LL_DMAMUX_REQ_I2C3_TX 0x00000015U /*!< DMAMUX I2C3 TX request */ +#define LL_DMAMUX_REQ_I2C4_RX 0x00000016U /*!< DMAMUX I2C4 RX request */ +#define LL_DMAMUX_REQ_I2C4_TX 0x00000017U /*!< DMAMUX I2C4 TX request */ +#define LL_DMAMUX_REQ_USART1_RX 0x00000018U /*!< DMAMUX USART1 RX request */ +#define LL_DMAMUX_REQ_USART1_TX 0x00000019U /*!< DMAMUX USART1 TX request */ +#define LL_DMAMUX_REQ_USART2_RX 0x0000001AU /*!< DMAMUX USART2 RX request */ +#define LL_DMAMUX_REQ_USART2_TX 0x0000001BU /*!< DMAMUX USART2 TX request */ +#define LL_DMAMUX_REQ_USART3_RX 0x0000001CU /*!< DMAMUX USART3 RX request */ +#define LL_DMAMUX_REQ_USART3_TX 0x0000001DU /*!< DMAMUX USART3 TX request */ +#define LL_DMAMUX_REQ_UART4_RX 0x0000001EU /*!< DMAMUX UART4 RX request */ +#define LL_DMAMUX_REQ_UART4_TX 0x0000001FU /*!< DMAMUX UART4 TX request */ +#define LL_DMAMUX_REQ_UART5_RX 0x00000020U /*!< DMAMUX UART5 RX request */ +#define LL_DMAMUX_REQ_UART5_TX 0x00000021U /*!< DMAMUX UART5 TX request */ +#define LL_DMAMUX_REQ_LPUART1_RX 0x00000022U /*!< DMAMUX LPUART1 RX request */ +#define LL_DMAMUX_REQ_LPUART1_TX 0x00000023U /*!< DMAMUX LPUART1 TX request */ +#define LL_DMAMUX_REQ_ADC2 0x00000024U /*!< DMAMUX ADC2 request */ +#define LL_DMAMUX_REQ_ADC3 0x00000025U /*!< DMAMUX ADC3 request */ +#define LL_DMAMUX_REQ_ADC4 0x00000026U /*!< DMAMUX ADC4 request */ +#define LL_DMAMUX_REQ_ADC5 0x00000027U /*!< DMAMUX ADC5 request */ +#define LL_DMAMUX_REQ_QSPI 0x00000028U /*!< DMAMUX QSPI request */ +#define LL_DMAMUX_REQ_DAC2_CH1 0x00000029U /*!< DMAMUX DAC2 CH1 request */ +#define LL_DMAMUX_REQ_TIM1_CH1 0x0000002AU /*!< DMAMUX TIM1 CH1 request */ +#define LL_DMAMUX_REQ_TIM1_CH2 0x0000002BU /*!< DMAMUX TIM1 CH2 request */ +#define LL_DMAMUX_REQ_TIM1_CH3 0x0000002CU /*!< DMAMUX TIM1 CH3 request */ +#define LL_DMAMUX_REQ_TIM1_CH4 0x0000002DU /*!< DMAMUX TIM1 CH4 request */ +#define LL_DMAMUX_REQ_TIM1_UP 0x0000002EU /*!< DMAMUX TIM1 UP request */ +#define LL_DMAMUX_REQ_TIM1_TRIG 0x0000002FU /*!< DMAMUX TIM1 TRIG request */ +#define LL_DMAMUX_REQ_TIM1_COM 0x00000030U /*!< DMAMUX TIM1 COM request */ +#define LL_DMAMUX_REQ_TIM8_CH1 0x00000031U /*!< DMAMUX TIM8 CH1 request */ +#define LL_DMAMUX_REQ_TIM8_CH2 0x00000032U /*!< DMAMUX TIM8 CH2 request */ +#define LL_DMAMUX_REQ_TIM8_CH3 0x00000033U /*!< DMAMUX TIM8 CH3 request */ +#define LL_DMAMUX_REQ_TIM8_CH4 0x00000034U /*!< DMAMUX TIM8 CH4 request */ +#define LL_DMAMUX_REQ_TIM8_UP 0x00000035U /*!< DMAMUX TIM8 UP request */ +#define LL_DMAMUX_REQ_TIM8_TRIG 0x00000036U /*!< DMAMUX TIM8 TRIG request */ +#define LL_DMAMUX_REQ_TIM8_COM 0x00000037U /*!< DMAMUX TIM8 COM request */ +#define LL_DMAMUX_REQ_TIM2_CH1 0x00000038U /*!< DMAMUX TIM2 CH1 request */ +#define LL_DMAMUX_REQ_TIM2_CH2 0x00000039U /*!< DMAMUX TIM2 CH2 request */ +#define LL_DMAMUX_REQ_TIM2_CH3 0x0000003AU /*!< DMAMUX TIM2 CH3 request */ +#define LL_DMAMUX_REQ_TIM2_CH4 0x0000003BU /*!< DMAMUX TIM2 CH4 request */ +#define LL_DMAMUX_REQ_TIM2_UP 0x0000003CU /*!< DMAMUX TIM2 UP request */ +#define LL_DMAMUX_REQ_TIM3_CH1 0x0000003DU /*!< DMAMUX TIM3 CH1 request */ +#define LL_DMAMUX_REQ_TIM3_CH2 0x0000003EU /*!< DMAMUX TIM3 CH2 request */ +#define LL_DMAMUX_REQ_TIM3_CH3 0x0000003FU /*!< DMAMUX TIM3 CH3 request */ +#define LL_DMAMUX_REQ_TIM3_CH4 0x00000040U /*!< DMAMUX TIM3 CH4 request */ +#define LL_DMAMUX_REQ_TIM3_UP 0x00000041U /*!< DMAMUX TIM3 UP request */ +#define LL_DMAMUX_REQ_TIM3_TRIG 0x00000042U /*!< DMAMUX TIM3 TRIG request */ +#define LL_DMAMUX_REQ_TIM4_CH1 0x00000043U /*!< DMAMUX TIM4 CH1 request */ +#define LL_DMAMUX_REQ_TIM4_CH2 0x00000044U /*!< DMAMUX TIM4 CH2 request */ +#define LL_DMAMUX_REQ_TIM4_CH3 0x00000045U /*!< DMAMUX TIM4 CH3 request */ +#define LL_DMAMUX_REQ_TIM4_CH4 0x00000046U /*!< DMAMUX TIM4 CH4 request */ +#define LL_DMAMUX_REQ_TIM4_UP 0x00000047U /*!< DMAMUX TIM4 UP request */ +#define LL_DMAMUX_REQ_TIM5_CH1 0x00000048U /*!< DMAMUX TIM5 CH1 request */ +#define LL_DMAMUX_REQ_TIM5_CH2 0x00000049U /*!< DMAMUX TIM5 CH2 request */ +#define LL_DMAMUX_REQ_TIM5_CH3 0x0000004AU /*!< DMAMUX TIM5 CH3 request */ +#define LL_DMAMUX_REQ_TIM5_CH4 0x0000004BU /*!< DMAMUX TIM5 CH4 request */ +#define LL_DMAMUX_REQ_TIM5_UP 0x0000004CU /*!< DMAMUX TIM5 UP request */ +#define LL_DMAMUX_REQ_TIM5_TRIG 0x0000004DU /*!< DMAMUX TIM5 TRIG request */ +#define LL_DMAMUX_REQ_TIM15_CH1 0x0000004EU /*!< DMAMUX TIM15 CH1 request */ +#define LL_DMAMUX_REQ_TIM15_UP 0x0000004FU /*!< DMAMUX TIM15 UP request */ +#define LL_DMAMUX_REQ_TIM15_TRIG 0x00000050U /*!< DMAMUX TIM15 TRIG request */ +#define LL_DMAMUX_REQ_TIM15_COM 0x00000051U /*!< DMAMUX TIM15 COM request */ +#define LL_DMAMUX_REQ_TIM16_CH1 0x00000052U /*!< DMAMUX TIM16 CH1 request */ +#define LL_DMAMUX_REQ_TIM16_UP 0x00000053U /*!< DMAMUX TIM16 UP request */ +#define LL_DMAMUX_REQ_TIM17_CH1 0x00000054U /*!< DMAMUX TIM17 CH1 request */ +#define LL_DMAMUX_REQ_TIM17_UP 0x00000055U /*!< DMAMUX TIM17 UP request */ +#define LL_DMAMUX_REQ_TIM20_CH1 0x00000056U /*!< DMAMUX TIM20 CH1 request */ +#define LL_DMAMUX_REQ_TIM20_CH2 0x00000057U /*!< DMAMUX TIM20 CH2 request */ +#define LL_DMAMUX_REQ_TIM20_CH3 0x00000058U /*!< DMAMUX TIM20 CH3 request */ +#define LL_DMAMUX_REQ_TIM20_CH4 0x00000059U /*!< DMAMUX TIM20 CH4 request */ +#define LL_DMAMUX_REQ_TIM20_UP 0x0000005AU /*!< DMAMUX TIM20 UP request */ +#define LL_DMAMUX_REQ_AES_IN 0x0000005BU /*!< DMAMUX AES_IN request */ +#define LL_DMAMUX_REQ_AES_OUT 0x0000005CU /*!< DMAMUX AES_OUT request */ +#define LL_DMAMUX_REQ_TIM20_TRIG 0x0000005DU /*!< DMAMUX TIM20 TRIG request */ +#define LL_DMAMUX_REQ_TIM20_COM 0x0000005EU /*!< DMAMUX TIM20 COM request */ +#define LL_DMAMUX_REQ_HRTIM1_M 0x0000005FU /*!< DMAMUX HRTIM M request */ +#define LL_DMAMUX_REQ_HRTIM1_A 0x00000060U /*!< DMAMUX HRTIM A request */ +#define LL_DMAMUX_REQ_HRTIM1_B 0x00000061U /*!< DMAMUX HRTIM B request */ +#define LL_DMAMUX_REQ_HRTIM1_C 0x00000062U /*!< DMAMUX HRTIM C request */ +#define LL_DMAMUX_REQ_HRTIM1_D 0x00000063U /*!< DMAMUX HRTIM D request */ +#define LL_DMAMUX_REQ_HRTIM1_E 0x00000064U /*!< DMAMUX HRTIM E request */ +#define LL_DMAMUX_REQ_HRTIM1_F 0x00000065U /*!< DMAMUX HRTIM F request */ +#define LL_DMAMUX_REQ_DAC3_CH1 0x00000066U /*!< DMAMUX DAC3 CH1 request */ +#define LL_DMAMUX_REQ_DAC3_CH2 0x00000067U /*!< DMAMUX DAC3 CH2 request */ +#define LL_DMAMUX_REQ_DAC4_CH1 0x00000068U /*!< DMAMUX DAC4 CH1 request */ +#define LL_DMAMUX_REQ_DAC4_CH2 0x00000069U /*!< DMAMUX DAC4 CH2 request */ +#define LL_DMAMUX_REQ_SPI4_RX 0x0000006AU /*!< DMAMUX SPI4 RX request */ +#define LL_DMAMUX_REQ_SPI4_TX 0x0000006BU /*!< DMAMUX SPI4 TX request */ +#define LL_DMAMUX_REQ_SAI1_A 0x0000006CU /*!< DMAMUX SAI1 A request */ +#define LL_DMAMUX_REQ_SAI1_B 0x0000006DU /*!< DMAMUX SAI1 B request */ +#define LL_DMAMUX_REQ_FMAC_READ 0x0000006EU /*!< DMAMUX FMAC READ request */ +#define LL_DMAMUX_REQ_FMAC_WRITE 0x0000006FU /*!< DMAMUX FMAC WRITE request */ +#define LL_DMAMUX_REQ_CORDIC_READ 0x00000070U /*!< DMAMUX CORDIC READ request */ +#define LL_DMAMUX_REQ_CORDIC_WRITE 0x00000071U /*!< DMAMUX CORDIC WRITE request*/ +#define LL_DMAMUX_REQ_UCPD1_RX 0x00000072U /*!< DMAMUX USBPD1_RX request */ +#define LL_DMAMUX_REQ_UCPD1_TX 0x00000073U /*!< DMAMUX USBPD1_TX request */ + +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_CHANNEL DMAMUX Channel + * @{ + */ +#define LL_DMAMUX_CHANNEL_0 0x00000000U /*!< DMAMUX Channel 0 connected to DMA1 Channel 1 */ +#define LL_DMAMUX_CHANNEL_1 0x00000001U /*!< DMAMUX Channel 1 connected to DMA1 Channel 2 */ +#define LL_DMAMUX_CHANNEL_2 0x00000002U /*!< DMAMUX Channel 2 connected to DMA1 Channel 3 */ +#define LL_DMAMUX_CHANNEL_3 0x00000003U /*!< DMAMUX Channel 3 connected to DMA1 Channel 4 */ +#define LL_DMAMUX_CHANNEL_4 0x00000004U /*!< DMAMUX Channel 4 connected to DMA1 Channel 5 */ +#define LL_DMAMUX_CHANNEL_5 0x00000005U /*!< DMAMUX Channel 5 connected to DMA1 Channel 6 */ +#define LL_DMAMUX_CHANNEL_6 0x00000006U /*!< DMAMUX Channel 6 connected to DMA1 Channel 7 */ +#define LL_DMAMUX_CHANNEL_7 0x00000007U /*!< DMAMUX Channel 7 connected to DMA1 Channel 8 */ +#define LL_DMAMUX_CHANNEL_8 0x00000008U /*!< DMAMUX Channel 8 connected to DMA2 Channel 1 */ +#define LL_DMAMUX_CHANNEL_9 0x00000009U /*!< DMAMUX Channel 9 connected to DMA2 Channel 2 */ +#define LL_DMAMUX_CHANNEL_10 0x0000000AU /*!< DMAMUX Channel 10 connected to DMA2 Channel 3 */ +#define LL_DMAMUX_CHANNEL_11 0x0000000BU /*!< DMAMUX Channel 11 connected to DMA2 Channel 4 */ +#define LL_DMAMUX_CHANNEL_12 0x0000000CU /*!< DMAMUX Channel 12 connected to DMA2 Channel 5 */ +#define LL_DMAMUX_CHANNEL_13 0x0000000DU /*!< DMAMUX Channel 13 connected to DMA2 Channel 6 */ +#define LL_DMAMUX_CHANNEL_14 0x0000000EU /*!< DMAMUX Channel 14 connected to DMA2 Channel 7 */ +#define LL_DMAMUX_CHANNEL_15 0x0000000FU /*!< DMAMUX Channel 15 connected to DMA2 Channel 8 */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_SYNC_NO Synchronization Signal Polarity + * @{ + */ +#define LL_DMAMUX_SYNC_NO_EVENT 0x00000000U /*!< All requests are blocked */ +#define LL_DMAMUX_SYNC_POL_RISING DMAMUX_CxCR_SPOL_0 /*!< Synchronization on event on rising edge */ +#define LL_DMAMUX_SYNC_POL_FALLING DMAMUX_CxCR_SPOL_1 /*!< Synchronization on event on falling edge */ +#define LL_DMAMUX_SYNC_POL_RISING_FALLING (DMAMUX_CxCR_SPOL_0 | DMAMUX_CxCR_SPOL_1) /*!< Synchronization on event on rising and falling edge */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_SYNC_EVT Synchronization Signal Event + * @{ + */ +#define LL_DMAMUX_SYNC_EXTI_LINE0 0x00000000U /*!< Synchronization signal from EXTI Line0 */ +#define LL_DMAMUX_SYNC_EXTI_LINE1 DMAMUX_CxCR_SYNC_ID_0 /*!< Synchronization signal from EXTI Line1 */ +#define LL_DMAMUX_SYNC_EXTI_LINE2 DMAMUX_CxCR_SYNC_ID_1 /*!< Synchronization signal from EXTI Line2 */ +#define LL_DMAMUX_SYNC_EXTI_LINE3 (DMAMUX_CxCR_SYNC_ID_1 |DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line3 */ +#define LL_DMAMUX_SYNC_EXTI_LINE4 DMAMUX_CxCR_SYNC_ID_2 /*!< Synchronization signal from EXTI Line4 */ +#define LL_DMAMUX_SYNC_EXTI_LINE5 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line5 */ +#define LL_DMAMUX_SYNC_EXTI_LINE6 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line6 */ +#define LL_DMAMUX_SYNC_EXTI_LINE7 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line7 */ +#define LL_DMAMUX_SYNC_EXTI_LINE8 DMAMUX_CxCR_SYNC_ID_3 /*!< Synchronization signal from EXTI Line8 */ +#define LL_DMAMUX_SYNC_EXTI_LINE9 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line9 */ +#define LL_DMAMUX_SYNC_EXTI_LINE10 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line10 */ +#define LL_DMAMUX_SYNC_EXTI_LINE11 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line11 */ +#define LL_DMAMUX_SYNC_EXTI_LINE12 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2) /*!< Synchronization signal from EXTI Line12 */ +#define LL_DMAMUX_SYNC_EXTI_LINE13 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line13 */ +#define LL_DMAMUX_SYNC_EXTI_LINE14 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line14 */ +#define LL_DMAMUX_SYNC_EXTI_LINE15 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line15 */ +#define LL_DMAMUX_SYNC_DMAMUX_CH0 DMAMUX_CxCR_SYNC_ID_4 /*!< Synchronization signal from DMAMUX channel0 Event */ +#define LL_DMAMUX_SYNC_DMAMUX_CH1 (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from DMAMUX channel1 Event */ +#define LL_DMAMUX_SYNC_DMAMUX_CH2 (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from DMAMUX channel2 Event */ +#define LL_DMAMUX_SYNC_DMAMUX_CH3 (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from DMAMUX channel3 Event */ +#define LL_DMAMUX_SYNC_LPTIM1_OUT (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_2) /*!< Synchronization signal from LPTIM1 Output */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_REQUEST_GENERATOR Request Generator Channel + * @{ + */ +#define LL_DMAMUX_REQ_GEN_0 0x00000000U +#define LL_DMAMUX_REQ_GEN_1 0x00000001U +#define LL_DMAMUX_REQ_GEN_2 0x00000002U +#define LL_DMAMUX_REQ_GEN_3 0x00000003U +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_REQUEST_GEN_POLARITY External Request Signal Generation Polarity + * @{ + */ +#define LL_DMAMUX_REQ_GEN_NO_EVENT 0x00000000U /*!< No external DMA request generation */ +#define LL_DMAMUX_REQ_GEN_POL_RISING DMAMUX_RGxCR_GPOL_0 /*!< External DMA request generation on event on rising edge */ +#define LL_DMAMUX_REQ_GEN_POL_FALLING DMAMUX_RGxCR_GPOL_1 /*!< External DMA request generation on event on falling edge */ +#define LL_DMAMUX_REQ_GEN_POL_RISING_FALLING (DMAMUX_RGxCR_GPOL_0 | DMAMUX_RGxCR_GPOL_1) /*!< External DMA request generation on rising and falling edge */ +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EC_REQUEST_GEN External Request Signal Generation + * @{ + */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE0 0x00000000U /*!< Request signal generation from EXTI Line0 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE1 DMAMUX_RGxCR_SIG_ID_0 /*!< Request signal generation from EXTI Line1 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE2 DMAMUX_RGxCR_SIG_ID_1 /*!< Request signal generation from EXTI Line2 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE3 (DMAMUX_RGxCR_SIG_ID_1 |DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line3 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE4 DMAMUX_RGxCR_SIG_ID_2 /*!< Request signal generation from EXTI Line4 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE5 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line5 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE6 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line6 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE7 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line7 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE8 DMAMUX_RGxCR_SIG_ID_3 /*!< Request signal generation from EXTI Line8 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE9 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line9 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE10 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line10 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE11 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line11 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE12 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2) /*!< Request signal generation from EXTI Line12 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE13 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line13 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE14 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line14 */ +#define LL_DMAMUX_REQ_GEN_EXTI_LINE15 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line15 */ +#define LL_DMAMUX_REQ_GEN_DMAMUX_CH0 DMAMUX_RGxCR_SIG_ID_4 /*!< Request signal generation from DMAMUX channel0 Event */ +#define LL_DMAMUX_REQ_GEN_DMAMUX_CH1 (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from DMAMUX channel1 Event */ +#define LL_DMAMUX_REQ_GEN_DMAMUX_CH2 (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from DMAMUX channel2 Event */ +#define LL_DMAMUX_REQ_GEN_DMAMUX_CH3 (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from DMAMUX channel3 Event */ +#define LL_DMAMUX_REQ_GEN_LPTIM1_OUT (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_2) /*!< Request signal generation from LPTIM1 Output */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup DMAMUX_LL_Exported_Macros DMAMUX Exported Macros + * @{ + */ +/** @defgroup DMAMUX_LL_EM_WRITE_READ Common Write and read registers macros + * @{ + */ +/** + * @brief Write a value in DMAMUX register + * @param __INSTANCE__ DMAMUX Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_DMAMUX_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in DMAMUX register + * @param __INSTANCE__ DMAMUX Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_DMAMUX_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup DMAMUX_LL_Exported_Functions DMAMUX Exported Functions + * @{ + */ + +/** @defgroup DMAMUX_LL_EF_Configuration Configuration + * @{ + */ +/** + * @brief Set DMAMUX request ID for DMAMUX Channel x. + * @note DMAMUX channel 0 to 7 are mapped to DMA1 channel 1 to 8. + * DMAMUX channel 8 to 15 are mapped to DMA2 channel 1 to 8. + * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_SetRequestID + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @param Request This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_MEM2MEM + * @arg @ref LL_DMAMUX_REQ_GENERATOR0 + * @arg @ref LL_DMAMUX_REQ_GENERATOR1 + * @arg @ref LL_DMAMUX_REQ_GENERATOR2 + * @arg @ref LL_DMAMUX_REQ_GENERATOR3 + * @arg @ref LL_DMAMUX_REQ_ADC1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM6_UP + * @arg @ref LL_DMAMUX_REQ_TIM7_UP + * @arg @ref LL_DMAMUX_REQ_SPI1_RX + * @arg @ref LL_DMAMUX_REQ_SPI1_TX + * @arg @ref LL_DMAMUX_REQ_SPI2_RX + * @arg @ref LL_DMAMUX_REQ_SPI2_TX + * @arg @ref LL_DMAMUX_REQ_SPI3_RX + * @arg @ref LL_DMAMUX_REQ_SPI3_TX + * @arg @ref LL_DMAMUX_REQ_I2C1_RX + * @arg @ref LL_DMAMUX_REQ_I2C1_TX + * @arg @ref LL_DMAMUX_REQ_I2C2_RX + * @arg @ref LL_DMAMUX_REQ_I2C2_TX + * @arg @ref LL_DMAMUX_REQ_I2C3_RX + * @arg @ref LL_DMAMUX_REQ_I2C3_TX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_RX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_TX + * @arg @ref LL_DMAMUX_REQ_USART1_RX + * @arg @ref LL_DMAMUX_REQ_USART1_TX + * @arg @ref LL_DMAMUX_REQ_USART2_RX + * @arg @ref LL_DMAMUX_REQ_USART2_TX + * @arg @ref LL_DMAMUX_REQ_USART3_RX + * @arg @ref LL_DMAMUX_REQ_USART3_TX + * @arg @ref LL_DMAMUX_REQ_UART4_RX + * @arg @ref LL_DMAMUX_REQ_UART4_TX + * @arg @ref LL_DMAMUX_REQ_UART5_RX (*) + * @arg @ref LL_DMAMUX_REQ_UART5_TX (*) + * @arg @ref LL_DMAMUX_REQ_LPUART1_RX + * @arg @ref LL_DMAMUX_REQ_LPUART1_TX + * @arg @ref LL_DMAMUX_REQ_ADC2 + * @arg @ref LL_DMAMUX_REQ_ADC3 (*) + * @arg @ref LL_DMAMUX_REQ_ADC4 (*) + * @arg @ref LL_DMAMUX_REQ_ADC5 (*) + * @arg @ref LL_DMAMUX_REQ_QSPI (*) + * @arg @ref LL_DMAMUX_REQ_DAC2_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM1_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM1_UP + * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM1_COM + * @arg @ref LL_DMAMUX_REQ_TIM8_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM8_UP + * @arg @ref LL_DMAMUX_REQ_TIM8_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM8_COM + * @arg @ref LL_DMAMUX_REQ_TIM2_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM2_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM3_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM4_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM4_UP + * @arg @ref LL_DMAMUX_REQ_TIM5_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_UP (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM15_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM15_UP + * @arg @ref LL_DMAMUX_REQ_TIM15_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM15_COM + * @arg @ref LL_DMAMUX_REQ_TIM16_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM16_UP + * @arg @ref LL_DMAMUX_REQ_TIM17_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM17_UP + * @arg @ref LL_DMAMUX_REQ_TIM20_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_UP (*) + * @arg @ref LL_DMAMUX_REQ_AES_IN + * @arg @ref LL_DMAMUX_REQ_AES_OUT + * @arg @ref LL_DMAMUX_REQ_TIM20_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_COM (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_M (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_A (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_B (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_C (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_D (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_E (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_F (*) + * @arg @ref LL_DMAMUX_REQ_DAC3_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC3_CH2 + * @arg @ref LL_DMAMUX_REQ_DAC4_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_DAC4_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_RX (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_TX (*) + * @arg @ref LL_DMAMUX_REQ_SAI1_A + * @arg @ref LL_DMAMUX_REQ_SAI1_B + * @arg @ref LL_DMAMUX_REQ_FMAC_WRITE + * @arg @ref LL_DMAMUX_REQ_FMAC_WRITE + * @arg @ref LL_DMAMUX_REQ_CORDIC_WRITE + * @arg @ref LL_DMAMUX_REQ_CORDIC_READ + * @arg @ref LL_DMAMUX_REQ_UCPD1_RX + * @arg @ref LL_DMAMUX_REQ_UCPD1_TX + * (*) Not on all G4 devices + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetRequestID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Request) +{ + (void)(DMAMUXx); + MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID, Request); +} + +/** + * @brief Get DMAMUX request ID for DMAMUX Channel x. + * @note DMAMUX channel 0 to 7 are mapped to DMA1 channel 1 to 8. + * DMAMUX channel 8 to 15 are mapped to DMA2 channel 1 to 8. + * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_GetRequestID + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * (*) Not on all G4 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_MEM2MEM + * @arg @ref LL_DMAMUX_REQ_GENERATOR0 + * @arg @ref LL_DMAMUX_REQ_GENERATOR0 + * @arg @ref LL_DMAMUX_REQ_GENERATOR1 + * @arg @ref LL_DMAMUX_REQ_GENERATOR2 + * @arg @ref LL_DMAMUX_REQ_GENERATOR3 + * @arg @ref LL_DMAMUX_REQ_ADC1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM6_UP + * @arg @ref LL_DMAMUX_REQ_TIM7_UP + * @arg @ref LL_DMAMUX_REQ_SPI1_RX + * @arg @ref LL_DMAMUX_REQ_SPI1_TX + * @arg @ref LL_DMAMUX_REQ_SPI2_RX + * @arg @ref LL_DMAMUX_REQ_SPI2_TX + * @arg @ref LL_DMAMUX_REQ_SPI3_RX + * @arg @ref LL_DMAMUX_REQ_SPI3_TX + * @arg @ref LL_DMAMUX_REQ_I2C1_RX + * @arg @ref LL_DMAMUX_REQ_I2C1_TX + * @arg @ref LL_DMAMUX_REQ_I2C2_RX + * @arg @ref LL_DMAMUX_REQ_I2C2_TX + * @arg @ref LL_DMAMUX_REQ_I2C3_RX + * @arg @ref LL_DMAMUX_REQ_I2C3_TX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_RX (*) + * @arg @ref LL_DMAMUX_REQ_I2C4_TX + * @arg @ref LL_DMAMUX_REQ_USART1_RX + * @arg @ref LL_DMAMUX_REQ_USART1_TX + * @arg @ref LL_DMAMUX_REQ_USART2_RX + * @arg @ref LL_DMAMUX_REQ_USART2_TX + * @arg @ref LL_DMAMUX_REQ_USART3_RX + * @arg @ref LL_DMAMUX_REQ_USART3_TX + * @arg @ref LL_DMAMUX_REQ_UART4_RX + * @arg @ref LL_DMAMUX_REQ_UART4_TX + * @arg @ref LL_DMAMUX_REQ_UART5_RX (*) + * @arg @ref LL_DMAMUX_REQ_UART5_TX (*) + * @arg @ref LL_DMAMUX_REQ_LPUART1_RX + * @arg @ref LL_DMAMUX_REQ_LPUART1_TX + * @arg @ref LL_DMAMUX_REQ_ADC2 + * @arg @ref LL_DMAMUX_REQ_ADC3 (*) + * @arg @ref LL_DMAMUX_REQ_ADC4 (*) + * @arg @ref LL_DMAMUX_REQ_ADC5 (*) + * @arg @ref LL_DMAMUX_REQ_QSPI (*) + * @arg @ref LL_DMAMUX_REQ_DAC2_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM1_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM1_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM1_UP + * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM1_COM + * @arg @ref LL_DMAMUX_REQ_TIM8_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM8_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM8_UP + * @arg @ref LL_DMAMUX_REQ_TIM8_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM8_COM + * @arg @ref LL_DMAMUX_REQ_TIM2_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM2_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM2_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM3_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM3_UP + * @arg @ref LL_DMAMUX_REQ_TIM3_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM4_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH2 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH3 + * @arg @ref LL_DMAMUX_REQ_TIM4_CH4 + * @arg @ref LL_DMAMUX_REQ_TIM4_UP + * @arg @ref LL_DMAMUX_REQ_TIM5_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_UP (*) + * @arg @ref LL_DMAMUX_REQ_TIM5_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM15_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM15_UP + * @arg @ref LL_DMAMUX_REQ_TIM15_TRIG + * @arg @ref LL_DMAMUX_REQ_TIM15_COM + * @arg @ref LL_DMAMUX_REQ_TIM16_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM16_UP + * @arg @ref LL_DMAMUX_REQ_TIM17_CH1 + * @arg @ref LL_DMAMUX_REQ_TIM17_UP + * @arg @ref LL_DMAMUX_REQ_TIM20_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH3 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_CH4 (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_UP (*) + * @arg @ref LL_DMAMUX_REQ_AES_IN + * @arg @ref LL_DMAMUX_REQ_AES_OUT + * @arg @ref LL_DMAMUX_REQ_TIM20_TRIG (*) + * @arg @ref LL_DMAMUX_REQ_TIM20_COM (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_M (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_A (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_B (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_C (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_D (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_E (*) + * @arg @ref LL_DMAMUX_REQ_HRTIM1_F (*) + * @arg @ref LL_DMAMUX_REQ_DAC3_CH1 + * @arg @ref LL_DMAMUX_REQ_DAC3_CH2 + * @arg @ref LL_DMAMUX_REQ_DAC4_CH1 (*) + * @arg @ref LL_DMAMUX_REQ_DAC4_CH2 (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_RX (*) + * @arg @ref LL_DMAMUX_REQ_SPI4_TX (*) + * @arg @ref LL_DMAMUX_REQ_SAI1_A + * @arg @ref LL_DMAMUX_REQ_SAI1_B + * @arg @ref LL_DMAMUX_REQ_FMAC_WRITE + * @arg @ref LL_DMAMUX_REQ_FMAC_WRITE + * @arg @ref LL_DMAMUX_REQ_CORDIC_WRITE + * @arg @ref LL_DMAMUX_REQ_CORDIC_READ + * @arg @ref LL_DMAMUX_REQ_UCPD1_RX + * @arg @ref LL_DMAMUX_REQ_UCPD1_TX + * (*) Not on all G4 devices + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetRequestID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID)); +} + +/** + * @brief Set the number of DMA request that will be autorized after a synchronization event and/or the number of DMA request needed to generate an event. + * @rmtoll CxCR NBREQ LL_DMAMUX_SetSyncRequestNb + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32. + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetSyncRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t RequestNb) +{ + (void)(DMAMUXx); + MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ, ((RequestNb - 1U) << DMAMUX_CxCR_NBREQ_Pos)); +} + +/** + * @brief Get the number of DMA request that will be autorized after a synchronization event and/or the number of DMA request needed to generate an event. + * @rmtoll CxCR NBREQ LL_DMAMUX_GetSyncRequestNb + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval Between Min_Data = 1 and Max_Data = 32 + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetSyncRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return (uint32_t)(((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ)) >> DMAMUX_CxCR_NBREQ_Pos) + 1U); +} + +/** + * @brief Set the polarity of the signal on which the DMA request is synchronized. + * @rmtoll CxCR SPOL LL_DMAMUX_SetSyncPolarity + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_SYNC_NO_EVENT + * @arg @ref LL_DMAMUX_SYNC_POL_RISING + * @arg @ref LL_DMAMUX_SYNC_POL_FALLING + * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetSyncPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Polarity) +{ + (void)(DMAMUXx); + MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL, Polarity); +} + +/** + * @brief Get the polarity of the signal on which the DMA request is synchronized. + * @rmtoll CxCR SPOL LL_DMAMUX_GetSyncPolarity + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMAMUX_SYNC_NO_EVENT + * @arg @ref LL_DMAMUX_SYNC_POL_RISING + * @arg @ref LL_DMAMUX_SYNC_POL_FALLING + * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetSyncPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL)); +} + +/** + * @brief Enable the Event Generation on DMAMUX channel x. + * @rmtoll CxCR EGE LL_DMAMUX_EnableEventGeneration + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_EnableEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE); +} + +/** + * @brief Disable the Event Generation on DMAMUX channel x. + * @rmtoll CxCR EGE LL_DMAMUX_DisableEventGeneration + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_DisableEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE); +} + +/** + * @brief Check if the Event Generation on DMAMUX channel x is enabled or disabled. + * @rmtoll CxCR EGE LL_DMAMUX_IsEnabledEventGeneration + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE) == (DMAMUX_CxCR_EGE))? 1UL : 0UL); +} + +/** + * @brief Enable the synchronization mode. + * @rmtoll CxCR SE LL_DMAMUX_EnableSync + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_EnableSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE); +} + +/** + * @brief Disable the synchronization mode. + * @rmtoll CxCR SE LL_DMAMUX_DisableSync + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_DisableSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE); +} + +/** + * @brief Check if the synchronization mode is enabled or disabled. + * @rmtoll CxCR SE LL_DMAMUX_IsEnabledSync + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE) == (DMAMUX_CxCR_SE))? 1UL : 0UL); +} + +/** + * @brief Set DMAMUX synchronization ID on DMAMUX Channel x. + * @rmtoll CxCR SYNC_ID LL_DMAMUX_SetSyncID + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @param SyncID This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH2 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH3 + * @arg @ref LL_DMAMUX_SYNC_LPTIM1_OUT + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetSyncID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t SyncID) +{ + (void)(DMAMUXx); + MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID, SyncID); +} + +/** + * @brief Get DMAMUX synchronization ID on DMAMUX Channel x. + * @rmtoll CxCR SYNC_ID LL_DMAMUX_GetSyncID + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14 + * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH2 + * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH3 + * @arg @ref LL_DMAMUX_SYNC_LPTIM1_OUT + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetSyncID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID)); +} + +/** + * @brief Enable the Request Generator. + * @rmtoll RGxCR GE LL_DMAMUX_EnableRequestGen + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_EnableRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + (void)(DMAMUXx); + SET_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE); +} + +/** + * @brief Disable the Request Generator. + * @rmtoll RGxCR GE LL_DMAMUX_DisableRequestGen + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_DisableRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + (void)(DMAMUXx); + CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE); +} + +/** + * @brief Check if the Request Generator is enabled or disabled. + * @rmtoll RGxCR GE LL_DMAMUX_IsEnabledRequestGen + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + (void)(DMAMUXx); + return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE) == (DMAMUX_RGxCR_GE))? 1UL : 0UL); +} + +/** + * @brief Set the polarity of the signal on which the DMA request is generated. + * @rmtoll RGxCR GPOL LL_DMAMUX_SetRequestGenPolarity + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT + * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING + * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING + * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetRequestGenPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, + uint32_t Polarity) +{ + UNUSED(DMAMUXx); + MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL, Polarity); +} + +/** + * @brief Get the polarity of the signal on which the DMA request is generated. + * @rmtoll RGxCR GPOL LL_DMAMUX_GetRequestGenPolarity + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT + * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING + * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING + * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetRequestGenPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + UNUSED(DMAMUXx); + return (READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL)); +} + +/** + * @brief Set the number of DMA request that will be autorized after a generation event. + * @note This field can only be written when Generator is disabled. + * @rmtoll RGxCR GNBREQ LL_DMAMUX_SetGenRequestNb + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32. + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetGenRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, + uint32_t RequestNb) +{ + UNUSED(DMAMUXx); + MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GNBREQ, (RequestNb - 1U) << DMAMUX_RGxCR_GNBREQ_Pos); +} + +/** + * @brief Get the number of DMA request that will be autorized after a generation event. + * @rmtoll RGxCR GNBREQ LL_DMAMUX_GetGenRequestNb + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval Between Min_Data = 1 and Max_Data = 32 + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetGenRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GNBREQ) >> DMAMUX_RGxCR_GNBREQ_Pos) + 1U); +} + +/** + * @brief Set DMAMUX external Request Signal ID on DMAMUX Request Generation Trigger Event Channel x. + * @rmtoll RGxCR SIG_ID LL_DMAMUX_SetRequestSignalID + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @param RequestSignalID This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH2 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH3 + * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM1_OUT + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_SetRequestSignalID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, + uint32_t RequestSignalID) +{ + UNUSED(DMAMUXx); + MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID, RequestSignalID); +} + +/** + * @brief Get DMAMUX external Request Signal ID set on DMAMUX Channel x. + * @rmtoll RGxCR SIG_ID LL_DMAMUX_GetRequestSignalID + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14 + * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH2 + * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH3 + * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM1_OUT + */ +__STATIC_INLINE uint32_t LL_DMAMUX_GetRequestSignalID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + UNUSED(DMAMUXx); + return (READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID)); +} + +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Get Synchronization Event Overrun Flag Channel 0. + * @rmtoll CSR SOF0 LL_DMAMUX_IsActiveFlag_SO0 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO0(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF0) == (DMAMUX_CSR_SOF0)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 1. + * @rmtoll CSR SOF1 LL_DMAMUX_IsActiveFlag_SO1 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO1(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF1) == (DMAMUX_CSR_SOF1)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 2. + * @rmtoll CSR SOF2 LL_DMAMUX_IsActiveFlag_SO2 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO2(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF2) == (DMAMUX_CSR_SOF2)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 3. + * @rmtoll CSR SOF3 LL_DMAMUX_IsActiveFlag_SO3 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO3(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF3) == (DMAMUX_CSR_SOF3)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 4. + * @rmtoll CSR SOF4 LL_DMAMUX_IsActiveFlag_SO4 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO4(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF4) == (DMAMUX_CSR_SOF4)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 5. + * @rmtoll CSR SOF5 LL_DMAMUX_IsActiveFlag_SO5 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO5(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF5) == (DMAMUX_CSR_SOF5)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 6. + * @rmtoll CSR SOF6 LL_DMAMUX_IsActiveFlag_SO6 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO6(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF6) == (DMAMUX_CSR_SOF6)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 7. + * @rmtoll CSR SOF7 LL_DMAMUX_IsActiveFlag_SO7 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO7(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF7) == (DMAMUX_CSR_SOF7)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 8. + * @rmtoll CSR SOF8 LL_DMAMUX_IsActiveFlag_SO8 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO8(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF8) == (DMAMUX_CSR_SOF8)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 9. + * @rmtoll CSR SOF9 LL_DMAMUX_IsActiveFlag_SO9 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO9(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF9) == (DMAMUX_CSR_SOF9)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 10. + * @rmtoll CSR SOF10 LL_DMAMUX_IsActiveFlag_SO10 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO10(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF10) == (DMAMUX_CSR_SOF10)) ? 1UL : 0UL); +} + +/** + * @brief Get Synchronization Event Overrun Flag Channel 11. + * @rmtoll CSR SOF11 LL_DMAMUX_IsActiveFlag_SO11 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO11(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF11) == (DMAMUX_CSR_SOF11)) ? 1UL : 0UL); +} + +#if defined (DMAMUX_CSR_SOF12) +/** + * @brief Get Synchronization Event Overrun Flag Channel 12. + * @rmtoll CSR SOF12 LL_DMAMUX_IsActiveFlag_SO12 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO12(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF12) == (DMAMUX_CSR_SOF12)) ? 1UL : 0UL); +} +#endif /* DMAMUX_CSR_SOF12 */ + +#if defined (DMAMUX_CSR_SOF13) +/** + * @brief Get Synchronization Event Overrun Flag Channel 13. + * @rmtoll CSR SOF13 LL_DMAMUX_IsActiveFlag_SO13 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO13(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF13) == (DMAMUX_CSR_SOF13)) ? 1UL : 0UL); +} +#endif /* DMAMUX_CSR_SOF13 */ + +#if defined (DMAMUX_CSR_SOF14) +/** + * @brief Get Synchronization Event Overrun Flag Channel 14. + * @rmtoll CSR SOF13 LL_DMAMUX_IsActiveFlag_SO14 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO14(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF14) == (DMAMUX_CSR_SOF14)) ? 1UL : 0UL); +} +#endif /* DMAMUX_CSR_SOF14 */ + +#if defined (DMAMUX_CSR_SOF15) +/** + * @brief Get Synchronization Event Overrun Flag Channel 15. + * @rmtoll CSR SOF13 LL_DMAMUX_IsActiveFlag_SO15 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO15(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF15) == (DMAMUX_CSR_SOF15)) ? 1UL : 0UL); +} +#endif /* DMAMUX_CSR_SOF15 */ + +/** + * @brief Get Request Generator 0 Trigger Event Overrun Flag. + * @rmtoll RGSR OF0 LL_DMAMUX_IsActiveFlag_RGO0 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO0(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF0) == (DMAMUX_RGSR_OF0)) ? 1UL : 0UL); +} + +/** + * @brief Get Request Generator 1 Trigger Event Overrun Flag. + * @rmtoll RGSR OF1 LL_DMAMUX_IsActiveFlag_RGO1 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO1(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF1) == (DMAMUX_RGSR_OF1)) ? 1UL : 0UL); +} + +/** + * @brief Get Request Generator 2 Trigger Event Overrun Flag. + * @rmtoll RGSR OF2 LL_DMAMUX_IsActiveFlag_RGO2 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO2(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF2) == (DMAMUX_RGSR_OF2)) ? 1UL : 0UL); +} + +/** + * @brief Get Request Generator 3 Trigger Event Overrun Flag. + * @rmtoll RGSR OF3 LL_DMAMUX_IsActiveFlag_RGO3 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO3(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF3) == (DMAMUX_RGSR_OF3)) ? 1UL : 0UL); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 0. + * @rmtoll CFR CSOF0 LL_DMAMUX_ClearFlag_SO0 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO0(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF0); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 1. + * @rmtoll CFR CSOF1 LL_DMAMUX_ClearFlag_SO1 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO1(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF1); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 2. + * @rmtoll CFR CSOF2 LL_DMAMUX_ClearFlag_SO2 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO2(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF2); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 3. + * @rmtoll CFR CSOF3 LL_DMAMUX_ClearFlag_SO3 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO3(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF3); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 4. + * @rmtoll CFR CSOF4 LL_DMAMUX_ClearFlag_SO4 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO4(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF4); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 5. + * @rmtoll CFR CSOF5 LL_DMAMUX_ClearFlag_SO5 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO5(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF5); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 6. + * @rmtoll CFR CSOF6 LL_DMAMUX_ClearFlag_SO6 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO6(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF6); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 7. + * @rmtoll CFR CSOF7 LL_DMAMUX_ClearFlag_SO7 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO7(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF7); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 8. + * @rmtoll CFR CSOF8 LL_DMAMUX_ClearFlag_SO8 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO8(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF8); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 9. + * @rmtoll CFR CSOF9 LL_DMAMUX_ClearFlag_SO9 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO9(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF9); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 10. + * @rmtoll CFR CSOF10 LL_DMAMUX_ClearFlag_SO10 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO10(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF10); +} + +/** + * @brief Clear Synchronization Event Overrun Flag Channel 11. + * @rmtoll CFR CSOF11 LL_DMAMUX_ClearFlag_SO11 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO11(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF11); +} + +#if defined (DMAMUX_CFR_CSOF12) +/** + * @brief Clear Synchronization Event Overrun Flag Channel 12. + * @rmtoll CFR CSOF12 LL_DMAMUX_ClearFlag_SO12 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO12(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF12); +} +#endif /* DMAMUX_CFR_CSOF12 */ + +#if defined (DMAMUX_CFR_CSOF13) +/** + * @brief Clear Synchronization Event Overrun Flag Channel 13. + * @rmtoll CFR CSOF13 LL_DMAMUX_ClearFlag_SO13 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO13(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF13); +} +#endif /* DMAMUX_CFR_CSOF13 */ + +#if defined (DMAMUX_CFR_CSOF14) +/** + * @brief Clear Synchronization Event Overrun Flag Channel 14. + * @rmtoll CFR CSOF14 LL_DMAMUX_ClearFlag_SO14 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO14(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF14); +} +#endif /* DMAMUX_CFR_CSOF14 */ + +#if defined (DMAMUX_CFR_CSOF15) +/** + * @brief Clear Synchronization Event Overrun Flag Channel 15. + * @rmtoll CFR CSOF15 LL_DMAMUX_ClearFlag_SO15 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_SO15(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF15); +} +#endif /* DMAMUX_CFR_CSOF15 */ + +/** + * @brief Clear Request Generator 0 Trigger Event Overrun Flag. + * @rmtoll RGCFR COF0 LL_DMAMUX_ClearFlag_RGO0 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO0(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF0); +} + +/** + * @brief Clear Request Generator 1 Trigger Event Overrun Flag. + * @rmtoll RGCFR COF1 LL_DMAMUX_ClearFlag_RGO1 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO1(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF1); +} + +/** + * @brief Clear Request Generator 2 Trigger Event Overrun Flag. + * @rmtoll RGCFR COF2 LL_DMAMUX_ClearFlag_RGO2 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO2(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF2); +} + +/** + * @brief Clear Request Generator 3 Trigger Event Overrun Flag. + * @rmtoll RGCFR COF3 LL_DMAMUX_ClearFlag_RGO3 + * @param DMAMUXx DMAMUXx DMAMUXx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO3(DMAMUX_Channel_TypeDef *DMAMUXx) +{ + UNUSED(DMAMUXx); + SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF3); +} + +/** + * @} + */ + +/** @defgroup DMAMUX_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable the Synchronization Event Overrun Interrupt on DMAMUX channel x. + * @rmtoll CxCR SOIE LL_DMAMUX_EnableIT_SO + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_EnableIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE); +} + +/** + * @brief Disable the Synchronization Event Overrun Interrupt on DMAMUX channel x. + * @rmtoll CxCR SOIE LL_DMAMUX_DisableIT_SO + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_DisableIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE); +} + +/** + * @brief Check if the Synchronization Event Overrun Interrupt on DMAMUX channel x is enabled or disabled. + * @rmtoll CxCR SOIE LL_DMAMUX_IsEnabledIT_SO + * @param DMAMUXx DMAMUXx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_CHANNEL_0 + * @arg @ref LL_DMAMUX_CHANNEL_1 + * @arg @ref LL_DMAMUX_CHANNEL_2 + * @arg @ref LL_DMAMUX_CHANNEL_3 + * @arg @ref LL_DMAMUX_CHANNEL_4 + * @arg @ref LL_DMAMUX_CHANNEL_5 + * @arg @ref LL_DMAMUX_CHANNEL_6 + * @arg @ref LL_DMAMUX_CHANNEL_7 + * @arg @ref LL_DMAMUX_CHANNEL_8 + * @arg @ref LL_DMAMUX_CHANNEL_9 + * @arg @ref LL_DMAMUX_CHANNEL_10 + * @arg @ref LL_DMAMUX_CHANNEL_11 + * @arg @ref LL_DMAMUX_CHANNEL_12 + * @arg @ref LL_DMAMUX_CHANNEL_13 + * @arg @ref LL_DMAMUX_CHANNEL_14 + * @arg @ref LL_DMAMUX_CHANNEL_15 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel) +{ + (void)(DMAMUXx); + return (((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE)) == (DMAMUX_CxCR_SOIE))? 1UL : 0UL); +} + +/** + * @brief Enable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x. + * @rmtoll RGxCR OIE LL_DMAMUX_EnableIT_RGO + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_EnableIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + UNUSED(DMAMUXx); + SET_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_OIE); +} + +/** + * @brief Disable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x. + * @rmtoll RGxCR OIE LL_DMAMUX_DisableIT_RGO + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval None + */ +__STATIC_INLINE void LL_DMAMUX_DisableIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + UNUSED(DMAMUXx); + CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_OIE); +} + +/** + * @brief Check if the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x is enabled or disabled. + * @rmtoll RGxCR OIE LL_DMAMUX_IsEnabledIT_RGO + * @param DMAMUXx DMAMUXx Instance + * @param RequestGenChannel This parameter can be one of the following values: + * @arg @ref LL_DMAMUX_REQ_GEN_0 + * @arg @ref LL_DMAMUX_REQ_GEN_1 + * @arg @ref LL_DMAMUX_REQ_GEN_2 + * @arg @ref LL_DMAMUX_REQ_GEN_3 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel) +{ + UNUSED(DMAMUXx); + return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE * + (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_OIE) == (DMAMUX_RGxCR_OIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* DMAMUX1 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_DMAMUX_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h new file mode 100644 index 0000000..cdebccf --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h @@ -0,0 +1,1422 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_exti.h + * @author MCD Application Team + * @brief Header file of EXTI LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_EXTI_H +#define __STM32G4xx_LL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (EXTI) + +/** @defgroup EXTI_LL EXTI + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private Macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup EXTI_LL_Private_Macros EXTI Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure + * @{ + */ +typedef struct +{ + + uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31 + This parameter can be any combination of @ref EXTI_LL_EC_LINE */ + + uint32_t Line_32_63; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 32 to 63 + This parameter can be any combination of @ref EXTI_LL_EC_LINE */ + + FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines. + This parameter can be set either to ENABLE or DISABLE */ + + uint8_t Mode; /*!< Specifies the mode for the EXTI lines. + This parameter can be a value of @ref EXTI_LL_EC_MODE. */ + + uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines. + This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */ +} LL_EXTI_InitTypeDef; + +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants + * @{ + */ + +/** @defgroup EXTI_LL_EC_LINE LINE + * @{ + */ +#define LL_EXTI_LINE_0 EXTI_IMR1_IM0 /*!< Extended line 0 */ +#define LL_EXTI_LINE_1 EXTI_IMR1_IM1 /*!< Extended line 1 */ +#define LL_EXTI_LINE_2 EXTI_IMR1_IM2 /*!< Extended line 2 */ +#define LL_EXTI_LINE_3 EXTI_IMR1_IM3 /*!< Extended line 3 */ +#define LL_EXTI_LINE_4 EXTI_IMR1_IM4 /*!< Extended line 4 */ +#define LL_EXTI_LINE_5 EXTI_IMR1_IM5 /*!< Extended line 5 */ +#define LL_EXTI_LINE_6 EXTI_IMR1_IM6 /*!< Extended line 6 */ +#define LL_EXTI_LINE_7 EXTI_IMR1_IM7 /*!< Extended line 7 */ +#define LL_EXTI_LINE_8 EXTI_IMR1_IM8 /*!< Extended line 8 */ +#define LL_EXTI_LINE_9 EXTI_IMR1_IM9 /*!< Extended line 9 */ +#define LL_EXTI_LINE_10 EXTI_IMR1_IM10 /*!< Extended line 10 */ +#define LL_EXTI_LINE_11 EXTI_IMR1_IM11 /*!< Extended line 11 */ +#define LL_EXTI_LINE_12 EXTI_IMR1_IM12 /*!< Extended line 12 */ +#define LL_EXTI_LINE_13 EXTI_IMR1_IM13 /*!< Extended line 13 */ +#define LL_EXTI_LINE_14 EXTI_IMR1_IM14 /*!< Extended line 14 */ +#define LL_EXTI_LINE_15 EXTI_IMR1_IM15 /*!< Extended line 15 */ +#if defined(EXTI_IMR1_IM16) +#define LL_EXTI_LINE_16 EXTI_IMR1_IM16 /*!< Extended line 16 */ +#endif /* EXTI_IMR1_IM16 */ +#define LL_EXTI_LINE_17 EXTI_IMR1_IM17 /*!< Extended line 17 */ +#if defined(EXTI_IMR1_IM18) +#define LL_EXTI_LINE_18 EXTI_IMR1_IM18 /*!< Extended line 18 */ +#endif /* EXTI_IMR1_IM18 */ +#define LL_EXTI_LINE_19 EXTI_IMR1_IM19 /*!< Extended line 19 */ +#if defined(EXTI_IMR1_IM20) +#define LL_EXTI_LINE_20 EXTI_IMR1_IM20 /*!< Extended line 20 */ +#endif /* EXTI_IMR1_IM20 */ +#if defined(EXTI_IMR1_IM21) +#define LL_EXTI_LINE_21 EXTI_IMR1_IM21 /*!< Extended line 21 */ +#endif /* EXTI_IMR1_IM21 */ +#if defined(EXTI_IMR1_IM22) +#define LL_EXTI_LINE_22 EXTI_IMR1_IM22 /*!< Extended line 22 */ +#endif /* EXTI_IMR1_IM22 */ +#define LL_EXTI_LINE_23 EXTI_IMR1_IM23 /*!< Extended line 23 */ +#if defined(EXTI_IMR1_IM24) +#define LL_EXTI_LINE_24 EXTI_IMR1_IM24 /*!< Extended line 24 */ +#endif /* EXTI_IMR1_IM24 */ +#if defined(EXTI_IMR1_IM25) +#define LL_EXTI_LINE_25 EXTI_IMR1_IM25 /*!< Extended line 25 */ +#endif /* EXTI_IMR1_IM25 */ +#if defined(EXTI_IMR1_IM26) +#define LL_EXTI_LINE_26 EXTI_IMR1_IM26 /*!< Extended line 26 */ +#endif /* EXTI_IMR1_IM26 */ +#if defined(EXTI_IMR1_IM27) +#define LL_EXTI_LINE_27 EXTI_IMR1_IM27 /*!< Extended line 27 */ +#endif /* EXTI_IMR1_IM27 */ +#if defined(EXTI_IMR1_IM28) +#define LL_EXTI_LINE_28 EXTI_IMR1_IM28 /*!< Extended line 28 */ +#endif /* EXTI_IMR1_IM28 */ +#if defined(EXTI_IMR1_IM29) +#define LL_EXTI_LINE_29 EXTI_IMR1_IM29 /*!< Extended line 29 */ +#endif /* EXTI_IMR1_IM29 */ +#if defined(EXTI_IMR1_IM30) +#define LL_EXTI_LINE_30 EXTI_IMR1_IM30 /*!< Extended line 30 */ +#endif /* EXTI_IMR1_IM30 */ +#if defined(EXTI_IMR1_IM31) +#define LL_EXTI_LINE_31 EXTI_IMR1_IM31 /*!< Extended line 31 */ +#endif /* EXTI_IMR1_IM31 */ +#define LL_EXTI_LINE_ALL_0_31 EXTI_IMR1_IM /*!< All Extended line not reserved*/ + +#if defined(EXTI_IMR2_IM32) +#define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */ +#endif /* EXTI_IMR2_IM32 */ +#if defined(EXTI_IMR2_IM33) +#define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */ +#endif /* EXTI_IMR2_IM33 */ +#if defined(EXTI_IMR2_IM34) +#define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */ +#endif /* EXTI_IMR2_IM34 */ +#if defined(EXTI_IMR2_IM35) +#define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */ +#endif /* EXTI_IMR2_IM35 */ +#if defined(EXTI_IMR2_IM36) +#define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */ +#endif /* EXTI_IMR2_IM36 */ +#if defined(EXTI_IMR2_IM37) +#define LL_EXTI_LINE_37 EXTI_IMR2_IM37 /*!< Extended line 37 */ +#endif /* EXTI_IMR2_IM37 */ +#if defined(EXTI_IMR2_IM38) +#define LL_EXTI_LINE_38 EXTI_IMR2_IM38 /*!< Extended line 38 */ +#endif /* EXTI_IMR2_IM38 */ +#if defined(EXTI_IMR2_IM39) +#define LL_EXTI_LINE_39 EXTI_IMR2_IM39 /*!< Extended line 39 */ +#endif /* EXTI_IMR2_IM39 */ +#if defined(EXTI_IMR2_IM40) +#define LL_EXTI_LINE_40 EXTI_IMR2_IM40 /*!< Extended line 40 */ +#endif /* EXTI_IMR2_IM40 */ +#if defined(EXTI_IMR2_IM41) +#define LL_EXTI_LINE_41 EXTI_IMR2_IM41 /*!< Extended line 41 */ +#endif /* EXTI_IMR2_IM41 */ +#if defined(EXTI_IMR2_IM42) +#define LL_EXTI_LINE_42 EXTI_IMR2_IM42 /*!< Extended line 42 */ +#endif /* EXTI_IMR2_IM42 */ +#define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/ + + +#define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */ + +#if defined(USE_FULL_LL_DRIVER) +#define LL_EXTI_LINE_NONE 0x00000000U /*!< None Extended line */ +#endif /*USE_FULL_LL_DRIVER*/ + +/** + * @} + */ +#if defined(USE_FULL_LL_DRIVER) + +/** @defgroup EXTI_LL_EC_MODE Mode + * @{ + */ +#define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */ +#define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */ +#define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */ +/** + * @} + */ + +/** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger + * @{ + */ +#define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */ +#define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */ +#define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */ +#define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */ + +/** + * @} + */ + + +#endif /*USE_FULL_LL_DRIVER*/ + + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros + * @{ + */ + +/** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in EXTI register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__)) + +/** + * @brief Read a value in EXTI register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__) +/** + * @} + */ + + +/** + * @} + */ + + + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions + * @{ + */ +/** @defgroup EXTI_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31 + * @note The reset value for the direct or internal lines (see RM) + * is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR1 IMx LL_EXTI_EnableIT_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->IMR1, ExtiLine); +} +/** + * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63 + * @note The reset value for the direct lines (lines from 32 to 34, line + * 39) is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR2 IMx LL_EXTI_EnableIT_32_63 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_34 + * @arg @ref LL_EXTI_LINE_35 (*) + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @arg @ref LL_EXTI_LINE_42(*) + * @arg @ref LL_EXTI_LINE_ALL_32_63 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->IMR2, ExtiLine); +} + +/** + * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31 + * @note The reset value for the direct or internal lines (see RM) + * is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR1 IMx LL_EXTI_DisableIT_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->IMR1, ExtiLine); +} + +/** + * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63 + * @note The reset value for the direct lines (lines from 32 to 34, line + * 39) is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR2 IMx LL_EXTI_DisableIT_32_63 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_34 + * @arg @ref LL_EXTI_LINE_35 (*) + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @arg @ref LL_EXTI_LINE_42(*) + * @arg @ref LL_EXTI_LINE_ALL_32_63 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->IMR2, ExtiLine); +} + +/** + * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31 + * @note The reset value for the direct or internal lines (see RM) + * is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR1 IMx LL_EXTI_IsEnabledIT_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63 + * @note The reset value for the direct lines (lines from 32 to 34, line + * 39) is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR2 IMx LL_EXTI_IsEnabledIT_32_63 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_34 + * @arg @ref LL_EXTI_LINE_35 (*) + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @arg @ref LL_EXTI_LINE_42(*) + * @arg @ref LL_EXTI_LINE_ALL_32_63 + * @note (*): Available in some devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Event_Management Event_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Event request for Lines in range 0 to 31 + * @rmtoll EMR1 EMx LL_EXTI_EnableEvent_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->EMR1, ExtiLine); + +} + +/** + * @brief Enable ExtiLine Event request for Lines in range 32 to 63 + * @rmtoll EMR2 EMx LL_EXTI_EnableEvent_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_34 + * @arg @ref LL_EXTI_LINE_35 (*) + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @arg @ref LL_EXTI_LINE_42(*) + * @arg @ref LL_EXTI_LINE_ALL_32_63 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->EMR2, ExtiLine); +} + +/** + * @brief Disable ExtiLine Event request for Lines in range 0 to 31 + * @rmtoll EMR1 EMx LL_EXTI_DisableEvent_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->EMR1, ExtiLine); +} + +/** + * @brief Disable ExtiLine Event request for Lines in range 32 to 63 + * @rmtoll EMR2 EMx LL_EXTI_DisableEvent_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_34 + * @arg @ref LL_EXTI_LINE_35 (*) + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @arg @ref LL_EXTI_LINE_42(*) + * @arg @ref LL_EXTI_LINE_ALL_32_63 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->EMR2, ExtiLine); +} + +/** + * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 + * @rmtoll EMR1 EMx LL_EXTI_IsEnabledEvent_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->EMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); + +} + +/** + * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63 + * @rmtoll EMR2 EMx LL_EXTI_IsEnabledEvent_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_34 + * @arg @ref LL_EXTI_LINE_35 (*) + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @arg @ref LL_EXTI_LINE_42(*) + * @arg @ref LL_EXTI_LINE_ALL_32_63 + * @note (*): Available in some devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a rising edge on a configurable interrupt + * line occurs during a write operation in the EXTI_RTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll RTSR1 RTx LL_EXTI_EnableRisingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->RTSR1, ExtiLine); + +} + +/** + * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a rising edge on a configurable interrupt + * line occurs during a write operation in the EXTI_RTSR register, the + * pending bit is not set.Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll RTSR2 RTx LL_EXTI_EnableRisingTrig_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->RTSR2, ExtiLine); +} + +/** + * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a rising edge on a configurable interrupt + * line occurs during a write operation in the EXTI_RTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll RTSR1 RTx LL_EXTI_DisableRisingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->RTSR1, ExtiLine); + +} + +/** + * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a rising edge on a configurable interrupt + * line occurs during a write operation in the EXTI_RTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll RTSR2 RTx LL_EXTI_DisableRisingTrig_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->RTSR2, ExtiLine); +} + +/** + * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31 + * @rmtoll RTSR1 RTx LL_EXTI_IsEnabledRisingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->RTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @brief Check if rising edge trigger is enabled for Lines in range 32 to 63 + * @rmtoll RTSR2 RTx LL_EXTI_IsEnabledRisingTrig_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a falling edge on a configurable interrupt + * line occurs during a write operation in the EXTI_FTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll FTSR1 FTx LL_EXTI_EnableFallingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->FTSR1, ExtiLine); +} + +/** + * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a Falling edge on a configurable interrupt + * line occurs during a write operation in the EXTI_FTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll FTSR2 FTx LL_EXTI_EnableFallingTrig_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->FTSR2, ExtiLine); +} + +/** + * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a Falling edge on a configurable interrupt + * line occurs during a write operation in the EXTI_FTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for the same interrupt line. + * In this case, both generate a trigger condition. + * @rmtoll FTSR1 FTx LL_EXTI_DisableFallingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->FTSR1, ExtiLine); +} + +/** + * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a Falling edge on a configurable interrupt + * line occurs during a write operation in the EXTI_FTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for the same interrupt line. + * In this case, both generate a trigger condition. + * @rmtoll FTSR2 FTx LL_EXTI_DisableFallingTrig_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->FTSR2, ExtiLine); +} + +/** + * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31 + * @rmtoll FTSR1 FTx LL_EXTI_IsEnabledFallingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->FTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @brief Check if falling edge trigger is enabled for Lines in range 32 to 63 + * @rmtoll FTSR2 FTx LL_EXTI_IsEnabledFallingTrig_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management + * @{ + */ + +/** + * @brief Generate a software Interrupt Event for Lines in range 0 to 31 + * @note If the interrupt is enabled on this line in the EXTI_IMR1, writing a 1 to + * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR1 + * resulting in an interrupt request generation. + * This bit is cleared by clearing the corresponding bit in the EXTI_PR1 + * register (by writing a 1 into the bit) + * @rmtoll SWIER1 SWIx LL_EXTI_GenerateSWI_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->SWIER1, ExtiLine); +} + +/** + * @brief Generate a software Interrupt Event for Lines in range 32 to 63 + * @note If the interrupt is enabled on this line in the EXTI_IMR2, writing a 1 to + * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR2 + * resulting in an interrupt request generation. + * This bit is cleared by clearing the corresponding bit in the EXTI_PR2 + * register (by writing a 1 into the bit) + * @rmtoll SWIER2 SWIx LL_EXTI_GenerateSWI_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->SWIER2, ExtiLine); +} + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Flag_Management Flag_Management + * @{ + */ + +/** + * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR1 PIFx LL_EXTI_IsActiveFlag_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->PR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @brief Check if the ExtLine Flag is set or not for Lines in range 32 to 63 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR2 PIFx LL_EXTI_IsActiveFlag_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine) +{ + return ((READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL); +} + +/** + * @brief Read ExtLine Combination Flag for Lines in range 0 to 31 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR1 PIFx LL_EXTI_ReadFlag_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval @note This bit is set when the selected edge event arrives on the interrupt + */ +__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine) +{ + return (uint32_t)(READ_BIT(EXTI->PR1, ExtiLine)); +} + +/** + * @brief Read ExtLine Combination Flag for Lines in range 32 to 63 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR2 PIFx LL_EXTI_ReadFlag_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval @note This bit is set when the selected edge event arrives on the interrupt + */ +__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine) +{ + return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine)); +} + +/** + * @brief Clear ExtLine Flags for Lines in range 0 to 31 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR1 PIFx LL_EXTI_ClearFlag_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 (*) + * @note (*): Available in some devices + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine) +{ + WRITE_REG(EXTI->PR1, ExtiLine); +} + +/** + * @brief Clear ExtLine Flags for Lines in range 32 to 63 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR2 PIFx LL_EXTI_ClearFlag_32_63 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_32 (*) + * @arg @ref LL_EXTI_LINE_33 (*) + * @arg @ref LL_EXTI_LINE_38 + * @arg @ref LL_EXTI_LINE_39 + * @arg @ref LL_EXTI_LINE_40 + * @arg @ref LL_EXTI_LINE_41 + * @note (*): Available in some devices + * @retval None + */ +__STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine) +{ + WRITE_REG(EXTI->PR2, ExtiLine); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct); +uint32_t LL_EXTI_DeInit(void); +void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct); + + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* EXTI */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_EXTI_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_gpio.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_gpio.h new file mode 100644 index 0000000..804bd05 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_gpio.h @@ -0,0 +1,994 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_gpio.h + * @author MCD Application Team + * @brief Header file of GPIO LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_GPIO_H +#define STM32G4xx_LL_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) + +/** @defgroup GPIO_LL GPIO + * @{ + */ +/** MISRA C:2012 deviation rule has been granted for following rules: + * Rule-18.1_d - Medium: Array pointer `GPIOx' is accessed with index [..,..] + * which may be out of array bounds [..,UNKNOWN] in following APIs: + * LL_GPIO_GetAFPin_0_7 + * LL_GPIO_SetAFPin_0_7 + * LL_GPIO_SetAFPin_8_15 + * LL_GPIO_GetAFPin_8_15 + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup GPIO_LL_Private_Macros GPIO Private Macros + * @{ + */ + +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup GPIO_LL_ES_INIT GPIO Exported Init structures + * @{ + */ + +/** + * @brief LL GPIO Init Structure definition + */ +typedef struct +{ + uint32_t Pin; /*!< Specifies the GPIO pins to be configured. + This parameter can be any value of @ref GPIO_LL_EC_PIN */ + + uint32_t Mode; /*!< Specifies the operating mode for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_MODE. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinMode().*/ + + uint32_t Speed; /*!< Specifies the speed for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_SPEED. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinSpeed().*/ + + uint32_t OutputType; /*!< Specifies the operating output type for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_OUTPUT. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinOutputType().*/ + + uint32_t Pull; /*!< Specifies the operating Pull-up/Pull down for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_PULL. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinPull().*/ + + uint32_t Alternate; /*!< Specifies the Peripheral to be connected to the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_AF. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetAFPin_0_7() and LL_GPIO_SetAFPin_8_15().*/ +} LL_GPIO_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup GPIO_LL_Exported_Constants GPIO Exported Constants + * @{ + */ + +/** @defgroup GPIO_LL_EC_PIN PIN + * @{ + */ +#define LL_GPIO_PIN_0 GPIO_BSRR_BS0 /*!< Select pin 0 */ +#define LL_GPIO_PIN_1 GPIO_BSRR_BS1 /*!< Select pin 1 */ +#define LL_GPIO_PIN_2 GPIO_BSRR_BS2 /*!< Select pin 2 */ +#define LL_GPIO_PIN_3 GPIO_BSRR_BS3 /*!< Select pin 3 */ +#define LL_GPIO_PIN_4 GPIO_BSRR_BS4 /*!< Select pin 4 */ +#define LL_GPIO_PIN_5 GPIO_BSRR_BS5 /*!< Select pin 5 */ +#define LL_GPIO_PIN_6 GPIO_BSRR_BS6 /*!< Select pin 6 */ +#define LL_GPIO_PIN_7 GPIO_BSRR_BS7 /*!< Select pin 7 */ +#define LL_GPIO_PIN_8 GPIO_BSRR_BS8 /*!< Select pin 8 */ +#define LL_GPIO_PIN_9 GPIO_BSRR_BS9 /*!< Select pin 9 */ +#define LL_GPIO_PIN_10 GPIO_BSRR_BS10 /*!< Select pin 10 */ +#define LL_GPIO_PIN_11 GPIO_BSRR_BS11 /*!< Select pin 11 */ +#define LL_GPIO_PIN_12 GPIO_BSRR_BS12 /*!< Select pin 12 */ +#define LL_GPIO_PIN_13 GPIO_BSRR_BS13 /*!< Select pin 13 */ +#define LL_GPIO_PIN_14 GPIO_BSRR_BS14 /*!< Select pin 14 */ +#define LL_GPIO_PIN_15 GPIO_BSRR_BS15 /*!< Select pin 15 */ +#define LL_GPIO_PIN_ALL (GPIO_BSRR_BS0 | GPIO_BSRR_BS1 | GPIO_BSRR_BS2 | \ + GPIO_BSRR_BS3 | GPIO_BSRR_BS4 | GPIO_BSRR_BS5 | \ + GPIO_BSRR_BS6 | GPIO_BSRR_BS7 | GPIO_BSRR_BS8 | \ + GPIO_BSRR_BS9 | GPIO_BSRR_BS10 | GPIO_BSRR_BS11 | \ + GPIO_BSRR_BS12 | GPIO_BSRR_BS13 | GPIO_BSRR_BS14 | \ + GPIO_BSRR_BS15) /*!< Select all pins */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_MODE Mode + * @{ + */ +#define LL_GPIO_MODE_INPUT (0x00000000U) /*!< Select input mode */ +#define LL_GPIO_MODE_OUTPUT GPIO_MODER_MODE0_0 /*!< Select output mode */ +#define LL_GPIO_MODE_ALTERNATE GPIO_MODER_MODE0_1 /*!< Select alternate function mode */ +#define LL_GPIO_MODE_ANALOG GPIO_MODER_MODE0 /*!< Select analog mode */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_OUTPUT Output Type + * @{ + */ +#define LL_GPIO_OUTPUT_PUSHPULL (0x00000000U) /*!< Select push-pull as output type */ +#define LL_GPIO_OUTPUT_OPENDRAIN GPIO_OTYPER_OT0 /*!< Select open-drain as output type */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_SPEED Output Speed + * @{ + */ +#define LL_GPIO_SPEED_FREQ_LOW (0x00000000U) /*!< Select I/O low output speed */ +#define LL_GPIO_SPEED_FREQ_MEDIUM GPIO_OSPEEDR_OSPEED0_0 /*!< Select I/O medium output speed */ +#define LL_GPIO_SPEED_FREQ_HIGH GPIO_OSPEEDR_OSPEED0_1 /*!< Select I/O fast output speed */ +#define LL_GPIO_SPEED_FREQ_VERY_HIGH GPIO_OSPEEDR_OSPEED0 /*!< Select I/O high output speed */ +/** + * @} + */ +#define LL_GPIO_SPEED_LOW LL_GPIO_SPEED_FREQ_LOW +#define LL_GPIO_SPEED_MEDIUM LL_GPIO_SPEED_FREQ_MEDIUM +#define LL_GPIO_SPEED_FAST LL_GPIO_SPEED_FREQ_HIGH +#define LL_GPIO_SPEED_HIGH LL_GPIO_SPEED_FREQ_VERY_HIGH + +/** @defgroup GPIO_LL_EC_PULL Pull Up Pull Down + * @{ + */ +#define LL_GPIO_PULL_NO (0x00000000U) /*!< Select I/O no pull */ +#define LL_GPIO_PULL_UP GPIO_PUPDR_PUPD0_0 /*!< Select I/O pull up */ +#define LL_GPIO_PULL_DOWN GPIO_PUPDR_PUPD0_1 /*!< Select I/O pull down */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_AF Alternate Function + * @{ + */ +#define LL_GPIO_AF_0 (0x0000000U) /*!< Select alternate function 0 */ +#define LL_GPIO_AF_1 (0x0000001U) /*!< Select alternate function 1 */ +#define LL_GPIO_AF_2 (0x0000002U) /*!< Select alternate function 2 */ +#define LL_GPIO_AF_3 (0x0000003U) /*!< Select alternate function 3 */ +#define LL_GPIO_AF_4 (0x0000004U) /*!< Select alternate function 4 */ +#define LL_GPIO_AF_5 (0x0000005U) /*!< Select alternate function 5 */ +#define LL_GPIO_AF_6 (0x0000006U) /*!< Select alternate function 6 */ +#define LL_GPIO_AF_7 (0x0000007U) /*!< Select alternate function 7 */ +#define LL_GPIO_AF_8 (0x0000008U) /*!< Select alternate function 8 */ +#define LL_GPIO_AF_9 (0x0000009U) /*!< Select alternate function 9 */ +#define LL_GPIO_AF_10 (0x000000AU) /*!< Select alternate function 10 */ +#define LL_GPIO_AF_11 (0x000000BU) /*!< Select alternate function 11 */ +#define LL_GPIO_AF_12 (0x000000CU) /*!< Select alternate function 12 */ +#define LL_GPIO_AF_13 (0x000000DU) /*!< Select alternate function 13 */ +#define LL_GPIO_AF_14 (0x000000EU) /*!< Select alternate function 14 */ +#define LL_GPIO_AF_15 (0x000000FU) /*!< Select alternate function 15 */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup GPIO_LL_Exported_Macros GPIO Exported Macros + * @{ + */ + +/** @defgroup GPIO_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in GPIO register + * @param __INSTANCE__ GPIO Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_GPIO_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in GPIO register + * @param __INSTANCE__ GPIO Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_GPIO_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup GPIO_LL_Exported_Functions GPIO Exported Functions + * @{ + */ + +/** @defgroup GPIO_LL_EF_Port_Configuration Port Configuration + * @{ + */ + +/** + * @brief Configure gpio mode for a dedicated pin on dedicated port. + * @note I/O mode can be Input mode, General purpose output, Alternate function mode or Analog. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll MODER MODEy LL_GPIO_SetPinMode + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_GPIO_MODE_INPUT + * @arg @ref LL_GPIO_MODE_OUTPUT + * @arg @ref LL_GPIO_MODE_ALTERNATE + * @arg @ref LL_GPIO_MODE_ANALOG + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Mode) +{ + MODIFY_REG(GPIOx->MODER, (GPIO_MODER_MODE0 << (POSITION_VAL(Pin) * 2U)), (Mode << (POSITION_VAL(Pin) * 2U))); +} + +/** + * @brief Return gpio mode for a dedicated pin on dedicated port. + * @note I/O mode can be Input mode, General purpose output, Alternate function mode or Analog. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll MODER MODEy LL_GPIO_GetPinMode + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_MODE_INPUT + * @arg @ref LL_GPIO_MODE_OUTPUT + * @arg @ref LL_GPIO_MODE_ALTERNATE + * @arg @ref LL_GPIO_MODE_ANALOG + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->MODER, + (GPIO_MODER_MODE0 << (POSITION_VAL(Pin) * 2U))) >> (POSITION_VAL(Pin) * 2U)); +} + +/** + * @brief Configure gpio output type for several pins on dedicated port. + * @note Output type as to be set when gpio pin is in output or + * alternate modes. Possible type are Push-pull or Open-drain. + * @rmtoll OTYPER OTy LL_GPIO_SetPinOutputType + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @param OutputType This parameter can be one of the following values: + * @arg @ref LL_GPIO_OUTPUT_PUSHPULL + * @arg @ref LL_GPIO_OUTPUT_OPENDRAIN + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t PinMask, uint32_t OutputType) +{ + MODIFY_REG(GPIOx->OTYPER, PinMask, (PinMask * OutputType)); +} + +/** + * @brief Return gpio output type for several pins on dedicated port. + * @note Output type as to be set when gpio pin is in output or + * alternate modes. Possible type are Push-pull or Open-drain. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll OTYPER OTy LL_GPIO_GetPinOutputType + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_OUTPUT_PUSHPULL + * @arg @ref LL_GPIO_OUTPUT_OPENDRAIN + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->OTYPER, Pin) >> POSITION_VAL(Pin)); +} + +/** + * @brief Configure gpio speed for a dedicated pin on dedicated port. + * @note I/O speed can be Low, Medium, Fast or High speed. + * @note Warning: only one pin can be passed as parameter. + * @note Refer to datasheet for frequency specifications and the power + * supply and load conditions for each speed. + * @rmtoll OSPEEDR OSPEEDy LL_GPIO_SetPinSpeed + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Speed This parameter can be one of the following values: + * @arg @ref LL_GPIO_SPEED_FREQ_LOW + * @arg @ref LL_GPIO_SPEED_FREQ_MEDIUM + * @arg @ref LL_GPIO_SPEED_FREQ_HIGH + * @arg @ref LL_GPIO_SPEED_FREQ_VERY_HIGH + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Speed) +{ + MODIFY_REG(GPIOx->OSPEEDR, (GPIO_OSPEEDR_OSPEED0 << (POSITION_VAL(Pin) * 2U)), + (Speed << (POSITION_VAL(Pin) * 2U))); +} + +/** + * @brief Return gpio speed for a dedicated pin on dedicated port. + * @note I/O speed can be Low, Medium, Fast or High speed. + * @note Warning: only one pin can be passed as parameter. + * @note Refer to datasheet for frequency specifications and the power + * supply and load conditions for each speed. + * @rmtoll OSPEEDR OSPEEDy LL_GPIO_GetPinSpeed + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_SPEED_FREQ_LOW + * @arg @ref LL_GPIO_SPEED_FREQ_MEDIUM + * @arg @ref LL_GPIO_SPEED_FREQ_HIGH + * @arg @ref LL_GPIO_SPEED_FREQ_VERY_HIGH + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->OSPEEDR, + (GPIO_OSPEEDR_OSPEED0 << (POSITION_VAL(Pin) * 2U))) >> (POSITION_VAL(Pin) * 2U)); +} + +/** + * @brief Configure gpio pull-up or pull-down for a dedicated pin on a dedicated port. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll PUPDR PUPDy LL_GPIO_SetPinPull + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Pull This parameter can be one of the following values: + * @arg @ref LL_GPIO_PULL_NO + * @arg @ref LL_GPIO_PULL_UP + * @arg @ref LL_GPIO_PULL_DOWN + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Pull) +{ + MODIFY_REG(GPIOx->PUPDR, (GPIO_PUPDR_PUPD0 << (POSITION_VAL(Pin) * 2U)), (Pull << (POSITION_VAL(Pin) * 2U))); +} + +/** + * @brief Return gpio pull-up or pull-down for a dedicated pin on a dedicated port + * @note Warning: only one pin can be passed as parameter. + * @rmtoll PUPDR PUPDy LL_GPIO_GetPinPull + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_PULL_NO + * @arg @ref LL_GPIO_PULL_UP + * @arg @ref LL_GPIO_PULL_DOWN + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->PUPDR, + (GPIO_PUPDR_PUPD0 << (POSITION_VAL(Pin) * 2U))) >> (POSITION_VAL(Pin) * 2U)); +} + +/** + * @brief Configure gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port. + * @note Possible values are from AF0 to AF15 depending on target. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll AFRL AFSELy LL_GPIO_SetAFPin_0_7 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @param Alternate This parameter can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetAFPin_0_7(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Alternate) +{ + MODIFY_REG(GPIOx->AFR[0], (GPIO_AFRL_AFSEL0 << (POSITION_VAL(Pin) * 4U)), + (Alternate << (POSITION_VAL(Pin) * 4U))); +} + +/** + * @brief Return gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port. + * @rmtoll AFRL AFSELy LL_GPIO_GetAFPin_0_7 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + */ +__STATIC_INLINE uint32_t LL_GPIO_GetAFPin_0_7(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->AFR[0], + (GPIO_AFRL_AFSEL0 << (POSITION_VAL(Pin) * 4U))) >> (POSITION_VAL(Pin) * 4U)); +} + +/** + * @brief Configure gpio alternate function of a dedicated pin from 8 to 15 for a dedicated port. + * @note Possible values are from AF0 to AF15 depending on target. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll AFRH AFSELy LL_GPIO_SetAFPin_8_15 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Alternate This parameter can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetAFPin_8_15(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Alternate) +{ + MODIFY_REG(GPIOx->AFR[1], (GPIO_AFRH_AFSEL8 << (POSITION_VAL(Pin >> 8U) * 4U)), + (Alternate << (POSITION_VAL(Pin >> 8U) * 4U))); +} + +/** + * @brief Return gpio alternate function of a dedicated pin from 8 to 15 for a dedicated port. + * @note Possible values are from AF0 to AF15 depending on target. + * @rmtoll AFRH AFSELy LL_GPIO_GetAFPin_8_15 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + */ +__STATIC_INLINE uint32_t LL_GPIO_GetAFPin_8_15(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->AFR[1], + (GPIO_AFRH_AFSEL8 << (POSITION_VAL(Pin >> 8U) * 4U))) >> (POSITION_VAL(Pin >> 8U) * 4U)); +} + + +/** + * @brief Lock configuration of several pins for a dedicated port. + * @note When the lock sequence has been applied on a port bit, the + * value of this port bit can no longer be modified until the + * next reset. + * @note Each lock bit freezes a specific configuration register + * (control and alternate function registers). + * @rmtoll LCKR LCKK LL_GPIO_LockPin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + __IO uint32_t temp; + WRITE_REG(GPIOx->LCKR, GPIO_LCKR_LCKK | PinMask); + WRITE_REG(GPIOx->LCKR, PinMask); + WRITE_REG(GPIOx->LCKR, GPIO_LCKR_LCKK | PinMask); + /* Read LCKR register. This read is mandatory to complete key lock sequence */ + temp = READ_REG(GPIOx->LCKR); + (void) temp; +} + +/** + * @brief Return 1 if all pins passed as parameter, of a dedicated port, are locked. else Return 0. + * @rmtoll LCKR LCKy LL_GPIO_IsPinLocked + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsPinLocked(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + return ((READ_BIT(GPIOx->LCKR, PinMask) == (PinMask)) ? 1UL : 0UL); +} + +/** + * @brief Return 1 if one of the pin of a dedicated port is locked. else return 0. + * @rmtoll LCKR LCKK LL_GPIO_IsAnyPinLocked + * @param GPIOx GPIO Port + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsAnyPinLocked(GPIO_TypeDef *GPIOx) +{ + return ((READ_BIT(GPIOx->LCKR, GPIO_LCKR_LCKK) == (GPIO_LCKR_LCKK)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup GPIO_LL_EF_Data_Access Data Access + * @{ + */ + +/** + * @brief Return full input data register value for a dedicated port. + * @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) +{ + return (uint32_t)(READ_REG(GPIOx->IDR)); +} + +/** + * @brief Return if input data level for several pins of dedicated port is high or low. + * @rmtoll IDR IDy LL_GPIO_IsInputPinSet + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsInputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + return ((READ_BIT(GPIOx->IDR, PinMask) == (PinMask)) ? 1UL : 0UL); +} + +/** + * @brief Write output data register for the port. + * @rmtoll ODR ODy LL_GPIO_WriteOutputPort + * @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) +{ + WRITE_REG(GPIOx->ODR, PortValue); +} + +/** + * @brief Return full output data register value for a dedicated port. + * @rmtoll ODR ODy LL_GPIO_ReadOutputPort + * @param GPIOx GPIO Port + * @retval Output data register value of port + */ +__STATIC_INLINE uint32_t LL_GPIO_ReadOutputPort(GPIO_TypeDef *GPIOx) +{ + return (uint32_t)(READ_REG(GPIOx->ODR)); +} + +/** + * @brief Return if input data level for several pins of dedicated port is high or low. + * @rmtoll ODR ODy LL_GPIO_IsOutputPinSet + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsOutputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + return ((READ_BIT(GPIOx->ODR, PinMask) == (PinMask)) ? 1UL : 0UL); +} + +/** + * @brief Set several pins to high level on dedicated gpio port. + * @rmtoll BSRR BSy LL_GPIO_SetOutputPin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + WRITE_REG(GPIOx->BSRR, PinMask); +} + +/** + * @brief Set several pins to low level on dedicated gpio port. + * @rmtoll BRR BRy LL_GPIO_ResetOutputPin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_ResetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + WRITE_REG(GPIOx->BRR, PinMask); +} + +/** + * @brief Toggle data value for several pin of dedicated port. + * @rmtoll ODR ODy LL_GPIO_TogglePin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @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) +{ + uint32_t odr = READ_REG(GPIOx->ODR); + WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup GPIO_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +ErrorStatus LL_GPIO_DeInit(GPIO_TypeDef *GPIOx); +ErrorStatus LL_GPIO_Init(GPIO_TypeDef *GPIOx, LL_GPIO_InitTypeDef *GPIO_InitStruct); +void LL_GPIO_StructInit(LL_GPIO_InitTypeDef *GPIO_InitStruct); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) */ +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_GPIO_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_lpuart.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_lpuart.h new file mode 100644 index 0000000..0c9a894 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_lpuart.h @@ -0,0 +1,2658 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_lpuart.h + * @author MCD Application Team + * @brief Header file of LPUART LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_LPUART_H +#define STM32G4xx_LL_LPUART_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (LPUART1) + +/** @defgroup LPUART_LL LPUART + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup LPUART_LL_Private_Variables LPUART Private Variables + * @{ + */ +/* Array used to get the LPUART prescaler division decimal values versus @ref LPUART_LL_EC_PRESCALER values */ +static const uint16_t LPUART_PRESCALER_TAB[] = +{ + (uint16_t)1, + (uint16_t)2, + (uint16_t)4, + (uint16_t)6, + (uint16_t)8, + (uint16_t)10, + (uint16_t)12, + (uint16_t)16, + (uint16_t)32, + (uint16_t)64, + (uint16_t)128, + (uint16_t)256 +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup LPUART_LL_Private_Constants LPUART Private Constants + * @{ + */ +/* Defines used in Baud Rate related macros and corresponding register setting computation */ +#define LPUART_LPUARTDIV_FREQ_MUL 256U +#define LPUART_BRR_MASK 0x000FFFFFU +#define LPUART_BRR_MIN_VALUE 0x00000300U +/** + * @} + */ + + +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup LPUART_LL_Private_Macros LPUART Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup LPUART_LL_ES_INIT LPUART Exported Init structures + * @{ + */ + +/** + * @brief LL LPUART Init Structure definition + */ +typedef struct +{ + uint32_t PrescalerValue; /*!< Specifies the Prescaler to compute the communication baud rate. + This parameter can be a value of @ref LPUART_LL_EC_PRESCALER. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetPrescaler().*/ + + uint32_t BaudRate; /*!< This field defines expected LPUART communication baud rate. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetBaudRate().*/ + + uint32_t DataWidth; /*!< Specifies the number of data bits transmitted or received in a frame. + This parameter can be a value of @ref LPUART_LL_EC_DATAWIDTH. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetDataWidth().*/ + + uint32_t StopBits; /*!< Specifies the number of stop bits transmitted. + This parameter can be a value of @ref LPUART_LL_EC_STOPBITS. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetStopBitsLength().*/ + + uint32_t Parity; /*!< Specifies the parity mode. + This parameter can be a value of @ref LPUART_LL_EC_PARITY. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetParity().*/ + + uint32_t TransferDirection; /*!< Specifies whether the Receive and/or Transmit mode is enabled or disabled. + This parameter can be a value of @ref LPUART_LL_EC_DIRECTION. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetTransferDirection().*/ + + uint32_t HardwareFlowControl; /*!< Specifies whether the hardware flow control mode is enabled or disabled. + This parameter can be a value of @ref LPUART_LL_EC_HWCONTROL. + + This feature can be modified afterwards using unitary + function @ref LL_LPUART_SetHWFlowCtrl().*/ + +} LL_LPUART_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup LPUART_LL_Exported_Constants LPUART Exported Constants + * @{ + */ + +/** @defgroup LPUART_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_LPUART_WriteReg function + * @{ + */ +#define LL_LPUART_ICR_PECF USART_ICR_PECF /*!< Parity error clear flag */ +#define LL_LPUART_ICR_FECF USART_ICR_FECF /*!< Framing error clear flag */ +#define LL_LPUART_ICR_NCF USART_ICR_NECF /*!< Noise error detected clear flag */ +#define LL_LPUART_ICR_ORECF USART_ICR_ORECF /*!< Overrun error clear flag */ +#define LL_LPUART_ICR_IDLECF USART_ICR_IDLECF /*!< Idle line detected clear flag */ +#define LL_LPUART_ICR_TCCF USART_ICR_TCCF /*!< Transmission complete clear flag */ +#define LL_LPUART_ICR_CTSCF USART_ICR_CTSCF /*!< CTS clear flag */ +#define LL_LPUART_ICR_CMCF USART_ICR_CMCF /*!< Character match clear flag */ +#define LL_LPUART_ICR_WUCF USART_ICR_WUCF /*!< Wakeup from Stop mode clear flag */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_LPUART_ReadReg function + * @{ + */ +#define LL_LPUART_ISR_PE USART_ISR_PE /*!< Parity error flag */ +#define LL_LPUART_ISR_FE USART_ISR_FE /*!< Framing error flag */ +#define LL_LPUART_ISR_NE USART_ISR_NE /*!< Noise detected flag */ +#define LL_LPUART_ISR_ORE USART_ISR_ORE /*!< Overrun error flag */ +#define LL_LPUART_ISR_IDLE USART_ISR_IDLE /*!< Idle line detected flag */ +#define LL_LPUART_ISR_RXNE_RXFNE USART_ISR_RXNE_RXFNE /*!< Read data register or RX FIFO not empty flag */ +#define LL_LPUART_ISR_TC USART_ISR_TC /*!< Transmission complete flag */ +#define LL_LPUART_ISR_TXE_TXFNF USART_ISR_TXE_TXFNF /*!< Transmit data register empty or TX FIFO Not Full flag*/ +#define LL_LPUART_ISR_CTSIF USART_ISR_CTSIF /*!< CTS interrupt flag */ +#define LL_LPUART_ISR_CTS USART_ISR_CTS /*!< CTS flag */ +#define LL_LPUART_ISR_BUSY USART_ISR_BUSY /*!< Busy flag */ +#define LL_LPUART_ISR_CMF USART_ISR_CMF /*!< Character match flag */ +#define LL_LPUART_ISR_SBKF USART_ISR_SBKF /*!< Send break flag */ +#define LL_LPUART_ISR_RWU USART_ISR_RWU /*!< Receiver wakeup from Mute mode flag */ +#define LL_LPUART_ISR_WUF USART_ISR_WUF /*!< Wakeup from Stop mode flag */ +#define LL_LPUART_ISR_TEACK USART_ISR_TEACK /*!< Transmit enable acknowledge flag */ +#define LL_LPUART_ISR_REACK USART_ISR_REACK /*!< Receive enable acknowledge flag */ +#define LL_LPUART_ISR_TXFE USART_ISR_TXFE /*!< TX FIFO empty flag */ +#define LL_LPUART_ISR_RXFF USART_ISR_RXFF /*!< RX FIFO full flag */ +#define LL_LPUART_ISR_RXFT USART_ISR_RXFT /*!< RX FIFO threshold flag */ +#define LL_LPUART_ISR_TXFT USART_ISR_TXFT /*!< TX FIFO threshold flag */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_LPUART_ReadReg and LL_LPUART_WriteReg functions + * @{ + */ +#define LL_LPUART_CR1_IDLEIE USART_CR1_IDLEIE /*!< IDLE interrupt enable */ +#define LL_LPUART_CR1_RXNEIE_RXFNEIE USART_CR1_RXNEIE_RXFNEIE /*!< Read data register and RXFIFO not empty + interrupt enable */ +#define LL_LPUART_CR1_TCIE USART_CR1_TCIE /*!< Transmission complete interrupt enable */ +#define LL_LPUART_CR1_TXEIE_TXFNFIE USART_CR1_TXEIE_TXFNFIE /*!< Transmit data register empty and TX FIFO + not full interrupt enable */ +#define LL_LPUART_CR1_PEIE USART_CR1_PEIE /*!< Parity error */ +#define LL_LPUART_CR1_CMIE USART_CR1_CMIE /*!< Character match interrupt enable */ +#define LL_LPUART_CR1_TXFEIE USART_CR1_TXFEIE /*!< TX FIFO empty interrupt enable */ +#define LL_LPUART_CR1_RXFFIE USART_CR1_RXFFIE /*!< RX FIFO full interrupt enable */ +#define LL_LPUART_CR3_EIE USART_CR3_EIE /*!< Error interrupt enable */ +#define LL_LPUART_CR3_CTSIE USART_CR3_CTSIE /*!< CTS interrupt enable */ +#define LL_LPUART_CR3_WUFIE USART_CR3_WUFIE /*!< Wakeup from Stop mode interrupt enable */ +#define LL_LPUART_CR3_TXFTIE USART_CR3_TXFTIE /*!< TX FIFO threshold interrupt enable */ +#define LL_LPUART_CR3_RXFTIE USART_CR3_RXFTIE /*!< RX FIFO threshold interrupt enable */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_FIFOTHRESHOLD FIFO Threshold + * @{ + */ +#define LL_LPUART_FIFOTHRESHOLD_1_8 0x00000000U /*!< FIFO reaches 1/8 of its depth */ +#define LL_LPUART_FIFOTHRESHOLD_1_4 0x00000001U /*!< FIFO reaches 1/4 of its depth */ +#define LL_LPUART_FIFOTHRESHOLD_1_2 0x00000002U /*!< FIFO reaches 1/2 of its depth */ +#define LL_LPUART_FIFOTHRESHOLD_3_4 0x00000003U /*!< FIFO reaches 3/4 of its depth */ +#define LL_LPUART_FIFOTHRESHOLD_7_8 0x00000004U /*!< FIFO reaches 7/8 of its depth */ +#define LL_LPUART_FIFOTHRESHOLD_8_8 0x00000005U /*!< FIFO becomes empty for TX and full for RX */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_DIRECTION Direction + * @{ + */ +#define LL_LPUART_DIRECTION_NONE 0x00000000U /*!< Transmitter and Receiver are disabled */ +#define LL_LPUART_DIRECTION_RX USART_CR1_RE /*!< Transmitter is disabled and Receiver is enabled */ +#define LL_LPUART_DIRECTION_TX USART_CR1_TE /*!< Transmitter is enabled and Receiver is disabled */ +#define LL_LPUART_DIRECTION_TX_RX (USART_CR1_TE |USART_CR1_RE) /*!< Transmitter and Receiver are enabled */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_PARITY Parity Control + * @{ + */ +#define LL_LPUART_PARITY_NONE 0x00000000U /*!< Parity control disabled */ +#define LL_LPUART_PARITY_EVEN USART_CR1_PCE /*!< Parity control enabled and Even Parity is selected */ +#define LL_LPUART_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) /*!< Parity control enabled and Odd Parity is selected */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_WAKEUP Wakeup + * @{ + */ +#define LL_LPUART_WAKEUP_IDLELINE 0x00000000U /*!< LPUART wake up from Mute mode on Idle Line */ +#define LL_LPUART_WAKEUP_ADDRESSMARK USART_CR1_WAKE /*!< LPUART wake up from Mute mode on Address Mark */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_DATAWIDTH Datawidth + * @{ + */ +#define LL_LPUART_DATAWIDTH_7B USART_CR1_M1 /*!< 7 bits word length : Start bit, 7 data bits, n stop bits */ +#define LL_LPUART_DATAWIDTH_8B 0x00000000U /*!< 8 bits word length : Start bit, 8 data bits, n stop bits */ +#define LL_LPUART_DATAWIDTH_9B USART_CR1_M0 /*!< 9 bits word length : Start bit, 9 data bits, n stop bits */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_PRESCALER Clock Source Prescaler + * @{ + */ +#define LL_LPUART_PRESCALER_DIV1 0x00000000U /*!< Input clock not divided */ +#define LL_LPUART_PRESCALER_DIV2 (USART_PRESC_PRESCALER_0) /*!< Input clock divided by 2 */ +#define LL_LPUART_PRESCALER_DIV4 (USART_PRESC_PRESCALER_1) /*!< Input clock divided by 4 */ +#define LL_LPUART_PRESCALER_DIV6 (USART_PRESC_PRESCALER_1 |\ + USART_PRESC_PRESCALER_0) /*!< Input clock divided by 6 */ +#define LL_LPUART_PRESCALER_DIV8 (USART_PRESC_PRESCALER_2) /*!< Input clock divided by 8 */ +#define LL_LPUART_PRESCALER_DIV10 (USART_PRESC_PRESCALER_2 |\ + USART_PRESC_PRESCALER_0) /*!< Input clock divided by 10 */ +#define LL_LPUART_PRESCALER_DIV12 (USART_PRESC_PRESCALER_2 |\ + USART_PRESC_PRESCALER_1) /*!< Input clock divided by 12 */ +#define LL_LPUART_PRESCALER_DIV16 (USART_PRESC_PRESCALER_2 |\ + USART_PRESC_PRESCALER_1 |\ + USART_PRESC_PRESCALER_0) /*!< Input clock divided by 16 */ +#define LL_LPUART_PRESCALER_DIV32 (USART_PRESC_PRESCALER_3) /*!< Input clock divided by 32 */ +#define LL_LPUART_PRESCALER_DIV64 (USART_PRESC_PRESCALER_3 |\ + USART_PRESC_PRESCALER_0) /*!< Input clock divided by 64 */ +#define LL_LPUART_PRESCALER_DIV128 (USART_PRESC_PRESCALER_3 |\ + USART_PRESC_PRESCALER_1) /*!< Input clock divided by 128 */ +#define LL_LPUART_PRESCALER_DIV256 (USART_PRESC_PRESCALER_3 |\ + USART_PRESC_PRESCALER_1 |\ + USART_PRESC_PRESCALER_0) /*!< Input clock divided by 256 */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_STOPBITS Stop Bits + * @{ + */ +#define LL_LPUART_STOPBITS_1 0x00000000U /*!< 1 stop bit */ +#define LL_LPUART_STOPBITS_2 USART_CR2_STOP_1 /*!< 2 stop bits */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_TXRX TX RX Pins Swap + * @{ + */ +#define LL_LPUART_TXRX_STANDARD 0x00000000U /*!< TX/RX pins are used as defined in standard pinout */ +#define LL_LPUART_TXRX_SWAPPED (USART_CR2_SWAP) /*!< TX and RX pins functions are swapped. */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_RXPIN_LEVEL RX Pin Active Level Inversion + * @{ + */ +#define LL_LPUART_RXPIN_LEVEL_STANDARD 0x00000000U /*!< RX pin signal works using the standard logic levels */ +#define LL_LPUART_RXPIN_LEVEL_INVERTED (USART_CR2_RXINV) /*!< RX pin signal values are inverted. */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_TXPIN_LEVEL TX Pin Active Level Inversion + * @{ + */ +#define LL_LPUART_TXPIN_LEVEL_STANDARD 0x00000000U /*!< TX pin signal works using the standard logic levels */ +#define LL_LPUART_TXPIN_LEVEL_INVERTED (USART_CR2_TXINV) /*!< TX pin signal values are inverted. */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_BINARY_LOGIC Binary Data Inversion + * @{ + */ +#define LL_LPUART_BINARY_LOGIC_POSITIVE 0x00000000U /*!< Logical data from the data register are send/received + in positive/direct logic. (1=H, 0=L) */ +#define LL_LPUART_BINARY_LOGIC_NEGATIVE USART_CR2_DATAINV /*!< Logical data from the data register are send/received + in negative/inverse logic. (1=L, 0=H). + The parity bit is also inverted. */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_BITORDER Bit Order + * @{ + */ +#define LL_LPUART_BITORDER_LSBFIRST 0x00000000U /*!< data is transmitted/received with data bit 0 first, + following the start bit */ +#define LL_LPUART_BITORDER_MSBFIRST USART_CR2_MSBFIRST /*!< data is transmitted/received with the MSB first, + following the start bit */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_ADDRESS_DETECT Address Length Detection + * @{ + */ +#define LL_LPUART_ADDRESS_DETECT_4B 0x00000000U /*!< 4-bit address detection method selected */ +#define LL_LPUART_ADDRESS_DETECT_7B USART_CR2_ADDM7 /*!< 7-bit address detection (in 8-bit data mode) method selected */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_HWCONTROL Hardware Control + * @{ + */ +#define LL_LPUART_HWCONTROL_NONE 0x00000000U /*!< CTS and RTS hardware flow control disabled */ +#define LL_LPUART_HWCONTROL_RTS USART_CR3_RTSE /*!< RTS output enabled, data is only requested + when there is space in the receive buffer */ +#define LL_LPUART_HWCONTROL_CTS USART_CR3_CTSE /*!< CTS mode enabled, data is only transmitted + when the nCTS input is asserted (tied to 0)*/ +#define LL_LPUART_HWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) /*!< CTS and RTS hardware flow control enabled */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_WAKEUP_ON Wakeup Activation + * @{ + */ +#define LL_LPUART_WAKEUP_ON_ADDRESS 0x00000000U /*!< Wake up active on address match */ +#define LL_LPUART_WAKEUP_ON_STARTBIT USART_CR3_WUS_1 /*!< Wake up active on Start bit detection */ +#define LL_LPUART_WAKEUP_ON_RXNE (USART_CR3_WUS_0 | USART_CR3_WUS_1) /*!< Wake up active on RXNE */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_DE_POLARITY Driver Enable Polarity + * @{ + */ +#define LL_LPUART_DE_POLARITY_HIGH 0x00000000U /*!< DE signal is active high */ +#define LL_LPUART_DE_POLARITY_LOW USART_CR3_DEP /*!< DE signal is active low */ +/** + * @} + */ + +/** @defgroup LPUART_LL_EC_DMA_REG_DATA DMA Register Data + * @{ + */ +#define LL_LPUART_DMA_REG_DATA_TRANSMIT 0x00000000U /*!< Get address of data register used for transmission */ +#define LL_LPUART_DMA_REG_DATA_RECEIVE 0x00000001U /*!< Get address of data register used for reception */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup LPUART_LL_Exported_Macros LPUART Exported Macros + * @{ + */ + +/** @defgroup LPUART_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in LPUART register + * @param __INSTANCE__ LPUART Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_LPUART_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in LPUART register + * @param __INSTANCE__ LPUART Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_LPUART_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup LPUART_LL_EM_Exported_Macros_Helper Helper Macros + * @{ + */ + +/** + * @brief Compute LPUARTDIV value according to Peripheral Clock and + * expected Baud Rate (20-bit value of LPUARTDIV is returned) + * @param __PERIPHCLK__ Peripheral Clock frequency used for LPUART Instance + * @param __PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_LPUART_PRESCALER_DIV1 + * @arg @ref LL_LPUART_PRESCALER_DIV2 + * @arg @ref LL_LPUART_PRESCALER_DIV4 + * @arg @ref LL_LPUART_PRESCALER_DIV6 + * @arg @ref LL_LPUART_PRESCALER_DIV8 + * @arg @ref LL_LPUART_PRESCALER_DIV10 + * @arg @ref LL_LPUART_PRESCALER_DIV12 + * @arg @ref LL_LPUART_PRESCALER_DIV16 + * @arg @ref LL_LPUART_PRESCALER_DIV32 + * @arg @ref LL_LPUART_PRESCALER_DIV64 + * @arg @ref LL_LPUART_PRESCALER_DIV128 + * @arg @ref LL_LPUART_PRESCALER_DIV256 + * @param __BAUDRATE__ Baud Rate value to achieve + * @retval LPUARTDIV value to be used for BRR register filling + */ +#define __LL_LPUART_DIV(__PERIPHCLK__, __PRESCALER__, __BAUDRATE__) (uint32_t)\ + ((((((uint64_t)(__PERIPHCLK__)/(uint64_t)(LPUART_PRESCALER_TAB[(uint16_t)(__PRESCALER__)]))\ + * LPUART_LPUARTDIV_FREQ_MUL) + (uint32_t)((__BAUDRATE__)/2U))/(__BAUDRATE__)) & LPUART_BRR_MASK) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup LPUART_LL_Exported_Functions LPUART Exported Functions + * @{ + */ + +/** @defgroup LPUART_LL_EF_Configuration Configuration functions + * @{ + */ + +/** + * @brief LPUART Enable + * @rmtoll CR1 UE LL_LPUART_Enable + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_Enable(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR1, USART_CR1_UE); +} + +/** + * @brief LPUART Disable + * @note When LPUART is disabled, LPUART prescalers and outputs are stopped immediately, + * and current operations are discarded. The configuration of the LPUART is kept, but all the status + * flags, in the LPUARTx_ISR are set to their default values. + * @note In order to go into low-power mode without generating errors on the line, + * the TE bit must be reset before and the software must wait + * for the TC bit in the LPUART_ISR to be set before resetting the UE bit. + * The DMA requests are also reset when UE = 0 so the DMA channel must + * be disabled before resetting the UE bit. + * @rmtoll CR1 UE LL_LPUART_Disable + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_Disable(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR1, USART_CR1_UE); +} + +/** + * @brief Indicate if LPUART is enabled + * @rmtoll CR1 UE LL_LPUART_IsEnabled + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabled(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_UE) == (USART_CR1_UE)) ? 1UL : 0UL); +} + +/** + * @brief FIFO Mode Enable + * @rmtoll CR1 FIFOEN LL_LPUART_EnableFIFO + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableFIFO(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR1, USART_CR1_FIFOEN); +} + +/** + * @brief FIFO Mode Disable + * @rmtoll CR1 FIFOEN LL_LPUART_DisableFIFO + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableFIFO(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR1, USART_CR1_FIFOEN); +} + +/** + * @brief Indicate if FIFO Mode is enabled + * @rmtoll CR1 FIFOEN LL_LPUART_IsEnabledFIFO + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledFIFO(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_FIFOEN) == (USART_CR1_FIFOEN)) ? 1UL : 0UL); +} + +/** + * @brief Configure TX FIFO Threshold + * @rmtoll CR3 TXFTCFG LL_LPUART_SetTXFIFOThreshold + * @param LPUARTx LPUART Instance + * @param Threshold This parameter can be one of the following values: + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_8_8 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetTXFIFOThreshold(USART_TypeDef *LPUARTx, uint32_t Threshold) +{ + ATOMIC_MODIFY_REG(LPUARTx->CR3, USART_CR3_TXFTCFG, Threshold << USART_CR3_TXFTCFG_Pos); +} + +/** + * @brief Return TX FIFO Threshold Configuration + * @rmtoll CR3 TXFTCFG LL_LPUART_GetTXFIFOThreshold + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_8_8 + */ +__STATIC_INLINE uint32_t LL_LPUART_GetTXFIFOThreshold(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos); +} + +/** + * @brief Configure RX FIFO Threshold + * @rmtoll CR3 RXFTCFG LL_LPUART_SetRXFIFOThreshold + * @param LPUARTx LPUART Instance + * @param Threshold This parameter can be one of the following values: + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_8_8 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetRXFIFOThreshold(USART_TypeDef *LPUARTx, uint32_t Threshold) +{ + ATOMIC_MODIFY_REG(LPUARTx->CR3, USART_CR3_RXFTCFG, Threshold << USART_CR3_RXFTCFG_Pos); +} + +/** + * @brief Return RX FIFO Threshold Configuration + * @rmtoll CR3 RXFTCFG LL_LPUART_GetRXFIFOThreshold + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_8_8 + */ +__STATIC_INLINE uint32_t LL_LPUART_GetRXFIFOThreshold(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos); +} + +/** + * @brief Configure TX and RX FIFOs Threshold + * @rmtoll CR3 TXFTCFG LL_LPUART_ConfigFIFOsThreshold\n + * CR3 RXFTCFG LL_LPUART_ConfigFIFOsThreshold + * @param LPUARTx LPUART Instance + * @param TXThreshold This parameter can be one of the following values: + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_8_8 + * @param RXThreshold This parameter can be one of the following values: + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_LPUART_FIFOTHRESHOLD_8_8 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ConfigFIFOsThreshold(USART_TypeDef *LPUARTx, uint32_t TXThreshold, uint32_t RXThreshold) +{ + ATOMIC_MODIFY_REG(LPUARTx->CR3, USART_CR3_TXFTCFG | USART_CR3_RXFTCFG, (TXThreshold << USART_CR3_TXFTCFG_Pos) | \ + (RXThreshold << USART_CR3_RXFTCFG_Pos)); +} + +/** + * @brief LPUART enabled in STOP Mode + * @note When this function is enabled, LPUART is able to wake up the MCU from Stop mode, provided that + * LPUART clock selection is HSI or LSE in RCC. + * @rmtoll CR1 UESM LL_LPUART_EnableInStopMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableInStopMode(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_UESM); +} + +/** + * @brief LPUART disabled in STOP Mode + * @note When this function is disabled, LPUART is not able to wake up the MCU from Stop mode + * @rmtoll CR1 UESM LL_LPUART_DisableInStopMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableInStopMode(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_UESM); +} + +/** + * @brief Indicate if LPUART is enabled in STOP Mode + * (able to wake up MCU from Stop mode or not) + * @rmtoll CR1 UESM LL_LPUART_IsEnabledInStopMode + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledInStopMode(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_UESM) == (USART_CR1_UESM)) ? 1UL : 0UL); +} + +/** + * @brief Receiver Enable (Receiver is enabled and begins searching for a start bit) + * @rmtoll CR1 RE LL_LPUART_EnableDirectionRx + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDirectionRx(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_RE); +} + +/** + * @brief Receiver Disable + * @rmtoll CR1 RE LL_LPUART_DisableDirectionRx + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableDirectionRx(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_RE); +} + +/** + * @brief Transmitter Enable + * @rmtoll CR1 TE LL_LPUART_EnableDirectionTx + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDirectionTx(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_TE); +} + +/** + * @brief Transmitter Disable + * @rmtoll CR1 TE LL_LPUART_DisableDirectionTx + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableDirectionTx(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_TE); +} + +/** + * @brief Configure simultaneously enabled/disabled states + * of Transmitter and Receiver + * @rmtoll CR1 RE LL_LPUART_SetTransferDirection\n + * CR1 TE LL_LPUART_SetTransferDirection + * @param LPUARTx LPUART Instance + * @param TransferDirection This parameter can be one of the following values: + * @arg @ref LL_LPUART_DIRECTION_NONE + * @arg @ref LL_LPUART_DIRECTION_RX + * @arg @ref LL_LPUART_DIRECTION_TX + * @arg @ref LL_LPUART_DIRECTION_TX_RX + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetTransferDirection(USART_TypeDef *LPUARTx, uint32_t TransferDirection) +{ + ATOMIC_MODIFY_REG(LPUARTx->CR1, USART_CR1_RE | USART_CR1_TE, TransferDirection); +} + +/** + * @brief Return enabled/disabled states of Transmitter and Receiver + * @rmtoll CR1 RE LL_LPUART_GetTransferDirection\n + * CR1 TE LL_LPUART_GetTransferDirection + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_DIRECTION_NONE + * @arg @ref LL_LPUART_DIRECTION_RX + * @arg @ref LL_LPUART_DIRECTION_TX + * @arg @ref LL_LPUART_DIRECTION_TX_RX + */ +__STATIC_INLINE uint32_t LL_LPUART_GetTransferDirection(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR1, USART_CR1_RE | USART_CR1_TE)); +} + +/** + * @brief Configure Parity (enabled/disabled and parity mode if enabled) + * @note This function selects if hardware parity control (generation and detection) is enabled or disabled. + * When the parity control is enabled (Odd or Even), computed parity bit is inserted at the MSB position + * (depending on data width) and parity is checked on the received data. + * @rmtoll CR1 PS LL_LPUART_SetParity\n + * CR1 PCE LL_LPUART_SetParity + * @param LPUARTx LPUART Instance + * @param Parity This parameter can be one of the following values: + * @arg @ref LL_LPUART_PARITY_NONE + * @arg @ref LL_LPUART_PARITY_EVEN + * @arg @ref LL_LPUART_PARITY_ODD + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetParity(USART_TypeDef *LPUARTx, uint32_t Parity) +{ + MODIFY_REG(LPUARTx->CR1, USART_CR1_PS | USART_CR1_PCE, Parity); +} + +/** + * @brief Return Parity configuration (enabled/disabled and parity mode if enabled) + * @rmtoll CR1 PS LL_LPUART_GetParity\n + * CR1 PCE LL_LPUART_GetParity + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_PARITY_NONE + * @arg @ref LL_LPUART_PARITY_EVEN + * @arg @ref LL_LPUART_PARITY_ODD + */ +__STATIC_INLINE uint32_t LL_LPUART_GetParity(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR1, USART_CR1_PS | USART_CR1_PCE)); +} + +/** + * @brief Set Receiver Wake Up method from Mute mode. + * @rmtoll CR1 WAKE LL_LPUART_SetWakeUpMethod + * @param LPUARTx LPUART Instance + * @param Method This parameter can be one of the following values: + * @arg @ref LL_LPUART_WAKEUP_IDLELINE + * @arg @ref LL_LPUART_WAKEUP_ADDRESSMARK + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetWakeUpMethod(USART_TypeDef *LPUARTx, uint32_t Method) +{ + MODIFY_REG(LPUARTx->CR1, USART_CR1_WAKE, Method); +} + +/** + * @brief Return Receiver Wake Up method from Mute mode + * @rmtoll CR1 WAKE LL_LPUART_GetWakeUpMethod + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_WAKEUP_IDLELINE + * @arg @ref LL_LPUART_WAKEUP_ADDRESSMARK + */ +__STATIC_INLINE uint32_t LL_LPUART_GetWakeUpMethod(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR1, USART_CR1_WAKE)); +} + +/** + * @brief Set Word length (nb of data bits, excluding start and stop bits) + * @rmtoll CR1 M LL_LPUART_SetDataWidth + * @param LPUARTx LPUART Instance + * @param DataWidth This parameter can be one of the following values: + * @arg @ref LL_LPUART_DATAWIDTH_7B + * @arg @ref LL_LPUART_DATAWIDTH_8B + * @arg @ref LL_LPUART_DATAWIDTH_9B + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetDataWidth(USART_TypeDef *LPUARTx, uint32_t DataWidth) +{ + MODIFY_REG(LPUARTx->CR1, USART_CR1_M, DataWidth); +} + +/** + * @brief Return Word length (i.e. nb of data bits, excluding start and stop bits) + * @rmtoll CR1 M LL_LPUART_GetDataWidth + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_DATAWIDTH_7B + * @arg @ref LL_LPUART_DATAWIDTH_8B + * @arg @ref LL_LPUART_DATAWIDTH_9B + */ +__STATIC_INLINE uint32_t LL_LPUART_GetDataWidth(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR1, USART_CR1_M)); +} + +/** + * @brief Allow switch between Mute Mode and Active mode + * @rmtoll CR1 MME LL_LPUART_EnableMuteMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableMuteMode(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_MME); +} + +/** + * @brief Prevent Mute Mode use. Set Receiver in active mode permanently. + * @rmtoll CR1 MME LL_LPUART_DisableMuteMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableMuteMode(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_MME); +} + +/** + * @brief Indicate if switch between Mute Mode and Active mode is allowed + * @rmtoll CR1 MME LL_LPUART_IsEnabledMuteMode + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledMuteMode(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_MME) == (USART_CR1_MME)) ? 1UL : 0UL); +} + +/** + * @brief Configure Clock source prescaler for baudrate generator and oversampling + * @rmtoll PRESC PRESCALER LL_LPUART_SetPrescaler + * @param LPUARTx LPUART Instance + * @param PrescalerValue This parameter can be one of the following values: + * @arg @ref LL_LPUART_PRESCALER_DIV1 + * @arg @ref LL_LPUART_PRESCALER_DIV2 + * @arg @ref LL_LPUART_PRESCALER_DIV4 + * @arg @ref LL_LPUART_PRESCALER_DIV6 + * @arg @ref LL_LPUART_PRESCALER_DIV8 + * @arg @ref LL_LPUART_PRESCALER_DIV10 + * @arg @ref LL_LPUART_PRESCALER_DIV12 + * @arg @ref LL_LPUART_PRESCALER_DIV16 + * @arg @ref LL_LPUART_PRESCALER_DIV32 + * @arg @ref LL_LPUART_PRESCALER_DIV64 + * @arg @ref LL_LPUART_PRESCALER_DIV128 + * @arg @ref LL_LPUART_PRESCALER_DIV256 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetPrescaler(USART_TypeDef *LPUARTx, uint32_t PrescalerValue) +{ + MODIFY_REG(LPUARTx->PRESC, USART_PRESC_PRESCALER, (uint16_t)PrescalerValue); +} + +/** + * @brief Retrieve the Clock source prescaler for baudrate generator and oversampling + * @rmtoll PRESC PRESCALER LL_LPUART_GetPrescaler + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_PRESCALER_DIV1 + * @arg @ref LL_LPUART_PRESCALER_DIV2 + * @arg @ref LL_LPUART_PRESCALER_DIV4 + * @arg @ref LL_LPUART_PRESCALER_DIV6 + * @arg @ref LL_LPUART_PRESCALER_DIV8 + * @arg @ref LL_LPUART_PRESCALER_DIV10 + * @arg @ref LL_LPUART_PRESCALER_DIV12 + * @arg @ref LL_LPUART_PRESCALER_DIV16 + * @arg @ref LL_LPUART_PRESCALER_DIV32 + * @arg @ref LL_LPUART_PRESCALER_DIV64 + * @arg @ref LL_LPUART_PRESCALER_DIV128 + * @arg @ref LL_LPUART_PRESCALER_DIV256 + */ +__STATIC_INLINE uint32_t LL_LPUART_GetPrescaler(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->PRESC, USART_PRESC_PRESCALER)); +} + +/** + * @brief Set the length of the stop bits + * @rmtoll CR2 STOP LL_LPUART_SetStopBitsLength + * @param LPUARTx LPUART Instance + * @param StopBits This parameter can be one of the following values: + * @arg @ref LL_LPUART_STOPBITS_1 + * @arg @ref LL_LPUART_STOPBITS_2 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetStopBitsLength(USART_TypeDef *LPUARTx, uint32_t StopBits) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_STOP, StopBits); +} + +/** + * @brief Retrieve the length of the stop bits + * @rmtoll CR2 STOP LL_LPUART_GetStopBitsLength + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_STOPBITS_1 + * @arg @ref LL_LPUART_STOPBITS_2 + */ +__STATIC_INLINE uint32_t LL_LPUART_GetStopBitsLength(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_STOP)); +} + +/** + * @brief Configure Character frame format (Datawidth, Parity control, Stop Bits) + * @note Call of this function is equivalent to following function call sequence : + * - Data Width configuration using @ref LL_LPUART_SetDataWidth() function + * - Parity Control and mode configuration using @ref LL_LPUART_SetParity() function + * - Stop bits configuration using @ref LL_LPUART_SetStopBitsLength() function + * @rmtoll CR1 PS LL_LPUART_ConfigCharacter\n + * CR1 PCE LL_LPUART_ConfigCharacter\n + * CR1 M LL_LPUART_ConfigCharacter\n + * CR2 STOP LL_LPUART_ConfigCharacter + * @param LPUARTx LPUART Instance + * @param DataWidth This parameter can be one of the following values: + * @arg @ref LL_LPUART_DATAWIDTH_7B + * @arg @ref LL_LPUART_DATAWIDTH_8B + * @arg @ref LL_LPUART_DATAWIDTH_9B + * @param Parity This parameter can be one of the following values: + * @arg @ref LL_LPUART_PARITY_NONE + * @arg @ref LL_LPUART_PARITY_EVEN + * @arg @ref LL_LPUART_PARITY_ODD + * @param StopBits This parameter can be one of the following values: + * @arg @ref LL_LPUART_STOPBITS_1 + * @arg @ref LL_LPUART_STOPBITS_2 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ConfigCharacter(USART_TypeDef *LPUARTx, uint32_t DataWidth, uint32_t Parity, + uint32_t StopBits) +{ + MODIFY_REG(LPUARTx->CR1, USART_CR1_PS | USART_CR1_PCE | USART_CR1_M, Parity | DataWidth); + MODIFY_REG(LPUARTx->CR2, USART_CR2_STOP, StopBits); +} + +/** + * @brief Configure TX/RX pins swapping setting. + * @rmtoll CR2 SWAP LL_LPUART_SetTXRXSwap + * @param LPUARTx LPUART Instance + * @param SwapConfig This parameter can be one of the following values: + * @arg @ref LL_LPUART_TXRX_STANDARD + * @arg @ref LL_LPUART_TXRX_SWAPPED + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetTXRXSwap(USART_TypeDef *LPUARTx, uint32_t SwapConfig) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_SWAP, SwapConfig); +} + +/** + * @brief Retrieve TX/RX pins swapping configuration. + * @rmtoll CR2 SWAP LL_LPUART_GetTXRXSwap + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_TXRX_STANDARD + * @arg @ref LL_LPUART_TXRX_SWAPPED + */ +__STATIC_INLINE uint32_t LL_LPUART_GetTXRXSwap(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_SWAP)); +} + +/** + * @brief Configure RX pin active level logic + * @rmtoll CR2 RXINV LL_LPUART_SetRXPinLevel + * @param LPUARTx LPUART Instance + * @param PinInvMethod This parameter can be one of the following values: + * @arg @ref LL_LPUART_RXPIN_LEVEL_STANDARD + * @arg @ref LL_LPUART_RXPIN_LEVEL_INVERTED + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetRXPinLevel(USART_TypeDef *LPUARTx, uint32_t PinInvMethod) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_RXINV, PinInvMethod); +} + +/** + * @brief Retrieve RX pin active level logic configuration + * @rmtoll CR2 RXINV LL_LPUART_GetRXPinLevel + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_RXPIN_LEVEL_STANDARD + * @arg @ref LL_LPUART_RXPIN_LEVEL_INVERTED + */ +__STATIC_INLINE uint32_t LL_LPUART_GetRXPinLevel(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_RXINV)); +} + +/** + * @brief Configure TX pin active level logic + * @rmtoll CR2 TXINV LL_LPUART_SetTXPinLevel + * @param LPUARTx LPUART Instance + * @param PinInvMethod This parameter can be one of the following values: + * @arg @ref LL_LPUART_TXPIN_LEVEL_STANDARD + * @arg @ref LL_LPUART_TXPIN_LEVEL_INVERTED + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetTXPinLevel(USART_TypeDef *LPUARTx, uint32_t PinInvMethod) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_TXINV, PinInvMethod); +} + +/** + * @brief Retrieve TX pin active level logic configuration + * @rmtoll CR2 TXINV LL_LPUART_GetTXPinLevel + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_TXPIN_LEVEL_STANDARD + * @arg @ref LL_LPUART_TXPIN_LEVEL_INVERTED + */ +__STATIC_INLINE uint32_t LL_LPUART_GetTXPinLevel(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_TXINV)); +} + +/** + * @brief Configure Binary data logic. + * + * @note Allow to define how Logical data from the data register are send/received : + * either in positive/direct logic (1=H, 0=L) or in negative/inverse logic (1=L, 0=H) + * @rmtoll CR2 DATAINV LL_LPUART_SetBinaryDataLogic + * @param LPUARTx LPUART Instance + * @param DataLogic This parameter can be one of the following values: + * @arg @ref LL_LPUART_BINARY_LOGIC_POSITIVE + * @arg @ref LL_LPUART_BINARY_LOGIC_NEGATIVE + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetBinaryDataLogic(USART_TypeDef *LPUARTx, uint32_t DataLogic) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_DATAINV, DataLogic); +} + +/** + * @brief Retrieve Binary data configuration + * @rmtoll CR2 DATAINV LL_LPUART_GetBinaryDataLogic + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_BINARY_LOGIC_POSITIVE + * @arg @ref LL_LPUART_BINARY_LOGIC_NEGATIVE + */ +__STATIC_INLINE uint32_t LL_LPUART_GetBinaryDataLogic(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_DATAINV)); +} + +/** + * @brief Configure transfer bit order (either Less or Most Significant Bit First) + * @note MSB First means data is transmitted/received with the MSB first, following the start bit. + * LSB First means data is transmitted/received with data bit 0 first, following the start bit. + * @rmtoll CR2 MSBFIRST LL_LPUART_SetTransferBitOrder + * @param LPUARTx LPUART Instance + * @param BitOrder This parameter can be one of the following values: + * @arg @ref LL_LPUART_BITORDER_LSBFIRST + * @arg @ref LL_LPUART_BITORDER_MSBFIRST + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetTransferBitOrder(USART_TypeDef *LPUARTx, uint32_t BitOrder) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_MSBFIRST, BitOrder); +} + +/** + * @brief Return transfer bit order (either Less or Most Significant Bit First) + * @note MSB First means data is transmitted/received with the MSB first, following the start bit. + * LSB First means data is transmitted/received with data bit 0 first, following the start bit. + * @rmtoll CR2 MSBFIRST LL_LPUART_GetTransferBitOrder + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_BITORDER_LSBFIRST + * @arg @ref LL_LPUART_BITORDER_MSBFIRST + */ +__STATIC_INLINE uint32_t LL_LPUART_GetTransferBitOrder(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_MSBFIRST)); +} + +/** + * @brief Set Address of the LPUART node. + * @note This is used in multiprocessor communication during Mute mode or Stop mode, + * for wake up with address mark detection. + * @note 4bits address node is used when 4-bit Address Detection is selected in ADDM7. + * (b7-b4 should be set to 0) + * 8bits address node is used when 7-bit Address Detection is selected in ADDM7. + * (This is used in multiprocessor communication during Mute mode or Stop mode, + * for wake up with 7-bit address mark detection. + * The MSB of the character sent by the transmitter should be equal to 1. + * It may also be used for character detection during normal reception, + * Mute mode inactive (for example, end of block detection in ModBus protocol). + * In this case, the whole received character (8-bit) is compared to the ADD[7:0] + * value and CMF flag is set on match) + * @rmtoll CR2 ADD LL_LPUART_ConfigNodeAddress\n + * CR2 ADDM7 LL_LPUART_ConfigNodeAddress + * @param LPUARTx LPUART Instance + * @param AddressLen This parameter can be one of the following values: + * @arg @ref LL_LPUART_ADDRESS_DETECT_4B + * @arg @ref LL_LPUART_ADDRESS_DETECT_7B + * @param NodeAddress 4 or 7 bit Address of the LPUART node. + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ConfigNodeAddress(USART_TypeDef *LPUARTx, uint32_t AddressLen, uint32_t NodeAddress) +{ + MODIFY_REG(LPUARTx->CR2, USART_CR2_ADD | USART_CR2_ADDM7, + (uint32_t)(AddressLen | (NodeAddress << USART_CR2_ADD_Pos))); +} + +/** + * @brief Return 8 bit Address of the LPUART node as set in ADD field of CR2. + * @note If 4-bit Address Detection is selected in ADDM7, + * only 4bits (b3-b0) of returned value are relevant (b31-b4 are not relevant) + * If 7-bit Address Detection is selected in ADDM7, + * only 8bits (b7-b0) of returned value are relevant (b31-b8 are not relevant) + * @rmtoll CR2 ADD LL_LPUART_GetNodeAddress + * @param LPUARTx LPUART Instance + * @retval Address of the LPUART node (Value between Min_Data=0 and Max_Data=255) + */ +__STATIC_INLINE uint32_t LL_LPUART_GetNodeAddress(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_ADD) >> USART_CR2_ADD_Pos); +} + +/** + * @brief Return Length of Node Address used in Address Detection mode (7-bit or 4-bit) + * @rmtoll CR2 ADDM7 LL_LPUART_GetNodeAddressLen + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_ADDRESS_DETECT_4B + * @arg @ref LL_LPUART_ADDRESS_DETECT_7B + */ +__STATIC_INLINE uint32_t LL_LPUART_GetNodeAddressLen(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR2, USART_CR2_ADDM7)); +} + +/** + * @brief Enable RTS HW Flow Control + * @rmtoll CR3 RTSE LL_LPUART_EnableRTSHWFlowCtrl + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableRTSHWFlowCtrl(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR3, USART_CR3_RTSE); +} + +/** + * @brief Disable RTS HW Flow Control + * @rmtoll CR3 RTSE LL_LPUART_DisableRTSHWFlowCtrl + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableRTSHWFlowCtrl(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR3, USART_CR3_RTSE); +} + +/** + * @brief Enable CTS HW Flow Control + * @rmtoll CR3 CTSE LL_LPUART_EnableCTSHWFlowCtrl + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableCTSHWFlowCtrl(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR3, USART_CR3_CTSE); +} + +/** + * @brief Disable CTS HW Flow Control + * @rmtoll CR3 CTSE LL_LPUART_DisableCTSHWFlowCtrl + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableCTSHWFlowCtrl(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR3, USART_CR3_CTSE); +} + +/** + * @brief Configure HW Flow Control mode (both CTS and RTS) + * @rmtoll CR3 RTSE LL_LPUART_SetHWFlowCtrl\n + * CR3 CTSE LL_LPUART_SetHWFlowCtrl + * @param LPUARTx LPUART Instance + * @param HardwareFlowControl This parameter can be one of the following values: + * @arg @ref LL_LPUART_HWCONTROL_NONE + * @arg @ref LL_LPUART_HWCONTROL_RTS + * @arg @ref LL_LPUART_HWCONTROL_CTS + * @arg @ref LL_LPUART_HWCONTROL_RTS_CTS + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetHWFlowCtrl(USART_TypeDef *LPUARTx, uint32_t HardwareFlowControl) +{ + MODIFY_REG(LPUARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE, HardwareFlowControl); +} + +/** + * @brief Return HW Flow Control configuration (both CTS and RTS) + * @rmtoll CR3 RTSE LL_LPUART_GetHWFlowCtrl\n + * CR3 CTSE LL_LPUART_GetHWFlowCtrl + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_HWCONTROL_NONE + * @arg @ref LL_LPUART_HWCONTROL_RTS + * @arg @ref LL_LPUART_HWCONTROL_CTS + * @arg @ref LL_LPUART_HWCONTROL_RTS_CTS + */ +__STATIC_INLINE uint32_t LL_LPUART_GetHWFlowCtrl(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE)); +} + +/** + * @brief Enable Overrun detection + * @rmtoll CR3 OVRDIS LL_LPUART_EnableOverrunDetect + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableOverrunDetect(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR3, USART_CR3_OVRDIS); +} + +/** + * @brief Disable Overrun detection + * @rmtoll CR3 OVRDIS LL_LPUART_DisableOverrunDetect + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableOverrunDetect(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR3, USART_CR3_OVRDIS); +} + +/** + * @brief Indicate if Overrun detection is enabled + * @rmtoll CR3 OVRDIS LL_LPUART_IsEnabledOverrunDetect + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledOverrunDetect(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_OVRDIS) != USART_CR3_OVRDIS) ? 1UL : 0UL); +} + +/** + * @brief Select event type for Wake UP Interrupt Flag (WUS[1:0] bits) + * @rmtoll CR3 WUS LL_LPUART_SetWKUPType + * @param LPUARTx LPUART Instance + * @param Type This parameter can be one of the following values: + * @arg @ref LL_LPUART_WAKEUP_ON_ADDRESS + * @arg @ref LL_LPUART_WAKEUP_ON_STARTBIT + * @arg @ref LL_LPUART_WAKEUP_ON_RXNE + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetWKUPType(USART_TypeDef *LPUARTx, uint32_t Type) +{ + MODIFY_REG(LPUARTx->CR3, USART_CR3_WUS, Type); +} + +/** + * @brief Return event type for Wake UP Interrupt Flag (WUS[1:0] bits) + * @rmtoll CR3 WUS LL_LPUART_GetWKUPType + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_WAKEUP_ON_ADDRESS + * @arg @ref LL_LPUART_WAKEUP_ON_STARTBIT + * @arg @ref LL_LPUART_WAKEUP_ON_RXNE + */ +__STATIC_INLINE uint32_t LL_LPUART_GetWKUPType(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR3, USART_CR3_WUS)); +} + +/** + * @brief Configure LPUART BRR register for achieving expected Baud Rate value. + * + * @note Compute and set LPUARTDIV value in BRR Register (full BRR content) + * according to used Peripheral Clock and expected Baud Rate values + * @note Peripheral clock and Baud Rate values provided as function parameters should be valid + * (Baud rate value != 0). + * @note Provided that LPUARTx_BRR must be > = 0x300 and LPUART_BRR is 20-bit, + * a care should be taken when generating high baud rates using high PeriphClk + * values. PeriphClk must be in the range [3 x BaudRate, 4096 x BaudRate]. + * @rmtoll BRR BRR LL_LPUART_SetBaudRate + * @param LPUARTx LPUART Instance + * @param PeriphClk Peripheral Clock + * @param PrescalerValue This parameter can be one of the following values: + * @arg @ref LL_LPUART_PRESCALER_DIV1 + * @arg @ref LL_LPUART_PRESCALER_DIV2 + * @arg @ref LL_LPUART_PRESCALER_DIV4 + * @arg @ref LL_LPUART_PRESCALER_DIV6 + * @arg @ref LL_LPUART_PRESCALER_DIV8 + * @arg @ref LL_LPUART_PRESCALER_DIV10 + * @arg @ref LL_LPUART_PRESCALER_DIV12 + * @arg @ref LL_LPUART_PRESCALER_DIV16 + * @arg @ref LL_LPUART_PRESCALER_DIV32 + * @arg @ref LL_LPUART_PRESCALER_DIV64 + * @arg @ref LL_LPUART_PRESCALER_DIV128 + * @arg @ref LL_LPUART_PRESCALER_DIV256 + * @param BaudRate Baud Rate + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetBaudRate(USART_TypeDef *LPUARTx, uint32_t PeriphClk, uint32_t PrescalerValue, + uint32_t BaudRate) +{ + if (BaudRate != 0U) + { + LPUARTx->BRR = __LL_LPUART_DIV(PeriphClk, PrescalerValue, BaudRate); + } +} + +/** + * @brief Return current Baud Rate value, according to LPUARTDIV present in BRR register + * (full BRR content), and to used Peripheral Clock values + * @note In case of non-initialized or invalid value stored in BRR register, value 0 will be returned. + * @rmtoll BRR BRR LL_LPUART_GetBaudRate + * @param LPUARTx LPUART Instance + * @param PeriphClk Peripheral Clock + * @param PrescalerValue This parameter can be one of the following values: + * @arg @ref LL_LPUART_PRESCALER_DIV1 + * @arg @ref LL_LPUART_PRESCALER_DIV2 + * @arg @ref LL_LPUART_PRESCALER_DIV4 + * @arg @ref LL_LPUART_PRESCALER_DIV6 + * @arg @ref LL_LPUART_PRESCALER_DIV8 + * @arg @ref LL_LPUART_PRESCALER_DIV10 + * @arg @ref LL_LPUART_PRESCALER_DIV12 + * @arg @ref LL_LPUART_PRESCALER_DIV16 + * @arg @ref LL_LPUART_PRESCALER_DIV32 + * @arg @ref LL_LPUART_PRESCALER_DIV64 + * @arg @ref LL_LPUART_PRESCALER_DIV128 + * @arg @ref LL_LPUART_PRESCALER_DIV256 + * @retval Baud Rate + */ +__STATIC_INLINE uint32_t LL_LPUART_GetBaudRate(const USART_TypeDef *LPUARTx, uint32_t PeriphClk, + uint32_t PrescalerValue) +{ + uint32_t lpuartdiv; + uint32_t brrresult; + uint32_t periphclkpresc = (uint32_t)(PeriphClk / (LPUART_PRESCALER_TAB[(uint16_t)PrescalerValue])); + + lpuartdiv = LPUARTx->BRR & LPUART_BRR_MASK; + + if (lpuartdiv >= LPUART_BRR_MIN_VALUE) + { + brrresult = (uint32_t)(((uint64_t)(periphclkpresc) * LPUART_LPUARTDIV_FREQ_MUL) / lpuartdiv); + } + else + { + brrresult = 0x0UL; + } + + return (brrresult); +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_Configuration_HalfDuplex Configuration functions related to Half Duplex feature + * @{ + */ + +/** + * @brief Enable Single Wire Half-Duplex mode + * @rmtoll CR3 HDSEL LL_LPUART_EnableHalfDuplex + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableHalfDuplex(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR3, USART_CR3_HDSEL); +} + +/** + * @brief Disable Single Wire Half-Duplex mode + * @rmtoll CR3 HDSEL LL_LPUART_DisableHalfDuplex + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableHalfDuplex(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR3, USART_CR3_HDSEL); +} + +/** + * @brief Indicate if Single Wire Half-Duplex mode is enabled + * @rmtoll CR3 HDSEL LL_LPUART_IsEnabledHalfDuplex + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledHalfDuplex(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_HDSEL) == (USART_CR3_HDSEL)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_Configuration_DE Configuration functions related to Driver Enable feature + * @{ + */ + +/** + * @brief Set DEDT (Driver Enable De-Assertion Time), Time value expressed on 5 bits ([4:0] bits). + * @rmtoll CR1 DEDT LL_LPUART_SetDEDeassertionTime + * @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) +{ + MODIFY_REG(LPUARTx->CR1, USART_CR1_DEDT, Time << USART_CR1_DEDT_Pos); +} + +/** + * @brief Return DEDT (Driver Enable De-Assertion Time) + * @rmtoll CR1 DEDT LL_LPUART_GetDEDeassertionTime + * @param LPUARTx LPUART Instance + * @retval Time value expressed on 5 bits ([4:0] bits) : c + */ +__STATIC_INLINE uint32_t LL_LPUART_GetDEDeassertionTime(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR1, USART_CR1_DEDT) >> USART_CR1_DEDT_Pos); +} + +/** + * @brief Set DEAT (Driver Enable Assertion Time), Time value expressed on 5 bits ([4:0] bits). + * @rmtoll CR1 DEAT LL_LPUART_SetDEAssertionTime + * @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) +{ + MODIFY_REG(LPUARTx->CR1, USART_CR1_DEAT, Time << USART_CR1_DEAT_Pos); +} + +/** + * @brief Return DEAT (Driver Enable Assertion Time) + * @rmtoll CR1 DEAT LL_LPUART_GetDEAssertionTime + * @param LPUARTx LPUART Instance + * @retval Time value expressed on 5 bits ([4:0] bits) : Time Value between Min_Data=0 and Max_Data=31 + */ +__STATIC_INLINE uint32_t LL_LPUART_GetDEAssertionTime(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR1, USART_CR1_DEAT) >> USART_CR1_DEAT_Pos); +} + +/** + * @brief Enable Driver Enable (DE) Mode + * @rmtoll CR3 DEM LL_LPUART_EnableDEMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDEMode(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR3, USART_CR3_DEM); +} + +/** + * @brief Disable Driver Enable (DE) Mode + * @rmtoll CR3 DEM LL_LPUART_DisableDEMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableDEMode(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR3, USART_CR3_DEM); +} + +/** + * @brief Indicate if Driver Enable (DE) Mode is enabled + * @rmtoll CR3 DEM LL_LPUART_IsEnabledDEMode + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledDEMode(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_DEM) == (USART_CR3_DEM)) ? 1UL : 0UL); +} + +/** + * @brief Select Driver Enable Polarity + * @rmtoll CR3 DEP LL_LPUART_SetDESignalPolarity + * @param LPUARTx LPUART Instance + * @param Polarity This parameter can be one of the following values: + * @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) +{ + MODIFY_REG(LPUARTx->CR3, USART_CR3_DEP, Polarity); +} + +/** + * @brief Return Driver Enable Polarity + * @rmtoll CR3 DEP LL_LPUART_GetDESignalPolarity + * @param LPUARTx LPUART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_LPUART_DE_POLARITY_HIGH + * @arg @ref LL_LPUART_DE_POLARITY_LOW + */ +__STATIC_INLINE uint32_t LL_LPUART_GetDESignalPolarity(const USART_TypeDef *LPUARTx) +{ + return (uint32_t)(READ_BIT(LPUARTx->CR3, USART_CR3_DEP)); +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Check if the LPUART Parity Error Flag is set or not + * @rmtoll ISR PE LL_LPUART_IsActiveFlag_PE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_PE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_PE) == (USART_ISR_PE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Framing Error Flag is set or not + * @rmtoll ISR FE LL_LPUART_IsActiveFlag_FE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_FE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_FE) == (USART_ISR_FE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Noise error detected Flag is set or not + * @rmtoll ISR NE LL_LPUART_IsActiveFlag_NE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_NE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_NE) == (USART_ISR_NE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART OverRun Error Flag is set or not + * @rmtoll ISR ORE LL_LPUART_IsActiveFlag_ORE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_ORE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_ORE) == (USART_ISR_ORE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART IDLE line detected Flag is set or not + * @rmtoll ISR IDLE LL_LPUART_IsActiveFlag_IDLE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_IDLE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_IDLE) == (USART_ISR_IDLE)) ? 1UL : 0UL); +} + +#define LL_LPUART_IsActiveFlag_RXNE LL_LPUART_IsActiveFlag_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Check if the LPUART Read Data Register or LPUART RX FIFO Not Empty Flag is set or not + * @rmtoll ISR RXNE_RXFNE LL_LPUART_IsActiveFlag_RXNE_RXFNE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_RXNE_RXFNE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_RXNE_RXFNE) == (USART_ISR_RXNE_RXFNE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Transmission Complete Flag is set or not + * @rmtoll ISR TC LL_LPUART_IsActiveFlag_TC + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_TC(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_TC) == (USART_ISR_TC)) ? 1UL : 0UL); +} + +#define LL_LPUART_IsActiveFlag_TXE LL_LPUART_IsActiveFlag_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Check if the LPUART Transmit Data Register Empty or LPUART TX FIFO Not Full Flag is set or not + * @rmtoll ISR TXE_TXFNF LL_LPUART_IsActiveFlag_TXE_TXFNF + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_TXE_TXFNF(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_TXE_TXFNF) == (USART_ISR_TXE_TXFNF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART CTS interrupt Flag is set or not + * @rmtoll ISR CTSIF LL_LPUART_IsActiveFlag_nCTS + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_nCTS(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_CTSIF) == (USART_ISR_CTSIF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART CTS Flag is set or not + * @rmtoll ISR CTS LL_LPUART_IsActiveFlag_CTS + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_CTS(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_CTS) == (USART_ISR_CTS)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Busy Flag is set or not + * @rmtoll ISR BUSY LL_LPUART_IsActiveFlag_BUSY + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_BUSY(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_BUSY) == (USART_ISR_BUSY)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Character Match Flag is set or not + * @rmtoll ISR CMF LL_LPUART_IsActiveFlag_CM + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_CM(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_CMF) == (USART_ISR_CMF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Send Break Flag is set or not + * @rmtoll ISR SBKF LL_LPUART_IsActiveFlag_SBK + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_SBK(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_SBKF) == (USART_ISR_SBKF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Receive Wake Up from mute mode Flag is set or not + * @rmtoll ISR RWU LL_LPUART_IsActiveFlag_RWU + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_RWU(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_RWU) == (USART_ISR_RWU)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Wake Up from stop mode Flag is set or not + * @rmtoll ISR WUF LL_LPUART_IsActiveFlag_WKUP + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_WKUP(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_WUF) == (USART_ISR_WUF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Transmit Enable Acknowledge Flag is set or not + * @rmtoll ISR TEACK LL_LPUART_IsActiveFlag_TEACK + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_TEACK(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_TEACK) == (USART_ISR_TEACK)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Receive Enable Acknowledge Flag is set or not + * @rmtoll ISR REACK LL_LPUART_IsActiveFlag_REACK + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_REACK(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_REACK) == (USART_ISR_REACK)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART TX FIFO Empty Flag is set or not + * @rmtoll ISR TXFE LL_LPUART_IsActiveFlag_TXFE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_TXFE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_TXFE) == (USART_ISR_TXFE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART RX FIFO Full Flag is set or not + * @rmtoll ISR RXFF LL_LPUART_IsActiveFlag_RXFF + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_RXFF(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_RXFF) == (USART_ISR_RXFF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART TX FIFO Threshold Flag is set or not + * @rmtoll ISR TXFT LL_LPUART_IsActiveFlag_TXFT + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_TXFT(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_TXFT) == (USART_ISR_TXFT)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART RX FIFO Threshold Flag is set or not + * @rmtoll ISR RXFT LL_LPUART_IsActiveFlag_RXFT + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsActiveFlag_RXFT(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->ISR, USART_ISR_RXFT) == (USART_ISR_RXFT)) ? 1UL : 0UL); +} + +/** + * @brief Clear Parity Error Flag + * @rmtoll ICR PECF LL_LPUART_ClearFlag_PE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_PE(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_PECF); +} + +/** + * @brief Clear Framing Error Flag + * @rmtoll ICR FECF LL_LPUART_ClearFlag_FE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_FE(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_FECF); +} + +/** + * @brief Clear Noise detected Flag + * @rmtoll ICR NECF LL_LPUART_ClearFlag_NE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_NE(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_NECF); +} + +/** + * @brief Clear OverRun Error Flag + * @rmtoll ICR ORECF LL_LPUART_ClearFlag_ORE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_ORE(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_ORECF); +} + +/** + * @brief Clear IDLE line detected Flag + * @rmtoll ICR IDLECF LL_LPUART_ClearFlag_IDLE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_IDLE(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_IDLECF); +} + +/** + * @brief Clear Transmission Complete Flag + * @rmtoll ICR TCCF LL_LPUART_ClearFlag_TC + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_TC(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_TCCF); +} + +/** + * @brief Clear CTS Interrupt Flag + * @rmtoll ICR CTSCF LL_LPUART_ClearFlag_nCTS + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_nCTS(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_CTSCF); +} + +/** + * @brief Clear Character Match Flag + * @rmtoll ICR CMCF LL_LPUART_ClearFlag_CM + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_CM(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_CMCF); +} + +/** + * @brief Clear Wake Up from stop mode Flag + * @rmtoll ICR WUCF LL_LPUART_ClearFlag_WKUP + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_ClearFlag_WKUP(USART_TypeDef *LPUARTx) +{ + WRITE_REG(LPUARTx->ICR, USART_ICR_WUCF); +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable IDLE Interrupt + * @rmtoll CR1 IDLEIE LL_LPUART_EnableIT_IDLE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_IDLE(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_IDLEIE); +} + +#define LL_LPUART_EnableIT_RXNE LL_LPUART_EnableIT_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Enable RX Not Empty and RX FIFO Not Empty Interrupt + * @rmtoll CR1 RXNEIE_RXFNEIE LL_LPUART_EnableIT_RXNE_RXFNE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_RXNE_RXFNE(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_RXNEIE_RXFNEIE); +} + +/** + * @brief Enable Transmission Complete Interrupt + * @rmtoll CR1 TCIE LL_LPUART_EnableIT_TC + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_TC(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_TCIE); +} + +#define LL_LPUART_EnableIT_TXE LL_LPUART_EnableIT_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Enable TX Empty and TX FIFO Not Full Interrupt + * @rmtoll CR1 TXEIE_TXFNFIE LL_LPUART_EnableIT_TXE_TXFNF + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_TXE_TXFNF(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_TXEIE_TXFNFIE); +} + +/** + * @brief Enable Parity Error Interrupt + * @rmtoll CR1 PEIE LL_LPUART_EnableIT_PE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_PE(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_PEIE); +} + +/** + * @brief Enable Character Match Interrupt + * @rmtoll CR1 CMIE LL_LPUART_EnableIT_CM + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_CM(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_CMIE); +} + +/** + * @brief Enable TX FIFO Empty Interrupt + * @rmtoll CR1 TXFEIE LL_LPUART_EnableIT_TXFE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_TXFE(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_TXFEIE); +} + +/** + * @brief Enable RX FIFO Full Interrupt + * @rmtoll CR1 RXFFIE LL_LPUART_EnableIT_RXFF + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_RXFF(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR1, USART_CR1_RXFFIE); +} + +/** + * @brief Enable Error Interrupt + * @note When set, Error Interrupt Enable Bit is enabling interrupt generation in case of a framing + * error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the LPUARTx_ISR register). + * - 0: Interrupt is inhibited + * - 1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the LPUARTx_ISR register. + * @rmtoll CR3 EIE LL_LPUART_EnableIT_ERROR + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_ERROR(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_EIE); +} + +/** + * @brief Enable CTS Interrupt + * @rmtoll CR3 CTSIE LL_LPUART_EnableIT_CTS + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_CTS(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_CTSIE); +} + +/** + * @brief Enable Wake Up from Stop Mode Interrupt + * @rmtoll CR3 WUFIE LL_LPUART_EnableIT_WKUP + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_WKUP(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_WUFIE); +} + +/** + * @brief Enable TX FIFO Threshold Interrupt + * @rmtoll CR3 TXFTIE LL_LPUART_EnableIT_TXFT + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_TXFT(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_TXFTIE); +} + +/** + * @brief Enable RX FIFO Threshold Interrupt + * @rmtoll CR3 RXFTIE LL_LPUART_EnableIT_RXFT + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableIT_RXFT(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_RXFTIE); +} + +/** + * @brief Disable IDLE Interrupt + * @rmtoll CR1 IDLEIE LL_LPUART_DisableIT_IDLE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_IDLE(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_IDLEIE); +} + +#define LL_LPUART_DisableIT_RXNE LL_LPUART_DisableIT_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Disable RX Not Empty and RX FIFO Not Empty Interrupt + * @rmtoll CR1 RXNEIE_RXFNEIE LL_LPUART_DisableIT_RXNE_RXFNE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_RXNE_RXFNE(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_RXNEIE_RXFNEIE); +} + +/** + * @brief Disable Transmission Complete Interrupt + * @rmtoll CR1 TCIE LL_LPUART_DisableIT_TC + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_TC(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_TCIE); +} + +#define LL_LPUART_DisableIT_TXE LL_LPUART_DisableIT_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Disable TX Empty and TX FIFO Not Full Interrupt + * @rmtoll CR1 TXEIE_TXFNFIE LL_LPUART_DisableIT_TXE_TXFNF + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_TXE_TXFNF(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_TXEIE_TXFNFIE); +} + +/** + * @brief Disable Parity Error Interrupt + * @rmtoll CR1 PEIE LL_LPUART_DisableIT_PE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_PE(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_PEIE); +} + +/** + * @brief Disable Character Match Interrupt + * @rmtoll CR1 CMIE LL_LPUART_DisableIT_CM + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_CM(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_CMIE); +} + +/** + * @brief Disable TX FIFO Empty Interrupt + * @rmtoll CR1 TXFEIE LL_LPUART_DisableIT_TXFE + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_TXFE(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_TXFEIE); +} + +/** + * @brief Disable RX FIFO Full Interrupt + * @rmtoll CR1 RXFFIE LL_LPUART_DisableIT_RXFF + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_RXFF(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR1, USART_CR1_RXFFIE); +} + +/** + * @brief Disable Error Interrupt + * @note When set, Error Interrupt Enable Bit is enabling interrupt generation in case of a framing + * error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the LPUARTx_ISR register). + * - 0: Interrupt is inhibited + * - 1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the LPUARTx_ISR register. + * @rmtoll CR3 EIE LL_LPUART_DisableIT_ERROR + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_ERROR(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_EIE); +} + +/** + * @brief Disable CTS Interrupt + * @rmtoll CR3 CTSIE LL_LPUART_DisableIT_CTS + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_CTS(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_CTSIE); +} + +/** + * @brief Disable Wake Up from Stop Mode Interrupt + * @rmtoll CR3 WUFIE LL_LPUART_DisableIT_WKUP + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_WKUP(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_WUFIE); +} + +/** + * @brief Disable TX FIFO Threshold Interrupt + * @rmtoll CR3 TXFTIE LL_LPUART_DisableIT_TXFT + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_TXFT(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_TXFTIE); +} + +/** + * @brief Disable RX FIFO Threshold Interrupt + * @rmtoll CR3 RXFTIE LL_LPUART_DisableIT_RXFT + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableIT_RXFT(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_RXFTIE); +} + +/** + * @brief Check if the LPUART IDLE Interrupt source is enabled or disabled. + * @rmtoll CR1 IDLEIE LL_LPUART_IsEnabledIT_IDLE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_IDLE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_IDLEIE) == (USART_CR1_IDLEIE)) ? 1UL : 0UL); +} + +#define LL_LPUART_IsEnabledIT_RXNE LL_LPUART_IsEnabledIT_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Check if the LPUART RX Not Empty and LPUART RX FIFO Not Empty Interrupt is enabled or disabled. + * @rmtoll CR1 RXNEIE_RXFNEIE LL_LPUART_IsEnabledIT_RXNE_RXFNE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_RXNE_RXFNE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_RXNEIE_RXFNEIE) == (USART_CR1_RXNEIE_RXFNEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Transmission Complete Interrupt is enabled or disabled. + * @rmtoll CR1 TCIE LL_LPUART_IsEnabledIT_TC + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_TC(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_TCIE) == (USART_CR1_TCIE)) ? 1UL : 0UL); +} + +#define LL_LPUART_IsEnabledIT_TXE LL_LPUART_IsEnabledIT_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Check if the LPUART TX Empty and LPUART TX FIFO Not Full Interrupt is enabled or disabled + * @rmtoll CR1 TXEIE_TXFNFIE LL_LPUART_IsEnabledIT_TXE_TXFNF + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_TXE_TXFNF(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_TXEIE_TXFNFIE) == (USART_CR1_TXEIE_TXFNFIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Parity Error Interrupt is enabled or disabled. + * @rmtoll CR1 PEIE LL_LPUART_IsEnabledIT_PE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_PE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_PEIE) == (USART_CR1_PEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Character Match Interrupt is enabled or disabled. + * @rmtoll CR1 CMIE LL_LPUART_IsEnabledIT_CM + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_CM(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_CMIE) == (USART_CR1_CMIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART TX FIFO Empty Interrupt is enabled or disabled + * @rmtoll CR1 TXFEIE LL_LPUART_IsEnabledIT_TXFE + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_TXFE(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_TXFEIE) == (USART_CR1_TXFEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART RX FIFO Full Interrupt is enabled or disabled + * @rmtoll CR1 RXFFIE LL_LPUART_IsEnabledIT_RXFF + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_RXFF(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR1, USART_CR1_RXFFIE) == (USART_CR1_RXFFIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Error Interrupt is enabled or disabled. + * @rmtoll CR3 EIE LL_LPUART_IsEnabledIT_ERROR + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_ERROR(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_EIE) == (USART_CR3_EIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART CTS Interrupt is enabled or disabled. + * @rmtoll CR3 CTSIE LL_LPUART_IsEnabledIT_CTS + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_CTS(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_CTSIE) == (USART_CR3_CTSIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the LPUART Wake Up from Stop Mode Interrupt is enabled or disabled. + * @rmtoll CR3 WUFIE LL_LPUART_IsEnabledIT_WKUP + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_WKUP(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_WUFIE) == (USART_CR3_WUFIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if LPUART TX FIFO Threshold Interrupt is enabled or disabled + * @rmtoll CR3 TXFTIE LL_LPUART_IsEnabledIT_TXFT + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_TXFT(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_TXFTIE) == (USART_CR3_TXFTIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if LPUART RX FIFO Threshold Interrupt is enabled or disabled + * @rmtoll CR3 RXFTIE LL_LPUART_IsEnabledIT_RXFT + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledIT_RXFT(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_RXFTIE) == (USART_CR3_RXFTIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_DMA_Management DMA_Management + * @{ + */ + +/** + * @brief Enable DMA Mode for reception + * @rmtoll CR3 DMAR LL_LPUART_EnableDMAReq_RX + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDMAReq_RX(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_DMAR); +} + +/** + * @brief Disable DMA Mode for reception + * @rmtoll CR3 DMAR LL_LPUART_DisableDMAReq_RX + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableDMAReq_RX(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_DMAR); +} + +/** + * @brief Check if DMA Mode is enabled for reception + * @rmtoll CR3 DMAR LL_LPUART_IsEnabledDMAReq_RX + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledDMAReq_RX(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_DMAR) == (USART_CR3_DMAR)) ? 1UL : 0UL); +} + +/** + * @brief Enable DMA Mode for transmission + * @rmtoll CR3 DMAT LL_LPUART_EnableDMAReq_TX + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDMAReq_TX(USART_TypeDef *LPUARTx) +{ + ATOMIC_SET_BIT(LPUARTx->CR3, USART_CR3_DMAT); +} + +/** + * @brief Disable DMA Mode for transmission + * @rmtoll CR3 DMAT LL_LPUART_DisableDMAReq_TX + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableDMAReq_TX(USART_TypeDef *LPUARTx) +{ + ATOMIC_CLEAR_BIT(LPUARTx->CR3, USART_CR3_DMAT); +} + +/** + * @brief Check if DMA Mode is enabled for transmission + * @rmtoll CR3 DMAT LL_LPUART_IsEnabledDMAReq_TX + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledDMAReq_TX(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_DMAT) == (USART_CR3_DMAT)) ? 1UL : 0UL); +} + +/** + * @brief Enable DMA Disabling on Reception Error + * @rmtoll CR3 DDRE LL_LPUART_EnableDMADeactOnRxErr + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDMADeactOnRxErr(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->CR3, USART_CR3_DDRE); +} + +/** + * @brief Disable DMA Disabling on Reception Error + * @rmtoll CR3 DDRE LL_LPUART_DisableDMADeactOnRxErr + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_DisableDMADeactOnRxErr(USART_TypeDef *LPUARTx) +{ + CLEAR_BIT(LPUARTx->CR3, USART_CR3_DDRE); +} + +/** + * @brief Indicate if DMA Disabling on Reception Error is disabled + * @rmtoll CR3 DDRE LL_LPUART_IsEnabledDMADeactOnRxErr + * @param LPUARTx LPUART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_LPUART_IsEnabledDMADeactOnRxErr(const USART_TypeDef *LPUARTx) +{ + return ((READ_BIT(LPUARTx->CR3, USART_CR3_DDRE) == (USART_CR3_DDRE)) ? 1UL : 0UL); +} + +/** + * @brief Get the LPUART data register address used for DMA transfer + * @rmtoll RDR RDR LL_LPUART_DMA_GetRegAddr\n + * @rmtoll TDR TDR LL_LPUART_DMA_GetRegAddr + * @param LPUARTx LPUART Instance + * @param Direction This parameter can be one of the following values: + * @arg @ref LL_LPUART_DMA_REG_DATA_TRANSMIT + * @arg @ref LL_LPUART_DMA_REG_DATA_RECEIVE + * @retval Address of data register + */ +__STATIC_INLINE uint32_t LL_LPUART_DMA_GetRegAddr(const USART_TypeDef *LPUARTx, uint32_t Direction) +{ + uint32_t data_reg_addr; + + if (Direction == LL_LPUART_DMA_REG_DATA_TRANSMIT) + { + /* return address of TDR register */ + data_reg_addr = (uint32_t) &(LPUARTx->TDR); + } + else + { + /* return address of RDR register */ + data_reg_addr = (uint32_t) &(LPUARTx->RDR); + } + + return data_reg_addr; +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_Data_Management Data_Management + * @{ + */ + +/** + * @brief Read Receiver Data register (Receive Data value, 8 bits) + * @rmtoll RDR RDR LL_LPUART_ReceiveData8 + * @param LPUARTx LPUART Instance + * @retval Time Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_LPUART_ReceiveData8(const USART_TypeDef *LPUARTx) +{ + return (uint8_t)(READ_BIT(LPUARTx->RDR, USART_RDR_RDR) & 0xFFU); +} + +/** + * @brief Read Receiver Data register (Receive Data value, 9 bits) + * @rmtoll RDR RDR LL_LPUART_ReceiveData9 + * @param LPUARTx LPUART Instance + * @retval Time Value between Min_Data=0x00 and Max_Data=0x1FF + */ +__STATIC_INLINE uint16_t LL_LPUART_ReceiveData9(const USART_TypeDef *LPUARTx) +{ + return (uint16_t)(READ_BIT(LPUARTx->RDR, USART_RDR_RDR)); +} + +/** + * @brief Write in Transmitter Data Register (Transmit Data value, 8 bits) + * @rmtoll TDR TDR LL_LPUART_TransmitData8 + * @param LPUARTx LPUART Instance + * @param Value between Min_Data=0x00 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_LPUART_TransmitData8(USART_TypeDef *LPUARTx, uint8_t Value) +{ + LPUARTx->TDR = Value; +} + +/** + * @brief Write in Transmitter Data Register (Transmit Data value, 9 bits) + * @rmtoll TDR TDR LL_LPUART_TransmitData9 + * @param LPUARTx LPUART Instance + * @param Value between Min_Data=0x00 and Max_Data=0x1FF + * @retval None + */ +__STATIC_INLINE void LL_LPUART_TransmitData9(USART_TypeDef *LPUARTx, uint16_t Value) +{ + LPUARTx->TDR = Value & 0x1FFUL; +} + +/** + * @} + */ + +/** @defgroup LPUART_LL_EF_Execution Execution + * @{ + */ + +/** + * @brief Request Break sending + * @rmtoll RQR SBKRQ LL_LPUART_RequestBreakSending + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_RequestBreakSending(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->RQR, (uint16_t)USART_RQR_SBKRQ); +} + +/** + * @brief Put LPUART in mute mode and set the RWU flag + * @rmtoll RQR MMRQ LL_LPUART_RequestEnterMuteMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_RequestEnterMuteMode(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->RQR, (uint16_t)USART_RQR_MMRQ); +} + +/** + * @brief Request a Receive Data and FIFO flush + * @note Allows to discard the received data without reading them, and avoid an overrun + * condition. + * @rmtoll RQR RXFRQ LL_LPUART_RequestRxDataFlush + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_RequestRxDataFlush(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->RQR, (uint16_t)USART_RQR_RXFRQ); +} + +/** + * @brief Request a Transmit data FIFO flush + * @note TXFRQ bit is set to flush the whole FIFO when FIFO mode is enabled. This + * also sets the flag TXFE (TXFIFO empty bit in the LPUART_ISR register). + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll RQR TXFRQ LL_LPUART_RequestTxDataFlush + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_RequestTxDataFlush(USART_TypeDef *LPUARTx) +{ + SET_BIT(LPUARTx->RQR, (uint16_t)USART_RQR_TXFRQ); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup LPUART_LL_EF_Init Initialization and de-initialization functions + * @{ + */ +ErrorStatus LL_LPUART_DeInit(const USART_TypeDef *LPUARTx); +ErrorStatus LL_LPUART_Init(USART_TypeDef *LPUARTx, const LL_LPUART_InitTypeDef *LPUART_InitStruct); +void LL_LPUART_StructInit(LL_LPUART_InitTypeDef *LPUART_InitStruct); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* LPUART1 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_LPUART_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_pwr.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_pwr.h new file mode 100644 index 0000000..4a5a0c9 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_pwr.h @@ -0,0 +1,1604 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_pwr.h + * @author MCD Application Team + * @brief Header file of PWR LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_PWR_H +#define STM32G4xx_LL_PWR_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined(PWR) + +/** @defgroup PWR_LL PWR + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup PWR_LL_Exported_Constants PWR Exported Constants + * @{ + */ + +/** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_PWR_WriteReg function + * @{ + */ +#define LL_PWR_SCR_CSBF PWR_SCR_CSBF +#define LL_PWR_SCR_CWUF PWR_SCR_CWUF +#define LL_PWR_SCR_CWUF5 PWR_SCR_CWUF5 +#define LL_PWR_SCR_CWUF4 PWR_SCR_CWUF4 +#define LL_PWR_SCR_CWUF3 PWR_SCR_CWUF3 +#define LL_PWR_SCR_CWUF2 PWR_SCR_CWUF2 +#define LL_PWR_SCR_CWUF1 PWR_SCR_CWUF1 +/** + * @} + */ + +/** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_PWR_ReadReg function + * @{ + */ +#define LL_PWR_SR1_WUFI PWR_SR1_WUFI +#define LL_PWR_SR1_SBF PWR_SR1_SBF +#define LL_PWR_SR1_WUF5 PWR_SR1_WUF5 +#define LL_PWR_SR1_WUF4 PWR_SR1_WUF4 +#define LL_PWR_SR1_WUF3 PWR_SR1_WUF3 +#define LL_PWR_SR1_WUF2 PWR_SR1_WUF2 +#define LL_PWR_SR1_WUF1 PWR_SR1_WUF1 +#if defined(PWR_SR2_PVMO4) +#define LL_PWR_SR2_PVMO4 PWR_SR2_PVMO4 +#endif /* PWR_SR2_PVMO4 */ +#if defined(PWR_SR2_PVMO3) +#define LL_PWR_SR2_PVMO3 PWR_SR2_PVMO3 +#endif /* PWR_SR2_PVMO3 */ +#if defined(PWR_SR2_PVMO2) +#define LL_PWR_SR2_PVMO2 PWR_SR2_PVMO2 +#endif /* PWR_SR2_PVMO2 */ +#if defined(PWR_SR2_PVMO1) +#define LL_PWR_SR2_PVMO1 PWR_SR2_PVMO1 +#endif /* PWR_SR2_PVMO1 */ +#define LL_PWR_SR2_PVDO PWR_SR2_PVDO +#define LL_PWR_SR2_VOSF PWR_SR2_VOSF +#define LL_PWR_SR2_REGLPF PWR_SR2_REGLPF +#define LL_PWR_SR2_REGLPS PWR_SR2_REGLPS +/** + * @} + */ + +/** @defgroup PWR_LL_EC_REGU_VOLTAGE REGU VOLTAGE + * @{ + */ +#define LL_PWR_REGU_VOLTAGE_SCALE1 (PWR_CR1_VOS_0) +#define LL_PWR_REGU_VOLTAGE_SCALE2 (PWR_CR1_VOS_1) +/** + * @} + */ + +/** @defgroup PWR_LL_EC_MODE_PWR MODE PWR + * @{ + */ +#define LL_PWR_MODE_STOP0 (PWR_CR1_LPMS_STOP0) +#define LL_PWR_MODE_STOP1 (PWR_CR1_LPMS_STOP1) +#define LL_PWR_MODE_STANDBY (PWR_CR1_LPMS_STANDBY) +#define LL_PWR_MODE_SHUTDOWN (PWR_CR1_LPMS_SHUTDOWN) +/** + * @} + */ + +/** @defgroup PWR_LL_EC_PVM_VDDUSB_1 Peripheral voltage monitoring + * @{ + */ +#if defined(PWR_CR2_PVME1) +#define LL_PWR_PVM_VDDA_COMP (PWR_CR2_PVME1) /* Monitoring VDDA vs. x.xV */ +#endif +#if defined(PWR_CR2_PVME2) +#define LL_PWR_PVM_VDDA_FASTDAC (PWR_CR2_PVME2) /* Monitoring VDDA vs. x.xV */ +#endif +#if defined(PWR_CR2_PVME3) +#define LL_PWR_PVM_VDDA_ADC (PWR_CR2_PVME3) /* Monitoring VDDA vs. 1.62V */ +#endif +#if defined(PWR_CR2_PVME4) +#define LL_PWR_PVM_VDDA_OPAMP_DAC (PWR_CR2_PVME4) /* Monitoring VDDA vs. 1x.xV */ +#endif +/** + * @} + */ + +/** @defgroup PWR_LL_EC_PVDLEVEL PVDLEVEL + * @{ + */ +#define LL_PWR_PVDLEVEL_0 (PWR_CR2_PLS_LEV0) /* VPVD0 around 2.0 V */ +#define LL_PWR_PVDLEVEL_1 (PWR_CR2_PLS_LEV1) /* VPVD1 around 2.2 V */ +#define LL_PWR_PVDLEVEL_2 (PWR_CR2_PLS_LEV2) /* VPVD2 around 2.4 V */ +#define LL_PWR_PVDLEVEL_3 (PWR_CR2_PLS_LEV3) /* VPVD3 around 2.5 V */ +#define LL_PWR_PVDLEVEL_4 (PWR_CR2_PLS_LEV4) /* VPVD4 around 2.6 V */ +#define LL_PWR_PVDLEVEL_5 (PWR_CR2_PLS_LEV5) /* VPVD5 around 2.8 V */ +#define LL_PWR_PVDLEVEL_6 (PWR_CR2_PLS_LEV6) /* VPVD6 around 2.9 V */ +#define LL_PWR_PVDLEVEL_7 (PWR_CR2_PLS_LEV7) /* External input analog voltage (Compare internally to VREFINT) */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_WAKEUP WAKEUP + * @{ + */ +#define LL_PWR_WAKEUP_PIN1 (PWR_CR3_EWUP1) +#define LL_PWR_WAKEUP_PIN2 (PWR_CR3_EWUP2) +#define LL_PWR_WAKEUP_PIN3 (PWR_CR3_EWUP3) +#define LL_PWR_WAKEUP_PIN4 (PWR_CR3_EWUP4) +#define LL_PWR_WAKEUP_PIN5 (PWR_CR3_EWUP5) +/** + * @} + */ + +/** @defgroup PWR_LL_EC_BATT_CHARG_RESISTOR BATT CHARG RESISTOR + * @{ + */ +#define LL_PWR_BATT_CHARG_RESISTOR_5K ((uint32_t)0x00000000) +#define LL_PWR_BATT_CHARGRESISTOR_1_5K (PWR_CR4_VBRS) +/** + * @} + */ + +/** @defgroup PWR_LL_EC_GPIO GPIO + * @{ + */ +#define LL_PWR_GPIO_A ((uint32_t)(&(PWR->PUCRA))) +#define LL_PWR_GPIO_B ((uint32_t)(&(PWR->PUCRB))) +#define LL_PWR_GPIO_C ((uint32_t)(&(PWR->PUCRC))) +#define LL_PWR_GPIO_D ((uint32_t)(&(PWR->PUCRD))) +#define LL_PWR_GPIO_E ((uint32_t)(&(PWR->PUCRE))) +#define LL_PWR_GPIO_F ((uint32_t)(&(PWR->PUCRF))) +#define LL_PWR_GPIO_G ((uint32_t)(&(PWR->PUCRG))) +/** + * @} + */ + +/** @defgroup PWR_LL_EC_GPIO_BIT GPIO BIT + * @{ + */ +#define LL_PWR_GPIO_BIT_0 ((uint32_t)0x00000001) +#define LL_PWR_GPIO_BIT_1 ((uint32_t)0x00000002) +#define LL_PWR_GPIO_BIT_2 ((uint32_t)0x00000004) +#define LL_PWR_GPIO_BIT_3 ((uint32_t)0x00000008) +#define LL_PWR_GPIO_BIT_4 ((uint32_t)0x00000010) +#define LL_PWR_GPIO_BIT_5 ((uint32_t)0x00000020) +#define LL_PWR_GPIO_BIT_6 ((uint32_t)0x00000040) +#define LL_PWR_GPIO_BIT_7 ((uint32_t)0x00000080) +#define LL_PWR_GPIO_BIT_8 ((uint32_t)0x00000100) +#define LL_PWR_GPIO_BIT_9 ((uint32_t)0x00000200) +#define LL_PWR_GPIO_BIT_10 ((uint32_t)0x00000400) +#define LL_PWR_GPIO_BIT_11 ((uint32_t)0x00000800) +#define LL_PWR_GPIO_BIT_12 ((uint32_t)0x00001000) +#define LL_PWR_GPIO_BIT_13 ((uint32_t)0x00002000) +#define LL_PWR_GPIO_BIT_14 ((uint32_t)0x00004000) +#define LL_PWR_GPIO_BIT_15 ((uint32_t)0x00008000) +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup PWR_LL_Exported_Macros PWR Exported Macros + * @{ + */ + +/** @defgroup PWR_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in PWR register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__)) + +/** + * @brief Read a value in PWR register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__) +/** + * @} + */ + +/** + * @} + */ + + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup PWR_LL_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @defgroup PWR_LL_EF_Configuration Configuration + * @{ + */ + +/** + * @brief Switch the regulator from main mode to low-power mode + * @rmtoll CR1 LPR LL_PWR_EnableLowPowerRunMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableLowPowerRunMode(void) +{ + SET_BIT(PWR->CR1, PWR_CR1_LPR); +} + +/** + * @brief Switch the regulator from low-power mode to main mode + * @rmtoll CR1 LPR LL_PWR_DisableLowPowerRunMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableLowPowerRunMode(void) +{ + CLEAR_BIT(PWR->CR1, PWR_CR1_LPR); +} + +/** + * @brief Check if the regulator is in low-power mode + * @rmtoll CR1 LPR LL_PWR_IsEnabledLowPowerRunMode + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRunMode(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR1, PWR_CR1_LPR); + + return ((temp == (PWR_CR1_LPR))?1U:0U); + +} + +/** + * @brief Switch from run main mode to run low-power mode. + * @rmtoll CR1 LPR LL_PWR_EnterLowPowerRunMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnterLowPowerRunMode(void) +{ + LL_PWR_EnableLowPowerRunMode(); +} + +/** + * @brief Switch from run main mode to low-power mode. + * @rmtoll CR1 LPR LL_PWR_ExitLowPowerRunMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_ExitLowPowerRunMode(void) +{ + LL_PWR_DisableLowPowerRunMode(); +} + +/** + * @brief Set the main internal regulator output voltage + * @rmtoll CR1 VOS LL_PWR_SetRegulVoltageScaling + * @param VoltageScaling This parameter can be one of the following values: + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling) +{ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, VoltageScaling); +} + +/** + * @brief Get the main internal regulator output voltage + * @rmtoll CR1 VOS LL_PWR_GetRegulVoltageScaling + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 + */ +__STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void) +{ + return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_VOS)); +} + +#if defined(PWR_CR5_R1MODE) +/** + * @brief Enable main regulator voltage range 1 boost mode + * @rmtoll CR5 R1MODE LL_PWR_EnableRange1BoostMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableRange1BoostMode(void) +{ + CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); +} + +/** + * @brief Disable main regulator voltage range 1 boost mode + * @rmtoll CR5 R1MODE LL_PWR_DisableRange1BoostMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableRange1BoostMode(void) +{ + SET_BIT(PWR->CR5, PWR_CR5_R1MODE); +} + +/** + * @brief Check if the main regulator voltage range 1 boost mode is enabled + * @rmtoll CR5 R1MODE LL_PWR_IsEnabledRange1BoostMode + * @retval Inverted state of bit (0 or 1). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledRange1BoostMode(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR5, PWR_CR5_R1MODE); + + return ((temp == (0U))?1U:0U); +} +#endif /* PWR_CR5_R1MODE */ + +/** + * @brief Enable access to the backup domain + * @rmtoll CR1 DBP LL_PWR_EnableBkUpAccess + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableBkUpAccess(void) +{ + SET_BIT(PWR->CR1, PWR_CR1_DBP); +} + +/** + * @brief Disable access to the backup domain + * @rmtoll CR1 DBP LL_PWR_DisableBkUpAccess + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableBkUpAccess(void) +{ + CLEAR_BIT(PWR->CR1, PWR_CR1_DBP); +} + +/** + * @brief Check if the backup domain is enabled + * @rmtoll CR1 DBP LL_PWR_IsEnabledBkUpAccess + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR1, PWR_CR1_DBP); + + return ((temp == (PWR_CR1_DBP))?1U:0U); + +} + +/** + * @brief Set Low-Power mode + * @rmtoll CR1 LPMS LL_PWR_SetPowerMode + * @param LowPowerMode This parameter can be one of the following values: + * @arg @ref LL_PWR_MODE_STOP0 + * @arg @ref LL_PWR_MODE_STOP1 + * @arg @ref LL_PWR_MODE_STANDBY + * @arg @ref LL_PWR_MODE_SHUTDOWN + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t LowPowerMode) +{ + MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, LowPowerMode); +} + +/** + * @brief Get Low-Power mode + * @rmtoll CR1 LPMS LL_PWR_GetPowerMode + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_MODE_STOP0 + * @arg @ref LL_PWR_MODE_STOP1 + * @arg @ref LL_PWR_MODE_STANDBY + * @arg @ref LL_PWR_MODE_SHUTDOWN + */ +__STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void) +{ + return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_LPMS)); +} + +#if defined(PWR_CR3_UCPD_STDBY) +/** + * @brief Enable the USB Type-C and Power Delivery memorization in Standby mode. + * @note This function must be called just before entering Standby mode. + * @rmtoll CR3 UCPD_STDBY LL_PWR_EnableUCPDStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableUCPDStandbyMode(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY); +} + +/** + * @brief Disable the USB Type-C and Power Delivery memorization in Standby mode. + * @note This function must be called after exiting Standby mode and before any + * UCPD configuration update. + * @rmtoll CR3 UCPD_STDBY LL_PWR_DisableUCPDStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableUCPDStandbyMode(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY); +} + +/** + * @brief Check the USB Type-C and Power Delivery Standby mode memorization state. + * @rmtoll CR3 UCPD_STDBY LL_PWR_IsEnabledUCPDStandbyMode + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledUCPDStandbyMode(void) +{ + + return ((READ_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY) == (PWR_CR3_UCPD_STDBY)) ? 1UL : 0UL); + +} +#endif /* PWR_CR3_UCPD_STDBY */ + +#if defined(PWR_CR3_UCPD_DBDIS) +/** + * @brief Enable the USB Type-C and power delivery dead battery pull-down behavior + * on UCPD CC1 and CC2 pins. + * @note After exiting reset, the USB Type-C dead battery behavior is enabled, + * which may have a pull-down effect on CC1 and CC2 pins. It is recommended + * to disable it in all cases, either to stop this pull-down or to hand over + * control to the UCPD (which should therefore be initialized before doing the disable). + * @rmtoll CR3 UCPD_DBDIS LL_PWR_EnableUCPDDeadBattery + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableUCPDDeadBattery(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); +} + +/** + * @brief Disable the USB Type-C and power delivery dead battery pull-down behavior + * on UCPD CC1 and CC2 pins. + * @note After exiting reset, the USB Type-C dead battery behavior is enabled, + * which may have a pull-down effect on CC1 and CC2 pins. It is recommended + * to disable it in all cases, either to stop this pull-down or to hand over + * control to the UCPD (which should therefore be initialized before doing the disable). + * @rmtoll CR3 UCPD_DBDIS LL_PWR_DisableUCPDDeadBattery + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableUCPDDeadBattery(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); +} + +/** + * @brief Check the USB Type-C and power delivery dead battery pull-down behavior + * on UCPD CC1 and CC2 pins. + * @note After exiting reset, the USB Type-C dead battery behavior is enabled, + * which may have a pull-down effect on CC1 and CC2 pins. It is recommended + * to disable it in all cases, either to stop this pull-down or to hand over + * control to the UCPD (which should therefore be initialized before doing the disable). + * @rmtoll CR3 UCPD_DBDIS LL_PWR_IsEnabledUCPDDeadBattery + * @retval State of feature (1 : enabled; 0 : disabled). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledUCPDDeadBattery(void) +{ + return ((READ_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS) == (PWR_CR3_UCPD_DBDIS)) ? 0UL : 1UL); +} +#endif /* PWR_CR3_UCPD_DBDIS */ + +#if defined(PWR_CR2_USV) +/** + * @brief Enable VDDUSB supply + * @rmtoll CR2 USV LL_PWR_EnableVddUSB + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableVddUSB(void) +{ + SET_BIT(PWR->CR2, PWR_CR2_USV); +} + +/** + * @brief Disable VDDUSB supply + * @rmtoll CR2 USV LL_PWR_DisableVddUSB + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableVddUSB(void) +{ + CLEAR_BIT(PWR->CR2, PWR_CR2_USV); +} + +/** + * @brief Check if VDDUSB supply is enabled + * @rmtoll CR2 USV LL_PWR_IsEnabledVddUSB + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledVddUSB(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR2, PWR_CR2_USV); + + return ((temp == (PWR_CR2_USV))?1U:0U); + +} +#endif + +#if defined(PWR_CR2_IOSV) +/** + * @brief Enable VDDIO2 supply + * @rmtoll CR2 IOSV LL_PWR_EnableVddIO2 + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableVddIO2(void) +{ + SET_BIT(PWR->CR2, PWR_CR2_IOSV); +} + +/** + * @brief Disable VDDIO2 supply + * @rmtoll CR2 IOSV LL_PWR_DisableVddIO2 + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableVddIO2(void) +{ + CLEAR_BIT(PWR->CR2, PWR_CR2_IOSV); +} + +/** + * @brief Check if VDDIO2 supply is enabled + * @rmtoll CR2 IOSV LL_PWR_IsEnabledVddIO2 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledVddIO2(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR2, PWR_CR2_IOSV); + + return ((temp == (PWR_CR2_IOSV))?1U:0U); + +} +#endif + +/** + * @brief Enable the Power Voltage Monitoring on a peripheral + * @rmtoll CR2 PVME1 LL_PWR_EnablePVM\n + * CR2 PVME2 LL_PWR_EnablePVM\n + * CR2 PVME3 LL_PWR_EnablePVM\n + * CR2 PVME4 LL_PWR_EnablePVM + * @param PeriphVoltage This parameter can be one of the following values: + * @arg @ref LL_PWR_PVM_VDDA_COMP (*) + * @arg @ref LL_PWR_PVM_VDDA_FASTDAC (*) + * @arg @ref LL_PWR_PVM_VDDA_ADC + * @arg @ref LL_PWR_PVM_VDDA_OPAMP_DAC + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnablePVM(uint32_t PeriphVoltage) +{ + SET_BIT(PWR->CR2, PeriphVoltage); +} + +/** + * @brief Disable the Power Voltage Monitoring on a peripheral + * @rmtoll CR2 PVME1 LL_PWR_DisablePVM\n + * CR2 PVME2 LL_PWR_DisablePVM\n + * CR2 PVME3 LL_PWR_DisablePVM\n + * CR2 PVME4 LL_PWR_DisablePVM + * @param PeriphVoltage This parameter can be one of the following values: + * @arg @ref LL_PWR_PVM_VDDA_COMP (*) + * @arg @ref LL_PWR_PVM_VDDA_FASTDAC (*) + * @arg @ref LL_PWR_PVM_VDDA_ADC + * @arg @ref LL_PWR_PVM_VDDA_OPAMP_DAC + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisablePVM(uint32_t PeriphVoltage) +{ + CLEAR_BIT(PWR->CR2, PeriphVoltage); +} + +/** + * @brief Check if Power Voltage Monitoring is enabled on a peripheral + * @rmtoll CR2 PVME1 LL_PWR_IsEnabledPVM\n + * CR2 PVME2 LL_PWR_IsEnabledPVM\n + * CR2 PVME3 LL_PWR_IsEnabledPVM\n + * CR2 PVME4 LL_PWR_IsEnabledPVM + * @param PeriphVoltage This parameter can be one of the following values: + * @arg @ref LL_PWR_PVM_VDDA_COMP (*) + * @arg @ref LL_PWR_PVM_VDDA_FASTDAC (*) + * @arg @ref LL_PWR_PVM_VDDA_ADC + * @arg @ref LL_PWR_PVM_VDDA_OPAMP_DAC + * + * (*) value not defined in all devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR2, PeriphVoltage); + + return ((temp == (PeriphVoltage))?1U:0U); + +} + +/** + * @brief Configure the voltage threshold detected by the Power Voltage Detector + * @rmtoll CR2 PLS LL_PWR_SetPVDLevel + * @param PVDLevel This parameter can be one of the following values: + * @arg @ref LL_PWR_PVDLEVEL_0 + * @arg @ref LL_PWR_PVDLEVEL_1 + * @arg @ref LL_PWR_PVDLEVEL_2 + * @arg @ref LL_PWR_PVDLEVEL_3 + * @arg @ref LL_PWR_PVDLEVEL_4 + * @arg @ref LL_PWR_PVDLEVEL_5 + * @arg @ref LL_PWR_PVDLEVEL_6 + * @arg @ref LL_PWR_PVDLEVEL_7 + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel) +{ + MODIFY_REG(PWR->CR2, PWR_CR2_PLS, PVDLevel); +} + +/** + * @brief Get the voltage threshold detection + * @rmtoll CR2 PLS LL_PWR_GetPVDLevel + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_PVDLEVEL_0 + * @arg @ref LL_PWR_PVDLEVEL_1 + * @arg @ref LL_PWR_PVDLEVEL_2 + * @arg @ref LL_PWR_PVDLEVEL_3 + * @arg @ref LL_PWR_PVDLEVEL_4 + * @arg @ref LL_PWR_PVDLEVEL_5 + * @arg @ref LL_PWR_PVDLEVEL_6 + * @arg @ref LL_PWR_PVDLEVEL_7 + */ +__STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void) +{ + return (uint32_t)(READ_BIT(PWR->CR2, PWR_CR2_PLS)); +} + +/** + * @brief Enable Power Voltage Detector + * @rmtoll CR2 PVDE LL_PWR_EnablePVD + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnablePVD(void) +{ + SET_BIT(PWR->CR2, PWR_CR2_PVDE); +} + +/** + * @brief Disable Power Voltage Detector + * @rmtoll CR2 PVDE LL_PWR_DisablePVD + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisablePVD(void) +{ + CLEAR_BIT(PWR->CR2, PWR_CR2_PVDE); +} + +/** + * @brief Check if Power Voltage Detector is enabled + * @rmtoll CR2 PVDE LL_PWR_IsEnabledPVD + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR2, PWR_CR2_PVDE); + + return ((temp == (PWR_CR2_PVDE))?1U:0U); +} + +/** + * @brief Enable Internal Wake-up line + * @rmtoll CR3 EIWF LL_PWR_EnableInternWU + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableInternWU(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_EIWF); +} + +/** + * @brief Disable Internal Wake-up line + * @rmtoll CR3 EIWF LL_PWR_DisableInternWU + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableInternWU(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_EIWF); +} + +/** + * @brief Check if Internal Wake-up line is enabled + * @rmtoll CR3 EIWF LL_PWR_IsEnabledInternWU + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledInternWU(void) +{ + return ((READ_BIT(PWR->CR3, PWR_CR3_EIWF) == (PWR_CR3_EIWF))?1UL:0UL); +} + +/** + * @brief Enable pull-up and pull-down configuration + * @rmtoll CR3 APC LL_PWR_EnablePUPDCfg + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnablePUPDCfg(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_APC); +} + +/** + * @brief Disable pull-up and pull-down configuration + * @rmtoll CR3 APC LL_PWR_DisablePUPDCfg + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisablePUPDCfg(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_APC); +} + +/** + * @brief Check if pull-up and pull-down configuration is enabled + * @rmtoll CR3 APC LL_PWR_IsEnabledPUPDCfg + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledPUPDCfg(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR3, PWR_CR3_APC); + + return ((temp == (PWR_CR3_APC))?1U:0U); +} + +#if defined(SRAM2_BASE) +/** + * @brief Enable SRAM2 content retention in Standby mode + * @rmtoll CR3 RRS LL_PWR_EnableSRAM2Retention + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableSRAM2Retention(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_RRS); +} + +/** + * @brief Disable SRAM2 content retention in Standby mode + * @rmtoll CR3 RRS LL_PWR_DisableSRAM2Retention + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableSRAM2Retention(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_RRS); +} + +/** + * @brief Check if SRAM2 content retention in Standby mode is enabled + * @rmtoll CR3 RRS LL_PWR_IsEnabledSRAM2Retention + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledSRAM2Retention(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR3, PWR_CR3_RRS); + + return ((temp == (PWR_CR3_RRS))?1U:0U); +} + +#endif /* SRAM2_BASE */ +/** + * @brief Enable the WakeUp PINx functionality + * @rmtoll CR3 EWUP1 LL_PWR_EnableWakeUpPin\n + * CR3 EWUP2 LL_PWR_EnableWakeUpPin\n + * CR3 EWUP3 LL_PWR_EnableWakeUpPin\n + * CR3 EWUP4 LL_PWR_EnableWakeUpPin\n + * CR3 EWUP5 LL_PWR_EnableWakeUpPin\n + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 + * @arg @ref LL_PWR_WAKEUP_PIN4 + * @arg @ref LL_PWR_WAKEUP_PIN5 + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin) +{ + SET_BIT(PWR->CR3, WakeUpPin); +} + +/** + * @brief Disable the WakeUp PINx functionality + * @rmtoll CR3 EWUP1 LL_PWR_DisableWakeUpPin\n + * CR3 EWUP2 LL_PWR_DisableWakeUpPin\n + * CR3 EWUP3 LL_PWR_DisableWakeUpPin\n + * CR3 EWUP4 LL_PWR_DisableWakeUpPin\n + * CR3 EWUP5 LL_PWR_DisableWakeUpPin\n + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 + * @arg @ref LL_PWR_WAKEUP_PIN4 + * @arg @ref LL_PWR_WAKEUP_PIN5 + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin) +{ + CLEAR_BIT(PWR->CR3, WakeUpPin); +} + +/** + * @brief Check if the WakeUp PINx functionality is enabled + * @rmtoll CR3 EWUP1 LL_PWR_IsEnabledWakeUpPin\n + * CR3 EWUP2 LL_PWR_IsEnabledWakeUpPin\n + * CR3 EWUP3 LL_PWR_IsEnabledWakeUpPin\n + * CR3 EWUP4 LL_PWR_IsEnabledWakeUpPin\n + * CR3 EWUP5 LL_PWR_IsEnabledWakeUpPin\n + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 + * @arg @ref LL_PWR_WAKEUP_PIN4 + * @arg @ref LL_PWR_WAKEUP_PIN5 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR3, WakeUpPin); + + return ((temp == (WakeUpPin))?1U:0U); +} + +/** + * @brief Set the resistor impedance + * @rmtoll CR4 VBRS LL_PWR_SetBattChargResistor + * @param Resistor This parameter can be one of the following values: + * @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K + * @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor) +{ + MODIFY_REG(PWR->CR4, PWR_CR4_VBRS, Resistor); +} + +/** + * @brief Get the resistor impedance + * @rmtoll CR4 VBRS LL_PWR_GetBattChargResistor + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K + * @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K + */ +__STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void) +{ + return (uint32_t)(READ_BIT(PWR->CR4, PWR_CR4_VBRS)); +} + +/** + * @brief Enable battery charging + * @rmtoll CR4 VBE LL_PWR_EnableBatteryCharging + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableBatteryCharging(void) +{ + SET_BIT(PWR->CR4, PWR_CR4_VBE); +} + +/** + * @brief Disable battery charging + * @rmtoll CR4 VBE LL_PWR_DisableBatteryCharging + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableBatteryCharging(void) +{ + CLEAR_BIT(PWR->CR4, PWR_CR4_VBE); +} + +/** + * @brief Check if battery charging is enabled + * @rmtoll CR4 VBE LL_PWR_IsEnabledBatteryCharging + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR4, PWR_CR4_VBE); + + return ((temp == (PWR_CR4_VBE))?1U:0U); +} + +/** + * @brief Set the Wake-Up pin polarity low for the event detection + * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityLow\n + * CR4 WP2 LL_PWR_SetWakeUpPinPolarityLow\n + * CR4 WP3 LL_PWR_SetWakeUpPinPolarityLow\n + * CR4 WP4 LL_PWR_SetWakeUpPinPolarityLow\n + * CR4 WP5 LL_PWR_SetWakeUpPinPolarityLow + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 + * @arg @ref LL_PWR_WAKEUP_PIN4 + * @arg @ref LL_PWR_WAKEUP_PIN5 + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin) +{ + SET_BIT(PWR->CR4, WakeUpPin); +} + +/** + * @brief Set the Wake-Up pin polarity high for the event detection + * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityHigh\n + * CR4 WP2 LL_PWR_SetWakeUpPinPolarityHigh\n + * CR4 WP3 LL_PWR_SetWakeUpPinPolarityHigh\n + * CR4 WP4 LL_PWR_SetWakeUpPinPolarityHigh\n + * CR4 WP5 LL_PWR_SetWakeUpPinPolarityHigh + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 + * @arg @ref LL_PWR_WAKEUP_PIN4 + * @arg @ref LL_PWR_WAKEUP_PIN5 + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin) +{ + CLEAR_BIT(PWR->CR4, WakeUpPin); +} + +/** + * @brief Get the Wake-Up pin polarity for the event detection + * @rmtoll CR4 WP1 LL_PWR_IsWakeUpPinPolarityLow\n + * CR4 WP2 LL_PWR_IsWakeUpPinPolarityLow\n + * CR4 WP3 LL_PWR_IsWakeUpPinPolarityLow\n + * CR4 WP4 LL_PWR_IsWakeUpPinPolarityLow\n + * CR4 WP5 LL_PWR_IsWakeUpPinPolarityLow + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 + * @arg @ref LL_PWR_WAKEUP_PIN4 + * @arg @ref LL_PWR_WAKEUP_PIN5 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin) +{ + uint32_t temp; + temp = READ_BIT(PWR->CR4, WakeUpPin); + + return ((temp == (WakeUpPin))?1U:0U); +} + +/** + * @brief Enable GPIO pull-up state in Standby and Shutdown modes + * @rmtoll PUCRA PU0-15 LL_PWR_EnableGPIOPullUp\n + * PUCRB PU0-15 LL_PWR_EnableGPIOPullUp\n + * PUCRC PU0-15 LL_PWR_EnableGPIOPullUp\n + * PUCRD PU0-15 LL_PWR_EnableGPIOPullUp\n + * PUCRE PU0-15 LL_PWR_EnableGPIOPullUp\n + * PUCRF PU0-15 LL_PWR_EnableGPIOPullUp\n + * PUCRG PU0-15 LL_PWR_EnableGPIOPullUp\n + * @param GPIO This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_A + * @arg @ref LL_PWR_GPIO_B + * @arg @ref LL_PWR_GPIO_C + * @arg @ref LL_PWR_GPIO_D + * @arg @ref LL_PWR_GPIO_E + * @arg @ref LL_PWR_GPIO_F + * @arg @ref LL_PWR_GPIO_G + * + * (*) value not defined in all devices + * @param GPIONumber This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_BIT_0 + * @arg @ref LL_PWR_GPIO_BIT_1 + * @arg @ref LL_PWR_GPIO_BIT_2 + * @arg @ref LL_PWR_GPIO_BIT_3 + * @arg @ref LL_PWR_GPIO_BIT_4 + * @arg @ref LL_PWR_GPIO_BIT_5 + * @arg @ref LL_PWR_GPIO_BIT_6 + * @arg @ref LL_PWR_GPIO_BIT_7 + * @arg @ref LL_PWR_GPIO_BIT_8 + * @arg @ref LL_PWR_GPIO_BIT_9 + * @arg @ref LL_PWR_GPIO_BIT_10 + * @arg @ref LL_PWR_GPIO_BIT_11 + * @arg @ref LL_PWR_GPIO_BIT_12 + * @arg @ref LL_PWR_GPIO_BIT_13 + * @arg @ref LL_PWR_GPIO_BIT_14 + * @arg @ref LL_PWR_GPIO_BIT_15 + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) +{ + SET_BIT(*((__IO uint32_t *)GPIO), GPIONumber); +} + +/** + * @brief Disable GPIO pull-up state in Standby and Shutdown modes + * @rmtoll PUCRA PU0-15 LL_PWR_DisableGPIOPullUp\n + * PUCRB PU0-15 LL_PWR_DisableGPIOPullUp\n + * PUCRC PU0-15 LL_PWR_DisableGPIOPullUp\n + * PUCRD PU0-15 LL_PWR_DisableGPIOPullUp\n + * PUCRE PU0-15 LL_PWR_DisableGPIOPullUp\n + * PUCRF PU0-15 LL_PWR_DisableGPIOPullUp\n + * PUCRG PU0-15 LL_PWR_DisableGPIOPullUp\n + * @param GPIO This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_A + * @arg @ref LL_PWR_GPIO_B + * @arg @ref LL_PWR_GPIO_C + * @arg @ref LL_PWR_GPIO_D + * @arg @ref LL_PWR_GPIO_E + * @arg @ref LL_PWR_GPIO_F + * @arg @ref LL_PWR_GPIO_G + * + * (*) value not defined in all devices + * @param GPIONumber This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_BIT_0 + * @arg @ref LL_PWR_GPIO_BIT_1 + * @arg @ref LL_PWR_GPIO_BIT_2 + * @arg @ref LL_PWR_GPIO_BIT_3 + * @arg @ref LL_PWR_GPIO_BIT_4 + * @arg @ref LL_PWR_GPIO_BIT_5 + * @arg @ref LL_PWR_GPIO_BIT_6 + * @arg @ref LL_PWR_GPIO_BIT_7 + * @arg @ref LL_PWR_GPIO_BIT_8 + * @arg @ref LL_PWR_GPIO_BIT_9 + * @arg @ref LL_PWR_GPIO_BIT_10 + * @arg @ref LL_PWR_GPIO_BIT_11 + * @arg @ref LL_PWR_GPIO_BIT_12 + * @arg @ref LL_PWR_GPIO_BIT_13 + * @arg @ref LL_PWR_GPIO_BIT_14 + * @arg @ref LL_PWR_GPIO_BIT_15 + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) +{ + CLEAR_BIT(*((__IO uint32_t *)GPIO), GPIONumber); +} + +/** + * @brief Check if GPIO pull-up state is enabled + * @rmtoll PUCRA PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * PUCRB PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * PUCRC PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * PUCRD PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * PUCRE PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * PUCRF PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * PUCRG PU0-15 LL_PWR_IsEnabledGPIOPullUp\n + * @param GPIO This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_A + * @arg @ref LL_PWR_GPIO_B + * @arg @ref LL_PWR_GPIO_C + * @arg @ref LL_PWR_GPIO_D + * @arg @ref LL_PWR_GPIO_E + * @arg @ref LL_PWR_GPIO_F + * @arg @ref LL_PWR_GPIO_G + * + * (*) value not defined in all devices + * @param GPIONumber This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_BIT_0 + * @arg @ref LL_PWR_GPIO_BIT_1 + * @arg @ref LL_PWR_GPIO_BIT_2 + * @arg @ref LL_PWR_GPIO_BIT_3 + * @arg @ref LL_PWR_GPIO_BIT_4 + * @arg @ref LL_PWR_GPIO_BIT_5 + * @arg @ref LL_PWR_GPIO_BIT_6 + * @arg @ref LL_PWR_GPIO_BIT_7 + * @arg @ref LL_PWR_GPIO_BIT_8 + * @arg @ref LL_PWR_GPIO_BIT_9 + * @arg @ref LL_PWR_GPIO_BIT_10 + * @arg @ref LL_PWR_GPIO_BIT_11 + * @arg @ref LL_PWR_GPIO_BIT_12 + * @arg @ref LL_PWR_GPIO_BIT_13 + * @arg @ref LL_PWR_GPIO_BIT_14 + * @arg @ref LL_PWR_GPIO_BIT_15 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) +{ + return ((READ_BIT(*((__IO uint32_t *)GPIO), GPIONumber) == (GPIONumber)) ? 1UL : 0UL); +} + +/** + * @brief Enable GPIO pull-down state in Standby and Shutdown modes + * @rmtoll PDCRA PD0-15 LL_PWR_EnableGPIOPullDown\n + * PDCRB PD0-15 LL_PWR_EnableGPIOPullDown\n + * PDCRC PD0-15 LL_PWR_EnableGPIOPullDown\n + * PDCRD PD0-15 LL_PWR_EnableGPIOPullDown\n + * PDCRE PD0-15 LL_PWR_EnableGPIOPullDown\n + * PDCRF PD0-15 LL_PWR_EnableGPIOPullDown\n + * PDCRG PD0-15 LL_PWR_EnableGPIOPullDown\n + * @param GPIO This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_A + * @arg @ref LL_PWR_GPIO_B + * @arg @ref LL_PWR_GPIO_C + * @arg @ref LL_PWR_GPIO_D + * @arg @ref LL_PWR_GPIO_E + * @arg @ref LL_PWR_GPIO_F + * @arg @ref LL_PWR_GPIO_G + * + * (*) value not defined in all devices + * @param GPIONumber This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_BIT_0 + * @arg @ref LL_PWR_GPIO_BIT_1 + * @arg @ref LL_PWR_GPIO_BIT_2 + * @arg @ref LL_PWR_GPIO_BIT_3 + * @arg @ref LL_PWR_GPIO_BIT_4 + * @arg @ref LL_PWR_GPIO_BIT_5 + * @arg @ref LL_PWR_GPIO_BIT_6 + * @arg @ref LL_PWR_GPIO_BIT_7 + * @arg @ref LL_PWR_GPIO_BIT_8 + * @arg @ref LL_PWR_GPIO_BIT_9 + * @arg @ref LL_PWR_GPIO_BIT_10 + * @arg @ref LL_PWR_GPIO_BIT_11 + * @arg @ref LL_PWR_GPIO_BIT_12 + * @arg @ref LL_PWR_GPIO_BIT_13 + * @arg @ref LL_PWR_GPIO_BIT_14 + * @arg @ref LL_PWR_GPIO_BIT_15 + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) +{ + SET_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber); +} + +/** + * @brief Disable GPIO pull-down state in Standby and Shutdown modes + * @rmtoll PDCRA PD0-15 LL_PWR_DisableGPIOPullDown\n + * PDCRB PD0-15 LL_PWR_DisableGPIOPullDown\n + * PDCRC PD0-15 LL_PWR_DisableGPIOPullDown\n + * PDCRD PD0-15 LL_PWR_DisableGPIOPullDown\n + * PDCRE PD0-15 LL_PWR_DisableGPIOPullDown\n + * PDCRF PD0-15 LL_PWR_DisableGPIOPullDown\n + * PDCRG PD0-15 LL_PWR_DisableGPIOPullDown\n + * @param GPIO This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_A + * @arg @ref LL_PWR_GPIO_B + * @arg @ref LL_PWR_GPIO_C + * @arg @ref LL_PWR_GPIO_D + * @arg @ref LL_PWR_GPIO_E + * @arg @ref LL_PWR_GPIO_F + * @arg @ref LL_PWR_GPIO_G + * + * (*) value not defined in all devices + * @param GPIONumber This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_BIT_0 + * @arg @ref LL_PWR_GPIO_BIT_1 + * @arg @ref LL_PWR_GPIO_BIT_2 + * @arg @ref LL_PWR_GPIO_BIT_3 + * @arg @ref LL_PWR_GPIO_BIT_4 + * @arg @ref LL_PWR_GPIO_BIT_5 + * @arg @ref LL_PWR_GPIO_BIT_6 + * @arg @ref LL_PWR_GPIO_BIT_7 + * @arg @ref LL_PWR_GPIO_BIT_8 + * @arg @ref LL_PWR_GPIO_BIT_9 + * @arg @ref LL_PWR_GPIO_BIT_10 + * @arg @ref LL_PWR_GPIO_BIT_11 + * @arg @ref LL_PWR_GPIO_BIT_12 + * @arg @ref LL_PWR_GPIO_BIT_13 + * @arg @ref LL_PWR_GPIO_BIT_14 + * @arg @ref LL_PWR_GPIO_BIT_15 + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) +{ + CLEAR_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber); +} + +/** + * @brief Check if GPIO pull-down state is enabled + * @rmtoll PDCRA PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * PDCRB PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * PDCRC PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * PDCRD PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * PDCRE PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * PDCRF PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * PDCRG PD0-15 LL_PWR_IsEnabledGPIOPullDown\n + * @param GPIO This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_A + * @arg @ref LL_PWR_GPIO_B + * @arg @ref LL_PWR_GPIO_C + * @arg @ref LL_PWR_GPIO_D + * @arg @ref LL_PWR_GPIO_E + * @arg @ref LL_PWR_GPIO_F + * @arg @ref LL_PWR_GPIO_G + * + * (*) value not defined in all devices + * @param GPIONumber This parameter can be one of the following values: + * @arg @ref LL_PWR_GPIO_BIT_0 + * @arg @ref LL_PWR_GPIO_BIT_1 + * @arg @ref LL_PWR_GPIO_BIT_2 + * @arg @ref LL_PWR_GPIO_BIT_3 + * @arg @ref LL_PWR_GPIO_BIT_4 + * @arg @ref LL_PWR_GPIO_BIT_5 + * @arg @ref LL_PWR_GPIO_BIT_6 + * @arg @ref LL_PWR_GPIO_BIT_7 + * @arg @ref LL_PWR_GPIO_BIT_8 + * @arg @ref LL_PWR_GPIO_BIT_9 + * @arg @ref LL_PWR_GPIO_BIT_10 + * @arg @ref LL_PWR_GPIO_BIT_11 + * @arg @ref LL_PWR_GPIO_BIT_12 + * @arg @ref LL_PWR_GPIO_BIT_13 + * @arg @ref LL_PWR_GPIO_BIT_14 + * @arg @ref LL_PWR_GPIO_BIT_15 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) +{ + return ((READ_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber) == (GPIONumber)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Get Internal Wake-up line Flag + * @rmtoll SR1 WUFI LL_PWR_IsActiveFlag_InternWU + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_InternWU(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_WUFI); + + return ((temp == (PWR_SR1_WUFI))?1U:0U); + +} + +/** + * @brief Get Stand-By Flag + * @rmtoll SR1 SBF LL_PWR_IsActiveFlag_SB + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_SBF); + + return ((temp == (PWR_SR1_SBF))?1U:0U); + +} + +/** + * @brief Get Wake-up Flag 5 + * @rmtoll SR1 WUF5 LL_PWR_IsActiveFlag_WU5 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_WUF5); + + return ((temp == (PWR_SR1_WUF5))?1U:0U); +} + +/** + * @brief Get Wake-up Flag 4 + * @rmtoll SR1 WUF4 LL_PWR_IsActiveFlag_WU4 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_WUF4); + + return ((temp == (PWR_SR1_WUF4))?1U:0U); +} + +/** + * @brief Get Wake-up Flag 3 + * @rmtoll SR1 WUF3 LL_PWR_IsActiveFlag_WU3 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_WUF3); + + return ((temp == (PWR_SR1_WUF3))?1U:0U); +} + +/** + * @brief Get Wake-up Flag 2 + * @rmtoll SR1 WUF2 LL_PWR_IsActiveFlag_WU2 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_WUF2); + + return ((temp == (PWR_SR1_WUF2))?1U:0U); +} + +/** + * @brief Get Wake-up Flag 1 + * @rmtoll SR1 WUF1 LL_PWR_IsActiveFlag_WU1 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR1, PWR_SR1_WUF1); + + return ((temp == (PWR_SR1_WUF1))?1U:0U); +} + +/** + * @brief Clear Stand-By Flag + * @rmtoll SCR CSBF LL_PWR_ClearFlag_SB + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_SB(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CSBF); +} + +/** + * @brief Clear Wake-up Flags + * @rmtoll SCR CWUF LL_PWR_ClearFlag_WU + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CWUF); +} + +/** + * @brief Clear Wake-up Flag 5 + * @rmtoll SCR CWUF5 LL_PWR_ClearFlag_WU5 + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU5(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CWUF5); +} + +/** + * @brief Clear Wake-up Flag 4 + * @rmtoll SCR CWUF4 LL_PWR_ClearFlag_WU4 + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU4(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CWUF4); +} + +/** + * @brief Clear Wake-up Flag 3 + * @rmtoll SCR CWUF3 LL_PWR_ClearFlag_WU3 + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU3(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CWUF3); +} + +/** + * @brief Clear Wake-up Flag 2 + * @rmtoll SCR CWUF2 LL_PWR_ClearFlag_WU2 + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU2(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CWUF2); +} + +/** + * @brief Clear Wake-up Flag 1 + * @rmtoll SCR CWUF1 LL_PWR_ClearFlag_WU1 + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU1(void) +{ + WRITE_REG(PWR->SCR, PWR_SCR_CWUF1); +} + +/** + * @brief Indicate whether VDDA voltage is below or above PVM4 threshold + * @rmtoll SR2 PVMO4 LL_PWR_IsActiveFlag_PVMO4 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO4(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_PVMO4); + + return ((temp == (PWR_SR2_PVMO4))?1U:0U); + +} + +/** + * @brief Indicate whether VDDA voltage is below or above PVM3 threshold + * @rmtoll SR2 PVMO3 LL_PWR_IsActiveFlag_PVMO3 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO3(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_PVMO3); + + return ((temp == (PWR_SR2_PVMO3))?1U:0U); + +} + +#if defined(PWR_SR2_PVMO2) +/** + * @brief Indicate whether VDDIO2 voltage is below or above PVM2 threshold + * @rmtoll SR2 PVMO2 LL_PWR_IsActiveFlag_PVMO2 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO2(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_PVMO2); + + return ((temp == (PWR_SR2_PVMO2))?1U:0U); + +} +#endif /* PWR_SR2_PVMO2 */ + +#if defined(PWR_SR2_PVMO1) +/** + * @brief Indicate whether VDDUSB voltage is below or above PVM1 threshold + * @rmtoll SR2 PVMO1 LL_PWR_IsActiveFlag_PVMO1 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO1(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_PVMO1); + + return ((temp == (PWR_SR2_PVMO1))?1U:0U); + +} +#endif /* PWR_SR2_PVMO1 */ + +/** + * @brief Indicate whether VDD voltage is below or above the selected PVD threshold + * @rmtoll SR2 PVDO LL_PWR_IsActiveFlag_PVDO + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_PVDO); + + return ((temp == (PWR_SR2_PVDO))?1U:0U); + +} + +/** + * @brief Indicate whether the regulator is ready in the selected voltage range or if its output voltage is still changing to the required voltage level + * @rmtoll SR2 VOSF LL_PWR_IsActiveFlag_VOS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_VOSF); + + return ((temp == (PWR_SR2_VOSF))?1U:0U); + +} + +/** + * @brief Indicate whether the regulator is ready in main mode or is in low-power mode + * @note: Take care, return value "0" means the regulator is ready. Return value "1" means the output voltage range is still changing. + * @rmtoll SR2 REGLPF LL_PWR_IsActiveFlag_REGLPF + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPF(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_REGLPF); + + return ((temp == (PWR_SR2_REGLPF))?1U:0U); + +} + +/** + * @brief Indicate whether or not the low-power regulator is ready + * @rmtoll SR2 REGLPS LL_PWR_IsActiveFlag_REGLPS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPS(void) +{ + uint32_t temp; + temp = READ_BIT(PWR->SR2, PWR_SR2_REGLPS); + + return ((temp == (PWR_SR2_REGLPS))?1U:0U); + +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup PWR_LL_EF_Init De-initialization function + * @{ + */ +ErrorStatus LL_PWR_DeInit(void); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** @defgroup PWR_LL_EF_Legacy_Functions Legacy functions name + * @{ + */ +/* Old functions name kept for legacy purpose, to be replaced by the */ +/* current functions name. */ +#define LL_PWR_IsActiveFlag_VOSF LL_PWR_IsActiveFlag_VOS +#define LL_PWR_EnableUSBDeadBattery LL_PWR_EnableUCPDDeadBattery +#define LL_PWR_DisableUSBDeadBattery LL_PWR_DisableUCPDDeadBattery +#define LL_PWR_IsEnabledUSBDeadBattery LL_PWR_IsEnabledUCPDDeadBattery +#define LL_PWR_EnableDeadBatteryPD LL_PWR_EnableUCPDDeadBattery +#define LL_PWR_DisableDeadBatteryPD LL_PWR_DisableUCPDDeadBattery +#define LL_PWR_EnableUSBStandByModePD LL_PWR_EnableUCPDStandbyMode +#define LL_PWR_EnableStandByModePD LL_PWR_EnableUCPDStandbyMode +#define LL_PWR_DisableUSBStandByModePD LL_PWR_DisableUCPDStandbyMode +#define LL_PWR_DisableStandByModePD LL_PWR_DisableUCPDStandbyMode +#define LL_PWR_IsEnabledUSBStandByModePD LL_PWR_IsEnabledUCPDStandbyMode +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(PWR) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_PWR_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_rcc.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_rcc.h new file mode 100644 index 0000000..eb9d9f4 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_rcc.h @@ -0,0 +1,3008 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_rcc.h + * @author MCD Application Team + * @brief Header file of RCC LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_RCC_H +#define STM32G4xx_LL_RCC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +/** @defgroup RCC_LL RCC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup RCC_LL_Private_Variables RCC Private Variables + * @{ + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup RCC_LL_Private_Constants RCC Private Constants + * @{ + */ +/* Defines used to perform offsets*/ +/* Offset used to access to RCC_CCIPR and RCC_CCIPR2 registers */ +#define RCC_OFFSET_CCIPR 0U +#define RCC_OFFSET_CCIPR2 0x14U + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_Private_Macros RCC Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_Exported_Types RCC Exported Types + * @{ + */ + +/** @defgroup LL_ES_CLOCK_FREQ Clocks Frequency Structure + * @{ + */ + +/** + * @brief RCC Clocks Frequency Structure + */ +typedef struct +{ + uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency */ + uint32_t HCLK_Frequency; /*!< HCLK clock frequency */ + uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency */ + uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency */ +} LL_RCC_ClocksTypeDef; + +/** + * @} + */ + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Constants RCC Exported Constants + * @{ + */ + +/** @defgroup RCC_LL_EC_OSC_VALUES Oscillator Values adaptation + * @brief Defines used to adapt values of different oscillators + * @note These values could be modified in the user environment according to + * HW set-up. + * @{ + */ +#if !defined (HSE_VALUE) +#define HSE_VALUE 8000000U /*!< Value of the HSE oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 16000000U /*!< Value of the HSI oscillator in Hz */ +#endif /* HSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of the LSE oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32000U /*!< Value of the LSI oscillator in Hz */ +#endif /* LSI_VALUE */ + +#if !defined (HSI48_VALUE) +#define HSI48_VALUE 48000000U /*!< Value of the HSI48 oscillator in Hz */ +#endif /* HSI48_VALUE */ + +#if !defined (EXTERNAL_CLOCK_VALUE) +#define EXTERNAL_CLOCK_VALUE 48000U /*!< Value of the I2S_CKIN, I2S and SAI1 external clock source in Hz */ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/** + * @} + */ + +/** @defgroup RCC_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_RCC_WriteReg function + * @{ + */ +#define LL_RCC_CICR_LSIRDYC RCC_CICR_LSIRDYC /*!< LSI Ready Interrupt Clear */ +#define LL_RCC_CICR_LSERDYC RCC_CICR_LSERDYC /*!< LSE Ready Interrupt Clear */ +#define LL_RCC_CICR_HSIRDYC RCC_CICR_HSIRDYC /*!< HSI Ready Interrupt Clear */ +#define LL_RCC_CICR_HSERDYC RCC_CICR_HSERDYC /*!< HSE Ready Interrupt Clear */ +#define LL_RCC_CICR_PLLRDYC RCC_CICR_PLLRDYC /*!< PLL Ready Interrupt Clear */ +#define LL_RCC_CICR_HSI48RDYC RCC_CICR_HSI48RDYC /*!< HSI48 Ready Interrupt Clear */ +#define LL_RCC_CICR_LSECSSC RCC_CICR_LSECSSC /*!< LSE Clock Security System Interrupt Clear */ +#define LL_RCC_CICR_CSSC RCC_CICR_CSSC /*!< Clock Security System Interrupt Clear */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_RCC_ReadReg function + * @{ + */ +#define LL_RCC_CIFR_LSIRDYF RCC_CIFR_LSIRDYF /*!< LSI Ready Interrupt flag */ +#define LL_RCC_CIFR_LSERDYF RCC_CIFR_LSERDYF /*!< LSE Ready Interrupt flag */ +#define LL_RCC_CIFR_HSIRDYF RCC_CIFR_HSIRDYF /*!< HSI Ready Interrupt flag */ +#define LL_RCC_CIFR_HSERDYF RCC_CIFR_HSERDYF /*!< HSE Ready Interrupt flag */ +#define LL_RCC_CIFR_PLLRDYF RCC_CIFR_PLLRDYF /*!< PLL Ready Interrupt flag */ +#define LL_RCC_CIFR_HSI48RDYF RCC_CIFR_HSI48RDYF /*!< HSI48 Ready Interrupt flag */ +#define LL_RCC_CIFR_LSECSSF RCC_CIFR_LSECSSF /*!< LSE Clock Security System Interrupt flag */ +#define LL_RCC_CIFR_CSSF RCC_CIFR_CSSF /*!< Clock Security System Interrupt flag */ +#define LL_RCC_CSR_LPWRRSTF RCC_CSR_LPWRRSTF /*!< Low-Power reset flag */ +#define LL_RCC_CSR_OBLRSTF RCC_CSR_OBLRSTF /*!< OBL reset flag */ +#define LL_RCC_CSR_PINRSTF RCC_CSR_PINRSTF /*!< PIN reset flag */ +#define LL_RCC_CSR_SFTRSTF RCC_CSR_SFTRSTF /*!< Software Reset flag */ +#define LL_RCC_CSR_IWDGRSTF RCC_CSR_IWDGRSTF /*!< Independent Watchdog reset flag */ +#define LL_RCC_CSR_WWDGRSTF RCC_CSR_WWDGRSTF /*!< Window watchdog reset flag */ +#define LL_RCC_CSR_BORRSTF RCC_CSR_BORRSTF /*!< BOR reset flag */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_RCC_ReadReg and LL_RCC_WriteReg functions + * @{ + */ +#define LL_RCC_CIER_LSIRDYIE RCC_CIER_LSIRDYIE /*!< LSI Ready Interrupt Enable */ +#define LL_RCC_CIER_LSERDYIE RCC_CIER_LSERDYIE /*!< LSE Ready Interrupt Enable */ +#define LL_RCC_CIER_HSIRDYIE RCC_CIER_HSIRDYIE /*!< HSI Ready Interrupt Enable */ +#define LL_RCC_CIER_HSERDYIE RCC_CIER_HSERDYIE /*!< HSE Ready Interrupt Enable */ +#define LL_RCC_CIER_PLLRDYIE RCC_CIER_PLLRDYIE /*!< PLL Ready Interrupt Enable */ +#define LL_RCC_CIER_HSI48RDYIE RCC_CIER_HSI48RDYIE /*!< HSI48 Ready Interrupt Enable */ +#define LL_RCC_CIER_LSECSSIE RCC_CIER_LSECSSIE /*!< LSE CSS Interrupt Enable */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LSEDRIVE LSE oscillator drive capability + * @{ + */ +#define LL_RCC_LSEDRIVE_LOW 0x00000000U /*!< Xtal mode lower driving capability */ +#define LL_RCC_LSEDRIVE_MEDIUMLOW RCC_BDCR_LSEDRV_0 /*!< Xtal mode medium low driving capability */ +#define LL_RCC_LSEDRIVE_MEDIUMHIGH RCC_BDCR_LSEDRV_1 /*!< Xtal mode medium high driving capability */ +#define LL_RCC_LSEDRIVE_HIGH RCC_BDCR_LSEDRV /*!< Xtal mode higher driving capability */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LSCO_CLKSOURCE LSCO Selection + * @{ + */ +#define LL_RCC_LSCO_CLKSOURCE_LSI 0x00000000U /*!< LSI selection for low speed clock */ +#define LL_RCC_LSCO_CLKSOURCE_LSE RCC_BDCR_LSCOSEL /*!< LSE selection for low speed clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYS_CLKSOURCE System clock switch + * @{ + */ +#define LL_RCC_SYS_CLKSOURCE_HSI RCC_CFGR_SW_HSI /*!< HSI selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_HSE RCC_CFGR_SW_HSE /*!< HSE selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_PLL RCC_CFGR_SW_PLL /*!< PLL selection as system clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYS_CLKSOURCE_STATUS System clock switch status + * @{ + */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_HSI RCC_CFGR_SWS_HSI /*!< HSI used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_HSE RCC_CFGR_SWS_HSE /*!< HSE used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_PLL RCC_CFGR_SWS_PLL /*!< PLL used as system clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYSCLK_DIV AHB prescaler + * @{ + */ +#define LL_RCC_SYSCLK_DIV_1 RCC_CFGR_HPRE_DIV1 /*!< SYSCLK not divided */ +#define LL_RCC_SYSCLK_DIV_2 RCC_CFGR_HPRE_DIV2 /*!< SYSCLK divided by 2 */ +#define LL_RCC_SYSCLK_DIV_4 RCC_CFGR_HPRE_DIV4 /*!< SYSCLK divided by 4 */ +#define LL_RCC_SYSCLK_DIV_8 RCC_CFGR_HPRE_DIV8 /*!< SYSCLK divided by 8 */ +#define LL_RCC_SYSCLK_DIV_16 RCC_CFGR_HPRE_DIV16 /*!< SYSCLK divided by 16 */ +#define LL_RCC_SYSCLK_DIV_64 RCC_CFGR_HPRE_DIV64 /*!< SYSCLK divided by 64 */ +#define LL_RCC_SYSCLK_DIV_128 RCC_CFGR_HPRE_DIV128 /*!< SYSCLK divided by 128 */ +#define LL_RCC_SYSCLK_DIV_256 RCC_CFGR_HPRE_DIV256 /*!< SYSCLK divided by 256 */ +#define LL_RCC_SYSCLK_DIV_512 RCC_CFGR_HPRE_DIV512 /*!< SYSCLK divided by 512 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_APB1_DIV APB low-speed prescaler (APB1) + * @{ + */ +#define LL_RCC_APB1_DIV_1 RCC_CFGR_PPRE1_DIV1 /*!< HCLK not divided */ +#define LL_RCC_APB1_DIV_2 RCC_CFGR_PPRE1_DIV2 /*!< HCLK divided by 2 */ +#define LL_RCC_APB1_DIV_4 RCC_CFGR_PPRE1_DIV4 /*!< HCLK divided by 4 */ +#define LL_RCC_APB1_DIV_8 RCC_CFGR_PPRE1_DIV8 /*!< HCLK divided by 8 */ +#define LL_RCC_APB1_DIV_16 RCC_CFGR_PPRE1_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_APB2_DIV APB high-speed prescaler (APB2) + * @{ + */ +#define LL_RCC_APB2_DIV_1 RCC_CFGR_PPRE2_DIV1 /*!< HCLK not divided */ +#define LL_RCC_APB2_DIV_2 RCC_CFGR_PPRE2_DIV2 /*!< HCLK divided by 2 */ +#define LL_RCC_APB2_DIV_4 RCC_CFGR_PPRE2_DIV4 /*!< HCLK divided by 4 */ +#define LL_RCC_APB2_DIV_8 RCC_CFGR_PPRE2_DIV8 /*!< HCLK divided by 8 */ +#define LL_RCC_APB2_DIV_16 RCC_CFGR_PPRE2_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MCO1SOURCE MCO1 SOURCE selection + * @{ + */ +#define LL_RCC_MCO1SOURCE_NOCLOCK 0x00000000U /*!< MCO output disabled, no clock on MCO */ +#define LL_RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCOSEL_0 /*!< SYSCLK selection as MCO1 source */ +#define LL_RCC_MCO1SOURCE_HSI (RCC_CFGR_MCOSEL_0| RCC_CFGR_MCOSEL_1) /*!< HSI16 selection as MCO1 source */ +#define LL_RCC_MCO1SOURCE_HSE RCC_CFGR_MCOSEL_2 /*!< HSE selection as MCO1 source */ +#define LL_RCC_MCO1SOURCE_PLLCLK (RCC_CFGR_MCOSEL_0|RCC_CFGR_MCOSEL_2) /*!< Main PLL selection as MCO1 source */ +#define LL_RCC_MCO1SOURCE_LSI (RCC_CFGR_MCOSEL_1|RCC_CFGR_MCOSEL_2) /*!< LSI selection as MCO1 source */ +#define LL_RCC_MCO1SOURCE_LSE (RCC_CFGR_MCOSEL_0|RCC_CFGR_MCOSEL_1|RCC_CFGR_MCOSEL_2) /*!< LSE selection as MCO1 source */ +#define LL_RCC_MCO1SOURCE_HSI48 RCC_CFGR_MCOSEL_3 /*!< HSI48 selection as MCO1 source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MCO1_DIV MCO1 prescaler + * @{ + */ +#define LL_RCC_MCO1_DIV_1 RCC_CFGR_MCOPRE_DIV1 /*!< MCO not divided */ +#define LL_RCC_MCO1_DIV_2 RCC_CFGR_MCOPRE_DIV2 /*!< MCO divided by 2 */ +#define LL_RCC_MCO1_DIV_4 RCC_CFGR_MCOPRE_DIV4 /*!< MCO divided by 4 */ +#define LL_RCC_MCO1_DIV_8 RCC_CFGR_MCOPRE_DIV8 /*!< MCO divided by 8 */ +#define LL_RCC_MCO1_DIV_16 RCC_CFGR_MCOPRE_DIV16 /*!< MCO divided by 16 */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_EC_PERIPH_FREQUENCY Peripheral clock frequency + * @{ + */ +#define LL_RCC_PERIPH_FREQUENCY_NO 0x00000000U /*!< No clock enabled for the peripheral */ +#define LL_RCC_PERIPH_FREQUENCY_NA 0xFFFFFFFFU /*!< Frequency cannot be provided as external clock */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** @defgroup RCC_LL_EC_USARTx_CLKSOURCE Peripheral USART clock source selection + * @{ + */ +#define LL_RCC_USART1_CLKSOURCE_PCLK2 (RCC_CCIPR_USART1SEL << 16U) /*!< PCLK2 clock used as USART1 clock source */ +#define LL_RCC_USART1_CLKSOURCE_SYSCLK ((RCC_CCIPR_USART1SEL << 16U) | RCC_CCIPR_USART1SEL_0) /*!< SYSCLK clock used as USART1 clock source */ +#define LL_RCC_USART1_CLKSOURCE_HSI ((RCC_CCIPR_USART1SEL << 16U) | RCC_CCIPR_USART1SEL_1) /*!< HSI clock used as USART1 clock source */ +#define LL_RCC_USART1_CLKSOURCE_LSE ((RCC_CCIPR_USART1SEL << 16U) | RCC_CCIPR_USART1SEL) /*!< LSE clock used as USART1 clock source */ +#define LL_RCC_USART2_CLKSOURCE_PCLK1 (RCC_CCIPR_USART2SEL << 16U) /*!< PCLK1 clock used as USART2 clock source */ +#define LL_RCC_USART2_CLKSOURCE_SYSCLK ((RCC_CCIPR_USART2SEL << 16U) | RCC_CCIPR_USART2SEL_0) /*!< SYSCLK clock used as USART2 clock source */ +#define LL_RCC_USART2_CLKSOURCE_HSI ((RCC_CCIPR_USART2SEL << 16U) | RCC_CCIPR_USART2SEL_1) /*!< HSI clock used as USART2 clock source */ +#define LL_RCC_USART2_CLKSOURCE_LSE ((RCC_CCIPR_USART2SEL << 16U) | RCC_CCIPR_USART2SEL) /*!< LSE clock used as USART2 clock source */ +#if defined(RCC_CCIPR_USART3SEL) +#define LL_RCC_USART3_CLKSOURCE_PCLK1 (RCC_CCIPR_USART3SEL << 16U) /*!< PCLK1 clock used as USART3 clock source */ +#define LL_RCC_USART3_CLKSOURCE_SYSCLK ((RCC_CCIPR_USART3SEL << 16U) | RCC_CCIPR_USART3SEL_0) /*!< SYSCLK clock used as USART3 clock source */ +#define LL_RCC_USART3_CLKSOURCE_HSI ((RCC_CCIPR_USART3SEL << 16U) | RCC_CCIPR_USART3SEL_1) /*!< HSI clock used as USART3 clock source */ +#define LL_RCC_USART3_CLKSOURCE_LSE ((RCC_CCIPR_USART3SEL << 16U) | RCC_CCIPR_USART3SEL) /*!< LSE clock used as USART3 clock source */ +#endif /* RCC_CCIPR_USART3SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_UARTx_CLKSOURCE Peripheral UART clock source selection + * @{ + */ +#if defined(RCC_CCIPR_UART4SEL) +#define LL_RCC_UART4_CLKSOURCE_PCLK1 (RCC_CCIPR_UART4SEL << 16U) /*!< PCLK1 clock used as UART4 clock source */ +#define LL_RCC_UART4_CLKSOURCE_SYSCLK ((RCC_CCIPR_UART4SEL << 16U) | RCC_CCIPR_UART4SEL_0) /*!< SYSCLK clock used as UART4 clock source */ +#define LL_RCC_UART4_CLKSOURCE_HSI ((RCC_CCIPR_UART4SEL << 16U) | RCC_CCIPR_UART4SEL_1) /*!< HSI clock used as UART4 clock source */ +#define LL_RCC_UART4_CLKSOURCE_LSE ((RCC_CCIPR_UART4SEL << 16U) | RCC_CCIPR_UART4SEL) /*!< LSE clock used as UART4 clock source */ +#endif /* RCC_CCIPR_UART4SEL */ +#if defined(RCC_CCIPR_UART5SEL) +#define LL_RCC_UART5_CLKSOURCE_PCLK1 (RCC_CCIPR_UART5SEL << 16U) /*!< PCLK1 clock used as UART5 clock source */ +#define LL_RCC_UART5_CLKSOURCE_SYSCLK ((RCC_CCIPR_UART5SEL << 16U) | RCC_CCIPR_UART5SEL_0) /*!< SYSCLK clock used as UART5 clock source */ +#define LL_RCC_UART5_CLKSOURCE_HSI ((RCC_CCIPR_UART5SEL << 16U) | RCC_CCIPR_UART5SEL_1) /*!< HSI clock used as UART5 clock source */ +#define LL_RCC_UART5_CLKSOURCE_LSE ((RCC_CCIPR_UART5SEL << 16U) | RCC_CCIPR_UART5SEL) /*!< LSE clock used as UART5 clock source */ +#endif /* RCC_CCIPR_UART5SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LPUART1_CLKSOURCE Peripheral LPUART clock source selection + * @{ + */ +#define LL_RCC_LPUART1_CLKSOURCE_PCLK1 0x00000000U /*!< PCLK1 clock used as LPUART1 clock source */ +#define LL_RCC_LPUART1_CLKSOURCE_SYSCLK RCC_CCIPR_LPUART1SEL_0 /*!< SYSCLK clock used as LPUART1 clock source */ +#define LL_RCC_LPUART1_CLKSOURCE_HSI RCC_CCIPR_LPUART1SEL_1 /*!< HSI clock used as LPUART1 clock source */ +#define LL_RCC_LPUART1_CLKSOURCE_LSE RCC_CCIPR_LPUART1SEL /*!< LSE clock used as LPUART1 clock source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_I2Cx_CLKSOURCE Peripheral I2C clock source selection + * @{ + */ +#define LL_RCC_I2C1_CLKSOURCE_PCLK1 (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C1SEL_Pos << 16U)) /*!< PCLK1 clock used as I2C1 clock source */ +#define LL_RCC_I2C1_CLKSOURCE_SYSCLK (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C1SEL_Pos << 16U) | (RCC_CCIPR_I2C1SEL_0 >> RCC_CCIPR_I2C1SEL_Pos)) /*!< SYSCLK clock used as I2C1 clock source */ +#define LL_RCC_I2C1_CLKSOURCE_HSI (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C1SEL_Pos << 16U) | (RCC_CCIPR_I2C1SEL_1 >> RCC_CCIPR_I2C1SEL_Pos)) /*!< HSI clock used as I2C1 clock source */ +#define LL_RCC_I2C2_CLKSOURCE_PCLK1 (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C2SEL_Pos << 16U)) /*!< PCLK1 clock used as I2C2 clock source */ +#define LL_RCC_I2C2_CLKSOURCE_SYSCLK (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C2SEL_Pos << 16U) | (RCC_CCIPR_I2C2SEL_0 >> RCC_CCIPR_I2C2SEL_Pos)) /*!< SYSCLK clock used as I2C2 clock source */ +#define LL_RCC_I2C2_CLKSOURCE_HSI (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C2SEL_Pos << 16U) | (RCC_CCIPR_I2C2SEL_1 >> RCC_CCIPR_I2C2SEL_Pos)) /*!< HSI clock used as I2C2 clock source */ +#define LL_RCC_I2C3_CLKSOURCE_PCLK1 (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C3SEL_Pos << 16U)) /*!< PCLK1 clock used as I2C3 clock source */ +#define LL_RCC_I2C3_CLKSOURCE_SYSCLK (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C3SEL_Pos << 16U) | (RCC_CCIPR_I2C3SEL_0 >> RCC_CCIPR_I2C3SEL_Pos)) /*!< SYSCLK clock used as I2C3 clock source */ +#define LL_RCC_I2C3_CLKSOURCE_HSI (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C3SEL_Pos << 16U) | (RCC_CCIPR_I2C3SEL_1 >> RCC_CCIPR_I2C3SEL_Pos)) /*!< HSI clock used as I2C3 clock source */ +#if defined(RCC_CCIPR2_I2C4SEL) +#define LL_RCC_I2C4_CLKSOURCE_PCLK1 (((uint32_t)RCC_OFFSET_CCIPR2 << 24U) | ((uint32_t)RCC_CCIPR2_I2C4SEL_Pos << 16U)) /*!< PCLK1 clock used as I2C4 clock source */ +#define LL_RCC_I2C4_CLKSOURCE_SYSCLK (((uint32_t)RCC_OFFSET_CCIPR2 << 24U) | ((uint32_t)RCC_CCIPR2_I2C4SEL_Pos << 16U) | (RCC_CCIPR2_I2C4SEL_0 >> RCC_CCIPR2_I2C4SEL_Pos)) /*!< SYSCLK clock used as I2C4 clock source */ +#define LL_RCC_I2C4_CLKSOURCE_HSI (((uint32_t)RCC_OFFSET_CCIPR2 << 24U) | ((uint32_t)RCC_CCIPR2_I2C4SEL_Pos << 16U) | (RCC_CCIPR2_I2C4SEL_1 >> RCC_CCIPR2_I2C4SEL_Pos)) /*!< HSI clock used as I2C4 clock source */ +#endif /* RCC_CCIPR2_I2C4SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LPTIM1_CLKSOURCE Peripheral LPTIM clock source selection + * @{ + */ +#define LL_RCC_LPTIM1_CLKSOURCE_PCLK1 0x00000000U /*!< PCLK1 clock used as LPTIM1 clock source */ +#define LL_RCC_LPTIM1_CLKSOURCE_LSI RCC_CCIPR_LPTIM1SEL_0 /*!< LSI clock used as LPTIM1 clock source */ +#define LL_RCC_LPTIM1_CLKSOURCE_HSI RCC_CCIPR_LPTIM1SEL_1 /*!< HSI clock used as LPTIM1 clock source */ +#define LL_RCC_LPTIM1_CLKSOURCE_LSE RCC_CCIPR_LPTIM1SEL /*!< LSE clock used as LPTIM1 clock source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SAI1_CLKSOURCE Peripheral SAI clock source selection + * @{ + */ +#define LL_RCC_SAI1_CLKSOURCE_SYSCLK 0x00000000U /*!< System clock used as SAI1 clock source */ +#define LL_RCC_SAI1_CLKSOURCE_PLL RCC_CCIPR_SAI1SEL_0 /*!< PLL clock used as SAI1 clock source */ +#define LL_RCC_SAI1_CLKSOURCE_PIN RCC_CCIPR_SAI1SEL_1 /*!< EXT clock used as SAI1 clock source */ +#define LL_RCC_SAI1_CLKSOURCE_HSI (RCC_CCIPR_SAI1SEL_0 | RCC_CCIPR_SAI1SEL_1) /*!< HSI clock used as SAI1 clock source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_I2S_CLKSOURCE Peripheral I2S clock source selection + * @{ + */ +#define LL_RCC_I2S_CLKSOURCE_SYSCLK 0x00000000U /*!< System clock used as I2S clock source */ +#define LL_RCC_I2S_CLKSOURCE_PLL RCC_CCIPR_I2S23SEL_0 /*!< PLL clock used as I2S clock source */ +#define LL_RCC_I2S_CLKSOURCE_PIN RCC_CCIPR_I2S23SEL_1 /*!< EXT clock used as I2S clock source */ +#define LL_RCC_I2S_CLKSOURCE_HSI (RCC_CCIPR_I2S23SEL_0 | RCC_CCIPR_I2S23SEL_1) /*!< HSI clock used as I2S clock source */ +/** + * @} + */ + +#if defined(FDCAN1) +/** @defgroup RCC_LL_EC_FDCAN_CLKSOURCE Peripheral FDCAN clock source selection + * @{ + */ +#define LL_RCC_FDCAN_CLKSOURCE_HSE 0x00000000U /*!< HSE clock used as FDCAN clock source */ +#define LL_RCC_FDCAN_CLKSOURCE_PLL RCC_CCIPR_FDCANSEL_0 /*!< PLL clock used as FDCAN clock source */ +#define LL_RCC_FDCAN_CLKSOURCE_PCLK1 RCC_CCIPR_FDCANSEL_1 /*!< PCLK1 clock used as FDCAN clock source */ +/** + * @} + */ +#endif /* FDCAN1 */ + +/** @defgroup RCC_LL_EC_RNG_CLKSOURCE Peripheral RNG clock source selection + * @{ + */ +#define LL_RCC_RNG_CLKSOURCE_HSI48 0x00000000U /*!< HSI48 clock used as RNG clock source */ +#define LL_RCC_RNG_CLKSOURCE_PLL RCC_CCIPR_CLK48SEL_1 /*!< PLL clock used as RNG clock source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_USB_CLKSOURCE Peripheral USB clock source selection + * @{ + */ +#define LL_RCC_USB_CLKSOURCE_HSI48 0x00000000U /*!< HSI48 clock used as USB clock source */ +#define LL_RCC_USB_CLKSOURCE_PLL RCC_CCIPR_CLK48SEL_1 /*!< PLL clock used as USB clock source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_ADC_CLKSOURCE Peripheral ADC clock source selection + * @{ + */ +#define LL_RCC_ADC12_CLKSOURCE_NONE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC12SEL_Pos << 16U)) /*!< No clock used as ADC12 clock source */ +#define LL_RCC_ADC12_CLKSOURCE_PLL (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC12SEL_Pos << 16U) | (RCC_CCIPR_ADC12SEL_0 >> RCC_CCIPR_ADC12SEL_Pos)) /*!< PLL clock used as ADC12 clock source */ +#define LL_RCC_ADC12_CLKSOURCE_SYSCLK (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC12SEL_Pos << 16U) | (RCC_CCIPR_ADC12SEL_1 >> RCC_CCIPR_ADC12SEL_Pos)) /*!< SYSCLK clock used as ADC12 clock source */ +#if defined(RCC_CCIPR_ADC345SEL) +#define LL_RCC_ADC345_CLKSOURCE_NONE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC345SEL_Pos << 16U)) /*!< No clock used as ADC345 clock source */ +#define LL_RCC_ADC345_CLKSOURCE_PLL (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC345SEL_Pos << 16U) | (RCC_CCIPR_ADC345SEL_0 >> RCC_CCIPR_ADC345SEL_Pos)) /*!< PLL clock used as ADC345 clock source */ +#define LL_RCC_ADC345_CLKSOURCE_SYSCLK (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC345SEL_Pos << 16U) | (RCC_CCIPR_ADC345SEL_1 >> RCC_CCIPR_ADC345SEL_Pos)) /*!< SYSCLK clock used as ADC345 clock source */ +#endif /* RCC_CCIPR_ADC345SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_QUADSPI Peripheral QUADSPI get clock source + * @{ + */ +#define LL_RCC_QUADSPI_CLKSOURCE_SYSCLK 0x00000000U /*!< SYSCLK used as QuadSPI clock source */ +#define LL_RCC_QUADSPI_CLKSOURCE_HSI RCC_CCIPR2_QSPISEL_0 /*!< HSI used as QuadSPI clock source */ +#define LL_RCC_QUADSPI_CLKSOURCE_PLL RCC_CCIPR2_QSPISEL_1 /*!< PLL used as QuadSPI clock source */ +/** + * @} + */ + + +/** @defgroup RCC_LL_EC_USARTx Peripheral USART get clock source + * @{ + */ +#define LL_RCC_USART1_CLKSOURCE RCC_CCIPR_USART1SEL /*!< USART1 Clock source selection */ +#define LL_RCC_USART2_CLKSOURCE RCC_CCIPR_USART2SEL /*!< USART2 Clock source selection */ +#if defined(RCC_CCIPR_USART3SEL) +#define LL_RCC_USART3_CLKSOURCE RCC_CCIPR_USART3SEL /*!< USART3 Clock source selection */ +#endif /* RCC_CCIPR_USART3SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_UARTx Peripheral UART get clock source + * @{ + */ +#if defined(RCC_CCIPR_UART4SEL) +#define LL_RCC_UART4_CLKSOURCE RCC_CCIPR_UART4SEL /*!< UART4 Clock source selection */ +#endif /* RCC_CCIPR_UART4SEL */ +#if defined(RCC_CCIPR_UART5SEL) +#define LL_RCC_UART5_CLKSOURCE RCC_CCIPR_UART5SEL /*!< UART5 Clock source selection */ +#endif /* RCC_CCIPR_UART5SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LPUART1 Peripheral LPUART get clock source + * @{ + */ +#define LL_RCC_LPUART1_CLKSOURCE RCC_CCIPR_LPUART1SEL /*!< LPUART1 Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_I2C1 Peripheral I2C get clock source + * @{ + */ +#define LL_RCC_I2C1_CLKSOURCE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C1SEL_Pos << 16U) | (RCC_CCIPR_I2C1SEL >> RCC_CCIPR_I2C1SEL_Pos)) /*!< I2C1 Clock source selection */ +#define LL_RCC_I2C2_CLKSOURCE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C2SEL_Pos << 16U) | (RCC_CCIPR_I2C2SEL >> RCC_CCIPR_I2C2SEL_Pos)) /*!< I2C2 Clock source selection */ +#if defined(RCC_CCIPR_I2C3SEL) +#define LL_RCC_I2C3_CLKSOURCE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_I2C3SEL_Pos << 16U) | (RCC_CCIPR_I2C3SEL >> RCC_CCIPR_I2C3SEL_Pos)) /*!< I2C3 Clock source selection */ +#endif /* RCC_CCIPR_I2C3SEL */ +#if defined(RCC_CCIPR2_I2C4SEL) +#define LL_RCC_I2C4_CLKSOURCE (((uint32_t)RCC_OFFSET_CCIPR2 << 24U) | ((uint32_t)RCC_CCIPR2_I2C4SEL_Pos << 16U) | (RCC_CCIPR2_I2C4SEL >> RCC_CCIPR2_I2C4SEL_Pos)) /*!< I2C4 Clock source selection */ +#endif /* RCC_CCIPR2_I2C4SEL */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LPTIM1 Peripheral LPTIM get clock source + * @{ + */ +#define LL_RCC_LPTIM1_CLKSOURCE RCC_CCIPR_LPTIM1SEL /*!< LPTIM1 Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SAI1 Peripheral SAI get clock source + * @{ + */ +#define LL_RCC_SAI1_CLKSOURCE RCC_CCIPR_SAI1SEL /*!< SAI1 Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_I2S Peripheral I2S get clock source + * @{ + */ +#define LL_RCC_I2S_CLKSOURCE RCC_CCIPR_I2S23SEL /*!< I2S Clock source selection */ +/** + * @} + */ + +#if defined(FDCAN1) +/** @defgroup RCC_LL_EC_FDCAN Peripheral FDCAN get clock source + * @{ + */ +#define LL_RCC_FDCAN_CLKSOURCE RCC_CCIPR_FDCANSEL /*!< FDCAN Clock source selection */ +#endif /* FDCAN1 */ + +/** + * @} + */ + +/** @defgroup RCC_LL_EC_RNG Peripheral RNG get clock source + * @{ + */ +#define LL_RCC_RNG_CLKSOURCE RCC_CCIPR_CLK48SEL /*!< RNG Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_USB Peripheral USB get clock source + * @{ + */ +#define LL_RCC_USB_CLKSOURCE RCC_CCIPR_CLK48SEL /*!< USB Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_ADC Peripheral ADC get clock source + * @{ + */ +#define LL_RCC_ADC12_CLKSOURCE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC12SEL_Pos << 16U) | (RCC_CCIPR_ADC12SEL >> RCC_CCIPR_ADC12SEL_Pos)) /*!< ADC12 Clock source selection */ +#if defined(RCC_CCIPR_ADC345SEL_Pos) +#define LL_RCC_ADC345_CLKSOURCE (((uint32_t)RCC_OFFSET_CCIPR << 24U) | ((uint32_t)RCC_CCIPR_ADC345SEL_Pos << 16U) | (RCC_CCIPR_ADC345SEL >> RCC_CCIPR_ADC345SEL_Pos)) /*!< ADC345 Clock source selection */ +#endif /* RCC_CCIPR_ADC345SEL_Pos */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_QUADSPI Peripheral QUADSPI get clock source + * @{ + */ +#define LL_RCC_QUADSPI_CLKSOURCE RCC_CCIPR2_QSPISEL /*!< QuadSPI Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_RTC_CLKSOURCE RTC clock source selection + * @{ + */ +#define LL_RCC_RTC_CLKSOURCE_NONE 0x00000000U /*!< No clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_LSE RCC_BDCR_RTCSEL_0 /*!< LSE oscillator clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_LSI RCC_BDCR_RTCSEL_1 /*!< LSI oscillator clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_HSE_DIV32 RCC_BDCR_RTCSEL /*!< HSE oscillator clock divided by 32 used as RTC clock */ +/** + * @} + */ + + +/** @defgroup RCC_LL_EC_PLLSOURCE PLL entry clock source + * @{ + */ +#define LL_RCC_PLLSOURCE_NONE 0x00000000U /*!< No clock */ +#define LL_RCC_PLLSOURCE_HSI RCC_PLLCFGR_PLLSRC_HSI /*!< HSI16 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE RCC_PLLCFGR_PLLSRC_HSE /*!< HSE clock selected as PLL entry clock source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLM_DIV PLL division factor + * @{ + */ +#define LL_RCC_PLLM_DIV_1 0x00000000U /*!< PLL division factor by 1 */ +#define LL_RCC_PLLM_DIV_2 RCC_PLLCFGR_PLLM_0 /*!< PLL division factor by 2 */ +#define LL_RCC_PLLM_DIV_3 RCC_PLLCFGR_PLLM_1 /*!< PLL division factor by 3 */ +#define LL_RCC_PLLM_DIV_4 (RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 4 */ +#define LL_RCC_PLLM_DIV_5 RCC_PLLCFGR_PLLM_2 /*!< PLL division factor by 5 */ +#define LL_RCC_PLLM_DIV_6 (RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 6 */ +#define LL_RCC_PLLM_DIV_7 (RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL division factor by 7 */ +#define LL_RCC_PLLM_DIV_8 (RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 8 */ +#define LL_RCC_PLLM_DIV_9 RCC_PLLCFGR_PLLM_3 /*!< PLL division factor by 9 */ +#define LL_RCC_PLLM_DIV_10 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 10 */ +#define LL_RCC_PLLM_DIV_11 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1) /*!< PLL division factor by 11 */ +#define LL_RCC_PLLM_DIV_12 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 12 */ +#define LL_RCC_PLLM_DIV_13 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2) /*!< PLL division factor by 13 */ +#define LL_RCC_PLLM_DIV_14 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 14 */ +#define LL_RCC_PLLM_DIV_15 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL division factor by 15 */ +#define LL_RCC_PLLM_DIV_16 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL division factor by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLR_DIV PLL division factor (PLLR) + * @{ + */ +#define LL_RCC_PLLR_DIV_2 0x00000000U /*!< Main PLL division factor for PLLCLK (system clock) by 2 */ +#define LL_RCC_PLLR_DIV_4 (RCC_PLLCFGR_PLLR_0) /*!< Main PLL division factor for PLLCLK (system clock) by 4 */ +#define LL_RCC_PLLR_DIV_6 (RCC_PLLCFGR_PLLR_1) /*!< Main PLL division factor for PLLCLK (system clock) by 6 */ +#define LL_RCC_PLLR_DIV_8 (RCC_PLLCFGR_PLLR) /*!< Main PLL division factor for PLLCLK (system clock) by 8 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLP_DIV PLL division factor (PLLP) + * @{ + */ +#define LL_RCC_PLLP_DIV_2 (RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 2 */ +#define LL_RCC_PLLP_DIV_3 (RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 3 */ +#define LL_RCC_PLLP_DIV_4 (RCC_PLLCFGR_PLLPDIV_2) /*!< Main PLL division factor for PLLP output by 4 */ +#define LL_RCC_PLLP_DIV_5 (RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 5 */ +#define LL_RCC_PLLP_DIV_6 (RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 6 */ +#define LL_RCC_PLLP_DIV_7 (RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 7 */ +#define LL_RCC_PLLP_DIV_8 (RCC_PLLCFGR_PLLPDIV_3) /*!< Main PLL division factor for PLLP output by 8 */ +#define LL_RCC_PLLP_DIV_9 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 9 */ +#define LL_RCC_PLLP_DIV_10 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 10 */ +#define LL_RCC_PLLP_DIV_11 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 11 */ +#define LL_RCC_PLLP_DIV_12 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2) /*!< Main PLL division factor for PLLP output by 12 */ +#define LL_RCC_PLLP_DIV_13 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 13 */ +#define LL_RCC_PLLP_DIV_14 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 14 */ +#define LL_RCC_PLLP_DIV_15 (RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 15 */ +#define LL_RCC_PLLP_DIV_16 (RCC_PLLCFGR_PLLPDIV_4) /*!< Main PLL division factor for PLLP output by 16 */ +#define LL_RCC_PLLP_DIV_17 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 17 */ +#define LL_RCC_PLLP_DIV_18 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 18 */ +#define LL_RCC_PLLP_DIV_19 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 19 */ +#define LL_RCC_PLLP_DIV_20 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_2) /*!< Main PLL division factor for PLLP output by 20 */ +#define LL_RCC_PLLP_DIV_21 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 21 */ +#define LL_RCC_PLLP_DIV_22 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 22 */ +#define LL_RCC_PLLP_DIV_23 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 23 */ +#define LL_RCC_PLLP_DIV_24 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3) /*!< Main PLL division factor for PLLP output by 24 */ +#define LL_RCC_PLLP_DIV_25 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 25 */ +#define LL_RCC_PLLP_DIV_26 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 26 */ +#define LL_RCC_PLLP_DIV_27 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 27 */ +#define LL_RCC_PLLP_DIV_28 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2) /*!< Main PLL division factor for PLLP output by 28 */ +#define LL_RCC_PLLP_DIV_29 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 29 */ +#define LL_RCC_PLLP_DIV_30 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1) /*!< Main PLL division factor for PLLP output by 30 */ +#define LL_RCC_PLLP_DIV_31 (RCC_PLLCFGR_PLLPDIV_4|RCC_PLLCFGR_PLLPDIV_3|RCC_PLLCFGR_PLLPDIV_2|RCC_PLLCFGR_PLLPDIV_1|RCC_PLLCFGR_PLLPDIV_0) /*!< Main PLL division factor for PLLP output by 31 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLQ_DIV PLL division factor (PLLQ) + * @{ + */ +#define LL_RCC_PLLQ_DIV_2 0x00000000U /*!< Main PLL division factor for PLLQ output by 2 */ +#define LL_RCC_PLLQ_DIV_4 (RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 4 */ +#define LL_RCC_PLLQ_DIV_6 (RCC_PLLCFGR_PLLQ_1) /*!< Main PLL division factor for PLLQ output by 6 */ +#define LL_RCC_PLLQ_DIV_8 (RCC_PLLCFGR_PLLQ) /*!< Main PLL division factor for PLLQ output by 8 */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Macros RCC Exported Macros + * @{ + */ + +/** @defgroup RCC_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in RCC register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_RCC_WriteReg(__REG__, __VALUE__) WRITE_REG(RCC->__REG__, __VALUE__) + +/** + * @brief Read a value in RCC register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_RCC_ReadReg(__REG__) READ_REG(RCC->__REG__) +/** + * @} + */ + +/** @defgroup RCC_LL_EM_CALC_FREQ Calculate frequencies + * @{ + */ + +/** + * @brief Helper macro to calculate the PLLCLK frequency on system domain + * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE,@ref LL_RCC_PLL_GetDivider (), + * @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetR ()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE/HSI) + * @param __PLLM__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + * @param __PLLN__ Between Min_Data = 8 and Max_Data = 127 + * @param __PLLR__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLR_DIV_2 + * @arg @ref LL_RCC_PLLR_DIV_4 + * @arg @ref LL_RCC_PLLR_DIV_6 + * @arg @ref LL_RCC_PLLR_DIV_8 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__) ((__INPUTFREQ__) * (__PLLN__) / ((((__PLLM__)>> RCC_PLLCFGR_PLLM_Pos) + 1U)) / \ + ((((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos) + 1U) * 2U)) + +/** + * @brief Helper macro to calculate the PLLCLK frequency used on ADC domain + * @note ex: @ref __LL_RCC_CALC_PLLCLK_ADC_FREQ (HSE_VALUE,@ref LL_RCC_PLL_GetDivider (), + * @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetP ()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE/HSI) + * @param __PLLM__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + + * @param __PLLN__ Between Min_Data = 8 and Max_Data = 127 + * @param __PLLP__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLP_DIV_2 + * @arg @ref LL_RCC_PLLP_DIV_3 + * @arg @ref LL_RCC_PLLP_DIV_4 + * @arg @ref LL_RCC_PLLP_DIV_5 + * @arg @ref LL_RCC_PLLP_DIV_6 + * @arg @ref LL_RCC_PLLP_DIV_7 + * @arg @ref LL_RCC_PLLP_DIV_8 + * @arg @ref LL_RCC_PLLP_DIV_9 + * @arg @ref LL_RCC_PLLP_DIV_10 + * @arg @ref LL_RCC_PLLP_DIV_11 + * @arg @ref LL_RCC_PLLP_DIV_12 + * @arg @ref LL_RCC_PLLP_DIV_13 + * @arg @ref LL_RCC_PLLP_DIV_14 + * @arg @ref LL_RCC_PLLP_DIV_15 + * @arg @ref LL_RCC_PLLP_DIV_16 + * @arg @ref LL_RCC_PLLP_DIV_17 + * @arg @ref LL_RCC_PLLP_DIV_18 + * @arg @ref LL_RCC_PLLP_DIV_19 + * @arg @ref LL_RCC_PLLP_DIV_20 + * @arg @ref LL_RCC_PLLP_DIV_21 + * @arg @ref LL_RCC_PLLP_DIV_22 + * @arg @ref LL_RCC_PLLP_DIV_23 + * @arg @ref LL_RCC_PLLP_DIV_24 + * @arg @ref LL_RCC_PLLP_DIV_25 + * @arg @ref LL_RCC_PLLP_DIV_26 + * @arg @ref LL_RCC_PLLP_DIV_27 + * @arg @ref LL_RCC_PLLP_DIV_28 + * @arg @ref LL_RCC_PLLP_DIV_29 + * @arg @ref LL_RCC_PLLP_DIV_30 + * @arg @ref LL_RCC_PLLP_DIV_31 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_ADC_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLP__) ((__INPUTFREQ__) * (__PLLN__) / ((((__PLLM__)>> RCC_PLLCFGR_PLLM_Pos) + 1U)) / \ + ((__PLLP__) >> RCC_PLLCFGR_PLLPDIV_Pos)) + +/** + * @brief Helper macro to calculate the PLLCLK frequency used on 48M domain + * @note ex: @ref __LL_RCC_CALC_PLLCLK_48M_FREQ (HSE_VALUE,@ref LL_RCC_PLL_GetDivider (), + * @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetQ ()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE/HSI) + * @param __PLLM__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + * @param __PLLN__ Between Min_Data = 8 and Max_Data = 127 + * @param __PLLQ__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLQ_DIV_2 + * @arg @ref LL_RCC_PLLQ_DIV_4 + * @arg @ref LL_RCC_PLLQ_DIV_6 + * @arg @ref LL_RCC_PLLQ_DIV_8 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_48M_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLQ__) ((__INPUTFREQ__) * (__PLLN__) / ((((__PLLM__)>> RCC_PLLCFGR_PLLM_Pos) + 1U)) / \ + ((((__PLLQ__) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U)) + +/** + * @brief Helper macro to calculate the HCLK frequency + * @param __SYSCLKFREQ__ SYSCLK frequency (based on HSE/HSI/PLLCLK) + * @param __AHBPRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + * @retval HCLK clock frequency (in Hz) + */ +#define __LL_RCC_CALC_HCLK_FREQ(__SYSCLKFREQ__,__AHBPRESCALER__) ((__SYSCLKFREQ__) >> (AHBPrescTable[((__AHBPRESCALER__) & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU)) + +/** + * @brief Helper macro to calculate the PCLK1 frequency (ABP1) + * @param __HCLKFREQ__ HCLK frequency + * @param __APB1PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + * @retval PCLK1 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PCLK1_FREQ(__HCLKFREQ__, __APB1PRESCALER__) ((__HCLKFREQ__) >> (APBPrescTable[(__APB1PRESCALER__) >> RCC_CFGR_PPRE1_Pos] & 0x1FU)) + +/** + * @brief Helper macro to calculate the PCLK2 frequency (ABP2) + * @param __HCLKFREQ__ HCLK frequency + * @param __APB2PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + * @retval PCLK2 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PCLK2_FREQ(__HCLKFREQ__, __APB2PRESCALER__) ((__HCLKFREQ__) >> (APBPrescTable[(__APB2PRESCALER__) >> RCC_CFGR_PPRE2_Pos] & 0x1FU)) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Functions RCC Exported Functions + * @{ + */ + +/** @defgroup RCC_LL_EF_HSE HSE + * @{ + */ + +/** + * @brief Enable the Clock Security System. + * @rmtoll CR CSSON LL_RCC_HSE_EnableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_EnableCSS(void) +{ + SET_BIT(RCC->CR, RCC_CR_CSSON); +} + +/** + * @brief Enable HSE external oscillator (HSE Bypass) + * @rmtoll CR HSEBYP LL_RCC_HSE_EnableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_EnableBypass(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSEBYP); +} + +/** + * @brief Disable HSE external oscillator (HSE Bypass) + * @rmtoll CR HSEBYP LL_RCC_HSE_DisableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_DisableBypass(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); +} + +/** + * @brief Enable HSE crystal oscillator (HSE ON) + * @rmtoll CR HSEON LL_RCC_HSE_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSEON); +} + +/** + * @brief Disable HSE crystal oscillator (HSE ON) + * @rmtoll CR HSEON LL_RCC_HSE_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSEON); +} + +/** + * @brief Check if HSE oscillator Ready + * @rmtoll CR HSERDY LL_RCC_HSE_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_HSERDY) == (RCC_CR_HSERDY)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_HSI HSI + * @{ + */ + +/** + * @brief Enable HSI even in stop mode + * @note HSI oscillator is forced ON even in Stop mode + * @rmtoll CR HSIKERON LL_RCC_HSI_EnableInStopMode + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_EnableInStopMode(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSIKERON); +} + +/** + * @brief Disable HSI in stop mode + * @rmtoll CR HSIKERON LL_RCC_HSI_DisableInStopMode + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_DisableInStopMode(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSIKERON); +} + +/** + * @brief Enable HSI oscillator + * @rmtoll CR HSION LL_RCC_HSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSION); +} + +/** + * @brief Disable HSI oscillator + * @rmtoll CR HSION LL_RCC_HSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSION); +} + +/** + * @brief Check if HSI clock is ready + * @rmtoll CR HSIRDY LL_RCC_HSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) == (RCC_CR_HSIRDY)) ? 1UL : 0UL); +} + +/** + * @brief Get HSI Calibration value + * @note When HSITRIM is written, HSICAL is updated with the sum of + * HSITRIM and the factory trim value + * @rmtoll ICSCR HSICAL LL_RCC_HSI_GetCalibration + * @retval Between Min_Data = 0x00 and Max_Data = 0xFF + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibration(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_HSICAL) >> RCC_ICSCR_HSICAL_Pos); +} + +/** + * @brief Set HSI Calibration trimming + * @note user-programmable trimming value that is added to the HSICAL + * @note Default value is 16, which, when added to the HSICAL value, + * should trim the HSI to 16 MHz +/- 1 % + * @rmtoll ICSCR HSITRIM LL_RCC_HSI_SetCalibTrimming + * @param Value Between Min_Data = 0 and Max_Data = 127 + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value) +{ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSITRIM, Value << RCC_ICSCR_HSITRIM_Pos); +} + +/** + * @brief Get HSI Calibration trimming + * @rmtoll ICSCR HSITRIM LL_RCC_HSI_GetCalibTrimming + * @retval Between Min_Data = 0 and Max_Data = 127 + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_HSITRIM) >> RCC_ICSCR_HSITRIM_Pos); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_HSI48 HSI48 + * @{ + */ + +/** + * @brief Enable HSI48 + * @rmtoll CRRCR HSI48ON LL_RCC_HSI48_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI48_Enable(void) +{ + SET_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON); +} + +/** + * @brief Disable HSI48 + * @rmtoll CRRCR HSI48ON LL_RCC_HSI48_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI48_Disable(void) +{ + CLEAR_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON); +} + +/** + * @brief Check if HSI48 oscillator Ready + * @rmtoll CRRCR HSI48RDY LL_RCC_HSI48_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSI48_IsReady(void) +{ + return ((READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == (RCC_CRRCR_HSI48RDY)) ? 1UL : 0UL); +} + +/** + * @brief Get HSI48 Calibration value + * @rmtoll CRRCR HSI48CAL LL_RCC_HSI48_GetCalibration + * @retval Between Min_Data = 0x00 and Max_Data = 0x1FF + */ +__STATIC_INLINE uint32_t LL_RCC_HSI48_GetCalibration(void) +{ + return (uint32_t)(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48CAL) >> RCC_CRRCR_HSI48CAL_Pos); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSE LSE + * @{ + */ + +/** + * @brief Enable Low Speed External (LSE) crystal. + * @rmtoll BDCR LSEON LL_RCC_LSE_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_Enable(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEON); +} + +/** + * @brief Disable Low Speed External (LSE) crystal. + * @rmtoll BDCR LSEON LL_RCC_LSE_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_Disable(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); +} + +/** + * @brief Enable external clock source (LSE bypass). + * @rmtoll BDCR LSEBYP LL_RCC_LSE_EnableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_EnableBypass(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); +} + +/** + * @brief Disable external clock source (LSE bypass). + * @rmtoll BDCR LSEBYP LL_RCC_LSE_DisableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_DisableBypass(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); +} + +/** + * @brief Set LSE oscillator drive capability + * @note The oscillator is in Xtal mode when it is not in bypass mode. + * @rmtoll BDCR LSEDRV LL_RCC_LSE_SetDriveCapability + * @param LSEDrive This parameter can be one of the following values: + * @arg @ref LL_RCC_LSEDRIVE_LOW + * @arg @ref LL_RCC_LSEDRIVE_MEDIUMLOW + * @arg @ref LL_RCC_LSEDRIVE_MEDIUMHIGH + * @arg @ref LL_RCC_LSEDRIVE_HIGH + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_SetDriveCapability(uint32_t LSEDrive) +{ + MODIFY_REG(RCC->BDCR, RCC_BDCR_LSEDRV, LSEDrive); +} + +/** + * @brief Get LSE oscillator drive capability + * @rmtoll BDCR LSEDRV LL_RCC_LSE_GetDriveCapability + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_LSEDRIVE_LOW + * @arg @ref LL_RCC_LSEDRIVE_MEDIUMLOW + * @arg @ref LL_RCC_LSEDRIVE_MEDIUMHIGH + * @arg @ref LL_RCC_LSEDRIVE_HIGH + */ +__STATIC_INLINE uint32_t LL_RCC_LSE_GetDriveCapability(void) +{ + return (uint32_t)(READ_BIT(RCC->BDCR, RCC_BDCR_LSEDRV)); +} + +/** + * @brief Enable Clock security system on LSE. + * @rmtoll BDCR LSECSSON LL_RCC_LSE_EnableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_EnableCSS(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON); +} + +/** + * @brief Disable Clock security system on LSE. + * @note Clock security system can be disabled only after a LSE + * failure detection. In that case it MUST be disabled by software. + * @rmtoll BDCR LSECSSON LL_RCC_LSE_DisableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_DisableCSS(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSECSSON); +} + +/** + * @brief Check if LSE oscillator Ready + * @rmtoll BDCR LSERDY LL_RCC_LSE_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void) +{ + return ((READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == (RCC_BDCR_LSERDY)) ? 1UL : 0UL); +} + +/** + * @brief Check if CSS on LSE failure Detection + * @rmtoll BDCR LSECSSD LL_RCC_LSE_IsCSSDetected + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSE_IsCSSDetected(void) +{ + return ((READ_BIT(RCC->BDCR, RCC_BDCR_LSECSSD) == (RCC_BDCR_LSECSSD)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSI LSI + * @{ + */ + +/** + * @brief Enable LSI Oscillator + * @rmtoll CSR LSION LL_RCC_LSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSI_Enable(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_LSION); +} + +/** + * @brief Disable LSI Oscillator + * @rmtoll CSR LSION LL_RCC_LSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSI_Disable(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSION); +} + +/** + * @brief Check if LSI is Ready + * @rmtoll CSR LSIRDY LL_RCC_LSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == (RCC_CSR_LSIRDY)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSCO LSCO + * @{ + */ + +/** + * @brief Enable Low speed clock + * @rmtoll BDCR LSCOEN LL_RCC_LSCO_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSCO_Enable(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSCOEN); +} + +/** + * @brief Disable Low speed clock + * @rmtoll BDCR LSCOEN LL_RCC_LSCO_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSCO_Disable(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSCOEN); +} + +/** + * @brief Configure Low speed clock selection + * @rmtoll BDCR LSCOSEL LL_RCC_LSCO_SetSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_LSCO_CLKSOURCE_LSI + * @arg @ref LL_RCC_LSCO_CLKSOURCE_LSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSCO_SetSource(uint32_t Source) +{ + MODIFY_REG(RCC->BDCR, RCC_BDCR_LSCOSEL, Source); +} + +/** + * @brief Get Low speed clock selection + * @rmtoll BDCR LSCOSEL LL_RCC_LSCO_GetSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_LSCO_CLKSOURCE_LSI + * @arg @ref LL_RCC_LSCO_CLKSOURCE_LSE + */ +__STATIC_INLINE uint32_t LL_RCC_LSCO_GetSource(void) +{ + return (uint32_t)(READ_BIT(RCC->BDCR, RCC_BDCR_LSCOSEL)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_System System + * @{ + */ + +/** + * @brief Configure the system clock source + * @rmtoll CFGR SW LL_RCC_SetSysClkSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_SYS_CLKSOURCE_HSI + * @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) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, Source); +} + +/** + * @brief Get the system clock source + * @rmtoll CFGR SWS LL_RCC_GetSysClkSource + * @retval Returned value can be one of the following values: + * @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) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS)); +} + +/** + * @brief Set AHB prescaler + * @rmtoll CFGR HPRE LL_RCC_SetAHBPrescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @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) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, Prescaler); +} + +/** + * @brief Set APB1 prescaler + * @rmtoll CFGR PPRE1 LL_RCC_SetAPB1Prescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @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) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, Prescaler); +} + +/** + * @brief Set APB2 prescaler + * @rmtoll CFGR PPRE2 LL_RCC_SetAPB2Prescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAPB2Prescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, Prescaler); +} + +/** + * @brief Get AHB prescaler + * @rmtoll CFGR HPRE LL_RCC_GetAHBPrescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)); +} + +/** + * @brief Get APB1 prescaler + * @rmtoll CFGR PPRE1 LL_RCC_GetAPB1Prescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1)); +} + +/** + * @brief Get APB2 prescaler + * @rmtoll CFGR PPRE2 LL_RCC_GetAPB2Prescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_MCO MCO + * @{ + */ + +/** + * @brief Configure MCOx + * @rmtoll CFGR MCOSEL LL_RCC_ConfigMCO\n + * CFGR MCOPRE LL_RCC_ConfigMCO + * @param MCOxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_MCO1SOURCE_NOCLOCK + * @arg @ref LL_RCC_MCO1SOURCE_SYSCLK + * @arg @ref LL_RCC_MCO1SOURCE_HSI + * @arg @ref LL_RCC_MCO1SOURCE_HSE + * @arg @ref LL_RCC_MCO1SOURCE_HSI48 + * @arg @ref LL_RCC_MCO1SOURCE_PLLCLK + * @arg @ref LL_RCC_MCO1SOURCE_LSI + * @arg @ref LL_RCC_MCO1SOURCE_LSE + * + * (*) value not defined in all devices. + * @param MCOxPrescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_MCO1_DIV_1 + * @arg @ref LL_RCC_MCO1_DIV_2 + * @arg @ref LL_RCC_MCO1_DIV_4 + * @arg @ref LL_RCC_MCO1_DIV_8 + * @arg @ref LL_RCC_MCO1_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource, uint32_t MCOxPrescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE, MCOxSource | MCOxPrescaler); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_Peripheral_Clock_Source Peripheral Clock Source + * @{ + */ + +/** + * @brief Configure USARTx clock source + * @rmtoll CCIPR USARTxSEL LL_RCC_SetUSARTClockSource + * @param USARTxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2 + * @arg @ref LL_RCC_USART1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE + * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_USART2_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE + * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_USART3_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUSARTClockSource(uint32_t USARTxSource) +{ + MODIFY_REG(RCC->CCIPR, (USARTxSource >> 16U), (USARTxSource & 0x0000FFFFU)); +} + +#if defined(UART4) +/** + * @brief Configure UARTx clock source + * @rmtoll CCIPR UARTxSEL LL_RCC_SetUARTClockSource + * @param UARTxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_UART4_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_UART4_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_UART4_CLKSOURCE_LSE (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUARTClockSource(uint32_t UARTxSource) +{ + MODIFY_REG(RCC->CCIPR, (UARTxSource >> 16U), (UARTxSource & 0x0000FFFFU)); +} +#endif /* UART4 */ + +/** + * @brief Configure LPUART1x clock source + * @rmtoll CCIPR LPUART1SEL LL_RCC_SetLPUARTClockSource + * @param LPUARTxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_HSI + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_LSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetLPUARTClockSource(uint32_t LPUARTxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_LPUART1SEL, LPUARTxSource); +} + +/** + * @brief Configure I2Cx clock source + * @rmtoll CCIPR I2CxSEL LL_RCC_SetI2CClockSource + * @param I2CxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_I2C1_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_I2C1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C2_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_I2C2_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C3_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_I2C3_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C4_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_I2C4_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_I2C4_CLKSOURCE_HSI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetI2CClockSource(uint32_t I2CxSource) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)(RCC_BASE + 0x88U + (I2CxSource >> 24U)); + MODIFY_REG(*reg, 3UL << ((I2CxSource & 0x001F0000U) >> 16U), ((I2CxSource & 0x000000FFU) << ((I2CxSource & 0x001F0000U) >> 16U))); +} + +/** + * @brief Configure LPTIMx clock source + * @rmtoll CCIPR LPTIM1SEL LL_RCC_SetLPTIMClockSource + * @param LPTIMxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_HSI + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetLPTIMClockSource(uint32_t LPTIMxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_LPTIM1SEL, LPTIMxSource); +} + +#if defined(SAI1) +/** + * @brief Configure SAIx clock source + * @rmtoll CCIPR SAI1SEL LL_RCC_SetSAIClockSource + * @param SAIxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_SAI1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_SAI1_CLKSOURCE_PLL + * @arg @ref LL_RCC_SAI1_CLKSOURCE_PIN + * @arg @ref LL_RCC_SAI1_CLKSOURCE_HSI + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetSAIClockSource(uint32_t SAIxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_SAI1SEL, SAIxSource); +} +#endif /* SAI1 */ + +#if defined(SPI_I2S_SUPPORT) +/** + * @brief Configure I2S clock source + * @rmtoll CCIPR I2S23SEL LL_RCC_SetI2SClockSource + * @param I2SxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_I2S_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2S_CLKSOURCE_PLL + * @arg @ref LL_RCC_I2S_CLKSOURCE_PIN + * @arg @ref LL_RCC_I2S_CLKSOURCE_HSI + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetI2SClockSource(uint32_t I2SxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_I2S23SEL, I2SxSource); +} +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) +/** + * @brief Configure FDCAN clock source + * @rmtoll CCIPR FDCANSEL LL_RCC_SetFDCANClockSource + * @param FDCANxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_FDCAN_CLKSOURCE_HSE + * @arg @ref LL_RCC_FDCAN_CLKSOURCE_PLL + * @arg @ref LL_RCC_FDCAN_CLKSOURCE_PCLK1 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetFDCANClockSource(uint32_t FDCANxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_FDCANSEL, FDCANxSource); +} +#endif /* FDCAN1 */ + +/** + * @brief Configure RNG clock source + * @rmtoll CCIPR CLK48SEL LL_RCC_SetRNGClockSource + * @param RNGxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_RNG_CLKSOURCE_HSI48 + * @arg @ref LL_RCC_RNG_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetRNGClockSource(uint32_t RNGxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_CLK48SEL, RNGxSource); +} + +/** + * @brief Configure USB clock source + * @rmtoll CCIPR CLK48SEL LL_RCC_SetUSBClockSource + * @param USBxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE_HSI48 + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUSBClockSource(uint32_t USBxSource) +{ + MODIFY_REG(RCC->CCIPR, RCC_CCIPR_CLK48SEL, USBxSource); +} + +/** + * @brief Configure ADC clock source + * @rmtoll CCIPR ADC12SEL LL_RCC_SetADCClockSource\n + * CCIPR ADC345SEL LL_RCC_SetADCClockSource + * @param ADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC12_CLKSOURCE_NONE + * @arg @ref LL_RCC_ADC12_CLKSOURCE_PLL + * @arg @ref LL_RCC_ADC12_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_ADC345_CLKSOURCE_NONE (*) + * @arg @ref LL_RCC_ADC345_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_ADC345_CLKSOURCE_SYSCLK (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ADCxSource) +{ + MODIFY_REG(RCC->CCIPR, 3U << ((ADCxSource & 0x001F0000U) >> 16U), ((ADCxSource & 0x000000FFU) << ((ADCxSource & 0x001F0000U) >> 16U))); +} + +#if defined(QUADSPI) +/** + * @brief Configure QUADSPI clock source + * @rmtoll CCIPR2 QSPISEL LL_RCC_SetQUADSPIClockSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE_HSI + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetQUADSPIClockSource(uint32_t Source) +{ + MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_QSPISEL, Source); +} +#endif /* QUADSPI */ + +/** + * @brief Get USARTx clock source + * @rmtoll CCIPR USARTxSEL LL_RCC_GetUSARTClockSource + * @param USARTx This parameter can be one of the following values: + * @arg @ref LL_RCC_USART1_CLKSOURCE + * @arg @ref LL_RCC_USART2_CLKSOURCE + * @arg @ref LL_RCC_USART3_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2 + * @arg @ref LL_RCC_USART1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE + * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_USART2_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE + * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_USART3_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE + */ +__STATIC_INLINE uint32_t LL_RCC_GetUSARTClockSource(uint32_t USARTx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, USARTx) | (USARTx << 16U)); +} + +#if defined(UART4) +/** + * @brief Get UARTx clock source + * @rmtoll CCIPR UARTxSEL LL_RCC_GetUARTClockSource + * @param UARTx This parameter can be one of the following values: + * @arg @ref LL_RCC_UART4_CLKSOURCE (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE (*) + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_UART4_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_UART4_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_UART4_CLKSOURCE_LSE (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetUARTClockSource(uint32_t UARTx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, UARTx) | (UARTx << 16U)); +} +#endif /* UART4 */ + +/** + * @brief Get LPUARTx clock source + * @rmtoll CCIPR LPUART1SEL LL_RCC_GetLPUARTClockSource + * @param LPUARTx This parameter can be one of the following values: + * @arg @ref LL_RCC_LPUART1_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_HSI + * @arg @ref LL_RCC_LPUART1_CLKSOURCE_LSE + */ +__STATIC_INLINE uint32_t LL_RCC_GetLPUARTClockSource(uint32_t LPUARTx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, LPUARTx)); +} + +/** + * @brief Get I2Cx clock source + * @rmtoll CCIPR I2CxSEL LL_RCC_GetI2CClockSource + * @param I2Cx This parameter can be one of the following values: + * @arg @ref LL_RCC_I2C1_CLKSOURCE + * @arg @ref LL_RCC_I2C2_CLKSOURCE + * @arg @ref LL_RCC_I2C3_CLKSOURCE + * @arg @ref LL_RCC_I2C4_CLKSOURCE (*) + * + * (*) value not defined in all devices. + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_I2C1_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_I2C1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C2_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_I2C2_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C3_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_I2C3_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C4_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_I2C4_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_I2C4_CLKSOURCE_HSI (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetI2CClockSource(uint32_t I2Cx) +{ + __IO const uint32_t *reg = (__IO uint32_t *)(uint32_t)(RCC_BASE + 0x88U + (I2Cx >> 24U)); + return (uint32_t)((READ_BIT(*reg, 3UL << ((I2Cx & 0x001F0000U) >> 16U)) >> ((I2Cx & 0x001F0000U) >> 16U)) | (I2Cx & 0xFFFF0000U)); +} + +/** + * @brief Get LPTIMx clock source + * @rmtoll CCIPR LPTIMxSEL LL_RCC_GetLPTIMClockSource + * @param LPTIMx This parameter can be one of the following values: + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_HSI + * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE + */ +__STATIC_INLINE uint32_t LL_RCC_GetLPTIMClockSource(uint32_t LPTIMx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, LPTIMx)); +} + +/** + * @brief Get SAIx clock source + * @rmtoll CCIPR SAI1SEL LL_RCC_GetSAIClockSource + * @param SAIx This parameter can be one of the following values: + * @arg @ref LL_RCC_SAI1_CLKSOURCE + * + * (*) value not defined in all devices. + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SAI1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_SAI1_CLKSOURCE_PLL + * @arg @ref LL_RCC_SAI1_CLKSOURCE_PIN + * @arg @ref LL_RCC_SAI1_CLKSOURCE_HSI + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetSAIClockSource(uint32_t SAIx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, SAIx)); +} + +/** + * @brief Get I2Sx clock source + * @rmtoll CCIPR I2S23SEL LL_RCC_GetI2SClockSource + * @param I2Sx This parameter can be one of the following values: + * @arg @ref LL_RCC_I2S_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_I2S_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2S_CLKSOURCE_PLL + * @arg @ref LL_RCC_I2S_CLKSOURCE_PIN + * @arg @ref LL_RCC_I2S_CLKSOURCE_HSI + */ +__STATIC_INLINE uint32_t LL_RCC_GetI2SClockSource(uint32_t I2Sx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, I2Sx)); +} + +#if defined(FDCAN1) +/** + * @brief Get FDCANx clock source + * @rmtoll CCIPR FDCANSEL LL_RCC_GetFDCANClockSource + * @param FDCANx This parameter can be one of the following values: + * @arg @ref LL_RCC_FDCAN_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_FDCAN_CLKSOURCE_HSE + * @arg @ref LL_RCC_FDCAN_CLKSOURCE_PLL + * @arg @ref LL_RCC_FDCAN_CLKSOURCE_PCLK1 + * @retval None + */ +__STATIC_INLINE uint32_t LL_RCC_GetFDCANClockSource(uint32_t FDCANx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, FDCANx)); +} +#endif /* FDCAN1 */ + +/** + * @brief Get RNGx clock source + * @rmtoll CCIPR CLK48SEL LL_RCC_GetRNGClockSource + * @param RNGx This parameter can be one of the following values: + * @arg @ref LL_RCC_RNG_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_RNG_CLKSOURCE_HSI48 + * @arg @ref LL_RCC_RNG_CLKSOURCE_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetRNGClockSource(uint32_t RNGx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, RNGx)); +} + +/** + * @brief Get USBx clock source + * @rmtoll CCIPR CLK48SEL LL_RCC_GetUSBClockSource + * @param USBx This parameter can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE_HSI48 + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR, USBx)); +} + +/** + * @brief Get ADCx clock source + * @rmtoll CCIPR ADCSEL LL_RCC_GetADCClockSource + * @param ADCx This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC12_CLKSOURCE + * @arg @ref LL_RCC_ADC345_CLKSOURCE (*) + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_ADC12_CLKSOURCE_NONE + * @arg @ref LL_RCC_ADC12_CLKSOURCE_PLL + * @arg @ref LL_RCC_ADC12_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_ADC345_CLKSOURCE_NONE (*) + * @arg @ref LL_RCC_ADC345_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_ADC345_CLKSOURCE_SYSCLK (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx) +{ + return (uint32_t)((READ_BIT(RCC->CCIPR, 3UL << ((ADCx & 0x001F0000U) >> 16U)) >> ((ADCx & 0x001F0000U) >> 16U)) | (ADCx & 0xFFFF0000U)); +} + +#if defined(QUADSPI) +/** + * @brief Get QUADSPI clock source + * @rmtoll CCIPR2 QSPISEL LL_RCC_GetQUADSPIClockSource + * @param QUADSPIx This parameter can be one of the following values: + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE_HSI + * @arg @ref LL_RCC_QUADSPI_CLKSOURCE_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetQUADSPIClockSource(uint32_t QUADSPIx) +{ + return (uint32_t)(READ_BIT(RCC->CCIPR2, QUADSPIx)); +} +#endif /* QUADSPI */ +/** + * @} + */ + +/** @defgroup RCC_LL_EF_RTC RTC + * @{ + */ + +/** + * @brief Set RTC Clock Source + * @note Once the RTC clock source has been selected, it cannot be changed anymore unless + * the Backup domain is reset, or unless a failure is detected on LSE (LSECSSD is + * set). The BDRST bit can be used to reset them. + * @rmtoll BDCR RTCSEL LL_RCC_SetRTCClockSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI + * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE_DIV32 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetRTCClockSource(uint32_t Source) +{ + MODIFY_REG(RCC->BDCR, RCC_BDCR_RTCSEL, Source); +} + +/** + * @brief Get RTC Clock Source + * @rmtoll BDCR RTCSEL LL_RCC_GetRTCClockSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI + * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE_DIV32 + */ +__STATIC_INLINE uint32_t LL_RCC_GetRTCClockSource(void) +{ + return (uint32_t)(READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL)); +} + +/** + * @brief Enable RTC + * @rmtoll BDCR RTCEN LL_RCC_EnableRTC + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableRTC(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_RTCEN); +} + +/** + * @brief Disable RTC + * @rmtoll BDCR RTCEN LL_RCC_DisableRTC + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableRTC(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_RTCEN); +} + +/** + * @brief Check if RTC has been enabled or not + * @rmtoll BDCR RTCEN LL_RCC_IsEnabledRTC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledRTC(void) +{ + return ((READ_BIT(RCC->BDCR, RCC_BDCR_RTCEN) == (RCC_BDCR_RTCEN)) ? 1UL : 0UL); +} + +/** + * @brief Force the Backup domain reset + * @rmtoll BDCR BDRST LL_RCC_ForceBackupDomainReset + * @retval None + */ +__STATIC_INLINE void LL_RCC_ForceBackupDomainReset(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_BDRST); +} + +/** + * @brief Release the Backup domain reset + * @rmtoll BDCR BDRST LL_RCC_ReleaseBackupDomainReset + * @retval None + */ +__STATIC_INLINE void LL_RCC_ReleaseBackupDomainReset(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_BDRST); +} + +/** + * @} + */ + + +/** @defgroup RCC_LL_EF_PLL PLL + * @{ + */ + +/** + * @brief Enable PLL + * @rmtoll CR PLLON LL_RCC_PLL_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_PLLON); +} + +/** + * @brief Disable PLL + * @note Cannot be disabled if the PLL clock is used as the system clock + * @rmtoll CR PLLON LL_RCC_PLL_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_PLLON); +} + +/** + * @brief Check if PLL Ready + * @rmtoll CR PLLRDY LL_RCC_PLL_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY)) ? 1UL : 0UL); +} + +/** + * @brief Configure PLL used for SYSCLK Domain + * @note PLL Source and PLLM Divider can be written only when PLL + * is disabled. + * @note PLLN/PLLR can be written only when PLL is disabled. + * @rmtoll PLLCFGR PLLSRC LL_RCC_PLL_ConfigDomain_SYS\n + * PLLCFGR PLLM LL_RCC_PLL_ConfigDomain_SYS\n + * PLLCFGR PLLN LL_RCC_PLL_ConfigDomain_SYS\n + * PLLCFGR PLLR LL_RCC_PLL_ConfigDomain_SYS + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_NONE + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @param PLLM This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + * @param PLLN Between Min_Data = 8 and Max_Data = 127 + * @param PLLR This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLR_DIV_2 + * @arg @ref LL_RCC_PLLR_DIV_4 + * @arg @ref LL_RCC_PLLR_DIV_6 + * @arg @ref LL_RCC_PLLR_DIV_8 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR) +{ + MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR, + Source | PLLM | (PLLN << RCC_PLLCFGR_PLLN_Pos) | PLLR); +} + +/** + * @brief Configure PLL used for ADC domain clock + * @note PLL Source and PLLM Divider can be written only when PLL + * is disabled. + * @note PLLN/PLLP can be written only when PLL is disabled. + * @rmtoll PLLCFGR PLLSRC LL_RCC_PLL_ConfigDomain_ADC\n + * PLLCFGR PLLM LL_RCC_PLL_ConfigDomain_ADC\n + * PLLCFGR PLLN LL_RCC_PLL_ConfigDomain_ADC\n + * PLLCFGR PLLPDIV LL_RCC_PLL_ConfigDomain_ADC + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_NONE + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @param PLLM This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + * @param PLLN Between Min_Data = 8 and Max_Data = 127 + * @param PLLP This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLP_DIV_2 + * @arg @ref LL_RCC_PLLP_DIV_3 + * @arg @ref LL_RCC_PLLP_DIV_4 + * @arg @ref LL_RCC_PLLP_DIV_5 + * @arg @ref LL_RCC_PLLP_DIV_6 + * @arg @ref LL_RCC_PLLP_DIV_7 + * @arg @ref LL_RCC_PLLP_DIV_8 + * @arg @ref LL_RCC_PLLP_DIV_9 + * @arg @ref LL_RCC_PLLP_DIV_10 + * @arg @ref LL_RCC_PLLP_DIV_11 + * @arg @ref LL_RCC_PLLP_DIV_12 + * @arg @ref LL_RCC_PLLP_DIV_13 + * @arg @ref LL_RCC_PLLP_DIV_14 + * @arg @ref LL_RCC_PLLP_DIV_15 + * @arg @ref LL_RCC_PLLP_DIV_16 + * @arg @ref LL_RCC_PLLP_DIV_17 + * @arg @ref LL_RCC_PLLP_DIV_18 + * @arg @ref LL_RCC_PLLP_DIV_19 + * @arg @ref LL_RCC_PLLP_DIV_20 + * @arg @ref LL_RCC_PLLP_DIV_21 + * @arg @ref LL_RCC_PLLP_DIV_22 + * @arg @ref LL_RCC_PLLP_DIV_23 + * @arg @ref LL_RCC_PLLP_DIV_24 + * @arg @ref LL_RCC_PLLP_DIV_25 + * @arg @ref LL_RCC_PLLP_DIV_26 + * @arg @ref LL_RCC_PLLP_DIV_27 + * @arg @ref LL_RCC_PLLP_DIV_28 + * @arg @ref LL_RCC_PLLP_DIV_29 + * @arg @ref LL_RCC_PLLP_DIV_30 + * @arg @ref LL_RCC_PLLP_DIV_31 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_ADC(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLP) +{ + MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLPDIV, + Source | PLLM | (PLLN << RCC_PLLCFGR_PLLN_Pos) | PLLP); +} + +/** + * @brief Configure PLL used for 48Mhz domain clock + * @note PLL Source and PLLM Divider can be written only when PLL, + * is disabled. + * @note PLLN/PLLQ can be written only when PLL is disabled. + * @note This can be selected for USB, RNG + * @rmtoll PLLCFGR PLLSRC LL_RCC_PLL_ConfigDomain_48M\n + * PLLCFGR PLLM LL_RCC_PLL_ConfigDomain_48M\n + * PLLCFGR PLLN LL_RCC_PLL_ConfigDomain_48M\n + * PLLCFGR PLLQ LL_RCC_PLL_ConfigDomain_48M + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_NONE + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @param PLLM This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + * @param PLLN Between Min_Data = 8 and Max_Data = 127 + * @param PLLQ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLQ_DIV_2 + * @arg @ref LL_RCC_PLLQ_DIV_4 + * @arg @ref LL_RCC_PLLQ_DIV_6 + * @arg @ref LL_RCC_PLLQ_DIV_8 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_48M(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLQ) +{ + MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLQ, + Source | PLLM | (PLLN << RCC_PLLCFGR_PLLN_Pos) | PLLQ); +} + +/** + * @brief Configure PLL clock source + * @rmtoll PLLCFGR PLLSRC LL_RCC_PLL_SetMainSource + * @param PLLSource This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_NONE + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_SetMainSource(uint32_t PLLSource) +{ + MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, PLLSource); +} + +/** + * @brief Get the oscillator used as PLL clock source. + * @rmtoll PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_NONE + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void) +{ + return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC)); +} + +/** + * @brief Get Main PLL multiplication factor for VCO + * @rmtoll PLLCFGR PLLN LL_RCC_PLL_GetN + * @retval Between Min_Data = 8 and Max_Data = 127 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void) +{ + return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); +} + +/** + * @brief Get Main PLL division factor for PLLP + * @note Used for PLLADCCLK (ADC clock) + * @rmtoll PLLCFGR PLLPDIV LL_RCC_PLL_GetP\n + * @rmtoll PLLCFGR PLLP LL_RCC_PLL_GetP + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLP_DIV_2 + * @arg @ref LL_RCC_PLLP_DIV_3 + * @arg @ref LL_RCC_PLLP_DIV_4 + * @arg @ref LL_RCC_PLLP_DIV_5 + * @arg @ref LL_RCC_PLLP_DIV_6 + * @arg @ref LL_RCC_PLLP_DIV_7 + * @arg @ref LL_RCC_PLLP_DIV_8 + * @arg @ref LL_RCC_PLLP_DIV_9 + * @arg @ref LL_RCC_PLLP_DIV_10 + * @arg @ref LL_RCC_PLLP_DIV_11 + * @arg @ref LL_RCC_PLLP_DIV_12 + * @arg @ref LL_RCC_PLLP_DIV_13 + * @arg @ref LL_RCC_PLLP_DIV_14 + * @arg @ref LL_RCC_PLLP_DIV_15 + * @arg @ref LL_RCC_PLLP_DIV_16 + * @arg @ref LL_RCC_PLLP_DIV_17 + * @arg @ref LL_RCC_PLLP_DIV_18 + * @arg @ref LL_RCC_PLLP_DIV_19 + * @arg @ref LL_RCC_PLLP_DIV_20 + * @arg @ref LL_RCC_PLLP_DIV_21 + * @arg @ref LL_RCC_PLLP_DIV_22 + * @arg @ref LL_RCC_PLLP_DIV_23 + * @arg @ref LL_RCC_PLLP_DIV_24 + * @arg @ref LL_RCC_PLLP_DIV_25 + * @arg @ref LL_RCC_PLLP_DIV_26 + * @arg @ref LL_RCC_PLLP_DIV_27 + * @arg @ref LL_RCC_PLLP_DIV_28 + * @arg @ref LL_RCC_PLLP_DIV_29 + * @arg @ref LL_RCC_PLLP_DIV_30 + * @arg @ref LL_RCC_PLLP_DIV_31 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetP(void) +{ + return (uint32_t) ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) != 0U) ? READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) : ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP) == RCC_PLLCFGR_PLLP) ? LL_RCC_PLLP_DIV_17 : LL_RCC_PLLP_DIV_7) ); +} + +/** + * @brief Get Main PLL division factor for PLLQ + * @note Used for PLL48M1CLK selected for USB, RNG (48 MHz clock) + * @rmtoll PLLCFGR PLLQ LL_RCC_PLL_GetQ + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLQ_DIV_2 + * @arg @ref LL_RCC_PLLQ_DIV_4 + * @arg @ref LL_RCC_PLLQ_DIV_6 + * @arg @ref LL_RCC_PLLQ_DIV_8 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetQ(void) +{ + return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ)); +} + +/** + * @brief Get Main PLL division factor for PLLR + * @note Used for PLLCLK (system clock) + * @rmtoll PLLCFGR PLLR LL_RCC_PLL_GetR + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLR_DIV_2 + * @arg @ref LL_RCC_PLLR_DIV_4 + * @arg @ref LL_RCC_PLLR_DIV_6 + * @arg @ref LL_RCC_PLLR_DIV_8 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetR(void) +{ + return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR)); +} + +/** + * @brief Get Division factor for the main PLL and other PLL + * @rmtoll PLLCFGR PLLM LL_RCC_PLL_GetDivider + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLM_DIV_1 + * @arg @ref LL_RCC_PLLM_DIV_2 + * @arg @ref LL_RCC_PLLM_DIV_3 + * @arg @ref LL_RCC_PLLM_DIV_4 + * @arg @ref LL_RCC_PLLM_DIV_5 + * @arg @ref LL_RCC_PLLM_DIV_6 + * @arg @ref LL_RCC_PLLM_DIV_7 + * @arg @ref LL_RCC_PLLM_DIV_8 + * @arg @ref LL_RCC_PLLM_DIV_9 + * @arg @ref LL_RCC_PLLM_DIV_10 + * @arg @ref LL_RCC_PLLM_DIV_11 + * @arg @ref LL_RCC_PLLM_DIV_12 + * @arg @ref LL_RCC_PLLM_DIV_13 + * @arg @ref LL_RCC_PLLM_DIV_14 + * @arg @ref LL_RCC_PLLM_DIV_15 + * @arg @ref LL_RCC_PLLM_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void) +{ + return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM)); +} + +/** + * @brief Enable PLL output mapped on ADC domain clock + * @rmtoll PLLCFGR PLLPEN LL_RCC_PLL_EnableDomain_ADC + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_EnableDomain_ADC(void) +{ + SET_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPEN); +} + +/** + * @brief Disable PLL output mapped on ADC domain clock + * @note Cannot be disabled if the PLL clock is used as the system + * clock + * @note In order to save power, when the PLLCLK of the PLL is + * not used, should be 0 + * @rmtoll PLLCFGR PLLPEN LL_RCC_PLL_DisableDomain_ADC + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_DisableDomain_ADC(void) +{ + CLEAR_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPEN); +} + +/** + * @brief Check if PLL output mapped on ADC domain clock is enabled + * @rmtoll PLLCFGR PLLPEN LL_RCC_PLL_IsEnabledDomain_ADC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_IsEnabledDomain_ADC(void) +{ + return ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPEN) == (RCC_PLLCFGR_PLLPEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable PLL output mapped on 48MHz domain clock + * @rmtoll PLLCFGR PLLQEN LL_RCC_PLL_EnableDomain_48M + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_EnableDomain_48M(void) +{ + SET_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQEN); +} + +/** + * @brief Disable PLL output mapped on 48MHz domain clock + * @note Cannot be disabled if the PLL clock is used as the system + * clock + * @note In order to save power, when the PLLCLK of the PLL is + * not used, should be 0 + * @rmtoll PLLCFGR PLLQEN LL_RCC_PLL_DisableDomain_48M + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_DisableDomain_48M(void) +{ + CLEAR_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQEN); +} + +/** + * @brief Check if PLL output mapped on 48MHz domain clock is enabled + * @rmtoll PLLCFGR PLLQEN LL_RCC_PLL_IsEnabledDomain_48M + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_IsEnabledDomain_48M(void) +{ + return ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQEN) == (RCC_PLLCFGR_PLLQEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable PLL output mapped on SYSCLK domain + * @rmtoll PLLCFGR PLLREN LL_RCC_PLL_EnableDomain_SYS + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_EnableDomain_SYS(void) +{ + SET_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLREN); +} + +/** + * @brief Disable PLL output mapped on SYSCLK domain + * @note Cannot be disabled if the PLL clock is used as the system + * clock + * @note In order to save power, when the PLLCLK of the PLL is + * not used, Main PLL should be 0 + * @rmtoll PLLCFGR PLLREN LL_RCC_PLL_DisableDomain_SYS + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_DisableDomain_SYS(void) +{ + CLEAR_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLREN); +} + +/** + * @brief Check if PLL output mapped on SYSCLK domain clock is enabled + * @rmtoll PLLCFGR PLLREN LL_RCC_PLL_IsEnabledDomain_SYS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_IsEnabledDomain_SYS(void) +{ + return ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLREN) == (RCC_PLLCFGR_PLLREN)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_FLAG_Management FLAG Management + * @{ + */ + +/** + * @brief Clear LSI ready interrupt flag + * @rmtoll CICR LSIRDYC LL_RCC_ClearFlag_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_LSIRDYC); +} + +/** + * @brief Clear LSE ready interrupt flag + * @rmtoll CICR LSERDYC LL_RCC_ClearFlag_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_LSERDYC); +} + +/** + * @brief Clear HSI ready interrupt flag + * @rmtoll CICR HSIRDYC LL_RCC_ClearFlag_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_HSIRDYC); +} + +/** + * @brief Clear HSE ready interrupt flag + * @rmtoll CICR HSERDYC LL_RCC_ClearFlag_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_HSERDYC); +} + +/** + * @brief Clear PLL ready interrupt flag + * @rmtoll CICR PLLRDYC LL_RCC_ClearFlag_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_PLLRDY(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_PLLRDYC); +} + +/** + * @brief Clear HSI48 ready interrupt flag + * @rmtoll CICR HSI48RDYC LL_RCC_ClearFlag_HSI48RDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSI48RDY(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_HSI48RDYC); +} + +/** + * @brief Clear Clock security system interrupt flag + * @rmtoll CICR CSSC LL_RCC_ClearFlag_HSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_CSSC); +} + +/** + * @brief Clear LSE Clock security system interrupt flag + * @rmtoll CICR LSECSSC LL_RCC_ClearFlag_LSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSECSS(void) +{ + SET_BIT(RCC->CICR, RCC_CICR_LSECSSC); +} + +/** + * @brief Check if LSI ready interrupt occurred or not + * @rmtoll CIFR LSIRDYF LL_RCC_IsActiveFlag_LSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSIRDY(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_LSIRDYF) == (RCC_CIFR_LSIRDYF)) ? 1UL : 0UL); +} + +/** + * @brief Check if LSE ready interrupt occurred or not + * @rmtoll CIFR LSERDYF LL_RCC_IsActiveFlag_LSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSERDY(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_LSERDYF) == (RCC_CIFR_LSERDYF)) ? 1UL : 0UL); +} + +/** + * @brief Check if HSI ready interrupt occurred or not + * @rmtoll CIFR HSIRDYF LL_RCC_IsActiveFlag_HSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSIRDY(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_HSIRDYF) == (RCC_CIFR_HSIRDYF)) ? 1UL : 0UL); +} + +/** + * @brief Check if HSE ready interrupt occurred or not + * @rmtoll CIFR HSERDYF LL_RCC_IsActiveFlag_HSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSERDY(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_HSERDYF) == (RCC_CIFR_HSERDYF)) ? 1UL : 0UL); +} + +/** + * @brief Check if PLL ready interrupt occurred or not + * @rmtoll CIFR PLLRDYF LL_RCC_IsActiveFlag_PLLRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLRDY(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_PLLRDYF) == (RCC_CIFR_PLLRDYF)) ? 1UL : 0UL); +} + +/** + * @brief Check if HSI48 ready interrupt occurred or not + * @rmtoll CIR HSI48RDYF LL_RCC_IsActiveFlag_HSI48RDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSI48RDY(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_HSI48RDYF) == (RCC_CIFR_HSI48RDYF)) ? 1UL : 0UL); +} + +/** + * @brief Check if Clock security system interrupt occurred or not + * @rmtoll CIFR CSSF LL_RCC_IsActiveFlag_HSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSECSS(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_CSSF) == (RCC_CIFR_CSSF)) ? 1UL : 0UL); +} + +/** + * @brief Check if LSE Clock security system interrupt occurred or not + * @rmtoll CIFR LSECSSF LL_RCC_IsActiveFlag_LSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSECSS(void) +{ + return ((READ_BIT(RCC->CIFR, RCC_CIFR_LSECSSF) == (RCC_CIFR_LSECSSF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Independent Watchdog reset is set or not. + * @rmtoll CSR IWDGRSTF LL_RCC_IsActiveFlag_IWDGRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_IWDGRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_IWDGRSTF) == (RCC_CSR_IWDGRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Low Power reset is set or not. + * @rmtoll CSR LPWRRSTF LL_RCC_IsActiveFlag_LPWRRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LPWRRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_LPWRRSTF) == (RCC_CSR_LPWRRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Option byte reset is set or not. + * @rmtoll CSR OBLRSTF LL_RCC_IsActiveFlag_OBLRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_OBLRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_OBLRSTF) == (RCC_CSR_OBLRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Pin reset is set or not. + * @rmtoll CSR PINRSTF LL_RCC_IsActiveFlag_PINRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PINRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_PINRSTF) == (RCC_CSR_PINRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Software reset is set or not. + * @rmtoll CSR SFTRSTF LL_RCC_IsActiveFlag_SFTRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SFTRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_SFTRSTF) == (RCC_CSR_SFTRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Window Watchdog reset is set or not. + * @rmtoll CSR WWDGRSTF LL_RCC_IsActiveFlag_WWDGRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WWDGRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_WWDGRSTF) == (RCC_CSR_WWDGRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag BOR reset is set or not. + * @rmtoll CSR BORRSTF LL_RCC_IsActiveFlag_BORRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_BORRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_BORRSTF) == (RCC_CSR_BORRSTF)) ? 1UL : 0UL); +} + +/** + * @brief Set RMVF bit to clear the reset flags. + * @rmtoll CSR RMVF LL_RCC_ClearResetFlags + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearResetFlags(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_RMVF); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_IT_Management IT Management + * @{ + */ + +/** + * @brief Enable LSI ready interrupt + * @rmtoll CIER LSIRDYIE LL_RCC_EnableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_LSIRDYIE); +} + +/** + * @brief Enable LSE ready interrupt + * @rmtoll CIER LSERDYIE LL_RCC_EnableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_LSERDYIE); +} + +/** + * @brief Enable HSI ready interrupt + * @rmtoll CIER HSIRDYIE LL_RCC_EnableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_HSIRDYIE); +} + +/** + * @brief Enable HSE ready interrupt + * @rmtoll CIER HSERDYIE LL_RCC_EnableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_HSERDYIE); +} + +/** + * @brief Enable PLL ready interrupt + * @rmtoll CIER PLLRDYIE LL_RCC_EnableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_PLLRDY(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_PLLRDYIE); +} + +/** + * @brief Enable HSI48 ready interrupt + * @rmtoll CIER HSI48RDYIE LL_RCC_EnableIT_HSI48RDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSI48RDY(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_HSI48RDYIE); +} + +/** + * @brief Enable LSE clock security system interrupt + * @rmtoll CIER LSECSSIE LL_RCC_EnableIT_LSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSECSS(void) +{ + SET_BIT(RCC->CIER, RCC_CIER_LSECSSIE); +} + +/** + * @brief Disable LSI ready interrupt + * @rmtoll CIER LSIRDYIE LL_RCC_DisableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_LSIRDYIE); +} + +/** + * @brief Disable LSE ready interrupt + * @rmtoll CIER LSERDYIE LL_RCC_DisableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_LSERDYIE); +} + +/** + * @brief Disable HSI ready interrupt + * @rmtoll CIER HSIRDYIE LL_RCC_DisableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_HSIRDYIE); +} + +/** + * @brief Disable HSE ready interrupt + * @rmtoll CIER HSERDYIE LL_RCC_DisableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_HSERDYIE); +} + +/** + * @brief Disable PLL ready interrupt + * @rmtoll CIER PLLRDYIE LL_RCC_DisableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_PLLRDY(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_PLLRDYIE); +} + +/** + * @brief Disable HSI48 ready interrupt + * @rmtoll CIER HSI48RDYIE LL_RCC_DisableIT_HSI48RDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSI48RDY(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_HSI48RDYIE); +} + +/** + * @brief Disable LSE clock security system interrupt + * @rmtoll CIER LSECSSIE LL_RCC_DisableIT_LSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSECSS(void) +{ + CLEAR_BIT(RCC->CIER, RCC_CIER_LSECSSIE); +} + +/** + * @brief Checks if LSI ready interrupt source is enabled or disabled. + * @rmtoll CIER LSIRDYIE LL_RCC_IsEnabledIT_LSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSIRDY(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_LSIRDYIE) == (RCC_CIER_LSIRDYIE)) ? 1UL : 0UL); +} + +/** + * @brief Checks if LSE ready interrupt source is enabled or disabled. + * @rmtoll CIER LSERDYIE LL_RCC_IsEnabledIT_LSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSERDY(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_LSERDYIE) == (RCC_CIER_LSERDYIE)) ? 1UL : 0UL); +} + +/** + * @brief Checks if HSI ready interrupt source is enabled or disabled. + * @rmtoll CIER HSIRDYIE LL_RCC_IsEnabledIT_HSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSIRDY(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_HSIRDYIE) == (RCC_CIER_HSIRDYIE)) ? 1UL : 0UL); +} + +/** + * @brief Checks if HSE ready interrupt source is enabled or disabled. + * @rmtoll CIER HSERDYIE LL_RCC_IsEnabledIT_HSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSERDY(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_HSERDYIE) == (RCC_CIER_HSERDYIE)) ? 1UL : 0UL); +} + +/** + * @brief Checks if PLL ready interrupt source is enabled or disabled. + * @rmtoll CIER PLLRDYIE LL_RCC_IsEnabledIT_PLLRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLRDY(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_PLLRDYIE) == (RCC_CIER_PLLRDYIE)) ? 1UL : 0UL); +} + +/** + * @brief Checks if HSI48 ready interrupt source is enabled or disabled. + * @rmtoll CIER HSI48RDYIE LL_RCC_IsEnabledIT_HSI48RDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSI48RDY(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_HSI48RDYIE) == (RCC_CIER_HSI48RDYIE)) ? 1UL : 0UL); +} + +/** + * @brief Checks if LSECSS interrupt source is enabled or disabled. + * @rmtoll CIER LSECSSIE LL_RCC_IsEnabledIT_LSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSECSS(void) +{ + return ((READ_BIT(RCC->CIER, RCC_CIER_LSECSSIE) == (RCC_CIER_LSECSSIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_EF_Init De-initialization function + * @{ + */ +ErrorStatus LL_RCC_DeInit(void); +/** + * @} + */ + +/** @defgroup RCC_LL_EF_Get_Freq Get system and peripherals clocks frequency functions + * @{ + */ +void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks); +uint32_t LL_RCC_GetUSARTClockFreq(uint32_t USARTxSource); +#if defined(UART4) +uint32_t LL_RCC_GetUARTClockFreq(uint32_t UARTxSource); +#endif /* UART4 */ +uint32_t LL_RCC_GetI2CClockFreq(uint32_t I2CxSource); +uint32_t LL_RCC_GetLPUARTClockFreq(uint32_t LPUARTxSource); +uint32_t LL_RCC_GetLPTIMClockFreq(uint32_t LPTIMxSource); +uint32_t LL_RCC_GetSAIClockFreq(uint32_t SAIxSource); +uint32_t LL_RCC_GetI2SClockFreq(uint32_t I2SxSource); +#if defined(FDCAN1) +uint32_t LL_RCC_GetFDCANClockFreq(uint32_t FDCANxSource); +#endif /* FDCAN1 */ +uint32_t LL_RCC_GetRNGClockFreq(uint32_t RNGxSource); +uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource); +uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource); +#if defined(QUADSPI) +uint32_t LL_RCC_GetQUADSPIClockFreq(uint32_t QUADSPIxSource); +#endif /* QUADSPI */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_RCC_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_system.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_system.h new file mode 100644 index 0000000..9d5660f --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_system.h @@ -0,0 +1,1519 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_system.h + * @author MCD Application Team + * @brief Header file of SYSTEM LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL SYSTEM driver contains a set of generic APIs that can be + used by user: + (+) Some of the FLASH features need to be handled in the SYSTEM file. + (+) Access to DBGCMU registers + (+) Access to SYSCFG registers + (+) Access to VREFBUF registers + + @endverbatim + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_SYSTEM_H +#define __STM32G4xx_LL_SYSTEM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined (VREFBUF) + +/** @defgroup SYSTEM_LL SYSTEM + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants + * @{ + */ + +/* Defines used for position in the register */ +#define DBGMCU_REVID_POSITION (uint32_t)POSITION_VAL(DBGMCU_IDCODE_REV_ID) + +/** + * @brief Power-down in Run mode Flash key + */ +#define FLASH_PDKEY1 0x04152637U /*!< Flash power down key1 */ +#define FLASH_PDKEY2 0xFAFBFCFDU /*!< Flash power down key2: used with FLASH_PDKEY1 + to unlock the RUN_PD bit in FLASH_ACR */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants + * @{ + */ + +/** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP + * @{ + */ +#define LL_SYSCFG_REMAP_FLASH 0x00000000U /*!< Main Flash memory mapped at 0x00000000 */ +#define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_MEMRMP_MEM_MODE_0 /*!< System Flash memory mapped at 0x00000000 */ +#define LL_SYSCFG_REMAP_SRAM (SYSCFG_MEMRMP_MEM_MODE_1 | SYSCFG_MEMRMP_MEM_MODE_0) /*!< SRAM1 mapped at 0x00000000 */ +#if defined(FMC_Bank1_R) +#define LL_SYSCFG_REMAP_FMC SYSCFG_MEMRMP_MEM_MODE_1 /*!< FMC bank 1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 */ +#endif /* FMC_Bank1_R */ +#define LL_SYSCFG_REMAP_QUADSPI (SYSCFG_MEMRMP_MEM_MODE_2 | SYSCFG_MEMRMP_MEM_MODE_1) /*!< QUADSPI memory mapped at 0x00000000 */ +/** + * @} + */ + +#if defined(SYSCFG_MEMRMP_FB_MODE) +/** @defgroup SYSTEM_LL_EC_BANKMODE SYSCFG BANK MODE + * @{ + */ +#define LL_SYSCFG_BANKMODE_BANK1 0x00000000U /*!< Flash Bank1 mapped at 0x08000000 (and aliased @0x00000000) + and Flash Bank2 mapped at 0x08040000 (and aliased at 0x00080000) */ +#define LL_SYSCFG_BANKMODE_BANK2 SYSCFG_MEMRMP_FB_MODE /*!< Flash Bank2 mapped at 0x08000000 (and aliased @0x00000000) + and Flash Bank1 mapped at 0x08040000 (and aliased at 0x00080000) */ +/** + * @} + */ + +#endif /* SYSCFG_MEMRMP_FB_MODE */ +/** @defgroup SYSTEM_LL_EC_I2C_FASTMODEPLUS SYSCFG I2C FASTMODEPLUS + * @{ + */ +#define LL_SYSCFG_I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< Enable Fast Mode Plus on PB6 */ +#define LL_SYSCFG_I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< Enable Fast Mode Plus on PB7 */ +#if defined(SYSCFG_CFGR1_I2C_PB8_FMP) +#define LL_SYSCFG_I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< Enable Fast Mode Plus on PB8 */ +#endif /* SYSCFG_CFGR1_I2C_PB8_FMP */ +#if defined(SYSCFG_CFGR1_I2C_PB9_FMP) +#define LL_SYSCFG_I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< Enable Fast Mode Plus on PB9 */ +#endif /* SYSCFG_CFGR1_I2C_PB9_FMP */ +#define LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C1_FMP /*!< Enable Fast Mode Plus on I2C1 pins */ +#if defined(I2C2) +#define LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 SYSCFG_CFGR1_I2C2_FMP /*!< Enable Fast Mode Plus on I2C2 pins */ +#endif /* I2C2 */ +#define LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 SYSCFG_CFGR1_I2C3_FMP /*!< Enable Fast Mode Plus on I2C3 pins */ +#if defined(I2C4) +#define LL_SYSCFG_I2C_FASTMODEPLUS_I2C4 SYSCFG_CFGR1_I2C4_FMP /*!< Enable Fast Mode Plus on I2C4 pins */ +#endif /* I2C4 */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_EXTI_PORT SYSCFG EXTI PORT + * @{ + */ +#define LL_SYSCFG_EXTI_PORTA 0U /*!< EXTI PORT A */ +#define LL_SYSCFG_EXTI_PORTB 1U /*!< EXTI PORT B */ +#define LL_SYSCFG_EXTI_PORTC 2U /*!< EXTI PORT C */ +#define LL_SYSCFG_EXTI_PORTD 3U /*!< EXTI PORT D */ +#define LL_SYSCFG_EXTI_PORTE 4U /*!< EXTI PORT E */ +#define LL_SYSCFG_EXTI_PORTF 5U /*!< EXTI PORT F */ +#define LL_SYSCFG_EXTI_PORTG 6U /*!< EXTI PORT G */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_EXTI_LINE SYSCFG EXTI LINE + * @{ + */ +#define LL_SYSCFG_EXTI_LINE0 (uint32_t)((0x000FU << 16U) | 0U) /* !< EXTI_POSITION_0 | EXTICR[0] */ +#define LL_SYSCFG_EXTI_LINE1 (uint32_t)((0x00F0U << 16U) | 0U) /* !< EXTI_POSITION_4 | EXTICR[0] */ +#define LL_SYSCFG_EXTI_LINE2 (uint32_t)((0x0F00U << 16U) | 0U) /* !< EXTI_POSITION_8 | EXTICR[0] */ +#define LL_SYSCFG_EXTI_LINE3 (uint32_t)((0xF000U << 16U) | 0U) /* !< EXTI_POSITION_12 | EXTICR[0] */ +#define LL_SYSCFG_EXTI_LINE4 (uint32_t)((0x000FU << 16U) | 1U) /* !< EXTI_POSITION_0 | EXTICR[1] */ +#define LL_SYSCFG_EXTI_LINE5 (uint32_t)((0x00F0U << 16U) | 1U) /* !< EXTI_POSITION_4 | EXTICR[1] */ +#define LL_SYSCFG_EXTI_LINE6 (uint32_t)((0x0F00U << 16U) | 1U) /* !< EXTI_POSITION_8 | EXTICR[1] */ +#define LL_SYSCFG_EXTI_LINE7 (uint32_t)((0xF000U << 16U) | 1U) /* !< EXTI_POSITION_12 | EXTICR[1] */ +#define LL_SYSCFG_EXTI_LINE8 (uint32_t)((0x000FU << 16U) | 2U) /* !< EXTI_POSITION_0 | EXTICR[2] */ +#define LL_SYSCFG_EXTI_LINE9 (uint32_t)((0x00F0U << 16U) | 2U) /* !< EXTI_POSITION_4 | EXTICR[2] */ +#define LL_SYSCFG_EXTI_LINE10 (uint32_t)((0x0F00U << 16U) | 2U) /* !< EXTI_POSITION_8 | EXTICR[2] */ +#define LL_SYSCFG_EXTI_LINE11 (uint32_t)((0xF000U << 16U) | 2U) /* !< EXTI_POSITION_12 | EXTICR[2] */ +#define LL_SYSCFG_EXTI_LINE12 (uint32_t)((0x000FU << 16U) | 3U) /* !< EXTI_POSITION_0 | EXTICR[3] */ +#define LL_SYSCFG_EXTI_LINE13 (uint32_t)((0x00F0U << 16U) | 3U) /* !< EXTI_POSITION_4 | EXTICR[3] */ +#define LL_SYSCFG_EXTI_LINE14 (uint32_t)((0x0F00U << 16U) | 3U) /* !< EXTI_POSITION_8 | EXTICR[3] */ +#define LL_SYSCFG_EXTI_LINE15 (uint32_t)((0xF000U << 16U) | 3U) /* !< EXTI_POSITION_12 | EXTICR[3] */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_TIMBREAK SYSCFG TIMER BREAK + * @{ + */ +#define LL_SYSCFG_TIMBREAK_ECC SYSCFG_CFGR2_ECCL /*!< Enables and locks the ECC error signal + with Break Input of TIM1/8/15/16/17 */ +#define LL_SYSCFG_TIMBREAK_PVD SYSCFG_CFGR2_PVDL /*!< Enables and locks the PVD connection + with TIM1/8/15/16/17 Break Input + and also the PVDE and PLS bits of the Power Control Interface */ +#define LL_SYSCFG_TIMBREAK_SRAM_PARITY SYSCFG_CFGR2_SPL /*!< Enables and locks the SRAM_PARITY error signal + with Break Input of TIM1/8/15/16/17 */ +#define LL_SYSCFG_TIMBREAK_LOCKUP SYSCFG_CFGR2_CLL /*!< Enables and locks the LOCKUP output of CortexM4 + with Break Input of TIM1/15/16/17 */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_CCMSRAMWRP SYSCFG CCMSRAM WRP + * @{ + */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE0 SYSCFG_SWPR_PAGE0 /*!< CCMSRAM Write protection page 0 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE1 SYSCFG_SWPR_PAGE1 /*!< CCMSRAM Write protection page 1 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE2 SYSCFG_SWPR_PAGE2 /*!< CCMSRAM Write protection page 2 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE3 SYSCFG_SWPR_PAGE3 /*!< CCMSRAM Write protection page 3 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE4 SYSCFG_SWPR_PAGE4 /*!< CCMSRAM Write protection page 4 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE5 SYSCFG_SWPR_PAGE5 /*!< CCMSRAM Write protection page 5 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE6 SYSCFG_SWPR_PAGE6 /*!< CCMSRAM Write protection page 6 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE7 SYSCFG_SWPR_PAGE7 /*!< CCMSRAM Write protection page 7 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE8 SYSCFG_SWPR_PAGE8 /*!< CCMSRAM Write protection page 8 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE9 SYSCFG_SWPR_PAGE9 /*!< CCMSRAM Write protection page 9 */ +#if defined(SYSCFG_SWPR_PAGE10) +#define LL_SYSCFG_CCMSRAMWRP_PAGE10 SYSCFG_SWPR_PAGE10 /*!< CCMSRAM Write protection page 10 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE11 SYSCFG_SWPR_PAGE11 /*!< CCMSRAM Write protection page 11 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE12 SYSCFG_SWPR_PAGE12 /*!< CCMSRAM Write protection page 12 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE13 SYSCFG_SWPR_PAGE13 /*!< CCMSRAM Write protection page 13 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE14 SYSCFG_SWPR_PAGE14 /*!< CCMSRAM Write protection page 14 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE15 SYSCFG_SWPR_PAGE15 /*!< CCMSRAM Write protection page 15 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE16 SYSCFG_SWPR_PAGE16 /*!< CCMSRAM Write protection page 16 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE17 SYSCFG_SWPR_PAGE17 /*!< CCMSRAM Write protection page 17 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE18 SYSCFG_SWPR_PAGE18 /*!< CCMSRAM Write protection page 18 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE19 SYSCFG_SWPR_PAGE19 /*!< CCMSRAM Write protection page 19 */ +#endif /* SYSCFG_SWPR_PAGE10 */ +#if defined(SYSCFG_SWPR_PAGE20) +#define LL_SYSCFG_CCMSRAMWRP_PAGE20 SYSCFG_SWPR_PAGE20 /*!< CCMSRAM Write protection page 20 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE21 SYSCFG_SWPR_PAGE21 /*!< CCMSRAM Write protection page 21 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE22 SYSCFG_SWPR_PAGE22 /*!< CCMSRAM Write protection page 22 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE23 SYSCFG_SWPR_PAGE23 /*!< CCMSRAM Write protection page 23 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE24 SYSCFG_SWPR_PAGE24 /*!< CCMSRAM Write protection page 24 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE25 SYSCFG_SWPR_PAGE25 /*!< CCMSRAM Write protection page 25 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE26 SYSCFG_SWPR_PAGE26 /*!< CCMSRAM Write protection page 26 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE27 SYSCFG_SWPR_PAGE27 /*!< CCMSRAM Write protection page 27 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE28 SYSCFG_SWPR_PAGE28 /*!< CCMSRAM Write protection page 28 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE29 SYSCFG_SWPR_PAGE29 /*!< CCMSRAM Write protection page 29 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE30 SYSCFG_SWPR_PAGE30 /*!< CCMSRAM Write protection page 30 */ +#define LL_SYSCFG_CCMSRAMWRP_PAGE31 SYSCFG_SWPR_PAGE31 /*!< CCMSRAM Write protection page 31 */ +#endif /* SYSCFG_SWPR_PAGE20 */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment + * @{ + */ +#define LL_DBGMCU_TRACE_NONE 0x00000000U /*!< TRACE pins not assigned (default state) */ +#define LL_DBGMCU_TRACE_ASYNCH DBGMCU_CR_TRACE_IOEN /*!< TRACE pin assignment for Asynchronous Mode */ +#define LL_DBGMCU_TRACE_SYNCH_SIZE1 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_0) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 1 */ +#define LL_DBGMCU_TRACE_SYNCH_SIZE2 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_1) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 2 */ +#define LL_DBGMCU_TRACE_SYNCH_SIZE4 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 4 */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP + * @{ + */ +#define LL_DBGMCU_APB1_GRP1_TIM2_STOP DBGMCU_APB1FZR1_DBG_TIM2_STOP /*!< The counter clock of TIM2 is stopped when the core is halted*/ +#if defined(TIM3) +#define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBGMCU_APB1FZR1_DBG_TIM3_STOP /*!< The counter clock of TIM3 is stopped when the core is halted*/ +#endif /* TIM3 */ +#if defined(TIM4) +#define LL_DBGMCU_APB1_GRP1_TIM4_STOP DBGMCU_APB1FZR1_DBG_TIM4_STOP /*!< The counter clock of TIM4 is stopped when the core is halted*/ +#endif /* TIM4 */ +#if defined(TIM5) +#define LL_DBGMCU_APB1_GRP1_TIM5_STOP DBGMCU_APB1FZR1_DBG_TIM5_STOP /*!< The counter clock of TIM5 is stopped when the core is halted*/ +#endif /* TIM5 */ +#define LL_DBGMCU_APB1_GRP1_TIM6_STOP DBGMCU_APB1FZR1_DBG_TIM6_STOP /*!< The counter clock of TIM6 is stopped when the core is halted*/ +#if defined(TIM7) +#define LL_DBGMCU_APB1_GRP1_TIM7_STOP DBGMCU_APB1FZR1_DBG_TIM7_STOP /*!< The counter clock of TIM7 is stopped when the core is halted*/ +#endif /* TIM7 */ +#define LL_DBGMCU_APB1_GRP1_RTC_STOP DBGMCU_APB1FZR1_DBG_RTC_STOP /*!< The clock of the RTC counter is stopped when the core is halted*/ +#define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBGMCU_APB1FZR1_DBG_WWDG_STOP /*!< The window watchdog counter clock is stopped when the core is halted*/ +#define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBGMCU_APB1FZR1_DBG_IWDG_STOP /*!< The independent watchdog counter clock is stopped when the core is halted*/ +#define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBGMCU_APB1FZR1_DBG_I2C1_STOP /*!< The I2C1 SMBus timeout is frozen*/ +#if defined(I2C2) +#define LL_DBGMCU_APB1_GRP1_I2C2_STOP DBGMCU_APB1FZR1_DBG_I2C2_STOP /*!< The I2C2 SMBus timeout is frozen*/ +#endif /* I2C2 */ +#if defined(I2C3) +#define LL_DBGMCU_APB1_GRP1_I2C3_STOP DBGMCU_APB1FZR1_DBG_I2C3_STOP /*!< The I2C3 SMBus timeout is frozen*/ +#endif /* I2C3 */ +#define LL_DBGMCU_APB1_GRP1_LPTIM1_STOP DBGMCU_APB1FZR1_DBG_LPTIM1_STOP /*!< The counter clock of LPTIM1 is stopped when the core is halted*/ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_APB1_GRP2_STOP_IP DBGMCU APB1 GRP2 STOP IP + * @{ + */ +#if defined(I2C4) +#define LL_DBGMCU_APB1_GRP2_I2C4_STOP DBGMCU_APB1FZR2_DBG_I2C4_STOP /*!< The I2C4 SMBus timeout is frozen*/ +#endif /* I2C4 */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP + * @{ + */ +#define LL_DBGMCU_APB2_GRP1_TIM1_STOP DBGMCU_APB2FZ_DBG_TIM1_STOP /*!< The counter clock of TIM1 is stopped when the core is halted*/ +#if defined(TIM8) +#define LL_DBGMCU_APB2_GRP1_TIM8_STOP DBGMCU_APB2FZ_DBG_TIM8_STOP /*!< The counter clock of TIM8 is stopped when the core is halted*/ +#endif /* TIM8 */ +#define LL_DBGMCU_APB2_GRP1_TIM15_STOP DBGMCU_APB2FZ_DBG_TIM15_STOP /*!< The counter clock of TIM15 is stopped when the core is halted*/ +#define LL_DBGMCU_APB2_GRP1_TIM16_STOP DBGMCU_APB2FZ_DBG_TIM16_STOP /*!< The counter clock of TIM16 is stopped when the core is halted*/ +#if defined(TIM17) +#define LL_DBGMCU_APB2_GRP1_TIM17_STOP DBGMCU_APB2FZ_DBG_TIM17_STOP /*!< The counter clock of TIM17 is stopped when the core is halted*/ +#endif /* TIM17 */ +#if defined(TIM20) +#define LL_DBGMCU_APB2_GRP1_TIM20_STOP DBGMCU_APB2FZ_DBG_TIM20_STOP /*!< The counter clock of TIM20 is stopped when the core is halted*/ +#endif /* TIM20 */ +#if defined(HRTIM1) +#define LL_DBGMCU_APB2_GRP1_HRTIM1_STOP DBGMCU_APB2FZ_DBG_HRTIM1_STOP /*!< The counter clock of HRTIM1 is stopped when the core is halted*/ +#endif /* HRTIM1 */ +/** + * @} + */ + +#if defined(VREFBUF) +/** @defgroup SYSTEM_LL_EC_VOLTAGE VREFBUF VOLTAGE + * @{ + */ +#define LL_VREFBUF_VOLTAGE_SCALE0 ((uint32_t)0x00000000) /*!< Voltage reference scale 0 (VREFBUF_OUT = 2.048V) */ +#define LL_VREFBUF_VOLTAGE_SCALE1 VREFBUF_CSR_VRS_0 /*!< Voltage reference scale 1 (VREFBUF_OUT = 2.5V) */ +#define LL_VREFBUF_VOLTAGE_SCALE2 VREFBUF_CSR_VRS_1 /*!< Voltage reference scale 2 (VREFBUF_OUT = 2.9V) */ +/** + * @} + */ +#endif /* VREFBUF */ + +/** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY + * @{ + */ +#define LL_FLASH_LATENCY_0 FLASH_ACR_LATENCY_0WS /*!< FLASH Zero wait state */ +#define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY_1WS /*!< FLASH One wait state */ +#define LL_FLASH_LATENCY_2 FLASH_ACR_LATENCY_2WS /*!< FLASH Two wait states */ +#define LL_FLASH_LATENCY_3 FLASH_ACR_LATENCY_3WS /*!< FLASH Three wait states */ +#define LL_FLASH_LATENCY_4 FLASH_ACR_LATENCY_4WS /*!< FLASH Four wait states */ +#if defined(FLASH_ACR_LATENCY_5WS) +#define LL_FLASH_LATENCY_5 FLASH_ACR_LATENCY_5WS /*!< FLASH five wait state */ +#define LL_FLASH_LATENCY_6 FLASH_ACR_LATENCY_6WS /*!< FLASH six wait state */ +#define LL_FLASH_LATENCY_7 FLASH_ACR_LATENCY_7WS /*!< FLASH seven wait states */ +#define LL_FLASH_LATENCY_8 FLASH_ACR_LATENCY_8WS /*!< FLASH eight wait states */ +#define LL_FLASH_LATENCY_9 FLASH_ACR_LATENCY_9WS /*!< FLASH nine wait states */ +#define LL_FLASH_LATENCY_10 FLASH_ACR_LATENCY_10WS /*!< FLASH ten wait states */ +#define LL_FLASH_LATENCY_11 FLASH_ACR_LATENCY_11WS /*!< FLASH eleven wait states */ +#define LL_FLASH_LATENCY_12 FLASH_ACR_LATENCY_12WS /*!< FLASH twelve wait states */ +#define LL_FLASH_LATENCY_13 FLASH_ACR_LATENCY_13WS /*!< FLASH thirteen wait states */ +#define LL_FLASH_LATENCY_14 FLASH_ACR_LATENCY_14WS /*!< FLASH fourteen wait states */ +#define LL_FLASH_LATENCY_15 FLASH_ACR_LATENCY_15WS /*!< FLASH fifteen wait states */ +#endif /* FLASH_ACR_LATENCY_5WS */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions + * @{ + */ + +/** @defgroup SYSTEM_LL_EF_SYSCFG SYSCFG + * @{ + */ + +/** + * @brief Set memory mapping at address 0x00000000 + * @rmtoll SYSCFG_MEMRMP MEM_MODE LL_SYSCFG_SetRemapMemory + * @param Memory This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_REMAP_FLASH + * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH + * @arg @ref LL_SYSCFG_REMAP_SRAM + * @arg @ref LL_SYSCFG_REMAP_FMC (*) + * @arg @ref LL_SYSCFG_REMAP_QUADSPI (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapMemory(uint32_t Memory) +{ + MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, Memory); +} + +/** + * @brief Get memory mapping at address 0x00000000 + * @rmtoll SYSCFG_MEMRMP MEM_MODE LL_SYSCFG_GetRemapMemory + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSCFG_REMAP_FLASH + * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH + * @arg @ref LL_SYSCFG_REMAP_SRAM + * @arg @ref LL_SYSCFG_REMAP_FMC (*) + * @arg @ref LL_SYSCFG_REMAP_QUADSPI (*) + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE)); +} + +#if defined(SYSCFG_MEMRMP_FB_MODE) +/** + * @brief Select Flash bank mode (Bank flashed at 0x08000000) + * @rmtoll SYSCFG_MEMRMP FB_MODE LL_SYSCFG_SetFlashBankMode + * @param Bank This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_BANKMODE_BANK1 + * @arg @ref LL_SYSCFG_BANKMODE_BANK2 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetFlashBankMode(uint32_t Bank) +{ + MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE, Bank); +} + +/** + * @brief Get Flash bank mode (Bank flashed at 0x08000000) + * @rmtoll SYSCFG_MEMRMP FB_MODE LL_SYSCFG_GetFlashBankMode + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSCFG_BANKMODE_BANK1 + * @arg @ref LL_SYSCFG_BANKMODE_BANK2 + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetFlashBankMode(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE)); +} +#endif /* SYSCFG_MEMRMP_FB_MODE */ + +/** + * @brief Enable I/O analog switch voltage booster. + * @note When voltage booster is enabled, I/O analog switches are supplied + * by a dedicated voltage booster, from VDD power domain. This is + * the recommended configuration with low VDDA voltage operation. + * @note The I/O analog switch voltage booster is relevant for peripherals + * using I/O in analog input: ADC, COMP, OPAMP. + * However, COMP and OPAMP inputs have a high impedance and + * voltage booster do not impact performance significantly. + * Therefore, the voltage booster is mainly intended for + * usage with ADC. + * @rmtoll SYSCFG_CFGR1 BOOSTEN LL_SYSCFG_EnableAnalogBooster + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableAnalogBooster(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_BOOSTEN); +} + +/** + * @brief Disable I/O analog switch voltage booster. + * @note When voltage booster is enabled, I/O analog switches are supplied + * by a dedicated voltage booster, from VDD power domain. This is + * the recommended configuration with low VDDA voltage operation. + * @note The I/O analog switch voltage booster is relevant for peripherals + * using I/O in analog input: ADC, COMP, OPAMP. + * However, COMP and OPAMP inputs have a high impedance and + * voltage booster do not impact performance significantly. + * Therefore, the voltage booster is mainly intended for + * usage with ADC. + * @rmtoll SYSCFG_CFGR1 BOOSTEN LL_SYSCFG_DisableAnalogBooster + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableAnalogBooster(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_BOOSTEN); +} + +/** + * @brief Enable the I2C fast mode plus driving capability. + * @rmtoll SYSCFG_CFGR1 I2C_PBx_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2Cx_FMP LL_SYSCFG_EnableFastModePlus + * @param ConfigFastModePlus This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8 (*) + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9 (*) + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 (*) + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C4 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableFastModePlus(uint32_t ConfigFastModePlus) +{ + SET_BIT(SYSCFG->CFGR1, ConfigFastModePlus); +} + +/** + * @brief Disable the I2C fast mode plus driving capability. + * @rmtoll SYSCFG_CFGR1 I2C_PBx_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2Cx_FMP LL_SYSCFG_DisableFastModePlus + * @param ConfigFastModePlus This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8 (*) + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9 (*) + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 (*) + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 + * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C4 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableFastModePlus(uint32_t ConfigFastModePlus) +{ + CLEAR_BIT(SYSCFG->CFGR1, ConfigFastModePlus); +} + +/** + * @brief Enable Floating Point Unit Invalid operation Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_0 LL_SYSCFG_EnableIT_FPU_IOC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_IOC(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_0); +} + +/** + * @brief Enable Floating Point Unit Divide-by-zero Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_1 LL_SYSCFG_EnableIT_FPU_DZC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_DZC(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_1); +} + +/** + * @brief Enable Floating Point Unit Underflow Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_2 LL_SYSCFG_EnableIT_FPU_UFC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_UFC(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_2); +} + +/** + * @brief Enable Floating Point Unit Overflow Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_3 LL_SYSCFG_EnableIT_FPU_OFC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_OFC(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_3); +} + +/** + * @brief Enable Floating Point Unit Input denormal Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_4 LL_SYSCFG_EnableIT_FPU_IDC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_IDC(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_4); +} + +/** + * @brief Enable Floating Point Unit Inexact Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_5 LL_SYSCFG_EnableIT_FPU_IXC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableIT_FPU_IXC(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_5); +} + +/** + * @brief Disable Floating Point Unit Invalid operation Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_0 LL_SYSCFG_DisableIT_FPU_IOC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_IOC(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_0); +} + +/** + * @brief Disable Floating Point Unit Divide-by-zero Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_1 LL_SYSCFG_DisableIT_FPU_DZC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_DZC(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_1); +} + +/** + * @brief Disable Floating Point Unit Underflow Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_2 LL_SYSCFG_DisableIT_FPU_UFC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_UFC(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_2); +} + +/** + * @brief Disable Floating Point Unit Overflow Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_3 LL_SYSCFG_DisableIT_FPU_OFC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_OFC(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_3); +} + +/** + * @brief Disable Floating Point Unit Input denormal Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_4 LL_SYSCFG_DisableIT_FPU_IDC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_IDC(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_4); +} + +/** + * @brief Disable Floating Point Unit Inexact Interrupt + * @rmtoll SYSCFG_CFGR1 FPU_IE_5 LL_SYSCFG_DisableIT_FPU_IXC + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableIT_FPU_IXC(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_5); +} + +/** + * @brief Check if Floating Point Unit Invalid operation Interrupt source is enabled or disabled. + * @rmtoll SYSCFG_CFGR1 FPU_IE_0 LL_SYSCFG_IsEnabledIT_FPU_IOC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_IOC(void) +{ + return ((READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_0) == (SYSCFG_CFGR1_FPU_IE_0)) ? 1UL : 0UL); +} + +/** + * @brief Check if Floating Point Unit Divide-by-zero Interrupt source is enabled or disabled. + * @rmtoll SYSCFG_CFGR1 FPU_IE_1 LL_SYSCFG_IsEnabledIT_FPU_DZC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_DZC(void) +{ + return ((READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_1) == (SYSCFG_CFGR1_FPU_IE_1)) ? 1UL : 0UL); +} + +/** + * @brief Check if Floating Point Unit Underflow Interrupt source is enabled or disabled. + * @rmtoll SYSCFG_CFGR1 FPU_IE_2 LL_SYSCFG_IsEnabledIT_FPU_UFC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_UFC(void) +{ + return ((READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_2) == (SYSCFG_CFGR1_FPU_IE_2)) ? 1UL : 0UL); +} + +/** + * @brief Check if Floating Point Unit Overflow Interrupt source is enabled or disabled. + * @rmtoll SYSCFG_CFGR1 FPU_IE_3 LL_SYSCFG_IsEnabledIT_FPU_OFC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_OFC(void) +{ + return ((READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_3) == (SYSCFG_CFGR1_FPU_IE_3)) ? 1UL : 0UL); +} + +/** + * @brief Check if Floating Point Unit Input denormal Interrupt source is enabled or disabled. + * @rmtoll SYSCFG_CFGR1 FPU_IE_4 LL_SYSCFG_IsEnabledIT_FPU_IDC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_IDC(void) +{ + return ((READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_4) == (SYSCFG_CFGR1_FPU_IE_4)) ? 1UL : 0UL); +} + +/** + * @brief Check if Floating Point Unit Inexact Interrupt source is enabled or disabled. + * @rmtoll SYSCFG_CFGR1 FPU_IE_5 LL_SYSCFG_IsEnabledIT_FPU_IXC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsEnabledIT_FPU_IXC(void) +{ + return ((READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FPU_IE_5) == (SYSCFG_CFGR1_FPU_IE_5)) ? 1UL : 0UL); +} + +/** + * @brief Configure source input for the EXTI external interrupt. + * @rmtoll SYSCFG_EXTICR1 EXTIx LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTIx LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTIx LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTIx LL_SYSCFG_SetEXTISource + * @param Port This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_PORTA + * @arg @ref LL_SYSCFG_EXTI_PORTB + * @arg @ref LL_SYSCFG_EXTI_PORTC + * @arg @ref LL_SYSCFG_EXTI_PORTD + * @arg @ref LL_SYSCFG_EXTI_PORTE + * @arg @ref LL_SYSCFG_EXTI_PORTF + * @arg @ref LL_SYSCFG_EXTI_PORTG + * + * (*) value not defined in all devices + * @param Line This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_LINE0 + * @arg @ref LL_SYSCFG_EXTI_LINE1 + * @arg @ref LL_SYSCFG_EXTI_LINE2 + * @arg @ref LL_SYSCFG_EXTI_LINE3 + * @arg @ref LL_SYSCFG_EXTI_LINE4 + * @arg @ref LL_SYSCFG_EXTI_LINE5 + * @arg @ref LL_SYSCFG_EXTI_LINE6 + * @arg @ref LL_SYSCFG_EXTI_LINE7 + * @arg @ref LL_SYSCFG_EXTI_LINE8 + * @arg @ref LL_SYSCFG_EXTI_LINE9 + * @arg @ref LL_SYSCFG_EXTI_LINE10 + * @arg @ref LL_SYSCFG_EXTI_LINE11 + * @arg @ref LL_SYSCFG_EXTI_LINE12 + * @arg @ref LL_SYSCFG_EXTI_LINE13 + * @arg @ref LL_SYSCFG_EXTI_LINE14 + * @arg @ref LL_SYSCFG_EXTI_LINE15 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetEXTISource(uint32_t Port, uint32_t Line) +{ + MODIFY_REG(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16U), Port << (POSITION_VAL((Line >> 16U)) & 0x1FU) ); +} + +/** + * @brief Get the configured defined for specific EXTI Line + * @rmtoll SYSCFG_EXTICR1 EXTIx LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTIx LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTIx LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTIx LL_SYSCFG_GetEXTISource + * @param Line This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_LINE0 + * @arg @ref LL_SYSCFG_EXTI_LINE1 + * @arg @ref LL_SYSCFG_EXTI_LINE2 + * @arg @ref LL_SYSCFG_EXTI_LINE3 + * @arg @ref LL_SYSCFG_EXTI_LINE4 + * @arg @ref LL_SYSCFG_EXTI_LINE5 + * @arg @ref LL_SYSCFG_EXTI_LINE6 + * @arg @ref LL_SYSCFG_EXTI_LINE7 + * @arg @ref LL_SYSCFG_EXTI_LINE8 + * @arg @ref LL_SYSCFG_EXTI_LINE9 + * @arg @ref LL_SYSCFG_EXTI_LINE10 + * @arg @ref LL_SYSCFG_EXTI_LINE11 + * @arg @ref LL_SYSCFG_EXTI_LINE12 + * @arg @ref LL_SYSCFG_EXTI_LINE13 + * @arg @ref LL_SYSCFG_EXTI_LINE14 + * @arg @ref LL_SYSCFG_EXTI_LINE15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_PORTA + * @arg @ref LL_SYSCFG_EXTI_PORTB + * @arg @ref LL_SYSCFG_EXTI_PORTC + * @arg @ref LL_SYSCFG_EXTI_PORTD + * @arg @ref LL_SYSCFG_EXTI_PORTE + * @arg @ref LL_SYSCFG_EXTI_PORTF + * @arg @ref LL_SYSCFG_EXTI_PORTG + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetEXTISource(uint32_t Line) +{ + return (uint32_t)(READ_BIT(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16U)) >> (POSITION_VAL(Line >> 16U) & 0x1FU)); +} + +/** + * @brief Enable CCMSRAM Erase (starts a hardware CCMSRAM erase operation. This bit is + * automatically cleared at the end of the CCMSRAM erase operation.) + * @note This bit is write-protected: setting this bit is possible only after the + * correct key sequence is written in the SYSCFG_SKR register as described in + * the Reference Manual. + * @rmtoll SYSCFG_SCSR CCMER LL_SYSCFG_EnableCCMSRAMErase + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableCCMSRAMErase(void) +{ + /* Starts a hardware CCMSRAM erase operation*/ + SET_BIT(SYSCFG->SCSR, SYSCFG_SCSR_CCMER); +} + +/** + * @brief Check if CCMSRAM erase operation is on going + * @rmtoll SYSCFG_SCSR CCMBSY LL_SYSCFG_IsCCMSRAMEraseOngoing + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsCCMSRAMEraseOngoing(void) +{ + return ((READ_BIT(SYSCFG->SCSR, SYSCFG_SCSR_CCMBSY) == (SYSCFG_SCSR_CCMBSY)) ? 1UL : 0UL); +} + +/** + * @brief Set connections to TIM1/8/15/16/17 Break inputs + * @rmtoll SYSCFG_CFGR2 CLL LL_SYSCFG_SetTIMBreakInputs\n + * SYSCFG_CFGR2 SPL LL_SYSCFG_SetTIMBreakInputs\n + * SYSCFG_CFGR2 PVDL LL_SYSCFG_SetTIMBreakInputs\n + * SYSCFG_CFGR2 ECCL LL_SYSCFG_SetTIMBreakInputs + * @param Break This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_TIMBREAK_ECC + * @arg @ref LL_SYSCFG_TIMBREAK_PVD + * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY + * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetTIMBreakInputs(uint32_t Break) +{ + MODIFY_REG(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL | SYSCFG_CFGR2_SPL | SYSCFG_CFGR2_PVDL | SYSCFG_CFGR2_ECCL, Break); +} + +/** + * @brief Get connections to TIM1/8/15/16/17 Break inputs + * @rmtoll SYSCFG_CFGR2 CLL LL_SYSCFG_GetTIMBreakInputs\n + * SYSCFG_CFGR2 SPL LL_SYSCFG_GetTIMBreakInputs\n + * SYSCFG_CFGR2 PVDL LL_SYSCFG_GetTIMBreakInputs\n + * SYSCFG_CFGR2 ECCL LL_SYSCFG_GetTIMBreakInputs + * @retval Returned value can be can be a combination of the following values: + * @arg @ref LL_SYSCFG_TIMBREAK_ECC + * @arg @ref LL_SYSCFG_TIMBREAK_PVD + * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY + * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetTIMBreakInputs(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL | SYSCFG_CFGR2_SPL | SYSCFG_CFGR2_PVDL | SYSCFG_CFGR2_ECCL)); +} + +/** + * @brief Check if SRAM parity error detected + * @rmtoll SYSCFG_CFGR2 SPF LL_SYSCFG_IsActiveFlag_SP + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_SP(void) +{ + return ((READ_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPF) == (SYSCFG_CFGR2_SPF)) ? 1UL : 0UL); +} + +/** + * @brief Clear SRAM parity error flag + * @rmtoll SYSCFG_CFGR2 SPF LL_SYSCFG_ClearFlag_SP + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_ClearFlag_SP(void) +{ + SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPF); +} + +/** + * @brief Enable CCMSRAM page write protection + * @note Write protection is cleared only by a system reset + * @rmtoll SYSCFG_SWPR PAGEx LL_SYSCFG_EnableCCMSRAMPageWRP + * @param CCMSRAMWRP This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE0 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE1 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE2 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE3 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE4 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE5 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE6 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE7 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE8 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE9 + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE10 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE11 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE12 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE13 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE14 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE15 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE16 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE17 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE18 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE19 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE20 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE21 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE22 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE23 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE24 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE25 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE26 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE27 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE28 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE29 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE30 (*) + * @arg @ref LL_SYSCFG_CCMSRAMWRP_PAGE31 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableCCMSRAMPageWRP(uint32_t CCMSRAMWRP) +{ + SET_BIT(SYSCFG->SWPR, CCMSRAMWRP); +} + +/** + * @brief CCMSRAM page write protection lock prior to erase + * @rmtoll SYSCFG_SKR KEY LL_SYSCFG_LockCCMSRAMWRP + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_LockCCMSRAMWRP(void) +{ + /* Writing a wrong key reactivates the write protection */ + WRITE_REG(SYSCFG->SKR, 0x00); +} + +/** + * @brief CCMSRAM page write protection unlock prior to erase + * @rmtoll SYSCFG_SKR KEY LL_SYSCFG_UnlockCCMSRAMWRP + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_UnlockCCMSRAMWRP(void) +{ + /* unlock the write protection of the CCMER bit */ + WRITE_REG(SYSCFG->SKR, 0xCA); + WRITE_REG(SYSCFG->SKR, 0x53); +} +/** + * @} + */ + + +/** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU + * @{ + */ + +/** + * @brief Return the device identifier + * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID + * @retval Values between Min_Data=0x00 and Max_Data=0x0FFF (ex: device ID is 0x6415) + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID)); +} + +/** + * @brief Return the device revision identifier + * @note This field indicates the revision of the device. + * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID + * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> (DBGMCU_REVID_POSITION & 0x1FU)); +} + +/** + * @brief Enable the Debug Module during SLEEP mode + * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_EnableDBGSleepMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Disable the Debug Module during SLEEP mode + * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_DisableDBGSleepMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Enable the Debug Module during STOP mode + * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP mode + * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Enable the Debug Module during STANDBY mode + * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Disable the Debug Module during STANDBY mode + * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Set Trace pin assignment control + * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_SetTracePinAssignment\n + * DBGMCU_CR TRACE_MODE LL_DBGMCU_SetTracePinAssignment + * @param PinAssignment This parameter can be one of the following values: + * @arg @ref LL_DBGMCU_TRACE_NONE + * @arg @ref LL_DBGMCU_TRACE_ASYNCH + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment) +{ + MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment); +} + +/** + * @brief Get Trace pin assignment control + * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_GetTracePinAssignment\n + * DBGMCU_CR TRACE_MODE LL_DBGMCU_GetTracePinAssignment + * @retval Returned value can be one of the following values: + * @arg @ref LL_DBGMCU_TRACE_NONE + * @arg @ref LL_DBGMCU_TRACE_ASYNCH + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE)); +} + +/** + * @brief Freeze APB1 peripherals (group1 peripherals) + * @rmtoll DBGMCU_APB1FZR1 DBG_xxxx_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_LPTIM1_STOP + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->APB1FZR1, Periphs); +} + +/** + * @brief Freeze APB1 peripherals (group2 peripherals) + * @rmtoll DBGMCU_APB1FZR2 DBG_xxxx_STOP LL_DBGMCU_APB1_GRP2_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP2_I2C4_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP2_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->APB1FZR2, Periphs); +} + +/** + * @brief Unfreeze APB1 peripherals (group1 peripherals) + * @rmtoll DBGMCU_APB1FZR1 DBG_xxxx_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_LPTIM1_STOP + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->APB1FZR1, Periphs); +} + +/** + * @brief Unfreeze APB1 peripherals (group2 peripherals) + * @rmtoll DBGMCU_APB1FZR2 DBG_xxxx_STOP LL_DBGMCU_APB1_GRP2_UnFreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP2_I2C4_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP2_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->APB1FZR2, Periphs); +} + +/** + * @brief Freeze APB2 peripherals + * @rmtoll DBGMCU_APB2FZ DBG_TIMx_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM20_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_HRTIM1_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->APB2FZ, Periphs); +} + +/** + * @brief Unfreeze APB2 peripherals + * @rmtoll DBGMCU_APB2FZ DBG_TIMx_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM20_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_HRTIM1_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->APB2FZ, Periphs); +} + +/** + * @} + */ + +#if defined(VREFBUF) +/** @defgroup SYSTEM_LL_EF_VREFBUF VREFBUF + * @{ + */ + +/** + * @brief Enable Internal voltage reference + * @rmtoll VREFBUF_CSR ENVR LL_VREFBUF_Enable + * @retval None + */ +__STATIC_INLINE void LL_VREFBUF_Enable(void) +{ + SET_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR); +} + +/** + * @brief Disable Internal voltage reference + * @rmtoll VREFBUF_CSR ENVR LL_VREFBUF_Disable + * @retval None + */ +__STATIC_INLINE void LL_VREFBUF_Disable(void) +{ + CLEAR_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR); +} + +/** + * @brief Enable high impedance (VREF+pin is high impedance) + * @rmtoll VREFBUF_CSR HIZ LL_VREFBUF_EnableHIZ + * @retval None + */ +__STATIC_INLINE void LL_VREFBUF_EnableHIZ(void) +{ + SET_BIT(VREFBUF->CSR, VREFBUF_CSR_HIZ); +} + +/** + * @brief Disable high impedance (VREF+pin is internally connected to the voltage reference buffer output) + * @rmtoll VREFBUF_CSR HIZ LL_VREFBUF_DisableHIZ + * @retval None + */ +__STATIC_INLINE void LL_VREFBUF_DisableHIZ(void) +{ + CLEAR_BIT(VREFBUF->CSR, VREFBUF_CSR_HIZ); +} + +/** + * @brief Set the Voltage reference scale + * @rmtoll VREFBUF_CSR VRS LL_VREFBUF_SetVoltageScaling + * @param Scale This parameter can be one of the following values: + * @arg @ref LL_VREFBUF_VOLTAGE_SCALE0 + * @arg @ref LL_VREFBUF_VOLTAGE_SCALE1 + * @arg @ref LL_VREFBUF_VOLTAGE_SCALE2 + * @retval None + */ +__STATIC_INLINE void LL_VREFBUF_SetVoltageScaling(uint32_t Scale) +{ + MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_VRS, Scale); +} + +/** + * @brief Get the Voltage reference scale + * @rmtoll VREFBUF_CSR VRS LL_VREFBUF_GetVoltageScaling + * @retval Returned value can be one of the following values: + * @arg @ref LL_VREFBUF_VOLTAGE_SCALE0 + * @arg @ref LL_VREFBUF_VOLTAGE_SCALE1 + * @arg @ref LL_VREFBUF_VOLTAGE_SCALE2 + */ +__STATIC_INLINE uint32_t LL_VREFBUF_GetVoltageScaling(void) +{ + return (uint32_t)(READ_BIT(VREFBUF->CSR, VREFBUF_CSR_VRS)); +} + +/** + * @brief Check if Voltage reference buffer is ready + * @rmtoll VREFBUF_CSR VRR LL_VREFBUF_IsVREFReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_VREFBUF_IsVREFReady(void) +{ + return ((READ_BIT(VREFBUF->CSR, VREFBUF_CSR_VRR) == (VREFBUF_CSR_VRR)) ? 1UL : 0UL); +} + +/** + * @brief Get the trimming code for VREFBUF calibration + * @rmtoll VREFBUF_CCR TRIM LL_VREFBUF_GetTrimming + * @retval Between 0 and 0x3F + */ +__STATIC_INLINE uint32_t LL_VREFBUF_GetTrimming(void) +{ + return (uint32_t)(READ_BIT(VREFBUF->CCR, VREFBUF_CCR_TRIM)); +} + +/** + * @brief Set the trimming code for VREFBUF calibration (Tune the internal reference buffer voltage) + * @rmtoll VREFBUF_CCR TRIM LL_VREFBUF_SetTrimming + * @param Value Between 0 and 0x3F + * @retval None + */ +__STATIC_INLINE void LL_VREFBUF_SetTrimming(uint32_t Value) +{ + WRITE_REG(VREFBUF->CCR, Value); +} + +/** + * @} + */ +#endif /* VREFBUF */ + +/** @defgroup SYSTEM_LL_EF_FLASH FLASH + * @{ + */ + +/** + * @brief Set FLASH Latency + * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency + * @param Latency This parameter can be one of the following values: + * @arg @ref LL_FLASH_LATENCY_0 + * @arg @ref LL_FLASH_LATENCY_1 + * @arg @ref LL_FLASH_LATENCY_2 + * @arg @ref LL_FLASH_LATENCY_3 + * @arg @ref LL_FLASH_LATENCY_4 + * @arg @ref LL_FLASH_LATENCY_5 (*) + * @arg @ref LL_FLASH_LATENCY_6 (*) + * @arg @ref LL_FLASH_LATENCY_7 (*) + * @arg @ref LL_FLASH_LATENCY_8 (*) + * @arg @ref LL_FLASH_LATENCY_9 (*) + * @arg @ref LL_FLASH_LATENCY_10 (*) + * @arg @ref LL_FLASH_LATENCY_11 (*) + * @arg @ref LL_FLASH_LATENCY_12 (*) + * @arg @ref LL_FLASH_LATENCY_13 (*) + * @arg @ref LL_FLASH_LATENCY_14 (*) + * @arg @ref LL_FLASH_LATENCY_15 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency) +{ + MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency); +} + +/** + * @brief Get FLASH Latency + * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency + * @retval Returned value can be one of the following values: + * @arg @ref LL_FLASH_LATENCY_0 + * @arg @ref LL_FLASH_LATENCY_1 + * @arg @ref LL_FLASH_LATENCY_2 + * @arg @ref LL_FLASH_LATENCY_3 + * @arg @ref LL_FLASH_LATENCY_4 + * @arg @ref LL_FLASH_LATENCY_5 (*) + * @arg @ref LL_FLASH_LATENCY_6 (*) + * @arg @ref LL_FLASH_LATENCY_7 (*) + * @arg @ref LL_FLASH_LATENCY_8 (*) + * @arg @ref LL_FLASH_LATENCY_9 (*) + * @arg @ref LL_FLASH_LATENCY_10 (*) + * @arg @ref LL_FLASH_LATENCY_11 (*) + * @arg @ref LL_FLASH_LATENCY_12 (*) + * @arg @ref LL_FLASH_LATENCY_13 (*) + * @arg @ref LL_FLASH_LATENCY_14 (*) + * @arg @ref LL_FLASH_LATENCY_15 (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_FLASH_GetLatency(void) +{ + return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY)); +} + +/** + * @brief Enable Prefetch + * @rmtoll FLASH_ACR PRFTEN LL_FLASH_EnablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnablePrefetch(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_PRFTEN); +} + +/** + * @brief Disable Prefetch + * @rmtoll FLASH_ACR PRFTEN LL_FLASH_DisablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisablePrefetch(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN); +} + +/** + * @brief Check if Prefetch buffer is enabled + * @rmtoll FLASH_ACR PRFTEN LL_FLASH_IsPrefetchEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void) +{ + return ((READ_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) == (FLASH_ACR_PRFTEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable Instruction cache + * @rmtoll FLASH_ACR ICEN LL_FLASH_EnableInstCache + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableInstCache(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_ICEN); +} + +/** + * @brief Disable Instruction cache + * @rmtoll FLASH_ACR ICEN LL_FLASH_DisableInstCache + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableInstCache(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_ICEN); +} + +/** + * @brief Enable Data cache + * @rmtoll FLASH_ACR DCEN LL_FLASH_EnableDataCache + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableDataCache(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_DCEN); +} + +/** + * @brief Disable Data cache + * @rmtoll FLASH_ACR DCEN LL_FLASH_DisableDataCache + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableDataCache(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_DCEN); +} + +/** + * @brief Enable Instruction cache reset + * @note bit can be written only when the instruction cache is disabled + * @rmtoll FLASH_ACR ICRST LL_FLASH_EnableInstCacheReset + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableInstCacheReset(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_ICRST); +} + +/** + * @brief Disable Instruction cache reset + * @rmtoll FLASH_ACR ICRST LL_FLASH_DisableInstCacheReset + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableInstCacheReset(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_ICRST); +} + +/** + * @brief Enable Data cache reset + * @note bit can be written only when the data cache is disabled + * @rmtoll FLASH_ACR DCRST LL_FLASH_EnableDataCacheReset + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableDataCacheReset(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_DCRST); +} + +/** + * @brief Disable Data cache reset + * @rmtoll FLASH_ACR DCRST LL_FLASH_DisableDataCacheReset + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableDataCacheReset(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_DCRST); +} + +/** + * @brief Enable Flash Power-down mode during run mode or Low-power run mode + * @note Flash memory can be put in power-down mode only when the code is executed + * from RAM + * @note Flash must not be accessed when power down is enabled + * @note Flash must not be put in power-down while a program or an erase operation + * is on-going + * @rmtoll FLASH_ACR RUN_PD LL_FLASH_EnableRunPowerDown\n + * FLASH_PDKEYR PDKEY1 LL_FLASH_EnableRunPowerDown\n + * FLASH_PDKEYR PDKEY2 LL_FLASH_EnableRunPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableRunPowerDown(void) +{ + /* Following values must be written consecutively to unlock the RUN_PD bit in + FLASH_ACR */ + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1); + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2); + SET_BIT(FLASH->ACR, FLASH_ACR_RUN_PD); +} + +/** + * @brief Disable Flash Power-down mode during run mode or Low-power run mode + * @rmtoll FLASH_ACR RUN_PD LL_FLASH_DisableRunPowerDown\n + * FLASH_PDKEYR PDKEY1 LL_FLASH_DisableRunPowerDown\n + * FLASH_PDKEYR PDKEY2 LL_FLASH_DisableRunPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableRunPowerDown(void) +{ + /* Following values must be written consecutively to unlock the RUN_PD bit in + FLASH_ACR */ + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1); + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2); + CLEAR_BIT(FLASH->ACR, FLASH_ACR_RUN_PD); +} + +/** + * @brief Enable Flash Power-down mode during Sleep or Low-power sleep mode + * @note Flash must not be put in power-down while a program or an erase operation + * is on-going + * @rmtoll FLASH_ACR SLEEP_PD LL_FLASH_EnableSleepPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableSleepPowerDown(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD); +} + +/** + * @brief Disable Flash Power-down mode during Sleep or Low-power sleep mode + * @rmtoll FLASH_ACR SLEEP_PD LL_FLASH_DisableSleepPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableSleepPowerDown(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD); +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined (VREFBUF) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_SYSTEM_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_tim.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_tim.h new file mode 100644 index 0000000..ac10472 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_tim.h @@ -0,0 +1,6724 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_tim.h + * @author MCD Application Team + * @brief Header file of TIM LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32G4xx_LL_TIM_H +#define __STM32G4xx_LL_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (TIM1) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM6) || defined (TIM7) || defined (TIM8) || defined (TIM15) || defined (TIM16) || defined (TIM17) || defined (TIM20) + +/** @defgroup TIM_LL TIM + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Variables TIM Private Variables + * @{ + */ +static const uint8_t OFFSET_TAB_CCMRx[] = +{ + 0x00U, /* 0: TIMx_CH1 */ + 0x00U, /* 1: TIMx_CH1N */ + 0x00U, /* 2: TIMx_CH2 */ + 0x00U, /* 3: TIMx_CH2N */ + 0x04U, /* 4: TIMx_CH3 */ + 0x04U, /* 5: TIMx_CH3N */ + 0x04U, /* 6: TIMx_CH4 */ + 0x04U, /* 7: TIMx_CH4N */ + 0x38U, /* 8: TIMx_CH5 */ + 0x38U /* 9: TIMx_CH6 */ + +}; + +static const uint8_t SHIFT_TAB_OCxx[] = +{ + 0U, /* 0: OC1M, OC1FE, OC1PE */ + 0U, /* 1: - NA */ + 8U, /* 2: OC2M, OC2FE, OC2PE */ + 0U, /* 3: - NA */ + 0U, /* 4: OC3M, OC3FE, OC3PE */ + 0U, /* 5: - NA */ + 8U, /* 6: OC4M, OC4FE, OC4PE */ + 0U, /* 7: - NA */ + 0U, /* 8: OC5M, OC5FE, OC5PE */ + 8U /* 9: OC6M, OC6FE, OC6PE */ +}; + +static const uint8_t SHIFT_TAB_ICxx[] = +{ + 0U, /* 0: CC1S, IC1PSC, IC1F */ + 0U, /* 1: - NA */ + 8U, /* 2: CC2S, IC2PSC, IC2F */ + 0U, /* 3: - NA */ + 0U, /* 4: CC3S, IC3PSC, IC3F */ + 0U, /* 5: - NA */ + 8U, /* 6: CC4S, IC4PSC, IC4F */ + 0U, /* 7: - NA */ + 0U, /* 8: - NA */ + 0U /* 9: - NA */ +}; + +static const uint8_t SHIFT_TAB_CCxP[] = +{ + 0U, /* 0: CC1P */ + 2U, /* 1: CC1NP */ + 4U, /* 2: CC2P */ + 6U, /* 3: CC2NP */ + 8U, /* 4: CC3P */ + 10U, /* 5: CC3NP */ + 12U, /* 6: CC4P */ + 14U, /* 7: CC4NP */ + 16U, /* 8: CC5P */ + 20U /* 9: CC6P */ +}; + +static const uint8_t SHIFT_TAB_OISx[] = +{ + 0U, /* 0: OIS1 */ + 1U, /* 1: OIS1N */ + 2U, /* 2: OIS2 */ + 3U, /* 3: OIS2N */ + 4U, /* 4: OIS3 */ + 5U, /* 5: OIS3N */ + 6U, /* 6: OIS4 */ + 7U, /* 7: OIS4N */ + 8U, /* 8: OIS5 */ + 10U /* 9: OIS6 */ +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Constants TIM Private Constants + * @{ + */ + +/* Defines used for the bit position in the register and perform offsets */ +#define TIM_POSITION_BRK_SOURCE (POSITION_VAL(Source) & 0x1FUL) + +/* Generic bit definitions for TIMx_AF1 register */ +#define TIMx_AF1_BKINP TIM1_AF1_BKINP /*!< BRK BKIN input polarity */ +#define TIMx_AF1_ETRSEL TIM1_AF1_ETRSEL /*!< TIMx ETR source selection */ + + +/* Mask used to set the TDG[x:0] of the DTG bits of the TIMx_BDTR register */ +#define DT_DELAY_1 ((uint8_t)0x7F) +#define DT_DELAY_2 ((uint8_t)0x3F) +#define DT_DELAY_3 ((uint8_t)0x1F) +#define DT_DELAY_4 ((uint8_t)0x1F) + +/* Mask used to set the DTG[7:5] bits of the DTG bits of the TIMx_BDTR register */ +#define DT_RANGE_1 ((uint8_t)0x00) +#define DT_RANGE_2 ((uint8_t)0x80) +#define DT_RANGE_3 ((uint8_t)0xC0) +#define DT_RANGE_4 ((uint8_t)0xE0) + +/** Legacy definitions for compatibility purpose +@cond 0 + */ +/** +@endcond + */ + +#define OCREF_CLEAR_SELECT_Pos (28U) +#define OCREF_CLEAR_SELECT_Msk (0x1U << OCREF_CLEAR_SELECT_Pos) /*!< 0x10000000 */ +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Macros TIM Private Macros + * @{ + */ +/** @brief Convert channel id into channel index. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval none + */ +#define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \ + (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH4) ? 6U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH4N) ? 7U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH5) ? 8U : 9U) + +/** @brief Calculate the deadtime sampling period(in ps). + * @param __TIMCLK__ timer input clock frequency (in Hz). + * @param __CKD__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @retval none + */ +#define TIM_CALC_DTS(__TIMCLK__, __CKD__) \ + (((__CKD__) == LL_TIM_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TIMCLK__)) : \ + ((__CKD__) == LL_TIM_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TIMCLK__) >> 1U)) : \ + ((uint64_t)1000000000000U/((__TIMCLK__) >> 2U))) +/** + * @} + */ + + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_ES_INIT TIM Exported Init structure + * @{ + */ + +/** + * @brief TIM Time Base configuration structure definition. + */ +typedef struct +{ + uint16_t Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock. + This parameter can be a number between Min_Data=0x0000 and Max_Data=0xFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetPrescaler().*/ + + uint32_t CounterMode; /*!< Specifies the counter mode. + This parameter can be a value of @ref TIM_LL_EC_COUNTERMODE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetCounterMode().*/ + + uint32_t Autoreload; /*!< Specifies the auto reload value to be loaded into the active + Auto-Reload Register at the next update event. + This parameter must be a number between Min_Data=0x0000 and Max_Data=0xFFFF. + Some timer instances may support 32 bits counters. In that case this parameter must + be a number between 0x0000 and 0xFFFFFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetAutoReload().*/ + + uint32_t ClockDivision; /*!< Specifies the clock division. + This parameter can be a value of @ref TIM_LL_EC_CLOCKDIVISION. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetClockDivision().*/ + + uint32_t RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter + reaches zero, an update event is generated and counting restarts + from the RCR value (N). + This means in PWM mode that (N+1) corresponds to: + - the number of PWM periods in edge-aligned mode + - the number of half PWM period in center-aligned mode + GP timers: this parameter must be a number between Min_Data = 0x00 and + Max_Data = 0xFF. + Advanced timers: this parameter must be a number between Min_Data = 0x0000 and + Max_Data = 0xFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetRepetitionCounter().*/ +} LL_TIM_InitTypeDef; + +/** + * @brief TIM Output Compare configuration structure definition. + */ +typedef struct +{ + uint32_t OCMode; /*!< Specifies the output mode. + This parameter can be a value of @ref TIM_LL_EC_OCMODE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetMode().*/ + + uint32_t OCState; /*!< Specifies the TIM Output Compare state. + This parameter can be a value of @ref TIM_LL_EC_OCSTATE. + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_CC_EnableChannel() or @ref LL_TIM_CC_DisableChannel().*/ + + uint32_t OCNState; /*!< Specifies the TIM complementary Output Compare state. + This parameter can be a value of @ref TIM_LL_EC_OCSTATE. + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_CC_EnableChannel() or @ref LL_TIM_CC_DisableChannel().*/ + + uint32_t CompareValue; /*!< Specifies the Compare value to be loaded into the Capture Compare Register. + This parameter can be a number between Min_Data=0x0000 and Max_Data=0xFFFF. + + This feature can be modified afterwards using unitary function + LL_TIM_OC_SetCompareCHx (x=1..6).*/ + + uint32_t OCPolarity; /*!< Specifies the output polarity. + This parameter can be a value of @ref TIM_LL_EC_OCPOLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetPolarity().*/ + + uint32_t OCNPolarity; /*!< Specifies the complementary output polarity. + This parameter can be a value of @ref TIM_LL_EC_OCPOLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetPolarity().*/ + + + uint32_t OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_LL_EC_OCIDLESTATE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetIdleState().*/ + + uint32_t OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_LL_EC_OCIDLESTATE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetIdleState().*/ +} LL_TIM_OC_InitTypeDef; + +/** + * @brief TIM Input Capture configuration structure definition. + */ + +typedef struct +{ + + uint32_t ICPolarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t ICActiveInput; /*!< Specifies the input. + This parameter can be a value of @ref TIM_LL_EC_ACTIVEINPUT. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetActiveInput().*/ + + uint32_t ICPrescaler; /*!< Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t ICFilter; /*!< Specifies the input capture filter. + This parameter can be a value of @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ +} LL_TIM_IC_InitTypeDef; + + +/** + * @brief TIM Encoder interface configuration structure definition. + */ +typedef struct +{ + uint32_t EncoderMode; /*!< Specifies the encoder resolution (x2 or x4). + This parameter can be a value of @ref TIM_LL_EC_ENCODERMODE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetEncoderMode().*/ + + uint32_t IC1Polarity; /*!< Specifies the active edge of TI1 input. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t IC1ActiveInput; /*!< Specifies the TI1 input source + This parameter can be a value of @ref TIM_LL_EC_ACTIVEINPUT. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetActiveInput().*/ + + uint32_t IC1Prescaler; /*!< Specifies the TI1 input prescaler value. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t IC1Filter; /*!< Specifies the TI1 input filter. + This parameter can be a value of @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ + + uint32_t IC2Polarity; /*!< Specifies the active edge of TI2 input. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t IC2ActiveInput; /*!< Specifies the TI2 input source + This parameter can be a value of @ref TIM_LL_EC_ACTIVEINPUT. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetActiveInput().*/ + + uint32_t IC2Prescaler; /*!< Specifies the TI2 input prescaler value. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t IC2Filter; /*!< Specifies the TI2 input filter. + This parameter can be a value of @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ + +} LL_TIM_ENCODER_InitTypeDef; + +/** + * @brief TIM Hall sensor interface configuration structure definition. + */ +typedef struct +{ + + uint32_t IC1Polarity; /*!< Specifies the active edge of TI1 input. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t IC1Prescaler; /*!< Specifies the TI1 input prescaler value. + Prescaler must be set to get a maximum counter period longer than the + time interval between 2 consecutive changes on the Hall inputs. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t IC1Filter; /*!< Specifies the TI1 input filter. + This parameter can be a value of + @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ + + uint32_t CommutationDelay; /*!< Specifies the compare value to be loaded into the Capture Compare Register. + A positive pulse (TRGO event) is generated with a programmable delay every time + a change occurs on the Hall inputs. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetCompareCH2().*/ +} LL_TIM_HALLSENSOR_InitTypeDef; + +/** + * @brief BDTR (Break and Dead Time) structure definition + */ +typedef struct +{ + uint32_t OSSRState; /*!< Specifies the Off-State selection used in Run mode. + This parameter can be a value of @ref TIM_LL_EC_OSSR + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetOffStates() + + @note This bit-field cannot be modified as long as LOCK level 2 has been + programmed. */ + + uint32_t OSSIState; /*!< Specifies the Off-State used in Idle state. + This parameter can be a value of @ref TIM_LL_EC_OSSI + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetOffStates() + + @note This bit-field cannot be modified as long as LOCK level 2 has been + programmed. */ + + uint32_t LockLevel; /*!< Specifies the LOCK level parameters. + This parameter can be a value of @ref TIM_LL_EC_LOCKLEVEL + + @note The LOCK bits can be written only once after the reset. Once the TIMx_BDTR + register has been written, their content is frozen until the next reset.*/ + + uint8_t DeadTime; /*!< Specifies the delay time between the switching-off and the + switching-on of the outputs. + This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetDeadTime() + + @note This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been + programmed. */ + + uint16_t BreakState; /*!< Specifies whether the TIM Break input is enabled or not. + This parameter can be a value of @ref TIM_LL_EC_BREAK_ENABLE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_EnableBRK() or @ref LL_TIM_DisableBRK() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t BreakPolarity; /*!< Specifies the TIM Break Input pin polarity. + This parameter can be a value of @ref TIM_LL_EC_BREAK_POLARITY + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t BreakFilter; /*!< Specifies the TIM Break Filter. + This parameter can be a value of @ref TIM_LL_EC_BREAK_FILTER + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t BreakAFMode; /*!< Specifies the alternate function mode of the break input. + This parameter can be a value of @ref TIM_LL_EC_BREAK_AFMODE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_ConfigBRK() + + @note Bidirectional break input is only supported by advanced timers instances. + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2State; /*!< Specifies whether the TIM Break2 input is enabled or not. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_ENABLE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_EnableBRK2() or @ref LL_TIM_DisableBRK2() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2Polarity; /*!< Specifies the TIM Break2 Input pin polarity. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_POLARITY + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK2() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2Filter; /*!< Specifies the TIM Break2 Filter. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_FILTER + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK2() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2AFMode; /*!< Specifies the alternate function mode of the break2 input. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_AFMODE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_ConfigBRK2() + + @note Bidirectional break input is only supported by advanced timers instances. + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t AutomaticOutput; /*!< Specifies whether the TIM Automatic Output feature is enabled or not. + This parameter can be a value of @ref TIM_LL_EC_AUTOMATICOUTPUT_ENABLE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_EnableAutomaticOutput() or @ref LL_TIM_DisableAutomaticOutput() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ +} LL_TIM_BDTR_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup TIM_LL_Exported_Constants TIM Exported Constants + * @{ + */ + +/** @defgroup TIM_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_TIM_ReadReg function. + * @{ + */ +#define LL_TIM_SR_UIF TIM_SR_UIF /*!< Update interrupt flag */ +#define LL_TIM_SR_CC1IF TIM_SR_CC1IF /*!< Capture/compare 1 interrupt flag */ +#define LL_TIM_SR_CC2IF TIM_SR_CC2IF /*!< Capture/compare 2 interrupt flag */ +#define LL_TIM_SR_CC3IF TIM_SR_CC3IF /*!< Capture/compare 3 interrupt flag */ +#define LL_TIM_SR_CC4IF TIM_SR_CC4IF /*!< Capture/compare 4 interrupt flag */ +#define LL_TIM_SR_CC5IF TIM_SR_CC5IF /*!< Capture/compare 5 interrupt flag */ +#define LL_TIM_SR_CC6IF TIM_SR_CC6IF /*!< Capture/compare 6 interrupt flag */ +#define LL_TIM_SR_COMIF TIM_SR_COMIF /*!< COM interrupt flag */ +#define LL_TIM_SR_TIF TIM_SR_TIF /*!< Trigger interrupt flag */ +#define LL_TIM_SR_BIF TIM_SR_BIF /*!< Break interrupt flag */ +#define LL_TIM_SR_B2IF TIM_SR_B2IF /*!< Second break interrupt flag */ +#define LL_TIM_SR_CC1OF TIM_SR_CC1OF /*!< Capture/Compare 1 overcapture flag */ +#define LL_TIM_SR_CC2OF TIM_SR_CC2OF /*!< Capture/Compare 2 overcapture flag */ +#define LL_TIM_SR_CC3OF TIM_SR_CC3OF /*!< Capture/Compare 3 overcapture flag */ +#define LL_TIM_SR_CC4OF TIM_SR_CC4OF /*!< Capture/Compare 4 overcapture flag */ +#define LL_TIM_SR_SBIF TIM_SR_SBIF /*!< System Break interrupt flag */ +#define LL_TIM_SR_IDXF TIM_SR_IDXF /*!< Index interrupt flag */ +#define LL_TIM_SR_DIRF TIM_SR_DIRF /*!< Direction Change interrupt flag */ +#define LL_TIM_SR_IERRF TIM_SR_IERRF /*!< Index Error flag */ +#define LL_TIM_SR_TERRF TIM_SR_TERRF /*!< Transition Error flag */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_EC_BREAK_ENABLE Break Enable + * @{ + */ +#define LL_TIM_BREAK_DISABLE 0x00000000U /*!< Break function disabled */ +#define LL_TIM_BREAK_ENABLE TIM_BDTR_BKE /*!< Break function enabled */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_BREAK2_ENABLE Break2 Enable + * @{ + */ +#define LL_TIM_BREAK2_DISABLE 0x00000000U /*!< Break2 function disabled */ +#define LL_TIM_BREAK2_ENABLE TIM_BDTR_BK2E /*!< Break2 function enabled */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_AUTOMATICOUTPUT_ENABLE Automatic output enable + * @{ + */ +#define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U /*!< MOE can be set only by software */ +#define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE /*!< MOE can be set by software or automatically at the next update event */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** @defgroup TIM_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_TIM_ReadReg and LL_TIM_WriteReg functions. + * @{ + */ +#define LL_TIM_DIER_UIE TIM_DIER_UIE /*!< Update interrupt enable */ +#define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE /*!< Capture/compare 1 interrupt enable */ +#define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE /*!< Capture/compare 2 interrupt enable */ +#define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE /*!< Capture/compare 3 interrupt enable */ +#define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE /*!< Capture/compare 4 interrupt enable */ +#define LL_TIM_DIER_COMIE TIM_DIER_COMIE /*!< COM interrupt enable */ +#define LL_TIM_DIER_TIE TIM_DIER_TIE /*!< Trigger interrupt enable */ +#define LL_TIM_DIER_BIE TIM_DIER_BIE /*!< Break interrupt enable */ +#define LL_TIM_DIER_IDXIE TIM_DIER_IDXIE /*!< Index interrupt enable */ +#define LL_TIM_DIER_DIRIE TIM_DIER_DIRIE /*!< Direction Change interrupt enable */ +#define LL_TIM_DIER_IERRIE TIM_DIER_IERRIE /*!< Index Error interrupt enable */ +#define LL_TIM_DIER_TERRIE TIM_DIER_TERRIE /*!< Transition Error interrupt enable */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_UPDATESOURCE Update Source + * @{ + */ +#define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U /*!< Counter overflow/underflow, Setting the UG bit or Update generation through the slave mode controller generates an update request */ +#define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS /*!< Only counter overflow/underflow generates an update request */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_ONEPULSEMODE One Pulse Mode + * @{ + */ +#define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM /*!< Counter stops counting at the next update event */ +#define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U /*!< Counter is not stopped at update event */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_COUNTERMODE Counter Mode + * @{ + */ +#define LL_TIM_COUNTERMODE_UP 0x00000000U /*!< Counter used as upcounter */ +#define LL_TIM_COUNTERMODE_DOWN TIM_CR1_DIR /*!< Counter used as downcounter */ +#define LL_TIM_COUNTERMODE_CENTER_DOWN TIM_CR1_CMS_0 /*!< The counter counts up and down alternatively. Output compare interrupt flags of output channels are set only when the counter is counting down. */ +#define LL_TIM_COUNTERMODE_CENTER_UP TIM_CR1_CMS_1 /*!< The counter counts up and down alternatively. Output compare interrupt flags of output channels are set only when the counter is counting up */ +#define LL_TIM_COUNTERMODE_CENTER_UP_DOWN TIM_CR1_CMS /*!< The counter counts up and down alternatively. Output compare interrupt flags of output channels are set only when the counter is counting up or down. */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_CLOCKDIVISION Clock Division + * @{ + */ +#define LL_TIM_CLOCKDIVISION_DIV1 0x00000000U /*!< tDTS=tCK_INT */ +#define LL_TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0 /*!< tDTS=2*tCK_INT */ +#define LL_TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1 /*!< tDTS=4*tCK_INT */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_COUNTERDIRECTION Counter Direction + * @{ + */ +#define LL_TIM_COUNTERDIRECTION_UP 0x00000000U /*!< Timer counter counts up */ +#define LL_TIM_COUNTERDIRECTION_DOWN TIM_CR1_DIR /*!< Timer counter counts down */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_CCUPDATESOURCE Capture Compare Update Source + * @{ + */ +#define LL_TIM_CCUPDATESOURCE_COMG_ONLY 0x00000000U /*!< Capture/compare control bits are updated by setting the COMG bit only */ +#define LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI TIM_CR2_CCUS /*!< Capture/compare control bits are updated by setting the COMG bit or when a rising edge occurs on trigger input (TRGI) */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_CCDMAREQUEST Capture Compare DMA Request + * @{ + */ +#define LL_TIM_CCDMAREQUEST_CC 0x00000000U /*!< CCx DMA request sent when CCx event occurs */ +#define LL_TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS /*!< CCx DMA requests sent when update event occurs */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_LOCKLEVEL Lock Level + * @{ + */ +#define LL_TIM_LOCKLEVEL_OFF 0x00000000U /*!< LOCK OFF - No bit is write protected */ +#define LL_TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0 /*!< LOCK Level 1 */ +#define LL_TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1 /*!< LOCK Level 2 */ +#define LL_TIM_LOCKLEVEL_3 TIM_BDTR_LOCK /*!< LOCK Level 3 */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_CHANNEL Channel + * @{ + */ +#define LL_TIM_CHANNEL_CH1 TIM_CCER_CC1E /*!< Timer input/output channel 1 */ +#define LL_TIM_CHANNEL_CH1N TIM_CCER_CC1NE /*!< Timer complementary output channel 1 */ +#define LL_TIM_CHANNEL_CH2 TIM_CCER_CC2E /*!< Timer input/output channel 2 */ +#define LL_TIM_CHANNEL_CH2N TIM_CCER_CC2NE /*!< Timer complementary output channel 2 */ +#define LL_TIM_CHANNEL_CH3 TIM_CCER_CC3E /*!< Timer input/output channel 3 */ +#define LL_TIM_CHANNEL_CH3N TIM_CCER_CC3NE /*!< Timer complementary output channel 3 */ +#define LL_TIM_CHANNEL_CH4 TIM_CCER_CC4E /*!< Timer input/output channel 4 */ +#define LL_TIM_CHANNEL_CH4N TIM_CCER_CC4NE /*!< Timer complementary output channel 4 */ +#define LL_TIM_CHANNEL_CH5 TIM_CCER_CC5E /*!< Timer output channel 5 */ +#define LL_TIM_CHANNEL_CH6 TIM_CCER_CC6E /*!< Timer output channel 6 */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_EC_OCSTATE Output Configuration State + * @{ + */ +#define LL_TIM_OCSTATE_DISABLE 0x00000000U /*!< OCx is not active */ +#define LL_TIM_OCSTATE_ENABLE TIM_CCER_CC1E /*!< OCx signal is output on the corresponding output pin */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** Legacy definitions for compatibility purpose +@cond 0 + */ +#define LL_TIM_OCMODE_ASSYMETRIC_PWM1 LL_TIM_OCMODE_ASYMMETRIC_PWM1 +#define LL_TIM_OCMODE_ASSYMETRIC_PWM2 LL_TIM_OCMODE_ASYMMETRIC_PWM2 +/** +@endcond + */ + +/** @defgroup TIM_LL_EC_OCMODE Output Configuration Mode + * @{ + */ +#define LL_TIM_OCMODE_FROZEN 0x00000000U /*!TIMx_CCRy else active.*/ +#define LL_TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0) /*!TIMx_CCRy else inactive*/ +#define LL_TIM_OCMODE_RETRIG_OPM1 TIM_CCMR1_OC1M_3 /*!__REG__, (__VALUE__)) + +/** + * @brief Read a value in TIM register. + * @param __INSTANCE__ TIM Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__) +/** + * @} + */ + +/** + * @brief HELPER macro retrieving the UIFCPY flag from the counter value. + * @note ex: @ref __LL_TIM_GETFLAG_UIFCPY (@ref LL_TIM_GetCounter ()); + * @note Relevant only if UIF flag remapping has been enabled (UIF status bit is copied + * to TIMx_CNT register bit 31) + * @param __CNT__ Counter value + * @retval UIF status bit + */ +#define __LL_TIM_GETFLAG_UIFCPY(__CNT__) \ + (READ_BIT((__CNT__), TIM_CNT_UIFCPY) >> TIM_CNT_UIFCPY_Pos) + +/** + * @brief HELPER macro calculating DTG[0:7] in the TIMx_BDTR register to achieve the requested dead time duration. + * @note ex: @ref __LL_TIM_CALC_DEADTIME (80000000, @ref LL_TIM_GetClockDivision (), 120); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CKD__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @param __DT__ deadtime duration (in ns) + * @retval DTG[0:7] + */ +#define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \ + ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \ + (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\ + (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\ + (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\ + 0U) + +/** + * @brief HELPER macro calculating the prescaler value to achieve the required counter clock frequency. + * @note ex: @ref __LL_TIM_CALC_PSC (80000000, 1000000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CNTCLK__ counter clock frequency (in Hz) + * @retval Prescaler value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \ + (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required output signal frequency. + * @note ex: @ref __LL_TIM_CALC_ARR (1000000, @ref LL_TIM_GetPrescaler (), 10000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __FREQ__ output signal frequency (in Hz) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \ + ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U) + +/** + * @brief HELPER macro calculating the auto-reload value, with dithering feature enabled, to achieve the required + * output signal frequency. + * @note ex: @ref __LL_TIM_CALC_ARR_DITHER (1000000, @ref LL_TIM_GetPrescaler (), 10000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __FREQ__ output signal frequency (in Hz) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_ARR_DITHER(__TIMCLK__, __PSC__, __FREQ__) \ + ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? \ + (uint32_t)((((uint64_t)(__TIMCLK__) * 16U/((__FREQ__) * ((__PSC__) + 1U))) - 16U)) : 0U) + +/** + * @brief HELPER macro calculating the compare value required to achieve the required timer output compare + * active/inactive delay. + * @note ex: @ref __LL_TIM_CALC_DELAY (1000000, @ref LL_TIM_GetPrescaler (), 10); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @retval Compare value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \ + ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \ + / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U)))) + +/** + * @brief HELPER macro calculating the compare value, with dithering feature enabled, to achieve the required timer + * output compare active/inactive delay. + * @note ex: @ref __LL_TIM_CALC_DELAY_DITHER (1000000, @ref LL_TIM_GetPrescaler (), 10); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @retval Compare value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_DELAY_DITHER(__TIMCLK__, __PSC__, __DELAY__) \ + ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__) * 16U) \ + / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U)))) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required pulse duration + * (when the timer operates in one pulse mode). + * @note ex: @ref __LL_TIM_CALC_PULSE (1000000, @ref LL_TIM_GetPrescaler (), 10, 20); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @param __PULSE__ pulse duration (in us) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \ + ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \ + + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__)))) + +/** + * @brief HELPER macro calculating the auto-reload value, with dithering feature enabled, to achieve the required + * pulse duration (when the timer operates in one pulse mode). + * @note ex: @ref __LL_TIM_CALC_PULSE_DITHER (1000000, @ref LL_TIM_GetPrescaler (), 10, 20); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @param __PULSE__ pulse duration (in us) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PULSE_DITHER(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \ + ((uint32_t)(__LL_TIM_CALC_DELAY_DITHER((__TIMCLK__), (__PSC__), (__PULSE__)) \ + + __LL_TIM_CALC_DELAY_DITHER((__TIMCLK__), (__PSC__), (__DELAY__)))) + +/** + * @brief HELPER macro retrieving the ratio of the input capture prescaler + * @note ex: @ref __LL_TIM_GET_ICPSC_RATIO (@ref LL_TIM_IC_GetPrescaler ()); + * @param __ICPSC__ This parameter can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + * @retval Input capture prescaler ratio (1, 2, 4 or 8) + */ +#define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \ + ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos))) + + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup TIM_LL_Exported_Functions TIM Exported Functions + * @{ + */ + +/** @defgroup TIM_LL_EF_Time_Base Time Base configuration + * @{ + */ +/** + * @brief Enable timer counter. + * @rmtoll CR1 CEN LL_TIM_EnableCounter + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableCounter(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_CEN); +} + +/** + * @brief Disable timer counter. + * @rmtoll CR1 CEN LL_TIM_DisableCounter + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableCounter(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_CEN); +} + +/** + * @brief Indicates whether the timer counter is enabled. + * @rmtoll CR1 CEN LL_TIM_IsEnabledCounter + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledCounter(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_CEN) == (TIM_CR1_CEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable update event generation. + * @rmtoll CR1 UDIS LL_TIM_EnableUpdateEvent + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableUpdateEvent(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_UDIS); +} + +/** + * @brief Disable update event generation. + * @rmtoll CR1 UDIS LL_TIM_DisableUpdateEvent + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableUpdateEvent(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_UDIS); +} + +/** + * @brief Indicates whether update event generation is enabled. + * @rmtoll CR1 UDIS LL_TIM_IsEnabledUpdateEvent + * @param TIMx Timer instance + * @retval Inverted state of bit (0 or 1). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledUpdateEvent(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_UDIS) == (uint32_t)RESET) ? 1UL : 0UL); +} + +/** + * @brief Set update event source + * @note Update event source set to LL_TIM_UPDATESOURCE_REGULAR: any of the following events + * generate an update interrupt or DMA request if enabled: + * - Counter overflow/underflow + * - Setting the UG bit + * - Update generation through the slave mode controller + * @note Update event source set to LL_TIM_UPDATESOURCE_COUNTER: only counter + * overflow/underflow generates an update interrupt or DMA request if enabled. + * @rmtoll CR1 URS LL_TIM_SetUpdateSource + * @param TIMx Timer instance + * @param UpdateSource This parameter can be one of the following values: + * @arg @ref LL_TIM_UPDATESOURCE_REGULAR + * @arg @ref LL_TIM_UPDATESOURCE_COUNTER + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetUpdateSource(TIM_TypeDef *TIMx, uint32_t UpdateSource) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_URS, UpdateSource); +} + +/** + * @brief Get actual event update source + * @rmtoll CR1 URS LL_TIM_GetUpdateSource + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_UPDATESOURCE_REGULAR + * @arg @ref LL_TIM_UPDATESOURCE_COUNTER + */ +__STATIC_INLINE uint32_t LL_TIM_GetUpdateSource(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_URS)); +} + +/** + * @brief Set one pulse mode (one shot v.s. repetitive). + * @rmtoll CR1 OPM LL_TIM_SetOnePulseMode + * @param TIMx Timer instance + * @param OnePulseMode This parameter can be one of the following values: + * @arg @ref LL_TIM_ONEPULSEMODE_SINGLE + * @arg @ref LL_TIM_ONEPULSEMODE_REPETITIVE + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOnePulseMode(TIM_TypeDef *TIMx, uint32_t OnePulseMode) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_OPM, OnePulseMode); +} + +/** + * @brief Get actual one pulse mode. + * @rmtoll CR1 OPM LL_TIM_GetOnePulseMode + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ONEPULSEMODE_SINGLE + * @arg @ref LL_TIM_ONEPULSEMODE_REPETITIVE + */ +__STATIC_INLINE uint32_t LL_TIM_GetOnePulseMode(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_OPM)); +} + +/** + * @brief Set the timer counter counting mode. + * @note Macro IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx) can be used to + * check whether or not the counter mode selection feature is supported + * by a timer instance. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * @rmtoll CR1 DIR LL_TIM_SetCounterMode\n + * CR1 CMS LL_TIM_SetCounterMode + * @param TIMx Timer instance + * @param CounterMode This parameter can be one of the following values: + * @arg @ref LL_TIM_COUNTERMODE_UP + * @arg @ref LL_TIM_COUNTERMODE_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP + * @arg @ref LL_TIM_COUNTERMODE_CENTER_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP_DOWN + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCounterMode(TIM_TypeDef *TIMx, uint32_t CounterMode) +{ + MODIFY_REG(TIMx->CR1, (TIM_CR1_DIR | TIM_CR1_CMS), CounterMode); +} + +/** + * @brief Get actual counter mode. + * @note Macro IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx) can be used to + * check whether or not the counter mode selection feature is supported + * by a timer instance. + * @rmtoll CR1 DIR LL_TIM_GetCounterMode\n + * CR1 CMS LL_TIM_GetCounterMode + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_COUNTERMODE_UP + * @arg @ref LL_TIM_COUNTERMODE_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP + * @arg @ref LL_TIM_COUNTERMODE_CENTER_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetCounterMode(const TIM_TypeDef *TIMx) +{ + uint32_t counter_mode; + + counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CMS)); + + if (counter_mode == 0U) + { + counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR)); + } + + return counter_mode; +} + +/** + * @brief Enable auto-reload (ARR) preload. + * @rmtoll CR1 ARPE LL_TIM_EnableARRPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableARRPreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_ARPE); +} + +/** + * @brief Disable auto-reload (ARR) preload. + * @rmtoll CR1 ARPE LL_TIM_DisableARRPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableARRPreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_ARPE); +} + +/** + * @brief Indicates whether auto-reload (ARR) preload is enabled. + * @rmtoll CR1 ARPE LL_TIM_IsEnabledARRPreload + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledARRPreload(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_ARPE) == (TIM_CR1_ARPE)) ? 1UL : 0UL); +} + +/** + * @brief Set the division ratio between the timer clock and the sampling clock used by the dead-time generators + * (when supported) and the digital filters. + * @note Macro IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx) can be used to check + * whether or not the clock division feature is supported by the timer + * instance. + * @rmtoll CR1 CKD LL_TIM_SetClockDivision + * @param TIMx Timer instance + * @param ClockDivision This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetClockDivision(TIM_TypeDef *TIMx, uint32_t ClockDivision) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_CKD, ClockDivision); +} + +/** + * @brief Get the actual division ratio between the timer clock and the sampling clock used by the dead-time + * generators (when supported) and the digital filters. + * @note Macro IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx) can be used to check + * whether or not the clock division feature is supported by the timer + * instance. + * @rmtoll CR1 CKD LL_TIM_GetClockDivision + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + */ +__STATIC_INLINE uint32_t LL_TIM_GetClockDivision(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CKD)); +} + +/** + * @brief Set the counter value. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note If dithering is activated, pay attention to the Counter value interpretation + * @rmtoll CNT CNT LL_TIM_SetCounter + * @param TIMx Timer instance + * @param Counter Counter value (between Min_Data=0 and Max_Data=0xFFFF or 0xFFFFFFFF) + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCounter(TIM_TypeDef *TIMx, uint32_t Counter) +{ + WRITE_REG(TIMx->CNT, Counter); +} + +/** + * @brief Get the counter value. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note If dithering is activated, pay attention to the Counter value interpretation + * @rmtoll CNT CNT LL_TIM_GetCounter + * @param TIMx Timer instance + * @retval Counter value (between Min_Data=0 and Max_Data=0xFFFF or 0xFFFFFFFF) + */ +__STATIC_INLINE uint32_t LL_TIM_GetCounter(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CNT)); +} + +/** + * @brief Get the current direction of the counter + * @rmtoll CR1 DIR LL_TIM_GetDirection + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_COUNTERDIRECTION_UP + * @arg @ref LL_TIM_COUNTERDIRECTION_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetDirection(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR)); +} + +/** + * @brief Set the prescaler value. + * @note The counter clock frequency CK_CNT is equal to fCK_PSC / (PSC[15:0] + 1). + * @note The prescaler can be changed on the fly as this control register is buffered. The new + * prescaler ratio is taken into account at the next update event. + * @note Helper macro @ref __LL_TIM_CALC_PSC can be used to calculate the Prescaler parameter + * @rmtoll PSC PSC LL_TIM_SetPrescaler + * @param TIMx Timer instance + * @param Prescaler between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler) +{ + WRITE_REG(TIMx->PSC, Prescaler); +} + +/** + * @brief Get the prescaler value. + * @rmtoll PSC PSC LL_TIM_GetPrescaler + * @param TIMx Timer instance + * @retval Prescaler value between Min_Data=0 and Max_Data=65535 + */ +__STATIC_INLINE uint32_t LL_TIM_GetPrescaler(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->PSC)); +} + +/** + * @brief Set the auto-reload value. + * @note The counter is blocked while the auto-reload value is null. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Helper macro @ref __LL_TIM_CALC_ARR can be used to calculate the AutoReload parameter + * In case dithering is activated,macro __LL_TIM_CALC_ARR_DITHER can be used instead, to calculate the AutoReload + * parameter. + * @rmtoll ARR ARR LL_TIM_SetAutoReload + * @param TIMx Timer instance + * @param AutoReload between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload) +{ + WRITE_REG(TIMx->ARR, AutoReload); +} + +/** + * @brief Get the auto-reload value. + * @rmtoll ARR ARR LL_TIM_GetAutoReload + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note If dithering is activated, pay attention to the returned value interpretation + * @param TIMx Timer instance + * @retval Auto-reload value + */ +__STATIC_INLINE uint32_t LL_TIM_GetAutoReload(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->ARR)); +} + +/** + * @brief Set the repetition counter value. + * @note For advanced timer instances RepetitionCounter can be up to 65535. + * @note Macro IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a repetition counter. + * @rmtoll RCR REP LL_TIM_SetRepetitionCounter + * @param TIMx Timer instance + * @param RepetitionCounter between Min_Data=0 and Max_Data=255 or 65535 for advanced timer. + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetRepetitionCounter(TIM_TypeDef *TIMx, uint32_t RepetitionCounter) +{ + WRITE_REG(TIMx->RCR, RepetitionCounter); +} + +/** + * @brief Get the repetition counter value. + * @note Macro IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a repetition counter. + * @rmtoll RCR REP LL_TIM_GetRepetitionCounter + * @param TIMx Timer instance + * @retval Repetition counter value + */ +__STATIC_INLINE uint32_t LL_TIM_GetRepetitionCounter(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->RCR)); +} + +/** + * @brief Force a continuous copy of the update interrupt flag (UIF) into the timer counter register (bit 31). + * @note This allows both the counter value and a potential roll-over condition signalled by the UIFCPY flag to be read + * in an atomic way. + * @rmtoll CR1 UIFREMAP LL_TIM_EnableUIFRemap + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableUIFRemap(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_UIFREMAP); +} + +/** + * @brief Disable update interrupt flag (UIF) remapping. + * @rmtoll CR1 UIFREMAP LL_TIM_DisableUIFRemap + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableUIFRemap(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_UIFREMAP); +} + +/** + * @brief Indicate whether update interrupt flag (UIF) copy is set. + * @param Counter Counter value + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveUIFCPY(const uint32_t Counter) +{ + return (((Counter & TIM_CNT_UIFCPY) == (TIM_CNT_UIFCPY)) ? 1UL : 0UL); +} + +/** + * @brief Enable dithering. + * @note Macro IS_TIM_DITHERING_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides dithering. + * @rmtoll CR1 DITHEN LL_TIM_EnableDithering + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDithering(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_DITHEN); +} + +/** + * @brief Disable dithering. + * @note Macro IS_TIM_DITHERING_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides dithering. + * @rmtoll CR1 DITHEN LL_TIM_DisableDithering + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDithering(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_DITHEN); +} + +/** + * @brief Indicates whether dithering is activated. + * @note Macro IS_TIM_DITHERING_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides dithering. + * @rmtoll CR1 DITHEN LL_TIM_IsEnabledDithering + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDithering(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_DITHEN) == (TIM_CR1_DITHEN)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Capture_Compare Capture Compare configuration + * @{ + */ +/** + * @brief Enable the capture/compare control bits (CCxE, CCxNE and OCxM) preload. + * @note CCxE, CCxNE and OCxM bits are preloaded, after having been written, + * they are updated only when a commutation event (COM) occurs. + * @note Only on channels that have a complementary output. + * @note Macro IS_TIM_COMMUTATION_EVENT_INSTANCE(TIMx) can be used to check + * whether or not a timer instance is able to generate a commutation event. + * @rmtoll CR2 CCPC LL_TIM_CC_EnablePreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_EnablePreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR2, TIM_CR2_CCPC); +} + +/** + * @brief Disable the capture/compare control bits (CCxE, CCxNE and OCxM) preload. + * @note Macro IS_TIM_COMMUTATION_EVENT_INSTANCE(TIMx) can be used to check + * whether or not a timer instance is able to generate a commutation event. + * @rmtoll CR2 CCPC LL_TIM_CC_DisablePreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_DisablePreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR2, TIM_CR2_CCPC); +} + +/** + * @brief Indicates whether the capture/compare control bits (CCxE, CCxNE and OCxM) preload is enabled. + * @rmtoll CR2 CCPC LL_TIM_CC_IsEnabledPreload + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledPreload(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR2, TIM_CR2_CCPC) == (TIM_CR2_CCPC)) ? 1UL : 0UL); +} + +/** + * @brief Set the updated source of the capture/compare control bits (CCxE, CCxNE and OCxM). + * @note Macro IS_TIM_COMMUTATION_EVENT_INSTANCE(TIMx) can be used to check + * whether or not a timer instance is able to generate a commutation event. + * @rmtoll CR2 CCUS LL_TIM_CC_SetUpdate + * @param TIMx Timer instance + * @param CCUpdateSource This parameter can be one of the following values: + * @arg @ref LL_TIM_CCUPDATESOURCE_COMG_ONLY + * @arg @ref LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_SetUpdate(TIM_TypeDef *TIMx, uint32_t CCUpdateSource) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_CCUS, CCUpdateSource); +} + +/** + * @brief Set the trigger of the capture/compare DMA request. + * @rmtoll CR2 CCDS LL_TIM_CC_SetDMAReqTrigger + * @param TIMx Timer instance + * @param DMAReqTrigger This parameter can be one of the following values: + * @arg @ref LL_TIM_CCDMAREQUEST_CC + * @arg @ref LL_TIM_CCDMAREQUEST_UPDATE + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_SetDMAReqTrigger(TIM_TypeDef *TIMx, uint32_t DMAReqTrigger) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_CCDS, DMAReqTrigger); +} + +/** + * @brief Get actual trigger of the capture/compare DMA request. + * @rmtoll CR2 CCDS LL_TIM_CC_GetDMAReqTrigger + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_CCDMAREQUEST_CC + * @arg @ref LL_TIM_CCDMAREQUEST_UPDATE + */ +__STATIC_INLINE uint32_t LL_TIM_CC_GetDMAReqTrigger(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR2, TIM_CR2_CCDS)); +} + +/** + * @brief Set the lock level to freeze the + * configuration of several capture/compare parameters. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * the lock mechanism is supported by a timer instance. + * @rmtoll BDTR LOCK LL_TIM_CC_SetLockLevel + * @param TIMx Timer instance + * @param LockLevel This parameter can be one of the following values: + * @arg @ref LL_TIM_LOCKLEVEL_OFF + * @arg @ref LL_TIM_LOCKLEVEL_1 + * @arg @ref LL_TIM_LOCKLEVEL_2 + * @arg @ref LL_TIM_LOCKLEVEL_3 + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_SetLockLevel(TIM_TypeDef *TIMx, uint32_t LockLevel) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_LOCK, LockLevel); +} + +/** + * @brief Enable capture/compare channels. + * @rmtoll CCER CC1E LL_TIM_CC_EnableChannel\n + * CCER CC1NE LL_TIM_CC_EnableChannel\n + * CCER CC2E LL_TIM_CC_EnableChannel\n + * CCER CC2NE LL_TIM_CC_EnableChannel\n + * CCER CC3E LL_TIM_CC_EnableChannel\n + * CCER CC3NE LL_TIM_CC_EnableChannel\n + * CCER CC4E LL_TIM_CC_EnableChannel\n + * CCER CC4NE LL_TIM_CC_EnableChannel\n + * CCER CC5E LL_TIM_CC_EnableChannel\n + * CCER CC6E LL_TIM_CC_EnableChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_EnableChannel(TIM_TypeDef *TIMx, uint32_t Channels) +{ + SET_BIT(TIMx->CCER, Channels); +} + +/** + * @brief Disable capture/compare channels. + * @rmtoll CCER CC1E LL_TIM_CC_DisableChannel\n + * CCER CC1NE LL_TIM_CC_DisableChannel\n + * CCER CC2E LL_TIM_CC_DisableChannel\n + * CCER CC2NE LL_TIM_CC_DisableChannel\n + * CCER CC3E LL_TIM_CC_DisableChannel\n + * CCER CC3NE LL_TIM_CC_DisableChannel\n + * CCER CC4E LL_TIM_CC_DisableChannel\n + * CCER CC4NE LL_TIM_CC_DisableChannel\n + * CCER CC5E LL_TIM_CC_DisableChannel\n + * CCER CC6E LL_TIM_CC_DisableChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_DisableChannel(TIM_TypeDef *TIMx, uint32_t Channels) +{ + CLEAR_BIT(TIMx->CCER, Channels); +} + +/** + * @brief Indicate whether channel(s) is(are) enabled. + * @rmtoll CCER CC1E LL_TIM_CC_IsEnabledChannel\n + * CCER CC1NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC2E LL_TIM_CC_IsEnabledChannel\n + * CCER CC2NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC3E LL_TIM_CC_IsEnabledChannel\n + * CCER CC3NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC4E LL_TIM_CC_IsEnabledChannel\n + * CCER CC4NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC5E LL_TIM_CC_IsEnabledChannel\n + * CCER CC6E LL_TIM_CC_IsEnabledChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledChannel(const TIM_TypeDef *TIMx, uint32_t Channels) +{ + return ((READ_BIT(TIMx->CCER, Channels) == (Channels)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Output_Channel Output channel configuration + * @{ + */ +/** + * @brief Configure an output channel. + * @rmtoll CCMR1 CC1S LL_TIM_OC_ConfigOutput\n + * CCMR1 CC2S LL_TIM_OC_ConfigOutput\n + * CCMR2 CC3S LL_TIM_OC_ConfigOutput\n + * CCMR2 CC4S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC5S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC6S LL_TIM_OC_ConfigOutput\n + * CCER CC1P LL_TIM_OC_ConfigOutput\n + * CCER CC2P LL_TIM_OC_ConfigOutput\n + * CCER CC3P LL_TIM_OC_ConfigOutput\n + * CCER CC4P LL_TIM_OC_ConfigOutput\n + * CCER CC5P LL_TIM_OC_ConfigOutput\n + * CCER CC6P LL_TIM_OC_ConfigOutput\n + * CR2 OIS1 LL_TIM_OC_ConfigOutput\n + * CR2 OIS2 LL_TIM_OC_ConfigOutput\n + * CR2 OIS3 LL_TIM_OC_ConfigOutput\n + * CR2 OIS4 LL_TIM_OC_ConfigOutput\n + * CR2 OIS5 LL_TIM_OC_ConfigOutput\n + * CR2 OIS6 LL_TIM_OC_ConfigOutput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH or @ref LL_TIM_OCPOLARITY_LOW + * @arg @ref LL_TIM_OCIDLESTATE_LOW or @ref LL_TIM_OCIDLESTATE_HIGH + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_ConfigOutput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_CC1S << SHIFT_TAB_OCxx[iChannel])); + MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), + (Configuration & TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]); + MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), + (Configuration & TIM_CR2_OIS1) << SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Define the behavior of the output reference signal OCxREF from which + * OCx and OCxN (when relevant) are derived. + * @rmtoll CCMR1 OC1M LL_TIM_OC_SetMode\n + * CCMR1 OC2M LL_TIM_OC_SetMode\n + * CCMR2 OC3M LL_TIM_OC_SetMode\n + * CCMR2 OC4M LL_TIM_OC_SetMode\n + * CCMR3 OC5M LL_TIM_OC_SetMode\n + * CCMR3 OC6M LL_TIM_OC_SetMode + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_TIM_OCMODE_FROZEN + * @arg @ref LL_TIM_OCMODE_ACTIVE + * @arg @ref LL_TIM_OCMODE_INACTIVE + * @arg @ref LL_TIM_OCMODE_TOGGLE + * @arg @ref LL_TIM_OCMODE_FORCED_INACTIVE + * @arg @ref LL_TIM_OCMODE_FORCED_ACTIVE + * @arg @ref LL_TIM_OCMODE_PWM1 + * @arg @ref LL_TIM_OCMODE_PWM2 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM1 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM2 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM1 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM2 + * @arg @ref LL_TIM_OCMODE_ASYMMETRIC_PWM1 + * @arg @ref LL_TIM_OCMODE_ASYMMETRIC_PWM2 + * @arg @ref LL_TIM_OCMODE_PULSE_ON_COMPARE (for channel 3 or channel 4 only) + * @arg @ref LL_TIM_OCMODE_DIRECTION_OUTPUT (for channel 3 or channel 4 only) + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetMode(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Mode) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel]), Mode << SHIFT_TAB_OCxx[iChannel]); +} + +/** + * @brief Get the output compare mode of an output channel. + * @rmtoll CCMR1 OC1M LL_TIM_OC_GetMode\n + * CCMR1 OC2M LL_TIM_OC_GetMode\n + * CCMR2 OC3M LL_TIM_OC_GetMode\n + * CCMR2 OC4M LL_TIM_OC_GetMode\n + * CCMR3 OC5M LL_TIM_OC_GetMode\n + * CCMR3 OC6M LL_TIM_OC_GetMode + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCMODE_FROZEN + * @arg @ref LL_TIM_OCMODE_ACTIVE + * @arg @ref LL_TIM_OCMODE_INACTIVE + * @arg @ref LL_TIM_OCMODE_TOGGLE + * @arg @ref LL_TIM_OCMODE_FORCED_INACTIVE + * @arg @ref LL_TIM_OCMODE_FORCED_ACTIVE + * @arg @ref LL_TIM_OCMODE_PWM1 + * @arg @ref LL_TIM_OCMODE_PWM2 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM1 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM2 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM1 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM2 + * @arg @ref LL_TIM_OCMODE_ASYMMETRIC_PWM1 + * @arg @ref LL_TIM_OCMODE_ASYMMETRIC_PWM2 + * @arg @ref LL_TIM_OCMODE_PULSE_ON_COMPARE (for channel 3 or channel 4 only) + * @arg @ref LL_TIM_OCMODE_DIRECTION_OUTPUT (for channel 3 or channel 4 only) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetMode(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return (READ_BIT(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel])) >> SHIFT_TAB_OCxx[iChannel]); +} + +/** + * @brief Set the polarity of an output channel. + * @rmtoll CCER CC1P LL_TIM_OC_SetPolarity\n + * CCER CC1NP LL_TIM_OC_SetPolarity\n + * CCER CC2P LL_TIM_OC_SetPolarity\n + * CCER CC2NP LL_TIM_OC_SetPolarity\n + * CCER CC3P LL_TIM_OC_SetPolarity\n + * CCER CC3NP LL_TIM_OC_SetPolarity\n + * CCER CC4P LL_TIM_OC_SetPolarity\n + * CCER CC4NP LL_TIM_OC_SetPolarity\n + * CCER CC5P LL_TIM_OC_SetPolarity\n + * CCER CC6P LL_TIM_OC_SetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH + * @arg @ref LL_TIM_OCPOLARITY_LOW + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Polarity) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), Polarity << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Get the polarity of an output channel. + * @rmtoll CCER CC1P LL_TIM_OC_GetPolarity\n + * CCER CC1NP LL_TIM_OC_GetPolarity\n + * CCER CC2P LL_TIM_OC_GetPolarity\n + * CCER CC2NP LL_TIM_OC_GetPolarity\n + * CCER CC3P LL_TIM_OC_GetPolarity\n + * CCER CC3NP LL_TIM_OC_GetPolarity\n + * CCER CC4P LL_TIM_OC_GetPolarity\n + * CCER CC4NP LL_TIM_OC_GetPolarity\n + * CCER CC5P LL_TIM_OC_GetPolarity\n + * CCER CC6P LL_TIM_OC_GetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH + * @arg @ref LL_TIM_OCPOLARITY_LOW + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel])) >> SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Set the IDLE state of an output channel + * @note This function is significant only for the timer instances + * supporting the break feature. Macro IS_TIM_BREAK_INSTANCE(TIMx) + * can be used to check whether or not a timer instance provides + * a break input. + * @rmtoll CR2 OIS1 LL_TIM_OC_SetIdleState\n + * CR2 OIS2N LL_TIM_OC_SetIdleState\n + * CR2 OIS2 LL_TIM_OC_SetIdleState\n + * CR2 OIS2N LL_TIM_OC_SetIdleState\n + * CR2 OIS3 LL_TIM_OC_SetIdleState\n + * CR2 OIS3N LL_TIM_OC_SetIdleState\n + * CR2 OIS4 LL_TIM_OC_SetIdleState\n + * CR2 OIS4N LL_TIM_OC_SetIdleState\n + * CR2 OIS5 LL_TIM_OC_SetIdleState\n + * CR2 OIS6 LL_TIM_OC_SetIdleState + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param IdleState This parameter can be one of the following values: + * @arg @ref LL_TIM_OCIDLESTATE_LOW + * @arg @ref LL_TIM_OCIDLESTATE_HIGH + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetIdleState(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t IdleState) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), IdleState << SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Get the IDLE state of an output channel + * @rmtoll CR2 OIS1 LL_TIM_OC_GetIdleState\n + * CR2 OIS2N LL_TIM_OC_GetIdleState\n + * CR2 OIS2 LL_TIM_OC_GetIdleState\n + * CR2 OIS2N LL_TIM_OC_GetIdleState\n + * CR2 OIS3 LL_TIM_OC_GetIdleState\n + * CR2 OIS3N LL_TIM_OC_GetIdleState\n + * CR2 OIS4 LL_TIM_OC_GetIdleState\n + * CR2 OIS4N LL_TIM_OC_GetIdleState\n + * CR2 OIS5 LL_TIM_OC_GetIdleState\n + * CR2 OIS6 LL_TIM_OC_GetIdleState + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH4N + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCIDLESTATE_LOW + * @arg @ref LL_TIM_OCIDLESTATE_HIGH + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetIdleState(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel])) >> SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Enable fast mode for the output channel. + * @note Acts only if the channel is configured in PWM1 or PWM2 mode. + * @rmtoll CCMR1 OC1FE LL_TIM_OC_EnableFast\n + * CCMR1 OC2FE LL_TIM_OC_EnableFast\n + * CCMR2 OC3FE LL_TIM_OC_EnableFast\n + * CCMR2 OC4FE LL_TIM_OC_EnableFast\n + * CCMR3 OC5FE LL_TIM_OC_EnableFast\n + * CCMR3 OC6FE LL_TIM_OC_EnableFast + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_EnableFast(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + SET_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel])); + +} + +/** + * @brief Disable fast mode for the output channel. + * @rmtoll CCMR1 OC1FE LL_TIM_OC_DisableFast\n + * CCMR1 OC2FE LL_TIM_OC_DisableFast\n + * CCMR2 OC3FE LL_TIM_OC_DisableFast\n + * CCMR2 OC4FE LL_TIM_OC_DisableFast\n + * CCMR3 OC5FE LL_TIM_OC_DisableFast\n + * CCMR3 OC6FE LL_TIM_OC_DisableFast + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_DisableFast(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel])); + +} + +/** + * @brief Indicates whether fast mode is enabled for the output channel. + * @rmtoll CCMR1 OC1FE LL_TIM_OC_IsEnabledFast\n + * CCMR1 OC2FE LL_TIM_OC_IsEnabledFast\n + * CCMR2 OC3FE LL_TIM_OC_IsEnabledFast\n + * CCMR2 OC4FE LL_TIM_OC_IsEnabledFast\n + * CCMR3 OC5FE LL_TIM_OC_IsEnabledFast\n + * CCMR3 OC6FE LL_TIM_OC_IsEnabledFast + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledFast(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Enable compare register (TIMx_CCRx) preload for the output channel. + * @rmtoll CCMR1 OC1PE LL_TIM_OC_EnablePreload\n + * CCMR1 OC2PE LL_TIM_OC_EnablePreload\n + * CCMR2 OC3PE LL_TIM_OC_EnablePreload\n + * CCMR2 OC4PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC5PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC6PE LL_TIM_OC_EnablePreload + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_EnablePreload(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + SET_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Disable compare register (TIMx_CCRx) preload for the output channel. + * @rmtoll CCMR1 OC1PE LL_TIM_OC_DisablePreload\n + * CCMR1 OC2PE LL_TIM_OC_DisablePreload\n + * CCMR2 OC3PE LL_TIM_OC_DisablePreload\n + * CCMR2 OC4PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC5PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC6PE LL_TIM_OC_DisablePreload + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_DisablePreload(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Indicates whether compare register (TIMx_CCRx) preload is enabled for the output channel. + * @rmtoll CCMR1 OC1PE LL_TIM_OC_IsEnabledPreload\n + * CCMR1 OC2PE LL_TIM_OC_IsEnabledPreload\n + * CCMR2 OC3PE LL_TIM_OC_IsEnabledPreload\n + * CCMR2 OC4PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC5PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC6PE LL_TIM_OC_IsEnabledPreload + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledPreload(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Enable clearing the output channel on an external event. + * @note This function can only be used in Output compare and PWM modes. It does not work in Forced mode. + * @note Macro IS_TIM_OCXREF_CLEAR_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can clear the OCxREF signal on an external event. + * @rmtoll CCMR1 OC1CE LL_TIM_OC_EnableClear\n + * CCMR1 OC2CE LL_TIM_OC_EnableClear\n + * CCMR2 OC3CE LL_TIM_OC_EnableClear\n + * CCMR2 OC4CE LL_TIM_OC_EnableClear\n + * CCMR3 OC5CE LL_TIM_OC_EnableClear\n + * CCMR3 OC6CE LL_TIM_OC_EnableClear + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_EnableClear(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + SET_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Disable clearing the output channel on an external event. + * @note Macro IS_TIM_OCXREF_CLEAR_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can clear the OCxREF signal on an external event. + * @rmtoll CCMR1 OC1CE LL_TIM_OC_DisableClear\n + * CCMR1 OC2CE LL_TIM_OC_DisableClear\n + * CCMR2 OC3CE LL_TIM_OC_DisableClear\n + * CCMR2 OC4CE LL_TIM_OC_DisableClear\n + * CCMR3 OC5CE LL_TIM_OC_DisableClear\n + * CCMR3 OC6CE LL_TIM_OC_DisableClear + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_DisableClear(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Indicates clearing the output channel on an external event is enabled for the output channel. + * @note This function enables clearing the output channel on an external event. + * @note This function can only be used in Output compare and PWM modes. It does not work in Forced mode. + * @note Macro IS_TIM_OCXREF_CLEAR_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can clear the OCxREF signal on an external event. + * @rmtoll CCMR1 OC1CE LL_TIM_OC_IsEnabledClear\n + * CCMR1 OC2CE LL_TIM_OC_IsEnabledClear\n + * CCMR2 OC3CE LL_TIM_OC_IsEnabledClear\n + * CCMR2 OC4CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC5CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC6CE LL_TIM_OC_IsEnabledClear + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledClear(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Set the dead-time delay (delay inserted between the rising edge of the OCxREF signal and the rising edge of + * the Ocx and OCxN signals). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * dead-time insertion feature is supported by a timer instance. + * @note Helper macro @ref __LL_TIM_CALC_DEADTIME can be used to calculate the DeadTime parameter + * @rmtoll BDTR DTG LL_TIM_OC_SetDeadTime + * @param TIMx Timer instance + * @param DeadTime between Min_Data=0 and Max_Data=255 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_DTG, DeadTime); +} + +/** + * @brief Set compare value for output channel 1 (TIMx_CCR1). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * output channel 1 is supported by a timer instance. + * @note If dithering is activated, CompareValue can be calculated with macro @ref __LL_TIM_CALC_DELAY_DITHER . + * @rmtoll CCR1 CCR1 LL_TIM_OC_SetCompareCH1 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR1, CompareValue); +} + +/** + * @brief Set compare value for output channel 2 (TIMx_CCR2). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * output channel 2 is supported by a timer instance. + * @note If dithering is activated, CompareValue can be calculated with macro @ref __LL_TIM_CALC_DELAY_DITHER . + * @rmtoll CCR2 CCR2 LL_TIM_OC_SetCompareCH2 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR2, CompareValue); +} + +/** + * @brief Set compare value for output channel 3 (TIMx_CCR3). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * output channel is supported by a timer instance. + * @note If dithering is activated, CompareValue can be calculated with macro @ref __LL_TIM_CALC_DELAY_DITHER . + * @rmtoll CCR3 CCR3 LL_TIM_OC_SetCompareCH3 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH3(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR3, CompareValue); +} + +/** + * @brief Set compare value for output channel 4 (TIMx_CCR4). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * output channel 4 is supported by a timer instance. + * @note If dithering is activated, CompareValue can be calculated with macro @ref __LL_TIM_CALC_DELAY_DITHER . + * @rmtoll CCR4 CCR4 LL_TIM_OC_SetCompareCH4 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH4(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR4, CompareValue); +} + +/** + * @brief Set compare value for output channel 5 (TIMx_CCR5). + * @note Macro IS_TIM_CC5_INSTANCE(TIMx) can be used to check whether or not + * output channel 5 is supported by a timer instance. + * @note If dithering is activated, CompareValue can be calculated with macro @ref __LL_TIM_CALC_DELAY_DITHER . + * @rmtoll CCR5 CCR5 LL_TIM_OC_SetCompareCH5 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH5(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + MODIFY_REG(TIMx->CCR5, TIM_CCR5_CCR5, CompareValue); +} + +/** + * @brief Set compare value for output channel 6 (TIMx_CCR6). + * @note Macro IS_TIM_CC6_INSTANCE(TIMx) can be used to check whether or not + * output channel 6 is supported by a timer instance. + * @note If dithering is activated, CompareValue can be calculated with macro @ref __LL_TIM_CALC_DELAY_DITHER . + * @rmtoll CCR6 CCR6 LL_TIM_OC_SetCompareCH6 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH6(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR6, CompareValue); +} + +/** + * @brief Get compare value (TIMx_CCR1) set for output channel 1. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * output channel 1 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR1 CCR1 LL_TIM_OC_GetCompareCH1 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH1(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR1)); +} + +/** + * @brief Get compare value (TIMx_CCR2) set for output channel 2. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * output channel 2 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR2 CCR2 LL_TIM_OC_GetCompareCH2 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH2(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR2)); +} + +/** + * @brief Get compare value (TIMx_CCR3) set for output channel 3. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * output channel 3 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR3 CCR3 LL_TIM_OC_GetCompareCH3 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH3(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR3)); +} + +/** + * @brief Get compare value (TIMx_CCR4) set for output channel 4. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * output channel 4 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR4 CCR4 LL_TIM_OC_GetCompareCH4 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH4(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR4)); +} + +/** + * @brief Get compare value (TIMx_CCR5) set for output channel 5. + * @note Macro IS_TIM_CC5_INSTANCE(TIMx) can be used to check whether or not + * output channel 5 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR5 CCR5 LL_TIM_OC_GetCompareCH5 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH5(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CCR5, TIM_CCR5_CCR5)); +} + +/** + * @brief Get compare value (TIMx_CCR6) set for output channel 6. + * @note Macro IS_TIM_CC6_INSTANCE(TIMx) can be used to check whether or not + * output channel 6 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR6 CCR6 LL_TIM_OC_GetCompareCH6 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH6(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR6)); +} + +/** + * @brief Select on which reference signal the OC5REF is combined to. + * @note Macro IS_TIM_COMBINED3PHASEPWM_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the combined 3-phase PWM mode. + * @rmtoll CCR5 GC5C3 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C2 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C1 LL_TIM_SetCH5CombinedChannels + * @param TIMx Timer instance + * @param GroupCH5 This parameter can be a combination of the following values: + * @arg @ref LL_TIM_GROUPCH5_NONE + * @arg @ref LL_TIM_GROUPCH5_OC1REFC + * @arg @ref LL_TIM_GROUPCH5_OC2REFC + * @arg @ref LL_TIM_GROUPCH5_OC3REFC + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCH5CombinedChannels(TIM_TypeDef *TIMx, uint32_t GroupCH5) +{ + MODIFY_REG(TIMx->CCR5, (TIM_CCR5_GC5C3 | TIM_CCR5_GC5C2 | TIM_CCR5_GC5C1), GroupCH5); +} + +/** + * @brief Set the pulse on compare pulse width prescaler. + * @note Macro IS_TIM_PULSEONCOMPARE_INSTANCE(TIMx) can be used to check + * whether or not the pulse on compare feature is supported by the timer + * instance. + * @rmtoll ECR PWPRSC LL_TIM_OC_SetPulseWidthPrescaler + * @param TIMx Timer instance + * @param PulseWidthPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_PWPRSC_X1 + * @arg @ref LL_TIM_PWPRSC_X2 + * @arg @ref LL_TIM_PWPRSC_X4 + * @arg @ref LL_TIM_PWPRSC_X8 + * @arg @ref LL_TIM_PWPRSC_X16 + * @arg @ref LL_TIM_PWPRSC_X32 + * @arg @ref LL_TIM_PWPRSC_X64 + * @arg @ref LL_TIM_PWPRSC_X128 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetPulseWidthPrescaler(TIM_TypeDef *TIMx, uint32_t PulseWidthPrescaler) +{ + MODIFY_REG(TIMx->ECR, TIM_ECR_PWPRSC, PulseWidthPrescaler); +} + +/** + * @brief Get the pulse on compare pulse width prescaler. + * @note Macro IS_TIM_PULSEONCOMPARE_INSTANCE(TIMx) can be used to check + * whether or not the pulse on compare feature is supported by the timer + * instance. + * @rmtoll ECR PWPRSC LL_TIM_OC_GetPulseWidthPrescaler + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_PWPRSC_X1 + * @arg @ref LL_TIM_PWPRSC_X2 + * @arg @ref LL_TIM_PWPRSC_X4 + * @arg @ref LL_TIM_PWPRSC_X8 + * @arg @ref LL_TIM_PWPRSC_X16 + * @arg @ref LL_TIM_PWPRSC_X32 + * @arg @ref LL_TIM_PWPRSC_X64 + * @arg @ref LL_TIM_PWPRSC_X128 + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetPulseWidthPrescaler(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->ECR, TIM_ECR_PWPRSC)); +} + +/** + * @brief Set the pulse on compare pulse width duration. + * @note Macro IS_TIM_PULSEONCOMPARE_INSTANCE(TIMx) can be used to check + * whether or not the pulse on compare feature is supported by the timer + * instance. + * @rmtoll ECR PW LL_TIM_OC_SetPulseWidth + * @param TIMx Timer instance + * @param PulseWidth This parameter can be between Min_Data=0 and Max_Data=255 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetPulseWidth(TIM_TypeDef *TIMx, uint32_t PulseWidth) +{ + MODIFY_REG(TIMx->ECR, TIM_ECR_PW, PulseWidth << TIM_ECR_PW_Pos); +} + +/** + * @brief Get the pulse on compare pulse width duration. + * @note Macro IS_TIM_PULSEONCOMPARE_INSTANCE(TIMx) can be used to check + * whether or not the pulse on compare feature is supported by the timer + * instance. + * @rmtoll ECR PW LL_TIM_OC_GetPulseWidth + * @param TIMx Timer instance + * @retval Returned value can be between Min_Data=0 and Max_Data=255: + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetPulseWidth(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->ECR, TIM_ECR_PW)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Input_Channel Input channel configuration + * @{ + */ +/** + * @brief Configure input channel. + * @rmtoll CCMR1 CC1S LL_TIM_IC_Config\n + * CCMR1 IC1PSC LL_TIM_IC_Config\n + * CCMR1 IC1F LL_TIM_IC_Config\n + * CCMR1 CC2S LL_TIM_IC_Config\n + * CCMR1 IC2PSC LL_TIM_IC_Config\n + * CCMR1 IC2F LL_TIM_IC_Config\n + * CCMR2 CC3S LL_TIM_IC_Config\n + * CCMR2 IC3PSC LL_TIM_IC_Config\n + * CCMR2 IC3F LL_TIM_IC_Config\n + * CCMR2 CC4S LL_TIM_IC_Config\n + * CCMR2 IC4PSC LL_TIM_IC_Config\n + * CCMR2 IC4F LL_TIM_IC_Config\n + * CCER CC1P LL_TIM_IC_Config\n + * CCER CC1NP LL_TIM_IC_Config\n + * CCER CC2P LL_TIM_IC_Config\n + * CCER CC2NP LL_TIM_IC_Config\n + * CCER CC3P LL_TIM_IC_Config\n + * CCER CC3NP LL_TIM_IC_Config\n + * CCER CC4P LL_TIM_IC_Config\n + * CCER CC4NP LL_TIM_IC_Config + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI or @ref LL_TIM_ACTIVEINPUT_INDIRECTTI or @ref LL_TIM_ACTIVEINPUT_TRC + * @arg @ref LL_TIM_ICPSC_DIV1 or ... or @ref LL_TIM_ICPSC_DIV8 + * @arg @ref LL_TIM_IC_FILTER_FDIV1 or ... or @ref LL_TIM_IC_FILTER_FDIV32_N8 + * @arg @ref LL_TIM_IC_POLARITY_RISING or @ref LL_TIM_IC_POLARITY_FALLING or @ref LL_TIM_IC_POLARITY_BOTHEDGE + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), + ((Configuration >> 16U) & (TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S)) \ + << SHIFT_TAB_ICxx[iChannel]); + MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]), + (Configuration & (TIM_CCER_CC1NP | TIM_CCER_CC1P)) << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Set the active input. + * @rmtoll CCMR1 CC1S LL_TIM_IC_SetActiveInput\n + * CCMR1 CC2S LL_TIM_IC_SetActiveInput\n + * CCMR2 CC3S LL_TIM_IC_SetActiveInput\n + * CCMR2 CC4S LL_TIM_IC_SetActiveInput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICActiveInput This parameter can be one of the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_INDIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_TRC + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetActiveInput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICActiveInput) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the current active input. + * @rmtoll CCMR1 CC1S LL_TIM_IC_GetActiveInput\n + * CCMR1 CC2S LL_TIM_IC_GetActiveInput\n + * CCMR2 CC3S LL_TIM_IC_GetActiveInput\n + * CCMR2 CC4S LL_TIM_IC_GetActiveInput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_INDIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_TRC + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetActiveInput(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the prescaler of input channel. + * @rmtoll CCMR1 IC1PSC LL_TIM_IC_SetPrescaler\n + * CCMR1 IC2PSC LL_TIM_IC_SetPrescaler\n + * CCMR2 IC3PSC LL_TIM_IC_SetPrescaler\n + * CCMR2 IC4PSC LL_TIM_IC_SetPrescaler + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPrescaler) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel]), (ICPrescaler >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the current prescaler value acting on an input channel. + * @rmtoll CCMR1 IC1PSC LL_TIM_IC_GetPrescaler\n + * CCMR1 IC2PSC LL_TIM_IC_GetPrescaler\n + * CCMR2 IC3PSC LL_TIM_IC_GetPrescaler\n + * CCMR2 IC4PSC LL_TIM_IC_GetPrescaler + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetPrescaler(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the input filter duration. + * @rmtoll CCMR1 IC1F LL_TIM_IC_SetFilter\n + * CCMR1 IC2F LL_TIM_IC_SetFilter\n + * CCMR2 IC3F LL_TIM_IC_SetFilter\n + * CCMR2 IC4F LL_TIM_IC_SetFilter + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_IC_FILTER_FDIV1 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetFilter(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICFilter) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel]), (ICFilter >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the input filter duration. + * @rmtoll CCMR1 IC1F LL_TIM_IC_GetFilter\n + * CCMR1 IC2F LL_TIM_IC_GetFilter\n + * CCMR2 IC3F LL_TIM_IC_GetFilter\n + * CCMR2 IC4F LL_TIM_IC_GetFilter + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_IC_FILTER_FDIV1 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N8 + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetFilter(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the input channel polarity. + * @rmtoll CCER CC1P LL_TIM_IC_SetPolarity\n + * CCER CC1NP LL_TIM_IC_SetPolarity\n + * CCER CC2P LL_TIM_IC_SetPolarity\n + * CCER CC2NP LL_TIM_IC_SetPolarity\n + * CCER CC3P LL_TIM_IC_SetPolarity\n + * CCER CC3NP LL_TIM_IC_SetPolarity\n + * CCER CC4P LL_TIM_IC_SetPolarity\n + * CCER CC4NP LL_TIM_IC_SetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_IC_POLARITY_RISING + * @arg @ref LL_TIM_IC_POLARITY_FALLING + * @arg @ref LL_TIM_IC_POLARITY_BOTHEDGE + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPolarity) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]), + ICPolarity << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Get the current input channel polarity. + * @rmtoll CCER CC1P LL_TIM_IC_GetPolarity\n + * CCER CC1NP LL_TIM_IC_GetPolarity\n + * CCER CC2P LL_TIM_IC_GetPolarity\n + * CCER CC2NP LL_TIM_IC_GetPolarity\n + * CCER CC3P LL_TIM_IC_GetPolarity\n + * CCER CC3NP LL_TIM_IC_GetPolarity\n + * CCER CC4P LL_TIM_IC_GetPolarity\n + * CCER CC4NP LL_TIM_IC_GetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_IC_POLARITY_RISING + * @arg @ref LL_TIM_IC_POLARITY_FALLING + * @arg @ref LL_TIM_IC_POLARITY_BOTHEDGE + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel])) >> + SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Connect the TIMx_CH1, CH2 and CH3 pins to the TI1 input (XOR combination). + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_EnableXORCombination + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_EnableXORCombination(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR2, TIM_CR2_TI1S); +} + +/** + * @brief Disconnect the TIMx_CH1, CH2 and CH3 pins from the TI1 input. + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_DisableXORCombination + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_DisableXORCombination(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR2, TIM_CR2_TI1S); +} + +/** + * @brief Indicates whether the TIMx_CH1, CH2 and CH3 pins are connectected to the TI1 input. + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_IsEnabledXORCombination + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IC_IsEnabledXORCombination(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR2, TIM_CR2_TI1S) == (TIM_CR2_TI1S)) ? 1UL : 0UL); +} + +/** + * @brief Get captured value for input channel 1. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * input channel 1 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR1 CCR1 LL_TIM_IC_GetCaptureCH1 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH1(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR1)); +} + +/** + * @brief Get captured value for input channel 2. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * input channel 2 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR2 CCR2 LL_TIM_IC_GetCaptureCH2 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH2(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR2)); +} + +/** + * @brief Get captured value for input channel 3. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * input channel 3 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR3 CCR3 LL_TIM_IC_GetCaptureCH3 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH3(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR3)); +} + +/** + * @brief Get captured value for input channel 4. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * input channel 4 is supported by a timer instance. + * @note If dithering is activated, pay attention to the returned value interpretation. + * @rmtoll CCR4 CCR4 LL_TIM_IC_GetCaptureCH4 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH4(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR4)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Clock_Selection Counter clock selection + * @{ + */ +/** + * @brief Enable external clock mode 2. + * @note When external clock mode 2 is enabled the counter is clocked by any active edge on the ETRF signal. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_EnableExternalClock + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableExternalClock(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_ECE); +} + +/** + * @brief Disable external clock mode 2. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_DisableExternalClock + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableExternalClock(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_ECE); +} + +/** + * @brief Indicate whether external clock mode 2 is enabled. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_IsEnabledExternalClock + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledExternalClock(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_ECE) == (TIM_SMCR_ECE)) ? 1UL : 0UL); +} + +/** + * @brief Set the clock source of the counter clock. + * @note when selected clock source is external clock mode 1, the timer input + * the external clock is applied is selected by calling the @ref LL_TIM_SetTriggerInput() + * function. This timer input must be configured by calling + * the @ref LL_TIM_IC_Config() function. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode1. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR SMS LL_TIM_SetClockSource\n + * SMCR ECE LL_TIM_SetClockSource + * @param TIMx Timer instance + * @param ClockSource This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKSOURCE_INTERNAL + * @arg @ref LL_TIM_CLOCKSOURCE_EXT_MODE1 + * @arg @ref LL_TIM_CLOCKSOURCE_EXT_MODE2 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetClockSource(TIM_TypeDef *TIMx, uint32_t ClockSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS | TIM_SMCR_ECE, ClockSource); +} + +/** + * @brief Set the encoder interface mode. + * @note Macro IS_TIM_ENCODER_INTERFACE_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the encoder mode. + * @rmtoll SMCR SMS LL_TIM_SetEncoderMode + * @param TIMx Timer instance + * @param EncoderMode This parameter can be one of the following values: + * @arg @ref LL_TIM_ENCODERMODE_X2_TI1 + * @arg @ref LL_TIM_ENCODERMODE_X2_TI2 + * @arg @ref LL_TIM_ENCODERMODE_X4_TI12 + * @arg @ref LL_TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X2 + * @arg @ref LL_TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X1 + * @arg @ref LL_TIM_ENCODERMODE_DIRECTIONALCLOCK_X2 + * @arg @ref LL_TIM_ENCODERMODE_DIRECTIONALCLOCK_X1_TI12 + * @arg @ref LL_TIM_ENCODERMODE_X1_TI1 + * @arg @ref LL_TIM_ENCODERMODE_X1_TI2 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, EncoderMode); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Timer_Synchronization Timer synchronisation configuration + * @{ + */ +/** + * @brief Set the trigger output (TRGO) used for timer synchronization . + * @note Macro IS_TIM_MASTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance can operate as a master timer. + * @rmtoll CR2 MMS LL_TIM_SetTriggerOutput + * @param TIMx Timer instance + * @param TimerSynchronization This parameter can be one of the following values: + * @arg @ref LL_TIM_TRGO_RESET + * @arg @ref LL_TIM_TRGO_ENABLE + * @arg @ref LL_TIM_TRGO_UPDATE + * @arg @ref LL_TIM_TRGO_CC1IF + * @arg @ref LL_TIM_TRGO_OC1REF + * @arg @ref LL_TIM_TRGO_OC2REF + * @arg @ref LL_TIM_TRGO_OC3REF + * @arg @ref LL_TIM_TRGO_OC4REF + * @arg @ref LL_TIM_TRGO_ENCODERCLK + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerOutput(TIM_TypeDef *TIMx, uint32_t TimerSynchronization) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_MMS, TimerSynchronization); +} + +/** + * @brief Set the trigger output 2 (TRGO2) used for ADC synchronization . + * @note Macro IS_TIM_TRGO2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance can be used for ADC synchronization. + * @rmtoll CR2 MMS2 LL_TIM_SetTriggerOutput2 + * @param TIMx Timer Instance + * @param ADCSynchronization This parameter can be one of the following values: + * @arg @ref LL_TIM_TRGO2_RESET + * @arg @ref LL_TIM_TRGO2_ENABLE + * @arg @ref LL_TIM_TRGO2_UPDATE + * @arg @ref LL_TIM_TRGO2_CC1F + * @arg @ref LL_TIM_TRGO2_OC1 + * @arg @ref LL_TIM_TRGO2_OC2 + * @arg @ref LL_TIM_TRGO2_OC3 + * @arg @ref LL_TIM_TRGO2_OC4 + * @arg @ref LL_TIM_TRGO2_OC5 + * @arg @ref LL_TIM_TRGO2_OC6 + * @arg @ref LL_TIM_TRGO2_OC4_RISINGFALLING + * @arg @ref LL_TIM_TRGO2_OC6_RISINGFALLING + * @arg @ref LL_TIM_TRGO2_OC4_RISING_OC6_RISING + * @arg @ref LL_TIM_TRGO2_OC4_RISING_OC6_FALLING + * @arg @ref LL_TIM_TRGO2_OC5_RISING_OC6_RISING + * @arg @ref LL_TIM_TRGO2_OC5_RISING_OC6_FALLING + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerOutput2(TIM_TypeDef *TIMx, uint32_t ADCSynchronization) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_MMS2, ADCSynchronization); +} + +/** + * @brief Set the synchronization mode of a slave timer. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR SMS LL_TIM_SetSlaveMode + * @param TIMx Timer instance + * @param SlaveMode This parameter can be one of the following values: + * @arg @ref LL_TIM_SLAVEMODE_DISABLED + * @arg @ref LL_TIM_SLAVEMODE_RESET + * @arg @ref LL_TIM_SLAVEMODE_GATED + * @arg @ref LL_TIM_SLAVEMODE_TRIGGER + * @arg @ref LL_TIM_SLAVEMODE_COMBINED_RESETTRIGGER + * @arg @ref LL_TIM_SLAVEMODE_COMBINED_GATEDRESET + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetSlaveMode(TIM_TypeDef *TIMx, uint32_t SlaveMode) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, SlaveMode); +} + +/** + * @brief Set the selects the trigger input to be used to synchronize the counter. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR TS LL_TIM_SetTriggerInput + * @param TIMx Timer instance + * @param TriggerInput This parameter can be one of the following values: + * @arg @ref LL_TIM_TS_ITR0 + * @arg @ref LL_TIM_TS_ITR1 + * @arg @ref LL_TIM_TS_ITR2 + * @arg @ref LL_TIM_TS_ITR3 + * @arg @ref LL_TIM_TS_ITR4 + * @arg @ref LL_TIM_TS_ITR5 + * @arg @ref LL_TIM_TS_ITR6 + * @arg @ref LL_TIM_TS_ITR7 + * @arg @ref LL_TIM_TS_ITR8 + * @arg @ref LL_TIM_TS_ITR9 + * @arg @ref LL_TIM_TS_ITR10 + * @arg @ref LL_TIM_TS_ITR11 + * @arg @ref LL_TIM_TS_TI1F_ED + * @arg @ref LL_TIM_TS_TI1FP1 + * @arg @ref LL_TIM_TS_TI2FP2 + * @arg @ref LL_TIM_TS_ETRF + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerInput(TIM_TypeDef *TIMx, uint32_t TriggerInput) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_TS, TriggerInput); +} + +/** + * @brief Enable the Master/Slave mode. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_EnableMasterSlaveMode + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableMasterSlaveMode(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_MSM); +} + +/** + * @brief Disable the Master/Slave mode. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_DisableMasterSlaveMode + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableMasterSlaveMode(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_MSM); +} + +/** + * @brief Indicates whether the Master/Slave mode is enabled. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_IsEnabledMasterSlaveMode + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledMasterSlaveMode(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_MSM) == (TIM_SMCR_MSM)) ? 1UL : 0UL); +} + +/** + * @brief Configure the external trigger (ETR) input. + * @note Macro IS_TIM_ETR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an external trigger input. + * @rmtoll SMCR ETP LL_TIM_ConfigETR\n + * SMCR ETPS LL_TIM_ConfigETR\n + * SMCR ETF LL_TIM_ConfigETR + * @param TIMx Timer instance + * @param ETRPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_POLARITY_NONINVERTED + * @arg @ref LL_TIM_ETR_POLARITY_INVERTED + * @param ETRPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_PRESCALER_DIV1 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV2 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV4 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV8 + * @param ETRFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_FILTER_FDIV1 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler, + uint32_t ETRFilter) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_ETP | TIM_SMCR_ETPS | TIM_SMCR_ETF, ETRPolarity | ETRPrescaler | ETRFilter); +} + +/** + * @brief Select the external trigger (ETR) input source. + * @note Macro IS_TIM_ETRSEL_INSTANCE(TIMx) can be used to check whether or + * not a timer instance supports ETR source selection. + * @rmtoll AF1 ETRSEL LL_TIM_SetETRSource + * @param TIMx Timer instance + * @param ETRSource This parameter can be one of the following values: + * + * TIM1: any combination of ETR_RMP where + * + * @arg @ref LL_TIM_TIM1_ETRSOURCE_GPIO + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP1 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP2 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP3 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP4 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM1_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM1_ETRSOURCE_ADC1_AWD1 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_ADC1_AWD2 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_ADC1_AWD3 + * @arg @ref LL_TIM_TIM1_ETRSOURCE_ADC4_AWD1 (*) + * @arg @ref LL_TIM_TIM1_ETRSOURCE_ADC4_AWD2 (*) + * @arg @ref LL_TIM_TIM1_ETRSOURCE_ADC4_AWD3 (*) + * + * TIM2: any combination of ETR_RMP where + * + * @arg @ref LL_TIM_TIM2_ETRSOURCE_GPIO + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP1 + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP2 + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP3 + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP4 + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM2_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM2_ETRSOURCE_TIM3_ETR + * @arg @ref LL_TIM_TIM2_ETRSOURCE_TIM4_ETR + * @arg @ref LL_TIM_TIM2_ETRSOURCE_TIM5_ETR (*) + * @arg @ref LL_TIM_TIM2_ETRSOURCE_LSE + * + * TIM3: any combination of ETR_RMP where + * + * @arg @ref LL_TIM_TIM3_ETRSOURCE_GPIO + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP1 + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP2 + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP3 + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP4 + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM3_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM3_ETRSOURCE_TIM2_ETR + * @arg @ref LL_TIM_TIM3_ETRSOURCE_TIM4_ETR + * @arg @ref LL_TIM_TIM3_ETRSOURCE_ADC2_AWD1 + * @arg @ref LL_TIM_TIM3_ETRSOURCE_ADC2_AWD2 + * @arg @ref LL_TIM_TIM3_ETRSOURCE_ADC2_AWD3 + * + * TIM4: any combination of ETR_RMP where + * + * @arg @ref LL_TIM_TIM4_ETRSOURCE_GPIO + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP1 + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP2 + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP3 + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP4 + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM4_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM4_ETRSOURCE_TIM3_ETR + * @arg @ref LL_TIM_TIM4_ETRSOURCE_TIM5_ETR (*) + * + * TIM5: any combination of ETR_RMP where (**) + * + * @arg @ref LL_TIM_TIM5_ETRSOURCE_GPIO (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP1 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP2 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP3 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP4 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_TIM2_ETR (*) + * @arg @ref LL_TIM_TIM5_ETRSOURCE_TIM3_ETR (*) + * + * TIM8: any combination of ETR_RMP where + * + * . . ETR_RMP can be one of the following values + * @arg @ref LL_TIM_TIM8_ETRSOURCE_GPIO + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP1 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP2 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP3 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP4 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM8_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM8_ETRSOURCE_ADC2_AWD1 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_ADC2_AWD2 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_ADC2_AWD3 + * @arg @ref LL_TIM_TIM8_ETRSOURCE_ADC3_AWD1 (*) + * @arg @ref LL_TIM_TIM8_ETRSOURCE_ADC3_AWD2 (*) + * @arg @ref LL_TIM_TIM8_ETRSOURCE_ADC3_AWD3 (*) + * + * TIM20: any combination of ETR_RMP where (**) + * + * . . ETR_RMP can be one of the following values + * @arg @ref LL_TIM_TIM20_ETRSOURCE_GPIO (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP1 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP2 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP3 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP4 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP5 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP6 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_COMP7 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_ADC3_AWD1 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_ADC3_AWD2 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_ADC3_AWD3 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_ADC5_AWD1 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_ADC5_AWD2 (*) + * @arg @ref LL_TIM_TIM20_ETRSOURCE_ADC5_AWD3 (*) + * + * (*) Value not defined in all devices. \n + * (**) Register not available in all devices. + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetETRSource(TIM_TypeDef *TIMx, uint32_t ETRSource) +{ + MODIFY_REG(TIMx->AF1, TIMx_AF1_ETRSEL, ETRSource); +} + +/** + * @brief Enable SMS preload. + * @note Macro IS_TIM_SMS_PRELOAD_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the preload of SMS field in SMCR register. + * @rmtoll SMCR SMSPE LL_TIM_EnableSMSPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableSMSPreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_SMSPE); +} + +/** + * @brief Disable SMS preload. + * @note Macro IS_TIM_SMS_PRELOAD_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the preload of SMS field in SMCR register. + * @rmtoll SMCR SMSPE LL_TIM_DisableSMSPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableSMSPreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_SMSPE); +} + +/** + * @brief Indicate whether SMS preload is enabled. + * @note Macro IS_TIM_SMS_PRELOAD_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the preload of SMS field in SMCR register. + * @rmtoll SMCR SMSPE LL_TIM_IsEnabledSMSPreload + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledSMSPreload(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_SMSPE) == (TIM_SMCR_SMSPE)) ? 1UL : 0UL); +} + +/** + * @brief Set the preload source of SMS. + * @note Macro IS_TIM_SMS_PRELOAD_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the preload of SMS field in SMCR register. + * @rmtoll SMCR SMSPS LL_TIM_SetSMSPreloadSource\n + * @param TIMx Timer instance + * @param PreloadSource This parameter can be one of the following values: + * @arg @ref LL_TIM_SMSPS_TIMUPDATE + * @arg @ref LL_TIM_SMSPS_INDEX + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetSMSPreloadSource(TIM_TypeDef *TIMx, uint32_t PreloadSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMSPS, PreloadSource); +} + +/** + * @brief Get the preload source of SMS. + * @note Macro IS_TIM_SMS_PRELOAD_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the preload of SMS field in SMCR register. + * @rmtoll SMCR SMSPS LL_TIM_GetSMSPreloadSource\n + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_SMSPS_TIMUPDATE + * @arg @ref LL_TIM_SMSPS_INDEX + */ +__STATIC_INLINE uint32_t LL_TIM_GetSMSPreloadSource(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->SMCR, TIM_SMCR_SMSPS)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Break_Function Break function configuration + * @{ + */ +/** + * @brief Enable the break function. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR BKE LL_TIM_EnableBRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableBRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_BKE); +} + +/** + * @brief Disable the break function. + * @rmtoll BDTR BKE LL_TIM_DisableBRK + * @param TIMx Timer instance + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableBRK(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BKE); +} + +/** + * @brief Configure the break input. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @note Bidirectional mode is only supported by advanced timer instances. + * Macro IS_TIM_ADVANCED_INSTANCE(TIMx) can be used to check whether or not + * a timer instance is an advanced-control timer. + * @note In bidirectional mode (BKBID bit set), the Break input is configured both + * in input mode and in open drain output mode. Any active Break event will + * assert a low logic level on the Break input to indicate an internal break + * event to external devices. + * @note When bidirectional mode isn't supported, BreakAFMode must be set to + * LL_TIM_BREAK_AFMODE_INPUT. + * @rmtoll BDTR BKP LL_TIM_ConfigBRK\n + * BDTR BKF LL_TIM_ConfigBRK\n + * BDTR BKBID LL_TIM_ConfigBRK + * @param TIMx Timer instance + * @param BreakPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_POLARITY_LOW + * @arg @ref LL_TIM_BREAK_POLARITY_HIGH + * @param BreakFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N8 + * @param BreakAFMode This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_AFMODE_INPUT + * @arg @ref LL_TIM_BREAK_AFMODE_BIDIRECTIONAL + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity, uint32_t BreakFilter, + uint32_t BreakAFMode) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP | TIM_BDTR_BKF | TIM_BDTR_BKBID, BreakPolarity | BreakFilter | BreakAFMode); +} + +/** + * @brief Disarm the break input (when it operates in bidirectional mode). + * @note The break input can be disarmed only when it is configured in + * bidirectional mode and when when MOE is reset. + * @note Purpose is to be able to have the input voltage back to high-state, + * whatever the time constant on the output . + * @rmtoll BDTR BKDSRM LL_TIM_DisarmBRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisarmBRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_BKDSRM); +} + +/** + * @brief Enable the break 2 function. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @rmtoll BDTR BK2E LL_TIM_EnableBRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableBRK2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_BK2E); +} + +/** + * @brief Disable the break 2 function. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @rmtoll BDTR BK2E LL_TIM_DisableBRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableBRK2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BK2E); +} + +/** + * @brief Configure the break 2 input. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @note Bidirectional mode is only supported by advanced timer instances. + * Macro IS_TIM_ADVANCED_INSTANCE(TIMx) can be used to check whether or not + * a timer instance is an advanced-control timer. + * @note In bidirectional mode (BK2BID bit set), the Break 2 input is configured both + * in input mode and in open drain output mode. Any active Break event will + * assert a low logic level on the Break 2 input to indicate an internal break + * event to external devices. + * @note When bidirectional mode isn't supported, Break2AFMode must be set to + * LL_TIM_BREAK2_AFMODE_INPUT. + * @rmtoll BDTR BK2P LL_TIM_ConfigBRK2\n + * BDTR BK2F LL_TIM_ConfigBRK2\n + * BDTR BK2BID LL_TIM_ConfigBRK2 + * @param TIMx Timer instance + * @param Break2Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_POLARITY_LOW + * @arg @ref LL_TIM_BREAK2_POLARITY_HIGH + * @param Break2Filter This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N8 + * @param Break2AFMode This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_AFMODE_INPUT + * @arg @ref LL_TIM_BREAK2_AFMODE_BIDIRECTIONAL + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK2(TIM_TypeDef *TIMx, uint32_t Break2Polarity, uint32_t Break2Filter, + uint32_t Break2AFMode) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BK2P | TIM_BDTR_BK2F | TIM_BDTR_BK2BID, Break2Polarity | Break2Filter | Break2AFMode); +} + +/** + * @brief Disarm the break 2 input (when it operates in bidirectional mode). + * @note The break 2 input can be disarmed only when it is configured in + * bidirectional mode and when when MOE is reset. + * @note Purpose is to be able to have the input voltage back to high-state, + * whatever the time constant on the output. + * @rmtoll BDTR BK2DSRM LL_TIM_DisarmBRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisarmBRK2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_BK2DSRM); +} + +/** + * @brief Select the outputs off state (enabled v.s. disabled) in Idle and Run modes. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR OSSI LL_TIM_SetOffStates\n + * BDTR OSSR LL_TIM_SetOffStates + * @param TIMx Timer instance + * @param OffStateIdle This parameter can be one of the following values: + * @arg @ref LL_TIM_OSSI_DISABLE + * @arg @ref LL_TIM_OSSI_ENABLE + * @param OffStateRun This parameter can be one of the following values: + * @arg @ref LL_TIM_OSSR_DISABLE + * @arg @ref LL_TIM_OSSR_ENABLE + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOffStates(TIM_TypeDef *TIMx, uint32_t OffStateIdle, uint32_t OffStateRun) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_OSSI | TIM_BDTR_OSSR, OffStateIdle | OffStateRun); +} + +/** + * @brief Enable automatic output (MOE can be set by software or automatically when a break input is active). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR AOE LL_TIM_EnableAutomaticOutput + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableAutomaticOutput(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_AOE); +} + +/** + * @brief Disable automatic output (MOE can be set only by software). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR AOE LL_TIM_DisableAutomaticOutput + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableAutomaticOutput(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_AOE); +} + +/** + * @brief Indicate whether automatic output is enabled. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR AOE LL_TIM_IsEnabledAutomaticOutput + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledAutomaticOutput(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->BDTR, TIM_BDTR_AOE) == (TIM_BDTR_AOE)) ? 1UL : 0UL); +} + +/** + * @brief Enable the outputs (set the MOE bit in TIMx_BDTR register). + * @note The MOE bit in TIMx_BDTR register allows to enable /disable the outputs by + * software and is reset in case of break or break2 event + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR MOE LL_TIM_EnableAllOutputs + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableAllOutputs(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_MOE); +} + +/** + * @brief Disable the outputs (reset the MOE bit in TIMx_BDTR register). + * @note The MOE bit in TIMx_BDTR register allows to enable /disable the outputs by + * software and is reset in case of break or break2 event. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR MOE LL_TIM_DisableAllOutputs + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableAllOutputs(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_MOE); +} + +/** + * @brief Indicates whether outputs are enabled. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR MOE LL_TIM_IsEnabledAllOutputs + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledAllOutputs(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->BDTR, TIM_BDTR_MOE) == (TIM_BDTR_MOE)) ? 1UL : 0UL); +} + +/** + * @brief Enable the signals connected to the designated timer break input. + * @note Macro IS_TIM_BREAKSOURCE_INSTANCE(TIMx) can be used to check whether + * or not a timer instance allows for break input selection. + * @rmtoll AF1 BKINE LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP1E LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP2E LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP3E LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP4E LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP5E LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP6E LL_TIM_EnableBreakInputSource\n + * AF1 BKCMP7E LL_TIM_EnableBreakInputSource\n + * AF2 BK2NE LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP1E LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP2E LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP3E LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP4E LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP5E LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP6E LL_TIM_EnableBreakInputSource\n + * AF2 BK2CMP7E LL_TIM_EnableBreakInputSource + * @param TIMx Timer instance + * @param BreakInput This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_INPUT_BKIN + * @arg @ref LL_TIM_BREAK_INPUT_BKIN2 + * @param Source This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_SOURCE_BKIN + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP1 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP2 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP3 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP4 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP5 (*) + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP6 (*) + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP7 (*) + * + * (*) Value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableBreakInputSource(TIM_TypeDef *TIMx, uint32_t BreakInput, uint32_t Source) +{ + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->AF1) + BreakInput)); + SET_BIT(*pReg, Source); +} + +/** + * @brief Disable the signals connected to the designated timer break input. + * @note Macro IS_TIM_BREAKSOURCE_INSTANCE(TIMx) can be used to check whether + * or not a timer instance allows for break input selection. + * @rmtoll AF1 BKINE LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP1E LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP2E LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP3E LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP4E LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP5E LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP6E LL_TIM_DisableBreakInputSource\n + * AF1 BKCMP7E LL_TIM_DisableBreakInputSource\n + * AF2 BK2INE LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP1E LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP2E LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP3E LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP4E LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP5E LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP6E LL_TIM_DisableBreakInputSource\n + * AF2 BK2CMP7E LL_TIM_DisableBreakInputSource + * @param TIMx Timer instance + * @param BreakInput This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_INPUT_BKIN + * @arg @ref LL_TIM_BREAK_INPUT_BKIN2 + * @param Source This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_SOURCE_BKIN + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP1 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP2 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP3 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP4 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP5 (*) + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP6 (*) + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP7 (*) + * + * (*) Value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableBreakInputSource(TIM_TypeDef *TIMx, uint32_t BreakInput, uint32_t Source) +{ + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->AF1) + BreakInput)); + CLEAR_BIT(*pReg, Source); +} + +/** + * @brief Set the polarity of the break signal for the timer break input. + * @note Macro IS_TIM_BREAKSOURCE_INSTANCE(TIMx) can be used to check whether + * or not a timer instance allows for break input selection. + * @rmtoll AF1 BKINP LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP1P LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP2P LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP3P LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP4P LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP5P LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP6P LL_TIM_SetBreakInputSourcePolarity\n + * AF1 BKCMP7P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2INP LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP1P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP2P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP3P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP4P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP5P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP6P LL_TIM_SetBreakInputSourcePolarity\n + * AF2 BK2CMP7P LL_TIM_SetBreakInputSourcePolarity + * @param TIMx Timer instance + * @param BreakInput This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_INPUT_BKIN + * @arg @ref LL_TIM_BREAK_INPUT_BKIN2 + * @param Source This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_SOURCE_BKIN + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP1 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP2 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP3 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP4 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP5 (*) + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP6 (*) + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP7 (*) + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_POLARITY_LOW + * @arg @ref LL_TIM_BKIN_POLARITY_HIGH + * + * (*) Value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetBreakInputSourcePolarity(TIM_TypeDef *TIMx, uint32_t BreakInput, uint32_t Source, + uint32_t Polarity) +{ + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->AF1) + BreakInput)); + MODIFY_REG(*pReg, (TIMx_AF1_BKINP << TIM_POSITION_BRK_SOURCE), (Polarity << TIM_POSITION_BRK_SOURCE)); +} +/** + * @brief Enable asymmetrical deadtime. + * @note Macro IS_TIM_DEADTIME_ASYMMETRICAL_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides asymmetrical deadtime. + * @rmtoll DTR2 DTAE LL_TIM_EnableAsymmetricalDeadTime + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableAsymmetricalDeadTime(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DTR2, TIM_DTR2_DTAE); +} + +/** + * @brief Disable asymmetrical dead-time. + * @note Macro IS_TIM_DEADTIME_ASYMMETRICAL_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides asymmetrical deadtime. + * @rmtoll DTR2 DTAE LL_TIM_DisableAsymmetricalDeadTime + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableAsymmetricalDeadTime(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DTR2, TIM_DTR2_DTAE); +} + +/** + * @brief Indicates whether asymmetrical deadtime is activated. + * @note Macro IS_TIM_DEADTIME_ASYMMETRICAL_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides asymmetrical deadtime. + * @rmtoll DTR2 DTAE LL_TIM_IsEnabledAsymmetricalDeadTime + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledAsymmetricalDeadTime(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DTR2, TIM_DTR2_DTAE) == (TIM_DTR2_DTAE)) ? 1UL : 0UL); +} + +/** + * @brief Set the falling edge dead-time delay (delay inserted between the falling edge of the OCxREF signal and the + * rising edge of OCxN signals). + * @note Macro IS_TIM_DEADTIME_ASYMMETRICAL_INSTANCE(TIMx) can be used to check whether or not + * asymmetrical dead-time insertion feature is supported by a timer instance. + * @note Helper macro @ref __LL_TIM_CALC_DEADTIME can be used to calculate the DeadTime parameter + * @note This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed + * (LOCK bits in TIMx_BDTR register). + * @rmtoll DTR2 DTGF LL_TIM_SetFallingDeadTime + * @param TIMx Timer instance + * @param DeadTime between Min_Data=0 and Max_Data=255 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetFallingDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime) +{ + MODIFY_REG(TIMx->DTR2, TIM_DTR2_DTGF, DeadTime); +} + +/** + * @brief Get the falling edge dead-time delay (delay inserted between the falling edge of the OCxREF signal and + * the rising edge of OCxN signals). + * @note Macro IS_TIM_DEADTIME_ASYMMETRICAL_INSTANCE(TIMx) can be used to check whether or not + * asymmetrical dead-time insertion feature is supported by a timer instance. + * @note This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed + * (LOCK bits in TIMx_BDTR register). + * @rmtoll DTR2 DTGF LL_TIM_GetFallingDeadTime + * @param TIMx Timer instance + * @retval Returned value can be between Min_Data=0 and Max_Data=255: + */ +__STATIC_INLINE uint32_t LL_TIM_GetFallingDeadTime(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->DTR2, TIM_DTR2_DTGF)); +} + +/** + * @brief Enable deadtime preload. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides deadtime preload. + * @rmtoll DTR2 DTPE LL_TIM_EnableDeadTimePreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDeadTimePreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DTR2, TIM_DTR2_DTPE); +} + +/** + * @brief Disable dead-time preload. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides deadtime preload. + * @rmtoll DTR2 DTPE LL_TIM_DisableDeadTimePreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDeadTimePreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DTR2, TIM_DTR2_DTPE); +} + +/** + * @brief Indicates whether deadtime preload is activated. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides deadtime preload. + * @rmtoll DTR2 DTPE LL_TIM_IsEnabledDeadTimePreload + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDeadTimePreload(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DTR2, TIM_DTR2_DTPE) == (TIM_DTR2_DTPE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_DMA_Burst_Mode DMA burst mode configuration + * @{ + */ +/** + * @brief Configures the timer DMA burst feature. + * @note Macro IS_TIM_DMABURST_INSTANCE(TIMx) can be used to check whether or + * not a timer instance supports the DMA burst mode. + * @rmtoll DCR DBL LL_TIM_ConfigDMABurst\n + * DCR DBA LL_TIM_ConfigDMABurst + * @param TIMx Timer instance + * @param DMABurstBaseAddress This parameter can be one of the following values: + * @arg @ref LL_TIM_DMABURST_BASEADDR_CR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_SMCR + * @arg @ref LL_TIM_DMABURST_BASEADDR_DIER + * @arg @ref LL_TIM_DMABURST_BASEADDR_SR + * @arg @ref LL_TIM_DMABURST_BASEADDR_EGR + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCER + * @arg @ref LL_TIM_DMABURST_BASEADDR_CNT + * @arg @ref LL_TIM_DMABURST_BASEADDR_PSC + * @arg @ref LL_TIM_DMABURST_BASEADDR_ARR + * @arg @ref LL_TIM_DMABURST_BASEADDR_RCR + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR3 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR4 + * @arg @ref LL_TIM_DMABURST_BASEADDR_BDTR + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR3 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR5 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR6 + * @arg @ref LL_TIM_DMABURST_BASEADDR_DTR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_ECR + * @arg @ref LL_TIM_DMABURST_BASEADDR_TISEL + * @arg @ref LL_TIM_DMABURST_BASEADDR_AF1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_AF2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_OR + * @param DMABurstLength This parameter can be one of the following values: + * @arg @ref LL_TIM_DMABURST_LENGTH_1TRANSFER + * @arg @ref LL_TIM_DMABURST_LENGTH_2TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_3TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_4TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_5TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_6TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_7TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_8TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_9TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_10TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_11TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_12TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_13TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_14TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_15TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_16TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_17TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_18TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_19TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_20TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_21TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_22TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_23TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_24TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_25TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_26TRANSFERS + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigDMABurst(TIM_TypeDef *TIMx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength) +{ + MODIFY_REG(TIMx->DCR, (TIM_DCR_DBL | TIM_DCR_DBA), (DMABurstBaseAddress | DMABurstLength)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Encoder Encoder configuration + * @{ + */ + +/** + * @brief Enable encoder index. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IE LL_TIM_EnableEncoderIndex + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableEncoderIndex(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->ECR, TIM_ECR_IE); +} + +/** + * @brief Disable encoder index. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IE LL_TIM_DisableEncoderIndex + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableEncoderIndex(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->ECR, TIM_ECR_IE); +} + +/** + * @brief Indicate whether encoder index is enabled. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IE LL_TIM_IsEnabledEncoderIndex + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledEncoderIndex(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->ECR, TIM_ECR_IE) == (TIM_ECR_IE)) ? 1U : 0U); +} + +/** + * @brief Set index direction + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IDIR LL_TIM_SetIndexDirection + * @param TIMx Timer instance + * @param IndexDirection This parameter can be one of the following values: + * @arg @ref LL_TIM_INDEX_UP_DOWN + * @arg @ref LL_TIM_INDEX_UP + * @arg @ref LL_TIM_INDEX_DOWN + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetIndexDirection(TIM_TypeDef *TIMx, uint32_t IndexDirection) +{ + MODIFY_REG(TIMx->ECR, TIM_ECR_IDIR, IndexDirection); +} + +/** + * @brief Get actual index direction + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IDIR LL_TIM_GetIndexDirection + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_INDEX_UP_DOWN + * @arg @ref LL_TIM_INDEX_UP + * @arg @ref LL_TIM_INDEX_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetIndexDirection(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->ECR, TIM_ECR_IDIR)); +} + +/** + * @brief Enable first index. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR FIDX LL_TIM_EnableFirstIndex + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableFirstIndex(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->ECR, TIM_ECR_FIDX); +} + +/** + * @brief Disable first index. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR FIDX LL_TIM_DisableFirstIndex + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableFirstIndex(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->ECR, TIM_ECR_FIDX); +} + +/** + * @brief Indicates whether first index is enabled. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR FIDX LL_TIM_IsEnabledFirstIndex + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledFirstIndex(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->ECR, TIM_ECR_FIDX) == (TIM_ECR_FIDX)) ? 1UL : 0UL); +} + +/** + * @brief Set index positioning + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IPOS LL_TIM_SetIndexPositionning + * @param TIMx Timer instance + * @param IndexPositionning This parameter can be one of the following values: + * @arg @ref LL_TIM_INDEX_POSITION_DOWN_DOWN + * @arg @ref LL_TIM_INDEX_POSITION_DOWN_UP + * @arg @ref LL_TIM_INDEX_POSITION_UP_DOWN + * @arg @ref LL_TIM_INDEX_POSITION_UP_UP + * @arg @ref LL_TIM_INDEX_POSITION_DOWN + * @arg @ref LL_TIM_INDEX_POSITION_UP + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetIndexPositionning(TIM_TypeDef *TIMx, uint32_t IndexPositionning) +{ + MODIFY_REG(TIMx->ECR, TIM_ECR_IPOS, IndexPositionning); +} + +/** + * @brief Get actual index positioning + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IPOS LL_TIM_GetIndexPositionning + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_INDEX_POSITION_DOWN_DOWN + * @arg @ref LL_TIM_INDEX_POSITION_DOWN_UP + * @arg @ref LL_TIM_INDEX_POSITION_UP_DOWN + * @arg @ref LL_TIM_INDEX_POSITION_UP_UP + * @arg @ref LL_TIM_INDEX_POSITION_DOWN + * @arg @ref LL_TIM_INDEX_POSITION_UP + */ +__STATIC_INLINE uint32_t LL_TIM_GetIndexPositionning(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->ECR, TIM_ECR_IPOS)); +} + +/** + * @brief Configure encoder index. + * @note Macro IS_TIM_INDEX_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an index input. + * @rmtoll ECR IDIR LL_TIM_ConfigIDX\n + * ECR FIDX LL_TIM_ConfigIDX\n + * ECR IPOS LL_TIM_ConfigIDX + * @param TIMx Timer instance + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_TIM_INDEX_UP or @ref LL_TIM_INDEX_DOWN or @ref LL_TIM_INDEX_UP_DOWN + * @arg @ref LL_TIM_INDEX_ALL or @ref LL_TIM_INDEX_FIRST_ONLY + * @arg @ref LL_TIM_INDEX_POSITION_DOWN_DOWN or ... or @ref LL_TIM_INDEX_POSITION_UP + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigIDX(TIM_TypeDef *TIMx, uint32_t Configuration) +{ + MODIFY_REG(TIMx->ECR, TIM_ECR_IDIR | TIM_ECR_FIDX | TIM_ECR_IPOS, Configuration); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Timer_Inputs_Remapping Timer input remapping + * @{ + */ +/** + * @brief Remap TIM inputs (input channel, internal/external triggers). + * @note Macro IS_TIM_REMAP_INSTANCE(TIMx) can be used to check whether or not + * a some timer inputs can be remapped. + * @rmtoll TIM1_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM2_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM2_TISEL TI2SEL LL_TIM_SetRemap\n + * TIM2_TISEL TI3SEL LL_TIM_SetRemap\n + * TIM2_TISEL TI4SEL LL_TIM_SetRemap\n + * TIM3_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM3_TISEL TI2SEL LL_TIM_SetRemap\n + * TIM3_TISEL TI3SEL LL_TIM_SetRemap\n + * TIM4_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM4_TISEL TI2SEL LL_TIM_SetRemap\n + * TIM4_TISEL TI3SEL LL_TIM_SetRemap\n + * TIM4_TISEL TI4SEL LL_TIM_SetRemap\n + * TIM5_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM5_TISEL TI2SEL LL_TIM_SetRemap\n + * TIM8_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM15_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM15_TISEL TI2SEL LL_TIM_SetRemap\n + * TIM16_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM17_TISEL TI1SEL LL_TIM_SetRemap\n + * TIM20_TISEL TI1SEL LL_TIM_SetRemap + * @param TIMx Timer instance + * @param Remap Remap param depends on the TIMx. Description available only + * in CHM version of the User Manual (not in .pdf). + * Otherwise see Reference Manual description of TISEL registers. + * + * Below description summarizes "Timer Instance" and "Remap" param combinations: + * + * TIM1: one of the following values + * + * @arg @ref LL_TIM_TIM1_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM1_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM1_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM1_TI1_RMP_COMP3 + * @arg @ref LL_TIM_TIM1_TI1_RMP_COMP4 + * + * TIM2: any combination of TI1_RMP, TI2_RMP, TI3_RMP and TI4_RMP where + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM2_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM2_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM2_TI1_RMP_COMP3 + * @arg @ref LL_TIM_TIM2_TI1_RMP_COMP4 + * @arg @ref LL_TIM_TIM2_TI1_RMP_COMP5 (*) + * + * . . TI2_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_TI2_RMP_GPIO + * @arg @ref LL_TIM_TIM2_TI2_RMP_COMP1 + * @arg @ref LL_TIM_TIM2_TI2_RMP_COMP2 + * @arg @ref LL_TIM_TIM2_TI2_RMP_COMP3 + * @arg @ref LL_TIM_TIM2_TI2_RMP_COMP4 + * @arg @ref LL_TIM_TIM2_TI2_RMP_COMP6 (*) + * + * . . TI3_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_TI3_RMP_GPIO + * @arg @ref LL_TIM_TIM2_TI3_RMP_COMP4 + * + * . . TI4_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_TI4_RMP_GPIO + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP1 + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP2 + * + * TIM3: any combination of TI1_RMP and TI2_RMP where + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM3_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP3 + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP4 + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP7 (*) + * + * . . TI2_RMP can be one of the following values + * @arg @ref LL_TIM_TIM3_TI2_RMP_GPIO + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP1 + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP2 + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP3 + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP4 + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM3_TI2_RMP_COMP7 (*) + * + * . . TI3_RMP can be one of the following values + * @arg @ref LL_TIM_TIM3_TI3_RMP_GPIO + * @arg @ref LL_TIM_TIM3_TI3_RMP_COMP3 + * + * TIM4: any combination of TI1_RMP, TI2_RMP, TI3_RMP and TI4_RMP where + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM4_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP3 + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP4 + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM4_TI1_RMP_COMP7 (*) + * + * . . TI2_RMP can be one of the following values + * @arg @ref LL_TIM_TIM4_TI2_RMP_GPIO + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP1 + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP2 + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP3 + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP4 + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM4_TI2_RMP_COMP7 (*) + * + * . . TI3_RMP can be one of the following values + * @arg @ref LL_TIM_TIM4_TI3_RMP_GPIO + * @arg @ref LL_TIM_TIM4_TI3_RMP_COMP5 (*) + * + * . . TI4_RMP can be one of the following values + * @arg @ref LL_TIM_TIM4_TI4_RMP_GPIO + * @arg @ref LL_TIM_TIM4_TI4_RMP_COMP6 (*) + * + * TIM5: any combination of TI1_RMP and TI2_RMP where (**) + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM5_TI1_RMP_GPIO (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_LSI (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_LSE (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_RTC_WK (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP1 (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP2 (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP3 (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP4 (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM5_TI1_RMP_COMP7 (*) + * + * . . TI2_RMP can be one of the following values + * @arg @ref LL_TIM_TIM5_TI2_RMP_GPIO (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP1 (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP2 (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP3 (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP4 (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM5_TI2_RMP_COMP7 (*) + * + * TIM8: one of the following values + * + * @arg @ref LL_TIM_TIM8_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM8_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM8_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM8_TI1_RMP_COMP3 + * @arg @ref LL_TIM_TIM8_TI1_RMP_COMP4 + * + * TIM15: any combination of TI1_RMP and TI2_RMP where + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM15_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM15_TI1_RMP_LSE + * @arg @ref LL_TIM_TIM15_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM15_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM15_TI1_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM15_TI1_RMP_COMP7 (*) + * + * . . TI2_RMP can be one of the following values + * @arg @ref LL_TIM_TIM15_TI2_RMP_GPIO + * @arg @ref LL_TIM_TIM15_TI2_RMP_COMP2 + * @arg @ref LL_TIM_TIM15_TI2_RMP_COMP3 + * @arg @ref LL_TIM_TIM15_TI2_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM15_TI2_RMP_COMP7 (*) + * + * TIM16: one of the following values + * + * @arg @ref LL_TIM_TIM16_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM16_TI1_RMP_COMP6 (*) + * @arg @ref LL_TIM_TIM16_TI1_RMP_MCO + * @arg @ref LL_TIM_TIM16_TI1_RMP_HSE_32 + * @arg @ref LL_TIM_TIM16_TI1_RMP_RTC_WK + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSE + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSI + * + * TIM17: one of the following values + * + * @arg @ref LL_TIM_TIM17_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM17_TI1_RMP_COMP5 (*) + * @arg @ref LL_TIM_TIM17_TI1_RMP_MCO + * @arg @ref LL_TIM_TIM17_TI1_RMP_HSE_32 + * @arg @ref LL_TIM_TIM17_TI1_RMP_RTC_WK + * @arg @ref LL_TIM_TIM17_TI1_RMP_LSE + * @arg @ref LL_TIM_TIM17_TI1_RMP_LSI + * + * TIM20: one of the following values (**) + * + * @arg @ref LL_TIM_TIM20_TI1_RMP_GPIO (*) + * @arg @ref LL_TIM_TIM20_TI1_RMP_COMP1 (*) + * @arg @ref LL_TIM_TIM20_TI1_RMP_COMP2 (*) + * @arg @ref LL_TIM_TIM20_TI1_RMP_COMP3 (*) + * @arg @ref LL_TIM_TIM20_TI1_RMP_COMP4 (*) + * + * (*) Value not defined in all devices. \n + * (**) Register not available in all devices. + * + * + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetRemap(TIM_TypeDef *TIMx, uint32_t Remap) +{ + MODIFY_REG(TIMx->TISEL, (TIM_TISEL_TI1SEL | TIM_TISEL_TI2SEL | TIM_TISEL_TI3SEL | TIM_TISEL_TI4SEL), Remap); +} + +/** + * @brief Enable request for HSE/32 clock used for TISEL remap. + * @note Only TIM16 and TIM17 support HSE/32 remap + * @rmtoll OR HSE32EN LL_TIM_EnableHSE32 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableHSE32(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->OR, TIM_OR_HSE32EN); +} + +/** + * @brief Disable request for HSE/32 clock used for TISEL remap. + * @note Only TIM16 and TIM17 support HSE/32 remap + * @rmtoll OR HSE32EN LL_TIM_DisableHSE32 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableHSE32(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->OR, TIM_OR_HSE32EN); +} + +/** + * @brief Indicate whether request for HSE/32 clock is enabled. + * @note Only TIM16 and TIM17 support HSE/32 remap + * @rmtoll OR HSE32EN LL_TIM_IsEnabledHSE32 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledHSE32(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->OR, TIM_OR_HSE32EN) == (TIM_OR_HSE32EN)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_OCREF_Clear OCREF_Clear_Management + * @{ + */ +/** + * @brief Set the OCREF clear input source + * @note The OCxREF signal of a given channel can be cleared when a high level is applied on the OCREF_CLR_INPUT + * @note This function can only be used in Output compare and PWM modes. + * @note Macro IS_TIM_OCCS_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can configure OCREF clear input source. + * @rmtoll SMCR OCCS LL_TIM_SetOCRefClearInputSource + * @rmtoll AF2 OCRSEL LL_TIM_SetOCRefClearInputSource + * @param TIMx Timer instance + * @param OCRefClearInputSource This parameter can be one of the following values: + * @arg @ref LL_TIM_OCREF_CLR_INT_ETR + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP1 + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP2 + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP3 + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP4 + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP5 (*) + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP6 (*) + * @arg @ref LL_TIM_OCREF_CLR_INT_COMP7 (*) + * + * (*) Value not defined in all devices. \n + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOCRefClearInputSource(TIM_TypeDef *TIMx, uint32_t OCRefClearInputSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_OCCS, + ((OCRefClearInputSource & OCREF_CLEAR_SELECT_Msk) >> OCREF_CLEAR_SELECT_Pos) << TIM_SMCR_OCCS_Pos); + MODIFY_REG(TIMx->AF2, TIM1_AF2_OCRSEL, OCRefClearInputSource); +} +/** + * @} + */ + +/** @defgroup TIM_LL_EF_FLAG_Management FLAG-Management + * @{ + */ +/** + * @brief Clear the update interrupt flag (UIF). + * @rmtoll SR UIF LL_TIM_ClearFlag_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_UPDATE(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_UIF)); +} + +/** + * @brief Indicate whether update interrupt flag (UIF) is set (update interrupt is pending). + * @rmtoll SR UIF LL_TIM_IsActiveFlag_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_UIF) == (TIM_SR_UIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 1 interrupt flag (CC1F). + * @rmtoll SR CC1IF LL_TIM_ClearFlag_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC1(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC1IF)); +} + +/** + * @brief Indicate whether Capture/Compare 1 interrupt flag (CC1F) is set (Capture/Compare 1 interrupt is pending). + * @rmtoll SR CC1IF LL_TIM_IsActiveFlag_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC1IF) == (TIM_SR_CC1IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 2 interrupt flag (CC2F). + * @rmtoll SR CC2IF LL_TIM_ClearFlag_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC2(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC2IF)); +} + +/** + * @brief Indicate whether Capture/Compare 2 interrupt flag (CC2F) is set (Capture/Compare 2 interrupt is pending). + * @rmtoll SR CC2IF LL_TIM_IsActiveFlag_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC2IF) == (TIM_SR_CC2IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 3 interrupt flag (CC3F). + * @rmtoll SR CC3IF LL_TIM_ClearFlag_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC3(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC3IF)); +} + +/** + * @brief Indicate whether Capture/Compare 3 interrupt flag (CC3F) is set (Capture/Compare 3 interrupt is pending). + * @rmtoll SR CC3IF LL_TIM_IsActiveFlag_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC3IF) == (TIM_SR_CC3IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 4 interrupt flag (CC4F). + * @rmtoll SR CC4IF LL_TIM_ClearFlag_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC4(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC4IF)); +} + +/** + * @brief Indicate whether Capture/Compare 4 interrupt flag (CC4F) is set (Capture/Compare 4 interrupt is pending). + * @rmtoll SR CC4IF LL_TIM_IsActiveFlag_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC4IF) == (TIM_SR_CC4IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 5 interrupt flag (CC5F). + * @rmtoll SR CC5IF LL_TIM_ClearFlag_CC5 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC5(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC5IF)); +} + +/** + * @brief Indicate whether Capture/Compare 5 interrupt flag (CC5F) is set (Capture/Compare 5 interrupt is pending). + * @rmtoll SR CC5IF LL_TIM_IsActiveFlag_CC5 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC5(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC5IF) == (TIM_SR_CC5IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 6 interrupt flag (CC6F). + * @rmtoll SR CC6IF LL_TIM_ClearFlag_CC6 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC6(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC6IF)); +} + +/** + * @brief Indicate whether Capture/Compare 6 interrupt flag (CC6F) is set (Capture/Compare 6 interrupt is pending). + * @rmtoll SR CC6IF LL_TIM_IsActiveFlag_CC6 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC6(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC6IF) == (TIM_SR_CC6IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the commutation interrupt flag (COMIF). + * @rmtoll SR COMIF LL_TIM_ClearFlag_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_COM(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_COMIF)); +} + +/** + * @brief Indicate whether commutation interrupt flag (COMIF) is set (commutation interrupt is pending). + * @rmtoll SR COMIF LL_TIM_IsActiveFlag_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_COMIF) == (TIM_SR_COMIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the trigger interrupt flag (TIF). + * @rmtoll SR TIF LL_TIM_ClearFlag_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_TRIG(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_TIF)); +} + +/** + * @brief Indicate whether trigger interrupt flag (TIF) is set (trigger interrupt is pending). + * @rmtoll SR TIF LL_TIM_IsActiveFlag_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_TIF) == (TIM_SR_TIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the break interrupt flag (BIF). + * @rmtoll SR BIF LL_TIM_ClearFlag_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_BRK(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_BIF)); +} + +/** + * @brief Indicate whether break interrupt flag (BIF) is set (break interrupt is pending). + * @rmtoll SR BIF LL_TIM_IsActiveFlag_BRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_BIF) == (TIM_SR_BIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the break 2 interrupt flag (B2IF). + * @rmtoll SR B2IF LL_TIM_ClearFlag_BRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_BRK2(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_B2IF)); +} + +/** + * @brief Indicate whether break 2 interrupt flag (B2IF) is set (break 2 interrupt is pending). + * @rmtoll SR B2IF LL_TIM_IsActiveFlag_BRK2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_B2IF) == (TIM_SR_B2IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 1 over-capture interrupt flag (CC1OF). + * @rmtoll SR CC1OF LL_TIM_ClearFlag_CC1OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC1OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC1OF)); +} + +/** + * @brief Indicate whether Capture/Compare 1 over-capture interrupt flag (CC1OF) is set + * (Capture/Compare 1 interrupt is pending). + * @rmtoll SR CC1OF LL_TIM_IsActiveFlag_CC1OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC1OF) == (TIM_SR_CC1OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 2 over-capture interrupt flag (CC2OF). + * @rmtoll SR CC2OF LL_TIM_ClearFlag_CC2OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC2OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC2OF)); +} + +/** + * @brief Indicate whether Capture/Compare 2 over-capture interrupt flag (CC2OF) is set + * (Capture/Compare 2 over-capture interrupt is pending). + * @rmtoll SR CC2OF LL_TIM_IsActiveFlag_CC2OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC2OF) == (TIM_SR_CC2OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 3 over-capture interrupt flag (CC3OF). + * @rmtoll SR CC3OF LL_TIM_ClearFlag_CC3OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC3OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC3OF)); +} + +/** + * @brief Indicate whether Capture/Compare 3 over-capture interrupt flag (CC3OF) is set + * (Capture/Compare 3 over-capture interrupt is pending). + * @rmtoll SR CC3OF LL_TIM_IsActiveFlag_CC3OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC3OF) == (TIM_SR_CC3OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 4 over-capture interrupt flag (CC4OF). + * @rmtoll SR CC4OF LL_TIM_ClearFlag_CC4OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC4OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC4OF)); +} + +/** + * @brief Indicate whether Capture/Compare 4 over-capture interrupt flag (CC4OF) is set + * (Capture/Compare 4 over-capture interrupt is pending). + * @rmtoll SR CC4OF LL_TIM_IsActiveFlag_CC4OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC4OF) == (TIM_SR_CC4OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the system break interrupt flag (SBIF). + * @rmtoll SR SBIF LL_TIM_ClearFlag_SYSBRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_SYSBRK(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_SBIF)); +} + +/** + * @brief Indicate whether system break interrupt flag (SBIF) is set (system break interrupt is pending). + * @rmtoll SR SBIF LL_TIM_IsActiveFlag_SYSBRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_SYSBRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_SBIF) == (TIM_SR_SBIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the transition error interrupt flag (TERRF). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll SR TERRF LL_TIM_ClearFlag_TERR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_TERR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_TERRF)); +} + +/** + * @brief Indicate whether transition error interrupt flag (TERRF) is set (transition error interrupt is pending). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll SR TERRF LL_TIM_IsActiveFlag_TERR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_TERR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_TERRF) == (TIM_SR_TERRF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the index error interrupt flag (IERRF). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll SR IERRF LL_TIM_ClearFlag_IERR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_IERR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_IERRF)); +} + +/** + * @brief Indicate whether index error interrupt flag (IERRF) is set (index error interrupt is pending). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll SR IERRF LL_TIM_IsActiveFlag_IERR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_IERR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_IERRF) == (TIM_SR_IERRF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the direction change interrupt flag (DIRF). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll SR DIRF LL_TIM_ClearFlag_DIR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_DIR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_DIRF)); +} + +/** + * @brief Indicate whether direction change interrupt flag (DIRF) is set (direction change interrupt is pending). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll SR DIRF LL_TIM_IsActiveFlag_DIR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_DIR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_DIRF) == (TIM_SR_DIRF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the index interrupt flag (IDXF). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll SR IDXF LL_TIM_ClearFlag_IDX + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_IDX(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_IDXF)); +} + +/** + * @brief Indicate whether index interrupt flag (IDXF) is set (index interrupt is pending). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll SR IDXF LL_TIM_IsActiveFlag_IDX + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_IDX(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_IDXF) == (TIM_SR_IDXF)) ? 1UL : 0UL); +} +/** + * @} + */ + +/** @defgroup TIM_LL_EF_IT_Management IT-Management + * @{ + */ +/** + * @brief Enable update interrupt (UIE). + * @rmtoll DIER UIE LL_TIM_EnableIT_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_UIE); +} + +/** + * @brief Disable update interrupt (UIE). + * @rmtoll DIER UIE LL_TIM_DisableIT_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_UPDATE(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_UIE); +} + +/** + * @brief Indicates whether the update interrupt (UIE) is enabled. + * @rmtoll DIER UIE LL_TIM_IsEnabledIT_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_UIE) == (TIM_DIER_UIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 1 interrupt (CC1IE). + * @rmtoll DIER CC1IE LL_TIM_EnableIT_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC1IE); +} + +/** + * @brief Disable capture/compare 1 interrupt (CC1IE). + * @rmtoll DIER CC1IE LL_TIM_DisableIT_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC1(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1IE); +} + +/** + * @brief Indicates whether the capture/compare 1 interrupt (CC1IE) is enabled. + * @rmtoll DIER CC1IE LL_TIM_IsEnabledIT_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1IE) == (TIM_DIER_CC1IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 2 interrupt (CC2IE). + * @rmtoll DIER CC2IE LL_TIM_EnableIT_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC2IE); +} + +/** + * @brief Disable capture/compare 2 interrupt (CC2IE). + * @rmtoll DIER CC2IE LL_TIM_DisableIT_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2IE); +} + +/** + * @brief Indicates whether the capture/compare 2 interrupt (CC2IE) is enabled. + * @rmtoll DIER CC2IE LL_TIM_IsEnabledIT_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2IE) == (TIM_DIER_CC2IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 3 interrupt (CC3IE). + * @rmtoll DIER CC3IE LL_TIM_EnableIT_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC3IE); +} + +/** + * @brief Disable capture/compare 3 interrupt (CC3IE). + * @rmtoll DIER CC3IE LL_TIM_DisableIT_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC3(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3IE); +} + +/** + * @brief Indicates whether the capture/compare 3 interrupt (CC3IE) is enabled. + * @rmtoll DIER CC3IE LL_TIM_IsEnabledIT_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3IE) == (TIM_DIER_CC3IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 4 interrupt (CC4IE). + * @rmtoll DIER CC4IE LL_TIM_EnableIT_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC4IE); +} + +/** + * @brief Disable capture/compare 4 interrupt (CC4IE). + * @rmtoll DIER CC4IE LL_TIM_DisableIT_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC4(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4IE); +} + +/** + * @brief Indicates whether the capture/compare 4 interrupt (CC4IE) is enabled. + * @rmtoll DIER CC4IE LL_TIM_IsEnabledIT_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4IE) == (TIM_DIER_CC4IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable commutation interrupt (COMIE). + * @rmtoll DIER COMIE LL_TIM_EnableIT_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_COMIE); +} + +/** + * @brief Disable commutation interrupt (COMIE). + * @rmtoll DIER COMIE LL_TIM_DisableIT_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_COM(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_COMIE); +} + +/** + * @brief Indicates whether the commutation interrupt (COMIE) is enabled. + * @rmtoll DIER COMIE LL_TIM_IsEnabledIT_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_COMIE) == (TIM_DIER_COMIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable trigger interrupt (TIE). + * @rmtoll DIER TIE LL_TIM_EnableIT_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TIE); +} + +/** + * @brief Disable trigger interrupt (TIE). + * @rmtoll DIER TIE LL_TIM_DisableIT_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_TRIG(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TIE); +} + +/** + * @brief Indicates whether the trigger interrupt (TIE) is enabled. + * @rmtoll DIER TIE LL_TIM_IsEnabledIT_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TIE) == (TIM_DIER_TIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable break interrupt (BIE). + * @rmtoll DIER BIE LL_TIM_EnableIT_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_BRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_BIE); +} + +/** + * @brief Disable break interrupt (BIE). + * @rmtoll DIER BIE LL_TIM_DisableIT_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_BRK(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_BIE); +} + +/** + * @brief Indicates whether the break interrupt (BIE) is enabled. + * @rmtoll DIER BIE LL_TIM_IsEnabledIT_BRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_BRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_BIE) == (TIM_DIER_BIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable transition error interrupt (TERRIE). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll DIER TERRIE LL_TIM_EnableIT_TERR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_TERR(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TERRIE); +} + +/** + * @brief Disable transition error interrupt (TERRIE). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll DIER TERRIE LL_TIM_DisableIT_TERR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_TERR(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TERRIE); +} + +/** + * @brief Indicates whether the transition error interrupt (TERRIE) is enabled. + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll DIER TERRIE LL_TIM_IsEnabledIT_TERR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TERR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TERRIE) == (TIM_DIER_TERRIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable index error interrupt (IERRIE). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll DIER IERRIE LL_TIM_EnableIT_IERR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_IERR(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_IERRIE); +} + +/** + * @brief Disable index error interrupt (IERRIE). + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll DIER IERRIE LL_TIM_DisableIT_IERR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_IERR(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_IERRIE); +} + +/** + * @brief Indicates whether the index error interrupt (IERRIE) is enabled. + * @note Macro IS_TIM_ENCODER_ERROR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder error management. + * @rmtoll DIER IERRIE LL_TIM_IsEnabledIT_IERR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_IERR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_IERRIE) == (TIM_DIER_IERRIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable direction change interrupt (DIRIE). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll DIER DIRIE LL_TIM_EnableIT_DIR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_DIR(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_DIRIE); +} + +/** + * @brief Disable direction change interrupt (DIRIE). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll DIER DIRIE LL_TIM_DisableIT_DIR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_DIR(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_DIRIE); +} + +/** + * @brief Indicates whether the direction change interrupt (DIRIE) is enabled. + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll DIER DIRIE LL_TIM_IsEnabledIT_DIR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_DIR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_DIRIE) == (TIM_DIER_DIRIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable index interrupt (IDXIE). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll DIER IDXIE LL_TIM_EnableIT_IDX + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_IDX(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_IDXIE); +} + +/** + * @brief Disable index interrupt (IDXIE). + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll DIER IDXIE LL_TIM_DisableIT_IDX + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_IDX(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_IDXIE); +} + +/** + * @brief Indicates whether the index interrupt (IDXIE) is enabled. + * @note Macro IS_TIM_FUNCTINONAL_ENCODER_INTERRUPT_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides encoder interrupt management. + * @rmtoll DIER IDXIE LL_TIM_IsEnabledIT_IDX + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_IDX(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_IDXIE) == (TIM_DIER_IDXIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_DMA_Management DMA Management + * @{ + */ +/** + * @brief Enable update DMA request (UDE). + * @rmtoll DIER UDE LL_TIM_EnableDMAReq_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_UDE); +} + +/** + * @brief Disable update DMA request (UDE). + * @rmtoll DIER UDE LL_TIM_DisableDMAReq_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_UPDATE(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_UDE); +} + +/** + * @brief Indicates whether the update DMA request (UDE) is enabled. + * @rmtoll DIER UDE LL_TIM_IsEnabledDMAReq_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_UDE) == (TIM_DIER_UDE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 1 DMA request (CC1DE). + * @rmtoll DIER CC1DE LL_TIM_EnableDMAReq_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC1DE); +} + +/** + * @brief Disable capture/compare 1 DMA request (CC1DE). + * @rmtoll DIER CC1DE LL_TIM_DisableDMAReq_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC1(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1DE); +} + +/** + * @brief Indicates whether the capture/compare 1 DMA request (CC1DE) is enabled. + * @rmtoll DIER CC1DE LL_TIM_IsEnabledDMAReq_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1DE) == (TIM_DIER_CC1DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 2 DMA request (CC2DE). + * @rmtoll DIER CC2DE LL_TIM_EnableDMAReq_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC2DE); +} + +/** + * @brief Disable capture/compare 2 DMA request (CC2DE). + * @rmtoll DIER CC2DE LL_TIM_DisableDMAReq_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2DE); +} + +/** + * @brief Indicates whether the capture/compare 2 DMA request (CC2DE) is enabled. + * @rmtoll DIER CC2DE LL_TIM_IsEnabledDMAReq_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2DE) == (TIM_DIER_CC2DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 3 DMA request (CC3DE). + * @rmtoll DIER CC3DE LL_TIM_EnableDMAReq_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC3DE); +} + +/** + * @brief Disable capture/compare 3 DMA request (CC3DE). + * @rmtoll DIER CC3DE LL_TIM_DisableDMAReq_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC3(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3DE); +} + +/** + * @brief Indicates whether the capture/compare 3 DMA request (CC3DE) is enabled. + * @rmtoll DIER CC3DE LL_TIM_IsEnabledDMAReq_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3DE) == (TIM_DIER_CC3DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 4 DMA request (CC4DE). + * @rmtoll DIER CC4DE LL_TIM_EnableDMAReq_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC4DE); +} + +/** + * @brief Disable capture/compare 4 DMA request (CC4DE). + * @rmtoll DIER CC4DE LL_TIM_DisableDMAReq_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC4(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4DE); +} + +/** + * @brief Indicates whether the capture/compare 4 DMA request (CC4DE) is enabled. + * @rmtoll DIER CC4DE LL_TIM_IsEnabledDMAReq_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4DE) == (TIM_DIER_CC4DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable commutation DMA request (COMDE). + * @rmtoll DIER COMDE LL_TIM_EnableDMAReq_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_COMDE); +} + +/** + * @brief Disable commutation DMA request (COMDE). + * @rmtoll DIER COMDE LL_TIM_DisableDMAReq_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_COM(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_COMDE); +} + +/** + * @brief Indicates whether the commutation DMA request (COMDE) is enabled. + * @rmtoll DIER COMDE LL_TIM_IsEnabledDMAReq_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_COMDE) == (TIM_DIER_COMDE)) ? 1UL : 0UL); +} + +/** + * @brief Enable trigger interrupt (TDE). + * @rmtoll DIER TDE LL_TIM_EnableDMAReq_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TDE); +} + +/** + * @brief Disable trigger interrupt (TDE). + * @rmtoll DIER TDE LL_TIM_DisableDMAReq_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_TRIG(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TDE); +} + +/** + * @brief Indicates whether the trigger interrupt (TDE) is enabled. + * @rmtoll DIER TDE LL_TIM_IsEnabledDMAReq_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TDE) == (TIM_DIER_TDE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_EVENT_Management EVENT-Management + * @{ + */ +/** + * @brief Generate an update event. + * @rmtoll EGR UG LL_TIM_GenerateEvent_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_UG); +} + +/** + * @brief Generate Capture/Compare 1 event. + * @rmtoll EGR CC1G LL_TIM_GenerateEvent_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC1G); +} + +/** + * @brief Generate Capture/Compare 2 event. + * @rmtoll EGR CC2G LL_TIM_GenerateEvent_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC2G); +} + +/** + * @brief Generate Capture/Compare 3 event. + * @rmtoll EGR CC3G LL_TIM_GenerateEvent_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC3G); +} + +/** + * @brief Generate Capture/Compare 4 event. + * @rmtoll EGR CC4G LL_TIM_GenerateEvent_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC4G); +} + +/** + * @brief Generate commutation event. + * @rmtoll EGR COMG LL_TIM_GenerateEvent_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_COMG); +} + +/** + * @brief Generate trigger event. + * @rmtoll EGR TG LL_TIM_GenerateEvent_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_TG); +} + +/** + * @brief Generate break event. + * @rmtoll EGR BG LL_TIM_GenerateEvent_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_BRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_BG); +} + +/** + * @brief Generate break 2 event. + * @rmtoll EGR B2G LL_TIM_GenerateEvent_BRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_BRK2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_B2G); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_EF_Init Initialisation and deinitialisation functions + * @{ + */ + +ErrorStatus LL_TIM_DeInit(const TIM_TypeDef *TIMx); +void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct); +ErrorStatus LL_TIM_Init(TIM_TypeDef *TIMx, const LL_TIM_InitTypeDef *TIM_InitStruct); +void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct); +ErrorStatus LL_TIM_OC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct); +void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct); +ErrorStatus LL_TIM_IC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct); +void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct); +ErrorStatus LL_TIM_ENCODER_Init(TIM_TypeDef *TIMx, const LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct); +void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct); +ErrorStatus LL_TIM_HALLSENSOR_Init(TIM_TypeDef *TIMx, const LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct); +void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct); +ErrorStatus LL_TIM_BDTR_Init(TIM_TypeDef *TIMx, const LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* TIM1 || TIM2 || TIM3 || TIM4 || TIM5 || TIM6 || TIM7 || TIM8 || TIM15 || TIM16 || TIM17 || TIM20 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32G4xx_LL_TIM_H */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usart.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usart.h new file mode 100644 index 0000000..51058c8 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usart.h @@ -0,0 +1,4399 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_usart.h + * @author MCD Application Team + * @brief Header file of USART LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_USART_H +#define STM32G4xx_LL_USART_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined(USART1) || defined(USART2) || defined(USART3) || defined(UART4) || defined(UART5) + +/** @defgroup USART_LL USART + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup USART_LL_Private_Variables USART Private Variables + * @{ + */ +/* Array used to get the USART prescaler division decimal values versus @ref USART_LL_EC_PRESCALER values */ +static const uint32_t USART_PRESCALER_TAB[] = +{ + 1UL, + 2UL, + 4UL, + 6UL, + 8UL, + 10UL, + 12UL, + 16UL, + 32UL, + 64UL, + 128UL, + 256UL +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup USART_LL_Private_Constants USART Private Constants + * @{ + */ +/** + * @} + */ +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup USART_LL_Private_Macros USART Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup USART_LL_ES_INIT USART Exported Init structures + * @{ + */ + +/** + * @brief LL USART Init Structure definition + */ +typedef struct +{ + uint32_t PrescalerValue; /*!< Specifies the Prescaler to compute the communication baud rate. + This parameter can be a value of @ref USART_LL_EC_PRESCALER. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetPrescaler().*/ + + uint32_t BaudRate; /*!< This field defines expected Usart communication baud rate. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetBaudRate().*/ + + uint32_t DataWidth; /*!< Specifies the number of data bits transmitted or received in a frame. + This parameter can be a value of @ref USART_LL_EC_DATAWIDTH. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetDataWidth().*/ + + uint32_t StopBits; /*!< Specifies the number of stop bits transmitted. + This parameter can be a value of @ref USART_LL_EC_STOPBITS. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetStopBitsLength().*/ + + uint32_t Parity; /*!< Specifies the parity mode. + This parameter can be a value of @ref USART_LL_EC_PARITY. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetParity().*/ + + uint32_t TransferDirection; /*!< Specifies whether the Receive and/or Transmit mode is enabled or disabled. + This parameter can be a value of @ref USART_LL_EC_DIRECTION. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetTransferDirection().*/ + + uint32_t HardwareFlowControl; /*!< Specifies whether the hardware flow control mode is enabled or disabled. + This parameter can be a value of @ref USART_LL_EC_HWCONTROL. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetHWFlowCtrl().*/ + + uint32_t OverSampling; /*!< Specifies whether USART oversampling mode is 16 or 8. + This parameter can be a value of @ref USART_LL_EC_OVERSAMPLING. + + This feature can be modified afterwards using unitary + function @ref LL_USART_SetOverSampling().*/ + +} LL_USART_InitTypeDef; + +/** + * @brief LL USART Clock Init Structure definition + */ +typedef struct +{ + uint32_t ClockOutput; /*!< Specifies whether the USART clock is enabled or disabled. + This parameter can be a value of @ref USART_LL_EC_CLOCK. + + USART HW configuration can be modified afterwards using unitary functions + @ref LL_USART_EnableSCLKOutput() or @ref LL_USART_DisableSCLKOutput(). + For more details, refer to description of this function. */ + + uint32_t ClockPolarity; /*!< Specifies the steady state of the serial clock. + This parameter can be a value of @ref USART_LL_EC_POLARITY. + + USART HW configuration can be modified afterwards using unitary + functions @ref LL_USART_SetClockPolarity(). + For more details, refer to description of this function. */ + + uint32_t ClockPhase; /*!< Specifies the clock transition on which the bit capture is made. + This parameter can be a value of @ref USART_LL_EC_PHASE. + + USART HW configuration can be modified afterwards using unitary + functions @ref LL_USART_SetClockPhase(). + For more details, refer to description of this function. */ + + uint32_t LastBitClockPulse; /*!< Specifies whether the clock pulse corresponding to the last transmitted + data bit (MSB) has to be output on the SCLK pin in synchronous mode. + This parameter can be a value of @ref USART_LL_EC_LASTCLKPULSE. + + USART HW configuration can be modified afterwards using unitary + functions @ref LL_USART_SetLastClkPulseOutput(). + For more details, refer to description of this function. */ + +} LL_USART_ClockInitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup USART_LL_Exported_Constants USART Exported Constants + * @{ + */ + +/** @defgroup USART_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_USART_WriteReg function + * @{ + */ +#define LL_USART_ICR_PECF USART_ICR_PECF /*!< Parity error clear flag */ +#define LL_USART_ICR_FECF USART_ICR_FECF /*!< Framing error clear flag */ +#define LL_USART_ICR_NECF USART_ICR_NECF /*!< Noise error detected clear flag */ +#define LL_USART_ICR_ORECF USART_ICR_ORECF /*!< Overrun error clear flag */ +#define LL_USART_ICR_IDLECF USART_ICR_IDLECF /*!< Idle line detected clear flag */ +#define LL_USART_ICR_TXFECF USART_ICR_TXFECF /*!< TX FIFO Empty clear flag */ +#define LL_USART_ICR_TCCF USART_ICR_TCCF /*!< Transmission complete clear flag */ +#define LL_USART_ICR_TCBGTCF USART_ICR_TCBGTCF /*!< Transmission completed before guard time clear flag */ +#define LL_USART_ICR_LBDCF USART_ICR_LBDCF /*!< LIN break detection clear flag */ +#define LL_USART_ICR_CTSCF USART_ICR_CTSCF /*!< CTS clear flag */ +#define LL_USART_ICR_RTOCF USART_ICR_RTOCF /*!< Receiver timeout clear flag */ +#define LL_USART_ICR_EOBCF USART_ICR_EOBCF /*!< End of block clear flag */ +#define LL_USART_ICR_UDRCF USART_ICR_UDRCF /*!< SPI Slave Underrun clear flag */ +#define LL_USART_ICR_CMCF USART_ICR_CMCF /*!< Character match clear flag */ +#define LL_USART_ICR_WUCF USART_ICR_WUCF /*!< Wakeup from Stop mode clear flag */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_USART_ReadReg function + * @{ + */ +#define LL_USART_ISR_PE USART_ISR_PE /*!< Parity error flag */ +#define LL_USART_ISR_FE USART_ISR_FE /*!< Framing error flag */ +#define LL_USART_ISR_NE USART_ISR_NE /*!< Noise detected flag */ +#define LL_USART_ISR_ORE USART_ISR_ORE /*!< Overrun error flag */ +#define LL_USART_ISR_IDLE USART_ISR_IDLE /*!< Idle line detected flag */ +#define LL_USART_ISR_RXNE_RXFNE USART_ISR_RXNE_RXFNE /*!< Read data register or RX FIFO not empty flag */ +#define LL_USART_ISR_TC USART_ISR_TC /*!< Transmission complete flag */ +#define LL_USART_ISR_TXE_TXFNF USART_ISR_TXE_TXFNF /*!< Transmit data register empty or TX FIFO Not Full flag*/ +#define LL_USART_ISR_LBDF USART_ISR_LBDF /*!< LIN break detection flag */ +#define LL_USART_ISR_CTSIF USART_ISR_CTSIF /*!< CTS interrupt flag */ +#define LL_USART_ISR_CTS USART_ISR_CTS /*!< CTS flag */ +#define LL_USART_ISR_RTOF USART_ISR_RTOF /*!< Receiver timeout flag */ +#define LL_USART_ISR_EOBF USART_ISR_EOBF /*!< End of block flag */ +#define LL_USART_ISR_UDR USART_ISR_UDR /*!< SPI Slave underrun error flag */ +#define LL_USART_ISR_ABRE USART_ISR_ABRE /*!< Auto baud rate error flag */ +#define LL_USART_ISR_ABRF USART_ISR_ABRF /*!< Auto baud rate flag */ +#define LL_USART_ISR_BUSY USART_ISR_BUSY /*!< Busy flag */ +#define LL_USART_ISR_CMF USART_ISR_CMF /*!< Character match flag */ +#define LL_USART_ISR_SBKF USART_ISR_SBKF /*!< Send break flag */ +#define LL_USART_ISR_RWU USART_ISR_RWU /*!< Receiver wakeup from Mute mode flag */ +#define LL_USART_ISR_WUF USART_ISR_WUF /*!< Wakeup from Stop mode flag */ +#define LL_USART_ISR_TEACK USART_ISR_TEACK /*!< Transmit enable acknowledge flag */ +#define LL_USART_ISR_REACK USART_ISR_REACK /*!< Receive enable acknowledge flag */ +#define LL_USART_ISR_TXFE USART_ISR_TXFE /*!< TX FIFO empty flag */ +#define LL_USART_ISR_RXFF USART_ISR_RXFF /*!< RX FIFO full flag */ +#define LL_USART_ISR_TCBGT USART_ISR_TCBGT /*!< Transmission complete before guard time completion flag */ +#define LL_USART_ISR_RXFT USART_ISR_RXFT /*!< RX FIFO threshold flag */ +#define LL_USART_ISR_TXFT USART_ISR_TXFT /*!< TX FIFO threshold flag */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_USART_ReadReg and LL_USART_WriteReg functions + * @{ + */ +#define LL_USART_CR1_IDLEIE USART_CR1_IDLEIE /*!< IDLE interrupt enable */ +#define LL_USART_CR1_RXNEIE_RXFNEIE USART_CR1_RXNEIE_RXFNEIE /*!< Read data register and RXFIFO not empty interrupt enable */ +#define LL_USART_CR1_TCIE USART_CR1_TCIE /*!< Transmission complete interrupt enable */ +#define LL_USART_CR1_TXEIE_TXFNFIE USART_CR1_TXEIE_TXFNFIE /*!< Transmit data register empty and TX FIFO not full interrupt enable */ +#define LL_USART_CR1_PEIE USART_CR1_PEIE /*!< Parity error */ +#define LL_USART_CR1_CMIE USART_CR1_CMIE /*!< Character match interrupt enable */ +#define LL_USART_CR1_RTOIE USART_CR1_RTOIE /*!< Receiver timeout interrupt enable */ +#define LL_USART_CR1_EOBIE USART_CR1_EOBIE /*!< End of Block interrupt enable */ +#define LL_USART_CR1_TXFEIE USART_CR1_TXFEIE /*!< TX FIFO empty interrupt enable */ +#define LL_USART_CR1_RXFFIE USART_CR1_RXFFIE /*!< RX FIFO full interrupt enable */ +#define LL_USART_CR2_LBDIE USART_CR2_LBDIE /*!< LIN break detection interrupt enable */ +#define LL_USART_CR3_EIE USART_CR3_EIE /*!< Error interrupt enable */ +#define LL_USART_CR3_CTSIE USART_CR3_CTSIE /*!< CTS interrupt enable */ +#define LL_USART_CR3_WUFIE USART_CR3_WUFIE /*!< Wakeup from Stop mode interrupt enable */ +#define LL_USART_CR3_TXFTIE USART_CR3_TXFTIE /*!< TX FIFO threshold interrupt enable */ +#define LL_USART_CR3_TCBGTIE USART_CR3_TCBGTIE /*!< Transmission complete before guard time interrupt enable */ +#define LL_USART_CR3_RXFTIE USART_CR3_RXFTIE /*!< RX FIFO threshold interrupt enable */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_FIFOTHRESHOLD FIFO Threshold + * @{ + */ +#define LL_USART_FIFOTHRESHOLD_1_8 0x00000000U /*!< FIFO reaches 1/8 of its depth */ +#define LL_USART_FIFOTHRESHOLD_1_4 0x00000001U /*!< FIFO reaches 1/4 of its depth */ +#define LL_USART_FIFOTHRESHOLD_1_2 0x00000002U /*!< FIFO reaches 1/2 of its depth */ +#define LL_USART_FIFOTHRESHOLD_3_4 0x00000003U /*!< FIFO reaches 3/4 of its depth */ +#define LL_USART_FIFOTHRESHOLD_7_8 0x00000004U /*!< FIFO reaches 7/8 of its depth */ +#define LL_USART_FIFOTHRESHOLD_8_8 0x00000005U /*!< FIFO becomes empty for TX and full for RX */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_DIRECTION Communication Direction + * @{ + */ +#define LL_USART_DIRECTION_NONE 0x00000000U /*!< Transmitter and Receiver are disabled */ +#define LL_USART_DIRECTION_RX USART_CR1_RE /*!< Transmitter is disabled and Receiver is enabled */ +#define LL_USART_DIRECTION_TX USART_CR1_TE /*!< Transmitter is enabled and Receiver is disabled */ +#define LL_USART_DIRECTION_TX_RX (USART_CR1_TE |USART_CR1_RE) /*!< Transmitter and Receiver are enabled */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_PARITY Parity Control + * @{ + */ +#define LL_USART_PARITY_NONE 0x00000000U /*!< Parity control disabled */ +#define LL_USART_PARITY_EVEN USART_CR1_PCE /*!< Parity control enabled and Even Parity is selected */ +#define LL_USART_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) /*!< Parity control enabled and Odd Parity is selected */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_WAKEUP Wakeup + * @{ + */ +#define LL_USART_WAKEUP_IDLELINE 0x00000000U /*!< USART wake up from Mute mode on Idle Line */ +#define LL_USART_WAKEUP_ADDRESSMARK USART_CR1_WAKE /*!< USART wake up from Mute mode on Address Mark */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_DATAWIDTH Datawidth + * @{ + */ +#define LL_USART_DATAWIDTH_7B USART_CR1_M1 /*!< 7 bits word length : Start bit, 7 data bits, n stop bits */ +#define LL_USART_DATAWIDTH_8B 0x00000000U /*!< 8 bits word length : Start bit, 8 data bits, n stop bits */ +#define LL_USART_DATAWIDTH_9B USART_CR1_M0 /*!< 9 bits word length : Start bit, 9 data bits, n stop bits */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_OVERSAMPLING Oversampling + * @{ + */ +#define LL_USART_OVERSAMPLING_16 0x00000000U /*!< Oversampling by 16 */ +#define LL_USART_OVERSAMPLING_8 USART_CR1_OVER8 /*!< Oversampling by 8 */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup USART_LL_EC_CLOCK Clock Signal + * @{ + */ + +#define LL_USART_CLOCK_DISABLE 0x00000000U /*!< Clock signal not provided */ +#define LL_USART_CLOCK_ENABLE USART_CR2_CLKEN /*!< Clock signal provided */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/** @defgroup USART_LL_EC_LASTCLKPULSE Last Clock Pulse + * @{ + */ +#define LL_USART_LASTCLKPULSE_NO_OUTPUT 0x00000000U /*!< The clock pulse of the last data bit is not output to the SCLK pin */ +#define LL_USART_LASTCLKPULSE_OUTPUT USART_CR2_LBCL /*!< The clock pulse of the last data bit is output to the SCLK pin */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_PHASE Clock Phase + * @{ + */ +#define LL_USART_PHASE_1EDGE 0x00000000U /*!< The first clock transition is the first data capture edge */ +#define LL_USART_PHASE_2EDGE USART_CR2_CPHA /*!< The second clock transition is the first data capture edge */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_POLARITY Clock Polarity + * @{ + */ +#define LL_USART_POLARITY_LOW 0x00000000U /*!< Steady low value on SCLK pin outside transmission window*/ +#define LL_USART_POLARITY_HIGH USART_CR2_CPOL /*!< Steady high value on SCLK pin outside transmission window */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_PRESCALER Clock Source Prescaler + * @{ + */ +#define LL_USART_PRESCALER_DIV1 0x00000000U /*!< Input clock not divided */ +#define LL_USART_PRESCALER_DIV2 (USART_PRESC_PRESCALER_0) /*!< Input clock divided by 2 */ +#define LL_USART_PRESCALER_DIV4 (USART_PRESC_PRESCALER_1) /*!< Input clock divided by 4 */ +#define LL_USART_PRESCALER_DIV6 (USART_PRESC_PRESCALER_1 | USART_PRESC_PRESCALER_0) /*!< Input clock divided by 6 */ +#define LL_USART_PRESCALER_DIV8 (USART_PRESC_PRESCALER_2) /*!< Input clock divided by 8 */ +#define LL_USART_PRESCALER_DIV10 (USART_PRESC_PRESCALER_2 | USART_PRESC_PRESCALER_0) /*!< Input clock divided by 10 */ +#define LL_USART_PRESCALER_DIV12 (USART_PRESC_PRESCALER_2 | USART_PRESC_PRESCALER_1) /*!< Input clock divided by 12 */ +#define LL_USART_PRESCALER_DIV16 (USART_PRESC_PRESCALER_2 | USART_PRESC_PRESCALER_1 | USART_PRESC_PRESCALER_0) /*!< Input clock divided by 16 */ +#define LL_USART_PRESCALER_DIV32 (USART_PRESC_PRESCALER_3) /*!< Input clock divided by 32 */ +#define LL_USART_PRESCALER_DIV64 (USART_PRESC_PRESCALER_3 | USART_PRESC_PRESCALER_0) /*!< Input clock divided by 64 */ +#define LL_USART_PRESCALER_DIV128 (USART_PRESC_PRESCALER_3 | USART_PRESC_PRESCALER_1) /*!< Input clock divided by 128 */ +#define LL_USART_PRESCALER_DIV256 (USART_PRESC_PRESCALER_3 | USART_PRESC_PRESCALER_1 | USART_PRESC_PRESCALER_0) /*!< Input clock divided by 256 */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_STOPBITS Stop Bits + * @{ + */ +#define LL_USART_STOPBITS_0_5 USART_CR2_STOP_0 /*!< 0.5 stop bit */ +#define LL_USART_STOPBITS_1 0x00000000U /*!< 1 stop bit */ +#define LL_USART_STOPBITS_1_5 (USART_CR2_STOP_0 | USART_CR2_STOP_1) /*!< 1.5 stop bits */ +#define LL_USART_STOPBITS_2 USART_CR2_STOP_1 /*!< 2 stop bits */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_TXRX TX RX Pins Swap + * @{ + */ +#define LL_USART_TXRX_STANDARD 0x00000000U /*!< TX/RX pins are used as defined in standard pinout */ +#define LL_USART_TXRX_SWAPPED (USART_CR2_SWAP) /*!< TX and RX pins functions are swapped. */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_RXPIN_LEVEL RX Pin Active Level Inversion + * @{ + */ +#define LL_USART_RXPIN_LEVEL_STANDARD 0x00000000U /*!< RX pin signal works using the standard logic levels */ +#define LL_USART_RXPIN_LEVEL_INVERTED (USART_CR2_RXINV) /*!< RX pin signal values are inverted. */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_TXPIN_LEVEL TX Pin Active Level Inversion + * @{ + */ +#define LL_USART_TXPIN_LEVEL_STANDARD 0x00000000U /*!< TX pin signal works using the standard logic levels */ +#define LL_USART_TXPIN_LEVEL_INVERTED (USART_CR2_TXINV) /*!< TX pin signal values are inverted. */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_BINARY_LOGIC Binary Data Inversion + * @{ + */ +#define LL_USART_BINARY_LOGIC_POSITIVE 0x00000000U /*!< Logical data from the data register are send/received in positive/direct logic. (1=H, 0=L) */ +#define LL_USART_BINARY_LOGIC_NEGATIVE USART_CR2_DATAINV /*!< Logical data from the data register are send/received in negative/inverse logic. (1=L, 0=H). The parity bit is also inverted. */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_BITORDER Bit Order + * @{ + */ +#define LL_USART_BITORDER_LSBFIRST 0x00000000U /*!< data is transmitted/received with data bit 0 first, following the start bit */ +#define LL_USART_BITORDER_MSBFIRST USART_CR2_MSBFIRST /*!< data is transmitted/received with the MSB first, following the start bit */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_AUTOBAUD_DETECT_ON Autobaud Detection + * @{ + */ +#define LL_USART_AUTOBAUD_DETECT_ON_STARTBIT 0x00000000U /*!< Measurement of the start bit is used to detect the baud rate */ +#define LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE USART_CR2_ABRMODE_0 /*!< Falling edge to falling edge measurement. Received frame must start with a single bit = 1 -> Frame = Start10xxxxxx */ +#define LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME USART_CR2_ABRMODE_1 /*!< 0x7F frame detection */ +#define LL_USART_AUTOBAUD_DETECT_ON_55_FRAME (USART_CR2_ABRMODE_1 | USART_CR2_ABRMODE_0) /*!< 0x55 frame detection */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_ADDRESS_DETECT Address Length Detection + * @{ + */ +#define LL_USART_ADDRESS_DETECT_4B 0x00000000U /*!< 4-bit address detection method selected */ +#define LL_USART_ADDRESS_DETECT_7B USART_CR2_ADDM7 /*!< 7-bit address detection (in 8-bit data mode) method selected */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_HWCONTROL Hardware Control + * @{ + */ +#define LL_USART_HWCONTROL_NONE 0x00000000U /*!< CTS and RTS hardware flow control disabled */ +#define LL_USART_HWCONTROL_RTS USART_CR3_RTSE /*!< RTS output enabled, data is only requested when there is space in the receive buffer */ +#define LL_USART_HWCONTROL_CTS USART_CR3_CTSE /*!< CTS mode enabled, data is only transmitted when the nCTS input is asserted (tied to 0) */ +#define LL_USART_HWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) /*!< CTS and RTS hardware flow control enabled */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_WAKEUP_ON Wakeup Activation + * @{ + */ +#define LL_USART_WAKEUP_ON_ADDRESS 0x00000000U /*!< Wake up active on address match */ +#define LL_USART_WAKEUP_ON_STARTBIT USART_CR3_WUS_1 /*!< Wake up active on Start bit detection */ +#define LL_USART_WAKEUP_ON_RXNE (USART_CR3_WUS_0 | USART_CR3_WUS_1) /*!< Wake up active on RXNE */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_IRDA_POWER IrDA Power + * @{ + */ +#define LL_USART_IRDA_POWER_NORMAL 0x00000000U /*!< IrDA normal power mode */ +#define LL_USART_IRDA_POWER_LOW USART_CR3_IRLP /*!< IrDA low power mode */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_LINBREAK_DETECT LIN Break Detection Length + * @{ + */ +#define LL_USART_LINBREAK_DETECT_10B 0x00000000U /*!< 10-bit break detection method selected */ +#define LL_USART_LINBREAK_DETECT_11B USART_CR2_LBDL /*!< 11-bit break detection method selected */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_DE_POLARITY Driver Enable Polarity + * @{ + */ +#define LL_USART_DE_POLARITY_HIGH 0x00000000U /*!< DE signal is active high */ +#define LL_USART_DE_POLARITY_LOW USART_CR3_DEP /*!< DE signal is active low */ +/** + * @} + */ + +/** @defgroup USART_LL_EC_DMA_REG_DATA DMA Register Data + * @{ + */ +#define LL_USART_DMA_REG_DATA_TRANSMIT 0x00000000U /*!< Get address of data register used for transmission */ +#define LL_USART_DMA_REG_DATA_RECEIVE 0x00000001U /*!< Get address of data register used for reception */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup USART_LL_Exported_Macros USART Exported Macros + * @{ + */ + +/** @defgroup USART_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in USART register + * @param __INSTANCE__ USART Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_USART_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in USART register + * @param __INSTANCE__ USART Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_USART_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup USART_LL_EM_Exported_Macros_Helper Exported_Macros_Helper + * @{ + */ + +/** + * @brief Compute USARTDIV value according to Peripheral Clock and + * expected Baud Rate in 8 bits sampling mode (32 bits value of USARTDIV is returned) + * @param __PERIPHCLK__ Peripheral Clock frequency used for USART instance + * @param __PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_USART_PRESCALER_DIV1 + * @arg @ref LL_USART_PRESCALER_DIV2 + * @arg @ref LL_USART_PRESCALER_DIV4 + * @arg @ref LL_USART_PRESCALER_DIV6 + * @arg @ref LL_USART_PRESCALER_DIV8 + * @arg @ref LL_USART_PRESCALER_DIV10 + * @arg @ref LL_USART_PRESCALER_DIV12 + * @arg @ref LL_USART_PRESCALER_DIV16 + * @arg @ref LL_USART_PRESCALER_DIV32 + * @arg @ref LL_USART_PRESCALER_DIV64 + * @arg @ref LL_USART_PRESCALER_DIV128 + * @arg @ref LL_USART_PRESCALER_DIV256 + * @param __BAUDRATE__ Baud rate value to achieve + * @retval USARTDIV value to be used for BRR register filling in OverSampling_8 case + */ +#define __LL_USART_DIV_SAMPLING8(__PERIPHCLK__, __PRESCALER__, __BAUDRATE__) \ + (((((__PERIPHCLK__)/(USART_PRESCALER_TAB[(__PRESCALER__)]))*2U)\ + + ((__BAUDRATE__)/2U))/(__BAUDRATE__)) + +/** + * @brief Compute USARTDIV value according to Peripheral Clock and + * expected Baud Rate in 16 bits sampling mode (32 bits value of USARTDIV is returned) + * @param __PERIPHCLK__ Peripheral Clock frequency used for USART instance + * @param __PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_USART_PRESCALER_DIV1 + * @arg @ref LL_USART_PRESCALER_DIV2 + * @arg @ref LL_USART_PRESCALER_DIV4 + * @arg @ref LL_USART_PRESCALER_DIV6 + * @arg @ref LL_USART_PRESCALER_DIV8 + * @arg @ref LL_USART_PRESCALER_DIV10 + * @arg @ref LL_USART_PRESCALER_DIV12 + * @arg @ref LL_USART_PRESCALER_DIV16 + * @arg @ref LL_USART_PRESCALER_DIV32 + * @arg @ref LL_USART_PRESCALER_DIV64 + * @arg @ref LL_USART_PRESCALER_DIV128 + * @arg @ref LL_USART_PRESCALER_DIV256 + * @param __BAUDRATE__ Baud rate value to achieve + * @retval USARTDIV value to be used for BRR register filling in OverSampling_16 case + */ +#define __LL_USART_DIV_SAMPLING16(__PERIPHCLK__, __PRESCALER__, __BAUDRATE__) \ + ((((__PERIPHCLK__)/(USART_PRESCALER_TAB[(__PRESCALER__)]))\ + + ((__BAUDRATE__)/2U))/(__BAUDRATE__)) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup USART_LL_Exported_Functions USART Exported Functions + * @{ + */ + +/** @defgroup USART_LL_EF_Configuration Configuration functions + * @{ + */ + +/** + * @brief USART Enable + * @rmtoll CR1 UE LL_USART_Enable + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_Enable(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR1, USART_CR1_UE); +} + +/** + * @brief USART Disable (all USART prescalers and outputs are disabled) + * @note When USART is disabled, USART prescalers and outputs are stopped immediately, + * and current operations are discarded. The configuration of the USART is kept, but all the status + * flags, in the USARTx_ISR are set to their default values. + * @rmtoll CR1 UE LL_USART_Disable + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_Disable(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR1, USART_CR1_UE); +} + +/** + * @brief Indicate if USART is enabled + * @rmtoll CR1 UE LL_USART_IsEnabled + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabled(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_UE) == (USART_CR1_UE)) ? 1UL : 0UL); +} + +/** + * @brief FIFO Mode Enable + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 FIFOEN LL_USART_EnableFIFO + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableFIFO(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR1, USART_CR1_FIFOEN); +} + +/** + * @brief FIFO Mode Disable + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 FIFOEN LL_USART_DisableFIFO + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableFIFO(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR1, USART_CR1_FIFOEN); +} + +/** + * @brief Indicate if FIFO Mode is enabled + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 FIFOEN LL_USART_IsEnabledFIFO + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledFIFO(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_FIFOEN) == (USART_CR1_FIFOEN)) ? 1UL : 0UL); +} + +/** + * @brief Configure TX FIFO Threshold + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 TXFTCFG LL_USART_SetTXFIFOThreshold + * @param USARTx USART Instance + * @param Threshold This parameter can be one of the following values: + * @arg @ref LL_USART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_USART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_8_8 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetTXFIFOThreshold(USART_TypeDef *USARTx, uint32_t Threshold) +{ + ATOMIC_MODIFY_REG(USARTx->CR3, USART_CR3_TXFTCFG, Threshold << USART_CR3_TXFTCFG_Pos); +} + +/** + * @brief Return TX FIFO Threshold Configuration + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 TXFTCFG LL_USART_GetTXFIFOThreshold + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_USART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_8_8 + */ +__STATIC_INLINE uint32_t LL_USART_GetTXFIFOThreshold(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos); +} + +/** + * @brief Configure RX FIFO Threshold + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 RXFTCFG LL_USART_SetRXFIFOThreshold + * @param USARTx USART Instance + * @param Threshold This parameter can be one of the following values: + * @arg @ref LL_USART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_USART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_8_8 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetRXFIFOThreshold(USART_TypeDef *USARTx, uint32_t Threshold) +{ + ATOMIC_MODIFY_REG(USARTx->CR3, USART_CR3_RXFTCFG, Threshold << USART_CR3_RXFTCFG_Pos); +} + +/** + * @brief Return RX FIFO Threshold Configuration + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 RXFTCFG LL_USART_GetRXFIFOThreshold + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_USART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_8_8 + */ +__STATIC_INLINE uint32_t LL_USART_GetRXFIFOThreshold(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos); +} + +/** + * @brief Configure TX and RX FIFOs Threshold + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 TXFTCFG LL_USART_ConfigFIFOsThreshold\n + * CR3 RXFTCFG LL_USART_ConfigFIFOsThreshold + * @param USARTx USART Instance + * @param TXThreshold This parameter can be one of the following values: + * @arg @ref LL_USART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_USART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_8_8 + * @param RXThreshold This parameter can be one of the following values: + * @arg @ref LL_USART_FIFOTHRESHOLD_1_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_1_2 + * @arg @ref LL_USART_FIFOTHRESHOLD_3_4 + * @arg @ref LL_USART_FIFOTHRESHOLD_7_8 + * @arg @ref LL_USART_FIFOTHRESHOLD_8_8 + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigFIFOsThreshold(USART_TypeDef *USARTx, uint32_t TXThreshold, uint32_t RXThreshold) +{ + ATOMIC_MODIFY_REG(USARTx->CR3, USART_CR3_TXFTCFG | USART_CR3_RXFTCFG, (TXThreshold << USART_CR3_TXFTCFG_Pos) | + (RXThreshold << USART_CR3_RXFTCFG_Pos)); +} + +/** + * @brief USART enabled in STOP Mode. + * @note When this function is enabled, USART is able to wake up the MCU from Stop mode, provided that + * USART clock selection is HSI or LSE in RCC. + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR1 UESM LL_USART_EnableInStopMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableInStopMode(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_UESM); +} + +/** + * @brief USART disabled in STOP Mode. + * @note When this function is disabled, USART is not able to wake up the MCU from Stop mode + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR1 UESM LL_USART_DisableInStopMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableInStopMode(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_UESM); +} + +/** + * @brief Indicate if USART is enabled in STOP Mode (able to wake up MCU from Stop mode or not) + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR1 UESM LL_USART_IsEnabledInStopMode + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledInStopMode(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_UESM) == (USART_CR1_UESM)) ? 1UL : 0UL); +} + +/** + * @brief Receiver Enable (Receiver is enabled and begins searching for a start bit) + * @rmtoll CR1 RE LL_USART_EnableDirectionRx + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableDirectionRx(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_RE); +} + +/** + * @brief Receiver Disable + * @rmtoll CR1 RE LL_USART_DisableDirectionRx + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableDirectionRx(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_RE); +} + +/** + * @brief Transmitter Enable + * @rmtoll CR1 TE LL_USART_EnableDirectionTx + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableDirectionTx(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_TE); +} + +/** + * @brief Transmitter Disable + * @rmtoll CR1 TE LL_USART_DisableDirectionTx + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableDirectionTx(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_TE); +} + +/** + * @brief Configure simultaneously enabled/disabled states + * of Transmitter and Receiver + * @rmtoll CR1 RE LL_USART_SetTransferDirection\n + * CR1 TE LL_USART_SetTransferDirection + * @param USARTx USART Instance + * @param TransferDirection This parameter can be one of the following values: + * @arg @ref LL_USART_DIRECTION_NONE + * @arg @ref LL_USART_DIRECTION_RX + * @arg @ref LL_USART_DIRECTION_TX + * @arg @ref LL_USART_DIRECTION_TX_RX + * @retval None + */ +__STATIC_INLINE void LL_USART_SetTransferDirection(USART_TypeDef *USARTx, uint32_t TransferDirection) +{ + ATOMIC_MODIFY_REG(USARTx->CR1, USART_CR1_RE | USART_CR1_TE, TransferDirection); +} + +/** + * @brief Return enabled/disabled states of Transmitter and Receiver + * @rmtoll CR1 RE LL_USART_GetTransferDirection\n + * CR1 TE LL_USART_GetTransferDirection + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_DIRECTION_NONE + * @arg @ref LL_USART_DIRECTION_RX + * @arg @ref LL_USART_DIRECTION_TX + * @arg @ref LL_USART_DIRECTION_TX_RX + */ +__STATIC_INLINE uint32_t LL_USART_GetTransferDirection(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_RE | USART_CR1_TE)); +} + +/** + * @brief Configure Parity (enabled/disabled and parity mode if enabled). + * @note This function selects if hardware parity control (generation and detection) is enabled or disabled. + * When the parity control is enabled (Odd or Even), computed parity bit is inserted at the MSB position + * (9th or 8th bit depending on data width) and parity is checked on the received data. + * @rmtoll CR1 PS LL_USART_SetParity\n + * CR1 PCE LL_USART_SetParity + * @param USARTx USART Instance + * @param Parity This parameter can be one of the following values: + * @arg @ref LL_USART_PARITY_NONE + * @arg @ref LL_USART_PARITY_EVEN + * @arg @ref LL_USART_PARITY_ODD + * @retval None + */ +__STATIC_INLINE void LL_USART_SetParity(USART_TypeDef *USARTx, uint32_t Parity) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE, Parity); +} + +/** + * @brief Return Parity configuration (enabled/disabled and parity mode if enabled) + * @rmtoll CR1 PS LL_USART_GetParity\n + * CR1 PCE LL_USART_GetParity + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_PARITY_NONE + * @arg @ref LL_USART_PARITY_EVEN + * @arg @ref LL_USART_PARITY_ODD + */ +__STATIC_INLINE uint32_t LL_USART_GetParity(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE)); +} + +/** + * @brief Set Receiver Wake Up method from Mute mode. + * @rmtoll CR1 WAKE LL_USART_SetWakeUpMethod + * @param USARTx USART Instance + * @param Method This parameter can be one of the following values: + * @arg @ref LL_USART_WAKEUP_IDLELINE + * @arg @ref LL_USART_WAKEUP_ADDRESSMARK + * @retval None + */ +__STATIC_INLINE void LL_USART_SetWakeUpMethod(USART_TypeDef *USARTx, uint32_t Method) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_WAKE, Method); +} + +/** + * @brief Return Receiver Wake Up method from Mute mode + * @rmtoll CR1 WAKE LL_USART_GetWakeUpMethod + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_WAKEUP_IDLELINE + * @arg @ref LL_USART_WAKEUP_ADDRESSMARK + */ +__STATIC_INLINE uint32_t LL_USART_GetWakeUpMethod(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_WAKE)); +} + +/** + * @brief Set Word length (i.e. nb of data bits, excluding start and stop bits) + * @rmtoll CR1 M0 LL_USART_SetDataWidth\n + * CR1 M1 LL_USART_SetDataWidth + * @param USARTx USART Instance + * @param DataWidth This parameter can be one of the following values: + * @arg @ref LL_USART_DATAWIDTH_7B + * @arg @ref LL_USART_DATAWIDTH_8B + * @arg @ref LL_USART_DATAWIDTH_9B + * @retval None + */ +__STATIC_INLINE void LL_USART_SetDataWidth(USART_TypeDef *USARTx, uint32_t DataWidth) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_M, DataWidth); +} + +/** + * @brief Return Word length (i.e. nb of data bits, excluding start and stop bits) + * @rmtoll CR1 M0 LL_USART_GetDataWidth\n + * CR1 M1 LL_USART_GetDataWidth + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_DATAWIDTH_7B + * @arg @ref LL_USART_DATAWIDTH_8B + * @arg @ref LL_USART_DATAWIDTH_9B + */ +__STATIC_INLINE uint32_t LL_USART_GetDataWidth(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_M)); +} + +/** + * @brief Allow switch between Mute Mode and Active mode + * @rmtoll CR1 MME LL_USART_EnableMuteMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableMuteMode(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_MME); +} + +/** + * @brief Prevent Mute Mode use. Set Receiver in active mode permanently. + * @rmtoll CR1 MME LL_USART_DisableMuteMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableMuteMode(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_MME); +} + +/** + * @brief Indicate if switch between Mute Mode and Active mode is allowed + * @rmtoll CR1 MME LL_USART_IsEnabledMuteMode + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledMuteMode(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_MME) == (USART_CR1_MME)) ? 1UL : 0UL); +} + +/** + * @brief Set Oversampling to 8-bit or 16-bit mode + * @rmtoll CR1 OVER8 LL_USART_SetOverSampling + * @param USARTx USART Instance + * @param OverSampling This parameter can be one of the following values: + * @arg @ref LL_USART_OVERSAMPLING_16 + * @arg @ref LL_USART_OVERSAMPLING_8 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetOverSampling(USART_TypeDef *USARTx, uint32_t OverSampling) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_OVER8, OverSampling); +} + +/** + * @brief Return Oversampling mode + * @rmtoll CR1 OVER8 LL_USART_GetOverSampling + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_OVERSAMPLING_16 + * @arg @ref LL_USART_OVERSAMPLING_8 + */ +__STATIC_INLINE uint32_t LL_USART_GetOverSampling(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_OVER8)); +} + +/** + * @brief Configure if Clock pulse of the last data bit is output to the SCLK pin or not + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 LBCL LL_USART_SetLastClkPulseOutput + * @param USARTx USART Instance + * @param LastBitClockPulse This parameter can be one of the following values: + * @arg @ref LL_USART_LASTCLKPULSE_NO_OUTPUT + * @arg @ref LL_USART_LASTCLKPULSE_OUTPUT + * @retval None + */ +__STATIC_INLINE void LL_USART_SetLastClkPulseOutput(USART_TypeDef *USARTx, uint32_t LastBitClockPulse) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_LBCL, LastBitClockPulse); +} + +/** + * @brief Retrieve Clock pulse of the last data bit output configuration + * (Last bit Clock pulse output to the SCLK pin or not) + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 LBCL LL_USART_GetLastClkPulseOutput + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_LASTCLKPULSE_NO_OUTPUT + * @arg @ref LL_USART_LASTCLKPULSE_OUTPUT + */ +__STATIC_INLINE uint32_t LL_USART_GetLastClkPulseOutput(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_LBCL)); +} + +/** + * @brief Select the phase of the clock output on the SCLK pin in synchronous mode + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CPHA LL_USART_SetClockPhase + * @param USARTx USART Instance + * @param ClockPhase This parameter can be one of the following values: + * @arg @ref LL_USART_PHASE_1EDGE + * @arg @ref LL_USART_PHASE_2EDGE + * @retval None + */ +__STATIC_INLINE void LL_USART_SetClockPhase(USART_TypeDef *USARTx, uint32_t ClockPhase) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_CPHA, ClockPhase); +} + +/** + * @brief Return phase of the clock output on the SCLK pin in synchronous mode + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CPHA LL_USART_GetClockPhase + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_PHASE_1EDGE + * @arg @ref LL_USART_PHASE_2EDGE + */ +__STATIC_INLINE uint32_t LL_USART_GetClockPhase(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_CPHA)); +} + +/** + * @brief Select the polarity of the clock output on the SCLK pin in synchronous mode + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CPOL LL_USART_SetClockPolarity + * @param USARTx USART Instance + * @param ClockPolarity This parameter can be one of the following values: + * @arg @ref LL_USART_POLARITY_LOW + * @arg @ref LL_USART_POLARITY_HIGH + * @retval None + */ +__STATIC_INLINE void LL_USART_SetClockPolarity(USART_TypeDef *USARTx, uint32_t ClockPolarity) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_CPOL, ClockPolarity); +} + +/** + * @brief Return polarity of the clock output on the SCLK pin in synchronous mode + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CPOL LL_USART_GetClockPolarity + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_POLARITY_LOW + * @arg @ref LL_USART_POLARITY_HIGH + */ +__STATIC_INLINE uint32_t LL_USART_GetClockPolarity(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_CPOL)); +} + +/** + * @brief Configure Clock signal format (Phase Polarity and choice about output of last bit clock pulse) + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @note Call of this function is equivalent to following function call sequence : + * - Clock Phase configuration using @ref LL_USART_SetClockPhase() function + * - Clock Polarity configuration using @ref LL_USART_SetClockPolarity() function + * - Output of Last bit Clock pulse configuration using @ref LL_USART_SetLastClkPulseOutput() function + * @rmtoll CR2 CPHA LL_USART_ConfigClock\n + * CR2 CPOL LL_USART_ConfigClock\n + * CR2 LBCL LL_USART_ConfigClock + * @param USARTx USART Instance + * @param Phase This parameter can be one of the following values: + * @arg @ref LL_USART_PHASE_1EDGE + * @arg @ref LL_USART_PHASE_2EDGE + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_USART_POLARITY_LOW + * @arg @ref LL_USART_POLARITY_HIGH + * @param LBCPOutput This parameter can be one of the following values: + * @arg @ref LL_USART_LASTCLKPULSE_NO_OUTPUT + * @arg @ref LL_USART_LASTCLKPULSE_OUTPUT + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigClock(USART_TypeDef *USARTx, uint32_t Phase, uint32_t Polarity, uint32_t LBCPOutput) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_LBCL, Phase | Polarity | LBCPOutput); +} + +/** + * @brief Configure Clock source prescaler for baudrate generator and oversampling + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll PRESC PRESCALER LL_USART_SetPrescaler + * @param USARTx USART Instance + * @param PrescalerValue This parameter can be one of the following values: + * @arg @ref LL_USART_PRESCALER_DIV1 + * @arg @ref LL_USART_PRESCALER_DIV2 + * @arg @ref LL_USART_PRESCALER_DIV4 + * @arg @ref LL_USART_PRESCALER_DIV6 + * @arg @ref LL_USART_PRESCALER_DIV8 + * @arg @ref LL_USART_PRESCALER_DIV10 + * @arg @ref LL_USART_PRESCALER_DIV12 + * @arg @ref LL_USART_PRESCALER_DIV16 + * @arg @ref LL_USART_PRESCALER_DIV32 + * @arg @ref LL_USART_PRESCALER_DIV64 + * @arg @ref LL_USART_PRESCALER_DIV128 + * @arg @ref LL_USART_PRESCALER_DIV256 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue) +{ + MODIFY_REG(USARTx->PRESC, USART_PRESC_PRESCALER, (uint16_t)PrescalerValue); +} + +/** + * @brief Retrieve the Clock source prescaler for baudrate generator and oversampling + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll PRESC PRESCALER LL_USART_GetPrescaler + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_PRESCALER_DIV1 + * @arg @ref LL_USART_PRESCALER_DIV2 + * @arg @ref LL_USART_PRESCALER_DIV4 + * @arg @ref LL_USART_PRESCALER_DIV6 + * @arg @ref LL_USART_PRESCALER_DIV8 + * @arg @ref LL_USART_PRESCALER_DIV10 + * @arg @ref LL_USART_PRESCALER_DIV12 + * @arg @ref LL_USART_PRESCALER_DIV16 + * @arg @ref LL_USART_PRESCALER_DIV32 + * @arg @ref LL_USART_PRESCALER_DIV64 + * @arg @ref LL_USART_PRESCALER_DIV128 + * @arg @ref LL_USART_PRESCALER_DIV256 + */ +__STATIC_INLINE uint32_t LL_USART_GetPrescaler(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->PRESC, USART_PRESC_PRESCALER)); +} + +/** + * @brief Enable Clock output on SCLK pin + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CLKEN LL_USART_EnableSCLKOutput + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableSCLKOutput(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_CLKEN); +} + +/** + * @brief Disable Clock output on SCLK pin + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CLKEN LL_USART_DisableSCLKOutput + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableSCLKOutput(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_CLKEN); +} + +/** + * @brief Indicate if Clock output on SCLK pin is enabled + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @rmtoll CR2 CLKEN LL_USART_IsEnabledSCLKOutput + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledSCLKOutput(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_CLKEN) == (USART_CR2_CLKEN)) ? 1UL : 0UL); +} + +/** + * @brief Set the length of the stop bits + * @rmtoll CR2 STOP LL_USART_SetStopBitsLength + * @param USARTx USART Instance + * @param StopBits This parameter can be one of the following values: + * @arg @ref LL_USART_STOPBITS_0_5 + * @arg @ref LL_USART_STOPBITS_1 + * @arg @ref LL_USART_STOPBITS_1_5 + * @arg @ref LL_USART_STOPBITS_2 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetStopBitsLength(USART_TypeDef *USARTx, uint32_t StopBits) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_STOP, StopBits); +} + +/** + * @brief Retrieve the length of the stop bits + * @rmtoll CR2 STOP LL_USART_GetStopBitsLength + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_STOPBITS_0_5 + * @arg @ref LL_USART_STOPBITS_1 + * @arg @ref LL_USART_STOPBITS_1_5 + * @arg @ref LL_USART_STOPBITS_2 + */ +__STATIC_INLINE uint32_t LL_USART_GetStopBitsLength(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_STOP)); +} + +/** + * @brief Configure Character frame format (Datawidth, Parity control, Stop Bits) + * @note Call of this function is equivalent to following function call sequence : + * - Data Width configuration using @ref LL_USART_SetDataWidth() function + * - Parity Control and mode configuration using @ref LL_USART_SetParity() function + * - Stop bits configuration using @ref LL_USART_SetStopBitsLength() function + * @rmtoll CR1 PS LL_USART_ConfigCharacter\n + * CR1 PCE LL_USART_ConfigCharacter\n + * CR1 M0 LL_USART_ConfigCharacter\n + * CR1 M1 LL_USART_ConfigCharacter\n + * CR2 STOP LL_USART_ConfigCharacter + * @param USARTx USART Instance + * @param DataWidth This parameter can be one of the following values: + * @arg @ref LL_USART_DATAWIDTH_7B + * @arg @ref LL_USART_DATAWIDTH_8B + * @arg @ref LL_USART_DATAWIDTH_9B + * @param Parity This parameter can be one of the following values: + * @arg @ref LL_USART_PARITY_NONE + * @arg @ref LL_USART_PARITY_EVEN + * @arg @ref LL_USART_PARITY_ODD + * @param StopBits This parameter can be one of the following values: + * @arg @ref LL_USART_STOPBITS_0_5 + * @arg @ref LL_USART_STOPBITS_1 + * @arg @ref LL_USART_STOPBITS_1_5 + * @arg @ref LL_USART_STOPBITS_2 + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigCharacter(USART_TypeDef *USARTx, uint32_t DataWidth, uint32_t Parity, + uint32_t StopBits) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE | USART_CR1_M, Parity | DataWidth); + MODIFY_REG(USARTx->CR2, USART_CR2_STOP, StopBits); +} + +/** + * @brief Configure TX/RX pins swapping setting. + * @rmtoll CR2 SWAP LL_USART_SetTXRXSwap + * @param USARTx USART Instance + * @param SwapConfig This parameter can be one of the following values: + * @arg @ref LL_USART_TXRX_STANDARD + * @arg @ref LL_USART_TXRX_SWAPPED + * @retval None + */ +__STATIC_INLINE void LL_USART_SetTXRXSwap(USART_TypeDef *USARTx, uint32_t SwapConfig) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_SWAP, SwapConfig); +} + +/** + * @brief Retrieve TX/RX pins swapping configuration. + * @rmtoll CR2 SWAP LL_USART_GetTXRXSwap + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_TXRX_STANDARD + * @arg @ref LL_USART_TXRX_SWAPPED + */ +__STATIC_INLINE uint32_t LL_USART_GetTXRXSwap(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_SWAP)); +} + +/** + * @brief Configure RX pin active level logic + * @rmtoll CR2 RXINV LL_USART_SetRXPinLevel + * @param USARTx USART Instance + * @param PinInvMethod This parameter can be one of the following values: + * @arg @ref LL_USART_RXPIN_LEVEL_STANDARD + * @arg @ref LL_USART_RXPIN_LEVEL_INVERTED + * @retval None + */ +__STATIC_INLINE void LL_USART_SetRXPinLevel(USART_TypeDef *USARTx, uint32_t PinInvMethod) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_RXINV, PinInvMethod); +} + +/** + * @brief Retrieve RX pin active level logic configuration + * @rmtoll CR2 RXINV LL_USART_GetRXPinLevel + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_RXPIN_LEVEL_STANDARD + * @arg @ref LL_USART_RXPIN_LEVEL_INVERTED + */ +__STATIC_INLINE uint32_t LL_USART_GetRXPinLevel(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_RXINV)); +} + +/** + * @brief Configure TX pin active level logic + * @rmtoll CR2 TXINV LL_USART_SetTXPinLevel + * @param USARTx USART Instance + * @param PinInvMethod This parameter can be one of the following values: + * @arg @ref LL_USART_TXPIN_LEVEL_STANDARD + * @arg @ref LL_USART_TXPIN_LEVEL_INVERTED + * @retval None + */ +__STATIC_INLINE void LL_USART_SetTXPinLevel(USART_TypeDef *USARTx, uint32_t PinInvMethod) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_TXINV, PinInvMethod); +} + +/** + * @brief Retrieve TX pin active level logic configuration + * @rmtoll CR2 TXINV LL_USART_GetTXPinLevel + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_TXPIN_LEVEL_STANDARD + * @arg @ref LL_USART_TXPIN_LEVEL_INVERTED + */ +__STATIC_INLINE uint32_t LL_USART_GetTXPinLevel(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_TXINV)); +} + +/** + * @brief Configure Binary data logic. + * @note Allow to define how Logical data from the data register are send/received : + * either in positive/direct logic (1=H, 0=L) or in negative/inverse logic (1=L, 0=H) + * @rmtoll CR2 DATAINV LL_USART_SetBinaryDataLogic + * @param USARTx USART Instance + * @param DataLogic This parameter can be one of the following values: + * @arg @ref LL_USART_BINARY_LOGIC_POSITIVE + * @arg @ref LL_USART_BINARY_LOGIC_NEGATIVE + * @retval None + */ +__STATIC_INLINE void LL_USART_SetBinaryDataLogic(USART_TypeDef *USARTx, uint32_t DataLogic) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_DATAINV, DataLogic); +} + +/** + * @brief Retrieve Binary data configuration + * @rmtoll CR2 DATAINV LL_USART_GetBinaryDataLogic + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_BINARY_LOGIC_POSITIVE + * @arg @ref LL_USART_BINARY_LOGIC_NEGATIVE + */ +__STATIC_INLINE uint32_t LL_USART_GetBinaryDataLogic(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_DATAINV)); +} + +/** + * @brief Configure transfer bit order (either Less or Most Significant Bit First) + * @note MSB First means data is transmitted/received with the MSB first, following the start bit. + * LSB First means data is transmitted/received with data bit 0 first, following the start bit. + * @rmtoll CR2 MSBFIRST LL_USART_SetTransferBitOrder + * @param USARTx USART Instance + * @param BitOrder This parameter can be one of the following values: + * @arg @ref LL_USART_BITORDER_LSBFIRST + * @arg @ref LL_USART_BITORDER_MSBFIRST + * @retval None + */ +__STATIC_INLINE void LL_USART_SetTransferBitOrder(USART_TypeDef *USARTx, uint32_t BitOrder) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_MSBFIRST, BitOrder); +} + +/** + * @brief Return transfer bit order (either Less or Most Significant Bit First) + * @note MSB First means data is transmitted/received with the MSB first, following the start bit. + * LSB First means data is transmitted/received with data bit 0 first, following the start bit. + * @rmtoll CR2 MSBFIRST LL_USART_GetTransferBitOrder + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_BITORDER_LSBFIRST + * @arg @ref LL_USART_BITORDER_MSBFIRST + */ +__STATIC_INLINE uint32_t LL_USART_GetTransferBitOrder(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_MSBFIRST)); +} + +/** + * @brief Enable Auto Baud-Rate Detection + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll CR2 ABREN LL_USART_EnableAutoBaudRate + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableAutoBaudRate(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_ABREN); +} + +/** + * @brief Disable Auto Baud-Rate Detection + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll CR2 ABREN LL_USART_DisableAutoBaudRate + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableAutoBaudRate(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_ABREN); +} + +/** + * @brief Indicate if Auto Baud-Rate Detection mechanism is enabled + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll CR2 ABREN LL_USART_IsEnabledAutoBaud + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledAutoBaud(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_ABREN) == (USART_CR2_ABREN)) ? 1UL : 0UL); +} + +/** + * @brief Set Auto Baud-Rate mode bits + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll CR2 ABRMODE LL_USART_SetAutoBaudRateMode + * @param USARTx USART Instance + * @param AutoBaudRateMode This parameter can be one of the following values: + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_STARTBIT + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_55_FRAME + * @retval None + */ +__STATIC_INLINE void LL_USART_SetAutoBaudRateMode(USART_TypeDef *USARTx, uint32_t AutoBaudRateMode) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_ABRMODE, AutoBaudRateMode); +} + +/** + * @brief Return Auto Baud-Rate mode + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll CR2 ABRMODE LL_USART_GetAutoBaudRateMode + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_STARTBIT + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME + * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_55_FRAME + */ +__STATIC_INLINE uint32_t LL_USART_GetAutoBaudRateMode(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ABRMODE)); +} + +/** + * @brief Enable Receiver Timeout + * @rmtoll CR2 RTOEN LL_USART_EnableRxTimeout + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableRxTimeout(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_RTOEN); +} + +/** + * @brief Disable Receiver Timeout + * @rmtoll CR2 RTOEN LL_USART_DisableRxTimeout + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableRxTimeout(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_RTOEN); +} + +/** + * @brief Indicate if Receiver Timeout feature is enabled + * @rmtoll CR2 RTOEN LL_USART_IsEnabledRxTimeout + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledRxTimeout(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_RTOEN) == (USART_CR2_RTOEN)) ? 1UL : 0UL); +} + +/** + * @brief Set Address of the USART node. + * @note This is used in multiprocessor communication during Mute mode or Stop mode, + * for wake up with address mark detection. + * @note 4bits address node is used when 4-bit Address Detection is selected in ADDM7. + * (b7-b4 should be set to 0) + * 8bits address node is used when 7-bit Address Detection is selected in ADDM7. + * (This is used in multiprocessor communication during Mute mode or Stop mode, + * for wake up with 7-bit address mark detection. + * The MSB of the character sent by the transmitter should be equal to 1. + * It may also be used for character detection during normal reception, + * Mute mode inactive (for example, end of block detection in ModBus protocol). + * In this case, the whole received character (8-bit) is compared to the ADD[7:0] + * value and CMF flag is set on match) + * @rmtoll CR2 ADD LL_USART_ConfigNodeAddress\n + * CR2 ADDM7 LL_USART_ConfigNodeAddress + * @param USARTx USART Instance + * @param AddressLen This parameter can be one of the following values: + * @arg @ref LL_USART_ADDRESS_DETECT_4B + * @arg @ref LL_USART_ADDRESS_DETECT_7B + * @param NodeAddress 4 or 7 bit Address of the USART node. + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigNodeAddress(USART_TypeDef *USARTx, uint32_t AddressLen, uint32_t NodeAddress) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_ADD | USART_CR2_ADDM7, + (uint32_t)(AddressLen | (NodeAddress << USART_CR2_ADD_Pos))); +} + +/** + * @brief Return 8 bit Address of the USART node as set in ADD field of CR2. + * @note If 4-bit Address Detection is selected in ADDM7, + * only 4bits (b3-b0) of returned value are relevant (b31-b4 are not relevant) + * If 7-bit Address Detection is selected in ADDM7, + * only 8bits (b7-b0) of returned value are relevant (b31-b8 are not relevant) + * @rmtoll CR2 ADD LL_USART_GetNodeAddress + * @param USARTx USART Instance + * @retval Address of the USART node (Value between Min_Data=0 and Max_Data=255) + */ +__STATIC_INLINE uint32_t LL_USART_GetNodeAddress(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ADD) >> USART_CR2_ADD_Pos); +} + +/** + * @brief Return Length of Node Address used in Address Detection mode (7-bit or 4-bit) + * @rmtoll CR2 ADDM7 LL_USART_GetNodeAddressLen + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_ADDRESS_DETECT_4B + * @arg @ref LL_USART_ADDRESS_DETECT_7B + */ +__STATIC_INLINE uint32_t LL_USART_GetNodeAddressLen(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ADDM7)); +} + +/** + * @brief Enable RTS HW Flow Control + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 RTSE LL_USART_EnableRTSHWFlowCtrl + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableRTSHWFlowCtrl(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_RTSE); +} + +/** + * @brief Disable RTS HW Flow Control + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 RTSE LL_USART_DisableRTSHWFlowCtrl + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableRTSHWFlowCtrl(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_RTSE); +} + +/** + * @brief Enable CTS HW Flow Control + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 CTSE LL_USART_EnableCTSHWFlowCtrl + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableCTSHWFlowCtrl(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_CTSE); +} + +/** + * @brief Disable CTS HW Flow Control + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 CTSE LL_USART_DisableCTSHWFlowCtrl + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableCTSHWFlowCtrl(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_CTSE); +} + +/** + * @brief Configure HW Flow Control mode (both CTS and RTS) + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 RTSE LL_USART_SetHWFlowCtrl\n + * CR3 CTSE LL_USART_SetHWFlowCtrl + * @param USARTx USART Instance + * @param HardwareFlowControl This parameter can be one of the following values: + * @arg @ref LL_USART_HWCONTROL_NONE + * @arg @ref LL_USART_HWCONTROL_RTS + * @arg @ref LL_USART_HWCONTROL_CTS + * @arg @ref LL_USART_HWCONTROL_RTS_CTS + * @retval None + */ +__STATIC_INLINE void LL_USART_SetHWFlowCtrl(USART_TypeDef *USARTx, uint32_t HardwareFlowControl) +{ + MODIFY_REG(USARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE, HardwareFlowControl); +} + +/** + * @brief Return HW Flow Control configuration (both CTS and RTS) + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 RTSE LL_USART_GetHWFlowCtrl\n + * CR3 CTSE LL_USART_GetHWFlowCtrl + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_HWCONTROL_NONE + * @arg @ref LL_USART_HWCONTROL_RTS + * @arg @ref LL_USART_HWCONTROL_CTS + * @arg @ref LL_USART_HWCONTROL_RTS_CTS + */ +__STATIC_INLINE uint32_t LL_USART_GetHWFlowCtrl(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE)); +} + +/** + * @brief Enable One bit sampling method + * @rmtoll CR3 ONEBIT LL_USART_EnableOneBitSamp + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableOneBitSamp(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_ONEBIT); +} + +/** + * @brief Disable One bit sampling method + * @rmtoll CR3 ONEBIT LL_USART_DisableOneBitSamp + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableOneBitSamp(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_ONEBIT); +} + +/** + * @brief Indicate if One bit sampling method is enabled + * @rmtoll CR3 ONEBIT LL_USART_IsEnabledOneBitSamp + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledOneBitSamp(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_ONEBIT) == (USART_CR3_ONEBIT)) ? 1UL : 0UL); +} + +/** + * @brief Enable Overrun detection + * @rmtoll CR3 OVRDIS LL_USART_EnableOverrunDetect + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableOverrunDetect(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_OVRDIS); +} + +/** + * @brief Disable Overrun detection + * @rmtoll CR3 OVRDIS LL_USART_DisableOverrunDetect + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableOverrunDetect(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_OVRDIS); +} + +/** + * @brief Indicate if Overrun detection is enabled + * @rmtoll CR3 OVRDIS LL_USART_IsEnabledOverrunDetect + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledOverrunDetect(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_OVRDIS) != USART_CR3_OVRDIS) ? 1UL : 0UL); +} + +/** + * @brief Select event type for Wake UP Interrupt Flag (WUS[1:0] bits) + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR3 WUS LL_USART_SetWKUPType + * @param USARTx USART Instance + * @param Type This parameter can be one of the following values: + * @arg @ref LL_USART_WAKEUP_ON_ADDRESS + * @arg @ref LL_USART_WAKEUP_ON_STARTBIT + * @arg @ref LL_USART_WAKEUP_ON_RXNE + * @retval None + */ +__STATIC_INLINE void LL_USART_SetWKUPType(USART_TypeDef *USARTx, uint32_t Type) +{ + MODIFY_REG(USARTx->CR3, USART_CR3_WUS, Type); +} + +/** + * @brief Return event type for Wake UP Interrupt Flag (WUS[1:0] bits) + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR3 WUS LL_USART_GetWKUPType + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_WAKEUP_ON_ADDRESS + * @arg @ref LL_USART_WAKEUP_ON_STARTBIT + * @arg @ref LL_USART_WAKEUP_ON_RXNE + */ +__STATIC_INLINE uint32_t LL_USART_GetWKUPType(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_WUS)); +} + +/** + * @brief Configure USART BRR register for achieving expected Baud Rate value. + * @note Compute and set USARTDIV value in BRR Register (full BRR content) + * according to used Peripheral Clock, Oversampling mode, and expected Baud Rate values + * @note Peripheral clock and Baud rate values provided as function parameters should be valid + * (Baud rate value != 0) + * @note In case of oversampling by 16 and 8, BRR content must be greater than or equal to 16d. + * @rmtoll BRR BRR LL_USART_SetBaudRate + * @param USARTx USART Instance + * @param PeriphClk Peripheral Clock + * @param PrescalerValue This parameter can be one of the following values: + * @arg @ref LL_USART_PRESCALER_DIV1 + * @arg @ref LL_USART_PRESCALER_DIV2 + * @arg @ref LL_USART_PRESCALER_DIV4 + * @arg @ref LL_USART_PRESCALER_DIV6 + * @arg @ref LL_USART_PRESCALER_DIV8 + * @arg @ref LL_USART_PRESCALER_DIV10 + * @arg @ref LL_USART_PRESCALER_DIV12 + * @arg @ref LL_USART_PRESCALER_DIV16 + * @arg @ref LL_USART_PRESCALER_DIV32 + * @arg @ref LL_USART_PRESCALER_DIV64 + * @arg @ref LL_USART_PRESCALER_DIV128 + * @arg @ref LL_USART_PRESCALER_DIV256 + * @param OverSampling This parameter can be one of the following values: + * @arg @ref LL_USART_OVERSAMPLING_16 + * @arg @ref LL_USART_OVERSAMPLING_8 + * @param BaudRate Baud Rate + * @retval None + */ +__STATIC_INLINE void LL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t PrescalerValue, + uint32_t OverSampling, + uint32_t BaudRate) +{ + uint32_t usartdiv; + uint32_t brrtemp; + + if (PrescalerValue > LL_USART_PRESCALER_DIV256) + { + /* Do not overstep the size of USART_PRESCALER_TAB */ + } + else if (BaudRate == 0U) + { + /* Can Not divide per 0 */ + } + else if (OverSampling == LL_USART_OVERSAMPLING_8) + { + usartdiv = (uint16_t)(__LL_USART_DIV_SAMPLING8(PeriphClk, (uint8_t)PrescalerValue, BaudRate)); + brrtemp = usartdiv & 0xFFF0U; + brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + USARTx->BRR = brrtemp; + } + else + { + USARTx->BRR = (uint16_t)(__LL_USART_DIV_SAMPLING16(PeriphClk, (uint8_t)PrescalerValue, BaudRate)); + } +} + +/** + * @brief Return current Baud Rate value, according to USARTDIV present in BRR register + * (full BRR content), and to used Peripheral Clock and Oversampling mode values + * @note In case of non-initialized or invalid value stored in BRR register, value 0 will be returned. + * @note In case of oversampling by 16 and 8, BRR content must be greater than or equal to 16d. + * @rmtoll BRR BRR LL_USART_GetBaudRate + * @param USARTx USART Instance + * @param PeriphClk Peripheral Clock + * @param PrescalerValue This parameter can be one of the following values: + * @arg @ref LL_USART_PRESCALER_DIV1 + * @arg @ref LL_USART_PRESCALER_DIV2 + * @arg @ref LL_USART_PRESCALER_DIV4 + * @arg @ref LL_USART_PRESCALER_DIV6 + * @arg @ref LL_USART_PRESCALER_DIV8 + * @arg @ref LL_USART_PRESCALER_DIV10 + * @arg @ref LL_USART_PRESCALER_DIV12 + * @arg @ref LL_USART_PRESCALER_DIV16 + * @arg @ref LL_USART_PRESCALER_DIV32 + * @arg @ref LL_USART_PRESCALER_DIV64 + * @arg @ref LL_USART_PRESCALER_DIV128 + * @arg @ref LL_USART_PRESCALER_DIV256 + * @param OverSampling This parameter can be one of the following values: + * @arg @ref LL_USART_OVERSAMPLING_16 + * @arg @ref LL_USART_OVERSAMPLING_8 + * @retval Baud Rate + */ +__STATIC_INLINE uint32_t LL_USART_GetBaudRate(const USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t PrescalerValue, + uint32_t OverSampling) +{ + uint32_t usartdiv; + uint32_t brrresult = 0x0U; + uint32_t periphclkpresc = (uint32_t)(PeriphClk / (USART_PRESCALER_TAB[(uint8_t)PrescalerValue])); + + usartdiv = USARTx->BRR; + + if (usartdiv == 0U) + { + /* Do not perform a division by 0 */ + } + else if (OverSampling == LL_USART_OVERSAMPLING_8) + { + usartdiv = (uint16_t)((usartdiv & 0xFFF0U) | ((usartdiv & 0x0007U) << 1U)) ; + if (usartdiv != 0U) + { + brrresult = (periphclkpresc * 2U) / usartdiv; + } + } + else + { + if ((usartdiv & 0xFFFFU) != 0U) + { + brrresult = periphclkpresc / usartdiv; + } + } + return (brrresult); +} + +/** + * @brief Set Receiver Time Out Value (expressed in nb of bits duration) + * @rmtoll RTOR RTO LL_USART_SetRxTimeout + * @param USARTx USART Instance + * @param Timeout Value between Min_Data=0x00 and Max_Data=0x00FFFFFF + * @retval None + */ +__STATIC_INLINE void LL_USART_SetRxTimeout(USART_TypeDef *USARTx, uint32_t Timeout) +{ + MODIFY_REG(USARTx->RTOR, USART_RTOR_RTO, Timeout); +} + +/** + * @brief Get Receiver Time Out Value (expressed in nb of bits duration) + * @rmtoll RTOR RTO LL_USART_GetRxTimeout + * @param USARTx USART Instance + * @retval Value between Min_Data=0x00 and Max_Data=0x00FFFFFF + */ +__STATIC_INLINE uint32_t LL_USART_GetRxTimeout(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->RTOR, USART_RTOR_RTO)); +} + +/** + * @brief Set Block Length value in reception + * @rmtoll RTOR BLEN LL_USART_SetBlockLength + * @param USARTx USART Instance + * @param BlockLength Value between Min_Data=0x00 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_USART_SetBlockLength(USART_TypeDef *USARTx, uint32_t BlockLength) +{ + MODIFY_REG(USARTx->RTOR, USART_RTOR_BLEN, BlockLength << USART_RTOR_BLEN_Pos); +} + +/** + * @brief Get Block Length value in reception + * @rmtoll RTOR BLEN LL_USART_GetBlockLength + * @param USARTx USART Instance + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint32_t LL_USART_GetBlockLength(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->RTOR, USART_RTOR_BLEN) >> USART_RTOR_BLEN_Pos); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Configuration_IRDA Configuration functions related to Irda feature + * @{ + */ + +/** + * @brief Enable IrDA mode + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll CR3 IREN LL_USART_EnableIrda + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIrda(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_IREN); +} + +/** + * @brief Disable IrDA mode + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll CR3 IREN LL_USART_DisableIrda + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIrda(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_IREN); +} + +/** + * @brief Indicate if IrDA mode is enabled + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll CR3 IREN LL_USART_IsEnabledIrda + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIrda(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_IREN) == (USART_CR3_IREN)) ? 1UL : 0UL); +} + +/** + * @brief Configure IrDA Power Mode (Normal or Low Power) + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll CR3 IRLP LL_USART_SetIrdaPowerMode + * @param USARTx USART Instance + * @param PowerMode This parameter can be one of the following values: + * @arg @ref LL_USART_IRDA_POWER_NORMAL + * @arg @ref LL_USART_IRDA_POWER_LOW + * @retval None + */ +__STATIC_INLINE void LL_USART_SetIrdaPowerMode(USART_TypeDef *USARTx, uint32_t PowerMode) +{ + MODIFY_REG(USARTx->CR3, USART_CR3_IRLP, PowerMode); +} + +/** + * @brief Retrieve IrDA Power Mode configuration (Normal or Low Power) + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll CR3 IRLP LL_USART_GetIrdaPowerMode + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_IRDA_POWER_NORMAL + * @arg @ref LL_USART_PHASE_2EDGE + */ +__STATIC_INLINE uint32_t LL_USART_GetIrdaPowerMode(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_IRLP)); +} + +/** + * @brief Set Irda prescaler value, used for dividing the USART clock source + * to achieve the Irda Low Power frequency (8 bits value) + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll GTPR PSC LL_USART_SetIrdaPrescaler + * @param USARTx USART Instance + * @param PrescalerValue Value between Min_Data=0x00 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_USART_SetIrdaPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue) +{ + MODIFY_REG(USARTx->GTPR, USART_GTPR_PSC, (uint16_t)PrescalerValue); +} + +/** + * @brief Return Irda prescaler value, used for dividing the USART clock source + * to achieve the Irda Low Power frequency (8 bits value) + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @rmtoll GTPR PSC LL_USART_GetIrdaPrescaler + * @param USARTx USART Instance + * @retval Irda prescaler value (Value between Min_Data=0x00 and Max_Data=0xFF) + */ +__STATIC_INLINE uint32_t LL_USART_GetIrdaPrescaler(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_PSC)); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Configuration_Smartcard Configuration functions related to Smartcard feature + * @{ + */ + +/** + * @brief Enable Smartcard NACK transmission + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 NACK LL_USART_EnableSmartcardNACK + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableSmartcardNACK(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_NACK); +} + +/** + * @brief Disable Smartcard NACK transmission + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 NACK LL_USART_DisableSmartcardNACK + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableSmartcardNACK(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_NACK); +} + +/** + * @brief Indicate if Smartcard NACK transmission is enabled + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 NACK LL_USART_IsEnabledSmartcardNACK + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledSmartcardNACK(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_NACK) == (USART_CR3_NACK)) ? 1UL : 0UL); +} + +/** + * @brief Enable Smartcard mode + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 SCEN LL_USART_EnableSmartcard + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableSmartcard(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_SCEN); +} + +/** + * @brief Disable Smartcard mode + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 SCEN LL_USART_DisableSmartcard + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableSmartcard(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_SCEN); +} + +/** + * @brief Indicate if Smartcard mode is enabled + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 SCEN LL_USART_IsEnabledSmartcard + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledSmartcard(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_SCEN) == (USART_CR3_SCEN)) ? 1UL : 0UL); +} + +/** + * @brief Set Smartcard Auto-Retry Count value (SCARCNT[2:0] bits) + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @note This bit-field specifies the number of retries in transmit and receive, in Smartcard mode. + * In transmission mode, it specifies the number of automatic retransmission retries, before + * generating a transmission error (FE bit set). + * In reception mode, it specifies the number or erroneous reception trials, before generating a + * reception error (RXNE and PE bits set) + * @rmtoll CR3 SCARCNT LL_USART_SetSmartcardAutoRetryCount + * @param USARTx USART Instance + * @param AutoRetryCount Value between Min_Data=0 and Max_Data=7 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetSmartcardAutoRetryCount(USART_TypeDef *USARTx, uint32_t AutoRetryCount) +{ + MODIFY_REG(USARTx->CR3, USART_CR3_SCARCNT, AutoRetryCount << USART_CR3_SCARCNT_Pos); +} + +/** + * @brief Return Smartcard Auto-Retry Count value (SCARCNT[2:0] bits) + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 SCARCNT LL_USART_GetSmartcardAutoRetryCount + * @param USARTx USART Instance + * @retval Smartcard Auto-Retry Count value (Value between Min_Data=0 and Max_Data=7) + */ +__STATIC_INLINE uint32_t LL_USART_GetSmartcardAutoRetryCount(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_SCARCNT) >> USART_CR3_SCARCNT_Pos); +} + +/** + * @brief Set Smartcard prescaler value, used for dividing the USART clock + * source to provide the SMARTCARD Clock (5 bits value) + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll GTPR PSC LL_USART_SetSmartcardPrescaler + * @param USARTx USART Instance + * @param PrescalerValue Value between Min_Data=0 and Max_Data=31 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetSmartcardPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue) +{ + MODIFY_REG(USARTx->GTPR, USART_GTPR_PSC, (uint16_t)PrescalerValue); +} + +/** + * @brief Return Smartcard prescaler value, used for dividing the USART clock + * source to provide the SMARTCARD Clock (5 bits value) + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll GTPR PSC LL_USART_GetSmartcardPrescaler + * @param USARTx USART Instance + * @retval Smartcard prescaler value (Value between Min_Data=0 and Max_Data=31) + */ +__STATIC_INLINE uint32_t LL_USART_GetSmartcardPrescaler(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_PSC)); +} + +/** + * @brief Set Smartcard Guard time value, expressed in nb of baud clocks periods + * (GT[7:0] bits : Guard time value) + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll GTPR GT LL_USART_SetSmartcardGuardTime + * @param USARTx USART Instance + * @param GuardTime Value between Min_Data=0x00 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_USART_SetSmartcardGuardTime(USART_TypeDef *USARTx, uint32_t GuardTime) +{ + MODIFY_REG(USARTx->GTPR, USART_GTPR_GT, (uint16_t)(GuardTime << USART_GTPR_GT_Pos)); +} + +/** + * @brief Return Smartcard Guard time value, expressed in nb of baud clocks periods + * (GT[7:0] bits : Guard time value) + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll GTPR GT LL_USART_GetSmartcardGuardTime + * @param USARTx USART Instance + * @retval Smartcard Guard time value (Value between Min_Data=0x00 and Max_Data=0xFF) + */ +__STATIC_INLINE uint32_t LL_USART_GetSmartcardGuardTime(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_GT) >> USART_GTPR_GT_Pos); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Configuration_HalfDuplex Configuration functions related to Half Duplex feature + * @{ + */ + +/** + * @brief Enable Single Wire Half-Duplex mode + * @note Macro IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not + * Half-Duplex mode is supported by the USARTx instance. + * @rmtoll CR3 HDSEL LL_USART_EnableHalfDuplex + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableHalfDuplex(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_HDSEL); +} + +/** + * @brief Disable Single Wire Half-Duplex mode + * @note Macro IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not + * Half-Duplex mode is supported by the USARTx instance. + * @rmtoll CR3 HDSEL LL_USART_DisableHalfDuplex + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableHalfDuplex(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_HDSEL); +} + +/** + * @brief Indicate if Single Wire Half-Duplex mode is enabled + * @note Macro IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not + * Half-Duplex mode is supported by the USARTx instance. + * @rmtoll CR3 HDSEL LL_USART_IsEnabledHalfDuplex + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledHalfDuplex(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_HDSEL) == (USART_CR3_HDSEL)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Configuration_SPI_SLAVE Configuration functions related to SPI Slave feature + * @{ + */ +/** + * @brief Enable SPI Synchronous Slave mode + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @rmtoll CR2 SLVEN LL_USART_EnableSPISlave + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableSPISlave(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_SLVEN); +} + +/** + * @brief Disable SPI Synchronous Slave mode + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @rmtoll CR2 SLVEN LL_USART_DisableSPISlave + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableSPISlave(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_SLVEN); +} + +/** + * @brief Indicate if SPI Synchronous Slave mode is enabled + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @rmtoll CR2 SLVEN LL_USART_IsEnabledSPISlave + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledSPISlave(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_SLVEN) == (USART_CR2_SLVEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable SPI Slave Selection using NSS input pin + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @note SPI Slave Selection depends on NSS input pin + * (The slave is selected when NSS is low and deselected when NSS is high). + * @rmtoll CR2 DIS_NSS LL_USART_EnableSPISlaveSelect + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableSPISlaveSelect(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_DIS_NSS); +} + +/** + * @brief Disable SPI Slave Selection using NSS input pin + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @note SPI Slave will be always selected and NSS input pin will be ignored. + * @rmtoll CR2 DIS_NSS LL_USART_DisableSPISlaveSelect + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableSPISlaveSelect(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_DIS_NSS); +} + +/** + * @brief Indicate if SPI Slave Selection depends on NSS input pin + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @rmtoll CR2 DIS_NSS LL_USART_IsEnabledSPISlaveSelect + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledSPISlaveSelect(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_DIS_NSS) != (USART_CR2_DIS_NSS)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Configuration_LIN Configuration functions related to LIN feature + * @{ + */ + +/** + * @brief Set LIN Break Detection Length + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LBDL LL_USART_SetLINBrkDetectionLen + * @param USARTx USART Instance + * @param LINBDLength This parameter can be one of the following values: + * @arg @ref LL_USART_LINBREAK_DETECT_10B + * @arg @ref LL_USART_LINBREAK_DETECT_11B + * @retval None + */ +__STATIC_INLINE void LL_USART_SetLINBrkDetectionLen(USART_TypeDef *USARTx, uint32_t LINBDLength) +{ + MODIFY_REG(USARTx->CR2, USART_CR2_LBDL, LINBDLength); +} + +/** + * @brief Return LIN Break Detection Length + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LBDL LL_USART_GetLINBrkDetectionLen + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_LINBREAK_DETECT_10B + * @arg @ref LL_USART_LINBREAK_DETECT_11B + */ +__STATIC_INLINE uint32_t LL_USART_GetLINBrkDetectionLen(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_LBDL)); +} + +/** + * @brief Enable LIN mode + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LINEN LL_USART_EnableLIN + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableLIN(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_LINEN); +} + +/** + * @brief Disable LIN mode + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LINEN LL_USART_DisableLIN + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableLIN(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_LINEN); +} + +/** + * @brief Indicate if LIN mode is enabled + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LINEN LL_USART_IsEnabledLIN + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledLIN(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_LINEN) == (USART_CR2_LINEN)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Configuration_DE Configuration functions related to Driver Enable feature + * @{ + */ + +/** + * @brief Set DEDT (Driver Enable De-Assertion Time), Time value expressed on 5 bits ([4:0] bits). + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR1 DEDT LL_USART_SetDEDeassertionTime + * @param USARTx USART Instance + * @param Time Value between Min_Data=0 and Max_Data=31 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetDEDeassertionTime(USART_TypeDef *USARTx, uint32_t Time) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_DEDT, Time << USART_CR1_DEDT_Pos); +} + +/** + * @brief Return DEDT (Driver Enable De-Assertion Time) + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR1 DEDT LL_USART_GetDEDeassertionTime + * @param USARTx USART Instance + * @retval Time value expressed on 5 bits ([4:0] bits) : Value between Min_Data=0 and Max_Data=31 + */ +__STATIC_INLINE uint32_t LL_USART_GetDEDeassertionTime(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_DEDT) >> USART_CR1_DEDT_Pos); +} + +/** + * @brief Set DEAT (Driver Enable Assertion Time), Time value expressed on 5 bits ([4:0] bits). + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR1 DEAT LL_USART_SetDEAssertionTime + * @param USARTx USART Instance + * @param Time Value between Min_Data=0 and Max_Data=31 + * @retval None + */ +__STATIC_INLINE void LL_USART_SetDEAssertionTime(USART_TypeDef *USARTx, uint32_t Time) +{ + MODIFY_REG(USARTx->CR1, USART_CR1_DEAT, Time << USART_CR1_DEAT_Pos); +} + +/** + * @brief Return DEAT (Driver Enable Assertion Time) + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR1 DEAT LL_USART_GetDEAssertionTime + * @param USARTx USART Instance + * @retval Time value expressed on 5 bits ([4:0] bits) : Value between Min_Data=0 and Max_Data=31 + */ +__STATIC_INLINE uint32_t LL_USART_GetDEAssertionTime(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_DEAT) >> USART_CR1_DEAT_Pos); +} + +/** + * @brief Enable Driver Enable (DE) Mode + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR3 DEM LL_USART_EnableDEMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableDEMode(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_DEM); +} + +/** + * @brief Disable Driver Enable (DE) Mode + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR3 DEM LL_USART_DisableDEMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableDEMode(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_DEM); +} + +/** + * @brief Indicate if Driver Enable (DE) Mode is enabled + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR3 DEM LL_USART_IsEnabledDEMode + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledDEMode(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_DEM) == (USART_CR3_DEM)) ? 1UL : 0UL); +} + +/** + * @brief Select Driver Enable Polarity + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR3 DEP LL_USART_SetDESignalPolarity + * @param USARTx USART Instance + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_USART_DE_POLARITY_HIGH + * @arg @ref LL_USART_DE_POLARITY_LOW + * @retval None + */ +__STATIC_INLINE void LL_USART_SetDESignalPolarity(USART_TypeDef *USARTx, uint32_t Polarity) +{ + MODIFY_REG(USARTx->CR3, USART_CR3_DEP, Polarity); +} + +/** + * @brief Return Driver Enable Polarity + * @note Macro IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not + * Driver Enable feature is supported by the USARTx instance. + * @rmtoll CR3 DEP LL_USART_GetDESignalPolarity + * @param USARTx USART Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_USART_DE_POLARITY_HIGH + * @arg @ref LL_USART_DE_POLARITY_LOW + */ +__STATIC_INLINE uint32_t LL_USART_GetDESignalPolarity(const USART_TypeDef *USARTx) +{ + return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_DEP)); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_AdvancedConfiguration Advanced Configurations services + * @{ + */ + +/** + * @brief Perform basic configuration of USART for enabling use in Asynchronous Mode (UART) + * @note In UART mode, the following bits must be kept cleared: + * - LINEN bit in the USART_CR2 register, + * - CLKEN bit in the USART_CR2 register, + * - SCEN bit in the USART_CR3 register, + * - IREN bit in the USART_CR3 register, + * - HDSEL bit in the USART_CR3 register. + * @note Call of this function is equivalent to following function call sequence : + * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function + * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function + * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function + * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function + * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function + * @note Other remaining configurations items related to Asynchronous Mode + * (as Baud Rate, Word length, Parity, ...) should be set using + * dedicated functions + * @rmtoll CR2 LINEN LL_USART_ConfigAsyncMode\n + * CR2 CLKEN LL_USART_ConfigAsyncMode\n + * CR3 SCEN LL_USART_ConfigAsyncMode\n + * CR3 IREN LL_USART_ConfigAsyncMode\n + * CR3 HDSEL LL_USART_ConfigAsyncMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigAsyncMode(USART_TypeDef *USARTx) +{ + /* In Asynchronous mode, the following bits must be kept cleared: + - LINEN, CLKEN bits in the USART_CR2 register, + - SCEN, IREN and HDSEL bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL)); +} + +/** + * @brief Perform basic configuration of USART for enabling use in Synchronous Mode + * @note In Synchronous mode, the following bits must be kept cleared: + * - LINEN bit in the USART_CR2 register, + * - SCEN bit in the USART_CR3 register, + * - IREN bit in the USART_CR3 register, + * - HDSEL bit in the USART_CR3 register. + * This function also sets the USART in Synchronous mode. + * @note Macro IS_USART_INSTANCE(USARTx) can be used to check whether or not + * Synchronous mode is supported by the USARTx instance. + * @note Call of this function is equivalent to following function call sequence : + * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function + * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function + * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function + * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function + * - Set CLKEN in CR2 using @ref LL_USART_EnableSCLKOutput() function + * @note Other remaining configurations items related to Synchronous Mode + * (as Baud Rate, Word length, Parity, Clock Polarity, ...) should be set using + * dedicated functions + * @rmtoll CR2 LINEN LL_USART_ConfigSyncMode\n + * CR2 CLKEN LL_USART_ConfigSyncMode\n + * CR3 SCEN LL_USART_ConfigSyncMode\n + * CR3 IREN LL_USART_ConfigSyncMode\n + * CR3 HDSEL LL_USART_ConfigSyncMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigSyncMode(USART_TypeDef *USARTx) +{ + /* In Synchronous mode, the following bits must be kept cleared: + - LINEN bit in the USART_CR2 register, + - SCEN, IREN and HDSEL bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL)); + /* set the UART/USART in Synchronous mode */ + SET_BIT(USARTx->CR2, USART_CR2_CLKEN); +} + +/** + * @brief Perform basic configuration of USART for enabling use in LIN Mode + * @note In LIN mode, the following bits must be kept cleared: + * - STOP and CLKEN bits in the USART_CR2 register, + * - SCEN bit in the USART_CR3 register, + * - IREN bit in the USART_CR3 register, + * - HDSEL bit in the USART_CR3 register. + * This function also set the UART/USART in LIN mode. + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @note Call of this function is equivalent to following function call sequence : + * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function + * - Clear STOP in CR2 using @ref LL_USART_SetStopBitsLength() function + * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function + * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function + * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function + * - Set LINEN in CR2 using @ref LL_USART_EnableLIN() function + * @note Other remaining configurations items related to LIN Mode + * (as Baud Rate, Word length, LIN Break Detection Length, ...) should be set using + * dedicated functions + * @rmtoll CR2 CLKEN LL_USART_ConfigLINMode\n + * CR2 STOP LL_USART_ConfigLINMode\n + * CR2 LINEN LL_USART_ConfigLINMode\n + * CR3 IREN LL_USART_ConfigLINMode\n + * CR3 SCEN LL_USART_ConfigLINMode\n + * CR3 HDSEL LL_USART_ConfigLINMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigLINMode(USART_TypeDef *USARTx) +{ + /* In LIN mode, the following bits must be kept cleared: + - STOP and CLKEN bits in the USART_CR2 register, + - IREN, SCEN and HDSEL bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_CLKEN | USART_CR2_STOP)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_IREN | USART_CR3_SCEN | USART_CR3_HDSEL)); + /* Set the UART/USART in LIN mode */ + SET_BIT(USARTx->CR2, USART_CR2_LINEN); +} + +/** + * @brief Perform basic configuration of USART for enabling use in Half Duplex Mode + * @note In Half Duplex mode, the following bits must be kept cleared: + * - LINEN bit in the USART_CR2 register, + * - CLKEN bit in the USART_CR2 register, + * - SCEN bit in the USART_CR3 register, + * - IREN bit in the USART_CR3 register, + * This function also sets the UART/USART in Half Duplex mode. + * @note Macro IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not + * Half-Duplex mode is supported by the USARTx instance. + * @note Call of this function is equivalent to following function call sequence : + * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function + * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function + * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function + * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function + * - Set HDSEL in CR3 using @ref LL_USART_EnableHalfDuplex() function + * @note Other remaining configurations items related to Half Duplex Mode + * (as Baud Rate, Word length, Parity, ...) should be set using + * dedicated functions + * @rmtoll CR2 LINEN LL_USART_ConfigHalfDuplexMode\n + * CR2 CLKEN LL_USART_ConfigHalfDuplexMode\n + * CR3 HDSEL LL_USART_ConfigHalfDuplexMode\n + * CR3 SCEN LL_USART_ConfigHalfDuplexMode\n + * CR3 IREN LL_USART_ConfigHalfDuplexMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigHalfDuplexMode(USART_TypeDef *USARTx) +{ + /* In Half Duplex mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN and IREN bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN)); + /* set the UART/USART in Half Duplex mode */ + SET_BIT(USARTx->CR3, USART_CR3_HDSEL); +} + +/** + * @brief Perform basic configuration of USART for enabling use in Smartcard Mode + * @note In Smartcard mode, the following bits must be kept cleared: + * - LINEN bit in the USART_CR2 register, + * - IREN bit in the USART_CR3 register, + * - HDSEL bit in the USART_CR3 register. + * This function also configures Stop bits to 1.5 bits and + * sets the USART in Smartcard mode (SCEN bit). + * Clock Output is also enabled (CLKEN). + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @note Call of this function is equivalent to following function call sequence : + * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function + * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function + * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function + * - Configure STOP in CR2 using @ref LL_USART_SetStopBitsLength() function + * - Set CLKEN in CR2 using @ref LL_USART_EnableSCLKOutput() function + * - Set SCEN in CR3 using @ref LL_USART_EnableSmartcard() function + * @note Other remaining configurations items related to Smartcard Mode + * (as Baud Rate, Word length, Parity, ...) should be set using + * dedicated functions + * @rmtoll CR2 LINEN LL_USART_ConfigSmartcardMode\n + * CR2 STOP LL_USART_ConfigSmartcardMode\n + * CR2 CLKEN LL_USART_ConfigSmartcardMode\n + * CR3 HDSEL LL_USART_ConfigSmartcardMode\n + * CR3 SCEN LL_USART_ConfigSmartcardMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigSmartcardMode(USART_TypeDef *USARTx) +{ + /* In Smartcard mode, the following bits must be kept cleared: + - LINEN bit in the USART_CR2 register, + - IREN and HDSEL bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_IREN | USART_CR3_HDSEL)); + /* Configure Stop bits to 1.5 bits */ + /* Synchronous mode is activated by default */ + SET_BIT(USARTx->CR2, (USART_CR2_STOP_0 | USART_CR2_STOP_1 | USART_CR2_CLKEN)); + /* set the UART/USART in Smartcard mode */ + SET_BIT(USARTx->CR3, USART_CR3_SCEN); +} + +/** + * @brief Perform basic configuration of USART for enabling use in Irda Mode + * @note In IRDA mode, the following bits must be kept cleared: + * - LINEN bit in the USART_CR2 register, + * - STOP and CLKEN bits in the USART_CR2 register, + * - SCEN bit in the USART_CR3 register, + * - HDSEL bit in the USART_CR3 register. + * This function also sets the UART/USART in IRDA mode (IREN bit). + * @note Macro IS_IRDA_INSTANCE(USARTx) can be used to check whether or not + * IrDA feature is supported by the USARTx instance. + * @note Call of this function is equivalent to following function call sequence : + * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function + * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function + * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function + * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function + * - Configure STOP in CR2 using @ref LL_USART_SetStopBitsLength() function + * - Set IREN in CR3 using @ref LL_USART_EnableIrda() function + * @note Other remaining configurations items related to Irda Mode + * (as Baud Rate, Word length, Power mode, ...) should be set using + * dedicated functions + * @rmtoll CR2 LINEN LL_USART_ConfigIrdaMode\n + * CR2 CLKEN LL_USART_ConfigIrdaMode\n + * CR2 STOP LL_USART_ConfigIrdaMode\n + * CR3 SCEN LL_USART_ConfigIrdaMode\n + * CR3 HDSEL LL_USART_ConfigIrdaMode\n + * CR3 IREN LL_USART_ConfigIrdaMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigIrdaMode(USART_TypeDef *USARTx) +{ + /* In IRDA mode, the following bits must be kept cleared: + - LINEN, STOP and CLKEN bits in the USART_CR2 register, + - SCEN and HDSEL bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN | USART_CR2_STOP)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL)); + /* set the UART/USART in IRDA mode */ + SET_BIT(USARTx->CR3, USART_CR3_IREN); +} + +/** + * @brief Perform basic configuration of USART for enabling use in Multi processor Mode + * (several USARTs connected in a network, one of the USARTs can be the master, + * its TX output connected to the RX inputs of the other slaves USARTs). + * @note In MultiProcessor mode, the following bits must be kept cleared: + * - LINEN bit in the USART_CR2 register, + * - CLKEN bit in the USART_CR2 register, + * - SCEN bit in the USART_CR3 register, + * - IREN bit in the USART_CR3 register, + * - HDSEL bit in the USART_CR3 register. + * @note Call of this function is equivalent to following function call sequence : + * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function + * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function + * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function + * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function + * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function + * @note Other remaining configurations items related to Multi processor Mode + * (as Baud Rate, Wake Up Method, Node address, ...) should be set using + * dedicated functions + * @rmtoll CR2 LINEN LL_USART_ConfigMultiProcessMode\n + * CR2 CLKEN LL_USART_ConfigMultiProcessMode\n + * CR3 SCEN LL_USART_ConfigMultiProcessMode\n + * CR3 HDSEL LL_USART_ConfigMultiProcessMode\n + * CR3 IREN LL_USART_ConfigMultiProcessMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ConfigMultiProcessMode(USART_TypeDef *USARTx) +{ + /* In Multi Processor mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - IREN, SCEN and HDSEL bits in the USART_CR3 register. + */ + CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Check if the USART Parity Error Flag is set or not + * @rmtoll ISR PE LL_USART_IsActiveFlag_PE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_PE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_PE) == (USART_ISR_PE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Framing Error Flag is set or not + * @rmtoll ISR FE LL_USART_IsActiveFlag_FE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_FE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_FE) == (USART_ISR_FE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Noise error detected Flag is set or not + * @rmtoll ISR NE LL_USART_IsActiveFlag_NE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_NE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_NE) == (USART_ISR_NE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART OverRun Error Flag is set or not + * @rmtoll ISR ORE LL_USART_IsActiveFlag_ORE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ORE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_ORE) == (USART_ISR_ORE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART IDLE line detected Flag is set or not + * @rmtoll ISR IDLE LL_USART_IsActiveFlag_IDLE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_IDLE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_IDLE) == (USART_ISR_IDLE)) ? 1UL : 0UL); +} + +#define LL_USART_IsActiveFlag_RXNE LL_USART_IsActiveFlag_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Check if the USART Read Data Register or USART RX FIFO Not Empty Flag is set or not + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ISR RXNE_RXFNE LL_USART_IsActiveFlag_RXNE_RXFNE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXNE_RXFNE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_RXNE_RXFNE) == (USART_ISR_RXNE_RXFNE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Transmission Complete Flag is set or not + * @rmtoll ISR TC LL_USART_IsActiveFlag_TC + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TC(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_TC) == (USART_ISR_TC)) ? 1UL : 0UL); +} + +#define LL_USART_IsActiveFlag_TXE LL_USART_IsActiveFlag_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Check if the USART Transmit Data Register Empty or USART TX FIFO Not Full Flag is set or not + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ISR TXE_TXFNF LL_USART_IsActiveFlag_TXE_TXFNF + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXE_TXFNF(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_TXE_TXFNF) == (USART_ISR_TXE_TXFNF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART LIN Break Detection Flag is set or not + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll ISR LBDF LL_USART_IsActiveFlag_LBD + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_LBD(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_LBDF) == (USART_ISR_LBDF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART CTS interrupt Flag is set or not + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll ISR CTSIF LL_USART_IsActiveFlag_nCTS + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_nCTS(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_CTSIF) == (USART_ISR_CTSIF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART CTS Flag is set or not + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll ISR CTS LL_USART_IsActiveFlag_CTS + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_CTS(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_CTS) == (USART_ISR_CTS)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Receiver Time Out Flag is set or not + * @rmtoll ISR RTOF LL_USART_IsActiveFlag_RTO + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RTO(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_RTOF) == (USART_ISR_RTOF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART End Of Block Flag is set or not + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll ISR EOBF LL_USART_IsActiveFlag_EOB + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_EOB(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_EOBF) == (USART_ISR_EOBF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the SPI Slave Underrun error flag is set or not + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @rmtoll ISR UDR LL_USART_IsActiveFlag_UDR + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_UDR(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_UDR) == (USART_ISR_UDR)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Auto-Baud Rate Error Flag is set or not + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll ISR ABRE LL_USART_IsActiveFlag_ABRE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ABRE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_ABRE) == (USART_ISR_ABRE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Auto-Baud Rate Flag is set or not + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll ISR ABRF LL_USART_IsActiveFlag_ABR + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ABR(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_ABRF) == (USART_ISR_ABRF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Busy Flag is set or not + * @rmtoll ISR BUSY LL_USART_IsActiveFlag_BUSY + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_BUSY(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_BUSY) == (USART_ISR_BUSY)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Character Match Flag is set or not + * @rmtoll ISR CMF LL_USART_IsActiveFlag_CM + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_CM(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_CMF) == (USART_ISR_CMF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Send Break Flag is set or not + * @rmtoll ISR SBKF LL_USART_IsActiveFlag_SBK + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_SBK(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_SBKF) == (USART_ISR_SBKF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Receive Wake Up from mute mode Flag is set or not + * @rmtoll ISR RWU LL_USART_IsActiveFlag_RWU + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RWU(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_RWU) == (USART_ISR_RWU)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Wake Up from stop mode Flag is set or not + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll ISR WUF LL_USART_IsActiveFlag_WKUP + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_WKUP(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_WUF) == (USART_ISR_WUF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Transmit Enable Acknowledge Flag is set or not + * @rmtoll ISR TEACK LL_USART_IsActiveFlag_TEACK + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TEACK(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_TEACK) == (USART_ISR_TEACK)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Receive Enable Acknowledge Flag is set or not + * @rmtoll ISR REACK LL_USART_IsActiveFlag_REACK + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_REACK(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_REACK) == (USART_ISR_REACK)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART TX FIFO Empty Flag is set or not + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ISR TXFE LL_USART_IsActiveFlag_TXFE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXFE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_TXFE) == (USART_ISR_TXFE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART RX FIFO Full Flag is set or not + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ISR RXFF LL_USART_IsActiveFlag_RXFF + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXFF(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_RXFF) == (USART_ISR_RXFF)) ? 1UL : 0UL); +} + +/** + * @brief Check if the Smartcard Transmission Complete Before Guard Time Flag is set or not + * @rmtoll ISR TCBGT LL_USART_IsActiveFlag_TCBGT + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TCBGT(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_TCBGT) == (USART_ISR_TCBGT)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART TX FIFO Threshold Flag is set or not + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ISR TXFT LL_USART_IsActiveFlag_TXFT + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXFT(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_TXFT) == (USART_ISR_TXFT)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART RX FIFO Threshold Flag is set or not + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ISR RXFT LL_USART_IsActiveFlag_RXFT + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXFT(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->ISR, USART_ISR_RXFT) == (USART_ISR_RXFT)) ? 1UL : 0UL); +} + +/** + * @brief Clear Parity Error Flag + * @rmtoll ICR PECF LL_USART_ClearFlag_PE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_PE(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_PECF); +} + +/** + * @brief Clear Framing Error Flag + * @rmtoll ICR FECF LL_USART_ClearFlag_FE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_FE(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_FECF); +} + +/** + * @brief Clear Noise Error detected Flag + * @rmtoll ICR NECF LL_USART_ClearFlag_NE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_NE(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_NECF); +} + +/** + * @brief Clear OverRun Error Flag + * @rmtoll ICR ORECF LL_USART_ClearFlag_ORE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_ORE(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_ORECF); +} + +/** + * @brief Clear IDLE line detected Flag + * @rmtoll ICR IDLECF LL_USART_ClearFlag_IDLE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_IDLE(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_IDLECF); +} + +/** + * @brief Clear TX FIFO Empty Flag + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll ICR TXFECF LL_USART_ClearFlag_TXFE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_TXFE(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_TXFECF); +} + +/** + * @brief Clear Transmission Complete Flag + * @rmtoll ICR TCCF LL_USART_ClearFlag_TC + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_TC(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_TCCF); +} + +/** + * @brief Clear Smartcard Transmission Complete Before Guard Time Flag + * @rmtoll ICR TCBGTCF LL_USART_ClearFlag_TCBGT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_TCBGT(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_TCBGTCF); +} + +/** + * @brief Clear LIN Break Detection Flag + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll ICR LBDCF LL_USART_ClearFlag_LBD + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_LBD(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_LBDCF); +} + +/** + * @brief Clear CTS Interrupt Flag + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll ICR CTSCF LL_USART_ClearFlag_nCTS + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_nCTS(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_CTSCF); +} + +/** + * @brief Clear Receiver Time Out Flag + * @rmtoll ICR RTOCF LL_USART_ClearFlag_RTO + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_RTO(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_RTOCF); +} + +/** + * @brief Clear End Of Block Flag + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll ICR EOBCF LL_USART_ClearFlag_EOB + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_EOB(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_EOBCF); +} + +/** + * @brief Clear SPI Slave Underrun Flag + * @note Macro IS_UART_SPI_SLAVE_INSTANCE(USARTx) can be used to check whether or not + * SPI Slave mode feature is supported by the USARTx instance. + * @rmtoll ICR UDRCF LL_USART_ClearFlag_UDR + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_UDR(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_UDRCF); +} + +/** + * @brief Clear Character Match Flag + * @rmtoll ICR CMCF LL_USART_ClearFlag_CM + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_CM(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_CMCF); +} + +/** + * @brief Clear Wake Up from stop mode Flag + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll ICR WUCF LL_USART_ClearFlag_WKUP + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_ClearFlag_WKUP(USART_TypeDef *USARTx) +{ + WRITE_REG(USARTx->ICR, USART_ICR_WUCF); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable IDLE Interrupt + * @rmtoll CR1 IDLEIE LL_USART_EnableIT_IDLE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_IDLE(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_IDLEIE); +} + +#define LL_USART_EnableIT_RXNE LL_USART_EnableIT_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Enable RX Not Empty and RX FIFO Not Empty Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 RXNEIE_RXFNEIE LL_USART_EnableIT_RXNE_RXFNE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_RXNE_RXFNE(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_RXNEIE_RXFNEIE); +} + +/** + * @brief Enable Transmission Complete Interrupt + * @rmtoll CR1 TCIE LL_USART_EnableIT_TC + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_TC(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_TCIE); +} + +#define LL_USART_EnableIT_TXE LL_USART_EnableIT_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Enable TX Empty and TX FIFO Not Full Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 TXEIE_TXFNFIE LL_USART_EnableIT_TXE_TXFNF + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_TXE_TXFNF(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_TXEIE_TXFNFIE); +} + +/** + * @brief Enable Parity Error Interrupt + * @rmtoll CR1 PEIE LL_USART_EnableIT_PE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_PE(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_PEIE); +} + +/** + * @brief Enable Character Match Interrupt + * @rmtoll CR1 CMIE LL_USART_EnableIT_CM + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_CM(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_CMIE); +} + +/** + * @brief Enable Receiver Timeout Interrupt + * @rmtoll CR1 RTOIE LL_USART_EnableIT_RTO + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_RTO(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_RTOIE); +} + +/** + * @brief Enable End Of Block Interrupt + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR1 EOBIE LL_USART_EnableIT_EOB + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_EOB(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_EOBIE); +} + +/** + * @brief Enable TX FIFO Empty Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 TXFEIE LL_USART_EnableIT_TXFE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_TXFE(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_TXFEIE); +} + +/** + * @brief Enable RX FIFO Full Interrupt + * @rmtoll CR1 RXFFIE LL_USART_EnableIT_RXFF + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_RXFF(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_RXFFIE); +} + +/** + * @brief Enable LIN Break Detection Interrupt + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LBDIE LL_USART_EnableIT_LBD + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_LBD(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR2, USART_CR2_LBDIE); +} + +/** + * @brief Enable Error Interrupt + * @note When set, Error Interrupt Enable Bit is enabling interrupt generation in case of a framing + * error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the USARTx_ISR register). + * 0: Interrupt is inhibited + * 1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the USARTx_ISR register. + * @rmtoll CR3 EIE LL_USART_EnableIT_ERROR + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_ERROR(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_EIE); +} + +/** + * @brief Enable CTS Interrupt + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 CTSIE LL_USART_EnableIT_CTS + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_CTS(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_CTSIE); +} + +/** + * @brief Enable Wake Up from Stop Mode Interrupt + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR3 WUFIE LL_USART_EnableIT_WKUP + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_WKUP(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_WUFIE); +} + +/** + * @brief Enable TX FIFO Threshold Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 TXFTIE LL_USART_EnableIT_TXFT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_TXFT(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_TXFTIE); +} + +/** + * @brief Enable Smartcard Transmission Complete Before Guard Time Interrupt + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 TCBGTIE LL_USART_EnableIT_TCBGT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_TCBGT(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_TCBGTIE); +} + +/** + * @brief Enable RX FIFO Threshold Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 RXFTIE LL_USART_EnableIT_RXFT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableIT_RXFT(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_RXFTIE); +} + +/** + * @brief Disable IDLE Interrupt + * @rmtoll CR1 IDLEIE LL_USART_DisableIT_IDLE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_IDLE(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_IDLEIE); +} + +#define LL_USART_DisableIT_RXNE LL_USART_DisableIT_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Disable RX Not Empty and RX FIFO Not Empty Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 RXNEIE_RXFNEIE LL_USART_DisableIT_RXNE_RXFNE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_RXNE_RXFNE(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_RXNEIE_RXFNEIE); +} + +/** + * @brief Disable Transmission Complete Interrupt + * @rmtoll CR1 TCIE LL_USART_DisableIT_TC + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_TC(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_TCIE); +} + +#define LL_USART_DisableIT_TXE LL_USART_DisableIT_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Disable TX Empty and TX FIFO Not Full Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 TXEIE_TXFNFIE LL_USART_DisableIT_TXE_TXFNF + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_TXE_TXFNF(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_TXEIE_TXFNFIE); +} + +/** + * @brief Disable Parity Error Interrupt + * @rmtoll CR1 PEIE LL_USART_DisableIT_PE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_PE(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_PEIE); +} + +/** + * @brief Disable Character Match Interrupt + * @rmtoll CR1 CMIE LL_USART_DisableIT_CM + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_CM(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_CMIE); +} + +/** + * @brief Disable Receiver Timeout Interrupt + * @rmtoll CR1 RTOIE LL_USART_DisableIT_RTO + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_RTO(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_RTOIE); +} + +/** + * @brief Disable End Of Block Interrupt + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR1 EOBIE LL_USART_DisableIT_EOB + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_EOB(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_EOBIE); +} + +/** + * @brief Disable TX FIFO Empty Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 TXFEIE LL_USART_DisableIT_TXFE + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_TXFE(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_TXFEIE); +} + +/** + * @brief Disable RX FIFO Full Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 RXFFIE LL_USART_DisableIT_RXFF + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_RXFF(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_RXFFIE); +} + +/** + * @brief Disable LIN Break Detection Interrupt + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LBDIE LL_USART_DisableIT_LBD + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_LBD(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR2, USART_CR2_LBDIE); +} + +/** + * @brief Disable Error Interrupt + * @note When set, Error Interrupt Enable Bit is enabling interrupt generation in case of a framing + * error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the USARTx_ISR register). + * 0: Interrupt is inhibited + * 1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the USARTx_ISR register. + * @rmtoll CR3 EIE LL_USART_DisableIT_ERROR + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_ERROR(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_EIE); +} + +/** + * @brief Disable CTS Interrupt + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 CTSIE LL_USART_DisableIT_CTS + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_CTS(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_CTSIE); +} + +/** + * @brief Disable Wake Up from Stop Mode Interrupt + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR3 WUFIE LL_USART_DisableIT_WKUP + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_WKUP(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_WUFIE); +} + +/** + * @brief Disable TX FIFO Threshold Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 TXFTIE LL_USART_DisableIT_TXFT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_TXFT(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_TXFTIE); +} + +/** + * @brief Disable Smartcard Transmission Complete Before Guard Time Interrupt + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 TCBGTIE LL_USART_DisableIT_TCBGT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_TCBGT(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_TCBGTIE); +} + +/** + * @brief Disable RX FIFO Threshold Interrupt + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 RXFTIE LL_USART_DisableIT_RXFT + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableIT_RXFT(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_RXFTIE); +} + +/** + * @brief Check if the USART IDLE Interrupt source is enabled or disabled. + * @rmtoll CR1 IDLEIE LL_USART_IsEnabledIT_IDLE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_IDLE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_IDLEIE) == (USART_CR1_IDLEIE)) ? 1UL : 0UL); +} + +#define LL_USART_IsEnabledIT_RXNE LL_USART_IsEnabledIT_RXNE_RXFNE /* Redefinition for legacy purpose */ + +/** + * @brief Check if the USART RX Not Empty and USART RX FIFO Not Empty Interrupt is enabled or disabled. + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 RXNEIE_RXFNEIE LL_USART_IsEnabledIT_RXNE_RXFNE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXNE_RXFNE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_RXNEIE_RXFNEIE) == (USART_CR1_RXNEIE_RXFNEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Transmission Complete Interrupt is enabled or disabled. + * @rmtoll CR1 TCIE LL_USART_IsEnabledIT_TC + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TC(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_TCIE) == (USART_CR1_TCIE)) ? 1UL : 0UL); +} + +#define LL_USART_IsEnabledIT_TXE LL_USART_IsEnabledIT_TXE_TXFNF /* Redefinition for legacy purpose */ + +/** + * @brief Check if the USART TX Empty and USART TX FIFO Not Full Interrupt is enabled or disabled + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 TXEIE_TXFNFIE LL_USART_IsEnabledIT_TXE_TXFNF + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXE_TXFNF(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_TXEIE_TXFNFIE) == (USART_CR1_TXEIE_TXFNFIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Parity Error Interrupt is enabled or disabled. + * @rmtoll CR1 PEIE LL_USART_IsEnabledIT_PE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_PE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_PEIE) == (USART_CR1_PEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Character Match Interrupt is enabled or disabled. + * @rmtoll CR1 CMIE LL_USART_IsEnabledIT_CM + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CM(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_CMIE) == (USART_CR1_CMIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Receiver Timeout Interrupt is enabled or disabled. + * @rmtoll CR1 RTOIE LL_USART_IsEnabledIT_RTO + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RTO(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_RTOIE) == (USART_CR1_RTOIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART End Of Block Interrupt is enabled or disabled. + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR1 EOBIE LL_USART_IsEnabledIT_EOB + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_EOB(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_EOBIE) == (USART_CR1_EOBIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART TX FIFO Empty Interrupt is enabled or disabled + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 TXFEIE LL_USART_IsEnabledIT_TXFE + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXFE(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_TXFEIE) == (USART_CR1_TXFEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART RX FIFO Full Interrupt is enabled or disabled + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR1 RXFFIE LL_USART_IsEnabledIT_RXFF + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXFF(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR1, USART_CR1_RXFFIE) == (USART_CR1_RXFFIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART LIN Break Detection Interrupt is enabled or disabled. + * @note Macro IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not + * LIN feature is supported by the USARTx instance. + * @rmtoll CR2 LBDIE LL_USART_IsEnabledIT_LBD + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_LBD(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR2, USART_CR2_LBDIE) == (USART_CR2_LBDIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Error Interrupt is enabled or disabled. + * @rmtoll CR3 EIE LL_USART_IsEnabledIT_ERROR + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_ERROR(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_EIE) == (USART_CR3_EIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART CTS Interrupt is enabled or disabled. + * @note Macro IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not + * Hardware Flow control feature is supported by the USARTx instance. + * @rmtoll CR3 CTSIE LL_USART_IsEnabledIT_CTS + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CTS(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_CTSIE) == (USART_CR3_CTSIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the USART Wake Up from Stop Mode Interrupt is enabled or disabled. + * @note Macro IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not + * Wake-up from Stop mode feature is supported by the USARTx instance. + * @rmtoll CR3 WUFIE LL_USART_IsEnabledIT_WKUP + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_WKUP(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_WUFIE) == (USART_CR3_WUFIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if USART TX FIFO Threshold Interrupt is enabled or disabled + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 TXFTIE LL_USART_IsEnabledIT_TXFT + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXFT(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_TXFTIE) == (USART_CR3_TXFTIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if the Smartcard Transmission Complete Before Guard Time Interrupt is enabled or disabled. + * @note Macro IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not + * Smartcard feature is supported by the USARTx instance. + * @rmtoll CR3 TCBGTIE LL_USART_IsEnabledIT_TCBGT + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TCBGT(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_TCBGTIE) == (USART_CR3_TCBGTIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if USART RX FIFO Threshold Interrupt is enabled or disabled + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll CR3 RXFTIE LL_USART_IsEnabledIT_RXFT + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXFT(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_RXFTIE) == (USART_CR3_RXFTIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_DMA_Management DMA_Management + * @{ + */ + +/** + * @brief Enable DMA Mode for reception + * @rmtoll CR3 DMAR LL_USART_EnableDMAReq_RX + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableDMAReq_RX(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_DMAR); +} + +/** + * @brief Disable DMA Mode for reception + * @rmtoll CR3 DMAR LL_USART_DisableDMAReq_RX + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableDMAReq_RX(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_DMAR); +} + +/** + * @brief Check if DMA Mode is enabled for reception + * @rmtoll CR3 DMAR LL_USART_IsEnabledDMAReq_RX + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledDMAReq_RX(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_DMAR) == (USART_CR3_DMAR)) ? 1UL : 0UL); +} + +/** + * @brief Enable DMA Mode for transmission + * @rmtoll CR3 DMAT LL_USART_EnableDMAReq_TX + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableDMAReq_TX(USART_TypeDef *USARTx) +{ + ATOMIC_SET_BIT(USARTx->CR3, USART_CR3_DMAT); +} + +/** + * @brief Disable DMA Mode for transmission + * @rmtoll CR3 DMAT LL_USART_DisableDMAReq_TX + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableDMAReq_TX(USART_TypeDef *USARTx) +{ + ATOMIC_CLEAR_BIT(USARTx->CR3, USART_CR3_DMAT); +} + +/** + * @brief Check if DMA Mode is enabled for transmission + * @rmtoll CR3 DMAT LL_USART_IsEnabledDMAReq_TX + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledDMAReq_TX(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_DMAT) == (USART_CR3_DMAT)) ? 1UL : 0UL); +} + +/** + * @brief Enable DMA Disabling on Reception Error + * @rmtoll CR3 DDRE LL_USART_EnableDMADeactOnRxErr + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_EnableDMADeactOnRxErr(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->CR3, USART_CR3_DDRE); +} + +/** + * @brief Disable DMA Disabling on Reception Error + * @rmtoll CR3 DDRE LL_USART_DisableDMADeactOnRxErr + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_DisableDMADeactOnRxErr(USART_TypeDef *USARTx) +{ + CLEAR_BIT(USARTx->CR3, USART_CR3_DDRE); +} + +/** + * @brief Indicate if DMA Disabling on Reception Error is disabled + * @rmtoll CR3 DDRE LL_USART_IsEnabledDMADeactOnRxErr + * @param USARTx USART Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_USART_IsEnabledDMADeactOnRxErr(const USART_TypeDef *USARTx) +{ + return ((READ_BIT(USARTx->CR3, USART_CR3_DDRE) == (USART_CR3_DDRE)) ? 1UL : 0UL); +} + +/** + * @brief Get the data register address used for DMA transfer + * @rmtoll RDR RDR LL_USART_DMA_GetRegAddr\n + * @rmtoll TDR TDR LL_USART_DMA_GetRegAddr + * @param USARTx USART Instance + * @param Direction This parameter can be one of the following values: + * @arg @ref LL_USART_DMA_REG_DATA_TRANSMIT + * @arg @ref LL_USART_DMA_REG_DATA_RECEIVE + * @retval Address of data register + */ +__STATIC_INLINE uint32_t LL_USART_DMA_GetRegAddr(const USART_TypeDef *USARTx, uint32_t Direction) +{ + uint32_t data_reg_addr; + + if (Direction == LL_USART_DMA_REG_DATA_TRANSMIT) + { + /* return address of TDR register */ + data_reg_addr = (uint32_t) &(USARTx->TDR); + } + else + { + /* return address of RDR register */ + data_reg_addr = (uint32_t) &(USARTx->RDR); + } + + return data_reg_addr; +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Data_Management Data_Management + * @{ + */ + +/** + * @brief Read Receiver Data register (Receive Data value, 8 bits) + * @rmtoll RDR RDR LL_USART_ReceiveData8 + * @param USARTx USART Instance + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_USART_ReceiveData8(const USART_TypeDef *USARTx) +{ + return (uint8_t)(READ_BIT(USARTx->RDR, USART_RDR_RDR) & 0xFFU); +} + +/** + * @brief Read Receiver Data register (Receive Data value, 9 bits) + * @rmtoll RDR RDR LL_USART_ReceiveData9 + * @param USARTx USART Instance + * @retval Value between Min_Data=0x00 and Max_Data=0x1FF + */ +__STATIC_INLINE uint16_t LL_USART_ReceiveData9(const USART_TypeDef *USARTx) +{ + return (uint16_t)(READ_BIT(USARTx->RDR, USART_RDR_RDR)); +} + +/** + * @brief Write in Transmitter Data Register (Transmit Data value, 8 bits) + * @rmtoll TDR TDR LL_USART_TransmitData8 + * @param USARTx USART Instance + * @param Value between Min_Data=0x00 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_USART_TransmitData8(USART_TypeDef *USARTx, uint8_t Value) +{ + USARTx->TDR = Value; +} + +/** + * @brief Write in Transmitter Data Register (Transmit Data value, 9 bits) + * @rmtoll TDR TDR LL_USART_TransmitData9 + * @param USARTx USART Instance + * @param Value between Min_Data=0x00 and Max_Data=0x1FF + * @retval None + */ +__STATIC_INLINE void LL_USART_TransmitData9(USART_TypeDef *USARTx, uint16_t Value) +{ + USARTx->TDR = (uint16_t)(Value & 0x1FFUL); +} + +/** + * @} + */ + +/** @defgroup USART_LL_EF_Execution Execution + * @{ + */ + +/** + * @brief Request an Automatic Baud Rate measurement on next received data frame + * @note Macro IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not + * Auto Baud Rate detection feature is supported by the USARTx instance. + * @rmtoll RQR ABRRQ LL_USART_RequestAutoBaudRate + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_RequestAutoBaudRate(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_ABRRQ); +} + +/** + * @brief Request Break sending + * @rmtoll RQR SBKRQ LL_USART_RequestBreakSending + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_RequestBreakSending(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_SBKRQ); +} + +/** + * @brief Put USART in mute mode and set the RWU flag + * @rmtoll RQR MMRQ LL_USART_RequestEnterMuteMode + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_RequestEnterMuteMode(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_MMRQ); +} + +/** + * @brief Request a Receive Data and FIFO flush + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @note Allows to discard the received data without reading them, and avoid an overrun + * condition. + * @rmtoll RQR RXFRQ LL_USART_RequestRxDataFlush + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_RequestRxDataFlush(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_RXFRQ); +} + +/** + * @brief Request a Transmit data and FIFO flush + * @note Macro IS_UART_FIFO_INSTANCE(USARTx) can be used to check whether or not + * FIFO mode feature is supported by the USARTx instance. + * @rmtoll RQR TXFRQ LL_USART_RequestTxDataFlush + * @param USARTx USART Instance + * @retval None + */ +__STATIC_INLINE void LL_USART_RequestTxDataFlush(USART_TypeDef *USARTx) +{ + SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_TXFRQ); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup USART_LL_EF_Init Initialization and de-initialization functions + * @{ + */ +ErrorStatus LL_USART_DeInit(const USART_TypeDef *USARTx); +ErrorStatus LL_USART_Init(USART_TypeDef *USARTx, const LL_USART_InitTypeDef *USART_InitStruct); +void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct); +ErrorStatus LL_USART_ClockInit(USART_TypeDef *USARTx, const LL_USART_ClockInitTypeDef *USART_ClockInitStruct); +void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* USART1 || USART2 || USART3 || UART4 || UART5 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_USART_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_utils.h b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_utils.h new file mode 100644 index 0000000..9fb3ff5 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_utils.h @@ -0,0 +1,329 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_utils.h + * @author MCD Application Team + * @brief Header file of UTILS LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL UTILS driver contains a set of generic APIs that can be + used by user: + (+) Device electronic signature + (+) Timing functions + (+) PLL configuration functions + + @endverbatim + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32G4xx_LL_UTILS_H +#define STM32G4xx_LL_UTILS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx.h" + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +/** @defgroup UTILS_LL UTILS + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Constants UTILS Private Constants + * @{ + */ + +/* Max delay can be used in LL_mDelay */ +#define LL_MAX_DELAY 0xFFFFFFFFU + +/** + * @brief Unique device ID register base address + */ +#define UID_BASE_ADDRESS UID_BASE + +/** + * @brief Flash size data register base address + */ +#define FLASHSIZE_BASE_ADDRESS FLASHSIZE_BASE + +/** + * @brief Package data register base address + */ +#define PACKAGE_BASE_ADDRESS PACKAGE_BASE + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Macros UTILS Private Macros + * @{ + */ +/** + * @} + */ +/* Exported types ------------------------------------------------------------*/ +/** @defgroup UTILS_LL_ES_INIT UTILS Exported structures + * @{ + */ +/** + * @brief UTILS PLL structure definition + */ +typedef struct +{ + uint32_t PLLM; /*!< Division factor for PLL VCO input clock. + This parameter can be a value of @ref RCC_LL_EC_PLLM_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ + + uint32_t PLLN; /*!< Multiplication factor for PLL VCO output clock. + This parameter must be a number between Min_Data = 8 and Max_Data = 86 + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ + + uint32_t PLLR; /*!< Division for the main system clock. + This parameter can be a value of @ref RCC_LL_EC_PLLR_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ +} LL_UTILS_PLLInitTypeDef; + +/** + * @brief UTILS System, AHB and APB buses clock configuration structure definition + */ +typedef struct +{ + uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK). + This parameter can be a value of @ref RCC_LL_EC_SYSCLK_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAHBPrescaler(). */ + + uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_LL_EC_APB1_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAPB1Prescaler(). */ + + uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_LL_EC_APB2_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAPB2Prescaler(). */ + +} LL_UTILS_ClkInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup UTILS_LL_Exported_Constants UTILS Exported Constants + * @{ + */ + +/** @defgroup UTILS_EC_HSE_BYPASS HSE Bypass activation + * @{ + */ +#define LL_UTILS_HSEBYPASS_OFF 0x00000000U /*!< HSE Bypass is not enabled */ +#define LL_UTILS_HSEBYPASS_ON 0x00000001U /*!< HSE Bypass is enabled */ +/** + * @} + */ + +/** @defgroup UTILS_EC_PACKAGETYPE PACKAGE TYPE + * @{ + */ +#define LL_UTILS_PACKAGETYPE_LQFP64 0x00000000U /*!< LQFP64 package type */ +#define LL_UTILS_PACKAGETYPE_WLCSP64 0x00000001U /*!< WLCSP64 package type */ +#if defined (STM32G411xB) || defined (STM32G411xC) || defined (STM32G431xx) || defined (STM32G414xx) || defined (STM32G441xx) || \ + defined (STM32G471xx) || defined (STM32G473xx) || defined (STM32G483xx) || defined (STM32G474xx) || defined (STM32G484xx) +#define LL_UTILS_PACKAGETYPE_LQFP100_LQFP80 0x00000002U /*!< LQFP100 \ LQFP80 package type */ +#define LL_UTILS_PACKAGETYPE_LQFP100 LL_UTILS_PACKAGETYPE_LQFP100_LQFP80 /*!< For backward compatibility */ +#else +#define LL_UTILS_PACKAGETYPE_LQFP100 0x00000002U /*!< LQFP100 package type */ +#endif /* STM32G411xB || STM32G411xC || STM32G431xx || STM32G414xx || STM32G441xx || STM32G471xx || STM32G473xx || STM32G483xx || STM32G474xx || STM32G484xx */ +#define LL_UTILS_PACKAGETYPE_WLCSP81 0x00000005U /*!< WLCSP81 package type */ +#define LL_UTILS_PACKAGETYPE_LQFP128_UFBGA121 0x00000007U /*!< LQFP128 \ UFBGA121 package type */ +#define LL_UTILS_PACKAGETYPE_LQFP128 LL_UTILS_PACKAGETYPE_LQFP128_UFBGA121 /*!< For backward compatibility */ +#define LL_UTILS_PACKAGETYPE_UFQFPN32 0x00000008U /*!< UFQFPN32 package type */ +#define LL_UTILS_PACKAGETYPE_LQFP32 0x00000009U /*!< LQFP32 package type */ +#define LL_UTILS_PACKAGETYPE_UFQFPN48 0x0000000AU /*!< UFQFPN48 package type */ +#define LL_UTILS_PACKAGETYPE_LQFP48 0x0000000BU /*!< LQFP48 package type */ +#define LL_UTILS_PACKAGETYPE_WLCSP49 0x0000000CU /*!< WLCSP49 package type */ +#define LL_UTILS_PACKAGETYPE_UFBGA64 0x0000000DU /*!< UFBGA64 package type */ +#define LL_UTILS_PACKAGETYPE_TFBGA100 0x0000000EU /*!< TFBGA100 package type */ +#define LL_UTILS_PACKAGETYPE_UFBGA100 LL_UTILS_PACKAGETYPE_TFBGA100 /*!< For backward compatibility */ +#define LL_UTILS_PACKAGETYPE_LQFP48_EBIKE 0x00000010U /*!< LQFP48 EBIKE package type */ +#if defined (STM32G491xx) || defined (STM32G4A1xx) +#define LL_UTILS_PACKAGETYPE_LQFP80 0x00000011U /*!< LQFP80 package type */ +#endif /* STM32G491xx || STM32G4A1xx */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup UTILS_LL_Exported_Functions UTILS Exported Functions + * @{ + */ + +/** @defgroup UTILS_EF_DEVICE_ELECTRONIC_SIGNATURE DEVICE ELECTRONIC SIGNATURE + * @{ + */ + +/** + * @brief Get Word0 of the unique device identifier (UID based on 96 bits) + * @retval UID[31:0]: X and Y coordinates on the wafer expressed in BCD format + */ +__STATIC_INLINE uint32_t LL_GetUID_Word0(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)UID_BASE_ADDRESS))); +} + +/** + * @brief Get Word1 of the unique device identifier (UID based on 96 bits) + * @retval UID[63:32]: Wafer number (UID[39:32]) & LOT_NUM[23:0] (UID[63:40]) + */ +__STATIC_INLINE uint32_t LL_GetUID_Word1(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 4U)))); +} + +/** + * @brief Get Word2 of the unique device identifier (UID based on 96 bits) + * @retval UID[95:64]: Lot number (ASCII encoded) - LOT_NUM[55:24] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word2(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 8U)))); +} + +/** + * @brief Get Flash memory size + * @note This bitfield indicates the size of the device Flash memory expressed in + * Kbytes. As an example, 0x040 corresponds to 64 Kbytes. + * @retval FLASH_SIZE[15:0]: Flash memory size + */ +__STATIC_INLINE uint32_t LL_GetFlashSize(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)FLASHSIZE_BASE_ADDRESS)) & 0x0000FFFFUL); +} + +/** + * @brief Get Package type + * @retval Returned value can be one of the following values: + * @arg @ref LL_UTILS_PACKAGETYPE_LQFP64 + * @arg @ref LL_UTILS_PACKAGETYPE_LQFP100 + * @arg @ref LL_UTILS_PACKAGETYPE_WLCSP81 + * @arg @ref LL_UTILS_PACKAGETYPE_LQFP128 + * @arg @ref LL_UTILS_PACKAGETYPE_UFQFPN32 + * @arg @ref LL_UTILS_PACKAGETYPE_LQFP32 + * @arg @ref LL_UTILS_PACKAGETYPE_UFQFPN48 + * @arg @ref LL_UTILS_PACKAGETYPE_LQFP48 + * @arg @ref LL_UTILS_PACKAGETYPE_WLCSP49 + * @arg @ref LL_UTILS_PACKAGETYPE_UFBGA64 + * @arg @ref LL_UTILS_PACKAGETYPE_UFBGA100 + * @arg @ref LL_UTILS_PACKAGETYPE_LQFP48_EBIKE + * +*/ +__STATIC_INLINE uint32_t LL_GetPackageType(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)PACKAGE_BASE_ADDRESS)) & 0x1FU); +} + +/** + * @} + */ + +/** @defgroup UTILS_LL_EF_DELAY DELAY + * @{ + */ + +/** + * @brief This function configures the Cortex-M SysTick source of the time base. + * @param HCLKFrequency HCLK frequency in Hz (can be calculated thanks to RCC helper macro) + * @note When a RTOS is used, it is recommended to avoid changing the SysTick + * configuration by calling this function, for a delay use rather osDelay RTOS service. + * @param Ticks Frequency of Ticks (Hz) + * @retval None + */ +__STATIC_INLINE void LL_InitTick(uint32_t HCLKFrequency, uint32_t Ticks) +{ + /* Configure the SysTick to have interrupt in 1ms time base */ + SysTick->LOAD = (uint32_t)((HCLKFrequency / Ticks) - 1UL); /* set reload register */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable the Systick Timer */ +} + +void LL_Init1msTick(uint32_t HCLKFrequency); +void LL_mDelay(uint32_t Delay); + +/** + * @} + */ + +/** @defgroup UTILS_EF_SYSTEM SYSTEM + * @{ + */ + +void LL_SetSystemCoreClock(uint32_t HCLKFrequency); +ErrorStatus LL_SetFlashLatency(uint32_t HCLKFrequency); +ErrorStatus LL_PLL_ConfigSystemClock_HSI(LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, + LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); +ErrorStatus LL_PLL_ConfigSystemClock_HSE(uint32_t HSEFrequency, uint32_t HSEBypass, + LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32G4xx_LL_UTILS_H */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/LICENSE.txt b/Drivers/STM32G4xx_HAL_Driver/LICENSE.txt new file mode 100644 index 0000000..3edc4d1 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/LICENSE.txt @@ -0,0 +1,6 @@ +This software component is provided to you as part of a software package and +applicable license terms are in the Package_license file. If you received this +software component outside of a package or without applicable license terms, +the terms of the BSD-3-Clause license shall apply. +You may obtain a copy of the BSD-3-Clause at: +https://opensource.org/licenses/BSD-3-Clause diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c new file mode 100644 index 0000000..563b90d --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c @@ -0,0 +1,797 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal.c + * @author MCD Application Team + * @brief HAL module driver. + * This is the common part of the HAL initialization + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The common HAL driver contains a set of generic and common APIs that can be + used by the PPP peripheral drivers and the user to start using the HAL. + [..] + The HAL contains two APIs' categories: + (+) Common HAL APIs + (+) Services HAL APIs + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup HAL HAL + * @brief HAL module driver + * @{ + */ + +#ifdef HAL_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** + * @brief STM32G4xx HAL Driver version number V1.2.5 + */ +#define __STM32G4xx_HAL_VERSION_MAIN (0x01U) /*!< [31:24] main version */ +#define __STM32G4xx_HAL_VERSION_SUB1 (0x02U) /*!< [23:16] sub1 version */ +#define __STM32G4xx_HAL_VERSION_SUB2 (0x05U) /*!< [15:8] sub2 version */ +#define __STM32G4xx_HAL_VERSION_RC (0x00U) /*!< [7:0] release candidate */ +#define __STM32G4xx_HAL_VERSION ((__STM32G4xx_HAL_VERSION_MAIN << 24U)\ + |(__STM32G4xx_HAL_VERSION_SUB1 << 16U)\ + |(__STM32G4xx_HAL_VERSION_SUB2 << 8U )\ + |(__STM32G4xx_HAL_VERSION_RC)) + +#if defined(VREFBUF) +#define VREFBUF_TIMEOUT_VALUE 10U /* 10 ms */ +#endif /* VREFBUF */ + +/* ------------ SYSCFG registers bit address in the alias region ------------ */ +#define SYSCFG_OFFSET (SYSCFG_BASE - PERIPH_BASE) +/* --- MEMRMP Register ---*/ +/* Alias word address of FB_MODE bit */ +#define MEMRMP_OFFSET SYSCFG_OFFSET +#define FB_MODE_BitNumber ((uint8_t)0x8) +#define FB_MODE_BB (PERIPH_BB_BASE + (MEMRMP_OFFSET * 32) + (FB_MODE_BitNumber * 4)) + +/* --- GPC Register ---*/ +/* Alias word address of CCMER bit */ +#define SCSR_OFFSET (SYSCFG_OFFSET + 0x18) +#define CCMER_BitNumber ((uint8_t)0x0) +#define SCSR_CCMER_BB (PERIPH_BB_BASE + (SCSR_OFFSET * 32) + (CCMER_BitNumber * 4)) + +/* Private macro -------------------------------------------------------------*/ +/* Exported variables ---------------------------------------------------------*/ +/** @defgroup HAL_Exported_Variables HAL Exported Variables + * @{ + */ +__IO uint32_t uwTick; +uint32_t uwTickPrio = (1UL << __NVIC_PRIO_BITS); /* Invalid PRIO */ +uint32_t uwTickFreq = HAL_TICK_FREQ_DEFAULT; /* 1KHz */ +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup HAL_Exported_Functions HAL Exported Functions + * @{ + */ + +/** @defgroup HAL_Exported_Functions_Group1 Initialization and de-initialization Functions + * @brief HAL Initialization and de-initialization functions + * +@verbatim + =============================================================================== + ##### Initialization and Configuration functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Initialize the Flash interface the NVIC allocation and initial time base + clock configuration. + (+) De-Initialize common part of the HAL. + (+) Configure the time base source to have 1ms time base with a dedicated + Tick interrupt priority. + (++) SysTick timer is used by default as source of time base, but user + can eventually implement his proper time base source (a general purpose + timer for example or other time source), keeping in mind that Time base + duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and + handled in milliseconds basis. + (++) Time base configuration function (HAL_InitTick ()) is called automatically + at the beginning of the program after reset by HAL_Init() or at any time + when clock is configured, by HAL_RCC_ClockConfig(). + (++) Source of time base is configured to generate interrupts at regular + time intervals. Care must be taken if HAL_Delay() is called from a + peripheral ISR process, the Tick interrupt line must have higher priority + (numerically lower) than the peripheral interrupt. Otherwise the caller + ISR process will be blocked. + (++) functions affecting time base configurations are declared as __weak + to make override possible in case of other implementations in user file. +@endverbatim + * @{ + */ + +/** + * @brief This function is used to configure the Flash prefetch, the Instruction and Data caches, + * the time base source, NVIC and any required global low level hardware + * by calling the HAL_MspInit() callback function to be optionally defined in user file + * stm32g4xx_hal_msp.c. + * + * @note HAL_Init() function is called at the beginning of program after reset and before + * the clock configuration. + * + * @note In the default implementation the System Timer (Systick) is used as source of time base. + * The Systick configuration is based on HSI clock, as HSI is the clock + * used after a system Reset and the NVIC configuration is set to Priority group 4. + * Once done, time base tick starts incrementing: the tick variable counter is incremented + * each 1ms in the SysTick_Handler() interrupt handler. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + HAL_StatusTypeDef status = HAL_OK; + /* Configure Flash prefetch, Instruction cache, Data cache */ + /* Default configuration at reset is: */ + /* - Prefetch disabled */ + /* - Instruction cache enabled */ + /* - Data cache enabled */ +#if (INSTRUCTION_CACHE_ENABLE == 0U) + __HAL_FLASH_INSTRUCTION_CACHE_DISABLE(); +#endif /* INSTRUCTION_CACHE_ENABLE */ + +#if (DATA_CACHE_ENABLE == 0U) + __HAL_FLASH_DATA_CACHE_DISABLE(); +#endif /* DATA_CACHE_ENABLE */ + +#if (PREFETCH_ENABLE != 0U) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + + /* Use SysTick as time base source and configure 1ms tick (default clock after Reset is HSI) */ + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) + { + status = HAL_ERROR; + } + else + { + /* Init the low level hardware */ + HAL_MspInit(); + } + + /* Return function status */ + return status; + +} + +/** + * @brief This function de-initializes common part of the HAL and stops the source of time base. + * @note This function is optional. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DeInit(void) +{ + /* Reset of all peripherals */ + __HAL_RCC_APB1_FORCE_RESET(); + __HAL_RCC_APB1_RELEASE_RESET(); + + __HAL_RCC_APB2_FORCE_RESET(); + __HAL_RCC_APB2_RELEASE_RESET(); + + __HAL_RCC_AHB1_FORCE_RESET(); + __HAL_RCC_AHB1_RELEASE_RESET(); + + __HAL_RCC_AHB2_FORCE_RESET(); + __HAL_RCC_AHB2_RELEASE_RESET(); + + __HAL_RCC_AHB3_FORCE_RESET(); + __HAL_RCC_AHB3_RELEASE_RESET(); + + /* De-Init the low level hardware */ + HAL_MspDeInit(); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Initialize the MSP. + * @retval None + */ +__weak void HAL_MspInit(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes the MSP. + * @retval None + */ +__weak void HAL_MspDeInit(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief This function configures the source of the time base: + * The time source is configured to have 1ms time base with a dedicated + * Tick interrupt priority. + * @note This function is called automatically at the beginning of program after + * reset by HAL_Init() or at any time when clock is reconfigured by HAL_RCC_ClockConfig(). + * @note In the default implementation, SysTick timer is the source of time base. + * It is used to generate interrupts at regular time intervals. + * Care must be taken if HAL_Delay() is called from a peripheral ISR process, + * The SysTick interrupt must have higher priority (numerically lower) + * than the peripheral interrupt. Otherwise the caller ISR process will be blocked. + * The function is declared as __weak to be overwritten in case of other + * implementation in user file. + * @param TickPriority: Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (uwTickFreq != 0U) + { + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) + { + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + uwTickPrio = TickPriority; + } + else + { + status = HAL_ERROR; + } + } + else + { + status = HAL_ERROR; + } + } + else + { + status = HAL_ERROR; + } + + /* Return function status */ + return status; +} + +/** + * @} + */ + +/** @defgroup HAL_Exported_Functions_Group2 HAL Control functions + * @brief HAL Control functions + * +@verbatim + =============================================================================== + ##### HAL Control functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Provide a tick value in millisecond + (+) Provide a blocking delay in millisecond + (+) Suspend the time base source interrupt + (+) Resume the time base source interrupt + (+) Get the HAL API driver version + (+) Get the device identifier + (+) Get the device revision identifier + +@endverbatim + * @{ + */ + +/** + * @brief This function is called to increment a global variable "uwTick" + * used as application time base. + * @note In the default implementation, this variable is incremented each 1ms + * in SysTick ISR. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_IncTick(void) +{ + uwTick += uwTickFreq; +} + +/** + * @brief Provides a tick value in millisecond. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval tick value + */ +__weak uint32_t HAL_GetTick(void) +{ + return uwTick; +} + +/** + * @brief This function returns a tick priority. + * @retval tick priority + */ +uint32_t HAL_GetTickPrio(void) +{ + return uwTickPrio; +} + +/** + * @brief Set new tick Freq. + * @retval status + */ +HAL_StatusTypeDef HAL_SetTickFreq(uint32_t Freq) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t prevTickFreq; + + assert_param(IS_TICKFREQ(Freq)); + + if (uwTickFreq != Freq) + { + /* Back up uwTickFreq frequency */ + prevTickFreq = uwTickFreq; + + /* Update uwTickFreq global variable used by HAL_InitTick() */ + uwTickFreq = Freq; + + /* Apply the new tick Freq */ + status = HAL_InitTick(uwTickPrio); + + if (status != HAL_OK) + { + /* Restore previous tick frequency */ + uwTickFreq = prevTickFreq; + } + } + + return status; +} + +/** + * @brief Returns tick frequency. + * @retval Tick frequency. + * Value of @ref HAL_TickFreqTypeDef. + */ +uint32_t HAL_GetTickFreq(void) +{ + return uwTickFreq; +} + +/** + * @brief This function provides minimum delay (in milliseconds) based + * on variable incremented. + * @note In the default implementation , SysTick timer is the source of time base. + * It is used to generate interrupts at regular time intervals where uwTick + * is incremented. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + uint32_t tickstart = HAL_GetTick(); + uint32_t wait = Delay; + + /* Add a freq to guarantee minimum wait */ + if (wait < HAL_MAX_DELAY) + { + wait += (uint32_t)(uwTickFreq); + } + + while ((HAL_GetTick() - tickstart) < wait) + { + } +} + +/** + * @brief Suspends Tick increment. + * @note In the default implementation , SysTick timer is the source of time base. It is + * used to generate interrupts at regular time intervals. Once HAL_SuspendTick() + * is called, the SysTick interrupt will be disabled and so Tick increment + * is suspended. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_SuspendTick(void) +{ + /* Disable SysTick Interrupt */ + CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Resume Tick increment. + * @note In the default implementation , SysTick timer is the source of time base. It is + * used to generate interrupts at regular time intervals. Once HAL_ResumeTick() + * is called, the SysTick interrupt will be enabled and so Tick increment + * is resumed. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_ResumeTick(void) +{ + /* Enable SysTick Interrupt */ + SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Returns the HAL revision. + * @retval version : 0xXYZR (8bits for each decimal, R for RC) + */ +uint32_t HAL_GetHalVersion(void) +{ + return __STM32G4xx_HAL_VERSION; +} + +/** + * @brief Returns the device revision identifier. + * @retval Device revision identifier + */ +uint32_t HAL_GetREVID(void) +{ + return ((DBGMCU->IDCODE & DBGMCU_IDCODE_REV_ID) >> 16U); +} + +/** + * @brief Returns the device identifier. + * @retval Device identifier + */ +uint32_t HAL_GetDEVID(void) +{ + return (DBGMCU->IDCODE & DBGMCU_IDCODE_DEV_ID); +} + +/** + * @brief Return the first word of the unique device identifier (UID based on 96 bits) + * @retval Device identifier + */ +uint32_t HAL_GetUIDw0(void) +{ + return (READ_REG(*((uint32_t *)UID_BASE))); +} + +/** + * @brief Return the second word of the unique device identifier (UID based on 96 bits) + * @retval Device identifier + */ +uint32_t HAL_GetUIDw1(void) +{ + return (READ_REG(*((uint32_t *)(UID_BASE + 4U)))); +} + +/** + * @brief Return the third word of the unique device identifier (UID based on 96 bits) + * @retval Device identifier + */ +uint32_t HAL_GetUIDw2(void) +{ + return (READ_REG(*((uint32_t *)(UID_BASE + 8U)))); +} + +/** + * @} + */ + +/** @defgroup HAL_Exported_Functions_Group3 HAL Debug functions + * @brief HAL Debug functions + * +@verbatim + =============================================================================== + ##### HAL Debug functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Enable/Disable Debug module during SLEEP mode + (+) Enable/Disable Debug module during STOP0/STOP1/STOP2 modes + (+) Enable/Disable Debug module during STANDBY mode + +@endverbatim + * @{ + */ + +/** + * @brief Enable the Debug Module during SLEEP mode. + * @retval None + */ +void HAL_DBGMCU_EnableDBGSleepMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Disable the Debug Module during SLEEP mode. + * @retval None + */ +void HAL_DBGMCU_DisableDBGSleepMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Enable the Debug Module during STOP0/STOP1/STOP2 modes. + * @retval None + */ +void HAL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP0/STOP1/STOP2 modes. + * @retval None + */ +void HAL_DBGMCU_DisableDBGStopMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Enable the Debug Module during STANDBY mode. + * @retval None + */ +void HAL_DBGMCU_EnableDBGStandbyMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Disable the Debug Module during STANDBY mode. + * @retval None + */ +void HAL_DBGMCU_DisableDBGStandbyMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @} + */ + +/** @defgroup HAL_Exported_Functions_Group4 HAL SYSCFG configuration functions + * @brief HAL SYSCFG configuration functions + * +@verbatim + =============================================================================== + ##### HAL SYSCFG configuration functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Start a hardware CCMSRAM erase operation + (+) Enable/Disable the Internal FLASH Bank Swapping + (+) Configure the Voltage reference buffer + (+) Enable/Disable the Voltage reference buffer + (+) Enable/Disable the I/O analog switch voltage booster + +@endverbatim + * @{ + */ +/** + * @brief Start a hardware CCMSRAM erase operation. + * @note As long as CCMSRAM is not erased the CCMER bit will be set. + * This bit is automatically reset at the end of the CCMSRAM erase operation. + * @retval None + */ +void HAL_SYSCFG_CCMSRAMErase(void) +{ + /* unlock the write protection of the CCMER bit */ + SYSCFG->SKR = 0xCA; + SYSCFG->SKR = 0x53; + /* Starts a hardware CCMSRAM erase operation*/ + SET_BIT(SYSCFG->SCSR, SYSCFG_SCSR_CCMER); +} + +/** + * @brief Enable the Internal FLASH Bank Swapping. + * + * @note This function can be used only for STM32G4xx devices. + * + * @note Flash Bank2 mapped at 0x08000000 (and aliased @0x00000000) + * and Flash Bank1 mapped at 0x08040000 (and aliased at 0x00040000) + * + * @retval None + */ +void HAL_SYSCFG_EnableMemorySwappingBank(void) +{ + SET_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE); +} + +/** + * @brief Disable the Internal FLASH Bank Swapping. + * + * @note This function can be used only for STM32G4xx devices. + * + * @note The default state : Flash Bank1 mapped at 0x08000000 (and aliased @0x0000 0000) + * and Flash Bank2 mapped at 0x08040000 (and aliased at 0x00040000) + * + * @retval None + */ +void HAL_SYSCFG_DisableMemorySwappingBank(void) +{ + CLEAR_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE); +} + +#if defined(VREFBUF) +/** + * @brief Configure the internal voltage reference buffer voltage scale. + * @param VoltageScaling: specifies the output voltage to achieve + * This parameter can be one of the following values: + * @arg SYSCFG_VREFBUF_VOLTAGE_SCALE0: VREFBUF_OUT around 2.048 V. + * This requires VDDA equal to or higher than 2.4 V. + * @arg SYSCFG_VREFBUF_VOLTAGE_SCALE1: VREFBUF_OUT around 2.5 V. + * This requires VDDA equal to or higher than 2.8 V. + * @arg SYSCFG_VREFBUF_VOLTAGE_SCALE2: VREFBUF_OUT around 2.9 V. + * This requires VDDA equal to or higher than 3.15 V. + * @retval None + */ +void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling) +{ + /* Check the parameters */ + assert_param(IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(VoltageScaling)); + + MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_VRS, VoltageScaling); +} + +/** + * @brief Configure the internal voltage reference buffer high impedance mode. + * @param Mode: specifies the high impedance mode + * This parameter can be one of the following values: + * @arg SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE: VREF+ pin is internally connect to VREFINT output. + * @arg SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE: VREF+ pin is high impedance. + * @retval None + */ +void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode) +{ + /* Check the parameters */ + assert_param(IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(Mode)); + + MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_HIZ, Mode); +} + +/** + * @brief Tune the Internal Voltage Reference buffer (VREFBUF). + * @param TrimmingValue specifies trimming code for VREFBUF calibration + * This parameter can be a number between Min_Data = 0x00 and Max_Data = 0x3F + * @retval None + */ +void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue) +{ + /* Check the parameters */ + assert_param(IS_SYSCFG_VREFBUF_TRIMMING(TrimmingValue)); + + MODIFY_REG(VREFBUF->CCR, VREFBUF_CCR_TRIM, TrimmingValue); +} + +/** + * @brief Enable the Internal Voltage Reference buffer (VREFBUF). + * @retval HAL_OK/HAL_TIMEOUT + */ +HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void) +{ + uint32_t tickstart; + + SET_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait for VRR bit */ + while (READ_BIT(VREFBUF->CSR, VREFBUF_CSR_VRR) == 0x00U) + { + if ((HAL_GetTick() - tickstart) > VREFBUF_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + return HAL_OK; +} + +/** + * @brief Disable the Internal Voltage Reference buffer (VREFBUF). + * + * @retval None + */ +void HAL_SYSCFG_DisableVREFBUF(void) +{ + CLEAR_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR); +} +#endif /* VREFBUF */ + +/** + * @brief Enable the I/O analog switch voltage booster + * + * @retval None + */ +void HAL_SYSCFG_EnableIOSwitchBooster(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_BOOSTEN); +} + +/** + * @brief Disable the I/O analog switch voltage booster + * + * @retval None + */ +void HAL_SYSCFG_DisableIOSwitchBooster(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_BOOSTEN); +} + +/** + * @brief Enable the I/O analog switch voltage by VDD + * + * @retval None + */ +void HAL_SYSCFG_EnableIOSwitchVDD(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_ANASWVDD); +} + +/** + * @brief Disable the I/O analog switch voltage by VDD + * + * @retval None + */ +void HAL_SYSCFG_DisableIOSwitchVDD(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_ANASWVDD); +} + +/** @brief CCMSRAM page write protection enable + * @param Page: This parameter is a long 32bit value and can be a value of @ref SYSCFG_CCMSRAMWRP + * @note write protection can only be disabled by a system reset + * @retval None + */ +void HAL_SYSCFG_CCMSRAM_WriteProtectionEnable(uint32_t Page) +{ + assert_param(IS_SYSCFG_CCMSRAMWRP_PAGE(Page)); + + SET_BIT(SYSCFG->SWPR, (uint32_t)(Page)); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c new file mode 100644 index 0000000..8930f28 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c @@ -0,0 +1,3716 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_adc.c + * @author MCD Application Team + * @brief This file provides firmware functions to manage the following + * functionalities of the Analog to Digital Converter (ADC) + * peripheral: + * + Initialization and de-initialization functions + * + Peripheral Control functions + * + Peripheral State functions + * Other functions (extended functions) are available in file + * "stm32g4xx_hal_adc_ex.c". + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### ADC peripheral features ##### + ============================================================================== + [..] + (+) 12-bit, 10-bit, 8-bit or 6-bit configurable resolution. + + (+) Interrupt generation at the end of regular conversion and in case of + analog watchdog or overrun events. + + (+) Single and continuous conversion modes. + + (+) Scan mode for conversion of several channels sequentially. + + (+) Data alignment with in-built data coherency. + + (+) Programmable sampling time (channel wise) + + (+) External trigger (timer or EXTI) with configurable polarity + + (+) DMA request generation for transfer of conversions data of regular group. + + (+) Configurable delay between conversions in Dual interleaved mode. + + (+) ADC channels selectable single/differential input. + + (+) ADC offset shared on 4 offset instances. + (+) ADC gain compensation + + (+) ADC calibration + + (+) ADC conversion of regular group. + + (+) ADC supply requirements: 1.62 V to 3.6 V. + + (+) ADC input range: from Vref- (connected to Vssa) to Vref+ (connected to + Vdda or to an external voltage reference). + + + ##### How to use this driver ##### + ============================================================================== + [..] + + *** Configuration of top level parameters related to ADC *** + ============================================================ + [..] + + (#) Enable the ADC interface + (++) As prerequisite, ADC clock must be configured at RCC top level. + + (++) Two clock settings are mandatory: + (+++) ADC clock (core clock, also possibly conversion clock). + + (+++) ADC clock (conversions clock). + Two possible clock sources: synchronous clock derived from AHB clock + or asynchronous clock derived from system clock or PLL (output divider P) + running up to 75MHz. + + (+++) Example: + Into HAL_ADC_MspInit() (recommended code location) or with + other device clock parameters configuration: + (+++) __HAL_RCC_ADC_CLK_ENABLE(); (mandatory) + + RCC_ADCCLKSOURCE_PLL enable: (optional: if asynchronous clock selected) + (+++) RCC_PeriphClkInitTypeDef RCC_PeriphClkInit; + (+++) PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; + (+++) PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLL; + (+++) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit); + + (++) ADC clock source and clock prescaler are configured at ADC level with + parameter "ClockPrescaler" using function HAL_ADC_Init(). + + (#) ADC pins configuration + (++) Enable the clock for the ADC GPIOs + using macro __HAL_RCC_GPIOx_CLK_ENABLE() + (++) Configure these ADC pins in analog mode + using function HAL_GPIO_Init() + + (#) Optionally, in case of usage of ADC with interruptions: + (++) Configure the NVIC for ADC + using function HAL_NVIC_EnableIRQ(ADCx_IRQn) + (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() + into the function of corresponding ADC interruption vector + ADCx_IRQHandler(). + + (#) Optionally, in case of usage of DMA: + (++) Configure the DMA (DMA channel, mode normal or circular, ...) + using function HAL_DMA_Init(). + (++) Configure the NVIC for DMA + using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) + (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() + into the function of corresponding DMA interruption vector + DMAx_Channelx_IRQHandler(). + + *** Configuration of ADC, group regular, channels parameters *** + ================================================================ + [..] + + (#) Configure the ADC parameters (resolution, data alignment, ...) + and regular group parameters (conversion trigger, sequencer, ...) + using function HAL_ADC_Init(). + + (#) Configure the channels for regular group parameters (channel number, + channel rank into sequencer, ..., into regular group) + using function HAL_ADC_ConfigChannel(). + + (#) Optionally, configure the analog watchdog parameters (channels + monitored, thresholds, ...) + using function HAL_ADC_AnalogWDGConfig(). + + *** Execution of ADC conversions *** + ==================================== + [..] + + (#) Optionally, perform an automatic ADC calibration to improve the + conversion accuracy + using function HAL_ADCEx_Calibration_Start(). + + (#) ADC driver can be used among three modes: polling, interruption, + transfer by DMA. + + (++) ADC conversion by polling: + (+++) Activate the ADC peripheral and start conversions + using function HAL_ADC_Start() + (+++) Wait for ADC conversion completion + using function HAL_ADC_PollForConversion() + (+++) Retrieve conversion results + using function HAL_ADC_GetValue() + (+++) Stop conversion and disable the ADC peripheral + using function HAL_ADC_Stop() + + (++) ADC conversion by interruption: + (+++) Activate the ADC peripheral and start conversions + using function HAL_ADC_Start_IT() + (+++) Wait for ADC conversion completion by call of function + HAL_ADC_ConvCpltCallback() + (this function must be implemented in user program) + (+++) Retrieve conversion results + using function HAL_ADC_GetValue() + (+++) Stop conversion and disable the ADC peripheral + using function HAL_ADC_Stop_IT() + + (++) ADC conversion with transfer by DMA: + (+++) Activate the ADC peripheral and start conversions + using function HAL_ADC_Start_DMA() + (+++) Wait for ADC conversion completion by call of function + HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() + (these functions must be implemented in user program) + (+++) Conversion results are automatically transferred by DMA into + destination variable address. + (+++) Stop conversion and disable the ADC peripheral + using function HAL_ADC_Stop_DMA() + + [..] + + (@) Callback functions must be implemented in user program: + (+@) HAL_ADC_ErrorCallback() + (+@) HAL_ADC_LevelOutOfWindowCallback() (callback of analog watchdog) + (+@) HAL_ADC_ConvCpltCallback() + (+@) HAL_ADC_ConvHalfCpltCallback + + *** Deinitialization of ADC *** + ============================================================ + [..] + + (#) Disable the ADC interface + (++) ADC clock can be hard reset and disabled at RCC top level. + (++) Hard reset of ADC peripherals + using macro __ADCx_FORCE_RESET(), __ADCx_RELEASE_RESET(). + (++) ADC clock disable + using the equivalent macro/functions as configuration step. + (+++) Example: + Into HAL_ADC_MspDeInit() (recommended code location) or with + other device clock parameters configuration: + (+++) RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSI14; + (+++) RCC_OscInitStructure.HSI14State = RCC_HSI14_OFF; (if not used for system clock) + (+++) HAL_RCC_OscConfig(&RCC_OscInitStructure); + + (#) ADC pins configuration + (++) Disable the clock for the ADC GPIOs + using macro __HAL_RCC_GPIOx_CLK_DISABLE() + + (#) Optionally, in case of usage of ADC with interruptions: + (++) Disable the NVIC for ADC + using function HAL_NVIC_EnableIRQ(ADCx_IRQn) + + (#) Optionally, in case of usage of DMA: + (++) Deinitialize the DMA + using function HAL_DMA_Init(). + (++) Disable the NVIC for DMA + using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) + + [..] + + *** Callback registration *** + ============================================= + [..] + + The compilation flag USE_HAL_ADC_REGISTER_CALLBACKS, when set to 1, + allows the user to configure dynamically the driver callbacks. + Use Functions @ref HAL_ADC_RegisterCallback() + to register an interrupt callback. + [..] + + Function @ref HAL_ADC_RegisterCallback() allows to register following callbacks: + (+) ConvCpltCallback : ADC conversion complete callback + (+) ConvHalfCpltCallback : ADC conversion DMA half-transfer callback + (+) LevelOutOfWindowCallback : ADC analog watchdog 1 callback + (+) ErrorCallback : ADC error callback + (+) InjectedConvCpltCallback : ADC group injected conversion complete callback + (+) InjectedQueueOverflowCallback : ADC group injected context queue overflow callback + (+) LevelOutOfWindow2Callback : ADC analog watchdog 2 callback + (+) LevelOutOfWindow3Callback : ADC analog watchdog 3 callback + (+) EndOfSamplingCallback : ADC end of sampling callback + (+) MspInitCallback : ADC Msp Init callback + (+) MspDeInitCallback : ADC Msp DeInit callback + This function takes as parameters the HAL peripheral handle, the Callback ID + and a pointer to the user callback function. + [..] + + Use function @ref HAL_ADC_UnRegisterCallback to reset a callback to the default + weak function. + [..] + + @ref HAL_ADC_UnRegisterCallback takes as parameters the HAL peripheral handle, + and the Callback ID. + This function allows to reset following callbacks: + (+) ConvCpltCallback : ADC conversion complete callback + (+) ConvHalfCpltCallback : ADC conversion DMA half-transfer callback + (+) LevelOutOfWindowCallback : ADC analog watchdog 1 callback + (+) ErrorCallback : ADC error callback + (+) InjectedConvCpltCallback : ADC group injected conversion complete callback + (+) InjectedQueueOverflowCallback : ADC group injected context queue overflow callback + (+) LevelOutOfWindow2Callback : ADC analog watchdog 2 callback + (+) LevelOutOfWindow3Callback : ADC analog watchdog 3 callback + (+) EndOfSamplingCallback : ADC end of sampling callback + (+) MspInitCallback : ADC Msp Init callback + (+) MspDeInitCallback : ADC Msp DeInit callback + [..] + + By default, after the @ref HAL_ADC_Init() and when the state is @ref HAL_ADC_STATE_RESET + all callbacks are set to the corresponding weak functions: + examples @ref HAL_ADC_ConvCpltCallback(), @ref HAL_ADC_ErrorCallback(). + Exception done for MspInit and MspDeInit functions that are + reset to the legacy weak functions in the @ref HAL_ADC_Init()/ @ref HAL_ADC_DeInit() only when + these callbacks are null (not registered beforehand). + [..] + + If MspInit or MspDeInit are not null, the @ref HAL_ADC_Init()/ @ref HAL_ADC_DeInit() + keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. + [..] + + Callbacks can be registered/unregistered in @ref HAL_ADC_STATE_READY state only. + Exception done MspInit/MspDeInit functions that can be registered/unregistered + in @ref HAL_ADC_STATE_READY or @ref HAL_ADC_STATE_RESET state, + thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. + [..] + + Then, the user first registers the MspInit/MspDeInit user callbacks + using @ref HAL_ADC_RegisterCallback() before calling @ref HAL_ADC_DeInit() + or @ref HAL_ADC_Init() function. + [..] + + When the compilation flag USE_HAL_ADC_REGISTER_CALLBACKS is set to 0 or + not defined, the callback registration feature is not available and all callbacks + are set to the corresponding weak functions. + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup ADC ADC + * @brief ADC HAL module driver + * @{ + */ + +#ifdef HAL_ADC_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup ADC_Private_Constants ADC Private Constants + * @{ + */ + +#define ADC_CFGR_FIELDS_1 (ADC_CFGR_RES | ADC_CFGR_ALIGN |\ + ADC_CFGR_CONT | ADC_CFGR_OVRMOD |\ + ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM |\ + ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL) /*!< ADC_CFGR fields of parameters that can + be updated when no regular conversion is on-going */ + +/* Timeout values for ADC operations (enable settling time, */ +/* disable settling time, ...). */ +/* Values defined to be higher than worst cases: low clock frequency, */ +/* maximum prescalers. */ +#define ADC_ENABLE_TIMEOUT (2UL) /*!< ADC enable time-out value */ +#define ADC_DISABLE_TIMEOUT (2UL) /*!< ADC disable time-out value */ + +/* Timeout to wait for current conversion on going to be completed. */ +/* Timeout fixed to longest ADC conversion possible, for 1 channel: */ +/* - maximum sampling time (640.5 adc_clk) */ +/* - ADC resolution (Tsar 12 bits= 12.5 adc_clk) */ +/* - System clock / ADC clock <= 4096 (hypothesis of maximum clock ratio) */ +/* - ADC oversampling ratio 256 */ +/* Calculation: 653 * 4096 * 256 CPU clock cycles max */ +/* Unit: cycles of CPU clock. */ +#define ADC_CONVERSION_TIME_MAX_CPU_CYCLES (653UL * 4096UL * 256UL) /*!< ADC conversion completion time-out value */ + + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup ADC_Exported_Functions ADC Exported Functions + * @{ + */ + +/** @defgroup ADC_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief ADC Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Initialize and configure the ADC. + (+) De-initialize the ADC. +@endverbatim + * @{ + */ + +/** + * @brief Initialize the ADC peripheral and regular group according to + * parameters specified in structure "ADC_InitTypeDef". + * @note As prerequisite, ADC clock must be configured at RCC top level + * (refer to description of RCC configuration for ADC + * in header of this file). + * @note Possibility to update parameters on the fly: + * This function initializes the ADC MSP (HAL_ADC_MspInit()) only when + * coming from ADC state reset. Following calls to this function can + * be used to reconfigure some parameters of ADC_InitTypeDef + * structure on the fly, without modifying MSP configuration. If ADC + * MSP has to be modified again, HAL_ADC_DeInit() must be called + * before HAL_ADC_Init(). + * The setting of these parameters is conditioned to ADC state. + * For parameters constraints, see comments of structure + * "ADC_InitTypeDef". + * @note This function configures the ADC within 2 scopes: scope of entire + * ADC and scope of regular group. For parameters details, see comments + * of structure "ADC_InitTypeDef". + * @note Parameters related to common ADC registers (ADC clock mode) are set + * only if all ADCs are disabled. + * If this is not the case, these common parameters setting are + * bypassed without error reporting: it can be the intended behaviour in + * case of update of a parameter of ADC_InitTypeDef on the fly, + * without disabling the other ADCs. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + uint32_t tmp_cfgr; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + __IO uint32_t wait_loop_index = 0UL; + + /* Check ADC handle */ + if (hadc == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); + assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); + assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); + assert_param(IS_ADC_GAIN_COMPENSATION(hadc->Init.GainCompensation)); + assert_param(IS_ADC_SCAN_MODE(hadc->Init.ScanConvMode)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); + assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); + assert_param(IS_ADC_EXTTRIG(hadc, hadc->Init.ExternalTrigConv)); + assert_param(IS_ADC_SAMPLINGMODE(hadc->Init.SamplingMode)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); + assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); + assert_param(IS_ADC_OVERRUN(hadc->Init.Overrun)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoWait)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.OversamplingMode)); + + if (hadc->Init.ScanConvMode != ADC_SCAN_DISABLE) + { + assert_param(IS_ADC_REGULAR_NB_CONV(hadc->Init.NbrOfConversion)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); + + if (hadc->Init.DiscontinuousConvMode == ENABLE) + { + assert_param(IS_ADC_REGULAR_DISCONT_NUMBER(hadc->Init.NbrOfDiscConversion)); + } + } + + /* DISCEN and CONT bits cannot be set at the same time */ + assert_param(!((hadc->Init.DiscontinuousConvMode == ENABLE) && (hadc->Init.ContinuousConvMode == ENABLE))); + + /* Actions performed only if ADC is coming from state reset: */ + /* - Initialization of ADC MSP */ + if (hadc->State == HAL_ADC_STATE_RESET) + { +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + /* Init the ADC Callback settings */ + hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak callback */ + hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak callback */ + hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak callback */ + hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak callback */ + hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; /* Legacy weak callback */ + hadc->InjectedQueueOverflowCallback = HAL_ADCEx_InjectedQueueOverflowCallback; /* Legacy weak callback */ + hadc->LevelOutOfWindow2Callback = HAL_ADCEx_LevelOutOfWindow2Callback; /* Legacy weak callback */ + hadc->LevelOutOfWindow3Callback = HAL_ADCEx_LevelOutOfWindow3Callback; /* Legacy weak callback */ + hadc->EndOfSamplingCallback = HAL_ADCEx_EndOfSamplingCallback; /* Legacy weak callback */ + + if (hadc->MspInitCallback == NULL) + { + hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ + } + + /* Init the low level hardware */ + hadc->MspInitCallback(hadc); +#else + /* Init the low level hardware */ + HAL_ADC_MspInit(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Set ADC error code to none */ + ADC_CLEAR_ERRORCODE(hadc); + + /* Initialize Lock */ + hadc->Lock = HAL_UNLOCKED; + } + + /* - Exit from deep-power-down mode and ADC voltage regulator enable */ + if (LL_ADC_IsDeepPowerDownEnabled(hadc->Instance) != 0UL) + { + /* Disable ADC deep power down mode */ + LL_ADC_DisableDeepPowerDown(hadc->Instance); + + /* System was in deep power down mode, calibration must + be relaunched or a previously saved calibration factor + re-applied once the ADC voltage regulator is enabled */ + } + + if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL) + { + /* Enable ADC internal voltage regulator */ + LL_ADC_EnableInternalRegulator(hadc->Instance); + + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_INTERNAL_REGUL_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL)); + while (wait_loop_index != 0UL) + { + wait_loop_index--; + } + } + + /* Verification that ADC voltage regulator is correctly enabled, whether */ + /* or not ADC is coming from state reset (if any potential problem of */ + /* clocking, voltage regulator would not be enabled). */ + if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + tmp_hal_status = HAL_ERROR; + } + + /* Configuration of ADC parameters if previous preliminary actions are */ + /* correctly completed and if there is no conversion on going on regular */ + /* group (ADC may already be enabled at this point if HAL_ADC_Init() is */ + /* called to update a parameter on the fly). */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + + if (((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) + && (tmp_adc_is_conversion_on_going_regular == 0UL) + ) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY, + HAL_ADC_STATE_BUSY_INTERNAL); + + /* Configuration of common ADC parameters */ + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated only when ADC is disabled: */ + /* - clock configuration */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + { + /* Reset configuration of ADC common register CCR: */ + /* */ + /* - ADC clock mode and ACC prescaler (CKMODE and PRESC bits)are set */ + /* according to adc->Init.ClockPrescaler. It selects the clock */ + /* source and sets the clock division factor. */ + /* */ + /* Some parameters of this register are not reset, since they are set */ + /* by other functions and must be kept in case of usage of this */ + /* function on the fly (update of a parameter of ADC_InitTypeDef */ + /* without needing to reconfigure all other ADC groups/channels */ + /* parameters): */ + /* - when multimode feature is available, multimode-related */ + /* parameters: MDMA, DMACFG, DELAY, DUAL (set by API */ + /* HAL_ADCEx_MultiModeConfigChannel() ) */ + /* - internal measurement paths: Vbat, temperature sensor, Vref */ + /* (set into HAL_ADC_ConfigChannel() or */ + /* HAL_ADCEx_InjectedConfigChannel() ) */ + LL_ADC_SetCommonClock(__LL_ADC_COMMON_INSTANCE(hadc->Instance), hadc->Init.ClockPrescaler); + } + } + + /* Configuration of ADC: */ + /* - resolution Init.Resolution */ + /* - data alignment Init.DataAlign */ + /* - external trigger to start conversion Init.ExternalTrigConv */ + /* - external trigger polarity Init.ExternalTrigConvEdge */ + /* - continuous conversion mode Init.ContinuousConvMode */ + /* - overrun Init.Overrun */ + /* - discontinuous mode Init.DiscontinuousConvMode */ + /* - discontinuous mode channel count Init.NbrOfDiscConversion */ + tmp_cfgr = (ADC_CFGR_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | + hadc->Init.Overrun | + hadc->Init.DataAlign | + hadc->Init.Resolution | + ADC_CFGR_REG_DISCONTINUOUS((uint32_t)hadc->Init.DiscontinuousConvMode)); + + if (hadc->Init.DiscontinuousConvMode == ENABLE) + { + tmp_cfgr |= ADC_CFGR_DISCONTINUOUS_NUM(hadc->Init.NbrOfDiscConversion); + } + + /* Enable external trigger if trigger selection is different of software */ + /* start. */ + /* Note: This configuration keeps the hardware feature of parameter */ + /* ExternalTrigConvEdge "trigger edge none" equivalent to */ + /* software start. */ + if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) + { + tmp_cfgr |= ((hadc->Init.ExternalTrigConv & ADC_CFGR_EXTSEL) + | hadc->Init.ExternalTrigConvEdge + ); + } + + /* Update Configuration Register CFGR */ + MODIFY_REG(hadc->Instance->CFGR, ADC_CFGR_FIELDS_1, tmp_cfgr); + + /* Configuration of sampling mode */ + MODIFY_REG(hadc->Instance->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG, hadc->Init.SamplingMode); + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular and injected groups: */ + /* - Gain Compensation Init.GainCompensation */ + /* - DMA continuous request Init.DMAContinuousRequests */ + /* - LowPowerAutoWait feature Init.LowPowerAutoWait */ + /* - Oversampling parameters Init.Oversampling */ + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + tmp_cfgr = (ADC_CFGR_DFSDM(hadc) | + ADC_CFGR_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait) | + ADC_CFGR_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests)); + + MODIFY_REG(hadc->Instance->CFGR, ADC_CFGR_FIELDS_2, tmp_cfgr); + + if (hadc->Init.GainCompensation != 0UL) + { + SET_BIT(hadc->Instance->CFGR2, ADC_CFGR2_GCOMP); + MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, hadc->Init.GainCompensation); + } + else + { + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_GCOMP); + MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, 0UL); + } + + if (hadc->Init.OversamplingMode == ENABLE) + { + assert_param(IS_ADC_OVERSAMPLING_RATIO(hadc->Init.Oversampling.Ratio)); + assert_param(IS_ADC_RIGHT_BIT_SHIFT(hadc->Init.Oversampling.RightBitShift)); + assert_param(IS_ADC_TRIGGERED_OVERSAMPLING_MODE(hadc->Init.Oversampling.TriggeredMode)); + assert_param(IS_ADC_REGOVERSAMPLING_MODE(hadc->Init.Oversampling.OversamplingStopReset)); + + /* Configuration of Oversampler: */ + /* - Oversampling Ratio */ + /* - Right bit shift */ + /* - Triggered mode */ + /* - Oversampling mode (continued/resumed) */ + MODIFY_REG(hadc->Instance->CFGR2, + ADC_CFGR2_OVSR | + ADC_CFGR2_OVSS | + ADC_CFGR2_TROVS | + ADC_CFGR2_ROVSM, + ADC_CFGR2_ROVSE | + hadc->Init.Oversampling.Ratio | + hadc->Init.Oversampling.RightBitShift | + hadc->Init.Oversampling.TriggeredMode | + hadc->Init.Oversampling.OversamplingStopReset + ); + } + else + { + /* Disable ADC oversampling scope on ADC group regular */ + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSE); + } + + } + + /* Configuration of regular group sequencer: */ + /* - if scan mode is disabled, regular channels sequence length is set to */ + /* 0x00: 1 channel converted (channel on regular rank 1) */ + /* Parameter "NbrOfConversion" is discarded. */ + /* Note: Scan mode is not present by hardware on this device, but */ + /* emulated by software for alignment over all STM32 devices. */ + /* - if scan mode is enabled, regular channels sequence length is set to */ + /* parameter "NbrOfConversion". */ + + if (hadc->Init.ScanConvMode == ADC_SCAN_ENABLE) + { + /* Set number of ranks in regular group sequencer */ + MODIFY_REG(hadc->Instance->SQR1, ADC_SQR1_L, (hadc->Init.NbrOfConversion - (uint8_t)1)); + } + else + { + CLEAR_BIT(hadc->Instance->SQR1, ADC_SQR1_L); + } + + /* Initialize the ADC state */ + /* Clear HAL_ADC_STATE_BUSY_INTERNAL bit, set HAL_ADC_STATE_READY bit */ + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL, HAL_ADC_STATE_READY); + } + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + tmp_hal_status = HAL_ERROR; + } + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Deinitialize the ADC peripheral registers to their default reset + * values, with deinitialization of the ADC MSP. + * @note For devices with several ADCs: reset of ADC common registers is done + * only if all ADCs sharing the same common group are disabled. + * (function "HAL_ADC_MspDeInit()" is also called under the same conditions: + * all ADC instances use the same core clock at RCC level, disabling + * the core clock reset all ADC instances). + * If this is not the case, reset of these common parameters reset is + * bypassed without error reporting: it can be the intended behavior in + * case of reset of a single ADC while the other ADCs sharing the same + * common group is still running. + * @note By default, HAL_ADC_DeInit() set ADC in mode deep power-down: + * this saves more power by reducing leakage currents + * and is particularly interesting before entering MCU low-power modes. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check ADC handle */ + if (hadc == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); + + /* Stop potential conversion on going */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped */ + /* Flush register JSQR: reset the queue sequencer when injected */ + /* queue sequencer is enabled and ADC disabled. */ + /* The software and hardware triggers of the injected sequence are both */ + /* internally disabled just after the completion of the last valid */ + /* injected sequence. */ + SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JQM); + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + { + /* Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Change ADC state */ + hadc->State = HAL_ADC_STATE_READY; + } + } + + /* Note: HAL ADC deInit is done independently of ADC conversion stop */ + /* and disable return status. In case of status fail, attempt to */ + /* perform deinitialization anyway and it is up user code in */ + /* in HAL_ADC_MspDeInit() to reset the ADC peripheral using */ + /* system RCC hard reset. */ + + /* ========== Reset ADC registers ========== */ + /* Reset register IER */ + __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_AWD3 | ADC_IT_AWD2 | ADC_IT_AWD1 | + ADC_IT_JQOVF | ADC_IT_OVR | + ADC_IT_JEOS | ADC_IT_JEOC | + ADC_IT_EOS | ADC_IT_EOC | + ADC_IT_EOSMP | ADC_IT_RDY)); + + /* Reset register ISR */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_AWD3 | ADC_FLAG_AWD2 | ADC_FLAG_AWD1 | + ADC_FLAG_JQOVF | ADC_FLAG_OVR | + ADC_FLAG_JEOS | ADC_FLAG_JEOC | + ADC_FLAG_EOS | ADC_FLAG_EOC | + ADC_FLAG_EOSMP | ADC_FLAG_RDY)); + + /* Reset register CR */ + /* Bits ADC_CR_JADSTP, ADC_CR_ADSTP, ADC_CR_JADSTART, ADC_CR_ADSTART, + ADC_CR_ADCAL, ADC_CR_ADDIS and ADC_CR_ADEN are in access mode "read-set": + no direct reset applicable. + Update CR register to reset value where doable by software */ + CLEAR_BIT(hadc->Instance->CR, ADC_CR_ADVREGEN | ADC_CR_ADCALDIF); + SET_BIT(hadc->Instance->CR, ADC_CR_DEEPPWD); + + /* Reset register CFGR */ + CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_FIELDS); + SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + + /* Reset register CFGR2 */ + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSM | ADC_CFGR2_TROVS | ADC_CFGR2_OVSS | + ADC_CFGR2_OVSR | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE); + + /* Reset register SMPR1 */ + CLEAR_BIT(hadc->Instance->SMPR1, ADC_SMPR1_FIELDS); + + /* Reset register SMPR2 */ + CLEAR_BIT(hadc->Instance->SMPR2, ADC_SMPR2_SMP18 | ADC_SMPR2_SMP17 | ADC_SMPR2_SMP16 | + ADC_SMPR2_SMP15 | ADC_SMPR2_SMP14 | ADC_SMPR2_SMP13 | + ADC_SMPR2_SMP12 | ADC_SMPR2_SMP11 | ADC_SMPR2_SMP10); + + /* Reset register TR1 */ + CLEAR_BIT(hadc->Instance->TR1, ADC_TR1_HT1 | ADC_TR1_LT1); + + /* Reset register TR2 */ + CLEAR_BIT(hadc->Instance->TR2, ADC_TR2_HT2 | ADC_TR2_LT2); + + /* Reset register TR3 */ + CLEAR_BIT(hadc->Instance->TR3, ADC_TR3_HT3 | ADC_TR3_LT3); + + /* Reset register SQR1 */ + CLEAR_BIT(hadc->Instance->SQR1, ADC_SQR1_SQ4 | ADC_SQR1_SQ3 | ADC_SQR1_SQ2 | + ADC_SQR1_SQ1 | ADC_SQR1_L); + + /* Reset register SQR2 */ + CLEAR_BIT(hadc->Instance->SQR2, ADC_SQR2_SQ9 | ADC_SQR2_SQ8 | ADC_SQR2_SQ7 | + ADC_SQR2_SQ6 | ADC_SQR2_SQ5); + + /* Reset register SQR3 */ + CLEAR_BIT(hadc->Instance->SQR3, ADC_SQR3_SQ14 | ADC_SQR3_SQ13 | ADC_SQR3_SQ12 | + ADC_SQR3_SQ11 | ADC_SQR3_SQ10); + + /* Reset register SQR4 */ + CLEAR_BIT(hadc->Instance->SQR4, ADC_SQR4_SQ16 | ADC_SQR4_SQ15); + + /* Register JSQR was reset when the ADC was disabled */ + + /* Reset register DR */ + /* bits in access mode read only, no direct reset applicable*/ + + /* Reset register OFR1 */ + CLEAR_BIT(hadc->Instance->OFR1, ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1); + /* Reset register OFR2 */ + CLEAR_BIT(hadc->Instance->OFR2, ADC_OFR2_OFFSET2_EN | ADC_OFR2_OFFSET2_CH | ADC_OFR2_OFFSET2); + /* Reset register OFR3 */ + CLEAR_BIT(hadc->Instance->OFR3, ADC_OFR3_OFFSET3_EN | ADC_OFR3_OFFSET3_CH | ADC_OFR3_OFFSET3); + /* Reset register OFR4 */ + CLEAR_BIT(hadc->Instance->OFR4, ADC_OFR4_OFFSET4_EN | ADC_OFR4_OFFSET4_CH | ADC_OFR4_OFFSET4); + + /* Reset registers JDR1, JDR2, JDR3, JDR4 */ + /* bits in access mode read only, no direct reset applicable*/ + + /* Reset register AWD2CR */ + CLEAR_BIT(hadc->Instance->AWD2CR, ADC_AWD2CR_AWD2CH); + + /* Reset register AWD3CR */ + CLEAR_BIT(hadc->Instance->AWD3CR, ADC_AWD3CR_AWD3CH); + + /* Reset register DIFSEL */ + CLEAR_BIT(hadc->Instance->DIFSEL, ADC_DIFSEL_DIFSEL); + + /* Reset register CALFACT */ + CLEAR_BIT(hadc->Instance->CALFACT, ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S); + + + /* ========== Reset common ADC registers ========== */ + + /* Software is allowed to change common parameters only when all the other + ADCs are disabled. */ + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + { + /* Reset configuration of ADC common register CCR: + - clock mode: CKMODE, PRESCEN + - multimode related parameters (when this feature is available): MDMA, + DMACFG, DELAY, DUAL (set by HAL_ADCEx_MultiModeConfigChannel() API) + - internal measurement paths: Vbat, temperature sensor, Vref (set into + HAL_ADC_ConfigChannel() or HAL_ADCEx_InjectedConfigChannel() ) + */ + ADC_CLEAR_COMMON_CONTROL_REGISTER(hadc); + + /* ========== Hard reset ADC peripheral ========== */ + /* Performs a global reset of the entire ADC peripherals instances */ + /* sharing the same common ADC instance: ADC state is forced to */ + /* a similar state as after device power-on. */ + /* Note: A possible implementation is to add RCC bus reset of ADC */ + /* (for example, using macro */ + /* __HAL_RCC_ADC..._FORCE_RESET()/..._RELEASE_RESET()/..._CLK_DISABLE()) */ + /* in function "void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)": */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + if (hadc->MspDeInitCallback == NULL) + { + hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ + } + + /* DeInit the low level hardware */ + hadc->MspDeInitCallback(hadc); +#else + /* DeInit the low level hardware */ + HAL_ADC_MspDeInit(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + } + + /* Set ADC error code to none */ + ADC_CLEAR_ERRORCODE(hadc); + + /* Reset injected channel configuration parameters */ + hadc->InjectionConfig.ContextQueue = 0; + hadc->InjectionConfig.ChannelCount = 0; + + /* Set ADC state */ + hadc->State = HAL_ADC_STATE_RESET; + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Initialize the ADC MSP. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADC_MspInit must be implemented in the user file. + */ +} + +/** + * @brief DeInitialize the ADC MSP. + * @param hadc ADC handle + * @note All ADC instances use the same core clock at RCC level, disabling + * the core clock reset all ADC instances). + * @retval None + */ +__weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADC_MspDeInit must be implemented in the user file. + */ +} + +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +/** + * @brief Register a User ADC Callback + * To be used instead of the weak predefined callback + * @param hadc Pointer to a ADC_HandleTypeDef structure that contains + * the configuration information for the specified ADC. + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_ADC_CONVERSION_COMPLETE_CB_ID ADC conversion complete callback ID + * @arg @ref HAL_ADC_CONVERSION_HALF_CB_ID ADC conversion DMA half-transfer callback ID + * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID ADC analog watchdog 1 callback ID + * @arg @ref HAL_ADC_ERROR_CB_ID ADC error callback ID + * @arg @ref HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID ADC group injected conversion complete callback ID + * @arg @ref HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID ADC group injected context queue overflow callback ID + * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID ADC analog watchdog 2 callback ID + * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID ADC analog watchdog 3 callback ID + * @arg @ref HAL_ADC_END_OF_SAMPLING_CB_ID ADC end of sampling callback ID + * @arg @ref HAL_ADC_MSPINIT_CB_ID ADC Msp Init callback ID + * @arg @ref HAL_ADC_MSPDEINIT_CB_ID ADC Msp DeInit callback ID + * @arg @ref HAL_ADC_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_ADC_MSPDEINIT_CB_ID MspDeInit callback ID + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef CallbackID, + pADC_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) + { + switch (CallbackID) + { + case HAL_ADC_CONVERSION_COMPLETE_CB_ID : + hadc->ConvCpltCallback = pCallback; + break; + + case HAL_ADC_CONVERSION_HALF_CB_ID : + hadc->ConvHalfCpltCallback = pCallback; + break; + + case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID : + hadc->LevelOutOfWindowCallback = pCallback; + break; + + case HAL_ADC_ERROR_CB_ID : + hadc->ErrorCallback = pCallback; + break; + + case HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID : + hadc->InjectedConvCpltCallback = pCallback; + break; + + case HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID : + hadc->InjectedQueueOverflowCallback = pCallback; + break; + + case HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID : + hadc->LevelOutOfWindow2Callback = pCallback; + break; + + case HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID : + hadc->LevelOutOfWindow3Callback = pCallback; + break; + + case HAL_ADC_END_OF_SAMPLING_CB_ID : + hadc->EndOfSamplingCallback = pCallback; + break; + + case HAL_ADC_MSPINIT_CB_ID : + hadc->MspInitCallback = pCallback; + break; + + case HAL_ADC_MSPDEINIT_CB_ID : + hadc->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_ADC_STATE_RESET == hadc->State) + { + switch (CallbackID) + { + case HAL_ADC_MSPINIT_CB_ID : + hadc->MspInitCallback = pCallback; + break; + + case HAL_ADC_MSPDEINIT_CB_ID : + hadc->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Unregister a ADC Callback + * ADC callback is redirected to the weak predefined callback + * @param hadc Pointer to a ADC_HandleTypeDef structure that contains + * the configuration information for the specified ADC. + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * @arg @ref HAL_ADC_CONVERSION_COMPLETE_CB_ID ADC conversion complete callback ID + * @arg @ref HAL_ADC_CONVERSION_HALF_CB_ID ADC conversion DMA half-transfer callback ID + * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID ADC analog watchdog 1 callback ID + * @arg @ref HAL_ADC_ERROR_CB_ID ADC error callback ID + * @arg @ref HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID ADC group injected conversion complete callback ID + * @arg @ref HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID ADC group injected context queue overflow callback ID + * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID ADC analog watchdog 2 callback ID + * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID ADC analog watchdog 3 callback ID + * @arg @ref HAL_ADC_END_OF_SAMPLING_CB_ID ADC end of sampling callback ID + * @arg @ref HAL_ADC_MSPINIT_CB_ID ADC Msp Init callback ID + * @arg @ref HAL_ADC_MSPDEINIT_CB_ID ADC Msp DeInit callback ID + * @arg @ref HAL_ADC_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_ADC_MSPDEINIT_CB_ID MspDeInit callback ID + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) + { + switch (CallbackID) + { + case HAL_ADC_CONVERSION_COMPLETE_CB_ID : + hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; + break; + + case HAL_ADC_CONVERSION_HALF_CB_ID : + hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; + break; + + case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID : + hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; + break; + + case HAL_ADC_ERROR_CB_ID : + hadc->ErrorCallback = HAL_ADC_ErrorCallback; + break; + + case HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID : + hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; + break; + + case HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID : + hadc->InjectedQueueOverflowCallback = HAL_ADCEx_InjectedQueueOverflowCallback; + break; + + case HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID : + hadc->LevelOutOfWindow2Callback = HAL_ADCEx_LevelOutOfWindow2Callback; + break; + + case HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID : + hadc->LevelOutOfWindow3Callback = HAL_ADCEx_LevelOutOfWindow3Callback; + break; + + case HAL_ADC_END_OF_SAMPLING_CB_ID : + hadc->EndOfSamplingCallback = HAL_ADCEx_EndOfSamplingCallback; + break; + + case HAL_ADC_MSPINIT_CB_ID : + hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_ADC_MSPDEINIT_CB_ID : + hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_ADC_STATE_RESET == hadc->State) + { + switch (CallbackID) + { + case HAL_ADC_MSPINIT_CB_ID : + hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_ADC_MSPDEINIT_CB_ID : + hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup ADC_Exported_Functions_Group2 ADC Input and Output operation functions + * @brief ADC IO operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Start conversion of regular group. + (+) Stop conversion of regular group. + (+) Poll for conversion complete on regular group. + (+) Poll for conversion event. + (+) Get result of regular channel conversion. + (+) Start conversion of regular group and enable interruptions. + (+) Stop conversion of regular group and disable interruptions. + (+) Handle ADC interrupt request + (+) Start conversion of regular group and enable DMA transfer. + (+) Stop conversion of regular group and disable ADC DMA transfer. +@endverbatim + * @{ + */ + +/** + * @brief Enable ADC, start conversion of regular group. + * @note Interruptions enabled in this function: None. + * @note Case of multimode enabled (when multimode feature is available): + * if ADC is Slave, ADC is enabled but conversion is not started, + * if ADC is master, ADC is enabled and multimode conversion is started. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Perform ADC enable and conversion start if no conversion is on going */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* Process locked */ + __HAL_LOCK(hadc); + + /* Enable the ADC peripheral */ + tmp_hal_status = ADC_Enable(hadc); + + /* Start conversion if ADC is effectively enabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + /* - Clear state bitfield related to regular group conversion results */ + /* - Set state bitfield related to regular operation */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_ADC_STATE_REG_EOSMP, + HAL_ADC_STATE_REG_BUSY); + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + - if ADC instance is master or if multimode feature is not available + - if multimode setting is disabled (ADC instance slave in independent mode) */ + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + ) + { + CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Set ADC error code */ + /* Check if a conversion is on going on ADC group injected */ + if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) + { + /* Reset ADC error code fields related to regular conversions only */ + CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); + } + else + { + /* Reset all ADC error code fields */ + ADC_CLEAR_ERRORCODE(hadc); + } + + /* Clear ADC group regular conversion flag and overrun flag */ + /* (To ensure of no unknown state from potential previous ADC operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + + /* Enable conversion of regular group. */ + /* If software start has been selected, conversion starts immediately. */ + /* If external trigger has been selected, conversion will start at next */ + /* trigger event. */ + /* Case of multimode enabled (when multimode feature is available): */ + /* - if ADC is slave and dual regular conversions are enabled, ADC is */ + /* enabled only (conversion is not started), */ + /* - if ADC is master, ADC is enabled and conversion is started. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ) + { + /* ADC instance is not a multimode slave instance with multimode regular conversions enabled */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + } + + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); + } + else + { + /* ADC instance is a multimode slave instance with multimode regular conversions enabled */ + SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + /* if Master ADC JAUTO bit is set, update Slave State in setting + HAL_ADC_STATE_INJ_BUSY bit and in resetting HAL_ADC_STATE_INJ_EOC bit */ + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + } + + } +#else + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + } + + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); +#endif /* ADC_MULTIMODE_SUPPORT */ + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } + } + else + { + tmp_hal_status = HAL_BUSY; + } + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Stop ADC conversion of regular group (and injected channels in + * case of auto_injection mode), disable ADC peripheral. + * @note: ADC peripheral disable is forcing stop of potential + * conversion on injected group. If injected group is under use, it + * should be preliminarily stopped using HAL_ADCEx_InjectedStop function. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential conversion on going, on ADC groups regular and injected */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + { + /* 2. Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Wait for regular group conversion to be completed. + * @note ADC conversion flags EOS (end of sequence) and EOC (end of + * conversion) are cleared by this function, with an exception: + * if low power feature "LowPowerAutoWait" is enabled, flags are + * not cleared to not interfere with this feature until data register + * is read using function HAL_ADC_GetValue(). + * @note This function cannot be used in a particular setup: ADC configured + * in DMA mode and polling for end of each conversion (ADC init + * parameter "EOCSelection" set to ADC_EOC_SINGLE_CONV). + * In this case, DMA resets the flag EOC and polling cannot be + * performed on each conversion. Nevertheless, polling can still + * be performed on the complete sequence (ADC init + * parameter "EOCSelection" set to ADC_EOC_SEQ_CONV). + * @param hadc ADC handle + * @param Timeout Timeout value in millisecond. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) +{ + uint32_t tickstart; + uint32_t tmp_Flag_End; + uint32_t tmp_cfgr; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* If end of conversion selected to end of sequence conversions */ + if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) + { + tmp_Flag_End = ADC_FLAG_EOS; + } + /* If end of conversion selected to end of unitary conversion */ + else /* ADC_EOC_SINGLE_CONV */ + { + /* Verification that ADC configuration is compliant with polling for */ + /* each conversion: */ + /* Particular case is ADC configured in DMA mode and ADC sequencer with */ + /* several ranks and polling for end of each conversion. */ + /* For code simplicity sake, this particular case is generalized to */ + /* ADC configured in DMA mode and and polling for end of each conversion. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ) + { + /* Check ADC DMA mode in independent mode on ADC group regular */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN) != 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + return HAL_ERROR; + } + else + { + tmp_Flag_End = (ADC_FLAG_EOC); + } + } + else + { + /* Check ADC DMA mode in multimode on ADC group regular */ + if (LL_ADC_GetMultiDMATransfer(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) != LL_ADC_MULTI_REG_DMA_EACH_ADC) + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + return HAL_ERROR; + } + else + { + tmp_Flag_End = (ADC_FLAG_EOC); + } + } +#else + /* Check ADC DMA mode */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN) != 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + return HAL_ERROR; + } + else + { + tmp_Flag_End = (ADC_FLAG_EOC); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + } + + /* Get tick count */ + tickstart = HAL_GetTick(); + + /* Wait until End of unitary conversion or sequence conversions flag is raised */ + while ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + { + /* Check if timeout is disabled (set to infinite wait) */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + { + /* Update ADC state machine to timeout */ + SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_TIMEOUT; + } + } + } + } + + /* Update ADC state machine */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); + + /* Determine whether any further conversion upcoming on group regular */ + /* by external trigger, continuous mode or scan sequence on going. */ + if ((LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) + && (hadc->Init.ContinuousConvMode == DISABLE) + ) + { + /* Check whether end of sequence is reached */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) + { + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + } + } + } + + /* Get relevant register CFGR in ADC instance of ADC master or slave */ + /* in function of multimode state (for devices with multimode */ + /* available). */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ) + { + /* Retrieve handle ADC CFGR register */ + tmp_cfgr = READ_REG(hadc->Instance->CFGR); + } + else + { + /* Retrieve Master ADC CFGR register */ + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + } +#else + /* Retrieve handle ADC CFGR register */ + tmp_cfgr = READ_REG(hadc->Instance->CFGR); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Clear polled flag */ + if (tmp_Flag_End == ADC_FLAG_EOS) + { + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOS); + } + else + { + /* Clear end of conversion EOC flag of regular group if low power feature */ + /* "LowPowerAutoWait " is disabled, to not interfere with this feature */ + /* until data register is read using function HAL_ADC_GetValue(). */ + if (READ_BIT(tmp_cfgr, ADC_CFGR_AUTDLY) == 0UL) + { + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); + } + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Poll for ADC event. + * @param hadc ADC handle + * @param EventType the ADC event type. + * This parameter can be one of the following values: + * @arg @ref ADC_EOSMP_EVENT ADC End of Sampling event + * @arg @ref ADC_AWD1_EVENT ADC Analog watchdog 1 event (main analog watchdog, present on + * all STM32 series) + * @arg @ref ADC_AWD2_EVENT ADC Analog watchdog 2 event (additional analog watchdog, not present on + * all STM32 series) + * @arg @ref ADC_AWD3_EVENT ADC Analog watchdog 3 event (additional analog watchdog, not present on + * all STM32 series) + * @arg @ref ADC_OVR_EVENT ADC Overrun event + * @arg @ref ADC_JQOVF_EVENT ADC Injected context queue overflow event + * @param Timeout Timeout value in millisecond. + * @note The relevant flag is cleared if found to be set, except for ADC_FLAG_OVR. + * Indeed, the latter is reset only if hadc->Init.Overrun field is set + * to ADC_OVR_DATA_OVERWRITTEN. Otherwise, data register may be potentially overwritten + * by a new converted data as soon as OVR is cleared. + * To reset OVR flag once the preserved data is retrieved, the user can resort + * to macro __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout) +{ + uint32_t tickstart; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_EVENT_TYPE(EventType)); + + /* Get tick count */ + tickstart = HAL_GetTick(); + + /* Check selected event flag */ + while (__HAL_ADC_GET_FLAG(hadc, EventType) == 0UL) + { + /* Check if timeout is disabled (set to infinite wait) */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + { + /* New check to avoid false timeout detection in case of preemption */ + if (__HAL_ADC_GET_FLAG(hadc, EventType) == 0UL) + { + /* Update ADC state machine to timeout */ + SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_TIMEOUT; + } + } + } + } + + switch (EventType) + { + /* End Of Sampling event */ + case ADC_EOSMP_EVENT: + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOSMP); + + /* Clear the End Of Sampling flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOSMP); + + break; + + /* Analog watchdog (level out of window) event */ + /* Note: In case of several analog watchdog enabled, if needed to know */ + /* which one triggered and on which ADCx, test ADC state of analog watchdog */ + /* flags HAL_ADC_STATE_AWD1/2/3 using function "HAL_ADC_GetState()". */ + /* For example: */ + /* " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD1) != 0UL) " */ + /* " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD2) != 0UL) " */ + /* " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD3) != 0UL) " */ + + /* Check analog watchdog 1 flag */ + case ADC_AWD_EVENT: + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); + + /* Clear ADC analog watchdog flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD1); + + break; + + /* Check analog watchdog 2 flag */ + case ADC_AWD2_EVENT: + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_AWD2); + + /* Clear ADC analog watchdog flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD2); + + break; + + /* Check analog watchdog 3 flag */ + case ADC_AWD3_EVENT: + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_AWD3); + + /* Clear ADC analog watchdog flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD3); + + break; + + /* Injected context queue overflow event */ + case ADC_JQOVF_EVENT: + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_JQOVF); + + /* Set ADC error code to Injected context queue overflow */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); + + /* Clear ADC Injected context queue overflow flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JQOVF); + + break; + + /* Overrun event */ + default: /* Case ADC_OVR_EVENT */ + /* If overrun is set to overwrite previous data, overrun event is not */ + /* considered as an error. */ + /* (cf ref manual "Managing conversions without using the DMA and without */ + /* overrun ") */ + if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); + + /* Set ADC error code to overrun */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); + } + else + { + /* Clear ADC Overrun flag only if Overrun is set to ADC_OVR_DATA_OVERWRITTEN + otherwise, data register is potentially overwritten by new converted data as soon + as OVR is cleared. */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); + } + break; + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Enable ADC, start conversion of regular group with interruption. + * @note Interruptions enabled in this function according to initialization + * setting : EOC (end of conversion), EOS (end of sequence), + * OVR overrun. + * Each of these interruptions has its dedicated callback function. + * @note Case of multimode enabled (when multimode feature is available): + * HAL_ADC_Start_IT() must be called for ADC Slave first, then for + * ADC Master. + * For ADC Slave, ADC is enabled only (conversion is not started). + * For ADC Master, ADC is enabled and multimode conversion is started. + * @note To guarantee a proper reset of all interruptions once all the needed + * conversions are obtained, HAL_ADC_Stop_IT() must be called to ensure + * a correct stop of the IT-based conversions. + * @note By default, HAL_ADC_Start_IT() does not enable the End Of Sampling + * interruption. If required (e.g. in case of oversampling with trigger + * mode), the user must: + * 1. first clear the EOSMP flag if set with macro __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOSMP) + * 2. then enable the EOSMP interrupt with macro __HAL_ADC_ENABLE_IT(hadc, ADC_IT_EOSMP) + * before calling HAL_ADC_Start_IT(). + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Perform ADC enable and conversion start if no conversion is on going */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* Process locked */ + __HAL_LOCK(hadc); + + /* Enable the ADC peripheral */ + tmp_hal_status = ADC_Enable(hadc); + + /* Start conversion if ADC is effectively enabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + /* - Clear state bitfield related to regular group conversion results */ + /* - Set state bitfield related to regular operation */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_ADC_STATE_REG_EOSMP, + HAL_ADC_STATE_REG_BUSY); + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + - if ADC instance is master or if multimode feature is not available + - if multimode setting is disabled (ADC instance slave in independent mode) */ + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + ) + { + CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Set ADC error code */ + /* Check if a conversion is on going on ADC group injected */ + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) != 0UL) + { + /* Reset ADC error code fields related to regular conversions only */ + CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); + } + else + { + /* Reset all ADC error code fields */ + ADC_CLEAR_ERRORCODE(hadc); + } + + /* Clear ADC group regular conversion flag and overrun flag */ + /* (To ensure of no unknown state from potential previous ADC operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + + /* Disable all interruptions before enabling the desired ones */ + __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); + + /* Enable ADC end of conversion interrupt */ + switch (hadc->Init.EOCSelection) + { + case ADC_EOC_SEQ_CONV: + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_EOS); + break; + /* case ADC_EOC_SINGLE_CONV */ + default: + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_EOC); + break; + } + + /* Enable ADC overrun interrupt */ + /* If hadc->Init.Overrun is set to ADC_OVR_DATA_PRESERVED, only then is + ADC_IT_OVR enabled; otherwise data overwrite is considered as normal + behavior and no CPU time is lost for a non-processed interruption */ + if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) + { + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); + } + + /* Enable conversion of regular group. */ + /* If software start has been selected, conversion starts immediately. */ + /* If external trigger has been selected, conversion will start at next */ + /* trigger event. */ + /* Case of multimode enabled (when multimode feature is available): */ + /* - if ADC is slave and dual regular conversions are enabled, ADC is */ + /* enabled only (conversion is not started), */ + /* - if ADC is master, ADC is enabled and conversion is started. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ) + { + /* ADC instance is not a multimode slave instance with multimode regular conversions enabled */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + + /* Enable as well injected interruptions in case + HAL_ADCEx_InjectedStart_IT() has not been called beforehand. This + allows to start regular and injected conversions when JAUTO is + set with a single call to HAL_ADC_Start_IT() */ + switch (hadc->Init.EOCSelection) + { + case ADC_EOC_SEQ_CONV: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + break; + /* case ADC_EOC_SINGLE_CONV */ + default: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + break; + } + } + + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); + } + else + { + /* ADC instance is a multimode slave instance with multimode regular conversions enabled */ + SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + /* if Master ADC JAUTO bit is set, Slave injected interruptions + are enabled nevertheless (for same reason as above) */ + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) + { + /* First, update Slave State in setting HAL_ADC_STATE_INJ_BUSY bit + and in resetting HAL_ADC_STATE_INJ_EOC bit */ + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + /* Next, set Slave injected interruptions */ + switch (hadc->Init.EOCSelection) + { + case ADC_EOC_SEQ_CONV: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + break; + /* case ADC_EOC_SINGLE_CONV */ + default: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + break; + } + } + } +#else + /* ADC instance is not a multimode slave instance with multimode regular conversions enabled */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) + { + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); + + /* Enable as well injected interruptions in case + HAL_ADCEx_InjectedStart_IT() has not been called beforehand. This + allows to start regular and injected conversions when JAUTO is + set with a single call to HAL_ADC_Start_IT() */ + switch (hadc->Init.EOCSelection) + { + case ADC_EOC_SEQ_CONV: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + break; + /* case ADC_EOC_SINGLE_CONV */ + default: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + break; + } + } + + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); +#endif /* ADC_MULTIMODE_SUPPORT */ + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } + + } + else + { + tmp_hal_status = HAL_BUSY; + } + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Stop ADC conversion of regular group (and injected group in + * case of auto_injection mode), disable interrution of + * end-of-conversion, disable ADC peripheral. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential conversion on going, on ADC groups regular and injected */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + { + /* Disable ADC end of conversion interrupt for regular group */ + /* Disable ADC overrun interrupt */ + __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); + + /* 2. Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Enable ADC, start conversion of regular group and transfer result through DMA. + * @note Interruptions enabled in this function: + * overrun (if applicable), DMA half transfer, DMA transfer complete. + * Each of these interruptions has its dedicated callback function. + * @note Case of multimode enabled (when multimode feature is available): HAL_ADC_Start_DMA() + * is designed for single-ADC mode only. For multimode, the dedicated + * HAL_ADCEx_MultiModeStart_DMA() function must be used. + * @param hadc ADC handle + * @param pData Destination Buffer address. + * @param Length Number of data to be transferred from ADC peripheral to memory + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length) +{ + HAL_StatusTypeDef tmp_hal_status; +#if defined(ADC_MULTIMODE_SUPPORT) + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Perform ADC enable and conversion start if no conversion is on going */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* Process locked */ + __HAL_LOCK(hadc); + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Ensure that multimode regular conversions are not enabled. */ + /* Otherwise, dedicated API HAL_ADCEx_MultiModeStart_DMA() must be used. */ + if ((ADC_IS_INDEPENDENT(hadc) != RESET) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ) +#endif /* ADC_MULTIMODE_SUPPORT */ + { + /* Enable the ADC peripheral */ + tmp_hal_status = ADC_Enable(hadc); + + /* Start conversion if ADC is effectively enabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + /* - Clear state bitfield related to regular group conversion results */ + /* - Set state bitfield related to regular operation */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_ADC_STATE_REG_EOSMP, + HAL_ADC_STATE_REG_BUSY); + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + - if ADC instance is master or if multimode feature is not available + - if multimode setting is disabled (ADC instance slave in independent mode) */ + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + ) + { + CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check if a conversion is on going on ADC group injected */ + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) != 0UL) + { + /* Reset ADC error code fields related to regular conversions only */ + CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); + } + else + { + /* Reset all ADC error code fields */ + ADC_CLEAR_ERRORCODE(hadc); + } + + /* Set the DMA transfer complete callback */ + hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; + + /* Set the DMA half transfer complete callback */ + hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; + + /* Set the DMA error callback */ + hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; + + + /* Manage ADC and DMA start: ADC overrun interruption, DMA start, */ + /* ADC start (in case of SW start): */ + + /* Clear regular group conversion flag and overrun flag */ + /* (To ensure of no unknown state from potential previous ADC */ + /* operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + + /* With DMA, overrun event is always considered as an error even if + hadc->Init.Overrun is set to ADC_OVR_DATA_OVERWRITTEN. Therefore, + ADC_IT_OVR is enabled. */ + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); + + /* Enable ADC DMA mode */ + SET_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN); + + /* Start the DMA channel */ + tmp_hal_status = HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_t)pData, Length); + + /* Enable conversion of regular group. */ + /* If software start has been selected, conversion starts immediately. */ + /* If external trigger has been selected, conversion will start at next */ + /* trigger event. */ + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } + + } +#if defined(ADC_MULTIMODE_SUPPORT) + else + { + tmp_hal_status = HAL_ERROR; + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + } + else + { + tmp_hal_status = HAL_BUSY; + } + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Stop ADC conversion of regular group (and injected group in + * case of auto_injection mode), disable ADC DMA transfer, disable + * ADC peripheral. + * @note: ADC peripheral disable is forcing stop of potential + * conversion on ADC group injected. If ADC group injected is under use, it + * should be preliminarily stopped using HAL_ADCEx_InjectedStop function. + * @note Case of multimode enabled (when multimode feature is available): + * HAL_ADC_Stop_DMA() function is dedicated to single-ADC mode only. + * For multimode, the dedicated HAL_ADCEx_MultiModeStop_DMA() API must be used. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential ADC group regular conversion on going */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + { + /* Disable ADC DMA (ADC DMA configuration of continuous requests is kept) */ + CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN); + + /* Disable the DMA channel (in case of DMA in circular mode or stop */ + /* while DMA transfer is on going) */ + if (hadc->DMA_Handle->State == HAL_DMA_STATE_BUSY) + { + tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); + + /* Check if DMA channel effectively disabled */ + if (tmp_hal_status != HAL_OK) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + } + } + + /* Disable ADC overrun interrupt */ + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); + + /* 2. Disable the ADC peripheral */ + /* Update "tmp_hal_status" only if DMA channel disabling passed, */ + /* to keep in memory a potential failing status. */ + if (tmp_hal_status == HAL_OK) + { + tmp_hal_status = ADC_Disable(hadc); + } + else + { + (void)ADC_Disable(hadc); + } + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Get ADC regular group conversion result. + * @note Reading register DR automatically clears ADC flag EOC + * (ADC group regular end of unitary conversion). + * @note This function does not clear ADC flag EOS + * (ADC group regular end of sequence conversion). + * Occurrence of flag EOS rising: + * - If sequencer is composed of 1 rank, flag EOS is equivalent + * to flag EOC. + * - If sequencer is composed of several ranks, during the scan + * sequence flag EOC only is raised, at the end of the scan sequence + * both flags EOC and EOS are raised. + * To clear this flag, either use function: + * in programming model IT: @ref HAL_ADC_IRQHandler(), in programming + * model polling: @ref HAL_ADC_PollForConversion() + * or @ref __HAL_ADC_CLEAR_FLAG(&hadc, ADC_FLAG_EOS). + * @param hadc ADC handle + * @retval ADC group regular conversion data + */ +uint32_t HAL_ADC_GetValue(const ADC_HandleTypeDef *hadc) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Note: EOC flag is not cleared here by software because automatically */ + /* cleared by hardware when reading register DR. */ + + /* Return ADC converted value */ + return hadc->Instance->DR; +} + +/** + * @brief Start ADC conversion sampling phase of regular group + * @note: This function should only be called to start sampling when + * - @ref ADC_SAMPLING_MODE_TRIGGER_CONTROLED sampling + * mode has been selected + * - @ref ADC_SOFTWARE_START has been selected as trigger source + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_StartSampling(ADC_HandleTypeDef *hadc) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Start sampling */ + SET_BIT(hadc->Instance->CFGR2, ADC_CFGR2_SWTRIG); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stop ADC conversion sampling phase of regular group and start conversion + * @note: This function should only be called to stop sampling when + * - @ref ADC_SAMPLING_MODE_TRIGGER_CONTROLED sampling + * mode has been selected + * - @ref ADC_SOFTWARE_START has been selected as trigger source + * - after sampling has been started using @ref HAL_ADC_StartSampling. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADC_StopSampling(ADC_HandleTypeDef *hadc) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Start sampling */ + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_SWTRIG); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Handle ADC interrupt request. + * @param hadc ADC handle + * @retval None + */ +void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc) +{ + uint32_t overrun_error = 0UL; /* flag set if overrun occurrence has to be considered as an error */ + uint32_t tmp_isr = hadc->Instance->ISR; + uint32_t tmp_ier = hadc->Instance->IER; + uint32_t tmp_adc_inj_is_trigger_source_sw_start; + uint32_t tmp_adc_reg_is_trigger_source_sw_start; + uint32_t tmp_cfgr; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); + + /* ========== Check End of Sampling flag for ADC group regular ========== */ + if (((tmp_isr & ADC_FLAG_EOSMP) == ADC_FLAG_EOSMP) && ((tmp_ier & ADC_IT_EOSMP) == ADC_IT_EOSMP)) + { + /* Update state machine on end of sampling status if not in error state */ + if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOSMP); + } + + /* End Of Sampling callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->EndOfSamplingCallback(hadc); +#else + HAL_ADCEx_EndOfSamplingCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Clear regular group conversion flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOSMP); + } + + /* ====== Check ADC group regular end of unitary conversion sequence conversions ===== */ + if ((((tmp_isr & ADC_FLAG_EOC) == ADC_FLAG_EOC) && ((tmp_ier & ADC_IT_EOC) == ADC_IT_EOC)) || + (((tmp_isr & ADC_FLAG_EOS) == ADC_FLAG_EOS) && ((tmp_ier & ADC_IT_EOS) == ADC_IT_EOS))) + { + /* Update state machine on conversion status if not in error state */ + if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); + } + + /* Determine whether any further conversion upcoming on group regular */ + /* by external trigger, continuous mode or scan sequence on going */ + /* to disable interruption. */ + if (LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) + { + /* Get relevant register CFGR in ADC instance of ADC master or slave */ + /* in function of multimode state (for devices with multimode */ + /* available). */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ) + { + /* check CONT bit directly in handle ADC CFGR register */ + tmp_cfgr = READ_REG(hadc->Instance->CFGR); + } + else + { + /* else need to check Master ADC CONT bit */ + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + } +#else + tmp_cfgr = READ_REG(hadc->Instance->CFGR); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Carry on if continuous mode is disabled */ + if (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) != ADC_CFGR_CONT) + { + /* If End of Sequence is reached, disable interrupts */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) + { + /* Allowed to modify bits ADC_IT_EOC/ADC_IT_EOS only if bit */ + /* ADSTART==0 (no conversion on going) */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* Disable ADC end of sequence conversion interrupt */ + /* Note: Overrun interrupt was enabled with EOC interrupt in */ + /* HAL_Start_IT(), but is not disabled here because can be used */ + /* by overrun IRQ process below. */ + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); + + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + } + } + else + { + /* Change ADC state to error state */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + } + } + } + } + + /* Conversion complete callback */ + /* Note: Into callback function "HAL_ADC_ConvCpltCallback()", */ + /* to determine if conversion has been triggered from EOC or EOS, */ + /* possibility to use: */ + /* " if ( __HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_EOS)) " */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->ConvCpltCallback(hadc); +#else + HAL_ADC_ConvCpltCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Clear regular group conversion flag */ + /* Note: in case of overrun set to ADC_OVR_DATA_PRESERVED, end of */ + /* conversion flags clear induces the release of the preserved data.*/ + /* Therefore, if the preserved data value is needed, it must be */ + /* read preliminarily into HAL_ADC_ConvCpltCallback(). */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); + } + + /* ====== Check ADC group injected end of unitary conversion sequence conversions ===== */ + if ((((tmp_isr & ADC_FLAG_JEOC) == ADC_FLAG_JEOC) && ((tmp_ier & ADC_IT_JEOC) == ADC_IT_JEOC)) || + (((tmp_isr & ADC_FLAG_JEOS) == ADC_FLAG_JEOS) && ((tmp_ier & ADC_IT_JEOS) == ADC_IT_JEOS))) + { + /* Update state machine on conversion status if not in error state */ + if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); + } + + /* Retrieve ADC configuration */ + tmp_adc_inj_is_trigger_source_sw_start = LL_ADC_INJ_IsTriggerSourceSWStart(hadc->Instance); + tmp_adc_reg_is_trigger_source_sw_start = LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance); + /* Get relevant register CFGR in ADC instance of ADC master or slave */ + /* in function of multimode state (for devices with multimode */ + /* available). */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + ) + { + tmp_cfgr = READ_REG(hadc->Instance->CFGR); + } + else + { + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + } +#else + tmp_cfgr = READ_REG(hadc->Instance->CFGR); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Disable interruption if no further conversion upcoming by injected */ + /* external trigger or by automatic injected conversion with regular */ + /* group having no further conversion upcoming (same conditions as */ + /* regular group interruption disabling above), */ + /* and if injected scan sequence is completed. */ + if (tmp_adc_inj_is_trigger_source_sw_start != 0UL) + { + if ((READ_BIT(tmp_cfgr, ADC_CFGR_JAUTO) == 0UL) || + ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && + (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) == 0UL))) + { + /* If End of Sequence is reached, disable interrupts */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS)) + { + /* Particular case if injected contexts queue is enabled: */ + /* when the last context has been fully processed, JSQR is reset */ + /* by the hardware. Even if no injected conversion is planned to come */ + /* (queue empty, triggers are ignored), it can start again */ + /* immediately after setting a new context (JADSTART is still set). */ + /* Therefore, state of HAL ADC injected group is kept to busy. */ + if (READ_BIT(tmp_cfgr, ADC_CFGR_JQM) == 0UL) + { + /* Allowed to modify bits ADC_IT_JEOC/ADC_IT_JEOS only if bit */ + /* JADSTART==0 (no conversion on going) */ + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* Disable ADC end of sequence conversion interrupt */ + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC | ADC_IT_JEOS); + + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + + if ((hadc->State & HAL_ADC_STATE_REG_BUSY) == 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + } + } + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + } + } + } + } + } + + /* Injected Conversion complete callback */ + /* Note: HAL_ADCEx_InjectedConvCpltCallback can resort to + if (__HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_JEOS)) or + if (__HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_JEOC)) to determine whether + interruption has been triggered by end of conversion or end of + sequence. */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->InjectedConvCpltCallback(hadc); +#else + HAL_ADCEx_InjectedConvCpltCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Clear injected group conversion flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOC | ADC_FLAG_JEOS); + } + + /* ========== Check Analog watchdog 1 flag ========== */ + if (((tmp_isr & ADC_FLAG_AWD1) == ADC_FLAG_AWD1) && ((tmp_ier & ADC_IT_AWD1) == ADC_IT_AWD1)) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); + + /* Level out of window 1 callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->LevelOutOfWindowCallback(hadc); +#else + HAL_ADC_LevelOutOfWindowCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Clear ADC analog watchdog flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD1); + } + + /* ========== Check analog watchdog 2 flag ========== */ + if (((tmp_isr & ADC_FLAG_AWD2) == ADC_FLAG_AWD2) && ((tmp_ier & ADC_IT_AWD2) == ADC_IT_AWD2)) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_AWD2); + + /* Level out of window 2 callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->LevelOutOfWindow2Callback(hadc); +#else + HAL_ADCEx_LevelOutOfWindow2Callback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Clear ADC analog watchdog flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD2); + } + + /* ========== Check analog watchdog 3 flag ========== */ + if (((tmp_isr & ADC_FLAG_AWD3) == ADC_FLAG_AWD3) && ((tmp_ier & ADC_IT_AWD3) == ADC_IT_AWD3)) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_AWD3); + + /* Level out of window 3 callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->LevelOutOfWindow3Callback(hadc); +#else + HAL_ADCEx_LevelOutOfWindow3Callback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + + /* Clear ADC analog watchdog flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD3); + } + + /* ========== Check Overrun flag ========== */ + if (((tmp_isr & ADC_FLAG_OVR) == ADC_FLAG_OVR) && ((tmp_ier & ADC_IT_OVR) == ADC_IT_OVR)) + { + /* If overrun is set to overwrite previous data (default setting), */ + /* overrun event is not considered as an error. */ + /* (cf ref manual "Managing conversions without using the DMA and without */ + /* overrun ") */ + /* Exception for usage with DMA overrun event always considered as an */ + /* error. */ + if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) + { + overrun_error = 1UL; + } + else + { + /* Check DMA configuration */ +#if defined(ADC_MULTIMODE_SUPPORT) + if (tmp_multimode_config != LL_ADC_MULTI_INDEPENDENT) + { + /* Multimode (when feature is available) is enabled, + Common Control Register MDMA bits must be checked. */ + if (LL_ADC_GetMultiDMATransfer(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) != LL_ADC_MULTI_REG_DMA_EACH_ADC) + { + overrun_error = 1UL; + } + } + else +#endif /* ADC_MULTIMODE_SUPPORT */ + { + /* Multimode not set or feature not available or ADC independent */ + if ((hadc->Instance->CFGR & ADC_CFGR_DMAEN) != 0UL) + { + overrun_error = 1UL; + } + } + } + + if (overrun_error == 1UL) + { + /* Change ADC state to error state */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); + + /* Set ADC error code to overrun */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); + + /* Error callback */ + /* Note: In case of overrun, ADC conversion data is preserved until */ + /* flag OVR is reset. */ + /* Therefore, old ADC conversion data can be retrieved in */ + /* function "HAL_ADC_ErrorCallback()". */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->ErrorCallback(hadc); +#else + HAL_ADC_ErrorCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + } + + /* Clear ADC overrun flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); + } + + /* ========== Check Injected context queue overflow flag ========== */ + if (((tmp_isr & ADC_FLAG_JQOVF) == ADC_FLAG_JQOVF) && ((tmp_ier & ADC_IT_JQOVF) == ADC_IT_JQOVF)) + { + /* Change ADC state to overrun state */ + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_JQOVF); + + /* Set ADC error code to Injected context queue overflow */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); + + /* Clear the Injected context queue overflow flag */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JQOVF); + + /* Injected context queue overflow callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->InjectedQueueOverflowCallback(hadc); +#else + HAL_ADCEx_InjectedQueueOverflowCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + } + +} + +/** + * @brief Conversion complete callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADC_ConvCpltCallback must be implemented in the user file. + */ +} + +/** + * @brief Conversion DMA half-transfer callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADC_ConvHalfCpltCallback must be implemented in the user file. + */ +} + +/** + * @brief Analog watchdog 1 callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADC_LevelOutOfWindowCallback must be implemented in the user file. + */ +} + +/** + * @brief ADC error callback in non-blocking mode + * (ADC conversion with interruption or transfer by DMA). + * @note In case of error due to overrun when using ADC with DMA transfer + * (HAL ADC handle parameter "ErrorCode" to state "HAL_ADC_ERROR_OVR"): + * - Reinitialize the DMA using function "HAL_ADC_Stop_DMA()". + * - If needed, restart a new ADC conversion using function + * "HAL_ADC_Start_DMA()" + * (this function is also clearing overrun flag) + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADC_ErrorCallback must be implemented in the user file. + */ +} + +/** + * @} + */ + +/** @defgroup ADC_Exported_Functions_Group3 Peripheral Control functions + * @brief Peripheral Control functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure channels on regular group + (+) Configure the analog watchdog + +@endverbatim + * @{ + */ + +/** + * @brief Configure a channel to be assigned to ADC group regular. + * @note In case of usage of internal measurement channels: + * Vbat/VrefInt/TempSensor. + * These internal paths can be disabled using function + * HAL_ADC_DeInit(). + * @note Possibility to update parameters on the fly: + * This function initializes channel into ADC group regular, + * following calls to this function can be used to reconfigure + * some parameters of structure "ADC_ChannelConfTypeDef" on the fly, + * without resetting the ADC. + * The setting of these parameters is conditioned to ADC state: + * Refer to comments of structure "ADC_ChannelConfTypeDef". + * @param hadc ADC handle + * @param pConfig Structure of ADC channel assigned to ADC group regular. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, const ADC_ChannelConfTypeDef *pConfig) +{ + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + uint32_t tmpOffsetShifted; + uint32_t tmp_config_internal_channel; + __IO uint32_t wait_loop_index = 0UL; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_REGULAR_RANK(pConfig->Rank)); + assert_param(IS_ADC_SAMPLE_TIME(pConfig->SamplingTime)); + assert_param(IS_ADC_SINGLE_DIFFERENTIAL(pConfig->SingleDiff)); + assert_param(IS_ADC_OFFSET_NUMBER(pConfig->OffsetNumber)); + assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), pConfig->Offset)); + + /* if ROVSE is set, the value of the OFFSETy_EN bit in ADCx_OFRy register is + ignored (considered as reset) */ + assert_param(!((pConfig->OffsetNumber != ADC_OFFSET_NONE) && (hadc->Init.OversamplingMode == ENABLE))); + + /* Verification of channel number */ + if (pConfig->SingleDiff != ADC_DIFFERENTIAL_ENDED) + { + assert_param(IS_ADC_CHANNEL(hadc, pConfig->Channel)); + } + else + { + assert_param(IS_ADC_DIFF_CHANNEL(hadc, pConfig->Channel)); + } + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular group: */ + /* - Channel number */ + /* - Channel rank */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* Set ADC group regular sequence: channel on the selected scan sequence rank */ + LL_ADC_REG_SetSequencerRanks(hadc->Instance, pConfig->Rank, pConfig->Channel); + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular group: */ + /* - Channel sampling time */ + /* - Channel offset */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + /* Manage specific case of sampling time 3.5 cycles replacing 2.5 cyles */ + if (pConfig->SamplingTime == ADC_SAMPLETIME_3CYCLES_5) + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfig->Channel, LL_ADC_SAMPLINGTIME_2CYCLES_5); + + /* Set ADC sampling time common configuration */ + LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5); + } + else + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfig->Channel, pConfig->SamplingTime); + + /* Set ADC sampling time common configuration */ + LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_DEFAULT); + } + + /* Configure the offset: offset enable/disable, channel, offset value */ + + /* Shift the offset with respect to the selected ADC resolution. */ + /* Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0 */ + tmpOffsetShifted = ADC_OFFSET_SHIFT_RESOLUTION(hadc, (uint32_t)pConfig->Offset); + + if (pConfig->OffsetNumber != ADC_OFFSET_NONE) + { + /* Set ADC selected offset number */ + LL_ADC_SetOffset(hadc->Instance, pConfig->OffsetNumber, pConfig->Channel, tmpOffsetShifted); + + assert_param(IS_ADC_OFFSET_SIGN(pConfig->OffsetSign)); + assert_param(IS_FUNCTIONAL_STATE(pConfig->OffsetSaturation)); + /* Set ADC selected offset sign & saturation */ + LL_ADC_SetOffsetSign(hadc->Instance, pConfig->OffsetNumber, pConfig->OffsetSign); + LL_ADC_SetOffsetSaturation(hadc->Instance, pConfig->OffsetNumber, + (pConfig->OffsetSaturation == ENABLE) ? + LL_ADC_OFFSET_SATURATION_ENABLE : LL_ADC_OFFSET_SATURATION_DISABLE); + } + else + { + /* Scan each offset register to check if the selected channel is targeted. */ + /* If this is the case, the corresponding offset number is disabled. */ + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_1)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_1, LL_ADC_OFFSET_DISABLE); + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_2)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_2, LL_ADC_OFFSET_DISABLE); + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_3)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_3, LL_ADC_OFFSET_DISABLE); + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_4)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfig->Channel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_4, LL_ADC_OFFSET_DISABLE); + } + } + } + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated only when ADC is disabled: */ + /* - Single or differential mode */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + /* Set mode single-ended or differential input of the selected ADC channel */ + LL_ADC_SetChannelSingleDiff(hadc->Instance, pConfig->Channel, pConfig->SingleDiff); + + /* Configuration of differential mode */ + if (pConfig->SingleDiff == ADC_DIFFERENTIAL_ENDED) + { + /* Set sampling time of the selected ADC channel */ + /* Note: ADC channel number masked with value "0x1F" to ensure shift value within 32 bits range */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, + (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL( + (__LL_ADC_CHANNEL_TO_DECIMAL_NB((uint32_t)pConfig->Channel) + + 1UL) & 0x1FUL)), + pConfig->SamplingTime); + } + + } + + /* Management of internal measurement channels: Vbat/VrefInt/TempSensor. */ + /* If internal channel selected, enable dedicated internal buffers and */ + /* paths. */ + /* Note: these internal measurement paths can be disabled using */ + /* HAL_ADC_DeInit(). */ + + if (__LL_ADC_IS_CHANNEL_INTERNAL(pConfig->Channel)) + { + tmp_config_internal_channel = LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + + /* If the requested internal measurement path has already been enabled, */ + /* bypass the configuration processing. */ + if (((pConfig->Channel == ADC_CHANNEL_TEMPSENSOR_ADC1) || (pConfig->Channel == ADC_CHANNEL_TEMPSENSOR_ADC5)) + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) + { + if (ADC_TEMPERATURE_SENSOR_INSTANCE(hadc)) + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + LL_ADC_PATH_INTERNAL_TEMPSENSOR | tmp_config_internal_channel); + + /* Delay for temperature sensor stabilization time */ + /* Wait loop initialization and execution */ + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL)); + while (wait_loop_index != 0UL) + { + wait_loop_index--; + } + } + } + else if ((pConfig->Channel == ADC_CHANNEL_VBAT) + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VBAT) == 0UL)) + { + if (ADC_BATTERY_VOLTAGE_INSTANCE(hadc)) + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); + } + } + else if ((pConfig->Channel == ADC_CHANNEL_VREFINT) + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) + { + if (ADC_VREFINT_INSTANCE(hadc)) + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + LL_ADC_PATH_INTERNAL_VREFINT | tmp_config_internal_channel); + } + } + else + { + /* nothing to do */ + } + } + } + + /* If a conversion is on going on regular group, no update on regular */ + /* channel could be done on neither of the channel configuration structure */ + /* parameters. */ + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + tmp_hal_status = HAL_ERROR; + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Configure the analog watchdog. + * @note Possibility to update parameters on the fly: + * This function initializes the selected analog watchdog, successive + * calls to this function can be used to reconfigure some parameters + * of structure "ADC_AnalogWDGConfTypeDef" on the fly, without resetting + * the ADC. + * The setting of these parameters is conditioned to ADC state. + * For parameters constraints, see comments of structure + * "ADC_AnalogWDGConfTypeDef". + * @note On this STM32 series, analog watchdog thresholds can be modified + * while ADC conversion is on going. + * In this case, some constraints must be taken into account: + * the programmed threshold values are effective from the next + * ADC EOC (end of unitary conversion). + * Considering that registers write delay may happen due to + * bus activity, this might cause an uncertainty on the + * effective timing of the new programmed threshold values. + * @param hadc ADC handle + * @param pAnalogWDGConfig Structure of ADC analog watchdog configuration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, const ADC_AnalogWDGConfTypeDef *pAnalogWDGConfig) +{ + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + uint32_t tmp_awd_high_threshold_shifted; + uint32_t tmp_awd_low_threshold_shifted; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_ANALOG_WATCHDOG_NUMBER(pAnalogWDGConfig->WatchdogNumber)); + assert_param(IS_ADC_ANALOG_WATCHDOG_MODE(pAnalogWDGConfig->WatchdogMode)); + assert_param(IS_ADC_ANALOG_WATCHDOG_FILTERING_MODE(pAnalogWDGConfig->FilteringConfig)); + assert_param(IS_FUNCTIONAL_STATE(pAnalogWDGConfig->ITMode)); + + if ((pAnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REG) || + (pAnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || + (pAnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC)) + { + assert_param(IS_ADC_CHANNEL(hadc, pAnalogWDGConfig->Channel)); + } + + /* Verify thresholds range */ + if (hadc->Init.OversamplingMode == ENABLE) + { + /* Case of oversampling enabled: depending on ratio and shift configuration, + analog watchdog thresholds can be higher than ADC resolution. + Verify if thresholds are within maximum thresholds range. */ + assert_param(IS_ADC_RANGE(ADC_RESOLUTION_12B, pAnalogWDGConfig->HighThreshold)); + assert_param(IS_ADC_RANGE(ADC_RESOLUTION_12B, pAnalogWDGConfig->LowThreshold)); + } + else + { + /* Verify if thresholds are within the selected ADC resolution */ + assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), pAnalogWDGConfig->HighThreshold)); + assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), pAnalogWDGConfig->LowThreshold)); + } + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on ADC groups regular and injected: */ + /* - Analog watchdog channels */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + /* Analog watchdog configuration */ + if (pAnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_1) + { + /* Configuration of analog watchdog: */ + /* - Set the analog watchdog enable mode: one or overall group of */ + /* channels, on groups regular and-or injected. */ + switch (pAnalogWDGConfig->WatchdogMode) + { + case ADC_ANALOGWATCHDOG_SINGLE_REG: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, + __LL_ADC_ANALOGWD_CHANNEL_GROUP(pAnalogWDGConfig->Channel, + LL_ADC_GROUP_REGULAR)); + break; + + case ADC_ANALOGWATCHDOG_SINGLE_INJEC: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, + __LL_ADC_ANALOGWD_CHANNEL_GROUP(pAnalogWDGConfig->Channel, + LL_ADC_GROUP_INJECTED)); + break; + + case ADC_ANALOGWATCHDOG_SINGLE_REGINJEC: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, + __LL_ADC_ANALOGWD_CHANNEL_GROUP(pAnalogWDGConfig->Channel, + LL_ADC_GROUP_REGULAR_INJECTED)); + break; + + case ADC_ANALOGWATCHDOG_ALL_REG: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_ALL_CHANNELS_REG); + break; + + case ADC_ANALOGWATCHDOG_ALL_INJEC: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_ALL_CHANNELS_INJ); + break; + + case ADC_ANALOGWATCHDOG_ALL_REGINJEC: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_ALL_CHANNELS_REG_INJ); + break; + + default: /* ADC_ANALOGWATCHDOG_NONE */ + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_DISABLE); + break; + } + + /* Set the filtering configuration */ + MODIFY_REG(hadc->Instance->TR1, + ADC_TR1_AWDFILT, + pAnalogWDGConfig->FilteringConfig); + + /* Update state, clear previous result related to AWD1 */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_AWD1); + + /* Clear flag ADC analog watchdog */ + /* Note: Flag cleared Clear the ADC Analog watchdog flag to be ready */ + /* to use for HAL_ADC_IRQHandler() or HAL_ADC_PollForEvent() */ + /* (in case left enabled by previous ADC operations). */ + LL_ADC_ClearFlag_AWD1(hadc->Instance); + + /* Configure ADC analog watchdog interrupt */ + if (pAnalogWDGConfig->ITMode == ENABLE) + { + LL_ADC_EnableIT_AWD1(hadc->Instance); + } + else + { + LL_ADC_DisableIT_AWD1(hadc->Instance); + } + } + /* Case of ADC_ANALOGWATCHDOG_2 or ADC_ANALOGWATCHDOG_3 */ + else + { + switch (pAnalogWDGConfig->WatchdogMode) + { + case ADC_ANALOGWATCHDOG_SINGLE_REG: + case ADC_ANALOGWATCHDOG_SINGLE_INJEC: + case ADC_ANALOGWATCHDOG_SINGLE_REGINJEC: + /* Update AWD by bitfield to keep the possibility to monitor */ + /* several channels by successive calls of this function. */ + if (pAnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_2) + { + SET_BIT(hadc->Instance->AWD2CR, + (1UL << (__LL_ADC_CHANNEL_TO_DECIMAL_NB(pAnalogWDGConfig->Channel) & 0x1FUL))); + } + else + { + SET_BIT(hadc->Instance->AWD3CR, + (1UL << (__LL_ADC_CHANNEL_TO_DECIMAL_NB(pAnalogWDGConfig->Channel) & 0x1FUL))); + } + break; + + case ADC_ANALOGWATCHDOG_ALL_REG: + case ADC_ANALOGWATCHDOG_ALL_INJEC: + case ADC_ANALOGWATCHDOG_ALL_REGINJEC: + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, + pAnalogWDGConfig->WatchdogNumber, LL_ADC_AWD_ALL_CHANNELS_REG_INJ); + break; + + default: /* ADC_ANALOGWATCHDOG_NONE */ + LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, pAnalogWDGConfig->WatchdogNumber, LL_ADC_AWD_DISABLE); + break; + } + + if (pAnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_2) + { + /* Update state, clear previous result related to AWD2 */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_AWD2); + + /* Clear flag ADC analog watchdog */ + /* Note: Flag cleared Clear the ADC Analog watchdog flag to be ready */ + /* to use for HAL_ADC_IRQHandler() or HAL_ADC_PollForEvent() */ + /* (in case left enabled by previous ADC operations). */ + LL_ADC_ClearFlag_AWD2(hadc->Instance); + + /* Configure ADC analog watchdog interrupt */ + if (pAnalogWDGConfig->ITMode == ENABLE) + { + LL_ADC_EnableIT_AWD2(hadc->Instance); + } + else + { + LL_ADC_DisableIT_AWD2(hadc->Instance); + } + } + /* (pAnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_3) */ + else + { + /* Update state, clear previous result related to AWD3 */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_AWD3); + + /* Clear flag ADC analog watchdog */ + /* Note: Flag cleared Clear the ADC Analog watchdog flag to be ready */ + /* to use for HAL_ADC_IRQHandler() or HAL_ADC_PollForEvent() */ + /* (in case left enabled by previous ADC operations). */ + LL_ADC_ClearFlag_AWD3(hadc->Instance); + + /* Configure ADC analog watchdog interrupt */ + if (pAnalogWDGConfig->ITMode == ENABLE) + { + LL_ADC_EnableIT_AWD3(hadc->Instance); + } + else + { + LL_ADC_DisableIT_AWD3(hadc->Instance); + } + } + } + + } + + /* Analog watchdog thresholds configuration */ + if (pAnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_1) + { + /* Shift the offset with respect to the selected ADC resolution: */ + /* Thresholds have to be left-aligned on bit 11, the LSB (right bits) */ + /* are set to 0. */ + tmp_awd_high_threshold_shifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, pAnalogWDGConfig->HighThreshold); + tmp_awd_low_threshold_shifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, pAnalogWDGConfig->LowThreshold); + } + /* Case of ADC_ANALOGWATCHDOG_2 and ADC_ANALOGWATCHDOG_3 */ + else + { + /* Shift the offset with respect to the selected ADC resolution: */ + /* Thresholds have to be left-aligned on bit 7, the LSB (right bits) */ + /* are set to 0. */ + tmp_awd_high_threshold_shifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, pAnalogWDGConfig->HighThreshold); + tmp_awd_low_threshold_shifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, pAnalogWDGConfig->LowThreshold); + } + + /* Set ADC analog watchdog thresholds value of both thresholds high and low */ + LL_ADC_ConfigAnalogWDThresholds(hadc->Instance, pAnalogWDGConfig->WatchdogNumber, tmp_awd_high_threshold_shifted, + tmp_awd_low_threshold_shifted); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + + +/** + * @} + */ + +/** @defgroup ADC_Exported_Functions_Group4 Peripheral State functions + * @brief ADC Peripheral State functions + * +@verbatim + =============================================================================== + ##### Peripheral state and errors functions ##### + =============================================================================== + [..] + This subsection provides functions to get in run-time the status of the + peripheral. + (+) Check the ADC state + (+) Check the ADC error code + +@endverbatim + * @{ + */ + +/** + * @brief Return the ADC handle state. + * @note ADC state machine is managed by bitfields, ADC status must be + * compared with states bits. + * For example: + * " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_REG_BUSY) != 0UL) " + * " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD1) != 0UL) " + * @param hadc ADC handle + * @retval ADC handle state (bitfield on 32 bits) + */ +uint32_t HAL_ADC_GetState(const ADC_HandleTypeDef *hadc) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Return ADC handle state */ + return hadc->State; +} + +/** + * @brief Return the ADC error code. + * @param hadc ADC handle + * @retval ADC error code (bitfield on 32 bits) + */ +uint32_t HAL_ADC_GetError(const ADC_HandleTypeDef *hadc) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + return hadc->ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup ADC_Private_Functions ADC Private Functions + * @{ + */ + +/** + * @brief Stop ADC conversion. + * @param hadc ADC handle + * @param ConversionGroup ADC group regular and/or injected. + * This parameter can be one of the following values: + * @arg @ref ADC_REGULAR_GROUP ADC regular conversion type. + * @arg @ref ADC_INJECTED_GROUP ADC injected conversion type. + * @arg @ref ADC_REGULAR_INJECTED_GROUP ADC regular and injected conversion type. + * @retval HAL status. + */ +HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup) +{ + uint32_t tickstart; + uint32_t Conversion_Timeout_CPU_cycles = 0UL; + uint32_t conversion_group_reassigned = ConversionGroup; + uint32_t tmp_ADC_CR_ADSTART_JADSTART; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_CONVERSION_GROUP(ConversionGroup)); + + /* Verification if ADC is not already stopped (on regular and injected */ + /* groups) to bypass this function if not needed. */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + if ((tmp_adc_is_conversion_on_going_regular != 0UL) + || (tmp_adc_is_conversion_on_going_injected != 0UL) + ) + { + /* Particular case of continuous auto-injection mode combined with */ + /* auto-delay mode. */ + /* In auto-injection mode, regular group stop ADC_CR_ADSTP is used (not */ + /* injected group stop ADC_CR_JADSTP). */ + /* Procedure to be followed: Wait until JEOS=1, clear JEOS, set ADSTP=1 */ + /* (see reference manual). */ + if (((hadc->Instance->CFGR & ADC_CFGR_JAUTO) != 0UL) + && (hadc->Init.ContinuousConvMode == ENABLE) + && (hadc->Init.LowPowerAutoWait == ENABLE) + ) + { + /* Use stop of regular group */ + conversion_group_reassigned = ADC_REGULAR_GROUP; + + /* Wait until JEOS=1 (maximum Timeout: 4 injected conversions) */ + while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS) == 0UL) + { + if (Conversion_Timeout_CPU_cycles >= (ADC_CONVERSION_TIME_MAX_CPU_CYCLES * 4UL)) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + return HAL_ERROR; + } + Conversion_Timeout_CPU_cycles ++; + } + + /* Clear JEOS */ + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOS); + } + + /* Stop potential conversion on going on ADC group regular */ + if (conversion_group_reassigned != ADC_INJECTED_GROUP) + { + /* Software is allowed to set ADSTP only when ADSTART=1 and ADDIS=0 */ + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) != 0UL) + { + if (LL_ADC_IsDisableOngoing(hadc->Instance) == 0UL) + { + /* Stop ADC group regular conversion */ + LL_ADC_REG_StopConversion(hadc->Instance); + } + } + } + + /* Stop potential conversion on going on ADC group injected */ + if (conversion_group_reassigned != ADC_REGULAR_GROUP) + { + /* Software is allowed to set JADSTP only when JADSTART=1 and ADDIS=0 */ + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) + { + if (LL_ADC_IsDisableOngoing(hadc->Instance) == 0UL) + { + /* Stop ADC group injected conversion */ + LL_ADC_INJ_StopConversion(hadc->Instance); + } + } + } + + /* Selection of start and stop bits with respect to the regular or injected group */ + switch (conversion_group_reassigned) + { + case ADC_REGULAR_INJECTED_GROUP: + tmp_ADC_CR_ADSTART_JADSTART = (ADC_CR_ADSTART | ADC_CR_JADSTART); + break; + case ADC_INJECTED_GROUP: + tmp_ADC_CR_ADSTART_JADSTART = ADC_CR_JADSTART; + break; + /* Case ADC_REGULAR_GROUP only*/ + default: + tmp_ADC_CR_ADSTART_JADSTART = ADC_CR_ADSTART; + break; + } + + /* Wait for conversion effectively stopped */ + tickstart = HAL_GetTick(); + + while ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) + { + if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + return HAL_ERROR; + } + } + } + + } + + /* Return HAL status */ + return HAL_OK; +} + +/** + * @brief Enable the selected ADC. + * @note Prerequisite condition to use this function: ADC must be disabled + * and voltage regulator must be enabled (done into HAL_ADC_Init()). + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc) +{ + uint32_t tickstart; + __IO uint32_t wait_loop_index = 0UL; + + /* ADC enable and wait for ADC ready (in case of ADC is disabled or */ + /* enabling phase not yet completed: flag ADC ready not yet set). */ + /* Timeout implemented to not be stuck if ADC cannot be enabled (possible */ + /* causes: ADC clock not running, ...). */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + /* Check if conditions to enable the ADC are fulfilled */ + if ((hadc->Instance->CR & (ADC_CR_ADCAL | ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | ADC_CR_ADSTART + | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + return HAL_ERROR; + } + + /* Enable the ADC peripheral */ + LL_ADC_Enable(hadc->Instance); + + if ((LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) + & LL_ADC_PATH_INTERNAL_TEMPSENSOR) != 0UL) + { + /* Delay for temperature sensor buffer stabilization time */ + /* Note: Value LL_ADC_DELAY_TEMPSENSOR_STAB_US used instead of */ + /* LL_ADC_DELAY_TEMPSENSOR_BUFFER_STAB_US because needed */ + /* in case of ADC enable after a system wake up */ + /* from low power mode. */ + + /* Wait loop initialization and execution */ + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL)); + while (wait_loop_index != 0UL) + { + wait_loop_index--; + } + } + + /* Wait for ADC effectively enabled */ + tickstart = HAL_GetTick(); + + while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) + { + /* If ADEN bit is set less than 4 ADC clock cycles after the ADCAL bit + has been cleared (after a calibration), ADEN bit is reset by the + calibration logic. + The workaround is to continue setting ADEN until ADRDY is becomes 1. + Additionally, ADC_ENABLE_TIMEOUT is defined to encompass this + 4 ADC clock cycle duration */ + /* Note: Test of ADC enabled required due to hardware constraint to */ + /* not enable ADC if already enabled. */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + LL_ADC_Enable(hadc->Instance); + } + + if ((HAL_GetTick() - tickstart) > ADC_ENABLE_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + return HAL_ERROR; + } + } + } + } + + /* Return HAL status */ + return HAL_OK; +} + +/** + * @brief Disable the selected ADC. + * @note Prerequisite condition to use this function: ADC conversions must be + * stopped. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc) +{ + uint32_t tickstart; + const uint32_t tmp_adc_is_disable_on_going = LL_ADC_IsDisableOngoing(hadc->Instance); + + /* Verification if ADC is not already disabled: */ + /* Note: forbidden to disable ADC (set bit ADC_CR_ADDIS) if ADC is already */ + /* disabled. */ + if ((LL_ADC_IsEnabled(hadc->Instance) != 0UL) + && (tmp_adc_is_disable_on_going == 0UL) + ) + { + /* Check if conditions to disable the ADC are fulfilled */ + if ((hadc->Instance->CR & (ADC_CR_JADSTART | ADC_CR_ADSTART | ADC_CR_ADEN)) == ADC_CR_ADEN) + { + /* Disable the ADC peripheral */ + LL_ADC_Disable(hadc->Instance); + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOSMP | ADC_FLAG_RDY)); + } + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + return HAL_ERROR; + } + + /* Wait for ADC effectively disabled */ + /* Get tick count */ + tickstart = HAL_GetTick(); + + while ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) + { + if ((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Set ADC error code to ADC peripheral internal error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + return HAL_ERROR; + } + } + } + } + + /* Return HAL status */ + return HAL_OK; +} + +/** + * @brief DMA transfer complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma) +{ + /* Retrieve ADC handle corresponding to current DMA handle */ + ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Update state machine on conversion status if not in error state */ + if ((hadc->State & (HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) == 0UL) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); + + /* Determine whether any further conversion upcoming on group regular */ + /* by external trigger, continuous mode or scan sequence on going */ + /* to disable interruption. */ + /* Is it the end of the regular sequence ? */ + if ((hadc->Instance->ISR & ADC_FLAG_EOS) != 0UL) + { + /* Are conversions software-triggered ? */ + if (LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) + { + /* Is CONT bit set ? */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_CONT) == 0UL) + { + /* CONT bit is not set, no more conversions expected */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + } + } + } + } + else + { + /* DMA End of Transfer interrupt was triggered but conversions sequence + is not over. If DMACFG is set to 0, conversions are stopped. */ + if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMACFG) == 0UL) + { + /* DMACFG bit is not set, conversions are stopped. */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + } + } + } + + /* Conversion complete callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->ConvCpltCallback(hadc); +#else + HAL_ADC_ConvCpltCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + } + else /* DMA and-or internal error occurred */ + { + if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) != 0UL) + { + /* Call HAL ADC Error Callback function */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->ErrorCallback(hadc); +#else + HAL_ADC_ErrorCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + } + else + { + /* Call ADC DMA error callback */ + hadc->DMA_Handle->XferErrorCallback(hdma); + } + } +} + +/** + * @brief DMA half transfer complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma) +{ + /* Retrieve ADC handle corresponding to current DMA handle */ + ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Half conversion callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->ConvHalfCpltCallback(hadc); +#else + HAL_ADC_ConvHalfCpltCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA error callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void ADC_DMAError(DMA_HandleTypeDef *hdma) +{ + /* Retrieve ADC handle corresponding to current DMA handle */ + ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + + /* Set ADC error code to DMA error */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_DMA); + + /* Error callback */ +#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + hadc->ErrorCallback(hadc); +#else + HAL_ADC_ErrorCallback(hadc); +#endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +} + +/** + * @} + */ + +#endif /* HAL_ADC_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c new file mode 100644 index 0000000..06c5ece --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c @@ -0,0 +1,2384 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_adc_ex.c + * @author MCD Application Team + * @brief This file provides firmware functions to manage the following + * functionalities of the Analog to Digital Converter (ADC) + * peripheral: + * + Peripheral Control functions + * Other functions (generic functions) are available in file + * "stm32g4xx_hal_adc.c". + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + [..] + (@) Sections "ADC peripheral features" and "How to use this driver" are + available in file of generic functions "stm32g4xx_hal_adc.c". + [..] + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup ADCEx ADCEx + * @brief ADC Extended HAL module driver + * @{ + */ + +#ifdef HAL_ADC_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup ADCEx_Private_Constants ADC Extended Private Constants + * @{ + */ + +#define ADC_JSQR_FIELDS ((ADC_JSQR_JL | ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN |\ + ADC_JSQR_JSQ1 | ADC_JSQR_JSQ2 |\ + ADC_JSQR_JSQ3 | ADC_JSQR_JSQ4 )) /*!< ADC_JSQR fields of parameters that can + be updated anytime once the ADC is enabled */ + +/* Fixed timeout value for ADC calibration. */ +/* Values defined to be higher than worst cases: low clock frequency, */ +/* maximum prescalers. */ +/* Ex of profile low frequency : f_ADC at f_CPU/3968 (minimum value */ +/* considering both possible ADC clocking scheme: */ +/* - ADC clock from synchronous clock with AHB prescaler 512, */ +/* ADC prescaler 4. */ +/* Ratio max = 512 *4 = 2048 */ +/* - ADC clock from asynchronous clock (PLLP) with prescaler 256. */ +/* Highest CPU clock PLL (PLLR). */ +/* Ratio max = PLLRmax /PPLPmin * 256 = (VCO/2) / (VCO/31) * 256 */ +/* = 3968 ) */ +/* Calibration_time MAX = 81 / f_ADC */ +/* = 81 / (f_CPU/3938) = 318978 CPU cycles */ +#define ADC_CALIBRATION_TIMEOUT (318978UL) /*!< ADC calibration time-out value (unit: CPU cycles) */ + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup ADCEx_Exported_Functions ADC Extended Exported Functions + * @{ + */ + +/** @defgroup ADCEx_Exported_Functions_Group1 Extended Input and Output operation functions + * @brief Extended IO operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + + (+) Perform the ADC self-calibration for single or differential ending. + (+) Get calibration factors for single or differential ending. + (+) Set calibration factors for single or differential ending. + + (+) Start conversion of ADC group injected. + (+) Stop conversion of ADC group injected. + (+) Poll for conversion complete on ADC group injected. + (+) Get result of ADC group injected channel conversion. + (+) Start conversion of ADC group injected and enable interruptions. + (+) Stop conversion of ADC group injected and disable interruptions. + + (+) When multimode feature is available, start multimode and enable DMA transfer. + (+) Stop multimode and disable ADC DMA transfer. + (+) Get result of multimode conversion. + +@endverbatim + * @{ + */ + +/** + * @brief Perform an ADC automatic self-calibration + * Calibration prerequisite: ADC must be disabled (execute this + * function before HAL_ADC_Start() or after HAL_ADC_Stop() ). + * @param hadc ADC handle + * @param SingleDiff Selection of single-ended or differential input + * This parameter can be one of the following values: + * @arg @ref ADC_SINGLE_ENDED Channel in mode input single ended + * @arg @ref ADC_DIFFERENTIAL_ENDED Channel in mode input differential ended + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc, uint32_t SingleDiff) +{ + HAL_StatusTypeDef tmp_hal_status; + __IO uint32_t wait_loop_index = 0UL; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_SINGLE_DIFFERENTIAL(SingleDiff)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Calibration prerequisite: ADC must be disabled. */ + + /* Disable the ADC (if not already disabled) */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_BUSY_INTERNAL); + + /* Start ADC calibration in mode single-ended or differential */ + LL_ADC_StartCalibration(hadc->Instance, SingleDiff); + + /* Wait for calibration completion */ + while (LL_ADC_IsCalibrationOnGoing(hadc->Instance) != 0UL) + { + wait_loop_index++; + if (wait_loop_index >= ADC_CALIBRATION_TIMEOUT) + { + /* Update ADC state machine to error */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_BUSY_INTERNAL, + HAL_ADC_STATE_ERROR_INTERNAL); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + } + + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_BUSY_INTERNAL, + HAL_ADC_STATE_READY); + } + else + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Note: No need to update variable "tmp_hal_status" here: already set */ + /* to state "HAL_ERROR" by function disabling the ADC. */ + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Get the calibration factor. + * @param hadc ADC handle. + * @param SingleDiff This parameter can be only: + * @arg @ref ADC_SINGLE_ENDED Channel in mode input single ended + * @arg @ref ADC_DIFFERENTIAL_ENDED Channel in mode input differential ended + * @retval Calibration value. + */ +uint32_t HAL_ADCEx_Calibration_GetValue(const ADC_HandleTypeDef *hadc, uint32_t SingleDiff) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_SINGLE_DIFFERENTIAL(SingleDiff)); + + /* Return the selected ADC calibration value */ + return LL_ADC_GetCalibrationFactor(hadc->Instance, SingleDiff); +} + +/** + * @brief Set the calibration factor to overwrite automatic conversion result. + * ADC must be enabled and no conversion is ongoing. + * @param hadc ADC handle + * @param SingleDiff This parameter can be only: + * @arg @ref ADC_SINGLE_ENDED Channel in mode input single ended + * @arg @ref ADC_DIFFERENTIAL_ENDED Channel in mode input differential ended + * @param CalibrationFactor Calibration factor (coded on 7 bits maximum) + * @retval HAL state + */ +HAL_StatusTypeDef HAL_ADCEx_Calibration_SetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff, + uint32_t CalibrationFactor) +{ + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_SINGLE_DIFFERENTIAL(SingleDiff)); + assert_param(IS_ADC_CALFACT(CalibrationFactor)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Verification of hardware constraints before modifying the calibration */ + /* factors register: ADC must be enabled, no conversion on going. */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + + if ((LL_ADC_IsEnabled(hadc->Instance) != 0UL) + && (tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + /* Set the selected ADC calibration value */ + LL_ADC_SetCalibrationFactor(hadc->Instance, SingleDiff, CalibrationFactor); + } + else + { + /* Update ADC state machine */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + /* Update ADC error code */ + SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + + /* Update ADC state machine to error */ + tmp_hal_status = HAL_ERROR; + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Enable ADC, start conversion of injected group. + * @note Interruptions enabled in this function: None. + * @note Case of multimode enabled when multimode feature is available: + * HAL_ADCEx_InjectedStart() API must be called for ADC slave first, + * then for ADC master. + * For ADC slave, ADC is enabled only (conversion is not started). + * For ADC master, ADC is enabled and multimode conversion is started. + * @param hadc ADC handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + uint32_t tmp_config_injected_queue; +#if defined(ADC_MULTIMODE_SUPPORT) + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) + { + return HAL_BUSY; + } + else + { + /* In case of software trigger detection enabled, JQDIS must be set + (which can be done only if ADSTART and JADSTART are both cleared). + If JQDIS is not set at that point, returns an error + - since software trigger detection is disabled. User needs to + resort to HAL_ADCEx_DisableInjectedQueue() API to set JQDIS. + - or (if JQDIS is intentionally reset) since JEXTEN = 0 which means + the queue is empty */ + tmp_config_injected_queue = READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + + if ((READ_BIT(hadc->Instance->JSQR, ADC_JSQR_JEXTEN) == 0UL) + && (tmp_config_injected_queue == 0UL) + ) + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Enable the ADC peripheral */ + tmp_hal_status = ADC_Enable(hadc); + + /* Start conversion if ADC is effectively enabled */ + if (tmp_hal_status == HAL_OK) + { + /* Check if a regular conversion is ongoing */ + if ((hadc->State & HAL_ADC_STATE_REG_BUSY) != 0UL) + { + /* Reset ADC error code field related to injected conversions only */ + CLEAR_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); + } + else + { + /* Set ADC error code to none */ + ADC_CLEAR_ERRORCODE(hadc); + } + + /* Set ADC state */ + /* - Clear state bitfield related to injected group conversion results */ + /* - Set state bitfield related to injected operation */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_READY | HAL_ADC_STATE_INJ_EOC, + HAL_ADC_STATE_INJ_BUSY); + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + - if ADC instance is master or if multimode feature is not available + - if multimode setting is disabled (ADC instance slave in independent mode) */ + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + ) + { + CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Clear ADC group injected group conversion flag */ + /* (To ensure of no unknown state from potential previous ADC operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JEOC | ADC_FLAG_JEOS)); + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + + /* Enable conversion of injected group, if automatic injected conversion */ + /* is disabled. */ + /* If software start has been selected, conversion starts immediately. */ + /* If external trigger has been selected, conversion will start at next */ + /* trigger event. */ + /* Case of multimode enabled (when multimode feature is available): */ + /* if ADC is slave, */ + /* - ADC is enabled only (conversion is not started), */ + /* - if multimode only concerns regular conversion, ADC is enabled */ + /* and conversion is started. */ + /* If ADC is master or independent, */ + /* - ADC is enabled and conversion is started. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + ) + { + /* ADC instance is not a multimode slave instance with multimode injected conversions enabled */ + if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + { + LL_ADC_INJ_StartConversion(hadc->Instance); + } + } + else + { + /* ADC instance is not a multimode slave instance with multimode injected conversions enabled */ + SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#else + if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + { + /* Start ADC group injected conversion */ + LL_ADC_INJ_StartConversion(hadc->Instance); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } + + /* Return function status */ + return tmp_hal_status; + } +} + +/** + * @brief Stop conversion of injected channels. Disable ADC peripheral if + * no regular conversion is on going. + * @note If ADC must be disabled and if conversion is on going on + * regular group, function HAL_ADC_Stop must be used to stop both + * injected and regular groups, and disable the ADC. + * @note If injected group mode auto-injection is enabled, + * function HAL_ADC_Stop must be used. + * @note In case of multimode enabled (when multimode feature is available), + * HAL_ADCEx_InjectedStop() must be called for ADC master first, then for ADC slave. + * For ADC master, conversion is stopped and ADC is disabled. + * For ADC slave, ADC is disabled only (conversion stop of ADC master + * has already stopped conversion of ADC slave). + * @param hadc ADC handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential conversion on going on injected group only. */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_INJECTED_GROUP); + + /* Disable ADC peripheral if injected conversions are effectively stopped */ + /* and if no conversion on regular group is on-going */ + if (tmp_hal_status == HAL_OK) + { + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* 2. Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + /* Conversion on injected group is stopped, but ADC not disabled since */ + /* conversion on regular group is still running. */ + else + { + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Wait for injected group conversion to be completed. + * @param hadc ADC handle + * @param Timeout Timeout value in millisecond. + * @note Depending on hadc->Init.EOCSelection, JEOS or JEOC is + * checked and cleared depending on AUTDLY bit status. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) +{ + uint32_t tickstart; + uint32_t tmp_flag_end; + uint32_t tmp_adc_inj_is_trigger_source_sw_start; + uint32_t tmp_adc_reg_is_trigger_source_sw_start; + uint32_t tmp_cfgr; +#if defined(ADC_MULTIMODE_SUPPORT) + const ADC_TypeDef *tmpADC_Master; + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* If end of sequence selected */ + if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) + { + tmp_flag_end = ADC_FLAG_JEOS; + } + else /* end of conversion selected */ + { + tmp_flag_end = ADC_FLAG_JEOC; + } + + /* Get timeout */ + tickstart = HAL_GetTick(); + + /* Wait until End of Conversion or Sequence flag is raised */ + while ((hadc->Instance->ISR & tmp_flag_end) == 0UL) + { + /* Check if timeout is disabled (set to infinite wait) */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + { + /* New check to avoid false timeout detection in case of preemption */ + if ((hadc->Instance->ISR & tmp_flag_end) == 0UL) + { + /* Update ADC state machine to timeout */ + SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_TIMEOUT; + } + } + } + } + + /* Retrieve ADC configuration */ + tmp_adc_inj_is_trigger_source_sw_start = LL_ADC_INJ_IsTriggerSourceSWStart(hadc->Instance); + tmp_adc_reg_is_trigger_source_sw_start = LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance); + /* Get relevant register CFGR in ADC instance of ADC master or slave */ + /* in function of multimode state (for devices with multimode */ + /* available). */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + ) + { + tmp_cfgr = READ_REG(hadc->Instance->CFGR); + } + else + { + tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + } +#else + tmp_cfgr = READ_REG(hadc->Instance->CFGR); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Update ADC state machine */ + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); + + /* Determine whether any further conversion upcoming on group injected */ + /* by external trigger or by automatic injected conversion */ + /* from group regular. */ + if ((tmp_adc_inj_is_trigger_source_sw_start != 0UL) || + ((READ_BIT(tmp_cfgr, ADC_CFGR_JAUTO) == 0UL) && + ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && + (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) == 0UL)))) + { + /* Check whether end of sequence is reached */ + if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS)) + { + /* Particular case if injected contexts queue is enabled: */ + /* when the last context has been fully processed, JSQR is reset */ + /* by the hardware. Even if no injected conversion is planned to come */ + /* (queue empty, triggers are ignored), it can start again */ + /* immediately after setting a new context (JADSTART is still set). */ + /* Therefore, state of HAL ADC injected group is kept to busy. */ + if (READ_BIT(tmp_cfgr, ADC_CFGR_JQM) == 0UL) + { + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + + if ((hadc->State & HAL_ADC_STATE_REG_BUSY) == 0UL) + { + SET_BIT(hadc->State, HAL_ADC_STATE_READY); + } + } + } + } + + /* Clear polled flag */ + if (tmp_flag_end == ADC_FLAG_JEOS) + { + /* Clear end of sequence JEOS flag of injected group if low power feature */ + /* "LowPowerAutoWait " is disabled, to not interfere with this feature. */ + /* For injected groups, no new conversion will start before JEOS is */ + /* cleared. */ + if (READ_BIT(tmp_cfgr, ADC_CFGR_AUTDLY) == 0UL) + { + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JEOC | ADC_FLAG_JEOS)); + } + } + else + { + __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOC); + } + + /* Return API HAL status */ + return HAL_OK; +} + +/** + * @brief Enable ADC, start conversion of injected group with interruption. + * @note Interruptions enabled in this function according to initialization + * setting : JEOC (end of conversion) or JEOS (end of sequence) + * @note Case of multimode enabled (when multimode feature is enabled): + * HAL_ADCEx_InjectedStart_IT() API must be called for ADC slave first, + * then for ADC master. + * For ADC slave, ADC is enabled only (conversion is not started). + * For ADC master, ADC is enabled and multimode conversion is started. + * @param hadc ADC handle. + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + uint32_t tmp_config_injected_queue; +#if defined(ADC_MULTIMODE_SUPPORT) + uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) + { + return HAL_BUSY; + } + else + { + /* In case of software trigger detection enabled, JQDIS must be set + (which can be done only if ADSTART and JADSTART are both cleared). + If JQDIS is not set at that point, returns an error + - since software trigger detection is disabled. User needs to + resort to HAL_ADCEx_DisableInjectedQueue() API to set JQDIS. + - or (if JQDIS is intentionally reset) since JEXTEN = 0 which means + the queue is empty */ + tmp_config_injected_queue = READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + + if ((READ_BIT(hadc->Instance->JSQR, ADC_JSQR_JEXTEN) == 0UL) + && (tmp_config_injected_queue == 0UL) + ) + { + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Enable the ADC peripheral */ + tmp_hal_status = ADC_Enable(hadc); + + /* Start conversion if ADC is effectively enabled */ + if (tmp_hal_status == HAL_OK) + { + /* Check if a regular conversion is ongoing */ + if ((hadc->State & HAL_ADC_STATE_REG_BUSY) != 0UL) + { + /* Reset ADC error code field related to injected conversions only */ + CLEAR_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); + } + else + { + /* Set ADC error code to none */ + ADC_CLEAR_ERRORCODE(hadc); + } + + /* Set ADC state */ + /* - Clear state bitfield related to injected group conversion results */ + /* - Set state bitfield related to injected operation */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_READY | HAL_ADC_STATE_INJ_EOC, + HAL_ADC_STATE_INJ_BUSY); + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + - if ADC instance is master or if multimode feature is not available + - if multimode setting is disabled (ADC instance slave in independent mode) */ + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + ) + { + CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Clear ADC group injected group conversion flag */ + /* (To ensure of no unknown state from potential previous ADC operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JEOC | ADC_FLAG_JEOS)); + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + + /* Enable ADC Injected context queue overflow interrupt if this feature */ + /* is enabled. */ + if ((hadc->Instance->CFGR & ADC_CFGR_JQM) != 0UL) + { + __HAL_ADC_ENABLE_IT(hadc, ADC_FLAG_JQOVF); + } + + /* Enable ADC end of conversion interrupt */ + switch (hadc->Init.EOCSelection) + { + case ADC_EOC_SEQ_CONV: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + break; + /* case ADC_EOC_SINGLE_CONV */ + default: + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + break; + } + + /* Enable conversion of injected group, if automatic injected conversion */ + /* is disabled. */ + /* If software start has been selected, conversion starts immediately. */ + /* If external trigger has been selected, conversion will start at next */ + /* trigger event. */ + /* Case of multimode enabled (when multimode feature is available): */ + /* if ADC is slave, */ + /* - ADC is enabled only (conversion is not started), */ + /* - if multimode only concerns regular conversion, ADC is enabled */ + /* and conversion is started. */ + /* If ADC is master or independent, */ + /* - ADC is enabled and conversion is started. */ +#if defined(ADC_MULTIMODE_SUPPORT) + if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + ) + { + /* ADC instance is not a multimode slave instance with multimode injected conversions enabled */ + if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + { + LL_ADC_INJ_StartConversion(hadc->Instance); + } + } + else + { + /* ADC instance is not a multimode slave instance with multimode injected conversions enabled */ + SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + } +#else + if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + { + /* Start ADC group injected conversion */ + LL_ADC_INJ_StartConversion(hadc->Instance); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } + + /* Return function status */ + return tmp_hal_status; + } +} + +/** + * @brief Stop conversion of injected channels, disable interruption of + * end-of-conversion. Disable ADC peripheral if no regular conversion + * is on going. + * @note If ADC must be disabled and if conversion is on going on + * regular group, function HAL_ADC_Stop must be used to stop both + * injected and regular groups, and disable the ADC. + * @note If injected group mode auto-injection is enabled, + * function HAL_ADC_Stop must be used. + * @note Case of multimode enabled (when multimode feature is available): + * HAL_ADCEx_InjectedStop_IT() API must be called for ADC master first, + * then for ADC slave. + * For ADC master, conversion is stopped and ADC is disabled. + * For ADC slave, ADC is disabled only (conversion stop of ADC master + * has already stopped conversion of ADC slave). + * @note In case of auto-injection mode, HAL_ADC_Stop() must be used. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential conversion on going on injected group only. */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_INJECTED_GROUP); + + /* Disable ADC peripheral if injected conversions are effectively stopped */ + /* and if no conversion on the other group (regular group) is intended to */ + /* continue. */ + if (tmp_hal_status == HAL_OK) + { + /* Disable ADC end of conversion interrupt for injected channels */ + __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_JEOC | ADC_IT_JEOS | ADC_FLAG_JQOVF)); + + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* 2. Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + /* Conversion on injected group is stopped, but ADC not disabled since */ + /* conversion on regular group is still running. */ + else + { + /* Set ADC state */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Enable ADC, start MultiMode conversion and transfer regular results through DMA. + * @note Multimode must have been previously configured using + * HAL_ADCEx_MultiModeConfigChannel() function. + * Interruptions enabled in this function: + * overrun, DMA half transfer, DMA transfer complete. + * Each of these interruptions has its dedicated callback function. + * @note State field of Slave ADC handle is not updated in this configuration: + * user should not rely on it for information related to Slave regular + * conversions. + * @param hadc ADC handle of ADC master (handle of ADC slave must not be used) + * @param pData Destination Buffer address. + * @param Length Length of data to be transferred from ADC peripheral to memory (in bytes). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length) +{ + HAL_StatusTypeDef tmp_hal_status; + ADC_HandleTypeDef tmp_hadc_slave; + ADC_Common_TypeDef *tmpADC_Common; + + /* Check the parameters */ + assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); + assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); + assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); + + if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) != 0UL) + { + return HAL_BUSY; + } + else + { + /* Process locked */ + __HAL_LOCK(hadc); + + /* Temporary handle minimum initialization */ + __HAL_ADC_RESET_HANDLE_STATE(&tmp_hadc_slave); + ADC_CLEAR_ERRORCODE(&tmp_hadc_slave); + + /* Set a temporary handle of the ADC slave associated to the ADC master */ + ADC_MULTI_SLAVE(hadc, &tmp_hadc_slave); + + if (tmp_hadc_slave.Instance == NULL) + { + /* Set ADC state */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + + /* Enable the ADC peripherals: master and slave (in case if not already */ + /* enabled previously) */ + tmp_hal_status = ADC_Enable(hadc); + if (tmp_hal_status == HAL_OK) + { + tmp_hal_status = ADC_Enable(&tmp_hadc_slave); + } + + /* Start multimode conversion of ADCs pair */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + (HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_ADC_STATE_REG_EOSMP), + HAL_ADC_STATE_REG_BUSY); + + /* Set ADC error code to none */ + ADC_CLEAR_ERRORCODE(hadc); + + /* Set the DMA transfer complete callback */ + hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; + + /* Set the DMA half transfer complete callback */ + hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; + + /* Set the DMA error callback */ + hadc->DMA_Handle->XferErrorCallback = ADC_DMAError ; + + /* Pointer to the common control register */ + tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + + /* Manage ADC and DMA start: ADC overrun interruption, DMA start, ADC */ + /* start (in case of SW start): */ + + /* Clear regular group conversion flag and overrun flag */ + /* (To ensure of no unknown state from potential previous ADC operations) */ + __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + + /* Process unlocked */ + /* Unlock before starting ADC conversions: in case of potential */ + /* interruption, to let the process to ADC IRQ Handler. */ + __HAL_UNLOCK(hadc); + + /* Enable ADC overrun interrupt */ + __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); + + /* Start the DMA channel */ + tmp_hal_status = HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&tmpADC_Common->CDR, (uint32_t)pData, Length); + + /* Enable conversion of regular group. */ + /* If software start has been selected, conversion starts immediately. */ + /* If external trigger has been selected, conversion will start at next */ + /* trigger event. */ + /* Start ADC group regular conversion */ + LL_ADC_REG_StartConversion(hadc->Instance); + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hadc); + } + + /* Return function status */ + return tmp_hal_status; + } +} + +/** + * @brief Stop multimode ADC conversion, disable ADC DMA transfer, disable ADC peripheral. + * @note Multimode is kept enabled after this function. MultiMode DMA bits + * (MDMA and DMACFG bits of common CCR register) are maintained. To disable + * Multimode (set with HAL_ADCEx_MultiModeConfigChannel()), ADC must be + * reinitialized using HAL_ADC_Init() or HAL_ADC_DeInit(), or the user can + * resort to HAL_ADCEx_DisableMultiMode() API. + * @note In case of DMA configured in circular mode, function + * HAL_ADC_Stop_DMA() must be called after this function with handle of + * ADC slave, to properly disable the DMA channel. + * @param hadc ADC handle of ADC master (handle of ADC slave must not be used) + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + uint32_t tickstart; + ADC_HandleTypeDef tmp_hadc_slave; + uint32_t tmp_hadc_slave_conversion_on_going; + HAL_StatusTypeDef tmp_hadc_slave_disable_status; + + /* Check the parameters */ + assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential multimode conversion on going, on regular and injected groups */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + { + /* Temporary handle minimum initialization */ + __HAL_ADC_RESET_HANDLE_STATE(&tmp_hadc_slave); + ADC_CLEAR_ERRORCODE(&tmp_hadc_slave); + + /* Set a temporary handle of the ADC slave associated to the ADC master */ + ADC_MULTI_SLAVE(hadc, &tmp_hadc_slave); + + if (tmp_hadc_slave.Instance == NULL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + + /* Procedure to disable the ADC peripheral: wait for conversions */ + /* effectively stopped (ADC master and ADC slave), then disable ADC */ + + /* 1. Wait for ADC conversion completion for ADC master and ADC slave */ + tickstart = HAL_GetTick(); + + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + while ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + || (tmp_hadc_slave_conversion_on_going == 1UL) + ) + { + if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + || (tmp_hadc_slave_conversion_on_going == 1UL) + ) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + } + + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + } + + /* Disable the DMA channel (in case of DMA in circular mode or stop */ + /* while DMA transfer is on going) */ + /* Note: DMA channel of ADC slave should be stopped after this function */ + /* with HAL_ADC_Stop_DMA() API. */ + tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); + + /* Check if DMA channel effectively disabled */ + if (tmp_hal_status == HAL_ERROR) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + } + + /* Disable ADC overrun interrupt */ + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); + + /* 2. Disable the ADC peripherals: master and slave */ + /* Update "tmp_hal_status" only if DMA channel disabling passed, to keep in */ + /* memory a potential failing status. */ + if (tmp_hal_status == HAL_OK) + { + tmp_hadc_slave_disable_status = ADC_Disable(&tmp_hadc_slave); + if ((ADC_Disable(hadc) == HAL_OK) && + (tmp_hadc_slave_disable_status == HAL_OK)) + { + tmp_hal_status = HAL_OK; + } + } + else + { + /* In case of error, attempt to disable ADC master and slave without status assert */ + (void) ADC_Disable(hadc); + (void) ADC_Disable(&tmp_hadc_slave); + } + + /* Set ADC state (ADC master) */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Return the last ADC Master and Slave regular conversions results when in multimode configuration. + * @param hadc ADC handle of ADC Master (handle of ADC Slave must not be used) + * @retval The converted data values. + */ +uint32_t HAL_ADCEx_MultiModeGetValue(const ADC_HandleTypeDef *hadc) +{ + const ADC_Common_TypeDef *tmpADC_Common; + + /* Check the parameters */ + assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + + /* Prevent unused argument(s) compilation warning if no assert_param check */ + /* and possible no usage in __LL_ADC_COMMON_INSTANCE() below */ + UNUSED(hadc); + + /* Pointer to the common control register */ + tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + + /* Return the multi mode conversion value */ + return tmpADC_Common->CDR; +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @brief Get ADC injected group conversion result. + * @note Reading register JDRx automatically clears ADC flag JEOC + * (ADC group injected end of unitary conversion). + * @note This function does not clear ADC flag JEOS + * (ADC group injected end of sequence conversion) + * Occurrence of flag JEOS rising: + * - If sequencer is composed of 1 rank, flag JEOS is equivalent + * to flag JEOC. + * - If sequencer is composed of several ranks, during the scan + * sequence flag JEOC only is raised, at the end of the scan sequence + * both flags JEOC and EOS are raised. + * Flag JEOS must not be cleared by this function because + * it would not be compliant with low power features + * (feature low power auto-wait, not available on all STM32 series). + * To clear this flag, either use function: + * in programming model IT: @ref HAL_ADC_IRQHandler(), in programming + * model polling: @ref HAL_ADCEx_InjectedPollForConversion() + * or @ref __HAL_ADC_CLEAR_FLAG(&hadc, ADC_FLAG_JEOS). + * @param hadc ADC handle + * @param InjectedRank the converted ADC injected rank. + * This parameter can be one of the following values: + * @arg @ref ADC_INJECTED_RANK_1 ADC group injected rank 1 + * @arg @ref ADC_INJECTED_RANK_2 ADC group injected rank 2 + * @arg @ref ADC_INJECTED_RANK_3 ADC group injected rank 3 + * @arg @ref ADC_INJECTED_RANK_4 ADC group injected rank 4 + * @retval ADC group injected conversion data + */ +uint32_t HAL_ADCEx_InjectedGetValue(const ADC_HandleTypeDef *hadc, uint32_t InjectedRank) +{ + uint32_t tmp_jdr; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_INJECTED_RANK(InjectedRank)); + + /* Get ADC converted value */ + switch (InjectedRank) + { + case ADC_INJECTED_RANK_4: + tmp_jdr = hadc->Instance->JDR4; + break; + case ADC_INJECTED_RANK_3: + tmp_jdr = hadc->Instance->JDR3; + break; + case ADC_INJECTED_RANK_2: + tmp_jdr = hadc->Instance->JDR2; + break; + case ADC_INJECTED_RANK_1: + default: + tmp_jdr = hadc->Instance->JDR1; + break; + } + + /* Return ADC converted value */ + return tmp_jdr; +} + +/** + * @brief Injected conversion complete callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADCEx_InjectedConvCpltCallback must be implemented in the user file. + */ +} + +/** + * @brief Injected context queue overflow callback. + * @note This callback is called if injected context queue is enabled + (parameter "QueueInjectedContext" in injected channel configuration) + and if a new injected context is set when queue is full (maximum 2 + contexts). + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADCEx_InjectedQueueOverflowCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADCEx_InjectedQueueOverflowCallback must be implemented in the user file. + */ +} + +/** + * @brief Analog watchdog 2 callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADCEx_LevelOutOfWindow2Callback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADCEx_LevelOutOfWindow2Callback must be implemented in the user file. + */ +} + +/** + * @brief Analog watchdog 3 callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADCEx_LevelOutOfWindow3Callback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADCEx_LevelOutOfWindow3Callback must be implemented in the user file. + */ +} + + +/** + * @brief End Of Sampling callback in non-blocking mode. + * @param hadc ADC handle + * @retval None + */ +__weak void HAL_ADCEx_EndOfSamplingCallback(ADC_HandleTypeDef *hadc) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hadc); + + /* NOTE : This function should not be modified. When the callback is needed, + function HAL_ADCEx_EndOfSamplingCallback must be implemented in the user file. + */ +} + +/** + * @brief Stop ADC conversion of regular group (and injected channels in + * case of auto_injection mode), disable ADC peripheral if no + * conversion is on going on injected group. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADCEx_RegularStop(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential regular conversion on going */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + + /* Disable ADC peripheral if regular conversions are effectively stopped + and if no injected conversions are on-going */ + if (tmp_hal_status == HAL_OK) + { + /* Clear HAL_ADC_STATE_REG_BUSY bit */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* 2. Disable the ADC peripheral */ + tmp_hal_status = ADC_Disable(hadc); + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + /* Conversion on injected group is stopped, but ADC not disabled since */ + /* conversion on regular group is still running. */ + else + { + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + + +/** + * @brief Stop ADC conversion of ADC groups regular and injected, + * disable interrution of end-of-conversion, + * disable ADC peripheral if no conversion is on going + * on injected group. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADCEx_RegularStop_IT(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential regular conversion on going */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped + and if no injected conversion is on-going */ + if (tmp_hal_status == HAL_OK) + { + /* Clear HAL_ADC_STATE_REG_BUSY bit */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + + /* Disable all regular-related interrupts */ + __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); + + /* 2. Disable ADC peripheral if no injected conversions are on-going */ + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + { + tmp_hal_status = ADC_Disable(hadc); + /* if no issue reported */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + else + { + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +/** + * @brief Stop ADC conversion of regular group (and injected group in + * case of auto_injection mode), disable ADC DMA transfer, disable + * ADC peripheral if no conversion is on going + * on injected group. + * @note HAL_ADCEx_RegularStop_DMA() function is dedicated to single-ADC mode only. + * For multimode (when multimode feature is available), + * HAL_ADCEx_RegularMultiModeStop_DMA() API must be used. + * @param hadc ADC handle + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_ADCEx_RegularStop_DMA(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + /* 1. Stop potential regular conversion on going */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped + and if no injected conversion is on-going */ + if (tmp_hal_status == HAL_OK) + { + /* Clear HAL_ADC_STATE_REG_BUSY bit */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + + /* Disable ADC DMA (ADC DMA configuration ADC_CFGR_DMACFG is kept) */ + CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN); + + /* Disable the DMA channel (in case of DMA in circular mode or stop while */ + /* while DMA transfer is on going) */ + tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); + + /* Check if DMA channel effectively disabled */ + if (tmp_hal_status != HAL_OK) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + } + + /* Disable ADC overrun interrupt */ + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); + + /* 2. Disable the ADC peripheral */ + /* Update "tmp_hal_status" only if DMA channel disabling passed, */ + /* to keep in memory a potential failing status. */ + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + { + if (tmp_hal_status == HAL_OK) + { + tmp_hal_status = ADC_Disable(hadc); + } + else + { + (void)ADC_Disable(hadc); + } + + /* Check if ADC is effectively disabled */ + if (tmp_hal_status == HAL_OK) + { + /* Set ADC state */ + ADC_STATE_CLR_SET(hadc->State, + HAL_ADC_STATE_INJ_BUSY, + HAL_ADC_STATE_READY); + } + } + else + { + SET_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Stop DMA-based multimode ADC conversion, disable ADC DMA transfer, disable ADC peripheral if no injected + * conversion is on-going. + * @note Multimode is kept enabled after this function. Multimode DMA bits + * (MDMA and DMACFG bits of common CCR register) are maintained. To disable + * multimode (set with HAL_ADCEx_MultiModeConfigChannel()), ADC must be + * reinitialized using HAL_ADC_Init() or HAL_ADC_DeInit(), or the user can + * resort to HAL_ADCEx_DisableMultiMode() API. + * @note In case of DMA configured in circular mode, function + * HAL_ADCEx_RegularStop_DMA() must be called after this function with handle of + * ADC slave, to properly disable the DMA channel. + * @param hadc ADC handle of ADC master (handle of ADC slave must not be used) + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_RegularMultiModeStop_DMA(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + uint32_t tickstart; + ADC_HandleTypeDef tmp_hadc_slave; + uint32_t tmp_hadc_slave_conversion_on_going; + + /* Check the parameters */ + assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + + /* Process locked */ + __HAL_LOCK(hadc); + + + /* 1. Stop potential multimode conversion on going, on regular groups */ + tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + + /* Disable ADC peripheral if conversions are effectively stopped */ + if (tmp_hal_status == HAL_OK) + { + /* Clear HAL_ADC_STATE_REG_BUSY bit */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + + /* Temporary handle minimum initialization */ + __HAL_ADC_RESET_HANDLE_STATE(&tmp_hadc_slave); + ADC_CLEAR_ERRORCODE(&tmp_hadc_slave); + + /* Set a temporary handle of the ADC slave associated to the ADC master */ + ADC_MULTI_SLAVE(hadc, &tmp_hadc_slave); + + if (tmp_hadc_slave.Instance == NULL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + + /* Procedure to disable the ADC peripheral: wait for conversions */ + /* effectively stopped (ADC master and ADC slave), then disable ADC */ + + /* 1. Wait for ADC conversion completion for ADC master and ADC slave */ + tickstart = HAL_GetTick(); + + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + while ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + || (tmp_hadc_slave_conversion_on_going == 1UL) + ) + { + if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + || (tmp_hadc_slave_conversion_on_going == 1UL) + ) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + } + + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + } + + /* Disable the DMA channel (in case of DMA in circular mode or stop */ + /* while DMA transfer is on going) */ + /* Note: DMA channel of ADC slave should be stopped after this function */ + /* with HAL_ADCEx_RegularStop_DMA() API. */ + tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); + + /* Check if DMA channel effectively disabled */ + if (tmp_hal_status != HAL_OK) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + } + + /* Disable ADC overrun interrupt */ + __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); + + /* 2. Disable the ADC peripherals: master and slave if no injected */ + /* conversion is on-going. */ + /* Update "tmp_hal_status" only if DMA channel disabling passed, to keep in */ + /* memory a potential failing status. */ + if (tmp_hal_status == HAL_OK) + { + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + { + tmp_hal_status = ADC_Disable(hadc); + if (tmp_hal_status == HAL_OK) + { + if (LL_ADC_INJ_IsConversionOngoing((&tmp_hadc_slave)->Instance) == 0UL) + { + tmp_hal_status = ADC_Disable(&tmp_hadc_slave); + } + } + } + + if (tmp_hal_status == HAL_OK) + { + /* Both Master and Slave ADC's could be disabled. Update Master State */ + /* Clear HAL_ADC_STATE_INJ_BUSY bit, set HAL_ADC_STATE_READY bit */ + ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_READY); + } + else + { + /* injected (Master or Slave) conversions are still on-going, + no Master State change */ + } + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @} + */ + +/** @defgroup ADCEx_Exported_Functions_Group2 ADC Extended Peripheral Control functions + * @brief ADC Extended Peripheral Control functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure channels on injected group + (+) Configure multimode when multimode feature is available + (+) Enable or Disable Injected Queue + (+) Disable ADC voltage regulator + (+) Enter ADC deep-power-down mode + +@endverbatim + * @{ + */ + +/** + * @brief Configure a channel to be assigned to ADC group injected. + * @note Possibility to update parameters on the fly: + * This function initializes injected group, following calls to this + * function can be used to reconfigure some parameters of structure + * "ADC_InjectionConfTypeDef" on the fly, without resetting the ADC. + * The setting of these parameters is conditioned to ADC state: + * Refer to comments of structure "ADC_InjectionConfTypeDef". + * @note In case of usage of internal measurement channels: + * Vbat/VrefInt/TempSensor. + * These internal paths can be disabled using function + * HAL_ADC_DeInit(). + * @note Caution: For Injected Context Queue use, a context must be fully + * defined before start of injected conversion. All channels are configured + * consecutively for the same ADC instance. Therefore, the number of calls to + * HAL_ADCEx_InjectedConfigChannel() must be equal to the value of parameter + * InjectedNbrOfConversion for each context. + * - Example 1: If 1 context is intended to be used (or if there is no use of the + * Injected Queue Context feature) and if the context contains 3 injected ranks + * (InjectedNbrOfConversion = 3), HAL_ADCEx_InjectedConfigChannel() must be + * called once for each channel (i.e. 3 times) before starting a conversion. + * This function must not be called to configure a 4th injected channel: + * it would start a new context into context queue. + * - Example 2: If 2 contexts are intended to be used and each of them contains + * 3 injected ranks (InjectedNbrOfConversion = 3), + * HAL_ADCEx_InjectedConfigChannel() must be called once for each channel and + * for each context (3 channels x 2 contexts = 6 calls). Conversion can + * start once the 1st context is set, that is after the first three + * HAL_ADCEx_InjectedConfigChannel() calls. The 2nd context can be set on the fly. + * @param hadc ADC handle + * @param pConfigInjected Structure of ADC injected group and ADC channel for + * injected group. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, + const ADC_InjectionConfTypeDef *pConfigInjected) +{ + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + uint32_t tmp_offset_shifted; + uint32_t tmp_config_internal_channel; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + __IO uint32_t wait_loop_index = 0; + + uint32_t tmp_jsqr_context_queue_being_built = 0U; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_SAMPLE_TIME(pConfigInjected->InjectedSamplingTime)); + assert_param(IS_ADC_SINGLE_DIFFERENTIAL(pConfigInjected->InjectedSingleDiff)); + assert_param(IS_FUNCTIONAL_STATE(pConfigInjected->AutoInjectedConv)); + assert_param(IS_FUNCTIONAL_STATE(pConfigInjected->QueueInjectedContext)); + assert_param(IS_ADC_EXTTRIGINJEC_EDGE(pConfigInjected->ExternalTrigInjecConvEdge)); + assert_param(IS_ADC_EXTTRIGINJEC(hadc, pConfigInjected->ExternalTrigInjecConv)); + assert_param(IS_ADC_OFFSET_NUMBER(pConfigInjected->InjectedOffsetNumber)); + assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), pConfigInjected->InjectedOffset)); + assert_param(IS_ADC_OFFSET_SIGN(pConfigInjected->InjectedOffsetSign)); + assert_param(IS_FUNCTIONAL_STATE(pConfigInjected->InjectedOffsetSaturation)); + assert_param(IS_FUNCTIONAL_STATE(pConfigInjected->InjecOversamplingMode)); + + if (hadc->Init.ScanConvMode != ADC_SCAN_DISABLE) + { + assert_param(IS_ADC_INJECTED_RANK(pConfigInjected->InjectedRank)); + assert_param(IS_ADC_INJECTED_NB_CONV(pConfigInjected->InjectedNbrOfConversion)); + assert_param(IS_FUNCTIONAL_STATE(pConfigInjected->InjectedDiscontinuousConvMode)); + } + + + /* if JOVSE is set, the value of the OFFSETy_EN bit in ADCx_OFRy register is + ignored (considered as reset) */ + assert_param(!((pConfigInjected->InjectedOffsetNumber != ADC_OFFSET_NONE) + && (pConfigInjected->InjecOversamplingMode == ENABLE))); + + /* JDISCEN and JAUTO bits can't be set at the same time */ + assert_param(!((pConfigInjected->InjectedDiscontinuousConvMode == ENABLE) + && (pConfigInjected->AutoInjectedConv == ENABLE))); + + /* DISCEN and JAUTO bits can't be set at the same time */ + assert_param(!((hadc->Init.DiscontinuousConvMode == ENABLE) && (pConfigInjected->AutoInjectedConv == ENABLE))); + + /* Verification of channel number */ + if (pConfigInjected->InjectedSingleDiff != ADC_DIFFERENTIAL_ENDED) + { + assert_param(IS_ADC_CHANNEL(hadc, pConfigInjected->InjectedChannel)); + } + else + { + assert_param(IS_ADC_DIFF_CHANNEL(hadc, pConfigInjected->InjectedChannel)); + } + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Configuration of injected group sequencer: */ + /* Hardware constraint: Must fully define injected context register JSQR */ + /* before make it entering into injected sequencer queue. */ + /* */ + /* - if scan mode is disabled: */ + /* * Injected channels sequence length is set to 0x00: 1 channel */ + /* converted (channel on injected rank 1) */ + /* Parameter "InjectedNbrOfConversion" is discarded. */ + /* * Injected context register JSQR setting is simple: register is fully */ + /* defined on one call of this function (for injected rank 1) and can */ + /* be entered into queue directly. */ + /* - if scan mode is enabled: */ + /* * Injected channels sequence length is set to parameter */ + /* "InjectedNbrOfConversion". */ + /* * Injected context register JSQR setting more complex: register is */ + /* fully defined over successive calls of this function, for each */ + /* injected channel rank. It is entered into queue only when all */ + /* injected ranks have been set. */ + /* Note: Scan mode is not present by hardware on this device, but used */ + /* by software for alignment over all STM32 devices. */ + + if ((hadc->Init.ScanConvMode == ADC_SCAN_DISABLE) || + (pConfigInjected->InjectedNbrOfConversion == 1U)) + { + /* Configuration of context register JSQR: */ + /* - number of ranks in injected group sequencer: fixed to 1st rank */ + /* (scan mode disabled, only rank 1 used) */ + /* - external trigger to start conversion */ + /* - external trigger polarity */ + /* - channel set to rank 1 (scan mode disabled, only rank 1 can be used) */ + + if (pConfigInjected->InjectedRank == ADC_INJECTED_RANK_1) + { + /* Enable external trigger if trigger selection is different of */ + /* software start. */ + /* Note: This configuration keeps the hardware feature of parameter */ + /* ExternalTrigInjecConvEdge "trigger edge none" equivalent to */ + /* software start. */ + if (pConfigInjected->ExternalTrigInjecConv != ADC_INJECTED_SOFTWARE_START) + { + tmp_jsqr_context_queue_being_built = (ADC_JSQR_RK(pConfigInjected->InjectedChannel, ADC_INJECTED_RANK_1) + | (pConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEXTSEL) + | pConfigInjected->ExternalTrigInjecConvEdge + ); + } + else + { + tmp_jsqr_context_queue_being_built = (ADC_JSQR_RK(pConfigInjected->InjectedChannel, ADC_INJECTED_RANK_1)); + } + + MODIFY_REG(hadc->Instance->JSQR, ADC_JSQR_FIELDS, tmp_jsqr_context_queue_being_built); + /* For debug and informative reasons, hadc handle saves JSQR setting */ + hadc->InjectionConfig.ContextQueue = tmp_jsqr_context_queue_being_built; + + } + } + else + { + /* Case of scan mode enabled, several channels to set into injected group */ + /* sequencer. */ + /* */ + /* Procedure to define injected context register JSQR over successive */ + /* calls of this function, for each injected channel rank: */ + /* 1. Start new context and set parameters related to all injected */ + /* channels: injected sequence length and trigger. */ + + /* if hadc->InjectionConfig.ChannelCount is equal to 0, this is the first */ + /* call of the context under setting */ + if (hadc->InjectionConfig.ChannelCount == 0U) + { + /* Initialize number of channels that will be configured on the context */ + /* being built */ + hadc->InjectionConfig.ChannelCount = pConfigInjected->InjectedNbrOfConversion; + /* Handle hadc saves the context under build up over each HAL_ADCEx_InjectedConfigChannel() + call, this context will be written in JSQR register at the last call. + At this point, the context is merely reset */ + hadc->InjectionConfig.ContextQueue = 0x00000000U; + + /* Configuration of context register JSQR: */ + /* - number of ranks in injected group sequencer */ + /* - external trigger to start conversion */ + /* - external trigger polarity */ + + /* Enable external trigger if trigger selection is different of */ + /* software start. */ + /* Note: This configuration keeps the hardware feature of parameter */ + /* ExternalTrigInjecConvEdge "trigger edge none" equivalent to */ + /* software start. */ + if (pConfigInjected->ExternalTrigInjecConv != ADC_INJECTED_SOFTWARE_START) + { + tmp_jsqr_context_queue_being_built = ((pConfigInjected->InjectedNbrOfConversion - 1U) + | (pConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEXTSEL) + | pConfigInjected->ExternalTrigInjecConvEdge + ); + } + else + { + tmp_jsqr_context_queue_being_built = ((pConfigInjected->InjectedNbrOfConversion - 1U)); + } + + } + + /* 2. Continue setting of context under definition with parameter */ + /* related to each channel: channel rank sequence */ + /* Clear the old JSQx bits for the selected rank */ + tmp_jsqr_context_queue_being_built &= ~ADC_JSQR_RK(ADC_SQR3_SQ10, pConfigInjected->InjectedRank); + + /* Set the JSQx bits for the selected rank */ + tmp_jsqr_context_queue_being_built |= ADC_JSQR_RK(pConfigInjected->InjectedChannel, pConfigInjected->InjectedRank); + + /* Decrease channel count */ + hadc->InjectionConfig.ChannelCount--; + + /* 3. tmp_jsqr_context_queue_being_built is fully built for this HAL_ADCEx_InjectedConfigChannel() + call, aggregate the setting to those already built during the previous + HAL_ADCEx_InjectedConfigChannel() calls (for the same context of course) */ + hadc->InjectionConfig.ContextQueue |= tmp_jsqr_context_queue_being_built; + + /* 4. End of context setting: if this is the last channel set, then write context + into register JSQR and make it enter into queue */ + if (hadc->InjectionConfig.ChannelCount == 0U) + { + MODIFY_REG(hadc->Instance->JSQR, ADC_JSQR_FIELDS, hadc->InjectionConfig.ContextQueue); + } + } + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on injected group: */ + /* - Injected context queue: Queue disable (active context is kept) or */ + /* enable (context decremented, up to 2 contexts queued) */ + /* - Injected discontinuous mode: can be enabled only if auto-injected */ + /* mode is disabled. */ + if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + { + /* If auto-injected mode is disabled: no constraint */ + if (pConfigInjected->AutoInjectedConv == DISABLE) + { + MODIFY_REG(hadc->Instance->CFGR, + ADC_CFGR_JQM | ADC_CFGR_JDISCEN, + ADC_CFGR_INJECT_CONTEXT_QUEUE((uint32_t)pConfigInjected->QueueInjectedContext) | + ADC_CFGR_INJECT_DISCCONTINUOUS((uint32_t)pConfigInjected->InjectedDiscontinuousConvMode)); + } + /* If auto-injected mode is enabled: Injected discontinuous setting is */ + /* discarded. */ + else + { + MODIFY_REG(hadc->Instance->CFGR, + ADC_CFGR_JQM | ADC_CFGR_JDISCEN, + ADC_CFGR_INJECT_CONTEXT_QUEUE((uint32_t)pConfigInjected->QueueInjectedContext)); + } + + } + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular and injected groups: */ + /* - Automatic injected conversion: can be enabled if injected group */ + /* external triggers are disabled. */ + /* - Channel sampling time */ + /* - Channel offset */ + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + /* If injected group external triggers are disabled (set to injected */ + /* software start): no constraint */ + if ((pConfigInjected->ExternalTrigInjecConv == ADC_INJECTED_SOFTWARE_START) + || (pConfigInjected->ExternalTrigInjecConvEdge == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE)) + { + if (pConfigInjected->AutoInjectedConv == ENABLE) + { + SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO); + } + else + { + CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO); + } + } + /* If Automatic injected conversion was intended to be set and could not */ + /* due to injected group external triggers enabled, error is reported. */ + else + { + if (pConfigInjected->AutoInjectedConv == ENABLE) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + tmp_hal_status = HAL_ERROR; + } + else + { + CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO); + } + } + + if (pConfigInjected->InjecOversamplingMode == ENABLE) + { + assert_param(IS_ADC_OVERSAMPLING_RATIO(pConfigInjected->InjecOversampling.Ratio)); + assert_param(IS_ADC_RIGHT_BIT_SHIFT(pConfigInjected->InjecOversampling.RightBitShift)); + + /* JOVSE must be reset in case of triggered regular mode */ + assert_param(!(READ_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_TROVS) + == (ADC_CFGR2_ROVSE | ADC_CFGR2_TROVS))); + + /* Configuration of Injected Oversampler: */ + /* - Oversampling Ratio */ + /* - Right bit shift */ + + /* Enable OverSampling mode */ + MODIFY_REG(hadc->Instance->CFGR2, + ADC_CFGR2_JOVSE | + ADC_CFGR2_OVSR | + ADC_CFGR2_OVSS, + ADC_CFGR2_JOVSE | + pConfigInjected->InjecOversampling.Ratio | + pConfigInjected->InjecOversampling.RightBitShift + ); + } + else + { + /* Disable Regular OverSampling */ + CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_JOVSE); + } + + /* Manage specific case of sampling time 3.5 cycles replacing 2.5 cyles */ + if (pConfigInjected->InjectedSamplingTime == ADC_SAMPLETIME_3CYCLES_5) + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfigInjected->InjectedChannel, LL_ADC_SAMPLINGTIME_2CYCLES_5); + + /* Set ADC sampling time common configuration */ + LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5); + } + else + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfigInjected->InjectedChannel, + pConfigInjected->InjectedSamplingTime); + + /* Set ADC sampling time common configuration */ + LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_DEFAULT); + } + + /* Configure the offset: offset enable/disable, channel, offset value */ + + /* Shift the offset with respect to the selected ADC resolution. */ + /* Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0 */ + tmp_offset_shifted = ADC_OFFSET_SHIFT_RESOLUTION(hadc, pConfigInjected->InjectedOffset); + + if (pConfigInjected->InjectedOffsetNumber != ADC_OFFSET_NONE) + { + /* Set ADC selected offset number */ + LL_ADC_SetOffset(hadc->Instance, pConfigInjected->InjectedOffsetNumber, pConfigInjected->InjectedChannel, + tmp_offset_shifted); + + /* Set ADC selected offset sign & saturation */ + LL_ADC_SetOffsetSign(hadc->Instance, pConfigInjected->InjectedOffsetNumber, pConfigInjected->InjectedOffsetSign); + LL_ADC_SetOffsetSaturation(hadc->Instance, pConfigInjected->InjectedOffsetNumber, + (pConfigInjected->InjectedOffsetSaturation == ENABLE) ? + LL_ADC_OFFSET_SATURATION_ENABLE : LL_ADC_OFFSET_SATURATION_DISABLE); + } + else + { + /* Scan each offset register to check if the selected channel is targeted. */ + /* If this is the case, the corresponding offset number is disabled. */ + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_1)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfigInjected->InjectedChannel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_1, LL_ADC_OFFSET_DISABLE); + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_2)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfigInjected->InjectedChannel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_2, LL_ADC_OFFSET_DISABLE); + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_3)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfigInjected->InjectedChannel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_3, LL_ADC_OFFSET_DISABLE); + } + if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_4)) + == __LL_ADC_CHANNEL_TO_DECIMAL_NB(pConfigInjected->InjectedChannel)) + { + LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_4, LL_ADC_OFFSET_DISABLE); + } + } + + } + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated only when ADC is disabled: */ + /* - Single or differential mode */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + /* Set mode single-ended or differential input of the selected ADC channel */ + LL_ADC_SetChannelSingleDiff(hadc->Instance, pConfigInjected->InjectedChannel, pConfigInjected->InjectedSingleDiff); + + /* Configuration of differential mode */ + /* Note: ADC channel number masked with value "0x1F" to ensure shift value within 32 bits range */ + if (pConfigInjected->InjectedSingleDiff == ADC_DIFFERENTIAL_ENDED) + { + /* Set sampling time of the selected ADC channel */ + LL_ADC_SetChannelSamplingTime(hadc->Instance, + (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL( + (__LL_ADC_CHANNEL_TO_DECIMAL_NB( + (uint32_t)pConfigInjected->InjectedChannel) + + 1UL) & 0x1FUL)), + pConfigInjected->InjectedSamplingTime); + } + + } + + /* Management of internal measurement channels: Vbat/VrefInt/TempSensor */ + /* internal measurement paths enable: If internal channel selected, */ + /* enable dedicated internal buffers and path. */ + /* Note: these internal measurement paths can be disabled using */ + /* HAL_ADC_DeInit(). */ + + if (__LL_ADC_IS_CHANNEL_INTERNAL(pConfigInjected->InjectedChannel)) + { + tmp_config_internal_channel = LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + + /* If the requested internal measurement path has already been enabled, */ + /* bypass the configuration processing. */ + if (((pConfigInjected->InjectedChannel == ADC_CHANNEL_TEMPSENSOR_ADC1) + || (pConfigInjected->InjectedChannel == ADC_CHANNEL_TEMPSENSOR_ADC5)) + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) + { + if (ADC_TEMPERATURE_SENSOR_INSTANCE(hadc)) + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + LL_ADC_PATH_INTERNAL_TEMPSENSOR | tmp_config_internal_channel); + + /* Delay for temperature sensor stabilization time */ + /* Wait loop initialization and execution */ + /* Note: Variable divided by 2 to compensate partially */ + /* CPU processing cycles, scaling in us split to not */ + /* exceed 32 bits register capacity and handle low frequency. */ + wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) + * (((SystemCoreClock / (100000UL * 2UL)) + 1UL) + 1UL)); + while (wait_loop_index != 0UL) + { + wait_loop_index--; + } + } + } + else if ((pConfigInjected->InjectedChannel == ADC_CHANNEL_VBAT) + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VBAT) == 0UL)) + { + if (ADC_BATTERY_VOLTAGE_INSTANCE(hadc)) + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); + } + } + else if ((pConfigInjected->InjectedChannel == ADC_CHANNEL_VREFINT) + && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) + { + if (ADC_VREFINT_INSTANCE(hadc)) + { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), + LL_ADC_PATH_INTERNAL_VREFINT | tmp_config_internal_channel); + } + } + else + { + /* nothing to do */ + } + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} + +#if defined(ADC_MULTIMODE_SUPPORT) +/** + * @brief Enable ADC multimode and configure multimode parameters + * @note Possibility to update parameters on the fly: + * This function initializes multimode parameters, following + * calls to this function can be used to reconfigure some parameters + * of structure "ADC_MultiModeTypeDef" on the fly, without resetting + * the ADCs. + * The setting of these parameters is conditioned to ADC state. + * For parameters constraints, see comments of structure + * "ADC_MultiModeTypeDef". + * @note To move back configuration from multimode to single mode, ADC must + * be reset (using function HAL_ADC_Init() ). + * @param hadc Master ADC handle + * @param pMultimode Structure of ADC multimode configuration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, const ADC_MultiModeTypeDef *pMultimode) +{ + HAL_StatusTypeDef tmp_hal_status = HAL_OK; + ADC_Common_TypeDef *tmpADC_Common; + ADC_HandleTypeDef tmp_hadc_slave; + uint32_t tmp_hadc_slave_conversion_on_going; + + /* Check the parameters */ + assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + assert_param(IS_ADC_MULTIMODE(pMultimode->Mode)); + if (pMultimode->Mode != ADC_MODE_INDEPENDENT) + { + assert_param(IS_ADC_DMA_ACCESS_MULTIMODE(pMultimode->DMAAccessMode)); + assert_param(IS_ADC_SAMPLING_DELAY(pMultimode->TwoSamplingDelay)); + } + + /* Process locked */ + __HAL_LOCK(hadc); + + /* Temporary handle minimum initialization */ + __HAL_ADC_RESET_HANDLE_STATE(&tmp_hadc_slave); + ADC_CLEAR_ERRORCODE(&tmp_hadc_slave); + + ADC_MULTI_SLAVE(hadc, &tmp_hadc_slave); + + if (tmp_hadc_slave.Instance == NULL) + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + return HAL_ERROR; + } + + /* Parameters update conditioned to ADC state: */ + /* Parameters that can be updated when ADC is disabled or enabled without */ + /* conversion on going on regular group: */ + /* - Multimode DMA configuration */ + /* - Multimode DMA mode */ + tmp_hadc_slave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmp_hadc_slave)->Instance); + if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + && (tmp_hadc_slave_conversion_on_going == 0UL)) + { + /* Pointer to the common control register */ + tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + + /* If multimode is selected, configure all multimode parameters. */ + /* Otherwise, reset multimode parameters (can be used in case of */ + /* transition from multimode to independent mode). */ + if (pMultimode->Mode != ADC_MODE_INDEPENDENT) + { + MODIFY_REG(tmpADC_Common->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, + pMultimode->DMAAccessMode | + ADC_CCR_MULTI_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests)); + + /* Parameters that can be updated only when ADC is disabled: */ + /* - Multimode mode selection */ + /* - Multimode delay */ + /* Note: Delay range depends on selected resolution: */ + /* from 1 to 12 clock cycles for 12 bits */ + /* from 1 to 10 clock cycles for 10 bits, */ + /* from 1 to 8 clock cycles for 8 bits */ + /* from 1 to 6 clock cycles for 6 bits */ + /* If a higher delay is selected, it will be clipped to maximum delay */ + /* range */ + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + { + MODIFY_REG(tmpADC_Common->CCR, + ADC_CCR_DUAL | + ADC_CCR_DELAY, + pMultimode->Mode | + pMultimode->TwoSamplingDelay + ); + } + } + else /* ADC_MODE_INDEPENDENT */ + { + CLEAR_BIT(tmpADC_Common->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG); + + /* Parameters that can be updated only when ADC is disabled: */ + /* - Multimode mode selection */ + /* - Multimode delay */ + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + { + CLEAR_BIT(tmpADC_Common->CCR, ADC_CCR_DUAL | ADC_CCR_DELAY); + } + } + } + /* If one of the ADC sharing the same common group is enabled, no update */ + /* could be done on neither of the multimode structure parameters. */ + else + { + /* Update ADC state machine to error */ + SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + + tmp_hal_status = HAL_ERROR; + } + + /* Process unlocked */ + __HAL_UNLOCK(hadc); + + /* Return function status */ + return tmp_hal_status; +} +#endif /* ADC_MULTIMODE_SUPPORT */ + +/** + * @brief Enable Injected Queue + * @note This function resets CFGR register JQDIS bit in order to enable the + * Injected Queue. JQDIS can be written only when ADSTART and JDSTART + * are both equal to 0 to ensure that no regular nor injected + * conversion is ongoing. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_EnableInjectedQueue(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + + /* Parameter can be set only if no conversion is on-going */ + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + + /* Update state, clear previous result related to injected queue overflow */ + CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_JQOVF); + + tmp_hal_status = HAL_OK; + } + else + { + tmp_hal_status = HAL_ERROR; + } + + return tmp_hal_status; +} + +/** + * @brief Disable Injected Queue + * @note This function sets CFGR register JQDIS bit in order to disable the + * Injected Queue. JQDIS can be written only when ADSTART and JDSTART + * are both equal to 0 to ensure that no regular nor injected + * conversion is ongoing. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_DisableInjectedQueue(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + uint32_t tmp_adc_is_conversion_on_going_regular; + uint32_t tmp_adc_is_conversion_on_going_injected; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + + /* Parameter can be set only if no conversion is on-going */ + if ((tmp_adc_is_conversion_on_going_regular == 0UL) + && (tmp_adc_is_conversion_on_going_injected == 0UL) + ) + { + LL_ADC_INJ_SetQueueMode(hadc->Instance, LL_ADC_INJ_QUEUE_DISABLE); + tmp_hal_status = HAL_OK; + } + else + { + tmp_hal_status = HAL_ERROR; + } + + return tmp_hal_status; +} + +/** + * @brief Disable ADC voltage regulator. + * @note Disabling voltage regulator allows to save power. This operation can + * be carried out only when ADC is disabled. + * @note To enable again the voltage regulator, the user is expected to + * resort to HAL_ADC_Init() API. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_DisableVoltageRegulator(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Setting of this feature is conditioned to ADC state: ADC must be ADC disabled */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + LL_ADC_DisableInternalRegulator(hadc->Instance); + tmp_hal_status = HAL_OK; + } + else + { + tmp_hal_status = HAL_ERROR; + } + + return tmp_hal_status; +} + +/** + * @brief Enter ADC deep-power-down mode + * @note This mode is achieved in setting DEEPPWD bit and allows to save power + * in reducing leakage currents. It is particularly interesting before + * entering stop modes. + * @note Setting DEEPPWD automatically clears ADVREGEN bit and disables the + * ADC voltage regulator. This means that this API encompasses + * HAL_ADCEx_DisableVoltageRegulator(). Additionally, the internal + * calibration is lost. + * @note To exit the ADC deep-power-down mode, the user is expected to + * resort to HAL_ADC_Init() API as well as to relaunch a calibration + * with HAL_ADCEx_Calibration_Start() API or to re-apply a previously + * saved calibration factor. + * @param hadc ADC handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_ADCEx_EnterADCDeepPowerDownMode(ADC_HandleTypeDef *hadc) +{ + HAL_StatusTypeDef tmp_hal_status; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + + /* Setting of this feature is conditioned to ADC state: ADC must be ADC disabled */ + if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + { + LL_ADC_EnableDeepPowerDown(hadc->Instance); + tmp_hal_status = HAL_OK; + } + else + { + tmp_hal_status = HAL_ERROR; + } + + return tmp_hal_status; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_ADC_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c new file mode 100644 index 0000000..6530765 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c @@ -0,0 +1,541 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_cortex.c + * @author MCD Application Team + * @brief CORTEX HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the CORTEX: + * + Initialization and Configuration functions + * + Peripheral Control functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + + [..] + *** How to configure Interrupts using CORTEX HAL driver *** + =========================================================== + [..] + This section provides functions allowing to configure the NVIC interrupts (IRQ). + The Cortex-M4 exceptions are managed by CMSIS functions. + + (#) Configure the NVIC Priority Grouping using HAL_NVIC_SetPriorityGrouping() function. + (#) Configure the priority of the selected IRQ Channels using HAL_NVIC_SetPriority(). + (#) Enable the selected IRQ Channels using HAL_NVIC_EnableIRQ(). + + -@- When the NVIC_PRIORITYGROUP_0 is selected, IRQ pre-emption is no more possible. + The pending IRQ priority will be managed only by the sub priority. + + -@- IRQ priority order (sorted by highest to lowest priority): + (+@) Lowest pre-emption priority + (+@) Lowest sub priority + (+@) Lowest hardware priority (IRQ number) + + [..] + *** How to configure SysTick using CORTEX HAL driver *** + ======================================================== + [..] + Setup SysTick Timer for time base. + + (+) The HAL_SYSTICK_Config() function calls the SysTick_Config() function which + is a CMSIS function that: + (++) Configures the SysTick Reload register with value passed as function parameter. + (++) Configures the SysTick IRQ priority to the lowest value (0x0F). + (++) Resets the SysTick Counter register. + (++) Configures the SysTick Counter clock source to be Core Clock Source (HCLK). + (++) Enables the SysTick Interrupt. + (++) Starts the SysTick Counter. + + (+) You can change the SysTick Clock source to be HCLK_Div8 by calling the macro + __HAL_CORTEX_SYSTICKCLK_CONFIG(SYSTICK_CLKSOURCE_HCLK_DIV8) just after the + HAL_SYSTICK_Config() function call. The __HAL_CORTEX_SYSTICKCLK_CONFIG() macro is defined + inside the stm32g4xx_hal_cortex.h file. + + (+) You can change the SysTick IRQ priority by calling the + HAL_NVIC_SetPriority(SysTick_IRQn,...) function just after the HAL_SYSTICK_Config() function + call. The HAL_NVIC_SetPriority() call the NVIC_SetPriority() function which is a CMSIS function. + + (+) To adjust the SysTick time base, use the following formula: + + Reload Value = SysTick Counter Clock (Hz) x Desired Time base (s) + (++) Reload Value is the parameter to be passed for HAL_SYSTICK_Config() function + (++) Reload Value should not exceed 0xFFFFFF + + @endverbatim + ****************************************************************************** + + The table below gives the allowed values of the pre-emption priority and subpriority according + to the Priority Grouping configuration performed by HAL_NVIC_SetPriorityGrouping() function. + + ========================================================================================================================== + NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | Description + ========================================================================================================================== + NVIC_PRIORITYGROUP_0 | 0 | 0-15 | 0 bit for pre-emption priority + | | | 4 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_1 | 0-1 | 0-7 | 1 bit for pre-emption priority + | | | 3 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_2 | 0-3 | 0-3 | 2 bits for pre-emption priority + | | | 2 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_3 | 0-7 | 0-1 | 3 bits for pre-emption priority + | | | 1 bit for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_4 | 0-15 | 0 | 4 bits for pre-emption priority + | | | 0 bit for subpriority + ========================================================================================================================== + + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup CORTEX + * @{ + */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup CORTEX_Exported_Functions + * @{ + */ + + +/** @addtogroup CORTEX_Exported_Functions_Group1 + * @brief Initialization and Configuration functions + * +@verbatim + ============================================================================== + ##### Initialization and Configuration functions ##### + ============================================================================== + [..] + This section provides the CORTEX HAL driver functions allowing to configure Interrupts + SysTick functionalities + +@endverbatim + * @{ + */ + + +/** + * @brief Set the priority grouping field (pre-emption priority and subpriority) + * using the required unlock sequence. + * @param PriorityGroup: The priority grouping bits length. + * This parameter can be one of the following values: + * @arg NVIC_PRIORITYGROUP_0: 0 bit for pre-emption priority, + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bit for pre-emption priority, + * 3 bits for subpriority + * @arg NVIC_PRIORITYGROUP_2: 2 bits for pre-emption priority, + * 2 bits for subpriority + * @arg NVIC_PRIORITYGROUP_3: 3 bits for pre-emption priority, + * 1 bit for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority, + * 0 bit for subpriority + * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + /* Check the parameters */ + assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + + /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ + NVIC_SetPriorityGrouping(PriorityGroup); +} + +/** + * @brief Set the priority of an interrupt. + * @param IRQn: External interrupt number. + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @param PreemptPriority: The pre-emption priority for the IRQn channel. + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority + * @param SubPriority: the subpriority level for the IRQ channel. + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t prioritygroup; + + /* Check the parameters */ + assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); + assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); + + prioritygroup = NVIC_GetPriorityGrouping(); + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); +} + +/** + * @brief Enable a device specific interrupt in the NVIC interrupt controller. + * @note To configure interrupts priority correctly, the NVIC_PriorityGroupConfig() + * function should be called before. + * @param IRQn External interrupt number. + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval None + */ +void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Enable interrupt */ + NVIC_EnableIRQ(IRQn); +} + +/** + * @brief Disable a device specific interrupt in the NVIC interrupt controller. + * @param IRQn External interrupt number. + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval None + */ +void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Disable interrupt */ + NVIC_DisableIRQ(IRQn); +} + +/** + * @brief Initiate a system reset request to reset the MCU. + * @retval None + */ +void HAL_NVIC_SystemReset(void) +{ + /* System Reset */ + NVIC_SystemReset(); +} + +/** + * @brief Initialize the System Timer with interrupt enabled and start the System Tick Timer (SysTick): + * Counter is in free running mode to generate periodic interrupts. + * @param TicksNumb: Specifies the ticks Number of ticks between two interrupts. + * @retval status: - 0 Function succeeded. + * - 1 Function failed. + */ +uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) +{ + return SysTick_Config(TicksNumb); +} +/** + * @} + */ + +/** @addtogroup CORTEX_Exported_Functions_Group2 + * @brief Cortex control functions + * +@verbatim + ============================================================================== + ##### Peripheral Control functions ##### + ============================================================================== + [..] + This subsection provides a set of functions allowing to control the CORTEX + (NVIC, SYSTICK, MPU) functionalities. + + +@endverbatim + * @{ + */ + +/** + * @brief Get the priority grouping field from the NVIC Interrupt Controller. + * @retval Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field) + */ +uint32_t HAL_NVIC_GetPriorityGrouping(void) +{ + /* Get the PRIGROUP[10:8] field value */ + return NVIC_GetPriorityGrouping(); +} + +/** + * @brief Get the priority of an interrupt. + * @param IRQn: External interrupt number. + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @param PriorityGroup: the priority grouping bits length. + * This parameter can be one of the following values: + * @arg NVIC_PRIORITYGROUP_0: 0 bit for pre-emption priority, + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bit for pre-emption priority, + * 3 bits for subpriority + * @arg NVIC_PRIORITYGROUP_2: 2 bits for pre-emption priority, + * 2 bits for subpriority + * @arg NVIC_PRIORITYGROUP_3: 3 bits for pre-emption priority, + * 1 bit for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority, + * 0 bit for subpriority + * @param pPreemptPriority: Pointer on the Preemptive priority value (starting from 0). + * @param pSubPriority: Pointer on the Subpriority value (starting from 0). + * @retval None + */ +void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t *pPreemptPriority, uint32_t *pSubPriority) +{ + /* Check the parameters */ + assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + /* Get priority for Cortex-M system or device specific interrupts */ + NVIC_DecodePriority(NVIC_GetPriority(IRQn), PriorityGroup, pPreemptPriority, pSubPriority); +} + +/** + * @brief Set Pending bit of an external interrupt. + * @param IRQn External interrupt number + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval None + */ +void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Set interrupt pending */ + NVIC_SetPendingIRQ(IRQn); +} + +/** + * @brief Get Pending Interrupt (read the pending register in the NVIC + * and return the pending bit for the specified interrupt). + * @param IRQn External interrupt number. + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Return 1 if pending else 0 */ + return NVIC_GetPendingIRQ(IRQn); +} + +/** + * @brief Clear the pending bit of an external interrupt. + * @param IRQn External interrupt number. + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval None + */ +void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Clear pending interrupt */ + NVIC_ClearPendingIRQ(IRQn); +} + +/** + * @brief Get active interrupt (read the active register in NVIC and return the active bit). + * @param IRQn External interrupt number + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32g4xxxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn) +{ + /* Return 1 if active else 0 */ + return NVIC_GetActive(IRQn); +} + +/** + * @brief Configure the SysTick clock source. + * @param CLKSource: specifies the SysTick clock source. + * This parameter can be one of the following values: + * @arg SYSTICK_CLKSOURCE_HCLK_DIV8: AHB clock divided by 8 selected as SysTick clock source. + * @arg SYSTICK_CLKSOURCE_HCLK: AHB clock selected as SysTick clock source. + * @retval None + */ +void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource) +{ + /* Check the parameters */ + assert_param(IS_SYSTICK_CLK_SOURCE(CLKSource)); + if (CLKSource == SYSTICK_CLKSOURCE_HCLK) + { + SysTick->CTRL |= SYSTICK_CLKSOURCE_HCLK; + } + else + { + SysTick->CTRL &= ~SYSTICK_CLKSOURCE_HCLK; + } +} + +/** + * @brief Handle SYSTICK interrupt request. + * @retval None + */ +void HAL_SYSTICK_IRQHandler(void) +{ + HAL_SYSTICK_Callback(); +} + +/** + * @brief SYSTICK callback. + * @retval None + */ +__weak void HAL_SYSTICK_Callback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SYSTICK_Callback could be implemented in the user file + */ +} + +#if (__MPU_PRESENT == 1) +/** + * @brief Enable the MPU. + * @param MPU_Control: Specifies the control mode of the MPU during hard fault, + * NMI, FAULTMASK and privileged accessto the default memory + * This parameter can be one of the following values: + * @arg MPU_HFNMI_PRIVDEF_NONE + * @arg MPU_HARDFAULT_NMI + * @arg MPU_PRIVILEGED_DEFAULT + * @arg MPU_HFNMI_PRIVDEF + * @retval None + */ +void HAL_MPU_Enable(uint32_t MPU_Control) +{ + /* Enable the MPU */ + MPU->CTRL = (MPU_Control | MPU_CTRL_ENABLE_Msk); + + /* Ensure MPU setting take effects */ + __DSB(); + __ISB(); +} + + +/** + * @brief Disable the MPU. + * @retval None + */ +void HAL_MPU_Disable(void) +{ + /* Make sure outstanding transfers are done */ + __DMB(); + + /* Disable the MPU and clear the control register*/ + MPU->CTRL = 0; +} + +/** + * @brief Enable the MPU Region. + * @retval None + */ +void HAL_MPU_EnableRegion(uint32_t RegionNumber) +{ + /* Check the parameters */ + assert_param(IS_MPU_REGION_NUMBER(RegionNumber)); + + /* Set the Region number */ + MPU->RNR = RegionNumber; + + /* Enable the Region */ + SET_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @brief Disable the MPU Region. + * @retval None + */ +void HAL_MPU_DisableRegion(uint32_t RegionNumber) +{ + /* Check the parameters */ + assert_param(IS_MPU_REGION_NUMBER(RegionNumber)); + + /* Set the Region number */ + MPU->RNR = RegionNumber; + + /* Disable the Region */ + CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @brief Initialize and configure the Region and the memory to be protected. + * @param MPU_Init: Pointer to a MPU_Region_InitTypeDef structure that contains + * the initialization and configuration information. + * @retval None + */ +void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init) +{ + /* Check the parameters */ + assert_param(IS_MPU_REGION_NUMBER(MPU_Init->Number)); + assert_param(IS_MPU_REGION_ENABLE(MPU_Init->Enable)); + assert_param(IS_MPU_INSTRUCTION_ACCESS(MPU_Init->DisableExec)); + assert_param(IS_MPU_REGION_PERMISSION_ATTRIBUTE(MPU_Init->AccessPermission)); + assert_param(IS_MPU_TEX_LEVEL(MPU_Init->TypeExtField)); + assert_param(IS_MPU_ACCESS_SHAREABLE(MPU_Init->IsShareable)); + assert_param(IS_MPU_ACCESS_CACHEABLE(MPU_Init->IsCacheable)); + assert_param(IS_MPU_ACCESS_BUFFERABLE(MPU_Init->IsBufferable)); + assert_param(IS_MPU_SUB_REGION_DISABLE(MPU_Init->SubRegionDisable)); + assert_param(IS_MPU_REGION_SIZE(MPU_Init->Size)); + /* Set the Region number */ + MPU->RNR = MPU_Init->Number; + + /* Disable the Region */ + CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); + + /* Apply configuration */ + MPU->RBAR = MPU_Init->BaseAddress; + MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) | + ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | + ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos) | + ((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) | + ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) | + ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos) | + ((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) | + ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) | + ((uint32_t)MPU_Init->Enable << MPU_RASR_ENABLE_Pos); +} +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_CORTEX_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c new file mode 100644 index 0000000..66b80b5 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c @@ -0,0 +1,1110 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_dma.c + * @author MCD Application Team + * @brief DMA HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Direct Memory Access (DMA) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral State and errors functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Enable and configure the peripheral to be connected to the DMA Channel + (except for internal SRAM / FLASH memories: no initialization is + necessary). Please refer to the Reference manual for connection between peripherals + and DMA requests. + + (#) For a given Channel, program the required configuration through the following parameters: + Channel request, Transfer Direction, Source and Destination data formats, + Circular or Normal mode, Channel Priority level, Source and Destination Increment mode + using HAL_DMA_Init() function. + + Prior to HAL_DMA_Init the peripheral clock shall be enabled for both DMA & DMAMUX + thanks to: + (##) DMA1 or DMA2: __HAL_RCC_DMA1_CLK_ENABLE() or __HAL_RCC_DMA2_CLK_ENABLE() ; + (##) DMAMUX1: __HAL_RCC_DMAMUX1_CLK_ENABLE(); + + (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error + detection. + + (#) Use HAL_DMA_Abort() function to abort the current transfer + + -@- In Memory-to-Memory transfer mode, Circular mode is not allowed. + + *** Polling mode IO operation *** + ================================= + [..] + (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source + address and destination address and the Length of data to be transferred + (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this + case a fixed Timeout can be configured by User depending from his application. + + *** Interrupt mode IO operation *** + =================================== + [..] + (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority() + (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ() + (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of + Source address and destination address and the Length of data to be transferred. + In this case the DMA interrupt is configured + (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine + (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can + add his own function to register callbacks with HAL_DMA_RegisterCallback(). + + *** DMA HAL driver macros list *** + ============================================= + [..] + Below the list of macros in DMA HAL driver. + + (+) __HAL_DMA_ENABLE: Enable the specified DMA Channel. + (+) __HAL_DMA_DISABLE: Disable the specified DMA Channel. + (+) __HAL_DMA_GET_FLAG: Get the DMA Channel pending flags. + (+) __HAL_DMA_CLEAR_FLAG: Clear the DMA Channel pending flags. + (+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Channel interrupts. + (+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Channel interrupts. + (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Channel interrupt has occurred or not. + + [..] + (@) You can refer to the DMA HAL driver header file for more useful macros + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup DMA DMA + * @brief DMA HAL module driver + * @{ + */ + +#ifdef HAL_DMA_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup DMA_Private_Functions DMA Private Functions + * @{ + */ +static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength); + +static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma); +static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma); + +/** + * @} + */ + +/* Exported functions ---------------------------------------------------------*/ + +/** @defgroup DMA_Exported_Functions DMA Exported Functions + * @{ + */ + +/** @defgroup DMA_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and de-initialization functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] + This section provides functions allowing to initialize the DMA Channel source + and destination addresses, incrementation and data sizes, transfer direction, + circular/normal mode selection, memory-to-memory mode selection and Channel priority value. + [..] + The HAL_DMA_Init() function follows the DMA configuration procedures as described in + reference manual. + +@endverbatim + * @{ + */ + +/** + * @brief Initialize the DMA according to the specified + * parameters in the DMA_InitTypeDef and initialize the associated handle. + * @param hdma Pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) +{ + uint32_t tmp; + + /* Check the DMA handle allocation */ + if (hdma == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); + assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc)); + assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc)); + assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment)); + assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment)); + assert_param(IS_DMA_MODE(hdma->Init.Mode)); + assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); + + assert_param(IS_DMA_ALL_REQUEST(hdma->Init.Request)); + + /* Compute the channel index */ + if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) + { + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2; + hdma->DmaBaseAddress = DMA2; + } + + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + + /* Get the CR register value */ + tmp = hdma->Instance->CCR; + + /* Clear PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR and MEM2MEM bits */ + tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | + DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | + DMA_CCR_DIR | DMA_CCR_MEM2MEM)); + + /* Prepare the DMA Channel configuration */ + tmp |= hdma->Init.Direction | + hdma->Init.PeriphInc | hdma->Init.MemInc | + hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + hdma->Init.Mode | hdma->Init.Priority; + + /* Write to DMA Channel CR register */ + hdma->Instance->CCR = tmp; + + /* Initialize parameters for DMAMUX channel : + DMAmuxChannel, DMAmuxChannelStatus and DMAmuxChannelStatusMask + */ + DMA_CalcDMAMUXChannelBaseAndMask(hdma); + + if (hdma->Init.Direction == DMA_MEMORY_TO_MEMORY) + { + /* if memory to memory force the request to 0*/ + hdma->Init.Request = DMA_REQUEST_MEM2MEM; + } + + /* Set peripheral request to DMAMUX channel */ + hdma->DMAmuxChannel->CCR = (hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID); + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + if (((hdma->Init.Request > 0U) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR3))) + { + /* Initialize parameters for DMAMUX request generator : + DMAmuxRequestGen, DMAmuxRequestGenStatus and DMAmuxRequestGenStatusMask + */ + DMA_CalcDMAMUXRequestGenBaseAndMask(hdma); + + /* Reset the DMAMUX request generator register*/ + hdma->DMAmuxRequestGen->RGCR = 0U; + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + } + else + { + hdma->DMAmuxRequestGen = 0U; + hdma->DMAmuxRequestGenStatus = 0U; + hdma->DMAmuxRequestGenStatusMask = 0U; + } + + /* Initialize the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Initialize the DMA state*/ + hdma->State = HAL_DMA_STATE_READY; + + /* Allocate lock resource and initialize it */ + hdma->Lock = HAL_UNLOCKED; + + return HAL_OK; +} + +/** + * @brief DeInitialize the DMA peripheral. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma) +{ + + /* Check the DMA handle allocation */ + if (NULL == hdma) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + /* Disable the selected DMA Channelx */ + __HAL_DMA_DISABLE(hdma); + + /* Compute the channel index */ + if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) + { + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2; + hdma->DmaBaseAddress = DMA2; + } + + /* Reset DMA Channel control register */ + hdma->Instance->CCR = 0; + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Initialize parameters for DMAMUX channel : + DMAmuxChannel, DMAmuxChannelStatus and DMAmuxChannelStatusMask */ + + DMA_CalcDMAMUXChannelBaseAndMask(hdma); + + /* Reset the DMAMUX channel that corresponds to the DMA channel */ + hdma->DMAmuxChannel->CCR = 0; + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + /* Reset Request generator parameters if any */ + if (((hdma->Init.Request > 0U) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR3))) + { + /* Initialize parameters for DMAMUX request generator : + DMAmuxRequestGen, DMAmuxRequestGenStatus and DMAmuxRequestGenStatusMask + */ + DMA_CalcDMAMUXRequestGenBaseAndMask(hdma); + + /* Reset the DMAMUX request generator register*/ + hdma->DMAmuxRequestGen->RGCR = 0U; + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + } + + hdma->DMAmuxRequestGen = 0U; + hdma->DMAmuxRequestGenStatus = 0U; + hdma->DMAmuxRequestGenStatusMask = 0U; + + /* Clean callbacks */ + hdma->XferCpltCallback = NULL; + hdma->XferHalfCpltCallback = NULL; + hdma->XferErrorCallback = NULL; + hdma->XferAbortCallback = NULL; + + /* Initialize the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Initialize the DMA state */ + hdma->State = HAL_DMA_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup DMA_Exported_Functions_Group2 Input and Output operation functions + * @brief Input and Output operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure the source, destination address and data length and Start DMA transfer + (+) Configure the source, destination address and data length and + Start DMA transfer with interrupt + (+) Abort DMA transfer + (+) Poll for transfer complete + (+) Handle DMA interrupt request + +@endverbatim + * @{ + */ + +/** + * @brief Start the DMA Transfer. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress The source memory Buffer address + * @param DstAddress The destination memory Buffer address + * @param DataLength The length of data to be transferred from source to destination (up to 256Kbytes-1) + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + + /* Process locked */ + __HAL_LOCK(hdma); + + if (HAL_DMA_STATE_READY == hdma->State) + { + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Disable the peripheral */ + __HAL_DMA_DISABLE(hdma); + + /* Configure the source, destination address and the data length & clear flags*/ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + + /* Enable the Peripheral */ + __HAL_DMA_ENABLE(hdma); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + status = HAL_BUSY; + } + return status; +} + +/** + * @brief Start the DMA Transfer with interrupt enabled. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress The source memory Buffer address + * @param DstAddress The destination memory Buffer address + * @param DataLength The length of data to be transferred from source to destination (up to 256Kbytes-1) + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, + uint32_t DataLength) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + + /* Process locked */ + __HAL_LOCK(hdma); + + if (HAL_DMA_STATE_READY == hdma->State) + { + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Disable the peripheral */ + __HAL_DMA_DISABLE(hdma); + + /* Configure the source, destination address and the data length & clear flags*/ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + + /* Enable the transfer complete interrupt */ + /* Enable the transfer Error interrupt */ + if (NULL != hdma->XferHalfCpltCallback) + { + /* Enable the Half transfer complete interrupt as well */ + __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + } + else + { + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_TE)); + } + + /* Check if DMAMUX Synchronization is enabled*/ + if ((hdma->DMAmuxChannel->CCR & DMAMUX_CxCR_SE) != 0U) + { + /* Enable DMAMUX sync overrun IT*/ + hdma->DMAmuxChannel->CCR |= DMAMUX_CxCR_SOIE; + } + + if (hdma->DMAmuxRequestGen != 0U) + { + /* if using DMAMUX request generator, enable the DMAMUX request generator overrun IT*/ + /* enable the request gen overrun IT*/ + hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_OIE; + } + + /* Enable the Peripheral */ + __HAL_DMA_ENABLE(hdma); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + /* Remain BUSY */ + status = HAL_BUSY; + } + return status; +} + +/** + * @brief Abort the DMA Transfer. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) +{ + HAL_StatusTypeDef status = HAL_OK; + + if(hdma->State != HAL_DMA_STATE_BUSY) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + + status = HAL_ERROR; + } + else + { + /* Disable DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + + /* disable the DMAMUX sync overrun IT*/ + hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + + /* Disable the channel */ + __HAL_DMA_DISABLE(hdma); + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + if (hdma->DMAmuxRequestGen != 0U) + { + /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/ + /* disable the request gen overrun IT*/ + hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + } + } + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @brief Aborts the DMA Transfer in Interrupt mode. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (HAL_DMA_STATE_BUSY != hdma->State) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + status = HAL_ERROR; + } + else + { + /* Disable DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + + /* Disable the channel */ + __HAL_DMA_DISABLE(hdma); + + /* disable the DMAMUX sync overrun IT*/ + hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + if (hdma->DMAmuxRequestGen != 0U) + { + /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/ + /* disable the request gen overrun IT*/ + hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + } + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + /* Call User Abort callback */ + if (hdma->XferAbortCallback != NULL) + { + hdma->XferAbortCallback(hdma); + } + } + return status; +} + +/** + * @brief Polling for transfer complete. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CompleteLevel Specifies the DMA level complete. + * @param Timeout Timeout duration. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, + uint32_t Timeout) +{ + uint32_t temp; + uint32_t tickstart; + + if (HAL_DMA_STATE_BUSY != hdma->State) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + __HAL_UNLOCK(hdma); + return HAL_ERROR; + } + + /* Polling mode not supported in circular mode */ + if (0U != (hdma->Instance->CCR & DMA_CCR_CIRC)) + { + hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; + return HAL_ERROR; + } + + /* Get the level transfer complete flag */ + if (HAL_DMA_FULL_TRANSFER == CompleteLevel) + { + /* Transfer Complete flag */ + + temp = (uint32_t)DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1FU); + } + else + { + /* Half Transfer Complete flag */ + temp = (uint32_t)DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1FU); + } + + /* Get tick */ + tickstart = HAL_GetTick(); + + while (0U == (hdma->DmaBaseAddress->ISR & temp)) + { + if ((0U != (hdma->DmaBaseAddress->ISR & ((uint32_t)DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1FU))))) + { + /* When a DMA transfer error occurs */ + /* A hardware clear of its EN bits is performed */ + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TE; + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_ERROR; + } + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_ERROR; + } + } + } + + /*Check for DMAMUX Request generator (if used) overrun status */ + if (hdma->DMAmuxRequestGen != 0U) + { + /* if using DMAMUX request generator Check for DMAMUX request generator overrun */ + if ((hdma->DMAmuxRequestGenStatus->RGSR & hdma->DMAmuxRequestGenStatusMask) != 0U) + { + /* Disable the request gen overrun interrupt */ + hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_OIE; + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_REQGEN; + } + } + + /* Check for DMAMUX Synchronization overrun */ + if ((hdma->DMAmuxChannelStatus->CSR & hdma->DMAmuxChannelStatusMask) != 0U) + { + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_SYNC; + } + + if (HAL_DMA_FULL_TRANSFER == CompleteLevel) + { + /* Clear the transfer complete flag */ + hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1FU)); + + /* The selected Channelx EN bit is cleared (DMA is disabled and + all transfers are complete) */ + hdma->State = HAL_DMA_STATE_READY; + } + else + { + /* Clear the half transfer complete flag */ + hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1FU)); + } + + /* Process unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_OK; +} + +/** + * @brief Handle DMA interrupt request. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval None + */ +void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) +{ + uint32_t flag_it = hdma->DmaBaseAddress->ISR; + uint32_t source_it = hdma->Instance->CCR; + + /* Half Transfer Complete Interrupt management ******************************/ + if ((0U != (flag_it & ((uint32_t)DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1FU)))) && (0U != (source_it & DMA_IT_HT))) + { + /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ + if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the half transfer interrupt */ + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + } + /* Clear the half transfer complete flag */ + hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_HTIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* DMA peripheral state is not updated in Half Transfer */ + /* but in Transfer Complete case */ + + if (hdma->XferHalfCpltCallback != NULL) + { + /* Half transfer callback */ + hdma->XferHalfCpltCallback(hdma); + } + } + /* Transfer Complete Interrupt management ***********************************/ + else if ((0U != (flag_it & ((uint32_t)DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1FU)))) + && (0U != (source_it & DMA_IT_TC))) + { + if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the transfer complete and error interrupt */ + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC); + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + } + /* Clear the transfer complete flag */ + hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_TCIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + if (hdma->XferCpltCallback != NULL) + { + /* Transfer complete callback */ + hdma->XferCpltCallback(hdma); + } + } + /* Transfer Error Interrupt management **************************************/ + else if ((0U != (flag_it & ((uint32_t)DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1FU)))) + && (0U != (source_it & DMA_IT_TE))) + { + /* When a DMA transfer error occurs */ + /* A hardware clear of its EN bits is performed */ + /* Disable ALL DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TE; + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + if (hdma->XferErrorCallback != NULL) + { + /* Transfer error callback */ + hdma->XferErrorCallback(hdma); + } + } + else + { + /* Nothing To Do */ + } + return; +} + +/** + * @brief Register callbacks + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CallbackID User Callback identifier + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @param pCallback pointer to private callbacsk function which has pointer to + * a DMA_HandleTypeDef structure as parameter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)(DMA_HandleTypeDef *_hdma)) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hdma); + + if (HAL_DMA_STATE_READY == hdma->State) + { + switch (CallbackID) + { + case HAL_DMA_XFER_CPLT_CB_ID: + hdma->XferCpltCallback = pCallback; + break; + + case HAL_DMA_XFER_HALFCPLT_CB_ID: + hdma->XferHalfCpltCallback = pCallback; + break; + + case HAL_DMA_XFER_ERROR_CB_ID: + hdma->XferErrorCallback = pCallback; + break; + + case HAL_DMA_XFER_ABORT_CB_ID: + hdma->XferAbortCallback = pCallback; + break; + + default: + status = HAL_ERROR; + break; + } + } + else + { + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @brief UnRegister callbacks + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CallbackID User Callback identifier + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hdma); + + if (HAL_DMA_STATE_READY == hdma->State) + { + switch (CallbackID) + { + case HAL_DMA_XFER_CPLT_CB_ID: + hdma->XferCpltCallback = NULL; + break; + + case HAL_DMA_XFER_HALFCPLT_CB_ID: + hdma->XferHalfCpltCallback = NULL; + break; + + case HAL_DMA_XFER_ERROR_CB_ID: + hdma->XferErrorCallback = NULL; + break; + + case HAL_DMA_XFER_ABORT_CB_ID: + hdma->XferAbortCallback = NULL; + break; + + case HAL_DMA_XFER_ALL_CB_ID: + hdma->XferCpltCallback = NULL; + hdma->XferHalfCpltCallback = NULL; + hdma->XferErrorCallback = NULL; + hdma->XferAbortCallback = NULL; + break; + + default: + status = HAL_ERROR; + break; + } + } + else + { + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @} + */ + + + +/** @defgroup DMA_Exported_Functions_Group3 Peripheral State and Errors functions + * @brief Peripheral State and Errors functions + * +@verbatim + =============================================================================== + ##### Peripheral State and Errors functions ##### + =============================================================================== + [..] + This subsection provides functions allowing to + (+) Check the DMA state + (+) Get error code + +@endverbatim + * @{ + */ + +/** + * @brief Return the DMA hande state. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL state + */ +HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) +{ + /* Return DMA handle state */ + return hdma->State; +} + +/** + * @brief Return the DMA error code. + * @param hdma : pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval DMA Error Code + */ +uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma) +{ + return hdma->ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup DMA_Private_Functions + * @{ + */ + +/** + * @brief Sets the DMA Transfer parameter. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress The source memory Buffer address + * @param DstAddress The destination memory Buffer address + * @param DataLength The length of data to be transferred from source to destination + * @retval HAL status + */ +static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + if (hdma->DMAmuxRequestGen != 0U) + { + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + } + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + + /* Configure DMA Channel data length */ + hdma->Instance->CNDTR = DataLength; + + /* Memory to Peripheral */ + if ((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) + { + /* Configure DMA Channel destination address */ + hdma->Instance->CPAR = DstAddress; + + /* Configure DMA Channel source address */ + hdma->Instance->CMAR = SrcAddress; + } + /* Peripheral to Memory */ + else + { + /* Configure DMA Channel source address */ + hdma->Instance->CPAR = SrcAddress; + + /* Configure DMA Channel destination address */ + hdma->Instance->CMAR = DstAddress; + } +} + +/** + * @brief Updates the DMA handle with the DMAMUX channel and status mask depending on stream number + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval None + */ +static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma) +{ + uint32_t dmamux_base_addr; + uint32_t channel_number; + DMAMUX_Channel_TypeDef *DMAMUX1_ChannelBase; + + /* check if instance is not outside the DMA channel range */ + if ((uint32_t)hdma->Instance < (uint32_t)DMA2_Channel1) + { + /* DMA1 */ + DMAMUX1_ChannelBase = DMAMUX1_Channel0; + } + else + { + /* DMA2 */ +#if defined (STM32G471xx) || defined (STM32G473xx) || defined (STM32G474xx) || defined (STM32G414xx) || defined (STM32G483xx) || defined (STM32G484xx) || defined (STM32G491xx) || defined (STM32G4A1xx) || defined (STM32G411xC) + DMAMUX1_ChannelBase = DMAMUX1_Channel8; +#elif defined (STM32G411xB) || defined (STM32G431xx) || defined (STM32G441xx) || defined (STM32GBK1CB) + DMAMUX1_ChannelBase = DMAMUX1_Channel6; +#else + DMAMUX1_ChannelBase = DMAMUX1_Channel7; +#endif /* STM32G4x1xx) */ + } + dmamux_base_addr = (uint32_t)DMAMUX1_ChannelBase; + channel_number = (((uint32_t)hdma->Instance & 0xFFU) - 8U) / 20U; + hdma->DMAmuxChannel = (DMAMUX_Channel_TypeDef *)(uint32_t)(dmamux_base_addr + ((hdma->ChannelIndex >> 2U) * ((uint32_t)DMAMUX1_Channel1 - (uint32_t)DMAMUX1_Channel0))); + hdma->DMAmuxChannelStatus = DMAMUX1_ChannelStatus; + hdma->DMAmuxChannelStatusMask = 1UL << (channel_number & 0x1FU); +} + +/** + * @brief Updates the DMA handle with the DMAMUX request generator params + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval None + */ + +static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma) +{ + uint32_t request = hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID; + + /* DMA Channels are connected to DMAMUX1 request generator blocks*/ + hdma->DMAmuxRequestGen = (DMAMUX_RequestGen_TypeDef *)((uint32_t)(((uint32_t)DMAMUX1_RequestGenerator0) + ((request - 1U) * 4U))); + + hdma->DMAmuxRequestGenStatus = DMAMUX1_RequestGenStatus; + + hdma->DMAmuxRequestGenStatusMask = 1UL << ((request - 1U) & 0x1FU); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_DMA_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c new file mode 100644 index 0000000..1f2e000 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c @@ -0,0 +1,298 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_dma_ex.c + * @author MCD Application Team + * @brief DMA Extension HAL module driver + * This file provides firmware functions to manage the following + * functionalities of the DMA Extension peripheral: + * + Extended features functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The DMA Extension HAL driver can be used as follows: + + (+) Configure the DMA_MUX Synchronization Block using HAL_DMAEx_ConfigMuxSync function. + (+) Configure the DMA_MUX Request Generator Block using HAL_DMAEx_ConfigMuxRequestGenerator function. + Functions HAL_DMAEx_EnableMuxRequestGenerator and HAL_DMAEx_DisableMuxRequestGenerator can then be used + to respectively enable/disable the request generator. + + (+) To handle the DMAMUX Interrupts, the function HAL_DMAEx_MUX_IRQHandler should be called from + the DMAMUX IRQ handler i.e DMAMUX1_OVR_IRQHandler. + As only one interrupt line is available for all DMAMUX channels and request generators , HAL_DMAEx_MUX_IRQHandler should be + called with, as parameter, the appropriate DMA handle as many as used DMAs in the user project + (exception done if a given DMA is not using the DMAMUX SYNC block neither a request generator) + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup DMAEx DMAEx + * @brief DMA Extended HAL module driver + * @{ + */ + +#ifdef HAL_DMA_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private Constants ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + + +/** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions + * @{ + */ + +/** @defgroup DMAEx_Exported_Functions_Group1 DMAEx Extended features functions + * @brief Extended features functions + * +@verbatim + =============================================================================== + ##### Extended features functions ##### + =============================================================================== + [..] This section provides functions allowing to: + + (+) Configure the DMAMUX Synchronization Block using HAL_DMAEx_ConfigMuxSync function. + (+) Configure the DMAMUX Request Generator Block using HAL_DMAEx_ConfigMuxRequestGenerator function. + Functions HAL_DMAEx_EnableMuxRequestGenerator and HAL_DMAEx_DisableMuxRequestGenerator can then be used + to respectively enable/disable the request generator. + +@endverbatim + * @{ + */ + + +/** + * @brief Configure the DMAMUX synchronization parameters for a given DMA channel (instance). + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA channel. + * @param pSyncConfig : pointer to HAL_DMA_MuxSyncConfigTypeDef : contains the DMAMUX synchronization parameters + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMAEx_ConfigMuxSync(DMA_HandleTypeDef *hdma, HAL_DMA_MuxSyncConfigTypeDef *pSyncConfig) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + assert_param(IS_DMAMUX_SYNC_SIGNAL_ID(pSyncConfig->SyncSignalID)); + + assert_param(IS_DMAMUX_SYNC_POLARITY(pSyncConfig-> SyncPolarity)); + assert_param(IS_DMAMUX_SYNC_STATE(pSyncConfig->SyncEnable)); + assert_param(IS_DMAMUX_SYNC_EVENT(pSyncConfig->EventEnable)); + assert_param(IS_DMAMUX_SYNC_REQUEST_NUMBER(pSyncConfig->RequestNumber)); + + /*Check if the DMA state is ready */ + if (hdma->State == HAL_DMA_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hdma); + + /* Set the new synchronization parameters (and keep the request ID filled during the Init)*/ + MODIFY_REG(hdma->DMAmuxChannel->CCR, \ + (~DMAMUX_CxCR_DMAREQ_ID), \ + ((pSyncConfig->SyncSignalID) << DMAMUX_CxCR_SYNC_ID_Pos) | ((pSyncConfig->RequestNumber - 1U) << DMAMUX_CxCR_NBREQ_Pos) | \ + pSyncConfig->SyncPolarity | ((uint32_t)pSyncConfig->SyncEnable << DMAMUX_CxCR_SE_Pos) | \ + ((uint32_t)pSyncConfig->EventEnable << DMAMUX_CxCR_EGE_Pos)); + + /* Process UnLocked */ + __HAL_UNLOCK(hdma); + + return HAL_OK; + } + else + { + /*DMA State not Ready*/ + return HAL_ERROR; + } +} + +/** + * @brief Configure the DMAMUX request generator block used by the given DMA channel (instance). + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA channel. + * @param pRequestGeneratorConfig : pointer to HAL_DMA_MuxRequestGeneratorConfigTypeDef : + * contains the request generator parameters. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMAEx_ConfigMuxRequestGenerator(DMA_HandleTypeDef *hdma, + HAL_DMA_MuxRequestGeneratorConfigTypeDef *pRequestGeneratorConfig) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + assert_param(IS_DMAMUX_REQUEST_GEN_SIGNAL_ID(pRequestGeneratorConfig->SignalID)); + + assert_param(IS_DMAMUX_REQUEST_GEN_POLARITY(pRequestGeneratorConfig->Polarity)); + assert_param(IS_DMAMUX_REQUEST_GEN_REQUEST_NUMBER(pRequestGeneratorConfig->RequestNumber)); + + /* check if the DMA state is ready + and DMA is using a DMAMUX request generator block + */ + if ((hdma->State == HAL_DMA_STATE_READY) && (hdma->DMAmuxRequestGen != 0U)) + { + /* Process Locked */ + __HAL_LOCK(hdma); + + /* Set the request generator new parameters */ + hdma->DMAmuxRequestGen->RGCR = pRequestGeneratorConfig->SignalID | \ + ((pRequestGeneratorConfig->RequestNumber - 1U) << (POSITION_VAL(DMAMUX_RGxCR_GNBREQ) & 0x1FU)) | \ + pRequestGeneratorConfig->Polarity; + /* Process UnLocked */ + __HAL_UNLOCK(hdma); + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Enable the DMAMUX request generator block used by the given DMA channel (instance). + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMAEx_EnableMuxRequestGenerator(DMA_HandleTypeDef *hdma) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + /* check if the DMA state is ready + and DMA is using a DMAMUX request generator block + */ + if ((hdma->State != HAL_DMA_STATE_RESET) && (hdma->DMAmuxRequestGen != 0)) + { + + /* Enable the request generator*/ + hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_GE; + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Disable the DMAMUX request generator block used by the given DMA channel (instance). + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMAEx_DisableMuxRequestGenerator(DMA_HandleTypeDef *hdma) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + /* check if the DMA state is ready + and DMA is using a DMAMUX request generator block + */ + if ((hdma->State != HAL_DMA_STATE_RESET) && (hdma->DMAmuxRequestGen != 0)) + { + + /* Disable the request generator*/ + hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_GE; + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Handles DMAMUX interrupt request. + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA channel. + * @retval None + */ +void HAL_DMAEx_MUX_IRQHandler(DMA_HandleTypeDef *hdma) +{ + /* Check for DMAMUX Synchronization overrun */ + if ((hdma->DMAmuxChannelStatus->CSR & hdma->DMAmuxChannelStatusMask) != 0U) + { + /* Disable the synchro overrun interrupt */ + hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + + /* Clear the DMAMUX synchro overrun flag */ + hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_SYNC; + + if (hdma->XferErrorCallback != NULL) + { + /* Transfer error callback */ + hdma->XferErrorCallback(hdma); + } + } + + if (hdma->DMAmuxRequestGen != 0) + { + /* if using a DMAMUX request generator block Check for DMAMUX request generator overrun */ + if ((hdma->DMAmuxRequestGenStatus->RGSR & hdma->DMAmuxRequestGenStatusMask) != 0U) + { + /* Disable the request gen overrun interrupt */ + hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + + /* Clear the DMAMUX request generator overrun flag */ + hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_REQGEN; + + if (hdma->XferErrorCallback != NULL) + { + /* Transfer error callback */ + hdma->XferErrorCallback(hdma); + } + } + } +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_DMA_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c new file mode 100644 index 0000000..871928c --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c @@ -0,0 +1,639 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_exti.c + * @author MCD Application Team + * @brief EXTI HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: + * functionalities of the General Purpose Input/Output (EXTI) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### EXTI Peripheral features ##### + ============================================================================== + [..] + (+) Each Exti line can be configured within this driver. + + (+) Exti line can be configured in 3 different modes + (++) Interrupt + (++) Event + (++) Both of them + + (+) Configurable Exti lines can be configured with 3 different triggers + (++) Rising + (++) Falling + (++) Both of them + + (+) When set in interrupt mode, configurable Exti lines have two different + interrupt pending registers which allow to distinguish which transition + occurs: + (++) Rising edge pending interrupt + (++) Falling + + (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can + be selected through multiplexer. + + ##### How to use this driver ##### + ============================================================================== + [..] + + (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). + (++) Choose the interrupt line number by setting "Line" member from + EXTI_ConfigTypeDef structure. + (++) Configure the interrupt and/or event mode using "Mode" member from + EXTI_ConfigTypeDef structure. + (++) For configurable lines, configure rising and/or falling trigger + "Trigger" member from EXTI_ConfigTypeDef structure. + (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" + member from GPIO_InitTypeDef structure. + + (#) Get current Exti configuration of a dedicated line using + HAL_EXTI_GetConfigLine(). + (++) Provide exiting handle as parameter. + (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. + + (#) Clear Exti configuration of a dedicated line using HAL_EXTI_ClearConfigLine(). + (++) Provide exiting handle as parameter. + + (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). + (++) Provide exiting handle as first parameter. + (++) Provide which callback will be registered using one value from + EXTI_CallbackIDTypeDef. + (++) Provide callback function pointer. + + (#) Get interrupt pending bit using HAL_EXTI_GetPending(). + + (#) Clear interrupt pending bit using HAL_EXTI_ClearPending(). + + (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup EXTI + * @{ + */ +/** MISRA C:2012 deviation rule has been granted for following rule: + * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out + * of bounds [0,3] in following API : + * HAL_EXTI_SetConfigLine + * HAL_EXTI_GetConfigLine + * HAL_EXTI_ClearConfigLine + */ + +#ifdef HAL_EXTI_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private defines ------------------------------------------------------------*/ +/** @defgroup EXTI_Private_Constants EXTI Private Constants + * @{ + */ +#define EXTI_MODE_OFFSET 0x08U /* 0x20: offset between MCU IMR/EMR registers */ +#define EXTI_CONFIG_OFFSET 0x08U /* 0x20: offset between MCU Rising/Falling configuration registers */ +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup EXTI_Exported_Functions + * @{ + */ + +/** @addtogroup EXTI_Exported_Functions_Group1 + * @brief Configuration functions + * +@verbatim + =============================================================================== + ##### Configuration functions ##### + =============================================================================== + +@endverbatim + * @{ + */ + +/** + * @brief Set configuration of a dedicated Exti line. + * @param hexti Exti handle. + * @param pExtiConfig Pointer on EXTI configuration to be set. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig) +{ + __IO uint32_t *regaddr; + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + uint32_t offset; + + /* Check null pointer */ + if ((hexti == NULL) || (pExtiConfig == NULL)) + { + return HAL_ERROR; + } + + /* Check parameters */ + assert_param(IS_EXTI_LINE(pExtiConfig->Line)); + assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); + + /* Assign line number to handle */ + hexti->Line = pExtiConfig->Line; + + /* Compute line register offset */ + offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* Compute line position */ + linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + /* Compute line mask */ + maskline = (1uL << linepos); + + /* Configure triggers for configurable lines */ + if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) + { + assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); + + /* Configure rising trigger */ + regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = *regaddr; + + /* Mask or set line */ + if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) + { + regval |= maskline; + } + else + { + regval &= ~maskline; + } + + /* Store rising trigger mode */ + *regaddr = regval; + + /* Configure falling trigger */ + regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = *regaddr; + + /* Mask or set line */ + if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) + { + regval |= maskline; + } + else + { + regval &= ~maskline; + } + + /* Store falling trigger mode */ + *regaddr = regval; + + /* Configure gpio port selection in case of gpio exti line */ + if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) + { + assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); + assert_param(IS_EXTI_GPIO_PIN(linepos)); + + regval = SYSCFG->EXTICR[linepos >> 2u]; + regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + SYSCFG->EXTICR[linepos >> 2u] = regval; + } + } + + /* Configure interrupt mode : read current mode */ + regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); + regval = *regaddr; + + /* Mask or set line */ + if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) + { + regval |= maskline; + } + else + { + regval &= ~maskline; + } + + /* Store interrupt mode */ + *regaddr = regval; + + /* Configure event mode : read current mode */ + regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); + regval = *regaddr; + + /* Mask or set line */ + if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) + { + regval |= maskline; + } + else + { + regval &= ~maskline; + } + + /* Store event mode */ + *regaddr = regval; + + return HAL_OK; +} + + +/** + * @brief Get configuration of a dedicated Exti line. + * @param hexti Exti handle. + * @param pExtiConfig Pointer on structure to store Exti configuration. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig) +{ + __IO uint32_t *regaddr; + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + uint32_t offset; + + /* Check null pointer */ + if ((hexti == NULL) || (pExtiConfig == NULL)) + { + return HAL_ERROR; + } + + /* Check the parameter */ + assert_param(IS_EXTI_LINE(hexti->Line)); + + /* Store handle line number to configuration structure */ + pExtiConfig->Line = hexti->Line; + + /* Compute line register offset and line mask */ + offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* Compute line position */ + linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + /* Compute mask */ + maskline = (1uL << linepos); + + /* 1] Get core mode : interrupt */ + regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); + regval = *regaddr; + + /* Check if selected line is enable */ + if ((regval & maskline) != 0x00u) + { + pExtiConfig->Mode = EXTI_MODE_INTERRUPT; + } + else + { + pExtiConfig->Mode = EXTI_MODE_NONE; + } + + /* Get event mode */ + regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); + regval = *regaddr; + + /* Check if selected line is enable */ + if ((regval & maskline) != 0x00u) + { + pExtiConfig->Mode |= EXTI_MODE_EVENT; + } + + /* Get default Trigger and GPIOSel configuration */ + pExtiConfig->Trigger = EXTI_TRIGGER_NONE; + pExtiConfig->GPIOSel = 0x00u; + + /* 2] Get trigger for configurable lines : rising */ + if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) + { + regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = *regaddr; + + /* Check if configuration of selected line is enable */ + if ((regval & maskline) != 0x00u) + { + pExtiConfig->Trigger = EXTI_TRIGGER_RISING; + } + + /* Get falling configuration */ + regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = *regaddr; + + /* Check if configuration of selected line is enable */ + if ((regval & maskline) != 0x00u) + { + pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; + } + + /* Get Gpio port selection for gpio lines */ + if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) + { + assert_param(IS_EXTI_GPIO_PIN(linepos)); + + regval = SYSCFG->EXTICR[linepos >> 2u]; + pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EXTICR1_EXTI0; + } + } + + return HAL_OK; +} + + +/** + * @brief Clear whole configuration of a dedicated Exti line. + * @param hexti Exti handle. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) +{ + __IO uint32_t *regaddr; + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + uint32_t offset; + + /* Check null pointer */ + if (hexti == NULL) + { + return HAL_ERROR; + } + + /* Check the parameter */ + assert_param(IS_EXTI_LINE(hexti->Line)); + + /* compute line register offset and line mask */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* compute line position */ + linepos = (hexti->Line & EXTI_PIN_MASK); + /* compute line mask */ + maskline = (1uL << linepos); + + /* 1] Clear interrupt mode */ + regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); + regval = (*regaddr & ~maskline); + *regaddr = regval; + + /* 2] Clear event mode */ + regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); + regval = (*regaddr & ~maskline); + *regaddr = regval; + + /* 3] Clear triggers in case of configurable lines */ + if ((hexti->Line & EXTI_CONFIG) != 0x00u) + { + regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = (*regaddr & ~maskline); + *regaddr = regval; + + regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = (*regaddr & ~maskline); + *regaddr = regval; + + /* Get Gpio port selection for gpio lines */ + if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) + { + assert_param(IS_EXTI_GPIO_PIN(linepos)); + + regval = SYSCFG->EXTICR[linepos >> 2u]; + regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + SYSCFG->EXTICR[linepos >> 2u] = regval; + } + } + + return HAL_OK; +} + + +/** + * @brief Register callback for a dedicated Exti line. + * @param hexti Exti handle. + * @param CallbackID User callback identifier. + * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. + * @param pPendingCbfn function pointer to be stored as callback. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void (*pPendingCbfn)(void)) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_EXTI_CB(CallbackID)); + + switch (CallbackID) + { + /* set common callback */ + case HAL_EXTI_COMMON_CB_ID: + hexti->PendingCallback = pPendingCbfn; + break; + + default: + hexti->PendingCallback = NULL; + status = HAL_ERROR; + break; + } + + return status; +} + + +/** + * @brief Store line number as handle private field. + * @param hexti Exti handle. + * @param ExtiLine Exti line number. + * This parameter can be from 0 to @ref EXTI_LINE_NB. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) +{ + /* Check the parameters */ + assert_param(IS_EXTI_LINE(ExtiLine)); + + /* Check null pointer */ + if (hexti == NULL) + { + return HAL_ERROR; + } + else + { + /* Store line number as handle private field */ + hexti->Line = ExtiLine; + + return HAL_OK; + } +} + + +/** + * @} + */ + +/** @addtogroup EXTI_Exported_Functions_Group2 + * @brief EXTI IO functions. + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + +@endverbatim + * @{ + */ + +/** + * @brief Handle EXTI interrupt request. + * @param hexti Exti handle. + * @retval none. + */ +void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) +{ + __IO uint32_t *regaddr; + uint32_t regval; + uint32_t maskline; + uint32_t offset; + + /* Compute line register offset */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* compute line mask */ + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Get pending bit */ + regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); + regval = (*regaddr & maskline); + + if (regval != 0x00u) + { + /* Clear pending bit */ + *regaddr = maskline; + + /* Call pending callback */ + if (hexti->PendingCallback != NULL) + { + hexti->PendingCallback(); + } + } +} + +/** + * @brief Get interrupt pending bit of a dedicated line. + * @param hexti Exti handle. + * @param Edge unused + * @retval 1 if interrupt is pending else 0. + */ +uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) +{ + __IO uint32_t *regaddr; + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + uint32_t offset; + + /* Check parameters */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + UNUSED(Edge); + + /* Compute line register offset */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* Compute line position */ + linepos = (hexti->Line & EXTI_PIN_MASK); + /* Compute line mask */ + maskline = (1uL << linepos); + + /* Get pending bit */ + regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); + + /* return 1 if bit is set else 0 */ + regval = ((*regaddr & maskline) >> linepos); + return regval; +} + + +/** + * @brief Clear interrupt pending bit of a dedicated line. + * @param hexti Exti handle. + * @param Edge unused + * @retval None. + */ +void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) +{ + __IO uint32_t *regaddr; + uint32_t maskline; + uint32_t offset; + + /* Check parameters */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + UNUSED(Edge); + + /* Compute line register offset */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* Compute line mask */ + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Get pending register address */ + regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); + + /* Clear Pending bit */ + *regaddr = maskline; +} + + +/** + * @brief Generate a software interrupt for a dedicated line. + * @param hexti Exti handle. + * @retval None. + */ +void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) +{ + __IO uint32_t *regaddr; + uint32_t maskline; + uint32_t offset; + + /* Check parameter */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + + /* compute line register offset */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + /* compute line mask */ + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + regaddr = (&EXTI->SWIER1 + (EXTI_CONFIG_OFFSET * offset)); + *regaddr = maskline; +} + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_EXTI_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c new file mode 100644 index 0000000..0ddb6b4 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c @@ -0,0 +1,794 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_flash.c + * @author MCD Application Team + * @brief FLASH HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the internal FLASH memory: + * + Program operations functions + * + Memory Control functions + * + Peripheral Errors functions + * + @verbatim + ============================================================================== + ##### FLASH peripheral features ##### + ============================================================================== + + [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses + to the Flash memory. It implements the erase and program Flash memory operations + and the read and write protection mechanisms. + + [..] The Flash memory interface accelerates code execution with a system of instruction + prefetch and cache lines. + + [..] The FLASH main features are: + (+) Flash memory read operations + (+) Flash memory program/erase operations + (+) Read / write protections + (+) Option bytes programming + (+) Prefetch on I-Code + (+) 32 cache lines of 4*64 or 2*128 bits on I-Code + (+) 8 cache lines of 4*64 or 2*128 bits on D-Code + (+) Error code correction (ECC) : Data in flash are 72-bits word + (8 bits added per double word) + + + ##### How to use this driver ##### + ============================================================================== + [..] + This driver provides functions and macros to configure and program the FLASH + memory of all STM32G4xx devices. + + (#) Flash Memory IO Programming functions: + (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and + HAL_FLASH_Lock() functions + (++) Program functions: double word and fast program (full row programming) + (++) There are two modes of programming : + (+++) Polling mode using HAL_FLASH_Program() function + (+++) Interrupt mode using HAL_FLASH_Program_IT() function + + (#) Interrupts and flags management functions: + (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler() + (++) Callback functions are called when the flash operations are finished : + HAL_FLASH_EndOfOperationCallback() when everything is ok, otherwise + HAL_FLASH_OperationErrorCallback() + (++) Get error flag status by calling HAL_GetError() + + (#) Option bytes management functions: + (++) Lock and Unlock the option bytes using HAL_FLASH_OB_Unlock() and + HAL_FLASH_OB_Lock() functions + (++) Launch the reload of the option bytes using HAL_FLASH_Launch() function. + In this case, a reset is generated + + [..] + In addition to these functions, this driver includes a set of macros allowing + to handle the following operations: + (+) Set the latency + (+) Enable/Disable the prefetch buffer + (+) Enable/Disable the Instruction cache and the Data cache + (+) Reset the Instruction cache and the Data cache + (+) Enable/Disable the Flash power-down during low-power run and sleep modes + (+) Enable/Disable the Flash interrupts + (+) Monitor the Flash flags status + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup FLASH FLASH + * @brief FLASH HAL module driver + * @{ + */ + +#ifdef HAL_FLASH_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private defines -----------------------------------------------------------*/ +/** @defgroup FLASH_Private_Constants FLASH Private Constants + * @{ + */ +#define FLASH_NB_DOUBLE_WORDS_IN_ROW 32 +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup FLASH_Private_Variables FLASH Private Variables + * @{ + */ + +/** + * @brief Variable used for Program/Erase sectors under interruption + */ +FLASH_ProcessTypeDef pFlash = {.Lock = HAL_UNLOCKED, + .ErrorCode = HAL_FLASH_ERROR_NONE, + .ProcedureOnGoing = FLASH_PROC_NONE, + .Address = 0U, + .Bank = FLASH_BANK_1, + .Page = 0U, + .NbPagesToErase = 0U, + .CacheToReactivate = FLASH_CACHE_DISABLED}; +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup FLASH_Private_Functions FLASH Private Functions + * @{ + */ +static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data); +static void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Functions FLASH Exported Functions + * @{ + */ + +/** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions + * @brief Programming operation functions + * +@verbatim + =============================================================================== + ##### Programming operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the FLASH + program operations. + +@endverbatim + * @{ + */ + +/** + * @brief Program double word or fast program of a row at a specified address. + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program. + * @param Address specifies the address to be programmed. + * @param Data specifies the data to be programmed. + * This parameter is the data for the double word program and the address where + * are stored the data for the row fast program. + * + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) +{ + HAL_StatusTypeDef status; + uint32_t prog_bit = 0; + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Deactivate the data cache if they are activated to avoid data misbehavior */ + if(READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + } + else + { + pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + } + if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD) + { + /* Program double-word (64-bit) at a specified address */ + FLASH_Program_DoubleWord(Address, Data); + prog_bit = FLASH_CR_PG; + } + else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST)) + { + /* Fast program a 32 row double-word (64-bit) at a specified address */ + FLASH_Program_Fast(Address, (uint32_t)Data); + + /* If it is the last row, the bit will be cleared at the end of the operation */ + if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST) + { + prog_bit = FLASH_CR_FSTPG; + } + } + else + { + /* Nothing to do */ + } + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the program operation is completed, disable the PG or FSTPG Bit */ + if (prog_bit != 0U) + { + CLEAR_BIT(FLASH->CR, prog_bit); + } + + /* Flush the caches to be sure of the data consistency */ + FLASH_FlushCaches(); + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + /* return status */ + return status; +} + +/** + * @brief Program double word or fast program of a row at a specified address with interrupt enabled. + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program. + * @param Address specifies the address to be programmed. + * @param Data specifies the data to be programmed. + * This parameter is the data for the double word program and the address where + * are stored the data for the row fast program. + * + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data) +{ + HAL_StatusTypeDef status; + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Reset error code */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Deactivate the data cache if they are activated to avoid data misbehavior */ + if(READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + } + else + { + pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + } + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + } + else + { + /* Set internal variables used by the IRQ handler */ + if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST) + { + pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_LAST; + } + else + { + pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM; + } + pFlash.Address = Address; + + /* Enable End of Operation and Error interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR); + + if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD) + { + /* Program double-word (64-bit) at a specified address */ + FLASH_Program_DoubleWord(Address, Data); + } + else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST)) + { + /* Fast program a 32 row double-word (64-bit) at a specified address */ + FLASH_Program_Fast(Address, (uint32_t)Data); + } + else + { + /* Nothing to do */ + } + } + + return status; +} + +/** + * @brief Handle FLASH interrupt request. + * @retval None + */ +void HAL_FLASH_IRQHandler(void) +{ + uint32_t tmp_page; + uint32_t error; + FLASH_ProcedureTypeDef procedure; + + /* If the operation is completed, disable the PG, PNB, MER1, MER2 and PER Bit */ + CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_MER1 | FLASH_CR_PER | FLASH_CR_PNB)); +#if defined (FLASH_OPTR_DBANK) + CLEAR_BIT(FLASH->CR, FLASH_CR_MER2); +#endif + + /* Disable the FSTPG Bit only if it is the last row programmed */ + if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAM_LAST) + { + CLEAR_BIT(FLASH->CR, FLASH_CR_FSTPG); + } + + /* Check FLASH operation error flags */ + error = (FLASH->SR & FLASH_FLAG_SR_ERRORS); + + if (error != 0U) + { + /* Save the error code */ + pFlash.ErrorCode |= error; + + /* Clear error programming flags */ + __HAL_FLASH_CLEAR_FLAG(error); + + /* Flush the caches to be sure of the data consistency */ + FLASH_FlushCaches(); + + /* FLASH error interrupt user callback */ + procedure = pFlash.ProcedureOnGoing; + if (procedure == FLASH_PROC_PAGE_ERASE) + { + HAL_FLASH_OperationErrorCallback(pFlash.Page); + } + else if (procedure == FLASH_PROC_MASS_ERASE) + { + HAL_FLASH_OperationErrorCallback(pFlash.Bank); + } + else if ((procedure == FLASH_PROC_PROGRAM) || + (procedure == FLASH_PROC_PROGRAM_LAST)) + { + HAL_FLASH_OperationErrorCallback(pFlash.Address); + } + else + { + /* Nothing to do */ + } + + /*Stop the procedure ongoing*/ + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } + + /* Check FLASH End of Operation flag */ + if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); + + if (pFlash.ProcedureOnGoing == FLASH_PROC_PAGE_ERASE) + { + /* Nb of pages to erased can be decreased */ + pFlash.NbPagesToErase--; + + /* Check if there are still pages to erase*/ + if (pFlash.NbPagesToErase != 0U) + { + /* Indicate user which page has been erased*/ + HAL_FLASH_EndOfOperationCallback(pFlash.Page); + + /* Increment page number */ + pFlash.Page++; + tmp_page = pFlash.Page; + FLASH_PageErase(tmp_page, pFlash.Bank); + } + else + { + /* No more pages to Erase */ + /* Reset Address and stop Erase pages procedure */ + pFlash.Page = 0xFFFFFFFFU; + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + + /* Flush the caches to be sure of the data consistency */ + FLASH_FlushCaches(); + + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(pFlash.Page); + } + } + else + { + /* Flush the caches to be sure of the data consistency */ + FLASH_FlushCaches(); + + procedure = pFlash.ProcedureOnGoing; + if (procedure == FLASH_PROC_MASS_ERASE) + { + /* MassErase ended. Return the selected bank */ + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(pFlash.Bank); + } + else if ((procedure == FLASH_PROC_PROGRAM) || + (procedure == FLASH_PROC_PROGRAM_LAST)) + { + /* Program ended. Return the selected address */ + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(pFlash.Address); + } + else + { + /* Nothing to do */ + } + + /*Clear the procedure ongoing*/ + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } + } + + if (pFlash.ProcedureOnGoing == FLASH_PROC_NONE) + { + /* Disable End of Operation and Error interrupts */ + __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR); + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + } +} + +/** + * @brief FLASH end of operation interrupt callback. + * @param ReturnValue The value saved in this parameter depends on the ongoing procedure: + * @arg Mass Erase: Bank number which has been requested to erase + * @arg Page Erase: Page which has been erased + * (if 0xFFFFFFFF, it means that all the selected pages have been erased) + * @arg Program: Address which was selected for data program + * @retval None + */ +__weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(ReturnValue); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_FLASH_EndOfOperationCallback could be implemented in the user file + */ +} + +/** + * @brief FLASH operation error interrupt callback. + * @param ReturnValue The value saved in this parameter depends on the ongoing procedure: + * @arg Mass Erase: Bank number which has been requested to erase + * @arg Page Erase: Page number which returned an error + * @arg Program: Address which was selected for data program + * @retval None + */ +__weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(ReturnValue); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_FLASH_OperationErrorCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions + * @brief Management functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the FLASH + memory operations. + +@endverbatim + * @{ + */ + +/** + * @brief Unlock the FLASH control register access. + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_Unlock(void) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U) + { + /* Authorize the FLASH Registers access */ + WRITE_REG(FLASH->KEYR, FLASH_KEY1); + WRITE_REG(FLASH->KEYR, FLASH_KEY2); + + /* verify Flash is unlocked */ + if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U) + { + status = HAL_ERROR; + } + } + + return status; +} + +/** + * @brief Lock the FLASH control register access. + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_Lock(void) +{ + HAL_StatusTypeDef status = HAL_ERROR; + + /* Set the LOCK Bit to lock the FLASH Registers access */ + SET_BIT(FLASH->CR, FLASH_CR_LOCK); + + /* verify Flash is locked */ + if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U) + { + status = HAL_OK; + } + + return status; +} + +/** + * @brief Unlock the FLASH Option Bytes Registers access. + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U) + { + /* Authorizes the Option Byte register programming */ + WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1); + WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); + + /* verify option bytes are unlocked */ + if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U) + { + status = HAL_ERROR; + } + } + + return status; +} + +/** + * @brief Lock the FLASH Option Bytes Registers access. + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) +{ + HAL_StatusTypeDef status = HAL_ERROR; + + /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */ + SET_BIT(FLASH->CR, FLASH_CR_OPTLOCK); + + /* Verify option bytes are locked */ + if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U) + { + status = HAL_OK; + } + + return status; +} + +/** + * @brief Launch the option byte loading. + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) +{ + /* Set the bit to force the option byte reloading */ + SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH); + + /* Wait for last operation to be completed */ + return (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE)); +} + +/** + * @} + */ + +/** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions + * @brief Peripheral Errors functions + * +@verbatim + =============================================================================== + ##### Peripheral Errors functions ##### + =============================================================================== + [..] + This subsection permits to get in run-time Errors of the FLASH peripheral. + +@endverbatim + * @{ + */ + +/** + * @brief Get the specific FLASH error flag. + * @retval FLASH_ErrorCode. The returned value can be: + * @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP) + * @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag + * @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag + * @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag + * @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag + * @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag + * @arg HAL_FLASH_ERROR_NONE: No error set + * @arg HAL_FLASH_ERROR_OP: FLASH Operation error + * @arg HAL_FLASH_ERROR_PROG: FLASH Programming error + * @arg HAL_FLASH_ERROR_WRP: FLASH Write protection error + * @arg HAL_FLASH_ERROR_PGA: FLASH Programming alignment error + * @arg HAL_FLASH_ERROR_SIZ: FLASH Size error + * @arg HAL_FLASH_ERROR_PGS: FLASH Programming sequence error + * @arg HAL_FLASH_ERROR_MIS: FLASH Fast programming data miss error + * @arg HAL_FLASH_ERROR_FAST: FLASH Fast programming error + * @arg HAL_FLASH_ERROR_RD: FLASH PCROP read error + * @arg HAL_FLASH_ERROR_OPTV: FLASH Option validity error + */ +uint32_t HAL_FLASH_GetError(void) +{ + return pFlash.ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** @addtogroup FLASH_Private_Functions + * @{ + */ + +/** + * @brief Wait for a FLASH operation to complete. + * @param Timeout maximum flash operation timeout. + * @retval HAL_Status + */ +HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) +{ + /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. + Even if the FLASH operation fails, the BUSY flag will be reset and an error + flag will be set */ + + uint32_t tickstart = HAL_GetTick(); + uint32_t error; + + while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) + { + if ((HAL_GetTick() - tickstart) > Timeout) + { + return HAL_TIMEOUT; + } + } + + /* Check FLASH operation error flags */ + error = (FLASH->SR & FLASH_FLAG_SR_ERRORS); + if (error != 0u) + { + /* Save the error code */ + pFlash.ErrorCode |= error; + + /* Clear error programming flags */ + __HAL_FLASH_CLEAR_FLAG(error); + + return HAL_ERROR; + } + + /* Check FLASH End of Operation flag */ + if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); + } + + /* If there is an error flag set */ + return HAL_OK; +} + +/** + * @brief Program double-word (64-bit) at a specified address. + * @param Address specifies the address to be programmed. + * @param Data specifies the data to be programmed. + * @retval None + */ +static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data) +{ + /* Check the parameters */ + assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + + /* Set PG bit */ + SET_BIT(FLASH->CR, FLASH_CR_PG); + + /* Program first word */ + *(uint32_t *)Address = (uint32_t)Data; + + /* Barrier to ensure programming is performed in 2 steps, in right order + (independently of compiler optimization behavior) */ + __ISB(); + + /* Program second word */ + *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U); +} + +/** + * @brief Fast program a row double-word (64-bit) at a specified address. + * @param Address specifies the address to be programmed. + * @param DataAddress specifies the address where the data are stored. + * @retval None + */ +static void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress) +{ + uint8_t row_index = (2 * FLASH_NB_DOUBLE_WORDS_IN_ROW); + uint32_t *dest_addr = (uint32_t *)Address; + uint32_t *src_addr = (uint32_t *)DataAddress; + uint32_t primask_bit; + + /* Check the parameters */ + assert_param(IS_FLASH_MAIN_MEM_ADDRESS(Address)); + + /* Set FSTPG bit */ + SET_BIT(FLASH->CR, FLASH_CR_FSTPG); + + /* Enter critical section: Disable interrupts to avoid any interruption during the loop */ + primask_bit = __get_PRIMASK(); + __disable_irq(); + + /* Program the double words of the row */ + do + { + *dest_addr = *src_addr; + dest_addr++; + src_addr++; + row_index--; + } + while (row_index != 0U); + + /* Exit critical section: restore previous priority mask */ + __set_PRIMASK(primask_bit); +} + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c new file mode 100644 index 0000000..4816af7 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c @@ -0,0 +1,1431 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_flash_ex.c + * @author MCD Application Team + * @brief Extended FLASH HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the FLASH extended peripheral: + * + Extended programming operations functions + * + @verbatim + ============================================================================== + ##### Flash Extended features ##### + ============================================================================== + + [..] Comparing to other previous devices, the FLASH interface for STM32G4xx + devices contains the following additional features + + (+) Capacity up to 512 Kbytes with dual bank architecture supporting read-while-write + capability (RWW) + (+) Dual bank 64-bits memory organization with possibility of single bank 128-bits + (+) Protected areas including WRP, PCROP and Securable memory + + ##### How to use this driver ##### + ============================================================================== + [..] This driver provides functions to configure and program the FLASH memory + of all STM32G4xx devices. It includes + (#) Flash Memory Erase functions: + (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and + HAL_FLASH_Lock() functions + (++) Erase function: Erase pages, or mass erase banks + (++) There are two modes of erase : + (+++) Polling Mode using HAL_FLASHEx_Erase() + (+++) Interrupt Mode using HAL_FLASHEx_Erase_IT() + + (#) Option Bytes Programming function: Use HAL_FLASHEx_OBProgram() to: + (++) Configure the write protection areas (WRP) + (++) Set the Read protection Level (RDP) + (++) Program the user Option Bytes + (++) Configure the Proprietary Code ReadOut protection areas (PCROP) + (++) Configure the Securable memory areas + (++) Configure the Boot Lock + + (#) Get Option Bytes Configuration function: Use HAL_FLASHEx_OBGetConfig() to: + (++) Get the configuration of write protection areas (WRP) + (++) Get the level of read protection (RDP) + (++) Get the value of the user Option Bytes + (++) Get the configuration of Proprietary Code ReadOut Protection areas (PCROP) + (++) Get the configuration of Securable memory areas + (++) Get the status of Boot Lock + + (#) Activation of Securable memory area: Use HAL_FLASHEx_EnableSecMemProtection() + (++) Deny the access to securable memory area + + (#) Enable or disable debugger: Use HAL_FLASHEx_EnableDebugger() or + HAL_FLASHEx_DisableDebugger() + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup FLASHEx FLASHEx + * @brief FLASH Extended HAL module driver + * @{ + */ + +#ifdef HAL_FLASH_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions + * @{ + */ +static void FLASH_MassErase(uint32_t Banks); +static HAL_StatusTypeDef FLASH_OB_WRPConfig(uint32_t WRPArea, uint32_t WRPStartOffset, uint32_t WRDPEndOffset); +static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint32_t RDPLevel); +static HAL_StatusTypeDef FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig); +static HAL_StatusTypeDef FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32_t PCROPEndAddr); +static void FLASH_OB_GetWRP(uint32_t WRPArea, uint32_t *WRPStartOffset, uint32_t *WRDPEndOffset); +static uint32_t FLASH_OB_GetRDP(void); +static uint32_t FLASH_OB_GetUser(void); +static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_t *PCROPEndAddr); +static HAL_StatusTypeDef FLASH_OB_SecMemConfig(uint32_t SecMemBank, uint32_t SecMemSize); +static void FLASH_OB_GetSecMem(uint32_t SecMemBank, uint32_t *SecMemSize); +static HAL_StatusTypeDef FLASH_OB_BootLockConfig(uint32_t BootLockConfig); +static uint32_t FLASH_OB_GetBootLock(void); + +/** + * @} + */ + +/* Exported functions -------------------------------------------------------*/ +/** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions + * @{ + */ + +/** @defgroup FLASHEx_Exported_Functions_Group1 Extended IO operation functions + * @brief Extended IO operation functions + * +@verbatim + =============================================================================== + ##### Extended programming operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the Extended FLASH + programming operations Operations. + +@endverbatim + * @{ + */ +/** + * @brief Perform a mass erase or erase the specified FLASH memory pages. + * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that + * contains the configuration information for the erasing. + * @param[out] PageError pointer to variable that contains the configuration + * information on faulty page in case of error (0xFFFFFFFF means that all + * the pages have been correctly erased). + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError) +{ + HAL_StatusTypeDef status; + uint32_t page_index; + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Deactivate the cache if they are activated to avoid data misbehavior */ + if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U) + { + if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED; + } + else + { + pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_ENABLED; + } + } + else if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + } + else + { + pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + } + + if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + { + /* Mass erase to be done */ + FLASH_MassErase(pEraseInit->Banks); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + +#if defined (FLASH_OPTR_DBANK) + /* If the erase operation is completed, disable the MER1 and MER2 Bits */ + CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2)); +#else + /* If the erase operation is completed, disable the MER1 Bit */ + CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1)); +#endif + } + else + { + /*Initialization of PageError variable*/ + *PageError = 0xFFFFFFFFU; + + for (page_index = pEraseInit->Page; page_index < (pEraseInit->Page + pEraseInit->NbPages); page_index++) + { + FLASH_PageErase(page_index, pEraseInit->Banks); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the PER Bit */ + CLEAR_BIT(FLASH->CR, (FLASH_CR_PER | FLASH_CR_PNB)); + + if (status != HAL_OK) + { + /* In case of error, stop erase procedure and return the faulty page */ + *PageError = page_index; + break; + } + } + } + + /* Flush the caches to be sure of the data consistency */ + FLASH_FlushCaches(); + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Perform a mass erase or erase the specified FLASH memory pages with interrupt enabled. + * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that + * contains the configuration information for the erasing. + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Deactivate the cache if they are activated to avoid data misbehavior */ + if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U) + { + if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED; + } + else + { + pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_ENABLED; + } + } + else if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + } + else + { + pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + } + + /* Enable End of Operation and Error interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR); + + pFlash.Bank = pEraseInit->Banks; + + if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + { + /* Mass erase to be done */ + pFlash.ProcedureOnGoing = FLASH_PROC_MASS_ERASE; + FLASH_MassErase(pEraseInit->Banks); + } + else + { + /* Erase by page to be done */ + pFlash.ProcedureOnGoing = FLASH_PROC_PAGE_ERASE; + pFlash.NbPagesToErase = pEraseInit->NbPages; + pFlash.Page = pEraseInit->Page; + + /*Erase 1st page and wait for IT */ + FLASH_PageErase(pEraseInit->Page, pEraseInit->Banks); + } + + return status; +} + +/** + * @brief Program Option bytes. + * @param pOBInit pointer to an FLASH_OBInitStruct structure that + * contains the configuration information for the programming. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @retval HAL_Status + */ +HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_OPTIONBYTE(pOBInit->OptionType)); + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Write protection configuration */ + if ((pOBInit->OptionType & OPTIONBYTE_WRP) != 0U) + { + /* Configure of Write protection on the selected area */ + if (FLASH_OB_WRPConfig(pOBInit->WRPArea, pOBInit->WRPStartOffset, pOBInit->WRPEndOffset) != HAL_OK) + { + status = HAL_ERROR; + } + } + + /* Read protection configuration */ + if ((pOBInit->OptionType & OPTIONBYTE_RDP) != 0U) + { + /* Configure the Read protection level */ + if (FLASH_OB_RDPConfig(pOBInit->RDPLevel) != HAL_OK) + { + status = HAL_ERROR; + } + } + + /* User Configuration */ + if ((pOBInit->OptionType & OPTIONBYTE_USER) != 0U) + { + /* Configure the user option bytes */ + if (FLASH_OB_UserConfig(pOBInit->USERType, pOBInit->USERConfig) != HAL_OK) + { + status = HAL_ERROR; + } + } + + /* PCROP Configuration */ + if ((pOBInit->OptionType & OPTIONBYTE_PCROP) != 0U) + { + if (pOBInit->PCROPStartAddr != pOBInit->PCROPEndAddr) + { + /* Configure the Proprietary code readout protection */ + if (FLASH_OB_PCROPConfig(pOBInit->PCROPConfig, pOBInit->PCROPStartAddr, pOBInit->PCROPEndAddr) != HAL_OK) + { + status = HAL_ERROR; + } + } + } + + /* Securable memory Configuration */ + if ((pOBInit->OptionType & OPTIONBYTE_SEC) != 0U) + { + /* Configure the securable memory area */ + if (FLASH_OB_SecMemConfig(pOBInit->SecBank, pOBInit->SecSize) != HAL_OK) + { + status = HAL_ERROR; + } + } + + /* Boot Entry Point Configuration */ + if ((pOBInit->OptionType & OPTIONBYTE_BOOT_LOCK) != 0U) + { + /* Configure the boot unique entry point option */ + if (FLASH_OB_BootLockConfig(pOBInit->BootEntryPoint) != HAL_OK) + { + status = HAL_ERROR; + } + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Get the Option bytes configuration. + * @param pOBInit pointer to an FLASH_OBInitStruct structure that contains the + * configuration information. + * @note The fields pOBInit->WRPArea and pOBInit->PCROPConfig should indicate + * which area is requested for the WRP and PCROP, else no information will be returned. + * @retval None + */ +void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) +{ + pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER); + +#if defined (FLASH_OPTR_DBANK) + if ((pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAB) || + (pOBInit->WRPArea == OB_WRPAREA_BANK2_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK2_AREAB)) +#else + if ((pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAB)) +#endif + { + pOBInit->OptionType |= OPTIONBYTE_WRP; + /* Get write protection on the selected area */ + FLASH_OB_GetWRP(pOBInit->WRPArea, &(pOBInit->WRPStartOffset), &(pOBInit->WRPEndOffset)); + } + + /* Get Read protection level */ + pOBInit->RDPLevel = FLASH_OB_GetRDP(); + + /* Get the user option bytes */ + pOBInit->USERConfig = FLASH_OB_GetUser(); + +#if defined (FLASH_OPTR_DBANK) + if ((pOBInit->PCROPConfig == FLASH_BANK_1) || (pOBInit->PCROPConfig == FLASH_BANK_2)) +#else + if (pOBInit->PCROPConfig == FLASH_BANK_1) +#endif + { + pOBInit->OptionType |= OPTIONBYTE_PCROP; + /* Get the Proprietary code readout protection */ + FLASH_OB_GetPCROP(&(pOBInit->PCROPConfig), &(pOBInit->PCROPStartAddr), &(pOBInit->PCROPEndAddr)); + } + + pOBInit->OptionType |= OPTIONBYTE_BOOT_LOCK; + + /* Get the boot entry point */ + pOBInit->BootEntryPoint = FLASH_OB_GetBootLock(); + + /* Get the securable memory area configuration */ +#if defined (FLASH_OPTR_DBANK) + if ((pOBInit->SecBank == FLASH_BANK_1) || (pOBInit->SecBank == FLASH_BANK_2)) +#else + if (pOBInit->SecBank == FLASH_BANK_1) +#endif + { + pOBInit->OptionType |= OPTIONBYTE_SEC; + FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize)); + } +} + +/** + * @brief Enable the FLASH Securable Memory protection. + * @param Bank: Bank to be protected + * This parameter can be one of the following values: + * @arg FLASH_BANK_1: Bank1 to be protected + * @arg FLASH_BANK_2: Bank2 to be protected (*) + * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be protected (*) + * @note (*) availability depends on devices + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_EnableSecMemProtection(uint32_t Bank) +{ +#if defined (FLASH_OPTR_DBANK) + if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) != 0U) + { + /* Check the parameters */ + assert_param(IS_FLASH_BANK(Bank)); + + /* Enable the Securable Memory Protection Bit for the bank 1 if requested */ + if ((Bank & FLASH_BANK_1) != 0U) + { + SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1); + } + + /* Enable the Securable Memory Protection Bit for the bank 2 if requested */ + if ((Bank & FLASH_BANK_2) != 0U) + { + SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT2); + } + } + else + { + SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1); + } +#else + /* Prevent unused argument(s) compilation warning */ + UNUSED(Bank); + SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1); +#endif /* FLASH_OPTR_DBANK */ + + return HAL_OK; +} + +/** + * @brief Enable Debugger. + * @note After calling this API, flash interface allow debugger intrusion. + * @retval None + */ +void HAL_FLASHEx_EnableDebugger(void) +{ + FLASH->ACR |= FLASH_ACR_DBG_SWEN; +} + + +/** + * @brief Disable Debugger. + * @note After calling this API, Debugger is disabled: it's no more possible to + * break, see CPU register, etc... + * @retval None + */ +void HAL_FLASHEx_DisableDebugger(void) +{ + FLASH->ACR &= ~FLASH_ACR_DBG_SWEN; +} + +/** + * @} + */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** @addtogroup FLASHEx_Private_Functions + * @{ + */ +/** + * @brief Mass erase of FLASH memory. + * @param Banks Banks to be erased. + * This parameter can be one of the following values: + * @arg FLASH_BANK_1: Bank1 to be erased + * @arg FLASH_BANK_2: Bank2 to be erased (*) + * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased (*) + * @note (*) availability depends on devices + * @retval None + */ +static void FLASH_MassErase(uint32_t Banks) +{ +#if defined (FLASH_OPTR_DBANK) + if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) != 0U) +#endif + { + /* Check the parameters */ + assert_param(IS_FLASH_BANK(Banks)); + + /* Set the Mass Erase Bit for the bank 1 if requested */ + if ((Banks & FLASH_BANK_1) != 0U) + { + SET_BIT(FLASH->CR, FLASH_CR_MER1); + } + +#if defined (FLASH_OPTR_DBANK) + /* Set the Mass Erase Bit for the bank 2 if requested */ + if ((Banks & FLASH_BANK_2) != 0U) + { + SET_BIT(FLASH->CR, FLASH_CR_MER2); + } +#endif + } +#if defined (FLASH_OPTR_DBANK) + else + { + SET_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2)); + } +#endif + + /* Proceed to erase all sectors */ + SET_BIT(FLASH->CR, FLASH_CR_STRT); +} + +/** + * @brief Erase the specified FLASH memory page. + * @param Page FLASH page to erase. + * This parameter must be a value between 0 and (max number of pages in the bank - 1). + * @param Banks Bank where the page will be erased. + * This parameter can be one of the following values: + * @arg FLASH_BANK_1: Page in bank 1 to be erased + * @arg FLASH_BANK_2: Page in bank 2 to be erased (*) + * @note (*) availability depends on devices + * @retval None + */ +void FLASH_PageErase(uint32_t Page, uint32_t Banks) +{ + /* Check the parameters */ + assert_param(IS_FLASH_PAGE(Page)); + +#if defined (FLASH_OPTR_DBANK) + if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U) + { + CLEAR_BIT(FLASH->CR, FLASH_CR_BKER); + } + else + { + assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks)); + + if ((Banks & FLASH_BANK_1) != 0U) + { + CLEAR_BIT(FLASH->CR, FLASH_CR_BKER); + } + else + { + SET_BIT(FLASH->CR, FLASH_CR_BKER); + } + } +#else + /* Prevent unused argument(s) compilation warning */ + UNUSED(Banks); +#endif /* FLASH_OPTR_DBANK */ + + /* Proceed to erase the page */ + MODIFY_REG(FLASH->CR, FLASH_CR_PNB, ((Page & 0xFFU) << FLASH_CR_PNB_Pos)); + SET_BIT(FLASH->CR, FLASH_CR_PER); + SET_BIT(FLASH->CR, FLASH_CR_STRT); +} + +/** + * @brief Flush the instruction and data caches. + * @retval None + */ +void FLASH_FlushCaches(void) +{ + FLASH_CacheTypeDef cache = pFlash.CacheToReactivate; + + /* Flush instruction cache */ + if ((cache == FLASH_CACHE_ICACHE_ENABLED) || + (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + { + /* Disable instruction cache */ + __HAL_FLASH_INSTRUCTION_CACHE_DISABLE(); + /* Reset instruction cache */ + __HAL_FLASH_INSTRUCTION_CACHE_RESET(); + /* Enable instruction cache */ + __HAL_FLASH_INSTRUCTION_CACHE_ENABLE(); + } + + /* Flush data cache */ + if ((cache == FLASH_CACHE_DCACHE_ENABLED) || + (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + { + /* Reset data cache */ + __HAL_FLASH_DATA_CACHE_RESET(); + /* Enable data cache */ + __HAL_FLASH_DATA_CACHE_ENABLE(); + } + + /* Reset internal variable */ + pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; +} + +/** + * @brief Configure the write protection area into Option Bytes. + * @note When the memory read protection level is selected (RDP level = 1), + * it is not possible to program or erase Flash memory if the CPU debug + * features are connected (JTAG or single wire) or boot code is being + * executed from RAM or System flash, even if WRP is not activated. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @param WRPArea specifies the area to be configured. + * This parameter can be one of the following values: + * @arg OB_WRPAREA_BANK1_AREAA: Flash Bank 1 Area A + * @arg OB_WRPAREA_BANK1_AREAB: Flash Bank 1 Area B + * @arg OB_WRPAREA_BANK2_AREAA: Flash Bank 2 Area A (*) + * @arg OB_WRPAREA_BANK2_AREAB: Flash Bank 2 Area B (*) + * @note (*) availability depends on devices + * @param WRPStartOffset specifies the start page of the write protected area. + * This parameter can be page number between 0 and (max number of pages in the bank - 1). + * @param WRDPEndOffset specifies the end page of the write protected area. + * This parameter can be page number between WRPStartOffset and (max number of pages in the bank - 1). + * @retval HAL_Status + */ +static HAL_StatusTypeDef FLASH_OB_WRPConfig(uint32_t WRPArea, uint32_t WRPStartOffset, uint32_t WRDPEndOffset) +{ + HAL_StatusTypeDef status; + + /* Check the parameters */ + assert_param(IS_OB_WRPAREA(WRPArea)); + assert_param(IS_FLASH_PAGE(WRPStartOffset)); + assert_param(IS_FLASH_PAGE(WRDPEndOffset)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + /* Configure the write protected area */ + if (WRPArea == OB_WRPAREA_BANK1_AREAA) + { + FLASH->WRP1AR = ((WRDPEndOffset << FLASH_WRP1AR_WRP1A_END_Pos) | WRPStartOffset); + } + else if (WRPArea == OB_WRPAREA_BANK1_AREAB) + { + FLASH->WRP1BR = ((WRDPEndOffset << FLASH_WRP1BR_WRP1B_END_Pos) | WRPStartOffset); + } +#if defined (FLASH_OPTR_DBANK) + else if (WRPArea == OB_WRPAREA_BANK2_AREAA) + { + FLASH->WRP2AR = ((WRDPEndOffset << FLASH_WRP2AR_WRP2A_END_Pos) | WRPStartOffset); + } + else if (WRPArea == OB_WRPAREA_BANK2_AREAB) + { + FLASH->WRP2BR = ((WRDPEndOffset << FLASH_WRP2BR_WRP2B_END_Pos) | WRPStartOffset); + } +#endif + else + { + /* Nothing to do */ + } + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } + + return status; +} + +/** + * @brief Set the read protection level into Option Bytes. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @note !!! Warning : When enabling OB_RDP level 2 it's no more possible + * to go back to level 1 or 0 !!! + * @param RDPLevel specifies the read protection level. + * This parameter can be one of the following values: + * @arg OB_RDP_LEVEL_0: No protection + * @arg OB_RDP_LEVEL_1: Memory Read protection + * @arg OB_RDP_LEVEL_2: Full chip protection + * + * @retval HAL_Status + */ +static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint32_t RDPLevel) +{ + HAL_StatusTypeDef status; + + /* Check the parameters */ + assert_param(IS_OB_RDP_LEVEL(RDPLevel)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + /* Configure the RDP level in the option bytes register */ + MODIFY_REG(FLASH->OPTR, FLASH_OPTR_RDP, RDPLevel); + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } + + return status; +} + +/** + * @brief Program the FLASH User Option Bytes. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @param UserType The FLASH User Option Bytes to be modified. + * This parameter can be a combination of @ref FLASH_OB_USER_Type. + * @param UserConfig The selected User Option Bytes values: + * This parameter can be a combination of @ref FLASH_OB_USER_BOR_LEVEL, + * @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY , + * @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW, + * @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY, + * @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_WWDG_SW, + * @ref FLASH_OB_USER_BFB2 (*), @ref FLASH_OB_USER_nBOOT1, + * @ref FLASH_OB_USER_SRAM_PE, @ref FLASH_OB_USER_CCMSRAM_RST, + * @ref FLASH_OB_USER_nSWBOOT0, @ref FLASH_OB_USER_nBOOT0, + * @ref FLASH_OB_USER_NRST_MODE, @ref FLASH_OB_USER_INTERNAL_RESET_HOLDER + * @note (*) availability depends on devices + * @retval HAL_Status + */ +static HAL_StatusTypeDef FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig) +{ + uint32_t optr_reg_val = 0; + uint32_t optr_reg_mask = 0; + HAL_StatusTypeDef status; + + /* Check the parameters */ + assert_param(IS_OB_USER_TYPE(UserType)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { +#if defined(FLASH_OPTR_PB4_PUPEN) + if ((UserType & OB_USER_PB4_PUPEN) != 0U) + { + /* PB4_PUPEN option byte should be modified */ + assert_param(IS_OB_USER_PB4_PUPEN(UserConfig & FLASH_OPTR_PB4_PUPEN)); + + /* Set value and mask for PB4_PUPEN option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_PB4_PUPEN); + optr_reg_mask |= FLASH_OPTR_PB4_PUPEN; + } +#endif /* FLASH_OPTR_PB4_PUPEN */ + + if ((UserType & OB_USER_BOR_LEV) != 0U) + { + /* BOR level option byte should be modified */ + assert_param(IS_OB_USER_BOR_LEVEL(UserConfig & FLASH_OPTR_BOR_LEV)); + + /* Set value and mask for BOR level option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_BOR_LEV); + optr_reg_mask |= FLASH_OPTR_BOR_LEV; + } + + if ((UserType & OB_USER_nRST_STOP) != 0U) + { + /* nRST_STOP option byte should be modified */ + assert_param(IS_OB_USER_STOP(UserConfig & FLASH_OPTR_nRST_STOP)); + + /* Set value and mask for nRST_STOP option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_STOP); + optr_reg_mask |= FLASH_OPTR_nRST_STOP; + } + + if ((UserType & OB_USER_nRST_STDBY) != 0U) + { + /* nRST_STDBY option byte should be modified */ + assert_param(IS_OB_USER_STANDBY(UserConfig & FLASH_OPTR_nRST_STDBY)); + + /* Set value and mask for nRST_STDBY option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_STDBY); + optr_reg_mask |= FLASH_OPTR_nRST_STDBY; + } + + if ((UserType & OB_USER_nRST_SHDW) != 0U) + { + /* nRST_SHDW option byte should be modified */ + assert_param(IS_OB_USER_SHUTDOWN(UserConfig & FLASH_OPTR_nRST_SHDW)); + + /* Set value and mask for nRST_SHDW option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_SHDW); + optr_reg_mask |= FLASH_OPTR_nRST_SHDW; + } + + if ((UserType & OB_USER_IWDG_SW) != 0U) + { + /* IWDG_SW option byte should be modified */ + assert_param(IS_OB_USER_IWDG(UserConfig & FLASH_OPTR_IWDG_SW)); + + /* Set value and mask for IWDG_SW option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_SW); + optr_reg_mask |= FLASH_OPTR_IWDG_SW; + } + + if ((UserType & OB_USER_IWDG_STOP) != 0U) + { + /* IWDG_STOP option byte should be modified */ + assert_param(IS_OB_USER_IWDG_STOP(UserConfig & FLASH_OPTR_IWDG_STOP)); + + /* Set value and mask for IWDG_STOP option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_STOP); + optr_reg_mask |= FLASH_OPTR_IWDG_STOP; + } + + if ((UserType & OB_USER_IWDG_STDBY) != 0U) + { + /* IWDG_STDBY option byte should be modified */ + assert_param(IS_OB_USER_IWDG_STDBY(UserConfig & FLASH_OPTR_IWDG_STDBY)); + + /* Set value and mask for IWDG_STDBY option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_STDBY); + optr_reg_mask |= FLASH_OPTR_IWDG_STDBY; + } + + if ((UserType & OB_USER_WWDG_SW) != 0U) + { + /* WWDG_SW option byte should be modified */ + assert_param(IS_OB_USER_WWDG(UserConfig & FLASH_OPTR_WWDG_SW)); + + /* Set value and mask for WWDG_SW option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_WWDG_SW); + optr_reg_mask |= FLASH_OPTR_WWDG_SW; + } + +#if defined (FLASH_OPTR_BFB2) + if ((UserType & OB_USER_BFB2) != 0U) + { + /* BFB2 option byte should be modified */ + assert_param(IS_OB_USER_BFB2(UserConfig & FLASH_OPTR_BFB2)); + + /* Set value and mask for BFB2 option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_BFB2); + optr_reg_mask |= FLASH_OPTR_BFB2; + } +#endif + + if ((UserType & OB_USER_nBOOT1) != 0U) + { + /* nBOOT1 option byte should be modified */ + assert_param(IS_OB_USER_BOOT1(UserConfig & FLASH_OPTR_nBOOT1)); + + /* Set value and mask for nBOOT1 option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_nBOOT1); + optr_reg_mask |= FLASH_OPTR_nBOOT1; + } + + if ((UserType & OB_USER_SRAM_PE) != 0U) + { + /* SRAM_PE option byte should be modified */ + assert_param(IS_OB_USER_SRAM_PARITY(UserConfig & FLASH_OPTR_SRAM_PE)); + + /* Set value and mask for SRAM_PE option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_SRAM_PE); + optr_reg_mask |= FLASH_OPTR_SRAM_PE; + } + if ((UserType & OB_USER_CCMSRAM_RST) != 0U) + { + /* CCMSRAM_RST option byte should be modified */ + assert_param(IS_OB_USER_CCMSRAM_RST(UserConfig & FLASH_OPTR_CCMSRAM_RST)); + + /* Set value and mask for CCMSRAM_RST option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_CCMSRAM_RST); + optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST; + } + if ((UserType & OB_USER_nSWBOOT0) != 0U) + { + /* nSWBOOT0 option byte should be modified */ + assert_param(IS_OB_USER_SWBOOT0(UserConfig & FLASH_OPTR_nSWBOOT0)); + + /* Set value and mask for nSWBOOT0 option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_nSWBOOT0); + optr_reg_mask |= FLASH_OPTR_nSWBOOT0; + } + + if ((UserType & OB_USER_nBOOT0) != 0U) + { + /* nBOOT0 option byte should be modified */ + assert_param(IS_OB_USER_BOOT0(UserConfig & FLASH_OPTR_nBOOT0)); + + /* Set value and mask for nBOOT0 option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_nBOOT0); + optr_reg_mask |= FLASH_OPTR_nBOOT0; + } + + if ((UserType & OB_USER_NRST_MODE) != 0U) + { + /* Reset Configuration option byte should be modified */ + assert_param(IS_OB_USER_NRST_MODE(UserConfig & FLASH_OPTR_NRST_MODE)); + + /* Set value and mask for Reset Configuration option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_NRST_MODE); + optr_reg_mask |= FLASH_OPTR_NRST_MODE; + } + + if ((UserType & OB_USER_IRHEN) != 0U) + { + /* IRH option byte should be modified */ + assert_param(IS_OB_USER_IRHEN(UserConfig & FLASH_OPTR_IRHEN)); + + /* Set value and mask for IRH option byte */ + optr_reg_val |= (UserConfig & FLASH_OPTR_IRHEN); + optr_reg_mask |= FLASH_OPTR_IRHEN; + } + + /* Configure the option bytes register */ + MODIFY_REG(FLASH->OPTR, optr_reg_mask, optr_reg_val); + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } + + return status; +} + +/** + * @brief Configure the Proprietary code readout protection area into Option Bytes. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @param PCROPConfig specifies the configuration (Bank to be configured and PCROP_RDP option). + * This parameter must be a combination of FLASH_BANK_1 or FLASH_BANK_2 (*) + * with OB_PCROP_RDP_NOT_ERASE or OB_PCROP_RDP_ERASE. + * @note (*) availability depends on devices + * @param PCROPStartAddr specifies the start address of the Proprietary code readout protection. + * This parameter can be an address between begin and end of the bank. + * @param PCROPEndAddr specifies the end address of the Proprietary code readout protection. + * This parameter can be an address between PCROPStartAddr and end of the bank. + * @retval HAL_Status + */ +static HAL_StatusTypeDef FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32_t PCROPEndAddr) +{ + HAL_StatusTypeDef status; + uint32_t reg_value; + uint32_t bank1_addr; +#if defined (FLASH_OPTR_DBANK) + uint32_t bank2_addr; +#endif + + /* Check the parameters */ + assert_param(IS_FLASH_BANK_EXCLUSIVE(PCROPConfig & FLASH_BANK_BOTH)); + assert_param(IS_OB_PCROP_RDP(PCROPConfig & FLASH_PCROP1ER_PCROP_RDP)); + assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPStartAddr)); + assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPEndAddr)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { +#if defined (FLASH_OPTR_DBANK) + /* Get the information about the bank swapping */ + if (READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE) == 0U) + { + bank1_addr = FLASH_BASE; + bank2_addr = FLASH_BASE + FLASH_BANK_SIZE; + } + else + { + bank1_addr = FLASH_BASE + FLASH_BANK_SIZE; + bank2_addr = FLASH_BASE; + } +#else + bank1_addr = FLASH_BASE; +#endif + +#if defined (FLASH_OPTR_DBANK) + if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U) + { + /* Configure the Proprietary code readout protection */ + if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_1) + { + reg_value = ((PCROPStartAddr - FLASH_BASE) >> 4); + MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value); + + reg_value = ((PCROPEndAddr - FLASH_BASE) >> 4); + MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value); + } + else if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_2) + { + reg_value = ((PCROPStartAddr - FLASH_BASE) >> 4); + MODIFY_REG(FLASH->PCROP2SR, FLASH_PCROP2SR_PCROP2_STRT, reg_value); + + reg_value = ((PCROPEndAddr - FLASH_BASE) >> 4); + MODIFY_REG(FLASH->PCROP2ER, FLASH_PCROP2ER_PCROP2_END, reg_value); + } + else + { + /* Nothing to do */ + } + } + else +#endif + { + /* Configure the Proprietary code readout protection */ + if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_1) + { + reg_value = ((PCROPStartAddr - bank1_addr) >> 3); + MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value); + + reg_value = ((PCROPEndAddr - bank1_addr) >> 3); + MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value); + } +#if defined (FLASH_OPTR_DBANK) + else if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_2) + { + reg_value = ((PCROPStartAddr - bank2_addr) >> 3); + MODIFY_REG(FLASH->PCROP2SR, FLASH_PCROP2SR_PCROP2_STRT, reg_value); + + reg_value = ((PCROPEndAddr - bank2_addr) >> 3); + MODIFY_REG(FLASH->PCROP2ER, FLASH_PCROP2ER_PCROP2_END, reg_value); + } +#endif + else + { + /* Nothing to do */ + } + } + + MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP_RDP, (PCROPConfig & FLASH_PCROP1ER_PCROP_RDP)); + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } + + return status; +} + +/** + * @brief Configure the Securable memory area into Option Bytes. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @param SecBank specifies bank of securable memory area to be configured. + * This parameter can be one of the following values: + * @arg FLASH_BANK_1: Securable memory in Bank1 to be configured + * @arg FLASH_BANK_2: Securable memory in Bank2 to be configured (*) + * @note (*) availability depends on devices + * @param SecSize specifies the number of pages of the Securable memory area, + * starting from first page of the bank. + * This parameter can be page number between 0 and (max number of pages in the bank - 1) + * @retval HAL Status + */ +static HAL_StatusTypeDef FLASH_OB_SecMemConfig(uint32_t SecBank, uint32_t SecSize) +{ + HAL_StatusTypeDef status; + + /* Check the parameters */ + assert_param(IS_FLASH_BANK_EXCLUSIVE(SecBank)); + assert_param(IS_OB_SECMEM_SIZE(SecSize)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + /* Configure the write protected area */ + if (SecBank == FLASH_BANK_1) + { + MODIFY_REG(FLASH->SEC1R, FLASH_SEC1R_SEC_SIZE1, SecSize); + } +#if defined (FLASH_OPTR_DBANK) + else if (SecBank == FLASH_BANK_2) + { + MODIFY_REG(FLASH->SEC2R, FLASH_SEC2R_SEC_SIZE2, SecSize); + } + else + { + /* Nothing to do */ + } +#endif + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } + + return status; +} + +/** + * @brief Configure the Boot Lock into Option Bytes. + * @note To configure any option bytes, the option lock bit OPTLOCK must be + * cleared with the call of HAL_FLASH_OB_Unlock() function. + * @note New option bytes configuration will be taken into account in two cases: + * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + * @param BootLockConfig specifies the boot lock configuration. + * This parameter can be one of the following values: + * @arg OB_BOOT_LOCK_ENABLE: Enable Boot Lock + * @arg OB_BOOT_LOCK_DISABLE: Disable Boot Lock + * + * @retval HAL_Status + */ +static HAL_StatusTypeDef FLASH_OB_BootLockConfig(uint32_t BootLockConfig) +{ + HAL_StatusTypeDef status; + + /* Check the parameters */ + assert_param(IS_OB_BOOT_LOCK(BootLockConfig)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + MODIFY_REG(FLASH->SEC1R, FLASH_SEC1R_BOOT_LOCK, BootLockConfig); + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } + + return status; +} + +/** + * @brief Return the Securable memory area configuration into Option Bytes. + * @param[in] SecBank specifies the bank where securable memory area is located. + * This parameter can be one of the following values: + * @arg FLASH_BANK_1: Securable memory in Bank1 + * @arg FLASH_BANK_2: Securable memory in Bank2 (*) + * @note (*) availability depends on devices + * @param[out] SecSize specifies the number of pages used in the securable + memory area of the bank. + * @retval None + */ +static void FLASH_OB_GetSecMem(uint32_t SecBank, uint32_t *SecSize) +{ + /* Get the configuration of the securable memory area */ + if (SecBank == FLASH_BANK_1) + { + *SecSize = READ_BIT(FLASH->SEC1R, FLASH_SEC1R_SEC_SIZE1); + } +#if defined (FLASH_OPTR_DBANK) + else if (SecBank == FLASH_BANK_2) + { + *SecSize = READ_BIT(FLASH->SEC2R, FLASH_SEC2R_SEC_SIZE2); + } + else + { + /* Nothing to do */ + } +#endif +} + +/** + * @brief Return the Boot Lock configuration into Option Byte. + * @retval BootLockConfig. + * This return value can be one of the following values: + * @arg OB_BOOT_LOCK_ENABLE: Boot lock enabled + * @arg OB_BOOT_LOCK_DISABLE: Boot lock disabled + */ +static uint32_t FLASH_OB_GetBootLock(void) +{ + return (READ_REG(FLASH->SEC1R) & FLASH_SEC1R_BOOT_LOCK); +} + +/** + * @brief Return the Write Protection configuration into Option Bytes. + * @param[in] WRPArea specifies the area to be returned. + * This parameter can be one of the following values: + * @arg OB_WRPAREA_BANK1_AREAA: Flash Bank 1 Area A + * @arg OB_WRPAREA_BANK1_AREAB: Flash Bank 1 Area B + * @arg OB_WRPAREA_BANK2_AREAA: Flash Bank 2 Area A (don't apply to STM32G43x/STM32G44x devices) + * @arg OB_WRPAREA_BANK2_AREAB: Flash Bank 2 Area B (don't apply to STM32G43x/STM32G44x devices) + * @param[out] WRPStartOffset specifies the address where to copied the start page + * of the write protected area. + * @param[out] WRDPEndOffset specifies the address where to copied the end page of + * the write protected area. + * @retval None + */ +static void FLASH_OB_GetWRP(uint32_t WRPArea, uint32_t *WRPStartOffset, uint32_t *WRDPEndOffset) +{ + /* Get the configuration of the write protected area */ + if (WRPArea == OB_WRPAREA_BANK1_AREAA) + { + *WRPStartOffset = READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_STRT); + *WRDPEndOffset = (READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_END) >> FLASH_WRP1AR_WRP1A_END_Pos); + } + else if (WRPArea == OB_WRPAREA_BANK1_AREAB) + { + *WRPStartOffset = READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_STRT); + *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos); + } +#if defined (FLASH_OPTR_DBANK) + else if (WRPArea == OB_WRPAREA_BANK2_AREAA) + { + *WRPStartOffset = READ_BIT(FLASH->WRP2AR, FLASH_WRP2AR_WRP2A_STRT); + *WRDPEndOffset = (READ_BIT(FLASH->WRP2AR, FLASH_WRP2AR_WRP2A_END) >> FLASH_WRP2AR_WRP2A_END_Pos); + } + else if (WRPArea == OB_WRPAREA_BANK2_AREAB) + { + *WRPStartOffset = READ_BIT(FLASH->WRP2BR, FLASH_WRP2BR_WRP2B_STRT); + *WRDPEndOffset = (READ_BIT(FLASH->WRP2BR, FLASH_WRP2BR_WRP2B_END) >> FLASH_WRP2BR_WRP2B_END_Pos); + } +#endif + else + { + /* Nothing to do */ + } +} + +/** + * @brief Return the FLASH Read Protection level into Option Bytes. + * @retval RDP_Level + * This return value can be one of the following values: + * @arg OB_RDP_LEVEL_0: No protection + * @arg OB_RDP_LEVEL_1: Read protection of the memory + * @arg OB_RDP_LEVEL_2: Full chip protection + */ +static uint32_t FLASH_OB_GetRDP(void) +{ + uint32_t rdp_level = READ_BIT(FLASH->OPTR, FLASH_OPTR_RDP); + + if ((rdp_level != OB_RDP_LEVEL_0) && (rdp_level != OB_RDP_LEVEL_2)) + { + return (OB_RDP_LEVEL_1); + } + else + { + return rdp_level; + } +} + +/** + * @brief Return the FLASH User Option Byte value. + * @retval OB_user_config + * This return value is a combination of @ref FLASH_OB_USER_BOR_LEVEL, + * @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY, + * @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW, + * @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY, + * @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_WWDG_SW, + * @ref FLASH_OB_USER_BFB2 (*), @ref FLASH_OB_USER_DBANK (*), + * @ref FLASH_OB_USER_nBOOT1, @ref FLASH_OB_USER_SRAM_PE, + * @ref FLASH_OB_USER_CCMSRAM_RST, @ref OB_USER_nSWBOOT0,@ref FLASH_OB_USER_nBOOT0, + * @ref FLASH_OB_USER_NRST_MODE, @ref FLASH_OB_USER_INTERNAL_RESET_HOLDER + * @note (*) availability depends on devices + */ +static uint32_t FLASH_OB_GetUser(void) +{ + uint32_t user_config = READ_REG(FLASH->OPTR); + CLEAR_BIT(user_config, FLASH_OPTR_RDP); + + return user_config; +} + +/** + * @brief Return the FLASH PCROP configuration into Option Bytes. + * @param[in,out] PCROPConfig specifies the configuration (Bank to be configured and PCROP_RDP option). + * This parameter must be a combination of FLASH_BANK_1 or FLASH_BANK_2 + * with OB_PCROP_RDP_NOT_ERASE or OB_PCROP_RDP_ERASE. + * @param[out] PCROPStartAddr specifies the address where to copied the start address + * of the Proprietary code readout protection. + * @param[out] PCROPEndAddr specifies the address where to copied the end address of + * the Proprietary code readout protection. + * @retval None + */ +static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_t *PCROPEndAddr) +{ + uint32_t reg_value; + uint32_t bank1_addr; +#if defined (FLASH_OPTR_DBANK) + uint32_t bank2_addr; + + /* Get the information about the bank swapping */ + if (READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE) == 0U) + { + bank1_addr = FLASH_BASE; + bank2_addr = FLASH_BASE + FLASH_BANK_SIZE; + } + else + { + bank1_addr = FLASH_BASE + FLASH_BANK_SIZE; + bank2_addr = FLASH_BASE; + } +#else + bank1_addr = FLASH_BASE; +#endif + +#if defined (FLASH_OPTR_DBANK) + if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U) + { + if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_1) + { + reg_value = (READ_REG(FLASH->PCROP1SR) & FLASH_PCROP1SR_PCROP1_STRT); + *PCROPStartAddr = (reg_value << 4) + FLASH_BASE; + + reg_value = (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP1_END); + *PCROPEndAddr = (reg_value << 4) + FLASH_BASE; + } + else if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_2) + { + reg_value = (READ_REG(FLASH->PCROP2SR) & FLASH_PCROP2SR_PCROP2_STRT); + *PCROPStartAddr = (reg_value << 4) + FLASH_BASE; + + reg_value = (READ_REG(FLASH->PCROP2ER) & FLASH_PCROP2ER_PCROP2_END); + *PCROPEndAddr = (reg_value << 4) + FLASH_BASE; + } + else + { + /* Nothing to do */ + } + } + else +#endif + { + if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_1) + { + reg_value = (READ_REG(FLASH->PCROP1SR) & FLASH_PCROP1SR_PCROP1_STRT); + *PCROPStartAddr = (reg_value << 3) + bank1_addr; + + reg_value = (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP1_END); + *PCROPEndAddr = (reg_value << 3) + bank1_addr; + } +#if defined (FLASH_OPTR_DBANK) + else if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_2) + { + reg_value = (READ_REG(FLASH->PCROP2SR) & FLASH_PCROP2SR_PCROP2_STRT); + *PCROPStartAddr = (reg_value << 3) + bank2_addr; + + reg_value = (READ_REG(FLASH->PCROP2ER) & FLASH_PCROP2ER_PCROP2_END); + *PCROPEndAddr = (reg_value << 3) + bank2_addr; + } +#endif + else + { + /* Nothing to do */ + } + } + + *PCROPConfig |= (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP_RDP); +} +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.c new file mode 100644 index 0000000..a74120a --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.c @@ -0,0 +1,253 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_flash_ramfunc.c + * @author MCD Application Team + * @brief FLASH RAMFUNC driver. + * This file provides a Flash firmware functions which should be + * executed from internal SRAM + * + FLASH Power Down in Run mode + * + FLASH DBANK User Option Byte + * + * + @verbatim + ============================================================================== + ##### Flash RAM functions ##### + ============================================================================== + + *** ARM Compiler *** + -------------------- + [..] RAM functions are defined using the toolchain options. + Functions that are executed in RAM should reside in a separate + source module. Using the 'Options for File' dialog you can simply change + the 'Code / Const' area of a module to a memory space in physical RAM. + Available memory areas are declared in the 'Target' tab of the + Options for Target' dialog. + + *** ICCARM Compiler *** + ----------------------- + [..] RAM functions are defined using a specific toolchain keyword "__ramfunc". + + *** GNU Compiler *** + -------------------- + [..] RAM functions are defined using a specific toolchain attribute + "__attribute__((section(".RamFunc")))". + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup FLASH_RAMFUNC FLASH_RAMFUNC + * @brief FLASH functions executed from RAM + * @{ + */ + +#ifdef HAL_FLASH_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions -------------------------------------------------------*/ + +/** @defgroup FLASH_RAMFUNC_Exported_Functions FLASH_RAMFUNC Exported Functions + * @{ + */ + +/** @defgroup FLASH_RAMFUNC_Exported_Functions_Group1 Peripheral features functions + * @brief Data transfers functions + * +@verbatim + =============================================================================== + ##### ramfunc functions ##### + =============================================================================== + [..] + This subsection provides a set of functions that should be executed from RAM. + +@endverbatim + * @{ + */ + +/** + * @brief Enable the Power down in Run Mode + * @note This function should be called and executed from SRAM memory. + * @retval None + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableRunPowerDown(void) +{ + /* Enable the Power Down in Run mode*/ + __HAL_FLASH_POWER_DOWN_ENABLE(); + + return HAL_OK; + +} + +/** + * @brief Disable the Power down in Run Mode + * @note This function should be called and executed from SRAM memory. + * @retval None + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableRunPowerDown(void) +{ + /* Disable the Power Down in Run mode*/ + __HAL_FLASH_POWER_DOWN_DISABLE(); + + return HAL_OK; +} + +#if defined (FLASH_OPTR_DBANK) +/** + * @brief Program the FLASH DBANK User Option Byte. + * + * @note To configure the user option bytes, the option lock bit OPTLOCK must + * be cleared with the call of the HAL_FLASH_OB_Unlock() function. + * @note To modify the DBANK option byte, no PCROP region should be defined. + * To deactivate PCROP, user should perform RDP changing. + * + * @param DBankConfig The FLASH DBANK User Option Byte value. + * This parameter can be one of the following values: + * @arg OB_DBANK_128_BITS: Single-bank with 128-bits data + * @arg OB_DBANK_64_BITS: Dual-bank with 64-bits data + * + * @retval HAL_Status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_OB_DBankConfig(uint32_t DBankConfig) +{ + uint32_t count, reg; + HAL_StatusTypeDef status = HAL_ERROR; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check if the PCROP is disabled */ + reg = FLASH->PCROP1SR; + if (reg > FLASH->PCROP1ER) + { + reg = FLASH->PCROP2SR; + if (reg > FLASH->PCROP2ER) + { + /* Disable Flash prefetch */ + __HAL_FLASH_PREFETCH_BUFFER_DISABLE(); + + if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U) + { + /* Disable Flash instruction cache */ + __HAL_FLASH_INSTRUCTION_CACHE_DISABLE(); + + /* Flush Flash instruction cache */ + __HAL_FLASH_INSTRUCTION_CACHE_RESET(); + } + + if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + { + /* Disable Flash data cache */ + __HAL_FLASH_DATA_CACHE_DISABLE(); + + /* Flush Flash data cache */ + __HAL_FLASH_DATA_CACHE_RESET(); + } + + /* Disable WRP zone A of 1st bank if needed */ + reg = FLASH->WRP1AR; + if (((reg & FLASH_WRP1AR_WRP1A_STRT) >> FLASH_WRP1AR_WRP1A_STRT_Pos) <= + ((reg & FLASH_WRP1AR_WRP1A_END) >> FLASH_WRP1AR_WRP1A_END_Pos)) + { + MODIFY_REG(FLASH->WRP1AR, (FLASH_WRP1AR_WRP1A_STRT | FLASH_WRP1AR_WRP1A_END), FLASH_WRP1AR_WRP1A_STRT); + } + + /* Disable WRP zone B of 1st bank if needed */ + reg = FLASH->WRP1BR; + if (((reg & FLASH_WRP1BR_WRP1B_STRT) >> FLASH_WRP1BR_WRP1B_STRT_Pos) <= + ((reg & FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos)) + { + MODIFY_REG(FLASH->WRP1BR, (FLASH_WRP1BR_WRP1B_STRT | FLASH_WRP1BR_WRP1B_END), FLASH_WRP1BR_WRP1B_STRT); + } + + /* Disable WRP zone A of 2nd bank if needed */ + reg = FLASH->WRP2AR; + if (((reg & FLASH_WRP2AR_WRP2A_STRT) >> FLASH_WRP2AR_WRP2A_STRT_Pos) <= + ((reg & FLASH_WRP2AR_WRP2A_END) >> FLASH_WRP2AR_WRP2A_END_Pos)) + { + MODIFY_REG(FLASH->WRP2AR, (FLASH_WRP2AR_WRP2A_STRT | FLASH_WRP2AR_WRP2A_END), FLASH_WRP2AR_WRP2A_STRT); + } + + /* Disable WRP zone B of 2nd bank if needed */ + reg = FLASH->WRP2BR; + if (((reg & FLASH_WRP2BR_WRP2B_STRT) >> FLASH_WRP2BR_WRP2B_STRT_Pos) <= + ((reg & FLASH_WRP2BR_WRP2B_END) >> FLASH_WRP2BR_WRP2B_END_Pos)) + { + MODIFY_REG(FLASH->WRP2BR, (FLASH_WRP2BR_WRP2B_STRT | FLASH_WRP2BR_WRP2B_END), FLASH_WRP2BR_WRP2B_STRT); + } + + /* Modify the DBANK user option byte */ + MODIFY_REG(FLASH->OPTR, FLASH_OPTR_DBANK, DBankConfig); + + /* Set OPTSTRT Bit */ + SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Wait for last operation to be completed */ + /* 8 is the number of required instruction cycles for the below loop statement (timeout expressed in ms) */ + count = FLASH_TIMEOUT_VALUE * (SystemCoreClock / 8U / 1000U); + do + { + if (count == 0U) + { + break; + } + count--; + } + while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET); + + /* If the option byte program operation is completed, disable the OPTSTRT Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + + /* Set the bit to force the option byte reloading */ + SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH); + } + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} +#endif + +/** + * @} + */ + +/** + * @} + */ +#endif /* HAL_FLASH_MODULE_ENABLED */ + + + +/** + * @} + */ + +/** + * @} + */ + + + + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c new file mode 100644 index 0000000..cd8876a --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c @@ -0,0 +1,532 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_gpio.c + * @author MCD Application Team + * @brief GPIO HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the General Purpose Input/Output (GPIO) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### GPIO Peripheral features ##### + ============================================================================== + [..] + (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually + configured by software in several modes: + (++) Input mode + (++) Analog mode + (++) Output mode + (++) Alternate function mode + (++) External interrupt/event lines + + (+) During and just after reset, the alternate functions and external interrupt + lines are not active and the I/O ports are configured in input floating mode. + + (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be + activated or not. + + (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull + type and the IO speed can be selected depending on the VDD value. + + (+) The microcontroller IO pins are connected to onboard peripherals/modules through a + multiplexer that allows only one peripheral alternate function (AF) connected + to an IO pin at a time. In this way, there can be no conflict between peripherals + sharing the same IO pin. + + (+) All ports have external interrupt/event capability. To use external interrupt + lines, the port must be configured in input mode. All available GPIO pins are + connected to the 16 external interrupt/event lines from EXTI0 to EXTI15. + + (+) The external interrupt/event controller consists of up to 44 edge detectors + (16 lines are connected to GPIO) for generating event/interrupt requests (each + input line can be independently configured to select the type (interrupt or event) + and the corresponding trigger event (rising or falling or both). Each line can + also be masked independently. + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE(). + + (#) Configure the GPIO pin(s) using HAL_GPIO_Init(). + (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure + (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef + structure. + (++) In case of Output or alternate function mode selection: the speed is + configured through "Speed" member from GPIO_InitTypeDef structure. + (++) In alternate mode is selection, the alternate function connected to the IO + is configured through "Alternate" member from GPIO_InitTypeDef structure. + (++) Analog mode is required when a pin is to be used as ADC channel + or DAC output. + (++) In case of external interrupt/event selection the "Mode" member from + GPIO_InitTypeDef structure select the type (interrupt or event) and + the corresponding trigger event (rising or falling or both). + + (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority + mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using + HAL_NVIC_EnableIRQ(). + + (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin(). + + (#) To set/reset the level of a pin configured in output mode use + HAL_GPIO_WritePin()/HAL_GPIO_TogglePin(). + + (#) To lock pin configuration until next reset use HAL_GPIO_LockPin(). + + (#) During and just after reset, the alternate functions are not + active and the GPIO pins are configured in input floating mode (except JTAG + pins). + + (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose + (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has + priority over the GPIO function. + + (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as + general purpose PF0 and PF1, respectively, when the HSE oscillator is off. + The HSE has priority over the GPIO function. + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @addtogroup GPIO + * @{ + */ +/** MISRA C:2012 deviation rule has been granted for following rules: + * Rule-12.2 - Medium: RHS argument is in interval [0,INF] which is out of + * range of the shift operator in following API : + * HAL_GPIO_Init + * HAL_GPIO_DeInit + */ + +#ifdef HAL_GPIO_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private defines -----------------------------------------------------------*/ +/** @addtogroup GPIO_Private_Constants GPIO Private Constants + * @{ + */ +#define GPIO_NUMBER (16U) +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup GPIO_Exported_Functions + * @{ + */ + +/** @defgroup GPIO_Exported_Functions_Group1 Initialization/de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + +@endverbatim + * @{ + */ + +/** + * @brief Initialize the GPIOx peripheral according to the specified parameters in the GPIO_Init. + * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains + * the configuration information for the specified GPIO peripheral. + * @retval None + */ +void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) +{ + uint32_t position = 0x00U; + uint32_t iocurrent; + uint32_t temp; + + /* Check the parameters */ + assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); + assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); + + /* Configure the port pins */ + while (((GPIO_Init->Pin) >> position) != 0U) + { + /* Get current io position */ + iocurrent = (GPIO_Init->Pin) & (1UL << position); + + if (iocurrent != 0x00u) + { + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Output or Alternate function mode selection */ + if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U)); + temp |= (GPIO_Init->Speed << (position * 2U)); + GPIOx->OSPEEDR = temp; + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + temp &= ~(GPIO_OTYPER_OT0 << position) ; + temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + GPIOx->OTYPER = temp; + } + + if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + { + /* Check the Pull parameter */ + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + + /* Activate the Pull-up or Pull down resistor for the current IO */ + temp = GPIOx->PUPDR; + temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); + temp |= ((GPIO_Init->Pull) << (position * 2U)); + GPIOx->PUPDR = temp; + } + + /* In case of Alternate function mode selection */ + if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + { + /* Check the Alternate function parameters */ + assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + + /* Configure Alternate function mapped with the current IO */ + temp = GPIOx->AFR[position >> 3U]; + temp &= ~(0xFU << ((position & 0x07U) * 4U)); + temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U)); + GPIOx->AFR[position >> 3U] = temp; + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + temp &= ~(GPIO_MODER_MODE0 << (position * 2U)); + temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + GPIOx->MODER = temp; + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u) + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + + temp = SYSCFG->EXTICR[position >> 2U]; + temp &= ~(0x0FUL << (4U * (position & 0x03U))); + temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + SYSCFG->EXTICR[position >> 2U] = temp; + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR1; + temp &= ~(iocurrent); + if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) + { + temp |= iocurrent; + } + EXTI->RTSR1 = temp; + + temp = EXTI->FTSR1; + temp &= ~(iocurrent); + if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) + { + temp |= iocurrent; + } + EXTI->FTSR1 = temp; + + temp = EXTI->EMR1; + temp &= ~(iocurrent); + if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) + { + temp |= iocurrent; + } + EXTI->EMR1 = temp; + + /* Clear EXTI line configuration */ + temp = EXTI->IMR1; + temp &= ~(iocurrent); + if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) + { + temp |= iocurrent; + } + EXTI->IMR1 = temp; + } + } + + position++; + } +} + +/** + * @brief De-initialize the GPIOx peripheral registers to their default reset values. + * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + * @param GPIO_Pin specifies the port bit to be written. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + * @retval None + */ +void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) +{ + uint32_t position = 0x00U; + uint32_t iocurrent; + uint32_t tmp; + + /* Check the parameters */ + assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + /* Configure the port pins */ + while ((GPIO_Pin >> position) != 0U) + { + /* Get current io position */ + iocurrent = (GPIO_Pin) & (1UL << position); + + if (iocurrent != 0x00u) + { + /*------------------------- EXTI Mode Configuration --------------------*/ + /* Clear the External Interrupt or Event for the current IO */ + + tmp = SYSCFG->EXTICR[position >> 2U]; + tmp &= (0x0FUL << (4U * (position & 0x03U))); + if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + { + /* Clear EXTI line configuration */ + EXTI->IMR1 &= ~(iocurrent); + EXTI->EMR1 &= ~(iocurrent); + + /* Clear Rising Falling edge configuration */ + EXTI->FTSR1 &= ~(iocurrent); + EXTI->RTSR1 &= ~(iocurrent); + + tmp = 0x0FUL << (4U * (position & 0x03U)); + SYSCFG->EXTICR[position >> 2U] &= ~tmp; + } + + /*------------------------- GPIO Mode Configuration --------------------*/ + /* Configure IO in Analog Mode */ + GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2u)); + + /* Configure the default Alternate Function in current IO */ + GPIOx->AFR[position >> 3u] &= ~(0xFu << ((position & 0x07u) * 4u)); + + /* Deactivate the Pull-up and Pull-down resistor for the current IO */ + GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2u)); + + /* Configure the default value IO Output Type */ + GPIOx->OTYPER &= ~(GPIO_OTYPER_OT0 << position); + + /* Configure the default value for IO Speed */ + GPIOx->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2u)); + } + + position++; + } +} + +/** + * @} + */ + +/** @addtogroup GPIO_Exported_Functions_Group2 + * @brief GPIO Read, Write, Toggle, Lock and EXTI management functions. + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + +@endverbatim + * @{ + */ + +/** + * @brief Read the specified input port pin. + * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + * @param GPIO_Pin specifies the port bit to read. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + * @retval The input port pin value. + */ +GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + GPIO_PinState bitstatus; + + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + if ((GPIOx->IDR & GPIO_Pin) != 0x00U) + { + bitstatus = GPIO_PIN_SET; + } + else + { + bitstatus = GPIO_PIN_RESET; + } + return bitstatus; +} + +/** + * @brief Set or clear the selected data port bit. + * + * @note This function uses GPIOx_BSRR and GPIOx_BRR registers to allow atomic read/modify + * accesses. In this way, there is no risk of an IRQ occurring between + * the read and the modify access. + * + * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + * @param GPIO_Pin specifies the port bit to be written. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + * @param PinState specifies the value to be written to the selected bit. + * This parameter can be one of the GPIO_PinState enum values: + * @arg GPIO_PIN_RESET: to clear the port pin + * @arg GPIO_PIN_SET: to set the port pin + * @retval None + */ +void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) +{ + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + assert_param(IS_GPIO_PIN_ACTION(PinState)); + + if (PinState != GPIO_PIN_RESET) + { + GPIOx->BSRR = (uint32_t)GPIO_Pin; + } + else + { + GPIOx->BRR = (uint32_t)GPIO_Pin; + } +} + +/** + * @brief Toggle the specified GPIO pin. + * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + * @param GPIO_Pin specifies the pin to be toggled. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + * @retval None + */ +void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + uint32_t odr; + + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + /* get current Output Data Register value */ + odr = GPIOx->ODR; + + /* Set selected pins that were at low level, and reset ones that were high */ + GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin); +} + +/** + * @brief Lock GPIO Pins configuration registers. + * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, + * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH. + * @note The configuration of the locked GPIO pins can no longer be modified + * until the next reset. + * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + * @param GPIO_Pin specifies the port bits to be locked. + * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + * @retval None + */ +HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) +{ + __IO uint32_t tmp = GPIO_LCKR_LCKK; + + /* Check the parameters */ + assert_param(IS_GPIO_LOCK_INSTANCE(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + /* Apply lock key write sequence */ + tmp |= GPIO_Pin; + /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */ + GPIOx->LCKR = tmp; + /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */ + GPIOx->LCKR = GPIO_Pin; + /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */ + GPIOx->LCKR = tmp; + /* Read LCKK register. This read is mandatory to complete key lock sequence */ + tmp = GPIOx->LCKR; + + /* read again in order to confirm lock is active */ + if ((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00u) + { + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Handle EXTI interrupt request. + * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. + * @retval None + */ +void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) +{ + /* EXTI line interrupt detected */ + if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u) + { + __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); + HAL_GPIO_EXTI_Callback(GPIO_Pin); + } +} + +/** + * @brief EXTI line detection callback. + * @param GPIO_Pin: Specifies the port pin connected to corresponding EXTI line. + * @retval None + */ +__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(GPIO_Pin); + + /* NOTE: This function should not be modified, when the callback is needed, + the HAL_GPIO_EXTI_Callback could be implemented in the user file + */ +} + +/** + * @} + */ + + +/** + * @} + */ + +#endif /* HAL_GPIO_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c new file mode 100644 index 0000000..4ba4a38 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c @@ -0,0 +1,652 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_pwr.c + * @author MCD Application Team + * @brief PWR HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Power Controller (PWR) peripheral: + * + Initialization/de-initialization functions + * + Peripheral Control functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup PWR PWR + * @brief PWR HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup PWR_Private_Defines PWR Private Defines + * @{ + */ + +/** @defgroup PWR_PVD_Mode_Mask PWR PVD Mode Mask + * @{ + */ +#define PVD_MODE_IT ((uint32_t)0x00010000) /*!< Mask for interruption yielded by PVD threshold crossing */ +#define PVD_MODE_EVT ((uint32_t)0x00020000) /*!< Mask for event yielded by PVD threshold crossing */ +#define PVD_RISING_EDGE ((uint32_t)0x00000001) /*!< Mask for rising edge set as PVD trigger */ +#define PVD_FALLING_EDGE ((uint32_t)0x00000002) /*!< Mask for falling edge set as PVD trigger */ +/** + * @} + */ + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @defgroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and de-initialization functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] + +@endverbatim + * @{ + */ + +/** + * @brief Deinitialize the HAL PWR peripheral registers to their default reset values. + * @retval None + */ +void HAL_PWR_DeInit(void) +{ + __HAL_RCC_PWR_FORCE_RESET(); + __HAL_RCC_PWR_RELEASE_RESET(); +} + +/** + * @brief Enable access to the backup domain + * (RTC registers, RTC backup data registers). + * @note After reset, the backup domain is protected against + * possible unwanted write accesses. + * @note RTCSEL that sets the RTC clock source selection is in the RTC back-up domain. + * In order to set or modify the RTC clock, the backup domain access must be + * disabled. + * @note LSEON bit that switches on and off the LSE crystal belongs as well to the + * back-up domain. + * @retval None + */ +void HAL_PWR_EnableBkUpAccess(void) +{ + SET_BIT(PWR->CR1, PWR_CR1_DBP); +} + +/** + * @brief Disable access to the backup domain + * (RTC registers, RTC backup data registers). + * @retval None + */ +void HAL_PWR_DisableBkUpAccess(void) +{ + CLEAR_BIT(PWR->CR1, PWR_CR1_DBP); +} + + + + +/** + * @} + */ + + + +/** @defgroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @brief Low Power modes configuration functions + * +@verbatim + + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + + [..] + *** PVD configuration *** + ========================= + [..] + (+) The PVD is used to monitor the VDD power supply by comparing it to a + threshold selected by the PVD Level (PLS[2:0] bits in PWR_CR2 register). + + (+) PVDO flag is available to indicate if VDD/VDDA is higher or lower + than the PVD threshold. This event is internally connected to the EXTI + line16 and can generate an interrupt if enabled. This is done through + __HAL_PVD_EXTI_ENABLE_IT() macro. + (+) The PVD is stopped in Standby mode. + + + *** WakeUp pin configuration *** + ================================ + [..] + (+) WakeUp pins are used to wakeup the system from Standby mode or Shutdown mode. + The polarity of these pins can be set to configure event detection on high + level (rising edge) or low level (falling edge). + + + + *** Low Power modes configuration *** + ===================================== + [..] + The devices feature 8 low-power modes: + (+) Low-power Run mode: core and peripherals are running, main regulator off, low power regulator on. + (+) Sleep mode: Cortex-M4 core stopped, peripherals kept running, main and low power regulators on. + (+) Low-power Sleep mode: Cortex-M4 core stopped, peripherals kept running, main regulator off, low power regulator on. + (+) Stop 0 mode: all clocks are stopped except LSI and LSE, main and low power regulators on. + (+) Stop 1 mode: all clocks are stopped except LSI and LSE, main regulator off, low power regulator on. + (+) Standby mode with SRAM2: all clocks are stopped except LSI and LSE, SRAM2 content preserved, main regulator off, low power regulator on. + (+) Standby mode without SRAM2: all clocks are stopped except LSI and LSE, main and low power regulators off. + (+) Shutdown mode: all clocks are stopped except LSE, main and low power regulators off. + + + *** Low-power run mode *** + ========================== + [..] + (+) Entry: (from main run mode) + (++) set LPR bit with HAL_PWREx_EnableLowPowerRunMode() API after having decreased the system clock below 2 MHz. + + (+) Exit: + (++) clear LPR bit then wait for REGLP bit to be reset with HAL_PWREx_DisableLowPowerRunMode() API. Only + then can the system clock frequency be increased above 2 MHz. + + + *** Sleep mode / Low-power sleep mode *** + ========================================= + [..] + (+) Entry: + The Sleep mode / Low-power Sleep mode is entered through HAL_PWR_EnterSLEEPMode() API + in specifying whether or not the regulator is forced to low-power mode and if exit is interrupt or event-triggered. + (++) PWR_MAINREGULATOR_ON: Sleep mode (regulator in main mode). + (++) PWR_LOWPOWERREGULATOR_ON: Low-power sleep (regulator in low power mode). + In the latter case, the system clock frequency must have been decreased below 2 MHz beforehand. + (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + + (+) WFI Exit: + (++) Any peripheral interrupt acknowledged by the nested vectored interrupt + controller (NVIC) or any wake-up event. + + (+) WFE Exit: + (++) Any wake-up event such as an EXTI line configured in event mode. + + [..] When exiting the Low-power sleep mode by issuing an interrupt or a wakeup event, + the MCU is in Low-power Run mode. + + *** Stop 0, Stop 1 modes *** + =============================== + [..] + (+) Entry: + The Stop 0, Stop 1 modes are entered through the following API's: + (++) HAL_PWREx_EnterSTOP0Mode() for mode 0 or HAL_PWREx_EnterSTOP1Mode() for mode 1 or for porting reasons HAL_PWR_EnterSTOPMode(). + (+) Regulator setting (applicable to HAL_PWR_EnterSTOPMode() only): + (++) PWR_MAINREGULATOR_ON + (++) PWR_LOWPOWERREGULATOR_ON + (+) Exit (interrupt or event-triggered, specified when entering STOP mode): + (++) PWR_STOPENTRY_WFI: enter Stop mode with WFI instruction + (++) PWR_STOPENTRY_WFE: enter Stop mode with WFE instruction + + (+) WFI Exit: + (++) Any EXTI Line (Internal or External) configured in Interrupt mode. + (++) Some specific communication peripherals (USART, LPUART, I2C) interrupts + when programmed in wakeup mode. + (+) WFE Exit: + (++) Any EXTI Line (Internal or External) configured in Event mode. + + [..] + When exiting Stop 0 and Stop 1 modes, the MCU is either in Run mode or in Low-power Run mode + depending on the LPR bit setting. + + *** Standby mode *** + ==================== + [..] + The Standby mode offers two options: + (+) option a) all clocks off except LSI and LSE, RRS bit set (keeps voltage regulator in low power mode). + SRAM and registers contents are lost except for the SRAM2 content, the RTC registers, RTC backup registers + and Standby circuitry. + (+) option b) all clocks off except LSI and LSE, RRS bit cleared (voltage regulator then disabled). + SRAM and register contents are lost except for the RTC registers, RTC backup registers + and Standby circuitry. + + (++) Entry: + (+++) The Standby mode is entered through HAL_PWR_EnterSTANDBYMode() API. + SRAM1 and register contents are lost except for registers in the Backup domain and + Standby circuitry. SRAM2 content can be preserved if the bit RRS is set in PWR_CR3 register. + To enable this feature, the user can resort to HAL_PWREx_EnableSRAM2ContentRetention() API + to set RRS bit. + + (++) Exit: + (+++) WKUP pin rising edge, RTC alarm or wakeup, tamper event, time-stamp event, + external reset in NRST pin, IWDG reset. + + [..] After waking up from Standby mode, program execution restarts in the same way as after a Reset. + + + *** Shutdown mode *** + ====================== + [..] + In Shutdown mode, + voltage regulator is disabled, all clocks are off except LSE, RRS bit is cleared. + SRAM and registers contents are lost except for backup domain registers. + + (+) Entry: + The Shutdown mode is entered through HAL_PWREx_EnterSHUTDOWNMode() API. + + (+) Exit: + (++) WKUP pin rising edge, RTC alarm or wakeup, tamper event, time-stamp event, + external reset in NRST pin. + + [..] After waking up from Shutdown mode, program execution restarts in the same way as after a Reset. + + + *** Auto-wakeup (AWU) from low-power mode *** + ============================================= + [..] + The MCU can be woken up from low-power mode by an RTC Alarm event, an RTC + Wakeup event, a tamper event or a time-stamp event, without depending on + an external interrupt (Auto-wakeup mode). + + (+) RTC auto-wakeup (AWU) from the Stop, Standby and Shutdown modes + + + (++) To wake up from the Stop mode with an RTC alarm event, it is necessary to + configure the RTC to generate the RTC alarm using the HAL_RTC_SetAlarm_IT() function. + + (++) To wake up from the Stop mode with an RTC Tamper or time stamp event, it + is necessary to configure the RTC to detect the tamper or time stamp event using the + HAL_RTCEx_SetTimeStamp_IT() or HAL_RTCEx_SetTamper_IT() functions. + + (++) To wake up from the Stop mode with an RTC WakeUp event, it is necessary to + configure the RTC to generate the RTC WakeUp event using the HAL_RTCEx_SetWakeUpTimer_IT() function. + +@endverbatim + * @{ + */ + + + +/** + * @brief Configure the voltage threshold detected by the Power Voltage Detector (PVD). + * @param sConfigPVD: pointer to a PWR_PVDTypeDef structure that contains the PVD + * configuration information. + * @note Refer to the electrical characteristics of your device datasheet for + * more details about the voltage thresholds corresponding to each + * detection level. + * @retval None + */ +HAL_StatusTypeDef HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD) +{ + /* Check the parameters */ + assert_param(IS_PWR_PVD_LEVEL(sConfigPVD->PVDLevel)); + assert_param(IS_PWR_PVD_MODE(sConfigPVD->Mode)); + + /* Set PLS bits according to PVDLevel value */ + MODIFY_REG(PWR->CR2, PWR_CR2_PLS, sConfigPVD->PVDLevel); + + /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + __HAL_PWR_PVD_EXTI_DISABLE_EVENT(); + __HAL_PWR_PVD_EXTI_DISABLE_IT(); + __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); + __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVD->Mode & PVD_MODE_IT) == PVD_MODE_IT) + { + __HAL_PWR_PVD_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVD->Mode & PVD_MODE_EVT) == PVD_MODE_EVT) + { + __HAL_PWR_PVD_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVD->Mode & PVD_RISING_EDGE) == PVD_RISING_EDGE) + { + __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVD->Mode & PVD_FALLING_EDGE) == PVD_FALLING_EDGE) + { + __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); + } + + return HAL_OK; +} + + +/** + * @brief Enable the Power Voltage Detector (PVD). + * @retval None + */ +void HAL_PWR_EnablePVD(void) +{ + SET_BIT(PWR->CR2, PWR_CR2_PVDE); +} + +/** + * @brief Disable the Power Voltage Detector (PVD). + * @retval None + */ +void HAL_PWR_DisablePVD(void) +{ + CLEAR_BIT(PWR->CR2, PWR_CR2_PVDE); +} + + + + +/** + * @brief Enable the WakeUp PINx functionality. + * @param WakeUpPinPolarity: Specifies which Wake-Up pin to enable. + * This parameter can be one of the following legacy values which set the default polarity + * i.e. detection on high level (rising edge): + * @arg @ref PWR_WAKEUP_PIN1, PWR_WAKEUP_PIN2, PWR_WAKEUP_PIN3, PWR_WAKEUP_PIN4, PWR_WAKEUP_PIN5 + * + * or one of the following value where the user can explicitly specify the enabled pin and + * the chosen polarity: + * @arg @ref PWR_WAKEUP_PIN1_HIGH or PWR_WAKEUP_PIN1_LOW + * @arg @ref PWR_WAKEUP_PIN2_HIGH or PWR_WAKEUP_PIN2_LOW + * @arg @ref PWR_WAKEUP_PIN3_HIGH or PWR_WAKEUP_PIN3_LOW + * @arg @ref PWR_WAKEUP_PIN4_HIGH or PWR_WAKEUP_PIN4_LOW + * @arg @ref PWR_WAKEUP_PIN5_HIGH or PWR_WAKEUP_PIN5_LOW + * @note PWR_WAKEUP_PINx and PWR_WAKEUP_PINx_HIGH are equivalent. + * @retval None + */ +void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinPolarity) +{ + assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinPolarity)); + + /* Specifies the Wake-Up pin polarity for the event detection + (rising or falling edge) */ + MODIFY_REG(PWR->CR4, (PWR_CR3_EWUP & WakeUpPinPolarity), (WakeUpPinPolarity >> PWR_WUP_POLARITY_SHIFT)); + + /* Enable wake-up pin */ + SET_BIT(PWR->CR3, (PWR_CR3_EWUP & WakeUpPinPolarity)); + + +} + +/** + * @brief Disable the WakeUp PINx functionality. + * @param WakeUpPinx: Specifies the Power Wake-Up pin to disable. + * This parameter can be one of the following values: + * @arg @ref PWR_WAKEUP_PIN1, PWR_WAKEUP_PIN2, PWR_WAKEUP_PIN3, PWR_WAKEUP_PIN4, PWR_WAKEUP_PIN5 + * @retval None + */ +void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx) +{ + assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx)); + + CLEAR_BIT(PWR->CR3, (PWR_CR3_EWUP & WakeUpPinx)); +} + + +/** + * @brief Enter Sleep or Low-power Sleep mode. + * @note In Sleep/Low-power Sleep mode, all I/O pins keep the same state as in Run mode. + * @param Regulator: Specifies the regulator state in Sleep/Low-power Sleep mode. + * This parameter can be one of the following values: + * @arg @ref PWR_MAINREGULATOR_ON Sleep mode (regulator in main mode) + * @arg @ref PWR_LOWPOWERREGULATOR_ON Low-power Sleep mode (regulator in low-power mode) + * @note Low-power Sleep mode is entered from Low-power Run mode. Therefore, if not yet + * in Low-power Run mode before calling HAL_PWR_EnterSLEEPMode() with Regulator set + * to PWR_LOWPOWERREGULATOR_ON, the user can optionally configure the + * Flash in power-down monde in setting the SLEEP_PD bit in FLASH_ACR register. + * Additionally, the clock frequency must be reduced below 2 MHz. + * Setting SLEEP_PD in FLASH_ACR then appropriately reducing the clock frequency must + * be done before calling HAL_PWR_EnterSLEEPMode() API. + * @note When exiting Low-power Sleep mode, the MCU is in Low-power Run mode. To move in + * Run mode, the user must resort to HAL_PWREx_DisableLowPowerRunMode() API. + * @param SLEEPEntry: Specifies if Sleep mode is entered with WFI or WFE instruction. + * This parameter can be one of the following values: + * @arg @ref PWR_SLEEPENTRY_WFI enter Sleep or Low-power Sleep mode with WFI instruction + * @arg @ref PWR_SLEEPENTRY_WFE enter Sleep or Low-power Sleep mode with WFE instruction + * @note When WFI entry is used, tick interrupt have to be disabled if not desired as + * the interrupt wake up source. + * @retval None + */ +void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry) +{ + /* Check the parameters */ + assert_param(IS_PWR_REGULATOR(Regulator)); + assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry)); + + /* Set Regulator parameter */ + if (Regulator == PWR_MAINREGULATOR_ON) + { + /* If in low-power run mode at this point, exit it */ + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) + { + (void)HAL_PWREx_DisableLowPowerRunMode(); + } + /* Regulator now in main mode. */ + } + else + { + /* If in run mode, first move to low-power run mode. + The system clock frequency must be below 2 MHz at this point. */ + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF) == 0U) + { + HAL_PWREx_EnableLowPowerRunMode(); + } + } + + /* Clear SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + + /* Select SLEEP mode entry -------------------------------------------------*/ + if(SLEEPEntry == PWR_SLEEPENTRY_WFI) + { + /* Request Wait For Interrupt */ + __WFI(); + } + else + { + /* Request Wait For Event */ + __SEV(); + __WFE(); + __WFE(); + } + +} + + +/** + * @brief Enter Stop mode + * @note This API is named HAL_PWR_EnterSTOPMode to ensure compatibility with legacy code running + * on devices where only "Stop mode" is mentioned with main or low power regulator ON. + * @note In Stop mode, all I/O pins keep the same state as in Run mode. + * @note All clocks in the VCORE domain are stopped; the PLL, + * the HSI and the HSE oscillators are disabled. Some peripherals with the wakeup capability + * (I2Cx, USARTx and LPUART) can switch on the HSI to receive a frame, and switch off the HSI + * after receiving the frame if it is not a wakeup frame. In this case, the HSI clock is propagated + * only to the peripheral requesting it. + * SRAM1, SRAM2 and register contents are preserved. + * The BOR is available. + * The voltage regulator can be configured either in normal (Stop 0) or low-power mode (Stop 1). + * @note When exiting Stop 0 or Stop 1 mode by issuing an interrupt or a wakeup event, + * the HSI RC oscillator is selected as system clock. + * @note When the voltage regulator operates in low power mode (Stop 1), an additional + * startup delay is incurred when waking up. + * By keeping the internal regulator ON during Stop mode (Stop 0), the consumption + * is higher although the startup time is reduced. + * @param Regulator: Specifies the regulator state in Stop mode. + * This parameter can be one of the following values: + * @arg @ref PWR_MAINREGULATOR_ON Stop 0 mode (main regulator ON) + * @arg @ref PWR_LOWPOWERREGULATOR_ON Stop 1 mode (low power regulator ON) + * @param STOPEntry: Specifies Stop 0 or Stop 1 mode is entered with WFI or WFE instruction. + * This parameter can be one of the following values: + * @arg @ref PWR_STOPENTRY_WFI Enter Stop 0 or Stop 1 mode with WFI instruction. + * @arg @ref PWR_STOPENTRY_WFE Enter Stop 0 or Stop 1 mode with WFE instruction. + * @retval None + */ +void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry) +{ + /* Check the parameters */ + assert_param(IS_PWR_REGULATOR(Regulator)); + + if(Regulator == PWR_LOWPOWERREGULATOR_ON) + { + HAL_PWREx_EnterSTOP1Mode(STOPEntry); + } + else + { + HAL_PWREx_EnterSTOP0Mode(STOPEntry); + } +} + +/** + * @brief Enter Standby mode. + * @note In Standby mode, the PLL, the HSI and the HSE oscillators are switched + * off. The voltage regulator is disabled, except when SRAM2 content is preserved + * in which case the regulator is in low-power mode. + * SRAM1 and register contents are lost except for registers in the Backup domain and + * Standby circuitry. SRAM2 content can be preserved if the bit RRS is set in PWR_CR3 register. + * To enable this feature, the user can resort to HAL_PWREx_EnableSRAM2ContentRetention() API + * to set RRS bit. + * The BOR is available. + * @note The I/Os can be configured either with a pull-up or pull-down or can be kept in analog state. + * HAL_PWREx_EnableGPIOPullUp() and HAL_PWREx_EnableGPIOPullDown() respectively enable Pull Up and + * Pull Down state, HAL_PWREx_DisableGPIOPullUp() and HAL_PWREx_DisableGPIOPullDown() disable the + * same. + * These states are effective in Standby mode only if APC bit is set through + * HAL_PWREx_EnablePullUpPullDownConfig() API. + * @retval None + */ +void HAL_PWR_EnterSTANDBYMode(void) +{ + /* Set Stand-by mode */ + MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_STANDBY); + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + +/* This option is used to ensure that store operations are completed */ +#if defined ( __CC_ARM) + __force_stores(); +#endif + /* Request Wait For Interrupt */ + __WFI(); +} + + + +/** + * @brief Indicate Sleep-On-Exit when returning from Handler mode to Thread mode. + * @note Set SLEEPONEXIT bit of SCR register. When this bit is set, the processor + * re-enters SLEEP mode when an interruption handling is over. + * Setting this bit is useful when the processor is expected to run only on + * interruptions handling. + * @retval None + */ +void HAL_PWR_EnableSleepOnExit(void) +{ + /* Set SLEEPONEXIT bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); +} + + +/** + * @brief Disable Sleep-On-Exit feature when returning from Handler mode to Thread mode. + * @note Clear SLEEPONEXIT bit of SCR register. When this bit is set, the processor + * re-enters SLEEP mode when an interruption handling is over. + * @retval None + */ +void HAL_PWR_DisableSleepOnExit(void) +{ + /* Clear SLEEPONEXIT bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); +} + + + +/** + * @brief Enable CORTEX M4 SEVONPEND bit. + * @note Set SEVONPEND bit of SCR register. When this bit is set, this causes + * WFE to wake up when an interrupt moves from inactive to pended. + * @retval None + */ +void HAL_PWR_EnableSEVOnPend(void) +{ + /* Set SEVONPEND bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); +} + + +/** + * @brief Disable CORTEX M4 SEVONPEND bit. + * @note Clear SEVONPEND bit of SCR register. When this bit is set, this causes + * WFE to wake up when an interrupt moves from inactive to pended. + * @retval None + */ +void HAL_PWR_DisableSEVOnPend(void) +{ + /* Clear SEVONPEND bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); +} + + + + + +/** + * @brief PWR PVD interrupt callback + * @retval None + */ +__weak void HAL_PWR_PVDCallback(void) +{ + /* NOTE : This function should not be modified; when the callback is needed, + the HAL_PWR_PVDCallback can be implemented in the user file + */ +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_PWR_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c new file mode 100644 index 0000000..f53c929 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c @@ -0,0 +1,1182 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_pwr_ex.c + * @author MCD Application Team + * @brief Extended PWR HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Power Controller (PWR) peripheral: + * + Extended Initialization and de-initialization functions + * + Extended Peripheral Control functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup PWREx PWREx + * @brief PWR Extended HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + + +#if defined (STM32G471xx) || defined (STM32G473xx) || defined (STM32G414xx) || defined (STM32G474xx) || defined (STM32G483xx) || defined (STM32G484xx) +#define PWR_PORTF_AVAILABLE_PINS 0x0000FFFFU /* PF0..PF15 */ +#define PWR_PORTG_AVAILABLE_PINS 0x000007FFU /* PG0..PG10 */ +#elif defined (STM32G411xB) || defined (STM32G411xC) || defined (STM32G431xx) || defined (STM32G441xx) || defined (STM32GBK1CB) || defined (STM32G491xx) || defined (STM32G4A1xx) +#define PWR_PORTF_AVAILABLE_PINS 0x00000607U /* PF0..PF2 and PF9 and PF10 */ +#define PWR_PORTG_AVAILABLE_PINS 0x00000400U /* PG10 */ +#endif /* STM32G471xx || STM32G473xx || STM32G414xx || STM32G474xx || STM32G483xx || STM32G484xx */ + +/** @defgroup PWR_Extended_Private_Defines PWR Extended Private Defines + * @{ + */ + +/** @defgroup PWREx_PVM_Mode_Mask PWR PVM Mode Mask + * @{ + */ +#define PVM_MODE_IT 0x00010000U /*!< Mask for interruption yielded by PVM threshold crossing */ +#define PVM_MODE_EVT 0x00020000U /*!< Mask for event yielded by PVM threshold crossing */ +#define PVM_RISING_EDGE 0x00000001U /*!< Mask for rising edge set as PVM trigger */ +#define PVM_FALLING_EDGE 0x00000002U /*!< Mask for falling edge set as PVM trigger */ +/** + * @} + */ + +/** @defgroup PWREx_TimeOut_Value PWR Extended Flag Setting Time Out Value + * @{ + */ +#define PWR_FLAG_SETTING_DELAY_US 50UL /*!< Time out value for REGLPF and VOSF flags setting */ +/** + * @} + */ + + + +/** + * @} + */ + + + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Functions PWR Extended Exported Functions + * @{ + */ + +/** @defgroup PWREx_Exported_Functions_Group1 Extended Peripheral Control functions + * @brief Extended Peripheral Control functions + * +@verbatim + =============================================================================== + ##### Extended Peripheral Initialization and de-initialization functions ##### + =============================================================================== + [..] + +@endverbatim + * @{ + */ + + +/** + * @brief Return Voltage Scaling Range. + * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1 or PWR_REGULATOR_VOLTAGE_SCALE2 + * or PWR_REGULATOR_VOLTAGE_SCALE1_BOOST when applicable) + */ +uint32_t HAL_PWREx_GetVoltageRange(void) +{ + if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + { + return PWR_REGULATOR_VOLTAGE_SCALE2; + } + else if (READ_BIT(PWR->CR5, PWR_CR5_R1MODE) == PWR_CR5_R1MODE) + { + /* PWR_CR5_R1MODE bit set means that Range 1 Boost is disabled */ + return PWR_REGULATOR_VOLTAGE_SCALE1; + } + else + { + return PWR_REGULATOR_VOLTAGE_SCALE1_BOOST; + } +} + + + +/** + * @brief Configure the main internal regulator output voltage. + * @param VoltageScaling: specifies the regulator output voltage to achieve + * a tradeoff between performance and power consumption. + * This parameter can be one of the following values: + * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1_BOOST when available, Regulator voltage output range 1 boost mode, + * typical output voltage at 1.28 V, + * system frequency up to 170 MHz. + * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1 Regulator voltage output range 1 mode, + * typical output voltage at 1.2 V, + * system frequency up to 150 MHz. + * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE2 Regulator voltage output range 2 mode, + * typical output voltage at 1.0 V, + * system frequency up to 26 MHz. + * @note When moving from Range 1 to Range 2, the system frequency must be decreased to + * a value below 26 MHz before calling HAL_PWREx_ControlVoltageScaling() API. + * When moving from Range 2 to Range 1, the system frequency can be increased to + * a value up to 150 MHz after calling HAL_PWREx_ControlVoltageScaling() API. + * When moving from Range 1 to Boost Mode Range 1, the system frequency can be increased to + * a value up to 170 MHz after calling HAL_PWREx_ControlVoltageScaling() API. + * @note When moving from Range 2 to Range 1, the API waits for VOSF flag to be + * cleared before returning the status. If the flag is not cleared within + * 50 microseconds, HAL_TIMEOUT status is reported. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling) +{ + uint32_t wait_loop_index; + + assert_param(IS_PWR_VOLTAGE_SCALING_RANGE(VoltageScaling)); + + if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) + { + /* If current range is range 2 */ + if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + { + /* Make sure Range 1 Boost is enabled */ + CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); + + /* Set Range 1 */ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); + + /* Wait until VOSF is cleared */ + wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + { + wait_loop_index--; + } + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) + { + return HAL_TIMEOUT; + } + } + /* If current range is range 1 normal or boost mode */ + else + { + /* Enable Range 1 Boost (no issue if bit already reset) */ + CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); + } + } + else if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1) + { + /* If current range is range 2 */ + if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + { + /* Make sure Range 1 Boost is disabled */ + SET_BIT(PWR->CR5, PWR_CR5_R1MODE); + + /* Set Range 1 */ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); + + /* Wait until VOSF is cleared */ + wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + { + wait_loop_index--; + } + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) + { + return HAL_TIMEOUT; + } + } + /* If current range is range 1 normal or boost mode */ + else + { + /* Disable Range 1 Boost (no issue if bit already set) */ + SET_BIT(PWR->CR5, PWR_CR5_R1MODE); + } + } + else + { + /* Set Range 2 */ + MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE2); + /* No need to wait for VOSF to be cleared for this transition */ + /* PWR_CR5_R1MODE bit setting has no effect in Range 2 */ + } + + return HAL_OK; +} + + +/** + * @brief Enable battery charging. + * When VDD is present, charge the external battery on VBAT through an internal resistor. + * @param ResistorSelection: specifies the resistor impedance. + * This parameter can be one of the following values: + * @arg @ref PWR_BATTERY_CHARGING_RESISTOR_5 5 kOhms resistor + * @arg @ref PWR_BATTERY_CHARGING_RESISTOR_1_5 1.5 kOhms resistor + * @retval None + */ +void HAL_PWREx_EnableBatteryCharging(uint32_t ResistorSelection) +{ + assert_param(IS_PWR_BATTERY_RESISTOR_SELECT(ResistorSelection)); + + /* Specify resistor selection */ + MODIFY_REG(PWR->CR4, PWR_CR4_VBRS, ResistorSelection); + + /* Enable battery charging */ + SET_BIT(PWR->CR4, PWR_CR4_VBE); +} + + +/** + * @brief Disable battery charging. + * @retval None + */ +void HAL_PWREx_DisableBatteryCharging(void) +{ + CLEAR_BIT(PWR->CR4, PWR_CR4_VBE); +} + + +/** + * @brief Enable Internal Wake-up Line. + * @retval None + */ +void HAL_PWREx_EnableInternalWakeUpLine(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_EIWF); +} + + +/** + * @brief Disable Internal Wake-up Line. + * @retval None + */ +void HAL_PWREx_DisableInternalWakeUpLine(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_EIWF); +} + + + +/** + * @brief Enable GPIO pull-up state in Standby and Shutdown modes. + * @note Set the relevant PUy bits of PWR_PUCRx register to configure the I/O in + * pull-up state in Standby and Shutdown modes. + * @note This state is effective in Standby and Shutdown modes only if APC bit + * is set through HAL_PWREx_EnablePullUpPullDownConfig() API. + * @note The configuration is lost when exiting the Shutdown mode due to the + * power-on reset, maintained when exiting the Standby mode. + * @note To avoid any conflict at Standby and Shutdown modes exits, the corresponding + * PDy bit of PWR_PDCRx register is cleared unless it is reserved. + * @note Even if a PUy bit to set is reserved, the other PUy bits entered as input + * parameter at the same time are set. + * @param GPIO: Specify the IO port. This parameter can be PWR_GPIO_A, ..., PWR_GPIO_G + * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + * @param GPIONumber: Specify the I/O pins numbers. + * This parameter can be one of the following values: + * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + * I/O pins are available) or the logical OR of several of them to set + * several bits for a given port in a single API call. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) +{ + HAL_StatusTypeDef status = HAL_OK; + + assert_param(IS_PWR_GPIO(GPIO)); + assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + + switch (GPIO) + { + case PWR_GPIO_A: + SET_BIT(PWR->PUCRA, (GPIONumber & (~(PWR_GPIO_BIT_14)))); + CLEAR_BIT(PWR->PDCRA, (GPIONumber & (~(PWR_GPIO_BIT_13|PWR_GPIO_BIT_15)))); + break; + case PWR_GPIO_B: + SET_BIT(PWR->PUCRB, GPIONumber); + CLEAR_BIT(PWR->PDCRB, (GPIONumber & (~(PWR_GPIO_BIT_4)))); + break; + case PWR_GPIO_C: + SET_BIT(PWR->PUCRC, GPIONumber); + CLEAR_BIT(PWR->PDCRC, GPIONumber); + break; + case PWR_GPIO_D: + SET_BIT(PWR->PUCRD, GPIONumber); + CLEAR_BIT(PWR->PDCRD, GPIONumber); + break; + case PWR_GPIO_E: + SET_BIT(PWR->PUCRE, GPIONumber); + CLEAR_BIT(PWR->PDCRE, GPIONumber); + break; + case PWR_GPIO_F: + SET_BIT(PWR->PUCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + CLEAR_BIT(PWR->PDCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + break; + case PWR_GPIO_G: + SET_BIT(PWR->PUCRG, (GPIONumber & PWR_PORTG_AVAILABLE_PINS)); + CLEAR_BIT(PWR->PDCRG, ((GPIONumber & PWR_PORTG_AVAILABLE_PINS) & (~(PWR_GPIO_BIT_10)))); + break; + default: + status = HAL_ERROR; + break; + } + + return status; +} + + +/** + * @brief Disable GPIO pull-up state in Standby mode and Shutdown modes. + * @note Reset the relevant PUy bits of PWR_PUCRx register used to configure the I/O + * in pull-up state in Standby and Shutdown modes. + * @note Even if a PUy bit to reset is reserved, the other PUy bits entered as input + * parameter at the same time are reset. + * @param GPIO: Specifies the IO port. This parameter can be PWR_GPIO_A, ..., PWR_GPIO_G + * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + * @param GPIONumber: Specify the I/O pins numbers. + * This parameter can be one of the following values: + * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + * I/O pins are available) or the logical OR of several of them to reset + * several bits for a given port in a single API call. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) +{ + HAL_StatusTypeDef status = HAL_OK; + + assert_param(IS_PWR_GPIO(GPIO)); + assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + + switch (GPIO) + { + case PWR_GPIO_A: + CLEAR_BIT(PWR->PUCRA, (GPIONumber & (~(PWR_GPIO_BIT_14)))); + break; + case PWR_GPIO_B: + CLEAR_BIT(PWR->PUCRB, GPIONumber); + break; + case PWR_GPIO_C: + CLEAR_BIT(PWR->PUCRC, GPIONumber); + break; + case PWR_GPIO_D: + CLEAR_BIT(PWR->PUCRD, GPIONumber); + break; + case PWR_GPIO_E: + CLEAR_BIT(PWR->PUCRE, GPIONumber); + break; + case PWR_GPIO_F: + CLEAR_BIT(PWR->PUCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + break; + case PWR_GPIO_G: + CLEAR_BIT(PWR->PUCRG, (GPIONumber & PWR_PORTG_AVAILABLE_PINS)); + break; + default: + status = HAL_ERROR; + break; + } + + return status; +} + + + +/** + * @brief Enable GPIO pull-down state in Standby and Shutdown modes. + * @note Set the relevant PDy bits of PWR_PDCRx register to configure the I/O in + * pull-down state in Standby and Shutdown modes. + * @note This state is effective in Standby and Shutdown modes only if APC bit + * is set through HAL_PWREx_EnablePullUpPullDownConfig() API. + * @note The configuration is lost when exiting the Shutdown mode due to the + * power-on reset, maintained when exiting the Standby mode. + * @note To avoid any conflict at Standby and Shutdown modes exits, the corresponding + * PUy bit of PWR_PUCRx register is cleared unless it is reserved. + * @note Even if a PDy bit to set is reserved, the other PDy bits entered as input + * parameter at the same time are set. + * @param GPIO: Specify the IO port. This parameter can be PWR_GPIO_A..PWR_GPIO_G + * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + * @param GPIONumber: Specify the I/O pins numbers. + * This parameter can be one of the following values: + * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + * I/O pins are available) or the logical OR of several of them to set + * several bits for a given port in a single API call. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) +{ + HAL_StatusTypeDef status = HAL_OK; + + assert_param(IS_PWR_GPIO(GPIO)); + assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + + switch (GPIO) + { + case PWR_GPIO_A: + SET_BIT(PWR->PDCRA, (GPIONumber & (~(PWR_GPIO_BIT_13|PWR_GPIO_BIT_15)))); + CLEAR_BIT(PWR->PUCRA, (GPIONumber & (~(PWR_GPIO_BIT_14)))); + break; + case PWR_GPIO_B: + SET_BIT(PWR->PDCRB, (GPIONumber & (~(PWR_GPIO_BIT_4)))); + CLEAR_BIT(PWR->PUCRB, GPIONumber); + break; + case PWR_GPIO_C: + SET_BIT(PWR->PDCRC, GPIONumber); + CLEAR_BIT(PWR->PUCRC, GPIONumber); + break; + case PWR_GPIO_D: + SET_BIT(PWR->PDCRD, GPIONumber); + CLEAR_BIT(PWR->PUCRD, GPIONumber); + break; + case PWR_GPIO_E: + SET_BIT(PWR->PDCRE, GPIONumber); + CLEAR_BIT(PWR->PUCRE, GPIONumber); + break; + case PWR_GPIO_F: + SET_BIT(PWR->PDCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + CLEAR_BIT(PWR->PUCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + break; + case PWR_GPIO_G: + SET_BIT(PWR->PDCRG, ((GPIONumber & PWR_PORTG_AVAILABLE_PINS) & (~(PWR_GPIO_BIT_10)))); + CLEAR_BIT(PWR->PUCRG, (GPIONumber & PWR_PORTG_AVAILABLE_PINS)); + break; + default: + status = HAL_ERROR; + break; + } + + return status; +} + + +/** + * @brief Disable GPIO pull-down state in Standby and Shutdown modes. + * @note Reset the relevant PDy bits of PWR_PDCRx register used to configure the I/O + * in pull-down state in Standby and Shutdown modes. + * @note Even if a PDy bit to reset is reserved, the other PDy bits entered as input + * parameter at the same time are reset. + * @param GPIO: Specifies the IO port. This parameter can be PWR_GPIO_A..PWR_GPIO_G + * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + * @param GPIONumber: Specify the I/O pins numbers. + * This parameter can be one of the following values: + * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + * I/O pins are available) or the logical OR of several of them to reset + * several bits for a given port in a single API call. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) +{ + HAL_StatusTypeDef status = HAL_OK; + + assert_param(IS_PWR_GPIO(GPIO)); + assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + + switch (GPIO) + { + case PWR_GPIO_A: + CLEAR_BIT(PWR->PDCRA, (GPIONumber & (~(PWR_GPIO_BIT_13|PWR_GPIO_BIT_15)))); + break; + case PWR_GPIO_B: + CLEAR_BIT(PWR->PDCRB, (GPIONumber & (~(PWR_GPIO_BIT_4)))); + break; + case PWR_GPIO_C: + CLEAR_BIT(PWR->PDCRC, GPIONumber); + break; + case PWR_GPIO_D: + CLEAR_BIT(PWR->PDCRD, GPIONumber); + break; + case PWR_GPIO_E: + CLEAR_BIT(PWR->PDCRE, GPIONumber); + break; + case PWR_GPIO_F: + CLEAR_BIT(PWR->PDCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + break; + case PWR_GPIO_G: + CLEAR_BIT(PWR->PDCRG, ((GPIONumber & PWR_PORTG_AVAILABLE_PINS) & (~(PWR_GPIO_BIT_10)))); + break; + default: + status = HAL_ERROR; + break; + } + + return status; +} + + + +/** + * @brief Enable pull-up and pull-down configuration. + * @note When APC bit is set, the I/O pull-up and pull-down configurations defined in + * PWR_PUCRx and PWR_PDCRx registers are applied in Standby and Shutdown modes. + * @note Pull-up set by PUy bit of PWR_PUCRx register is not activated if the corresponding + * PDy bit of PWR_PDCRx register is also set (pull-down configuration priority is higher). + * HAL_PWREx_EnableGPIOPullUp() and HAL_PWREx_EnableGPIOPullDown() API's ensure there + * is no conflict when setting PUy or PDy bit. + * @retval None + */ +void HAL_PWREx_EnablePullUpPullDownConfig(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_APC); +} + + +/** + * @brief Disable pull-up and pull-down configuration. + * @note When APC bit is cleared, the I/O pull-up and pull-down configurations defined in + * PWR_PUCRx and PWR_PDCRx registers are not applied in Standby and Shutdown modes. + * @retval None + */ +void HAL_PWREx_DisablePullUpPullDownConfig(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_APC); +} + + +#if defined (SRAM2_BASE) +/** + * @brief Enable SRAM2 content retention in Standby mode. + * @note When RRS bit is set, SRAM2 is powered by the low-power regulator in + * Standby mode and its content is kept. + * @retval None + */ +void HAL_PWREx_EnableSRAM2ContentRetention(void) +{ + SET_BIT(PWR->CR3, PWR_CR3_RRS); +} + + +/** + * @brief Disable SRAM2 content retention in Standby mode. + * @note When RRS bit is reset, SRAM2 is powered off in Standby mode + * and its content is lost. + * @retval None + */ +void HAL_PWREx_DisableSRAM2ContentRetention(void) +{ + CLEAR_BIT(PWR->CR3, PWR_CR3_RRS); +} +#endif /* SRAM2_BASE */ + + + +#if defined(PWR_CR2_PVME1) +/** + * @brief Enable the Power Voltage Monitoring 1: VDDA versus FASTCOMP minimum voltage. + * @retval None + */ +void HAL_PWREx_EnablePVM1(void) +{ + SET_BIT(PWR->CR2, PWR_PVM_1); +} + +/** + * @brief Disable the Power Voltage Monitoring 1: VDDA versus FASTCOMP minimum voltage. + * @retval None + */ +void HAL_PWREx_DisablePVM1(void) +{ + CLEAR_BIT(PWR->CR2, PWR_PVM_1); +} +#endif /* PWR_CR2_PVME1 */ + + +#if defined(PWR_CR2_PVME2) +/** + * @brief Enable the Power Voltage Monitoring 2: VDDA versus FASTDAC minimum voltage. + * @retval None + */ +void HAL_PWREx_EnablePVM2(void) +{ + SET_BIT(PWR->CR2, PWR_PVM_2); +} + +/** + * @brief Disable the Power Voltage Monitoring 2: VDDA versus FASTDAC minimum voltage. + * @retval None + */ +void HAL_PWREx_DisablePVM2(void) +{ + CLEAR_BIT(PWR->CR2, PWR_PVM_2); +} +#endif /* PWR_CR2_PVME2 */ + + +/** + * @brief Enable the Power Voltage Monitoring 3: VDDA versus ADC minimum voltage 1.62V. + * @retval None + */ +void HAL_PWREx_EnablePVM3(void) +{ + SET_BIT(PWR->CR2, PWR_PVM_3); +} + +/** + * @brief Disable the Power Voltage Monitoring 3: VDDA versus ADC minimum voltage 1.62V. + * @retval None + */ +void HAL_PWREx_DisablePVM3(void) +{ + CLEAR_BIT(PWR->CR2, PWR_PVM_3); +} + + +/** + * @brief Enable the Power Voltage Monitoring 4: VDDA versus OPAMP/DAC minimum voltage 1.8V. + * @retval None + */ +void HAL_PWREx_EnablePVM4(void) +{ + SET_BIT(PWR->CR2, PWR_PVM_4); +} + +/** + * @brief Disable the Power Voltage Monitoring 4: VDDA versus OPAMP/DAC minimum voltage 1.8V. + * @retval None + */ +void HAL_PWREx_DisablePVM4(void) +{ + CLEAR_BIT(PWR->CR2, PWR_PVM_4); +} + + + + +/** + * @brief Configure the Peripheral Voltage Monitoring (PVM). + * @param sConfigPVM: pointer to a PWR_PVMTypeDef structure that contains the + * PVM configuration information. + * @note The API configures a single PVM according to the information contained + * in the input structure. To configure several PVMs, the API must be singly + * called for each PVM used. + * @note Refer to the electrical characteristics of your device datasheet for + * more details about the voltage thresholds corresponding to each + * detection level and to each monitored supply. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PWREx_ConfigPVM(PWR_PVMTypeDef *sConfigPVM) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_PWR_PVM_TYPE(sConfigPVM->PVMType)); + assert_param(IS_PWR_PVM_MODE(sConfigPVM->Mode)); + + + /* Configure EXTI 35 to 38 interrupts if so required: + scan through PVMType to detect which PVMx is set and + configure the corresponding EXTI line accordingly. */ + switch (sConfigPVM->PVMType) + { +#if defined(PWR_CR2_PVME1) + case PWR_PVM_1: + /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + __HAL_PWR_PVM1_EXTI_DISABLE_EVENT(); + __HAL_PWR_PVM1_EXTI_DISABLE_IT(); + __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE(); + __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + { + __HAL_PWR_PVM1_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + { + __HAL_PWR_PVM1_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + { + __HAL_PWR_PVM1_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + { + __HAL_PWR_PVM1_EXTI_ENABLE_FALLING_EDGE(); + } + break; +#endif /* PWR_CR2_PVME1 */ + +#if defined(PWR_CR2_PVME2) + case PWR_PVM_2: + /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + __HAL_PWR_PVM2_EXTI_DISABLE_EVENT(); + __HAL_PWR_PVM2_EXTI_DISABLE_IT(); + __HAL_PWR_PVM2_EXTI_DISABLE_FALLING_EDGE(); + __HAL_PWR_PVM2_EXTI_DISABLE_RISING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + { + __HAL_PWR_PVM2_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + { + __HAL_PWR_PVM2_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + { + __HAL_PWR_PVM2_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + { + __HAL_PWR_PVM2_EXTI_ENABLE_FALLING_EDGE(); + } + break; +#endif /* PWR_CR2_PVME2 */ + + case PWR_PVM_3: + /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + __HAL_PWR_PVM3_EXTI_DISABLE_EVENT(); + __HAL_PWR_PVM3_EXTI_DISABLE_IT(); + __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE(); + __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + { + __HAL_PWR_PVM3_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + { + __HAL_PWR_PVM3_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + { + __HAL_PWR_PVM3_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + { + __HAL_PWR_PVM3_EXTI_ENABLE_FALLING_EDGE(); + } + break; + + case PWR_PVM_4: + /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + __HAL_PWR_PVM4_EXTI_DISABLE_EVENT(); + __HAL_PWR_PVM4_EXTI_DISABLE_IT(); + __HAL_PWR_PVM4_EXTI_DISABLE_FALLING_EDGE(); + __HAL_PWR_PVM4_EXTI_DISABLE_RISING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + { + __HAL_PWR_PVM4_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + { + __HAL_PWR_PVM4_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + { + __HAL_PWR_PVM4_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + { + __HAL_PWR_PVM4_EXTI_ENABLE_FALLING_EDGE(); + } + break; + + default: + status = HAL_ERROR; + break; + } + + return status; +} + + +/** + * @brief Enter Low-power Run mode + * @note In Low-power Run mode, all I/O pins keep the same state as in Run mode. + * @note When Regulator is set to PWR_LOWPOWERREGULATOR_ON, the user can optionally configure the + * Flash in power-down monde in setting the RUN_PD bit in FLASH_ACR register. + * Additionally, the clock frequency must be reduced below 2 MHz. + * Setting RUN_PD in FLASH_ACR then appropriately reducing the clock frequency must + * be done before calling HAL_PWREx_EnableLowPowerRunMode() API. + * @retval None + */ +void HAL_PWREx_EnableLowPowerRunMode(void) +{ + /* Set Regulator parameter */ + SET_BIT(PWR->CR1, PWR_CR1_LPR); +} + + +/** + * @brief Exit Low-power Run mode. + * @note Before HAL_PWREx_DisableLowPowerRunMode() completion, the function checks that + * REGLPF has been properly reset (otherwise, HAL_PWREx_DisableLowPowerRunMode + * returns HAL_TIMEOUT status). The system clock frequency can then be + * increased above 2 MHz. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void) +{ + uint32_t wait_loop_index; + + /* Clear LPR bit */ + CLEAR_BIT(PWR->CR1, PWR_CR1_LPR); + + /* Wait until REGLPF is reset */ + wait_loop_index = (PWR_FLAG_SETTING_DELAY_US * (SystemCoreClock / 1000000U)); + while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U)) + { + wait_loop_index--; + } + if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) + { + return HAL_TIMEOUT; + } + + return HAL_OK; +} + + +/** + * @brief Enter Stop 0 mode. + * @note In Stop 0 mode, main and low voltage regulators are ON. + * @note In Stop 0 mode, all I/O pins keep the same state as in Run mode. + * @note All clocks in the VCORE domain are stopped; the PLL, the HSI + * and the HSE oscillators are disabled. Some peripherals with the wakeup capability + * (I2Cx, USARTx and LPUART) can switch on the HSI to receive a frame, and switch off the HSI + * after receiving the frame if it is not a wakeup frame. In this case, the HSI clock is propagated + * only to the peripheral requesting it. + * SRAM1, SRAM2 and register contents are preserved. + * The BOR is available. + * @note When exiting Stop 0 mode by issuing an interrupt or a wakeup event, + * the HSI RC oscillator is selected as system clock if STOPWUCK bit in RCC_CFGR register + * is set; the HSI oscillator is selected if STOPWUCK is cleared. + * @note By keeping the internal regulator ON during Stop 0 mode, the consumption + * is higher although the startup time is reduced. + * @param STOPEntry specifies if Stop mode in entered with WFI or WFE instruction. + * This parameter can be one of the following values: + * @arg @ref PWR_STOPENTRY_WFI Enter Stop mode with WFI instruction + * @arg @ref PWR_STOPENTRY_WFE Enter Stop mode with WFE instruction + * @retval None + */ +void HAL_PWREx_EnterSTOP0Mode(uint8_t STOPEntry) +{ + /* Check the parameters */ + assert_param(IS_PWR_STOP_ENTRY(STOPEntry)); + + /* Stop 0 mode with Main Regulator */ + MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_STOP0); + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + + /* Select Stop mode entry --------------------------------------------------*/ + if(STOPEntry == PWR_STOPENTRY_WFI) + { + /* Request Wait For Interrupt */ + __WFI(); + } + else + { + /* Request Wait For Event */ + __SEV(); + __WFE(); + __WFE(); + } + + /* Reset SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); +} + + +/** + * @brief Enter Stop 1 mode. + * @note In Stop 1 mode, only low power voltage regulator is ON. + * @note In Stop 1 mode, all I/O pins keep the same state as in Run mode. + * @note All clocks in the VCORE domain are stopped; the PLL, the HSI + * and the HSE oscillators are disabled. Some peripherals with the wakeup capability + * (I2Cx, USARTx and LPUART) can switch on the HSI to receive a frame, and switch off the HSI + * after receiving the frame if it is not a wakeup frame. In this case, the HSI clock is propagated + * only to the peripheral requesting it. + * SRAM1, SRAM2 and register contents are preserved. + * The BOR is available. + * @note When exiting Stop 1 mode by issuing an interrupt or a wakeup event, + * the HSI RC oscillator is selected as system clock if STOPWUCK bit in RCC_CFGR register + * is set. + * @note Due to low power mode, an additional startup delay is incurred when waking up from Stop 1 mode. + * @param STOPEntry specifies if Stop mode in entered with WFI or WFE instruction. + * This parameter can be one of the following values: + * @arg @ref PWR_STOPENTRY_WFI Enter Stop mode with WFI instruction + * @arg @ref PWR_STOPENTRY_WFE Enter Stop mode with WFE instruction + * @retval None + */ +void HAL_PWREx_EnterSTOP1Mode(uint8_t STOPEntry) +{ + /* Check the parameters */ + assert_param(IS_PWR_STOP_ENTRY(STOPEntry)); + + /* Stop 1 mode with Low-Power Regulator */ + MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_STOP1); + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + + /* Select Stop mode entry --------------------------------------------------*/ + if(STOPEntry == PWR_STOPENTRY_WFI) + { + /* Request Wait For Interrupt */ + __WFI(); + } + else + { + /* Request Wait For Event */ + __SEV(); + __WFE(); + __WFE(); + } + + /* Reset SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); +} + + + + +/** + * @brief Enter Shutdown mode. + * @note In Shutdown mode, the PLL, the HSI, the LSI and the HSE oscillators are switched + * off. The voltage regulator is disabled and Vcore domain is powered off. + * SRAM1, SRAM2 and registers contents are lost except for registers in the Backup domain. + * The BOR is not available. + * @note The I/Os can be configured either with a pull-up or pull-down or can be kept in analog state. + * @retval None + */ +void HAL_PWREx_EnterSHUTDOWNMode(void) +{ + + /* Set Shutdown mode */ + MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_SHUTDOWN); + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + +/* This option is used to ensure that store operations are completed */ +#if defined ( __CC_ARM) + __force_stores(); +#endif + /* Request Wait For Interrupt */ + __WFI(); +} + + + + +/** + * @brief This function handles the PWR PVD/PVMx interrupt request. + * @note This API should be called under the PVD_PVM_IRQHandler(). + * @retval None + */ +void HAL_PWREx_PVD_PVM_IRQHandler(void) +{ + /* Check PWR exti flag */ + if(__HAL_PWR_PVD_EXTI_GET_FLAG() != 0U) + { + /* PWR PVD interrupt user callback */ + HAL_PWR_PVDCallback(); + + /* Clear PVD exti pending bit */ + __HAL_PWR_PVD_EXTI_CLEAR_FLAG(); + } + /* Next, successively check PVMx exti flags */ +#if defined(PWR_CR2_PVME1) + if(__HAL_PWR_PVM1_EXTI_GET_FLAG() != 0U) + { + /* PWR PVM1 interrupt user callback */ + HAL_PWREx_PVM1Callback(); + + /* Clear PVM1 exti pending bit */ + __HAL_PWR_PVM1_EXTI_CLEAR_FLAG(); + } +#endif /* PWR_CR2_PVME1 */ +#if defined(PWR_CR2_PVME2) + if(__HAL_PWR_PVM2_EXTI_GET_FLAG() != 0U) + { + /* PWR PVM2 interrupt user callback */ + HAL_PWREx_PVM2Callback(); + + /* Clear PVM2 exti pending bit */ + __HAL_PWR_PVM2_EXTI_CLEAR_FLAG(); + } +#endif /* PWR_CR2_PVME2 */ + if(__HAL_PWR_PVM3_EXTI_GET_FLAG() != 0U) + { + /* PWR PVM3 interrupt user callback */ + HAL_PWREx_PVM3Callback(); + + /* Clear PVM3 exti pending bit */ + __HAL_PWR_PVM3_EXTI_CLEAR_FLAG(); + } + if(__HAL_PWR_PVM4_EXTI_GET_FLAG() != 0U) + { + /* PWR PVM4 interrupt user callback */ + HAL_PWREx_PVM4Callback(); + + /* Clear PVM4 exti pending bit */ + __HAL_PWR_PVM4_EXTI_CLEAR_FLAG(); + } +} + + +#if defined(PWR_CR2_PVME1) +/** + * @brief PWR PVM1 interrupt callback + * @retval None + */ +__weak void HAL_PWREx_PVM1Callback(void) +{ + /* NOTE : This function should not be modified; when the callback is needed, + HAL_PWREx_PVM1Callback() API can be implemented in the user file + */ +} +#endif /* PWR_CR2_PVME1 */ + +#if defined(PWR_CR2_PVME2) +/** + * @brief PWR PVM2 interrupt callback + * @retval None + */ +__weak void HAL_PWREx_PVM2Callback(void) +{ + /* NOTE : This function should not be modified; when the callback is needed, + HAL_PWREx_PVM2Callback() API can be implemented in the user file + */ +} +#endif /* PWR_CR2_PVME2 */ + +/** + * @brief PWR PVM3 interrupt callback + * @retval None + */ +__weak void HAL_PWREx_PVM3Callback(void) +{ + /* NOTE : This function should not be modified; when the callback is needed, + HAL_PWREx_PVM3Callback() API can be implemented in the user file + */ +} + +/** + * @brief PWR PVM4 interrupt callback + * @retval None + */ +__weak void HAL_PWREx_PVM4Callback(void) +{ + /* NOTE : This function should not be modified; when the callback is needed, + HAL_PWREx_PVM4Callback() API can be implemented in the user file + */ +} + +#if defined(PWR_CR3_UCPD_STDBY) +/** + * @brief Enable UCPD configuration memorization in Standby. + * @retval None + */ +void HAL_PWREx_EnableUCPDStandbyMode(void) +{ + /* Memorize UCPD configuration when entering standby mode */ + SET_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY); +} + +/** + * @brief Disable UCPD configuration memorization in Standby. + * @note This function must be called on exiting the Standby mode and before any UCPD + * configuration update. + * @retval None + */ +void HAL_PWREx_DisableUCPDStandbyMode(void) +{ + /* Write 0 immediately after Standby exit when using UCPD, + and before writing any UCPD registers */ + CLEAR_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY); +} +#endif /* PWR_CR3_UCPD_STDBY */ + +#if defined(PWR_CR3_UCPD_DBDIS) +/** + * @brief Enable the USB Type-C dead battery pull-down behavior + * on UCPDx_CC1 and UCPDx_CC2 pins + * @retval None + */ +void HAL_PWREx_EnableUCPDDeadBattery(void) +{ + /* Write 0 to enable the USB Type-C dead battery pull-down behavior */ + CLEAR_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); +} + +/** + * @brief Disable the USB Type-C dead battery pull-down behavior + * on UCPDx_CC1 and UCPDx_CC2 pins + * @note After exiting reset, the USB Type-C dead battery behavior will be enabled, + * which may have a pull-down effect on CC1 and CC2 pins. + * It is recommended to disable it in all cases, either to stop this pull-down + * or to hand over control to the UCPD (which should therefore be + * initialized before doing the disable). + * @retval None + */ +void HAL_PWREx_DisableUCPDDeadBattery(void) +{ + /* Write 1 to disable the USB Type-C dead battery pull-down behavior */ + SET_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); +} +#endif /* PWR_CR3_UCPD_DBDIS */ + + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_PWR_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c new file mode 100644 index 0000000..884a75c --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c @@ -0,0 +1,1400 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_rcc.c + * @author MCD Application Team + * @brief RCC HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Reset and Clock Control (RCC) peripheral: + * + Initialization and de-initialization functions + * + Peripheral Control functions + * + @verbatim + ============================================================================== + ##### RCC specific features ##### + ============================================================================== + [..] + After reset the device is running from High Speed Internal oscillator + (16 MHz) with Flash 0 wait state. Flash prefetch buffer, D-Cache + and I-Cache are disabled, and all peripherals are off except internal + SRAM, Flash and JTAG. + + (+) There is no prescaler on High speed (AHBs) and Low speed (APBs) buses: + all peripherals mapped on these buses are running at HSI speed. + (+) The clock for all peripherals is switched off, except the SRAM and FLASH. + (+) All GPIOs are in analog mode, except the JTAG pins which + are assigned to be used for debug purpose. + + [..] + Once the device started from reset, the user application has to: + (+) Configure the clock source to be used to drive the System clock + (if the application needs higher frequency/performance) + (+) Configure the System clock frequency and Flash settings + (+) Configure the AHB and APB buses prescalers + (+) Enable the clock for the peripheral(s) to be used + (+) Configure the clock source(s) for peripherals which clocks are not + derived from the System clock (USB, RNG, USART, LPUART, FDCAN, some TIMERs, + UCPD, I2S, I2C, LPTIM, ADC, QSPI) + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup RCC RCC + * @brief RCC HAL module driver + * @{ + */ + +#ifdef HAL_RCC_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup RCC_Private_Constants RCC Private Constants + * @{ + */ +#define HSE_TIMEOUT_VALUE HSE_STARTUP_TIMEOUT +#define HSI_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define LSI_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define HSI48_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define PLL_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define CLOCKSWITCH_TIMEOUT_VALUE 5000U /* 5 s */ +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup RCC_Private_Macros RCC Private Macros + * @{ + */ +#define RCC_GET_MCO_GPIO_PIN(__RCC_MCOx__) ((__RCC_MCOx__) & GPIO_PIN_MASK) + +#define RCC_GET_MCO_GPIO_AF(__RCC_MCOx__) (((__RCC_MCOx__) & RCC_MCO_GPIOAF_MASK) >> RCC_MCO_GPIOAF_POS) + +#define RCC_GET_MCO_GPIO_INDEX(__RCC_MCOx__) (((__RCC_MCOx__) & RCC_MCO_GPIOPORT_MASK) >> RCC_MCO_GPIOPORT_POS) + +#define RCC_GET_MCO_GPIO_PORT(__RCC_MCOx__) (AHB2PERIPH_BASE + ((0x00000400UL) * RCC_GET_MCO_GPIO_INDEX(__RCC_MCOx__))) + +#define RCC_PLL_OSCSOURCE_CONFIG(__HAL_RCC_PLLSOURCE__) \ + (MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, (__HAL_RCC_PLLSOURCE__))) +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ + +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup RCC_Private_Functions RCC Private Functions + * @{ + */ +static uint32_t RCC_GetSysClockFreqFromPLLSource(void); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup RCC_Exported_Functions RCC Exported Functions + * @{ + */ + +/** @defgroup RCC_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * + @verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] + This section provides functions allowing to configure the internal and external oscillators + (HSE, HSI, LSE, LSI, PLL, CSS and MCO) and the System buses clocks (SYSCLK, AHB, APB1 + and APB2). + + [..] Internal/external clock and PLL configuration + (+) HSI (high-speed internal): 16 MHz factory-trimmed RC used directly or through + the PLL as System clock source. + + (+) LSI (low-speed internal): 32 KHz low consumption RC used as IWDG and/or RTC + clock source. + + (+) HSE (high-speed external): 4 to 48 MHz crystal oscillator used directly or + through the PLL as System clock source. Can be used also optionally as RTC clock source. + + (+) LSE (low-speed external): 32.768 KHz oscillator used optionally as RTC clock source. + + (+) PLL (clocked by HSI, HSE) providing up to three independent output clocks: + (++) The first output is used to generate the high speed system clock (up to 170 MHz). + (++) The second output is used to generate the clock for the USB (48 MHz), + the QSPI (<= 48 MHz), the FDCAN, the SAI and the I2S. + (++) The third output is used to generate a clock for ADC + + (+) CSS (Clock security system): once enabled, if a HSE clock failure occurs + (HSE used directly or through PLL as System clock source), the System clock + is automatically switched to HSI and an interrupt is generated if enabled. + The interrupt is linked to the Cortex-M4 NMI (Non-Maskable Interrupt) + exception vector. + + (+) MCO (microcontroller clock output): used to output LSI, HSI, LSE, HSE, + main PLL clock, system clock or RC48 clock (through a configurable prescaler) on PA8 pin. + + [..] System, AHB and APB buses clocks configuration + (+) Several clock sources can be used to drive the System clock (SYSCLK): HSI, + HSE and main PLL. + The AHB clock (HCLK) is derived from System clock through configurable + prescaler and used to clock the CPU, memory and peripherals mapped + on AHB bus (DMA, GPIO...). APB1 (PCLK1) and APB2 (PCLK2) clocks are derived + from AHB clock through configurable prescalers and used to clock + the peripherals mapped on these buses. You can use + "HAL_RCC_GetSysClockFreq()" function to retrieve the frequencies of these clocks. + + -@- All the peripheral clocks are derived from the System clock (SYSCLK) except: + + (+@) RTC: the RTC clock can be derived either from the LSI, LSE or HSE clock + divided by 2 to 31. + You have to use __HAL_RCC_RTC_ENABLE() and HAL_RCCEx_PeriphCLKConfig() function + to configure this clock. + (+@) USB FS and RNG: USB FS requires a frequency equal to 48 MHz + to work correctly, while the RNG peripheral requires a frequency + equal or lower than to 48 MHz. This clock is derived of the main PLL + through PLLQ divider. You have to enable the peripheral clock and use + HAL_RCCEx_PeriphCLKConfig() function to configure this clock. + (+@) IWDG clock which is always the LSI clock. + + + (+) The maximum frequency of the SYSCLK, HCLK, PCLK1 and PCLK2 is 170 MHz. + The clock source frequency should be adapted depending on the device voltage range + as listed in the Reference Manual "Clock source frequency versus voltage scaling" chapter. + + @endverbatim + + Table 1. HCLK clock frequency for STM32G4xx devices + +----------------------------------------------------------------------------+ + | Latency | HCLK clock frequency (MHz) | + | |----------------------------------------------------------| + | | voltage range 1 | voltage range 1 | voltage range 2 | + | | boost mode 1.28 V | normal mode 1.2 V | 1.0 V | + |-----------------|-------------------|-------------------|------------------| + |0WS(1 CPU cycles)| HCLK <= 34 | HCLK <= 30 | HCLK <= 13 | + |-----------------|-------------------|-------------------|------------------| + |1WS(2 CPU cycles)| HCLK <= 68 | HCLK <= 60 | HCLK <= 26 | + |-----------------|-------------------|-------------------|------------------| + |2WS(3 CPU cycles)| HCLK <= 102 | HCLK <= 90 | - | + |-----------------|-------------------|-------------------|------------------| + |3WS(4 CPU cycles)| HCLK <= 136 | HCLK <= 120 | - | + |-----------------|-------------------|-------------------|------------------| + |4WS(5 CPU cycles)| HCLK <= 170 | HCLK <= 150 | - | + +----------------------------------------------------------------------------+ + + * @{ + */ + +/** + * @brief Reset the RCC clock configuration to the default reset state. + * @note The default reset state of the clock configuration is given below: + * - HSI ON and used as system clock source + * - HSE, PLL OFF + * - AHB, APB1 and APB2 prescaler set to 1. + * - CSS, MCO1 OFF + * - All interrupts disabled + * - All interrupt and reset flags cleared + * @note This function doesn't modify the configuration of the + * - Peripheral clocks + * - LSI, LSE and RTC clocks + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_DeInit(void) +{ + uint32_t tickstart; + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Set HSION bit to the reset value */ + SET_BIT(RCC->CR, RCC_CR_HSION); + + /* Wait till HSI is ready */ + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Set HSITRIM[6:0] bits to the reset value */ + SET_BIT(RCC->ICSCR, RCC_HSICALIBRATION_DEFAULT << RCC_ICSCR_HSITRIM_Pos); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Reset CFGR register (HSI is selected as system clock source) */ + RCC->CFGR = 0x00000001u; + + /* Wait till HSI is ready */ + while (READ_BIT(RCC->CFGR, RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI) + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HSI_VALUE; + + /* Adapt Systick interrupt period */ + if (HAL_InitTick(uwTickPrio) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear CR register in 2 steps: first to clear HSEON in case bypass was enabled */ + RCC->CR = RCC_CR_HSION; + + /* Then again to HSEBYP in case bypass was enabled */ + RCC->CR = RCC_CR_HSION; + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL is OFF */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* once PLL is OFF, reset PLLCFGR register to default value */ + RCC->PLLCFGR = RCC_PLLCFGR_PLLN_4; + + /* Disable all interrupts */ + CLEAR_REG(RCC->CIER); + + /* Clear all interrupt flags */ + WRITE_REG(RCC->CICR, 0xFFFFFFFFU); + + /* Clear all reset flags */ + SET_BIT(RCC->CSR, RCC_CSR_RMVF); + + return HAL_OK; +} + +/** + * @brief Initialize the RCC Oscillators according to the specified parameters in the + * RCC_OscInitTypeDef. + * @param RCC_OscInitStruct pointer to an RCC_OscInitTypeDef structure that + * contains the configuration information for the RCC Oscillators. + * @note The PLL is not disabled when used as system clock. + * @note Transitions LSE Bypass to LSE On and LSE On to LSE Bypass are not + * supported by this macro. User should request a transition to LSE Off + * first and then LSE On or LSE Bypass. + * @note Transition HSE Bypass to HSE On and HSE On to HSE Bypass are not + * supported by this macro. User should request a transition to HSE Off + * first and then HSE On or HSE Bypass. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) +{ + uint32_t tickstart; + uint32_t temp_sysclksrc; + uint32_t temp_pllckcfg; + + /* Check Null pointer */ + if (RCC_OscInitStruct == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + /*------------------------------- HSE Configuration ------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + { + /* Check the parameters */ + assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); + + temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE(); + temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + + /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ + if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSE)) || (temp_sysclksrc == RCC_CFGR_SWS_HSE)) + { + if ((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + { + return HAL_ERROR; + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + + /* Check the HSE State */ + if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till HSE is ready */ + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till HSE is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + { + /* Check the parameters */ + assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); + assert_param(IS_RCC_HSI_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + + /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ + temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE(); + temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSI)) || (temp_sysclksrc == RCC_CFGR_SWS_HSI)) + { + /* When HSI is used as system clock it will not be disabled */ + if ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) + { + return HAL_ERROR; + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + + /* Adapt Systick interrupt period */ + if (HAL_InitTick(uwTickPrio) != HAL_OK) + { + return HAL_ERROR; + } + } + } + else + { + /* Check the HSI State */ + if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till HSI is ready */ + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till HSI is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till LSI is ready */ + while (READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) + { + if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till LSI is disabled */ + while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) + { + if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + { + FlagStatus pwrclkchanged = RESET; + + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain if necessary */ + if (__HAL_RCC_PWR_IS_CLK_DISABLED() != 0U) + { + __HAL_RCC_PWR_CLK_ENABLE(); + pwrclkchanged = SET; + } + + if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR1, PWR_CR1_DBP); + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + + while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + { + if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + + /* Check the LSE State */ + if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till LSE is ready */ + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till LSE is disabled */ + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /* Restore clock configuration if changed */ + if (pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } + } + + /*------------------------------ HSI48 Configuration -----------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI48) == RCC_OSCILLATORTYPE_HSI48) + { + /* Check the parameters */ + assert_param(IS_RCC_HSI48(RCC_OscInitStruct->HSI48State)); + + /* Check the HSI48 State */ + if(RCC_OscInitStruct->HSI48State != RCC_HSI48_OFF) + { + /* Enable the Internal Low Speed oscillator (HSI48). */ + __HAL_RCC_HSI48_ENABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till HSI48 is ready */ + while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == 0U) + { + if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Disable the Internal Low Speed oscillator (HSI48). */ + __HAL_RCC_HSI48_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till HSI48 is disabled */ + while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) != 0U) + { + if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + + if (RCC_OscInitStruct->PLL.PLLState != RCC_PLL_NONE) + { + /* Check if the PLL is used as system clock or not */ + if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_CFGR_SWS_PLL) + { + if (RCC_OscInitStruct->PLL.PLLState == RCC_PLL_ON) + { + /* Check the parameters */ + assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); + assert_param(IS_RCC_PLLM_VALUE(RCC_OscInitStruct->PLL.PLLM)); + assert_param(IS_RCC_PLLN_VALUE(RCC_OscInitStruct->PLL.PLLN)); + assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->PLL.PLLP)); + assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); + assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Configure the main PLL clock source, multiplication and division factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + RCC_OscInitStruct->PLL.PLLM, + RCC_OscInitStruct->PLL.PLLN, + RCC_OscInitStruct->PLL.PLLP, + RCC_OscInitStruct->PLL.PLLQ, + RCC_OscInitStruct->PLL.PLLR); + + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + + /* Enable PLL System Clock output. */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL is ready */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Unselect PLL clock source and disable outputs to save power */ + RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_ADCCLK); + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + { + return HAL_ERROR; + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + temp_pllckcfg = RCC->PLLCFGR; + if((READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC_PLLCFGR_PLLM_Pos)) || + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFGR_PLLN_Pos)) || + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLLCFGR_PLLPDIV_Pos)) || + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || + (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U) << RCC_PLLCFGR_PLLR_Pos))) + { + return HAL_ERROR; + } + } + } + } + + return HAL_OK; +} + +/** + * @brief Initialize the CPU, AHB and APB buses clocks according to the specified + * parameters in the RCC_ClkInitStruct. + * @param RCC_ClkInitStruct pointer to an RCC_OscInitTypeDef structure that + * contains the configuration information for the RCC peripheral. + * @param FLatency FLASH Latency + * This parameter can be one of the following values: + * @arg FLASH_LATENCY_0 FLASH 0 Latency cycle + * @arg FLASH_LATENCY_1 FLASH 1 Latency cycle + * @arg FLASH_LATENCY_2 FLASH 2 Latency cycles + * @arg FLASH_LATENCY_3 FLASH 3 Latency cycles + * @arg FLASH_LATENCY_4 FLASH 4 Latency cycles + * @arg FLASH_LATENCY_5 FLASH 5 Latency cycles + * @arg FLASH_LATENCY_6 FLASH 6 Latency cycles + * @arg FLASH_LATENCY_7 FLASH 7 Latency cycles + * @arg FLASH_LATENCY_8 FLASH 8 Latency cycles + * @arg FLASH_LATENCY_9 FLASH 9 Latency cycles + * @arg FLASH_LATENCY_10 FLASH 10 Latency cycles + * @arg FLASH_LATENCY_11 FLASH 11 Latency cycles + * @arg FLASH_LATENCY_12 FLASH 12 Latency cycles + * @arg FLASH_LATENCY_13 FLASH 13 Latency cycles + * @arg FLASH_LATENCY_14 FLASH 14 Latency cycles + * @arg FLASH_LATENCY_15 FLASH 15 Latency cycles + * + * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency + * and updated by HAL_RCC_GetHCLKFreq() function called within this function + * + * @note The HSI is used by default as system clock source after + * startup from Reset, wake-up from STANDBY mode. After restart from Reset, + * the HSI frequency is set to its default value 16 MHz. + * + * @note The HSI can be selected as system clock source after + * from STOP modes or in case of failure of the HSE used directly or indirectly + * as system clock (if the Clock Security System CSS is enabled). + * + * @note A switch from one clock source to another occurs only if the target + * clock source is ready (clock stable after startup delay or PLL locked). + * If a clock source which is not yet ready is selected, the switch will + * occur when the clock source is ready. + * + * @note You can use HAL_RCC_GetClockConfig() function to know which clock is + * currently used as system clock source. + * + * @note Depending on the device voltage range, the software has to set correctly + * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + * (for more details refer to section above "Initialization/de-initialization functions") + * @retval None + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + uint32_t tickstart; + uint32_t pllfreq; + uint32_t hpre = RCC_SYSCLK_DIV1; + + /* Check Null pointer */ + if (RCC_ClkInitStruct == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_RCC_CLOCKTYPE(RCC_ClkInitStruct->ClockType)); + assert_param(IS_FLASH_LATENCY(FLatency)); + + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + + /* Increasing the number of wait states because of higher CPU frequency */ + if (FLatency > __HAL_FLASH_GET_LATENCY()) + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if (__HAL_FLASH_GET_LATENCY() != FLatency) + { + return HAL_ERROR; + } + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* PLL is selected as System Clock Source */ + if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + { + /* Check the PLL ready flag */ + if (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + { + return HAL_ERROR; + } + /* Undershoot management when selection PLL as SYSCLK source and frequency above 80Mhz */ + /* Compute target PLL output frequency */ + pllfreq = RCC_GetSysClockFreqFromPLLSource(); + + /* Intermediate step with HCLK prescaler 2 necessary before to go over 80Mhz */ + if(pllfreq > 80000000U) + { + if (((READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1)) || + (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + (RCC_ClkInitStruct->AHBCLKDivider == RCC_SYSCLK_DIV1)))) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); + hpre = RCC_SYSCLK_DIV2; + } + } + } + else + { + /* HSE is selected as System Clock Source */ + if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + { + /* Check the HSE ready flag */ + if(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + { + return HAL_ERROR; + } + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + { + return HAL_ERROR; + } + } + /* Overshoot management when going down from PLL as SYSCLK source and frequency above 80Mhz */ + pllfreq = HAL_RCC_GetSysClockFreq(); + + /* Intermediate step with HCLK prescaler 2 necessary before to go under 80Mhz */ + if(pllfreq > 80000000U) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); + hpre = RCC_SYSCLK_DIV2; + } + + } + + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + { + /* Set the highest APB divider in order to ensure that we do not go through + a non-spec phase whatever we decrease or increase HCLK. */ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + } + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, RCC_HCLK_DIV16); + } + + /* Set the new HCLK clock divider */ + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + } + else + { + /* Is intermediate HCLK prescaler 2 applied internally, complete with HCLK prescaler 1 */ + if(hpre == RCC_SYSCLK_DIV2) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV1); + } + } + + /* Decreasing the number of wait states because of lower CPU frequency */ + if (FLatency < __HAL_FLASH_GET_LATENCY()) + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + + /* Check that the new number of wait states is taken into account to access the Flash + memory by polling the FLASH_ACR register */ + tickstart = HAL_GetTick(); + + while (__HAL_FLASH_GET_LATENCY() != FLatency) + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU); + + /* Configure the source of time base considering new system clocks settings*/ + return HAL_InitTick(uwTickPrio); +} + +/** + * @} + */ + +/** @defgroup RCC_Exported_Functions_Group2 Peripheral Control functions + * @brief RCC clocks control functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to: + + (+) Output clock to MCO pin. + (+) Retrieve current clock frequencies. + (+) Enable the Clock Security System. + +@endverbatim + * @{ + */ + +/** + * @brief Select the clock source to output on MCO pin(PA8/PG10). + * @note PA8/PG10 should be configured in alternate function mode. + * @note The default configuration of the GPIOG pin 10 (PG10) is set to reset mode (NRST pin) + * and user shall set the NRST_MODE Bit in the FLASH OPTR register to be able to use it + * as an MCO pin. + * The @ref HAL_FLASHEx_OBProgram() API can be used to configure the NRST_MODE Bit value. + * @param RCC_MCOx specifies the output direction for the clock source. + * For STM32G4xx family this parameter can have only one value: + * @arg @ref RCC_MCO_PA8 Clock source to output on MCO1 pin(PA8). + * @arg @ref RCC_MCO_PG10 Clock source to output on MCO1 pin(PG10). + * @param RCC_MCOSource specifies the clock source to output. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1SOURCE_NOCLOCK MCO output disabled, no clock on MCO + * @arg @ref RCC_MCO1SOURCE_SYSCLK system clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_HSI HSI clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_HSE HSE clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLLCLK main PLL clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_LSI LSI clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_LSE LSE clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_HSI48 HSI48 clock selected as MCO source for devices with HSI48 + * @param RCC_MCODiv specifies the MCO prescaler. + * This parameter can be one of the following values: + * @arg @ref RCC_MCODIV_1 no division applied to MCO clock + * @arg @ref RCC_MCODIV_2 division by 2 applied to MCO clock + * @arg @ref RCC_MCODIV_4 division by 4 applied to MCO clock + * @arg @ref RCC_MCODIV_8 division by 8 applied to MCO clock + * @arg @ref RCC_MCODIV_16 division by 16 applied to MCO clock + * @retval None + */ +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv) +{ + GPIO_InitTypeDef gpio_initstruct; + uint32_t mcoindex; + uint32_t mco_gpio_index; + GPIO_TypeDef * mco_gpio_port; + + /* Check the parameters */ + assert_param(IS_RCC_MCO(RCC_MCOx)); + + /* Common GPIO init parameters */ + gpio_initstruct.Mode = GPIO_MODE_AF_PP; + gpio_initstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + gpio_initstruct.Pull = GPIO_NOPULL; + + /* Get MCOx selection */ + mcoindex = RCC_MCOx & RCC_MCO_INDEX_MASK; + + /* Get MCOx GPIO Port */ + mco_gpio_port = (GPIO_TypeDef *) RCC_GET_MCO_GPIO_PORT(RCC_MCOx); + + /* MCOx Clock Enable */ + mco_gpio_index = RCC_GET_MCO_GPIO_INDEX(RCC_MCOx); + SET_BIT(RCC->AHB2ENR, (1UL << mco_gpio_index )); + + /* Configure the MCOx pin in alternate function mode */ + gpio_initstruct.Pin = RCC_GET_MCO_GPIO_PIN(RCC_MCOx); + gpio_initstruct.Alternate = RCC_GET_MCO_GPIO_AF(RCC_MCOx); + HAL_GPIO_Init(mco_gpio_port, &gpio_initstruct); + + if (mcoindex == RCC_MCO1_INDEX) + { + assert_param(IS_RCC_MCODIV(RCC_MCODiv)); + assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource)); + /* Mask MCOSEL[] and MCOPRE[] bits then set MCO clock source and prescaler */ + MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE), (RCC_MCOSource | RCC_MCODiv)); + } +} + +/** + * @brief Return the SYSCLK frequency. + * + * @note The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * @note If SYSCLK source is HSI, function returns values based on HSI_VALUE(*) + * @note If SYSCLK source is HSE, function returns values based on HSE_VALUE(**) + * @note If SYSCLK source is PLL, function returns values based on HSE_VALUE(**), + * HSI_VALUE(*) Value multiplied/divided by the PLL factors. + * @note (*) HSI_VALUE is a constant defined in stm32g4xx_hal_conf.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * @note (**) HSE_VALUE is a constant defined in stm32g4xx_hal_conf.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * @note The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @note This function can be used by the user application to compute the + * baudrate for the communication peripherals or configure other parameters. + * + * @note Each time SYSCLK changes, this function must be called to update the + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + uint32_t pllvco, pllsource, pllr, pllm; + uint32_t sysclockfreq; + + if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) + { + /* HSI used as system clock source */ + sysclockfreq = HSI_VALUE; + } + else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) + { + /* HSE used as system clock source */ + sysclockfreq = HSE_VALUE; + } + else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) + { + /* PLL used as system clock source */ + + /* PLL_VCO = ((HSE_VALUE or HSI_VALUE)/ PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); + pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + + switch (pllsource) + { + case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + break; + + case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ + default: + pllvco = (HSI_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + break; + } + pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; + sysclockfreq = pllvco/pllr; + } + else + { + sysclockfreq = 0U; + } + + return sysclockfreq; +} + +/** + * @brief Return the HCLK frequency. + * @note Each time HCLK changes, this function must be called to update the + * right HCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. + * @retval HCLK frequency in Hz + */ +uint32_t HAL_RCC_GetHCLKFreq(void) +{ + return SystemCoreClock; +} + +/** + * @brief Return the PCLK1 frequency. + * @note Each time PCLK1 changes, this function must be called to update the + * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. + * @retval PCLK1 frequency in Hz + */ +uint32_t HAL_RCC_GetPCLK1Freq(void) +{ + /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq() >> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos] & 0x1FU)); +} + +/** + * @brief Return the PCLK2 frequency. + * @note Each time PCLK2 changes, this function must be called to update the + * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. + * @retval PCLK2 frequency in Hz + */ +uint32_t HAL_RCC_GetPCLK2Freq(void) +{ + /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq()>> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos] & 0x1FU)); +} + +/** + * @brief Configure the RCC_OscInitStruct according to the internal + * RCC configuration registers. + * @param RCC_OscInitStruct pointer to an RCC_OscInitTypeDef structure that + * will be configured. + * @retval None + */ +void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) +{ + /* Check the parameters */ + assert_param(RCC_OscInitStruct != (void *)NULL); + + /* Set all possible values for the Oscillator type parameter ---------------*/ + RCC_OscInitStruct->OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | \ + RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSI48; + + /* Get the HSE configuration -----------------------------------------------*/ + if(READ_BIT(RCC->CR, RCC_CR_HSEBYP) == RCC_CR_HSEBYP) + { + RCC_OscInitStruct->HSEState = RCC_HSE_BYPASS; + } + else if(READ_BIT(RCC->CR, RCC_CR_HSEON) == RCC_CR_HSEON) + { + RCC_OscInitStruct->HSEState = RCC_HSE_ON; + } + else + { + RCC_OscInitStruct->HSEState = RCC_HSE_OFF; + } + + /* Get the HSI configuration -----------------------------------------------*/ + if(READ_BIT(RCC->CR, RCC_CR_HSION) == RCC_CR_HSION) + { + RCC_OscInitStruct->HSIState = RCC_HSI_ON; + } + else + { + RCC_OscInitStruct->HSIState = RCC_HSI_OFF; + } + + RCC_OscInitStruct->HSICalibrationValue = READ_BIT(RCC->ICSCR, RCC_ICSCR_HSITRIM) >> RCC_ICSCR_HSITRIM_Pos; + + /* Get the LSE configuration -----------------------------------------------*/ + if(READ_BIT(RCC->BDCR, RCC_BDCR_LSEBYP) == RCC_BDCR_LSEBYP) + { + RCC_OscInitStruct->LSEState = RCC_LSE_BYPASS; + } + else if(READ_BIT(RCC->BDCR, RCC_BDCR_LSEON) == RCC_BDCR_LSEON) + { + RCC_OscInitStruct->LSEState = RCC_LSE_ON; + } + else + { + RCC_OscInitStruct->LSEState = RCC_LSE_OFF; + } + + /* Get the LSI configuration -----------------------------------------------*/ + if(READ_BIT(RCC->CSR, RCC_CSR_LSION) == RCC_CSR_LSION) + { + RCC_OscInitStruct->LSIState = RCC_LSI_ON; + } + else + { + RCC_OscInitStruct->LSIState = RCC_LSI_OFF; + } + + /* Get the HSI48 configuration ---------------------------------------------*/ + if(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON) == RCC_CRRCR_HSI48ON) + { + RCC_OscInitStruct->HSI48State = RCC_HSI48_ON; + } + else + { + RCC_OscInitStruct->HSI48State = RCC_HSI48_OFF; + } + + /* Get the PLL configuration -----------------------------------------------*/ + if(READ_BIT(RCC->CR, RCC_CR_PLLON) == RCC_CR_PLLON) + { + RCC_OscInitStruct->PLL.PLLState = RCC_PLL_ON; + } + else + { + RCC_OscInitStruct->PLL.PLLState = RCC_PLL_OFF; + } + RCC_OscInitStruct->PLL.PLLSource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); + RCC_OscInitStruct->PLL.PLLM = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U; + RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U) << 1U); + RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; +} + +/** + * @brief Configure the RCC_ClkInitStruct according to the internal + * RCC configuration registers. + * @param RCC_ClkInitStruct pointer to an RCC_ClkInitTypeDef structure that + * will be configured. + * @param pFLatency Pointer on the Flash Latency. + * @retval None + */ +void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency) +{ + /* Check the parameters */ + assert_param(RCC_ClkInitStruct != (void *)NULL); + assert_param(pFLatency != (void *)NULL); + + /* Set all possible values for the Clock type parameter --------------------*/ + RCC_ClkInitStruct->ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + + /* Get the SYSCLK configuration --------------------------------------------*/ + RCC_ClkInitStruct->SYSCLKSource = READ_BIT(RCC->CFGR, RCC_CFGR_SW); + + /* Get the HCLK configuration ----------------------------------------------*/ + RCC_ClkInitStruct->AHBCLKDivider = READ_BIT(RCC->CFGR, RCC_CFGR_HPRE); + + /* Get the APB1 configuration ----------------------------------------------*/ + RCC_ClkInitStruct->APB1CLKDivider = READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1); + + /* Get the APB2 configuration ----------------------------------------------*/ + RCC_ClkInitStruct->APB2CLKDivider = (READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> 3U); + + /* Get the Flash Wait State (Latency) configuration ------------------------*/ + *pFLatency = __HAL_FLASH_GET_LATENCY(); +} + +/** + * @brief Enable the Clock Security System. + * @note If a failure is detected on the HSE oscillator clock, this oscillator + * is automatically disabled and an interrupt is generated to inform the + * software about the failure (Clock Security System Interrupt, CSSI), + * allowing the MCU to perform rescue operations. The CSSI is linked to + * the Cortex-M4 NMI (Non-Maskable Interrupt) exception vector. + * @note The Clock Security System can only be cleared by reset. + * @retval None + */ +void HAL_RCC_EnableCSS(void) +{ + SET_BIT(RCC->CR, RCC_CR_CSSON) ; +} + +/** + * @brief Enable the LSE Clock Security System. + * @note If a failure is detected on the external 32 kHz oscillator, + * the LSE clock is no longer supplied to the RTC but no hardware action + * is made to the registers. If enabled, an interrupt will be generated + * and handle through @ref RCCEx_EXTI_LINE_LSECSS + * @note The Clock Security System can only be cleared by reset or after a LSE failure detection. + * @retval None + */ +void HAL_RCC_EnableLSECSS(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; +} + +/** + * @brief Disable the LSE Clock Security System. + * @note After LSE failure detection, the software must disable LSECSSON + * @note The Clock Security System can only be cleared by reset otherwise. + * @retval None + */ +void HAL_RCC_DisableLSECSS(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; +} + +/** + * @brief Handle the RCC Clock Security System interrupt request. + * @note This API should be called under the NMI_Handler(). + * @retval None + */ +void HAL_RCC_NMI_IRQHandler(void) +{ + /* Check RCC CSSF interrupt flag */ + if(__HAL_RCC_GET_IT(RCC_IT_CSS)) + { + /* RCC Clock Security System interrupt user callback */ + HAL_RCC_CSSCallback(); + + /* Clear RCC CSS pending bit */ + __HAL_RCC_CLEAR_IT(RCC_IT_CSS); + } +} + +/** + * @brief RCC Clock Security System interrupt callback. + * @retval none + */ +__weak void HAL_RCC_CSSCallback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_RCC_CSSCallback should be implemented in the user file + */ +} + +/** + * @} + */ + +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/** @addtogroup RCC_Private_Functions + * @{ + */ + +/** + * @brief Compute SYSCLK frequency based on PLL SYSCLK source. + * @retval SYSCLK frequency + */ +static uint32_t RCC_GetSysClockFreqFromPLLSource(void) +{ + uint32_t pllvco, pllsource, pllr, pllm; + uint32_t sysclockfreq; + + /* PLL_VCO = (HSE_VALUE or HSI_VALUE/ PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); + pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + + switch (pllsource) + { + case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + break; + + case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ + default: + pllvco = (HSI_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos); + break; + } + + pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; + sysclockfreq = pllvco/pllr; + + return sysclockfreq; +} + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c new file mode 100644 index 0000000..593e984 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c @@ -0,0 +1,1873 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_rcc_ex.c + * @author MCD Application Team + * @brief Extended RCC HAL module driver. + * This file provides firmware functions to manage the following + * functionalities RCC extended peripheral: + * + Extended Peripheral Control functions + * + Extended Clock management functions + * + Extended Clock Recovery System Control functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup RCCEx RCCEx + * @brief RCC Extended HAL module driver + * @{ + */ + +#ifdef HAL_RCC_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private defines -----------------------------------------------------------*/ +/** @defgroup RCCEx_Private_Constants RCCEx Private Constants + * @{ + */ +#define PLL_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ + +#define DIVIDER_P_UPDATE 0U +#define DIVIDER_Q_UPDATE 1U +#define DIVIDER_R_UPDATE 2U + +#define __LSCO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() +#define LSCO_GPIO_PORT GPIOA +#define LSCO_PIN GPIO_PIN_2 +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup RCCEx_Private_Functions RCCEx Private Functions + * @{ + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Functions RCCEx Exported Functions + * @{ + */ + +/** @defgroup RCCEx_Exported_Functions_Group1 Extended Peripheral Control functions + * @brief Extended Peripheral Control functions + * +@verbatim + =============================================================================== + ##### Extended Peripheral Control functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the RCC Clocks + frequencies. + [..] + (@) Important note: Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to + select the RTC clock source; in this case the Backup domain will be reset in + order to modify the RTC Clock source, as consequence RTC registers (including + the backup registers) are set to their reset values. + +@endverbatim + * @{ + */ +/** + * @brief Initialize the RCC extended peripherals clocks according to the specified + * parameters in the RCC_PeriphCLKInitTypeDef. + * @param PeriphClkInit pointer to an RCC_PeriphCLKInitTypeDef structure that + * contains a field PeriphClockSelection which can be a combination of the following values: + * @arg @ref RCC_PERIPHCLK_RTC RTC peripheral clock + * @arg @ref RCC_PERIPHCLK_USART1 USART1 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock (only for devices with UART4) + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock (only for devices with UART5) + * @arg @ref RCC_PERIPHCLK_LPUART1 LPUART1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C1 I2C1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C4 I2C4 peripheral clock (only for devices with I2C4) + * @arg @ref RCC_PERIPHCLK_LPTIM1 LPTIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_SAI1 SAI1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_FDCAN FDCAN peripheral clock (only for devices with FDCAN) + * @arg @ref RCC_PERIPHCLK_RNG RNG peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock (only for devices with USB) + * @arg @ref RCC_PERIPHCLK_ADC12 ADC1 and ADC2 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC345 ADC3, ADC4 and ADC5 peripheral clock (only for devices with ADC3, ADC4, ADC5) + * @arg @ref RCC_PERIPHCLK_QSPI QuadSPI peripheral clock (only for devices with QuadSPI) + * + * @note Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to select + * the RTC clock source: in this case the access to Backup domain is enabled. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + uint32_t tmpregister; + uint32_t tickstart; + HAL_StatusTypeDef ret = HAL_OK; /* Intermediate status */ + HAL_StatusTypeDef status = HAL_OK; /* Final status */ + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); + + /*-------------------------- RTC clock source configuration ----------------------*/ + if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) + { + FlagStatus pwrclkchanged = RESET; + + /* Check for RTC Parameters used to output RTCCLK */ + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + + /* Enable Power Clock */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + { + __HAL_RCC_PWR_CLK_ENABLE(); + pwrclkchanged = SET; + } + + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR1, PWR_CR1_DBP); + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + + while((PWR->CR1 & PWR_CR1_DBP) == 0U) + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + { + ret = HAL_TIMEOUT; + break; + } + } + + if(ret == HAL_OK) + { + /* Reset the Backup domain only if the RTC Clock source selection is modified from default */ + tmpregister = READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL); + + if((tmpregister != RCC_RTCCLKSOURCE_NONE) && (tmpregister != PeriphClkInit->RTCClockSelection)) + { + /* Store the content of BDCR register before the reset of Backup Domain */ + tmpregister = READ_BIT(RCC->BDCR, ~(RCC_BDCR_RTCSEL)); + /* RTC Clock selection can be changed only if the Backup Domain is reset */ + __HAL_RCC_BACKUPRESET_FORCE(); + __HAL_RCC_BACKUPRESET_RELEASE(); + /* Restore the Content of BDCR register */ + RCC->BDCR = tmpregister; + } + + /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ + if (HAL_IS_BIT_SET(tmpregister, RCC_BDCR_LSEON)) + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till LSE is ready */ + while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + { + ret = HAL_TIMEOUT; + break; + } + } + } + + if(ret == HAL_OK) + { + /* Apply new RTC clock source selection */ + __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); + } + else + { + /* set overall return value */ + status = ret; + } + } + else + { + /* set overall return value */ + status = ret; + } + + /* Restore clock configuration if changed */ + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } + } + + /*-------------------------- USART1 clock source configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) + { + /* Check the parameters */ + assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); + + /* Configure the USART1 clock source */ + __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); + } + + /*-------------------------- USART2 clock source configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) + { + /* Check the parameters */ + assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); + + /* Configure the USART2 clock source */ + __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); + } + +#if defined(USART3) + + /*-------------------------- USART3 clock source configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) + { + /* Check the parameters */ + assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); + + /* Configure the USART3 clock source */ + __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); + } + +#endif /* USART3 */ + +#if defined(UART4) + /*-------------------------- UART4 clock source configuration --------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) + { + /* Check the parameters */ + assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); + + /* Configure the UART4 clock source */ + __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); + } +#endif /* UART4 */ + +#if defined(UART5) + + /*-------------------------- UART5 clock source configuration --------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) + { + /* Check the parameters */ + assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); + + /* Configure the UART5 clock source */ + __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); + } + +#endif /* UART5 */ + + /*-------------------------- LPUART1 clock source configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) + { + /* Check the parameters */ + assert_param(IS_RCC_LPUART1CLKSOURCE(PeriphClkInit->Lpuart1ClockSelection)); + + /* Configure the LPUAR1 clock source */ + __HAL_RCC_LPUART1_CONFIG(PeriphClkInit->Lpuart1ClockSelection); + } + + /*-------------------------- I2C1 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) + { + /* Check the parameters */ + assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); + + /* Configure the I2C1 clock source */ + __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); + } + + /*-------------------------- I2C2 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) + { + /* Check the parameters */ + assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); + + /* Configure the I2C2 clock source */ + __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); + } +#if defined(I2C3) + + /*-------------------------- I2C3 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) + { + /* Check the parameters */ + assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); + + /* Configure the I2C3 clock source */ + __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); + } + +#endif /* I2C3 */ +#if defined(I2C4) + + /*-------------------------- I2C4 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) + { + /* Check the parameters */ + assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); + + /* Configure the I2C4 clock source */ + __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); + } + +#endif /* I2C4 */ + + /*-------------------------- LPTIM1 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) + { + /* Check the parameters */ + assert_param(IS_RCC_LPTIM1CLKSOURCE(PeriphClkInit->Lptim1ClockSelection)); + + /* Configure the LPTIM1 clock source */ + __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); + } + +#if defined(SAI1) + /*-------------------------- SAI1 clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) + { + /* Check the parameters */ + assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); + + /* Configure the SAI1 interface clock source */ + __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); + + if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLL) + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + } + } + +#endif /* SAI1 */ + +#if defined(SPI_I2S_SUPPORT) + /*-------------------------- I2S clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) + { + /* Check the parameters */ + assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); + + /* Configure the I2S interface clock source */ + __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); + + if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLL) + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + } + } + +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) + /*-------------------------- FDCAN clock source configuration ---------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) + { + /* Check the parameters */ + assert_param(IS_RCC_FDCANCLKSOURCE(PeriphClkInit->FdcanClockSelection)); + + /* Configure the FDCAN interface clock source */ + __HAL_RCC_FDCAN_CONFIG(PeriphClkInit->FdcanClockSelection); + + if(PeriphClkInit->FdcanClockSelection == RCC_FDCANCLKSOURCE_PLL) + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + } + } +#endif /* FDCAN1 */ + +#if defined(USB) + + /*-------------------------- USB clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == (RCC_PERIPHCLK_USB)) + { + assert_param(IS_RCC_USBCLKSOURCE(PeriphClkInit->UsbClockSelection)); + __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection); + + if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLL) + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + } + } + +#endif /* USB */ + + /*-------------------------- RNG clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RNG) == (RCC_PERIPHCLK_RNG)) + { + assert_param(IS_RCC_RNGCLKSOURCE(PeriphClkInit->RngClockSelection)); + __HAL_RCC_RNG_CONFIG(PeriphClkInit->RngClockSelection); + + if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLL) + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + } + } + + /*-------------------------- ADC12 clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) + { + /* Check the parameters */ + assert_param(IS_RCC_ADC12CLKSOURCE(PeriphClkInit->Adc12ClockSelection)); + + /* Configure the ADC12 interface clock source */ + __HAL_RCC_ADC12_CONFIG(PeriphClkInit->Adc12ClockSelection); + + if(PeriphClkInit->Adc12ClockSelection == RCC_ADC12CLKSOURCE_PLL) + { + /* Enable PLLADCCLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK); + } + } + +#if defined(ADC345_COMMON) + /*-------------------------- ADC345 clock source configuration ----------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC345) == RCC_PERIPHCLK_ADC345) + { + /* Check the parameters */ + assert_param(IS_RCC_ADC345CLKSOURCE(PeriphClkInit->Adc345ClockSelection)); + + /* Configure the ADC345 interface clock source */ + __HAL_RCC_ADC345_CONFIG(PeriphClkInit->Adc345ClockSelection); + + if(PeriphClkInit->Adc345ClockSelection == RCC_ADC345CLKSOURCE_PLL) + { + /* Enable PLLADCCLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK); + } + } +#endif /* ADC345_COMMON */ + +#if defined(QUADSPI) + + /*-------------------------- QuadSPIx clock source configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_QSPI) == RCC_PERIPHCLK_QSPI) + { + /* Check the parameters */ + assert_param(IS_RCC_QSPICLKSOURCE(PeriphClkInit->QspiClockSelection)); + + /* Configure the QuadSPI clock source */ + __HAL_RCC_QSPI_CONFIG(PeriphClkInit->QspiClockSelection); + + if(PeriphClkInit->QspiClockSelection == RCC_QSPICLKSOURCE_PLL) + { + /* Enable PLL48M1CLK output */ + __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + } + } + +#endif /* QUADSPI */ + + return status; +} + +/** + * @brief Get the RCC_ClkInitStruct according to the internal RCC configuration registers. + * @param PeriphClkInit pointer to an RCC_PeriphCLKInitTypeDef structure that + * returns the configuration information for the Extended Peripherals + * clocks(USART1, USART2, USART3, UART4, UART5, LPUART1, I2C1, I2C2, I2C3, I2C4, + * LPTIM1, SAI1, I2Sx, FDCANx, USB, RNG, ADCx, RTC, QSPI). + * @retval None + */ +void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + /* Set all possible values for the extended clock type parameter------------*/ + +#if defined(STM32G474xx) || defined(STM32G484xx) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | RCC_PERIPHCLK_UART4 | \ + RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_I2C4 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_FDCAN | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC345 | \ + RCC_PERIPHCLK_QSPI | \ + RCC_PERIPHCLK_RTC; + +#elif defined(STM32G414xx) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_FDCAN | RCC_PERIPHCLK_RNG | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_RTC; + +#elif defined(STM32G491xx) || defined(STM32G4A1xx) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | RCC_PERIPHCLK_UART4 | \ + RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_FDCAN | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC345 | \ + RCC_PERIPHCLK_QSPI | \ + RCC_PERIPHCLK_RTC; + +#elif defined(STM32G473xx) || defined(STM32G483xx) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | RCC_PERIPHCLK_UART4 | \ + RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_I2C4 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCLK_I2S | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC345 | \ + RCC_PERIPHCLK_QSPI | \ + RCC_PERIPHCLK_RTC; + +#elif defined(STM32G471xx) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | RCC_PERIPHCLK_UART4 | \ + RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_I2C4 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCLK_I2S | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_ADC12 | \ + RCC_PERIPHCLK_RTC; + +#elif defined(STM32G431xx) || defined(STM32G441xx) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | RCC_PERIPHCLK_UART4 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_FDCAN | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_ADC12 | \ + RCC_PERIPHCLK_RTC; +#elif defined(STM32G411xB) || defined(STM32G411xC) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_UART4 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_FDCAN | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_RTC; + +#elif defined(STM32GBK1CB) + + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_FDCAN | \ + RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_ADC12 | \ + RCC_PERIPHCLK_RTC; + +#endif /* STM32G474xx || STM32G484xx */ + + + /* Get the USART1 clock source ---------------------------------------------*/ + PeriphClkInit->Usart1ClockSelection = __HAL_RCC_GET_USART1_SOURCE(); + /* Get the USART2 clock source ---------------------------------------------*/ + PeriphClkInit->Usart2ClockSelection = __HAL_RCC_GET_USART2_SOURCE(); + +#if defined(USART3) + /* Get the USART3 clock source ---------------------------------------------*/ + PeriphClkInit->Usart3ClockSelection = __HAL_RCC_GET_USART3_SOURCE(); +#endif /* USART3 */ + +#if defined(UART4) + /* Get the UART4 clock source ----------------------------------------------*/ + PeriphClkInit->Uart4ClockSelection = __HAL_RCC_GET_UART4_SOURCE(); +#endif /* UART4 */ + +#if defined(UART5) + /* Get the UART5 clock source ----------------------------------------------*/ + PeriphClkInit->Uart5ClockSelection = __HAL_RCC_GET_UART5_SOURCE(); +#endif /* UART5 */ + + /* Get the LPUART1 clock source --------------------------------------------*/ + PeriphClkInit->Lpuart1ClockSelection = __HAL_RCC_GET_LPUART1_SOURCE(); + + /* Get the I2C1 clock source -----------------------------------------------*/ + PeriphClkInit->I2c1ClockSelection = __HAL_RCC_GET_I2C1_SOURCE(); + + /* Get the I2C2 clock source ----------------------------------------------*/ + PeriphClkInit->I2c2ClockSelection = __HAL_RCC_GET_I2C2_SOURCE(); + +#if defined(I2C3) + /* Get the I2C3 clock source -----------------------------------------------*/ + PeriphClkInit->I2c3ClockSelection = __HAL_RCC_GET_I2C3_SOURCE(); +#endif /* I2C3 */ + +#if defined(I2C4) + /* Get the I2C4 clock source -----------------------------------------------*/ + PeriphClkInit->I2c4ClockSelection = __HAL_RCC_GET_I2C4_SOURCE(); +#endif /* I2C4 */ + + /* Get the LPTIM1 clock source ---------------------------------------------*/ + PeriphClkInit->Lptim1ClockSelection = __HAL_RCC_GET_LPTIM1_SOURCE(); + +#if defined(SAI1) + /* Get the SAI1 clock source -----------------------------------------------*/ + PeriphClkInit->Sai1ClockSelection = __HAL_RCC_GET_SAI1_SOURCE(); +#endif /* SAI1 */ + +#if defined(SPI_I2S_SUPPORT) + /* Get the I2S clock source -----------------------------------------------*/ + PeriphClkInit->I2sClockSelection = __HAL_RCC_GET_I2S_SOURCE(); +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) + /* Get the FDCAN clock source -----------------------------------------------*/ + PeriphClkInit->FdcanClockSelection = __HAL_RCC_GET_FDCAN_SOURCE(); +#endif /* FDCAN1 */ + +#if defined(USB) + /* Get the USB clock source ------------------------------------------------*/ + PeriphClkInit->UsbClockSelection = __HAL_RCC_GET_USB_SOURCE(); +#endif /* USB */ + + /* Get the RNG clock source ------------------------------------------------*/ + PeriphClkInit->RngClockSelection = __HAL_RCC_GET_RNG_SOURCE(); + + /* Get the ADC12 clock source -----------------------------------------------*/ + PeriphClkInit->Adc12ClockSelection = __HAL_RCC_GET_ADC12_SOURCE(); + +#if defined(ADC345_COMMON) + /* Get the ADC345 clock source ----------------------------------------------*/ + PeriphClkInit->Adc345ClockSelection = __HAL_RCC_GET_ADC345_SOURCE(); +#endif /* ADC345_COMMON */ + +#if defined(QUADSPI) + /* Get the QuadSPIclock source --------------------------------------------*/ + PeriphClkInit->QspiClockSelection = __HAL_RCC_GET_QSPI_SOURCE(); +#endif /* QUADSPI */ + + /* Get the RTC clock source ------------------------------------------------*/ + PeriphClkInit->RTCClockSelection = __HAL_RCC_GET_RTC_SOURCE(); + +} + +/** + * @brief Return the peripheral clock frequency for peripherals with clock source from PLL + * @note Return 0 if peripheral clock identifier not managed by this API + * @param PeriphClk Peripheral clock identifier + * This parameter can be one of the following values: + * @arg @ref RCC_PERIPHCLK_USART1 USART1 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock (only for devices with UART4) + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock (only for devices with UART5) + * @arg @ref RCC_PERIPHCLK_LPUART1 LPUART1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C1 I2C1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C4 I2C4 peripheral clock (only for devices with I2C4) + * @arg @ref RCC_PERIPHCLK_LPTIM1 LPTIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_SAI1 SAI1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S SPI peripheral clock + * @arg @ref RCC_PERIPHCLK_FDCAN FDCAN peripheral clock (only for devices with FDCAN) + * @arg @ref RCC_PERIPHCLK_RNG RNG peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock (only for devices with USB) + * @arg @ref RCC_PERIPHCLK_ADC12 ADC1 and ADC2 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC345 ADC3, ADC4 and ADC5 peripheral clock (only for devices with ADC3, ADC4, ADC5) + * @arg @ref RCC_PERIPHCLK_QSPI QSPI peripheral clock (only for devices with QSPI) + * @arg @ref RCC_PERIPHCLK_RTC RTC peripheral clock + * @retval Frequency in Hz + */ +uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) +{ + uint32_t frequency = 0U; + uint32_t srcclk; + uint32_t pllvco, plln, pllp; + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClk)); + + if(PeriphClk == RCC_PERIPHCLK_RTC) + { + /* Get the current RTC source */ + srcclk = __HAL_RCC_GET_RTC_SOURCE(); + + /* Check if LSE is ready and if RTC clock selection is LSE */ + if ((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_RTCCLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Check if LSI is ready and if RTC clock selection is LSI */ + else if ((HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY)) && (srcclk == RCC_RTCCLKSOURCE_LSI)) + { + frequency = LSI_VALUE; + } + /* Check if HSE is ready and if RTC clock selection is HSI_DIV32*/ + else if ((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY)) && (srcclk == RCC_RTCCLKSOURCE_HSE_DIV32)) + { + frequency = HSE_VALUE / 32U; + } + /* Clock not enabled for RTC*/ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + } + else + { + /* Other external peripheral clock source than RTC */ + + /* Compute PLL clock input */ + if(__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI) /* HSI ? */ + { + if(HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) + { + pllvco = HSI_VALUE; + } + else + { + pllvco = 0U; + } + } + else if(__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) /* HSE ? */ + { + if(HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY)) + { + pllvco = HSE_VALUE; + } + else + { + pllvco = 0U; + } + } + else /* No source */ + { + pllvco = 0U; + } + + /* f(PLL Source) / PLLM */ + pllvco = (pllvco / ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U)); + + switch(PeriphClk) + { + + case RCC_PERIPHCLK_USART1: + /* Get the current USART1 source */ + srcclk = __HAL_RCC_GET_USART1_SOURCE(); + + if(srcclk == RCC_USART1CLKSOURCE_PCLK2) + { + frequency = HAL_RCC_GetPCLK2Freq(); + } + else if(srcclk == RCC_USART1CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_USART1CLKSOURCE_HSI) ) + { + frequency = HSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_USART1CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for USART1 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + + case RCC_PERIPHCLK_USART2: + /* Get the current USART2 source */ + srcclk = __HAL_RCC_GET_USART2_SOURCE(); + + if(srcclk == RCC_USART2CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_USART2CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_USART2CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_USART2CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for USART2 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#if defined(USART3) + case RCC_PERIPHCLK_USART3: + /* Get the current USART3 source */ + srcclk = __HAL_RCC_GET_USART3_SOURCE(); + + if(srcclk == RCC_USART3CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_USART3CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_USART3CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_USART3CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for USART3 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; +#endif /* USART3 */ + +#if defined(UART4) + case RCC_PERIPHCLK_UART4: + /* Get the current UART4 source */ + srcclk = __HAL_RCC_GET_UART4_SOURCE(); + + if(srcclk == RCC_UART4CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_UART4CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_UART4CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_UART4CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for UART4 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; +#endif /* UART4 */ + +#if defined(UART5) + case RCC_PERIPHCLK_UART5: + /* Get the current UART5 source */ + srcclk = __HAL_RCC_GET_UART5_SOURCE(); + + if(srcclk == RCC_UART5CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_UART5CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_UART5CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_UART5CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for UART5 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; +#endif /* UART5 */ + + case RCC_PERIPHCLK_LPUART1: + /* Get the current LPUART1 source */ + srcclk = __HAL_RCC_GET_LPUART1_SOURCE(); + + if(srcclk == RCC_LPUART1CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_LPUART1CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_LPUART1CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_LPUART1CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for LPUART1 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + + case RCC_PERIPHCLK_I2C1: + /* Get the current I2C1 source */ + srcclk = __HAL_RCC_GET_I2C1_SOURCE(); + + if(srcclk == RCC_I2C1CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_I2C1CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C1CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + /* Clock not enabled for I2C1 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + + case RCC_PERIPHCLK_I2C2: + /* Get the current I2C2 source */ + srcclk = __HAL_RCC_GET_I2C2_SOURCE(); + + if(srcclk == RCC_I2C2CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_I2C2CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C2CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + /* Clock not enabled for I2C2 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#if defined(I2C3) + + case RCC_PERIPHCLK_I2C3: + /* Get the current I2C3 source */ + srcclk = __HAL_RCC_GET_I2C3_SOURCE(); + + if(srcclk == RCC_I2C3CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_I2C3CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C3CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + /* Clock not enabled for I2C3 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#endif /* I2C3 */ + +#if defined(I2C4) + + case RCC_PERIPHCLK_I2C4: + /* Get the current I2C4 source */ + srcclk = __HAL_RCC_GET_I2C4_SOURCE(); + + if(srcclk == RCC_I2C4CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_I2C4CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C4CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + /* Clock not enabled for I2C4 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#endif /* I2C4 */ + + case RCC_PERIPHCLK_LPTIM1: + /* Get the current LPTIM1 source */ + srcclk = __HAL_RCC_GET_LPTIM1_SOURCE(); + + if(srcclk == RCC_LPTIM1CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if((HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY)) && (srcclk == RCC_LPTIM1CLKSOURCE_LSI)) + { + frequency = LSI_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_LPTIM1CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + else if ((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_LPTIM1CLKSOURCE_LSE)) + { + frequency = LSE_VALUE; + } + /* Clock not enabled for LPTIM1 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#if defined(SAI1) + + case RCC_PERIPHCLK_SAI1: + /* Get the current SAI1 source */ + srcclk = __HAL_RCC_GET_SAI1_SOURCE(); + + if(srcclk == RCC_SAI1CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if(srcclk == RCC_SAI1CLKSOURCE_PLL) + { + if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_48M1CLK) != 0U) + { + /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + } + } + else if(srcclk == RCC_SAI1CLKSOURCE_EXT) + { + /* External clock used.*/ + frequency = EXTERNAL_CLOCK_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_SAI1CLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + /* Clock not enabled for SAI1 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#endif /* SAI1 */ + +#if defined(SPI_I2S_SUPPORT) + case RCC_PERIPHCLK_I2S: + /* Get the current I2Sx source */ + srcclk = __HAL_RCC_GET_I2S_SOURCE(); + + if(srcclk == RCC_I2SCLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else if(srcclk == RCC_I2SCLKSOURCE_PLL) + { + if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_48M1CLK) != 0U) + { + /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + } + } + else if(srcclk == RCC_I2SCLKSOURCE_EXT) + { + /* External clock used.*/ + frequency = EXTERNAL_CLOCK_VALUE; + } + else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2SCLKSOURCE_HSI)) + { + frequency = HSI_VALUE; + } + /* Clock not enabled for I2S */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; +#endif /* SPI_I2S_SUPPORT */ + +#if defined(FDCAN1) + case RCC_PERIPHCLK_FDCAN: + /* Get the current FDCANx source */ + srcclk = __HAL_RCC_GET_FDCAN_SOURCE(); + + if(srcclk == RCC_FDCANCLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + else if(srcclk == RCC_FDCANCLKSOURCE_HSE) + { + frequency = HSE_VALUE; + } + else if(srcclk == RCC_FDCANCLKSOURCE_PLL) + { + if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_48M1CLK) != 0U) + { + /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + } + } + /* Clock not enabled for FDCAN */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; +#endif /* FDCAN1 */ + +#if defined(USB) + + case RCC_PERIPHCLK_USB: + /* Get the current USB source */ + srcclk = __HAL_RCC_GET_USB_SOURCE(); + + if(srcclk == RCC_USBCLKSOURCE_PLL) /* PLL ? */ + { + /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + } + else if((HAL_IS_BIT_SET(RCC->CRRCR, RCC_CRRCR_HSI48RDY)) && (srcclk == RCC_USBCLKSOURCE_HSI48)) /* HSI48 ? */ + { + frequency = HSI48_VALUE; + } + else /* No clock source */ + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#endif /* USB */ + + case RCC_PERIPHCLK_RNG: + /* Get the current RNG source */ + srcclk = __HAL_RCC_GET_RNG_SOURCE(); + + if(srcclk == RCC_RNGCLKSOURCE_PLL) /* PLL ? */ + { + /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + } + else if( (HAL_IS_BIT_SET(RCC->CRRCR, RCC_CRRCR_HSI48RDY)) && (srcclk == RCC_RNGCLKSOURCE_HSI48)) /* HSI48 ? */ + { + frequency = HSI48_VALUE; + } + else /* No clock source */ + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + + case RCC_PERIPHCLK_ADC12: + /* Get the current ADC12 source */ + srcclk = __HAL_RCC_GET_ADC12_SOURCE(); + + if(srcclk == RCC_ADC12CLKSOURCE_PLL) + { + if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_ADCCLK) != 0U) + { + /* f(PLLP) = f(VCO input) * PLLN / PLLP */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; + if(pllp == 0U) + { + if(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP) != 0U) + { + pllp = 17U; + } + else + { + pllp = 7U; + } + } + frequency = (pllvco * plln) / pllp; + } + } + else if(srcclk == RCC_ADC12CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Clock not enabled for ADC12 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#if defined(ADC345_COMMON) + case RCC_PERIPHCLK_ADC345: + /* Get the current ADC345 source */ + srcclk = __HAL_RCC_GET_ADC345_SOURCE(); + + if(srcclk == RCC_ADC345CLKSOURCE_PLL) + { + if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_ADCCLK) != 0U) + { + /* f(PLLP) = f(VCO input) * PLLN / PLLP */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; + if(pllp == 0U) + { + if(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP) != 0U) + { + pllp = 17U; + } + else + { + pllp = 7U; + } + } + frequency = (pllvco * plln) / pllp; + } + } + else if(srcclk == RCC_ADC345CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Clock not enabled for ADC345 */ + else + { + /* nothing to do: frequency already initialized to 0 */ + } + break; +#endif /* ADC345_COMMON */ + +#if defined(QUADSPI) + + case RCC_PERIPHCLK_QSPI: + /* Get the current QSPI source */ + srcclk = __HAL_RCC_GET_QSPI_SOURCE(); + + if(srcclk == RCC_QSPICLKSOURCE_PLL) /* PLL ? */ + { + /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ + plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U); + } + else if(srcclk == RCC_QSPICLKSOURCE_HSI) + { + frequency = HSI_VALUE; + } + else if(srcclk == RCC_QSPICLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + else /* No clock source */ + { + /* nothing to do: frequency already initialized to 0 */ + } + break; + +#endif /* QUADSPI */ + + default: + break; + } + } + + return(frequency); +} + +/** + * @} + */ + +/** @defgroup RCCEx_Exported_Functions_Group2 Extended Clock management functions + * @brief Extended Clock management functions + * +@verbatim + =============================================================================== + ##### Extended clock management functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the + activation or deactivation of LSE CSS, + Low speed clock output and clock after wake-up from STOP mode. +@endverbatim + * @{ + */ + +/** + * @brief Enable the LSE Clock Security System. + * @note Prior to enable the LSE Clock Security System, LSE oscillator is to be enabled + * with HAL_RCC_OscConfig() and the LSE oscillator clock is to be selected as RTC + * clock with HAL_RCCEx_PeriphCLKConfig(). + * @retval None + */ +void HAL_RCCEx_EnableLSECSS(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; +} + +/** + * @brief Disable the LSE Clock Security System. + * @note LSE Clock Security System can only be disabled after a LSE failure detection. + * @retval None + */ +void HAL_RCCEx_DisableLSECSS(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + + /* Disable LSE CSS IT if any */ + __HAL_RCC_DISABLE_IT(RCC_IT_LSECSS); +} + +/** + * @brief Enable the LSE Clock Security System Interrupt & corresponding EXTI line. + * @note LSE Clock Security System Interrupt is mapped on RTC EXTI line 19 + * @retval None + */ +void HAL_RCCEx_EnableLSECSS_IT(void) +{ + /* Enable LSE CSS */ + SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + + /* Enable LSE CSS IT */ + __HAL_RCC_ENABLE_IT(RCC_IT_LSECSS); + + /* Enable IT on EXTI Line 19 */ + __HAL_RCC_LSECSS_EXTI_ENABLE_IT(); + __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE(); +} + +/** + * @brief Handle the RCC LSE Clock Security System interrupt request. + * @retval None + */ +void HAL_RCCEx_LSECSS_IRQHandler(void) +{ + /* Check RCC LSE CSSF flag */ + if(__HAL_RCC_GET_IT(RCC_IT_LSECSS)) + { + /* RCC LSE Clock Security System interrupt user callback */ + HAL_RCCEx_LSECSS_Callback(); + + /* Clear RCC LSE CSS pending bit */ + __HAL_RCC_CLEAR_IT(RCC_IT_LSECSS); + } +} + +/** + * @brief RCCEx LSE Clock Security System interrupt callback. + * @retval none + */ +__weak void HAL_RCCEx_LSECSS_Callback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the @ref HAL_RCCEx_LSECSS_Callback should be implemented in the user file + */ +} + +/** + * @brief Select the Low Speed clock source to output on LSCO pin (PA2). + * @param LSCOSource specifies the Low Speed clock source to output. + * This parameter can be one of the following values: + * @arg @ref RCC_LSCOSOURCE_LSI LSI clock selected as LSCO source + * @arg @ref RCC_LSCOSOURCE_LSE LSE clock selected as LSCO source + * @retval None + */ +void HAL_RCCEx_EnableLSCO(uint32_t LSCOSource) +{ + GPIO_InitTypeDef GPIO_InitStruct; + FlagStatus pwrclkchanged = RESET; + FlagStatus backupchanged = RESET; + + /* Check the parameters */ + assert_param(IS_RCC_LSCOSOURCE(LSCOSource)); + + /* LSCO Pin Clock Enable */ + __LSCO_CLK_ENABLE(); + + /* Configure the LSCO pin in analog mode */ + GPIO_InitStruct.Pin = LSCO_PIN; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(LSCO_GPIO_PORT, &GPIO_InitStruct); + + /* Update LSCOSEL clock source in Backup Domain control register */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + { + __HAL_RCC_PWR_CLK_ENABLE(); + pwrclkchanged = SET; + } + if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + { + HAL_PWR_EnableBkUpAccess(); + backupchanged = SET; + } + + MODIFY_REG(RCC->BDCR, RCC_BDCR_LSCOSEL | RCC_BDCR_LSCOEN, LSCOSource | RCC_BDCR_LSCOEN); + + if(backupchanged == SET) + { + HAL_PWR_DisableBkUpAccess(); + } + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } +} + +/** + * @brief Disable the Low Speed clock output. + * @retval None + */ +void HAL_RCCEx_DisableLSCO(void) +{ + FlagStatus pwrclkchanged = RESET; + FlagStatus backupchanged = RESET; + + /* Update LSCOEN bit in Backup Domain control register */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + { + __HAL_RCC_PWR_CLK_ENABLE(); + pwrclkchanged = SET; + } + if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + { + /* Enable access to the backup domain */ + HAL_PWR_EnableBkUpAccess(); + backupchanged = SET; + } + + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSCOEN); + + /* Restore previous configuration */ + if(backupchanged == SET) + { + /* Disable access to the backup domain */ + HAL_PWR_DisableBkUpAccess(); + } + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } +} + + +/** + * @} + */ + +#if defined(CRS) + +/** @defgroup RCCEx_Exported_Functions_Group3 Extended Clock Recovery System Control functions + * @brief Extended Clock Recovery System Control functions + * +@verbatim + =============================================================================== + ##### Extended Clock Recovery System Control functions ##### + =============================================================================== + [..] + For devices with Clock Recovery System feature (CRS), RCC Extension HAL driver can be used as follows: + + (#) In System clock config, HSI48 needs to be enabled + + (#) Enable CRS clock in IP MSP init which will use CRS functions + + (#) Call CRS functions as follows: + (##) Prepare synchronization configuration necessary for HSI48 calibration + (+++) Default values can be set for frequency Error Measurement (reload and error limit) + and also HSI48 oscillator smooth trimming. + (+++) Macro __HAL_RCC_CRS_RELOADVALUE_CALCULATE can be also used to calculate + directly reload value with target and sychronization frequencies values + (##) Call function HAL_RCCEx_CRSConfig which + (+++) Resets CRS registers to their default values. + (+++) Configures CRS registers with synchronization configuration + (+++) Enables automatic calibration and frequency error counter feature + Note: When using USB LPM (Link Power Management) and the device is in Sleep mode, the + periodic USB SOF will not be generated by the host. No SYNC signal will therefore be + provided to the CRS to calibrate the HSI48 on the run. To guarantee the required clock + precision after waking up from Sleep mode, the LSE or reference clock on the GPIOs + should be used as SYNC signal. + + (##) A polling function is provided to wait for complete synchronization + (+++) Call function HAL_RCCEx_CRSWaitSynchronization() + (+++) According to CRS status, user can decide to adjust again the calibration or continue + application if synchronization is OK + + (#) User can retrieve information related to synchronization in calling function + HAL_RCCEx_CRSGetSynchronizationInfo() + + (#) Regarding synchronization status and synchronization information, user can try a new calibration + in changing synchronization configuration and call again HAL_RCCEx_CRSConfig. + Note: When the SYNC event is detected during the downcounting phase (before reaching the zero value), + it means that the actual frequency is lower than the target (and so, that the TRIM value should be + incremented), while when it is detected during the upcounting phase it means that the actual frequency + is higher (and that the TRIM value should be decremented). + + (#) In interrupt mode, user can resort to the available macros (__HAL_RCC_CRS_XXX_IT). Interrupts will go + through CRS Handler (CRS_IRQn/CRS_IRQHandler) + (++) Call function HAL_RCCEx_CRSConfig() + (++) Enable CRS_IRQn (thanks to NVIC functions) + (++) Enable CRS interrupt (__HAL_RCC_CRS_ENABLE_IT) + (++) Implement CRS status management in the following user callbacks called from + HAL_RCCEx_CRS_IRQHandler(): + (+++) HAL_RCCEx_CRS_SyncOkCallback() + (+++) HAL_RCCEx_CRS_SyncWarnCallback() + (+++) HAL_RCCEx_CRS_ExpectedSyncCallback() + (+++) HAL_RCCEx_CRS_ErrorCallback() + + (#) To force a SYNC EVENT, user can use the function HAL_RCCEx_CRSSoftwareSynchronizationGenerate(). + This function can be called before calling HAL_RCCEx_CRSConfig (for instance in Systick handler) + +@endverbatim + * @{ + */ + +/** + * @brief Start automatic synchronization for polling mode + * @param pInit Pointer on RCC_CRSInitTypeDef structure + * @retval None + */ +void HAL_RCCEx_CRSConfig(RCC_CRSInitTypeDef *pInit) +{ + uint32_t value; + + /* Check the parameters */ + assert_param(IS_RCC_CRS_SYNC_DIV(pInit->Prescaler)); + assert_param(IS_RCC_CRS_SYNC_SOURCE(pInit->Source)); + assert_param(IS_RCC_CRS_SYNC_POLARITY(pInit->Polarity)); + assert_param(IS_RCC_CRS_RELOADVALUE(pInit->ReloadValue)); + assert_param(IS_RCC_CRS_ERRORLIMIT(pInit->ErrorLimitValue)); + assert_param(IS_RCC_CRS_HSI48CALIBRATION(pInit->HSI48CalibrationValue)); + + /* CONFIGURATION */ + + /* Before configuration, reset CRS registers to their default values*/ + __HAL_RCC_CRS_FORCE_RESET(); + __HAL_RCC_CRS_RELEASE_RESET(); + + /* Set the SYNCDIV[2:0] bits according to Prescaler value */ + /* Set the SYNCSRC[1:0] bits according to Source value */ + /* Set the SYNCSPOL bit according to Polarity value */ + value = (pInit->Prescaler | pInit->Source | pInit->Polarity); + /* Set the RELOAD[15:0] bits according to ReloadValue value */ + value |= pInit->ReloadValue; + /* Set the FELIM[7:0] bits according to ErrorLimitValue value */ + value |= (pInit->ErrorLimitValue << CRS_CFGR_FELIM_Pos); + WRITE_REG(CRS->CFGR, value); + + /* Adjust HSI48 oscillator smooth trimming */ + /* Set the TRIM[6:0] bits according to RCC_CRS_HSI48CalibrationValue value */ + MODIFY_REG(CRS->CR, CRS_CR_TRIM, (pInit->HSI48CalibrationValue << CRS_CR_TRIM_Pos)); + + /* START AUTOMATIC SYNCHRONIZATION*/ + + /* Enable Automatic trimming & Frequency error counter */ + SET_BIT(CRS->CR, CRS_CR_AUTOTRIMEN | CRS_CR_CEN); +} + +/** + * @brief Generate the software synchronization event + * @retval None + */ +void HAL_RCCEx_CRSSoftwareSynchronizationGenerate(void) +{ + SET_BIT(CRS->CR, CRS_CR_SWSYNC); +} + +/** + * @brief Return synchronization info + * @param pSynchroInfo Pointer on RCC_CRSSynchroInfoTypeDef structure + * @retval None + */ +void HAL_RCCEx_CRSGetSynchronizationInfo(RCC_CRSSynchroInfoTypeDef *pSynchroInfo) +{ + /* Check the parameter */ + assert_param(pSynchroInfo != (void *)NULL); + + /* Get the reload value */ + pSynchroInfo->ReloadValue = (READ_BIT(CRS->CFGR, CRS_CFGR_RELOAD)); + + /* Get HSI48 oscillator smooth trimming */ + pSynchroInfo->HSI48CalibrationValue = (READ_BIT(CRS->CR, CRS_CR_TRIM) >> CRS_CR_TRIM_Pos); + + /* Get Frequency error capture */ + pSynchroInfo->FreqErrorCapture = (READ_BIT(CRS->ISR, CRS_ISR_FECAP) >> CRS_ISR_FECAP_Pos); + + /* Get Frequency error direction */ + pSynchroInfo->FreqErrorDirection = (READ_BIT(CRS->ISR, CRS_ISR_FEDIR)); +} + +/** +* @brief Wait for CRS Synchronization status. +* @param Timeout Duration of the timeout +* @note Timeout is based on the maximum time to receive a SYNC event based on synchronization +* frequency. +* @note If Timeout set to HAL_MAX_DELAY, HAL_TIMEOUT will be never returned. +* @retval Combination of Synchronization status +* This parameter can be a combination of the following values: +* @arg @ref RCC_CRS_TIMEOUT +* @arg @ref RCC_CRS_SYNCOK +* @arg @ref RCC_CRS_SYNCWARN +* @arg @ref RCC_CRS_SYNCERR +* @arg @ref RCC_CRS_SYNCMISS +* @arg @ref RCC_CRS_TRIMOVF +*/ +uint32_t HAL_RCCEx_CRSWaitSynchronization(uint32_t Timeout) +{ + uint32_t crsstatus = RCC_CRS_NONE; + uint32_t tickstart; + + /* Get timeout */ + tickstart = HAL_GetTick(); + + /* Wait for CRS flag or timeout detection */ + do + { + if(Timeout != HAL_MAX_DELAY) + { + if(((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + crsstatus = RCC_CRS_TIMEOUT; + } + } + /* Check CRS SYNCOK flag */ + if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCOK)) + { + /* CRS SYNC event OK */ + crsstatus |= RCC_CRS_SYNCOK; + + /* Clear CRS SYNC event OK bit */ + __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCOK); + } + + /* Check CRS SYNCWARN flag */ + if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCWARN)) + { + /* CRS SYNC warning */ + crsstatus |= RCC_CRS_SYNCWARN; + + /* Clear CRS SYNCWARN bit */ + __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCWARN); + } + + /* Check CRS TRIM overflow flag */ + if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_TRIMOVF)) + { + /* CRS SYNC Error */ + crsstatus |= RCC_CRS_TRIMOVF; + + /* Clear CRS Error bit */ + __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_TRIMOVF); + } + + /* Check CRS Error flag */ + if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCERR)) + { + /* CRS SYNC Error */ + crsstatus |= RCC_CRS_SYNCERR; + + /* Clear CRS Error bit */ + __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCERR); + } + + /* Check CRS SYNC Missed flag */ + if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCMISS)) + { + /* CRS SYNC Missed */ + crsstatus |= RCC_CRS_SYNCMISS; + + /* Clear CRS SYNC Missed bit */ + __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCMISS); + } + + /* Check CRS Expected SYNC flag */ + if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_ESYNC)) + { + /* frequency error counter reached a zero value */ + __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_ESYNC); + } + } while(RCC_CRS_NONE == crsstatus); + + return crsstatus; +} + +/** + * @brief Handle the Clock Recovery System interrupt request. + * @retval None + */ +void HAL_RCCEx_CRS_IRQHandler(void) +{ + uint32_t crserror = RCC_CRS_NONE; + /* Get current IT flags and IT sources values */ + uint32_t itflags = READ_REG(CRS->ISR); + uint32_t itsources = READ_REG(CRS->CR); + + /* Check CRS SYNCOK flag */ + if(((itflags & RCC_CRS_FLAG_SYNCOK) != 0U) && ((itsources & RCC_CRS_IT_SYNCOK) != 0U)) + { + /* Clear CRS SYNC event OK flag */ + WRITE_REG(CRS->ICR, CRS_ICR_SYNCOKC); + + /* user callback */ + HAL_RCCEx_CRS_SyncOkCallback(); + } + /* Check CRS SYNCWARN flag */ + else if(((itflags & RCC_CRS_FLAG_SYNCWARN) != 0U) && ((itsources & RCC_CRS_IT_SYNCWARN) != 0U)) + { + /* Clear CRS SYNCWARN flag */ + WRITE_REG(CRS->ICR, CRS_ICR_SYNCWARNC); + + /* user callback */ + HAL_RCCEx_CRS_SyncWarnCallback(); + } + /* Check CRS Expected SYNC flag */ + else if(((itflags & RCC_CRS_FLAG_ESYNC) != 0U) && ((itsources & RCC_CRS_IT_ESYNC) != 0U)) + { + /* frequency error counter reached a zero value */ + WRITE_REG(CRS->ICR, CRS_ICR_ESYNCC); + + /* user callback */ + HAL_RCCEx_CRS_ExpectedSyncCallback(); + } + /* Check CRS Error flags */ + else + { + if(((itflags & RCC_CRS_FLAG_ERR) != 0U) && ((itsources & RCC_CRS_IT_ERR) != 0U)) + { + if((itflags & RCC_CRS_FLAG_SYNCERR) != 0U) + { + crserror |= RCC_CRS_SYNCERR; + } + if((itflags & RCC_CRS_FLAG_SYNCMISS) != 0U) + { + crserror |= RCC_CRS_SYNCMISS; + } + if((itflags & RCC_CRS_FLAG_TRIMOVF) != 0U) + { + crserror |= RCC_CRS_TRIMOVF; + } + + /* Clear CRS Error flags */ + WRITE_REG(CRS->ICR, CRS_ICR_ERRC); + + /* user error callback */ + HAL_RCCEx_CRS_ErrorCallback(crserror); + } + } +} + +/** + * @brief RCCEx Clock Recovery System SYNCOK interrupt callback. + * @retval none + */ +__weak void HAL_RCCEx_CRS_SyncOkCallback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the @ref HAL_RCCEx_CRS_SyncOkCallback should be implemented in the user file + */ +} + +/** + * @brief RCCEx Clock Recovery System SYNCWARN interrupt callback. + * @retval none + */ +__weak void HAL_RCCEx_CRS_SyncWarnCallback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the @ref HAL_RCCEx_CRS_SyncWarnCallback should be implemented in the user file + */ +} + +/** + * @brief RCCEx Clock Recovery System Expected SYNC interrupt callback. + * @retval none + */ +__weak void HAL_RCCEx_CRS_ExpectedSyncCallback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the @ref HAL_RCCEx_CRS_ExpectedSyncCallback should be implemented in the user file + */ +} + +/** + * @brief RCCEx Clock Recovery System Error interrupt callback. + * @param Error Combination of Error status. + * This parameter can be a combination of the following values: + * @arg @ref RCC_CRS_SYNCERR + * @arg @ref RCC_CRS_SYNCMISS + * @arg @ref RCC_CRS_TRIMOVF + * @retval none + */ +__weak void HAL_RCCEx_CRS_ErrorCallback(uint32_t Error) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(Error); + + /* NOTE : This function should not be modified, when the callback is needed, + the @ref HAL_RCCEx_CRS_ErrorCallback should be implemented in the user file + */ +} + +/** + * @} + */ + +#endif /* CRS */ + +/** + * @} + */ + +/** @addtogroup RCCEx_Private_Functions + * @{ + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c new file mode 100644 index 0000000..7225437 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c @@ -0,0 +1,8122 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_tim.c + * @author MCD Application Team + * @brief TIM HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Timer (TIM) peripheral: + * + TIM Time Base Initialization + * + TIM Time Base Start + * + TIM Time Base Start Interruption + * + TIM Time Base Start DMA + * + TIM Output Compare/PWM Initialization + * + TIM Output Compare/PWM Channel Configuration + * + TIM Output Compare/PWM Start + * + TIM Output Compare/PWM Start Interruption + * + TIM Output Compare/PWM Start DMA + * + TIM Input Capture Initialization + * + TIM Input Capture Channel Configuration + * + TIM Input Capture Start + * + TIM Input Capture Start Interruption + * + TIM Input Capture Start DMA + * + TIM One Pulse Initialization + * + TIM One Pulse Channel Configuration + * + TIM One Pulse Start + * + TIM Encoder Interface Initialization + * + TIM Encoder Interface Start + * + TIM Encoder Interface Start Interruption + * + TIM Encoder Interface Start DMA + * + Commutation Event configuration with Interruption and DMA + * + TIM OCRef clear configuration + * + TIM External Clock configuration + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### TIMER Generic features ##### + ============================================================================== + [..] The Timer features include: + (#) 16-bit up, down, up/down auto-reload counter. + (#) 16-bit programmable prescaler allowing dividing (also on the fly) the + counter clock frequency either by any factor between 1 and 65536. + (#) Up to 4 independent channels for: + (++) Input Capture + (++) Output Compare + (++) PWM generation (Edge and Center-aligned Mode) + (++) One-pulse mode output + (#) Synchronization circuit to control the timer with external signals and to interconnect + several timers together. + (#) Supports incremental encoder for positioning purposes + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Initialize the TIM low level resources by implementing the following functions + depending on the selected feature: + (++) Time Base : HAL_TIM_Base_MspInit() + (++) Input Capture : HAL_TIM_IC_MspInit() + (++) Output Compare : HAL_TIM_OC_MspInit() + (++) PWM generation : HAL_TIM_PWM_MspInit() + (++) One-pulse mode output : HAL_TIM_OnePulse_MspInit() + (++) Encoder mode output : HAL_TIM_Encoder_MspInit() + + (#) Initialize the TIM low level resources : + (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE(); + (##) TIM pins configuration + (+++) Enable the clock for the TIM GPIOs using the following function: + __HAL_RCC_GPIOx_CLK_ENABLE(); + (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init(); + + (#) The external Clock can be configured, if needed (the default clock is the + internal clock from the APBx), using the following function: + HAL_TIM_ConfigClockSource, the clock configuration should be done before + any start function. + + (#) Configure the TIM in the desired functioning mode using one of the + Initialization function of this driver: + (++) HAL_TIM_Base_Init: to use the Timer to generate a simple time base + (++) HAL_TIM_OC_Init, HAL_TIM_OC_ConfigChannel and optionally HAL_TIMEx_OC_ConfigPulseOnCompare: + to use the Timer to generate an Output Compare signal. + (++) HAL_TIM_PWM_Init and HAL_TIM_PWM_ConfigChannel: to use the Timer to generate a + PWM signal. + (++) HAL_TIM_IC_Init and HAL_TIM_IC_ConfigChannel: to use the Timer to measure an + external signal. + (++) HAL_TIM_OnePulse_Init and HAL_TIM_OnePulse_ConfigChannel: to use the Timer + in One Pulse Mode. + (++) HAL_TIM_Encoder_Init: to use the Timer Encoder Interface. + + (#) Activate the TIM peripheral using one of the start functions depending from the feature used: + (++) Time Base : HAL_TIM_Base_Start(), HAL_TIM_Base_Start_DMA(), HAL_TIM_Base_Start_IT() + (++) Input Capture : HAL_TIM_IC_Start(), HAL_TIM_IC_Start_DMA(), HAL_TIM_IC_Start_IT() + (++) Output Compare : HAL_TIM_OC_Start(), HAL_TIM_OC_Start_DMA(), HAL_TIM_OC_Start_IT() + (++) PWM generation : HAL_TIM_PWM_Start(), HAL_TIM_PWM_Start_DMA(), HAL_TIM_PWM_Start_IT() + (++) One-pulse mode output : HAL_TIM_OnePulse_Start(), HAL_TIM_OnePulse_Start_IT() + (++) Encoder mode output : HAL_TIM_Encoder_Start(), HAL_TIM_Encoder_Start_DMA(), HAL_TIM_Encoder_Start_IT(). + + (#) The DMA Burst is managed with the two following functions: + HAL_TIM_DMABurst_WriteStart() + HAL_TIM_DMABurst_ReadStart() + + *** Callback registration *** + ============================================= + + [..] + The compilation define USE_HAL_TIM_REGISTER_CALLBACKS when set to 1 + allows the user to configure dynamically the driver callbacks. + + [..] + Use Function HAL_TIM_RegisterCallback() to register a callback. + HAL_TIM_RegisterCallback() takes as parameters the HAL peripheral handle, + the Callback ID and a pointer to the user callback function. + + [..] + Use function HAL_TIM_UnRegisterCallback() to reset a callback to the default + weak function. + HAL_TIM_UnRegisterCallback takes as parameters the HAL peripheral handle, + and the Callback ID. + + [..] + These functions allow to register/unregister following callbacks: + (+) Base_MspInitCallback : TIM Base Msp Init Callback. + (+) Base_MspDeInitCallback : TIM Base Msp DeInit Callback. + (+) IC_MspInitCallback : TIM IC Msp Init Callback. + (+) IC_MspDeInitCallback : TIM IC Msp DeInit Callback. + (+) OC_MspInitCallback : TIM OC Msp Init Callback. + (+) OC_MspDeInitCallback : TIM OC Msp DeInit Callback. + (+) PWM_MspInitCallback : TIM PWM Msp Init Callback. + (+) PWM_MspDeInitCallback : TIM PWM Msp DeInit Callback. + (+) OnePulse_MspInitCallback : TIM One Pulse Msp Init Callback. + (+) OnePulse_MspDeInitCallback : TIM One Pulse Msp DeInit Callback. + (+) Encoder_MspInitCallback : TIM Encoder Msp Init Callback. + (+) Encoder_MspDeInitCallback : TIM Encoder Msp DeInit Callback. + (+) HallSensor_MspInitCallback : TIM Hall Sensor Msp Init Callback. + (+) HallSensor_MspDeInitCallback : TIM Hall Sensor Msp DeInit Callback. + (+) PeriodElapsedCallback : TIM Period Elapsed Callback. + (+) PeriodElapsedHalfCpltCallback : TIM Period Elapsed half complete Callback. + (+) TriggerCallback : TIM Trigger Callback. + (+) TriggerHalfCpltCallback : TIM Trigger half complete Callback. + (+) IC_CaptureCallback : TIM Input Capture Callback. + (+) IC_CaptureHalfCpltCallback : TIM Input Capture half complete Callback. + (+) OC_DelayElapsedCallback : TIM Output Compare Delay Elapsed Callback. + (+) PWM_PulseFinishedCallback : TIM PWM Pulse Finished Callback. + (+) PWM_PulseFinishedHalfCpltCallback : TIM PWM Pulse Finished half complete Callback. + (+) ErrorCallback : TIM Error Callback. + (+) CommutationCallback : TIM Commutation Callback. + (+) CommutationHalfCpltCallback : TIM Commutation half complete Callback. + (+) BreakCallback : TIM Break Callback. + (+) Break2Callback : TIM Break2 Callback. + (+) EncoderIndexCallback : TIM Encoder Index Callback. + (+) DirectionChangeCallback : TIM Direction Change Callback + (+) IndexErrorCallback : TIM Index Error Callback. + (+) TransitionErrorCallback : TIM Transition Error Callback + + [..] +By default, after the Init and when the state is HAL_TIM_STATE_RESET +all interrupt callbacks are set to the corresponding weak functions: + examples HAL_TIM_TriggerCallback(), HAL_TIM_ErrorCallback(). + + [..] + Exception done for MspInit and MspDeInit functions that are reset to the legacy weak + functionalities in the Init / DeInit only when these callbacks are null + (not registered beforehand). If not, MspInit or MspDeInit are not null, the Init / DeInit + keep and use the user MspInit / MspDeInit callbacks(registered beforehand) + + [..] + Callbacks can be registered / unregistered in HAL_TIM_STATE_READY state only. + Exception done MspInit / MspDeInit that can be registered / unregistered + in HAL_TIM_STATE_READY or HAL_TIM_STATE_RESET state, + thus registered(user) MspInit / DeInit callbacks can be used during the Init / DeInit. + In that case first register the MspInit/MspDeInit user callbacks + using HAL_TIM_RegisterCallback() before calling DeInit or Init function. + + [..] + When The compilation define USE_HAL_TIM_REGISTER_CALLBACKS is set to 0 or + not defined, the callback registration feature is not available and all callbacks + are set to the corresponding weak functions. + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup TIM TIM + * @brief TIM HAL module driver + * @{ + */ + +#ifdef HAL_TIM_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @addtogroup TIM_Private_Constants + * @{ + */ +#define TIMx_AF2_OCRSEL TIM1_AF2_OCRSEL + +/** + * @} + */ +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @addtogroup TIM_Private_Functions + * @{ + */ +static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter); +static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter); +static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter); +static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter); +static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter); +static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource); +static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma); +static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, + const TIM_SlaveConfigTypeDef *sSlaveConfig); +/** + * @} + */ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup TIM_Exported_Functions TIM Exported Functions + * @{ + */ + +/** @defgroup TIM_Exported_Functions_Group1 TIM Time Base functions + * @brief Time Base functions + * +@verbatim + ============================================================================== + ##### Time Base functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure the TIM base. + (+) De-initialize the TIM base. + (+) Start the Time Base. + (+) Stop the Time Base. + (+) Start the Time Base and enable interrupt. + (+) Stop the Time Base and disable interrupt. + (+) Start the Time Base and enable DMA transfer. + (+) Stop the Time Base and disable DMA transfer. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM Time base Unit according to the specified + * parameters in the TIM_HandleTypeDef and initialize the associated handle. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) +{ + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy weak callbacks */ + TIM_ResetCallback(htim); + + if (htim->Base_MspInitCallback == NULL) + { + htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->Base_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + HAL_TIM_Base_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Set the Time Base configuration */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + +/** + * @brief DeInitializes the TIM Base peripheral + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->Base_MspDeInitCallback == NULL) + { + htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; + } + /* DeInit the low level hardware */ + htim->Base_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + HAL_TIM_Base_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Change the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM Base MSP. + * @param htim TIM Base handle + * @retval None + */ +__weak void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_Base_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM Base MSP. + * @param htim TIM Base handle + * @retval None + */ +__weak void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_Base_MspDeInit could be implemented in the user file + */ +} + + +/** + * @brief Starts the TIM Base generation. + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + /* Check the TIM state */ + if (htim->State != HAL_TIM_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Base generation. + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_READY; + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Base generation in interrupt mode. + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + /* Check the TIM state */ + if (htim->State != HAL_TIM_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Enable the TIM Update interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Base generation in interrupt mode. + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + /* Disable the TIM Update interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_READY; + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Base generation in DMA mode. + * @param htim TIM Base handle + * @param pData The source Buffer address. + * @param Length The length of data to be transferred from memory to peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_DMA_INSTANCE(htim->Instance)); + + /* Set the TIM state */ + if (htim->State == HAL_TIM_STATE_BUSY) + { + return HAL_BUSY; + } + else if (htim->State == HAL_TIM_STATE_READY) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + htim->State = HAL_TIM_STATE_BUSY; + } + } + else + { + return HAL_ERROR; + } + + /* Set the DMA Period elapsed callbacks */ + htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt; + htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)pData, (uint32_t)&htim->Instance->ARR, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + + /* Enable the TIM Update DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Base generation in DMA mode. + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_DMA_INSTANCE(htim->Instance)); + + /* Disable the TIM Update DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_UPDATE); + + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_UPDATE]); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_READY; + + /* Return function status */ + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group2 TIM Output Compare functions + * @brief TIM Output Compare functions + * +@verbatim + ============================================================================== + ##### TIM Output Compare functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure the TIM Output Compare. + (+) De-initialize the TIM Output Compare. + (+) Start the TIM Output Compare. + (+) Stop the TIM Output Compare. + (+) Start the TIM Output Compare and enable interrupt. + (+) Stop the TIM Output Compare and disable interrupt. + (+) Start the TIM Output Compare and enable DMA transfer. + (+) Stop the TIM Output Compare and disable DMA transfer. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM Output Compare according to the specified + * parameters in the TIM_HandleTypeDef and initializes the associated handle. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * Ex: call @ref HAL_TIM_OC_DeInit() before HAL_TIM_OC_Init() + * @param htim TIM Output Compare handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim) +{ + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy weak callbacks */ + TIM_ResetCallback(htim); + + if (htim->OC_MspInitCallback == NULL) + { + htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->OC_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_OC_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Init the base time for the Output Compare */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + +/** + * @brief DeInitializes the TIM peripheral + * @param htim TIM Output Compare handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->OC_MspDeInitCallback == NULL) + { + htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; + } + /* DeInit the low level hardware */ + htim->OC_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_OC_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Change the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM Output Compare MSP. + * @param htim TIM Output Compare handle + * @retval None + */ +__weak void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_OC_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM Output Compare MSP. + * @param htim TIM Output Compare handle + * @retval None + */ +__weak void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_OC_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief Starts the TIM Output Compare signal generation. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Output compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Output Compare signal generation. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + /* Disable the Output compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Output Compare signal generation in interrupt mode. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Enable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Enable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Enable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Enable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the Output compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM Output Compare signal generation in interrupt mode. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Output compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @brief Starts the TIM Output Compare signal generation in DMA mode. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param pData The source Buffer address. + * @param Length The length of data to be transferred from memory to TIM peripheral + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Set the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) + { + return HAL_BUSY; + } + else if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + + /* Enable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + + /* Enable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 4 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the Output compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM Output Compare signal generation in DMA mode. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Output compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group3 TIM PWM functions + * @brief TIM PWM functions + * +@verbatim + ============================================================================== + ##### TIM PWM functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure the TIM PWM. + (+) De-initialize the TIM PWM. + (+) Start the TIM PWM. + (+) Stop the TIM PWM. + (+) Start the TIM PWM and enable interrupt. + (+) Stop the TIM PWM and disable interrupt. + (+) Start the TIM PWM and enable DMA transfer. + (+) Stop the TIM PWM and disable DMA transfer. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM PWM Time Base according to the specified + * parameters in the TIM_HandleTypeDef and initializes the associated handle. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * Ex: call @ref HAL_TIM_PWM_DeInit() before HAL_TIM_PWM_Init() + * @param htim TIM PWM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim) +{ + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy weak callbacks */ + TIM_ResetCallback(htim); + + if (htim->PWM_MspInitCallback == NULL) + { + htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->PWM_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_PWM_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Init the base time for the PWM */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + +/** + * @brief DeInitializes the TIM peripheral + * @param htim TIM PWM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->PWM_MspDeInitCallback == NULL) + { + htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; + } + /* DeInit the low level hardware */ + htim->PWM_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_PWM_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Change the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM PWM MSP. + * @param htim TIM PWM handle + * @retval None + */ +__weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PWM_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM PWM MSP. + * @param htim TIM PWM handle + * @retval None + */ +__weak void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PWM_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief Starts the PWM signal generation. + * @param htim TIM handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the PWM signal generation. + * @param htim TIM PWM handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + /* Disable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the PWM signal generation in interrupt mode. + * @param htim TIM PWM handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Enable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Enable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Enable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Enable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the PWM signal generation in interrupt mode. + * @param htim TIM PWM handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @brief Starts the TIM PWM signal generation in DMA mode. + * @param htim TIM PWM handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param pData The source Buffer address. + * @param Length The length of data to be transferred from memory to TIM peripheral + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Set the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) + { + return HAL_BUSY; + } + else if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + + /* Enable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Output Capture/Compare 3 request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 4 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM PWM signal generation in DMA mode. + * @param htim TIM PWM handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group4 TIM Input Capture functions + * @brief TIM Input Capture functions + * +@verbatim + ============================================================================== + ##### TIM Input Capture functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure the TIM Input Capture. + (+) De-initialize the TIM Input Capture. + (+) Start the TIM Input Capture. + (+) Stop the TIM Input Capture. + (+) Start the TIM Input Capture and enable interrupt. + (+) Stop the TIM Input Capture and disable interrupt. + (+) Start the TIM Input Capture and enable DMA transfer. + (+) Stop the TIM Input Capture and disable DMA transfer. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM Input Capture Time base according to the specified + * parameters in the TIM_HandleTypeDef and initializes the associated handle. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * Ex: call @ref HAL_TIM_IC_DeInit() before HAL_TIM_IC_Init() + * @param htim TIM Input Capture handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim) +{ + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy weak callbacks */ + TIM_ResetCallback(htim); + + if (htim->IC_MspInitCallback == NULL) + { + htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->IC_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_IC_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Init the base time for the input capture */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + +/** + * @brief DeInitializes the TIM peripheral + * @param htim TIM Input Capture handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->IC_MspDeInitCallback == NULL) + { + htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; + } + /* DeInit the low level hardware */ + htim->IC_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_IC_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Change the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM Input Capture MSP. + * @param htim TIM Input Capture handle + * @retval None + */ +__weak void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_IC_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM Input Capture MSP. + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_IC_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief Starts the TIM Input Capture measurement. + * @param htim TIM Input Capture handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + uint32_t tmpsmcr; + HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); + HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if ((channel_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Input Capture channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Input Capture measurement. + * @param htim TIM Input Capture handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Disable the Input Capture channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Input Capture measurement in interrupt mode. + * @param htim TIM Input Capture handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); + HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if ((channel_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Enable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Enable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Enable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Enable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the Input Capture channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM Input Capture measurement in interrupt mode. + * @param htim TIM Input Capture handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Input Capture channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @brief Starts the TIM Input Capture measurement in DMA mode. + * @param htim TIM Input Capture handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param pData The destination Buffer address. + * @param Length The length of data to be transferred from TIM peripheral to memory. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); + HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance)); + + /* Set the TIM channel state */ + if ((channel_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (complementary_channel_state == HAL_TIM_CHANNEL_STATE_BUSY)) + { + return HAL_BUSY; + } + else if ((channel_state == HAL_TIM_CHANNEL_STATE_READY) + && (complementary_channel_state == HAL_TIM_CHANNEL_STATE_READY)) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + + /* Enable the Input Capture channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->CCR3, (uint32_t)pData, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->CCR4, (uint32_t)pData, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 4 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM Input Capture measurement in DMA mode. + * @param htim TIM Input Capture handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_CHANNEL(htim->Instance, Channel)); + assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group5 TIM One Pulse functions + * @brief TIM One Pulse functions + * +@verbatim + ============================================================================== + ##### TIM One Pulse functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure the TIM One Pulse. + (+) De-initialize the TIM One Pulse. + (+) Start the TIM One Pulse. + (+) Stop the TIM One Pulse. + (+) Start the TIM One Pulse and enable interrupt. + (+) Stop the TIM One Pulse and disable interrupt. + (+) Start the TIM One Pulse and enable DMA transfer. + (+) Stop the TIM One Pulse and disable DMA transfer. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM One Pulse Time Base according to the specified + * parameters in the TIM_HandleTypeDef and initializes the associated handle. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * Ex: call @ref HAL_TIM_OnePulse_DeInit() before HAL_TIM_OnePulse_Init() + * @note When the timer instance is initialized in One Pulse mode, timer + * channels 1 and channel 2 are reserved and cannot be used for other + * purpose. + * @param htim TIM One Pulse handle + * @param OnePulseMode Select the One pulse mode. + * This parameter can be one of the following values: + * @arg TIM_OPMODE_SINGLE: Only one pulse will be generated. + * @arg TIM_OPMODE_REPETITIVE: Repetitive pulses will be generated. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode) +{ + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_OPM_MODE(OnePulseMode)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy weak callbacks */ + TIM_ResetCallback(htim); + + if (htim->OnePulse_MspInitCallback == NULL) + { + htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->OnePulse_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_OnePulse_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Configure the Time base in the One Pulse Mode */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Reset the OPM Bit */ + htim->Instance->CR1 &= ~TIM_CR1_OPM; + + /* Configure the OPM Mode */ + htim->Instance->CR1 |= OnePulseMode; + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + +/** + * @brief DeInitializes the TIM One Pulse + * @param htim TIM One Pulse handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->OnePulse_MspDeInitCallback == NULL) + { + htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; + } + /* DeInit the low level hardware */ + htim->OnePulse_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + HAL_TIM_OnePulse_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM One Pulse MSP. + * @param htim TIM One Pulse handle + * @retval None + */ +__weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_OnePulse_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM One Pulse MSP. + * @param htim TIM One Pulse handle + * @retval None + */ +__weak void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_OnePulse_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief Starts the TIM One Pulse signal generation. + * @note Though OutputChannel parameter is deprecated and ignored by the function + * it has been kept to avoid HAL_TIM API compatibility break. + * @note The pulse output channel is determined when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel See note above + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Prevent unused argument(s) compilation warning */ + UNUSED(OutputChannel); + + /* Check the TIM channels state */ + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Capture compare and the Input Capture channels + (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) + if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and + if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output + whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together + + No need to enable the counter, it's enabled automatically by hardware + (the counter starts in response to a stimulus and generate a pulse */ + + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM One Pulse signal generation. + * @note Though OutputChannel parameter is deprecated and ignored by the function + * it has been kept to avoid HAL_TIM API compatibility break. + * @note The pulse output channel is determined when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel See note above + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(OutputChannel); + + /* Disable the Capture compare and the Input Capture channels + (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) + if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and + if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output + whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */ + + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM One Pulse signal generation in interrupt mode. + * @note Though OutputChannel parameter is deprecated and ignored by the function + * it has been kept to avoid HAL_TIM API compatibility break. + * @note The pulse output channel is determined when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel See note above + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Prevent unused argument(s) compilation warning */ + UNUSED(OutputChannel); + + /* Check the TIM channels state */ + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Capture compare and the Input Capture channels + (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) + if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and + if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output + whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together + + No need to enable the counter, it's enabled automatically by hardware + (the counter starts in response to a stimulus and generate a pulse */ + + /* Enable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + + /* Enable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM One Pulse signal generation in interrupt mode. + * @note Though OutputChannel parameter is deprecated and ignored by the function + * it has been kept to avoid HAL_TIM API compatibility break. + * @note The pulse output channel is determined when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel See note above + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(OutputChannel); + + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + + /* Disable the Capture compare and the Input Capture channels + (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) + if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and + if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output + whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + { + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group6 TIM Encoder functions + * @brief TIM Encoder functions + * +@verbatim + ============================================================================== + ##### TIM Encoder functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure the TIM Encoder. + (+) De-initialize the TIM Encoder. + (+) Start the TIM Encoder. + (+) Stop the TIM Encoder. + (+) Start the TIM Encoder and enable interrupt. + (+) Stop the TIM Encoder and disable interrupt. + (+) Start the TIM Encoder and enable DMA transfer. + (+) Stop the TIM Encoder and disable DMA transfer. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM Encoder Interface and initialize the associated handle. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * Ex: call @ref HAL_TIM_Encoder_DeInit() before HAL_TIM_Encoder_Init() + * @note Encoder mode and External clock mode 2 are not compatible and must not be selected together + * Ex: A call for @ref HAL_TIM_Encoder_Init will erase the settings of @ref HAL_TIM_ConfigClockSource + * using TIM_CLOCKSOURCE_ETRMODE2 and vice versa + * @note When the timer instance is initialized in Encoder mode, timer + * channels 1 and channel 2 are reserved and cannot be used for other + * purpose. + * @param htim TIM Encoder Interface handle + * @param sConfig TIM Encoder Interface configuration structure + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig) +{ + uint32_t tmpsmcr; + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + assert_param(IS_TIM_ENCODER_MODE(sConfig->EncoderMode)); + assert_param(IS_TIM_IC_SELECTION(sConfig->IC1Selection)); + assert_param(IS_TIM_IC_SELECTION(sConfig->IC2Selection)); + assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->IC1Polarity)); + assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->IC2Polarity)); + assert_param(IS_TIM_IC_PRESCALER(sConfig->IC1Prescaler)); + assert_param(IS_TIM_IC_PRESCALER(sConfig->IC2Prescaler)); + assert_param(IS_TIM_IC_FILTER(sConfig->IC1Filter)); + assert_param(IS_TIM_IC_FILTER(sConfig->IC2Filter)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy weak callbacks */ + TIM_ResetCallback(htim); + + if (htim->Encoder_MspInitCallback == NULL) + { + htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->Encoder_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_Encoder_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Reset the SMS and ECE bits */ + htim->Instance->SMCR &= ~(TIM_SMCR_SMS | TIM_SMCR_ECE); + + /* Configure the Time base in the Encoder Mode */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Get the TIMx SMCR register value */ + tmpsmcr = htim->Instance->SMCR; + + /* Get the TIMx CCMR1 register value */ + tmpccmr1 = htim->Instance->CCMR1; + + /* Get the TIMx CCER register value */ + tmpccer = htim->Instance->CCER; + + /* Set the encoder Mode */ + tmpsmcr |= sConfig->EncoderMode; + + /* Select the Capture Compare 1 and the Capture Compare 2 as input */ + tmpccmr1 &= ~(TIM_CCMR1_CC1S | TIM_CCMR1_CC2S); + tmpccmr1 |= (sConfig->IC1Selection | (sConfig->IC2Selection << 8U)); + + /* Set the Capture Compare 1 and the Capture Compare 2 prescalers and filters */ + tmpccmr1 &= ~(TIM_CCMR1_IC1PSC | TIM_CCMR1_IC2PSC); + tmpccmr1 &= ~(TIM_CCMR1_IC1F | TIM_CCMR1_IC2F); + tmpccmr1 |= sConfig->IC1Prescaler | (sConfig->IC2Prescaler << 8U); + tmpccmr1 |= (sConfig->IC1Filter << 4U) | (sConfig->IC2Filter << 12U); + + /* Set the TI1 and the TI2 Polarities */ + tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC2P); + tmpccer &= ~(TIM_CCER_CC1NP | TIM_CCER_CC2NP); + tmpccer |= sConfig->IC1Polarity | (sConfig->IC2Polarity << 4U); + + /* Write to TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + + /* Write to TIMx CCMR1 */ + htim->Instance->CCMR1 = tmpccmr1; + + /* Write to TIMx CCER */ + htim->Instance->CCER = tmpccer; + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + + +/** + * @brief DeInitializes the TIM Encoder interface + * @param htim TIM Encoder Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->Encoder_MspDeInitCallback == NULL) + { + htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; + } + /* DeInit the low level hardware */ + htim->Encoder_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + HAL_TIM_Encoder_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM Encoder Interface MSP. + * @param htim TIM Encoder Interface handle + * @retval None + */ +__weak void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_Encoder_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM Encoder Interface MSP. + * @param htim TIM Encoder Interface handle + * @retval None + */ +__weak void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_Encoder_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief Starts the TIM Encoder Interface. + * @param htim TIM Encoder Interface handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + /* Set the TIM channel(s) state */ + if (Channel == TIM_CHANNEL_1) + { + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else if (Channel == TIM_CHANNEL_2) + { + if ((channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + + /* Enable the encoder interface channels */ + switch (Channel) + { + case TIM_CHANNEL_1: + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + break; + } + + case TIM_CHANNEL_2: + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + break; + } + + default : + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + break; + } + } + /* Enable the Peripheral */ + __HAL_TIM_ENABLE(htim); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Encoder Interface. + * @param htim TIM Encoder Interface handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channels 1 and 2 + (in the EncoderInterface the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) */ + switch (Channel) + { + case TIM_CHANNEL_1: + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + break; + } + + case TIM_CHANNEL_2: + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + break; + } + + default : + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + break; + } + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel(s) state */ + if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2)) + { + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Encoder Interface in interrupt mode. + * @param htim TIM Encoder Interface handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + /* Set the TIM channel(s) state */ + if (Channel == TIM_CHANNEL_1) + { + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else if (Channel == TIM_CHANNEL_2) + { + if ((channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + + /* Enable the encoder interface channels */ + /* Enable the capture compare Interrupts 1 and/or 2 */ + switch (Channel) + { + case TIM_CHANNEL_1: + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + + default : + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + } + + /* Enable the Peripheral */ + __HAL_TIM_ENABLE(htim); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Encoder Interface in interrupt mode. + * @param htim TIM Encoder Interface handle + * @param Channel TIM Channels to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channels 1 and 2 + (in the EncoderInterface the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) */ + if (Channel == TIM_CHANNEL_1) + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + + /* Disable the capture compare Interrupts 1 */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + } + else if (Channel == TIM_CHANNEL_2) + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + + /* Disable the capture compare Interrupts 2 */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + } + else + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + + /* Disable the capture compare Interrupts 1 and 2 */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel(s) state */ + if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2)) + { + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Encoder Interface in DMA mode. + * @param htim TIM Encoder Interface handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected + * @param pData1 The destination Buffer address for IC1. + * @param pData2 The destination Buffer address for IC2. + * @param Length The length of data to be transferred from TIM peripheral to memory. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, + uint32_t *pData2, uint16_t Length) +{ + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + /* Set the TIM channel(s) state */ + if (Channel == TIM_CHANNEL_1) + { + if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + { + return HAL_BUSY; + } + else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + { + if ((pData1 == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + } + else if (Channel == TIM_CHANNEL_2) + { + if ((channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) + { + return HAL_BUSY; + } + else if ((channel_2_state == HAL_TIM_CHANNEL_STATE_READY) + && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) + { + if ((pData2 == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + } + else + { + if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) + { + return HAL_BUSY; + } + else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY) + && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) + { + if ((((pData1 == NULL) || (pData2 == NULL))) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + } + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Input Capture DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + + /* Enable the Peripheral */ + __HAL_TIM_ENABLE(htim); + + break; + } + + case TIM_CHANNEL_2: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError; + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Input Capture DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + + /* Enable the Peripheral */ + __HAL_TIM_ENABLE(htim); + + break; + } + + default: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + + /* Enable the TIM Input Capture DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + /* Enable the TIM Input Capture DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + + /* Enable the Peripheral */ + __HAL_TIM_ENABLE(htim); + + break; + } + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Encoder Interface in DMA mode. + * @param htim TIM Encoder Interface handle + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channels 1 and 2 + (in the EncoderInterface the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) */ + if (Channel == TIM_CHANNEL_1) + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + + /* Disable the capture compare DMA Request 1 */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + } + else if (Channel == TIM_CHANNEL_2) + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + + /* Disable the capture compare DMA Request 2 */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + } + else + { + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + + /* Disable the capture compare DMA Request 1 and 2 */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + } + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel(s) state */ + if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2)) + { + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @} + */ +/** @defgroup TIM_Exported_Functions_Group7 TIM IRQ handler management + * @brief TIM IRQ handler management + * +@verbatim + ============================================================================== + ##### IRQ handler management ##### + ============================================================================== + [..] + This section provides Timer IRQ handler function. + +@endverbatim + * @{ + */ +/** + * @brief This function handles TIM interrupts requests. + * @param htim TIM handle + * @retval None + */ +void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) +{ + uint32_t itsource = htim->Instance->DIER; + uint32_t itflag = htim->Instance->SR; + + /* Capture compare 1 event */ + if ((itflag & (TIM_FLAG_CC1)) == (TIM_FLAG_CC1)) + { + if ((itsource & (TIM_IT_CC1)) == (TIM_IT_CC1)) + { + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC1); + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + + /* Input capture event */ + if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + /* Output compare event */ + else + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + } + } + } + /* Capture compare 2 event */ + if ((itflag & (TIM_FLAG_CC2)) == (TIM_FLAG_CC2)) + { + if ((itsource & (TIM_IT_CC2)) == (TIM_IT_CC2)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC2); + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + /* Input capture event */ + if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + /* Output compare event */ + else + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + } + } + /* Capture compare 3 event */ + if ((itflag & (TIM_FLAG_CC3)) == (TIM_FLAG_CC3)) + { + if ((itsource & (TIM_IT_CC3)) == (TIM_IT_CC3)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC3); + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + /* Input capture event */ + if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + /* Output compare event */ + else + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + } + } + /* Capture compare 4 event */ + if ((itflag & (TIM_FLAG_CC4)) == (TIM_FLAG_CC4)) + { + if ((itsource & (TIM_IT_CC4)) == (TIM_IT_CC4)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC4); + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + /* Input capture event */ + if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + /* Output compare event */ + else + { +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->OC_DelayElapsedCallback(htim); + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_OC_DelayElapsedCallback(htim); + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + } + } + /* TIM Update event */ + if ((itflag & (TIM_FLAG_UPDATE)) == (TIM_FLAG_UPDATE)) + { + if ((itsource & (TIM_IT_UPDATE)) == (TIM_IT_UPDATE)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_UPDATE); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PeriodElapsedCallback(htim); +#else + HAL_TIM_PeriodElapsedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Break input event */ + if (((itflag & (TIM_FLAG_BREAK)) == (TIM_FLAG_BREAK)) || \ + ((itflag & (TIM_FLAG_SYSTEM_BREAK)) == (TIM_FLAG_SYSTEM_BREAK))) + { + if ((itsource & (TIM_IT_BREAK)) == (TIM_IT_BREAK)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK | TIM_FLAG_SYSTEM_BREAK); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->BreakCallback(htim); +#else + HAL_TIMEx_BreakCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Break2 input event */ + if ((itflag & (TIM_FLAG_BREAK2)) == (TIM_FLAG_BREAK2)) + { + if ((itsource & (TIM_IT_BREAK)) == (TIM_IT_BREAK)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->Break2Callback(htim); +#else + HAL_TIMEx_Break2Callback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Trigger detection event */ + if ((itflag & (TIM_FLAG_TRIGGER)) == (TIM_FLAG_TRIGGER)) + { + if ((itsource & (TIM_IT_TRIGGER)) == (TIM_IT_TRIGGER)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_TRIGGER); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->TriggerCallback(htim); +#else + HAL_TIM_TriggerCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM commutation event */ + if ((itflag & (TIM_FLAG_COM)) == (TIM_FLAG_COM)) + { + if ((itsource & (TIM_IT_COM)) == (TIM_IT_COM)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_COM); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->CommutationCallback(htim); +#else + HAL_TIMEx_CommutCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Encoder index event */ + if ((itflag & (TIM_FLAG_IDX)) == (TIM_FLAG_IDX)) + { + if ((itsource & (TIM_IT_IDX)) == (TIM_IT_IDX)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_IDX); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->EncoderIndexCallback(htim); +#else + HAL_TIMEx_EncoderIndexCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Direction change event */ + if ((itflag & (TIM_FLAG_DIR)) == (TIM_FLAG_DIR)) + { + if ((itsource & (TIM_IT_DIR)) == (TIM_IT_DIR)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_DIR); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->DirectionChangeCallback(htim); +#else + HAL_TIMEx_DirectionChangeCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Index error event */ + if ((itflag & (TIM_FLAG_IERR)) == (TIM_FLAG_IERR)) + { + if ((itsource & (TIM_IT_IERR)) == (TIM_IT_IERR)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_IERR); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IndexErrorCallback(htim); +#else + HAL_TIMEx_IndexErrorCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Transition error event */ + if ((itflag & (TIM_FLAG_TERR)) == (TIM_FLAG_TERR)) + { + if ((itsource & (TIM_IT_TERR)) == (TIM_IT_TERR)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_TERR); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->TransitionErrorCallback(htim); +#else + HAL_TIMEx_TransitionErrorCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } +} + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group8 TIM Peripheral Control functions + * @brief TIM Peripheral Control functions + * +@verbatim + ============================================================================== + ##### Peripheral Control functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Configure The Input Output channels for OC, PWM, IC or One Pulse mode. + (+) Configure External Clock source. + (+) Configure Complementary channels, break features and dead time. + (+) Configure Master and the Slave synchronization. + (+) Configure the DMA Burst Mode. + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the TIM Output Compare Channels according to the specified + * parameters in the TIM_OC_InitTypeDef. + * @param htim TIM Output Compare handle + * @param sConfig TIM Output Compare configuration structure + * @param Channel TIM Channels to configure + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, + const TIM_OC_InitTypeDef *sConfig, + uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CHANNELS(Channel)); + assert_param(IS_TIM_OC_CHANNEL_MODE(sConfig->OCMode, Channel)); + assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); + + /* Process Locked */ + __HAL_LOCK(htim); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + /* Configure the TIM Channel 1 in Output Compare */ + TIM_OC1_SetConfig(htim->Instance, sConfig); + break; + } + + case TIM_CHANNEL_2: + { + /* Check the parameters */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + /* Configure the TIM Channel 2 in Output Compare */ + TIM_OC2_SetConfig(htim->Instance, sConfig); + break; + } + + case TIM_CHANNEL_3: + { + /* Check the parameters */ + assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); + + /* Configure the TIM Channel 3 in Output Compare */ + TIM_OC3_SetConfig(htim->Instance, sConfig); + break; + } + + case TIM_CHANNEL_4: + { + /* Check the parameters */ + assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); + + /* Configure the TIM Channel 4 in Output Compare */ + TIM_OC4_SetConfig(htim->Instance, sConfig); + break; + } + + case TIM_CHANNEL_5: + { + /* Check the parameters */ + assert_param(IS_TIM_CC5_INSTANCE(htim->Instance)); + + /* Configure the TIM Channel 5 in Output Compare */ + TIM_OC5_SetConfig(htim->Instance, sConfig); + break; + } + + case TIM_CHANNEL_6: + { + /* Check the parameters */ + assert_param(IS_TIM_CC6_INSTANCE(htim->Instance)); + + /* Configure the TIM Channel 6 in Output Compare */ + TIM_OC6_SetConfig(htim->Instance, sConfig); + break; + } + + default: + status = HAL_ERROR; + break; + } + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Initializes the TIM Input Capture Channels according to the specified + * parameters in the TIM_IC_InitTypeDef. + * @param htim TIM IC handle + * @param sConfig TIM Input Capture configuration structure + * @param Channel TIM Channel to configure + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + assert_param(IS_TIM_IC_POLARITY(sConfig->ICPolarity)); + assert_param(IS_TIM_IC_SELECTION(sConfig->ICSelection)); + assert_param(IS_TIM_IC_PRESCALER(sConfig->ICPrescaler)); + assert_param(IS_TIM_IC_FILTER(sConfig->ICFilter)); + + /* Process Locked */ + __HAL_LOCK(htim); + + if (Channel == TIM_CHANNEL_1) + { + /* TI1 Configuration */ + TIM_TI1_SetConfig(htim->Instance, + sConfig->ICPolarity, + sConfig->ICSelection, + sConfig->ICFilter); + + /* Reset the IC1PSC Bits */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC; + + /* Set the IC1PSC value */ + htim->Instance->CCMR1 |= sConfig->ICPrescaler; + } + else if (Channel == TIM_CHANNEL_2) + { + /* TI2 Configuration */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + TIM_TI2_SetConfig(htim->Instance, + sConfig->ICPolarity, + sConfig->ICSelection, + sConfig->ICFilter); + + /* Reset the IC2PSC Bits */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC; + + /* Set the IC2PSC value */ + htim->Instance->CCMR1 |= (sConfig->ICPrescaler << 8U); + } + else if (Channel == TIM_CHANNEL_3) + { + /* TI3 Configuration */ + assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); + + TIM_TI3_SetConfig(htim->Instance, + sConfig->ICPolarity, + sConfig->ICSelection, + sConfig->ICFilter); + + /* Reset the IC3PSC Bits */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC; + + /* Set the IC3PSC value */ + htim->Instance->CCMR2 |= sConfig->ICPrescaler; + } + else if (Channel == TIM_CHANNEL_4) + { + /* TI4 Configuration */ + assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); + + TIM_TI4_SetConfig(htim->Instance, + sConfig->ICPolarity, + sConfig->ICSelection, + sConfig->ICFilter); + + /* Reset the IC4PSC Bits */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC; + + /* Set the IC4PSC value */ + htim->Instance->CCMR2 |= (sConfig->ICPrescaler << 8U); + } + else + { + status = HAL_ERROR; + } + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Initializes the TIM PWM channels according to the specified + * parameters in the TIM_OC_InitTypeDef. + * @param htim TIM PWM handle + * @param sConfig TIM PWM configuration structure + * @param Channel TIM Channels to be configured + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, + const TIM_OC_InitTypeDef *sConfig, + uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CHANNELS(Channel)); + assert_param(IS_TIM_PWM_MODE(sConfig->OCMode)); + assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); + assert_param(IS_TIM_FAST_STATE(sConfig->OCFastMode)); + + /* Process Locked */ + __HAL_LOCK(htim); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + /* Configure the Channel 1 in PWM mode */ + TIM_OC1_SetConfig(htim->Instance, sConfig); + + /* Set the Preload enable bit for channel1 */ + htim->Instance->CCMR1 |= TIM_CCMR1_OC1PE; + + /* Configure the Output Fast mode */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE; + htim->Instance->CCMR1 |= sConfig->OCFastMode; + break; + } + + case TIM_CHANNEL_2: + { + /* Check the parameters */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + /* Configure the Channel 2 in PWM mode */ + TIM_OC2_SetConfig(htim->Instance, sConfig); + + /* Set the Preload enable bit for channel2 */ + htim->Instance->CCMR1 |= TIM_CCMR1_OC2PE; + + /* Configure the Output Fast mode */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE; + htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + break; + } + + case TIM_CHANNEL_3: + { + /* Check the parameters */ + assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); + + /* Configure the Channel 3 in PWM mode */ + TIM_OC3_SetConfig(htim->Instance, sConfig); + + /* Set the Preload enable bit for channel3 */ + htim->Instance->CCMR2 |= TIM_CCMR2_OC3PE; + + /* Configure the Output Fast mode */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE; + htim->Instance->CCMR2 |= sConfig->OCFastMode; + break; + } + + case TIM_CHANNEL_4: + { + /* Check the parameters */ + assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); + + /* Configure the Channel 4 in PWM mode */ + TIM_OC4_SetConfig(htim->Instance, sConfig); + + /* Set the Preload enable bit for channel4 */ + htim->Instance->CCMR2 |= TIM_CCMR2_OC4PE; + + /* Configure the Output Fast mode */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE; + htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + break; + } + + case TIM_CHANNEL_5: + { + /* Check the parameters */ + assert_param(IS_TIM_CC5_INSTANCE(htim->Instance)); + + /* Configure the Channel 5 in PWM mode */ + TIM_OC5_SetConfig(htim->Instance, sConfig); + + /* Set the Preload enable bit for channel5*/ + htim->Instance->CCMR3 |= TIM_CCMR3_OC5PE; + + /* Configure the Output Fast mode */ + htim->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE; + htim->Instance->CCMR3 |= sConfig->OCFastMode; + break; + } + + case TIM_CHANNEL_6: + { + /* Check the parameters */ + assert_param(IS_TIM_CC6_INSTANCE(htim->Instance)); + + /* Configure the Channel 6 in PWM mode */ + TIM_OC6_SetConfig(htim->Instance, sConfig); + + /* Set the Preload enable bit for channel6 */ + htim->Instance->CCMR3 |= TIM_CCMR3_OC6PE; + + /* Configure the Output Fast mode */ + htim->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE; + htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; + break; + } + + default: + status = HAL_ERROR; + break; + } + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Initializes the TIM One Pulse Channels according to the specified + * parameters in the TIM_OnePulse_InitTypeDef. + * @param htim TIM One Pulse handle + * @param sConfig TIM One Pulse configuration structure + * @param OutputChannel TIM output channel to configure + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @param InputChannel TIM input Channel to configure + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @note To output a waveform with a minimum delay user can enable the fast + * mode by calling the @ref __HAL_TIM_ENABLE_OCxFAST macro. Then CCx + * output is forced in response to the edge detection on TIx input, + * without taking in account the comparison. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, + uint32_t OutputChannel, uint32_t InputChannel) +{ + HAL_StatusTypeDef status = HAL_OK; + TIM_OC_InitTypeDef temp1; + + /* Check the parameters */ + assert_param(IS_TIM_OPM_CHANNELS(OutputChannel)); + assert_param(IS_TIM_OPM_CHANNELS(InputChannel)); + + if (OutputChannel != InputChannel) + { + /* Process Locked */ + __HAL_LOCK(htim); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Extract the Output compare configuration from sConfig structure */ + temp1.OCMode = sConfig->OCMode; + temp1.Pulse = sConfig->Pulse; + temp1.OCPolarity = sConfig->OCPolarity; + temp1.OCNPolarity = sConfig->OCNPolarity; + temp1.OCIdleState = sConfig->OCIdleState; + temp1.OCNIdleState = sConfig->OCNIdleState; + + switch (OutputChannel) + { + case TIM_CHANNEL_1: + { + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + TIM_OC1_SetConfig(htim->Instance, &temp1); + break; + } + + case TIM_CHANNEL_2: + { + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + TIM_OC2_SetConfig(htim->Instance, &temp1); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + switch (InputChannel) + { + case TIM_CHANNEL_1: + { + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + TIM_TI1_SetConfig(htim->Instance, sConfig->ICPolarity, + sConfig->ICSelection, sConfig->ICFilter); + + /* Reset the IC1PSC Bits */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC; + + /* Select the Trigger source */ + htim->Instance->SMCR &= ~TIM_SMCR_TS; + htim->Instance->SMCR |= TIM_TS_TI1FP1; + + /* Select the Slave Mode */ + htim->Instance->SMCR &= ~TIM_SMCR_SMS; + htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + break; + } + + case TIM_CHANNEL_2: + { + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + TIM_TI2_SetConfig(htim->Instance, sConfig->ICPolarity, + sConfig->ICSelection, sConfig->ICFilter); + + /* Reset the IC2PSC Bits */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC; + + /* Select the Trigger source */ + htim->Instance->SMCR &= ~TIM_SMCR_TS; + htim->Instance->SMCR |= TIM_TS_TI2FP2; + + /* Select the Slave Mode */ + htim->Instance->SMCR &= ~TIM_SMCR_SMS; + htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + break; + } + + default: + status = HAL_ERROR; + break; + } + } + + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return status; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Configure the DMA Burst to transfer Data from the memory to the TIM peripheral + * @param htim TIM handle + * @param BurstBaseAddress TIM Base address from where the DMA will start the Data write + * This parameter can be one of the following values: + * @arg TIM_DMABASE_CR1 + * @arg TIM_DMABASE_CR2 + * @arg TIM_DMABASE_SMCR + * @arg TIM_DMABASE_DIER + * @arg TIM_DMABASE_SR + * @arg TIM_DMABASE_EGR + * @arg TIM_DMABASE_CCMR1 + * @arg TIM_DMABASE_CCMR2 + * @arg TIM_DMABASE_CCER + * @arg TIM_DMABASE_CNT + * @arg TIM_DMABASE_PSC + * @arg TIM_DMABASE_ARR + * @arg TIM_DMABASE_RCR + * @arg TIM_DMABASE_CCR1 + * @arg TIM_DMABASE_CCR2 + * @arg TIM_DMABASE_CCR3 + * @arg TIM_DMABASE_CCR4 + * @arg TIM_DMABASE_BDTR + * @arg TIM_DMABASE_CCMR3 + * @arg TIM_DMABASE_CCR5 + * @arg TIM_DMABASE_CCR6 + * @arg TIM_DMABASE_DTR2 + * @arg TIM_DMABASE_ECR + * @arg TIM_DMABASE_TISEL + * @arg TIM_DMABASE_AF1 + * @arg TIM_DMABASE_AF2 + * @arg TIM_DMABASE_OR + * @param BurstRequestSrc TIM DMA Request sources + * This parameter can be one of the following values: + * @arg TIM_DMA_UPDATE: TIM update Interrupt source + * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source + * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source + * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source + * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source + * @arg TIM_DMA_COM: TIM Commutation DMA source + * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source + * @param BurstBuffer The Buffer address. + * @param BurstLength DMA Burst length. This parameter can be one value + * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. + * @note This function should be used only when BurstLength is equal to DMA data transfer length. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, + uint32_t BurstLength) +{ + HAL_StatusTypeDef status; + + status = HAL_TIM_DMABurst_MultiWriteStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength, + ((BurstLength) >> 8U) + 1U); + + + + return status; +} + +/** + * @brief Configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral + * @param htim TIM handle + * @param BurstBaseAddress TIM Base address from where the DMA will start the Data write + * This parameter can be one of the following values: + * @arg TIM_DMABASE_CR1 + * @arg TIM_DMABASE_CR2 + * @arg TIM_DMABASE_SMCR + * @arg TIM_DMABASE_DIER + * @arg TIM_DMABASE_SR + * @arg TIM_DMABASE_EGR + * @arg TIM_DMABASE_CCMR1 + * @arg TIM_DMABASE_CCMR2 + * @arg TIM_DMABASE_CCER + * @arg TIM_DMABASE_CNT + * @arg TIM_DMABASE_PSC + * @arg TIM_DMABASE_ARR + * @arg TIM_DMABASE_RCR + * @arg TIM_DMABASE_CCR1 + * @arg TIM_DMABASE_CCR2 + * @arg TIM_DMABASE_CCR3 + * @arg TIM_DMABASE_CCR4 + * @arg TIM_DMABASE_BDTR + * @arg TIM_DMABASE_CCMR3 + * @arg TIM_DMABASE_CCR5 + * @arg TIM_DMABASE_CCR6 + * @arg TIM_DMABASE_DTR2 + * @arg TIM_DMABASE_ECR + * @arg TIM_DMABASE_TISEL + * @arg TIM_DMABASE_AF1 + * @arg TIM_DMABASE_AF2 + * @arg TIM_DMABASE_OR + * @param BurstRequestSrc TIM DMA Request sources + * This parameter can be one of the following values: + * @arg TIM_DMA_UPDATE: TIM update Interrupt source + * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source + * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source + * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source + * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source + * @arg TIM_DMA_COM: TIM Commutation DMA source + * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source + * @param BurstBuffer The Buffer address. + * @param BurstLength DMA Burst length. This parameter can be one value + * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. + * @param DataLength Data length. This parameter can be one value + * between 1 and 0xFFFF. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, + uint32_t BurstLength, uint32_t DataLength) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance)); + assert_param(IS_TIM_DMA_BASE(BurstBaseAddress)); + assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + assert_param(IS_TIM_DMA_LENGTH(BurstLength)); + assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength)); + + if (htim->DMABurstState == HAL_DMA_BURST_STATE_BUSY) + { + return HAL_BUSY; + } + else if (htim->DMABurstState == HAL_DMA_BURST_STATE_READY) + { + if ((BurstBuffer == NULL) && (BurstLength > 0U)) + { + return HAL_ERROR; + } + else + { + htim->DMABurstState = HAL_DMA_BURST_STATE_BUSY; + } + } + else + { + /* nothing to do */ + } + + switch (BurstRequestSrc) + { + case TIM_DMA_UPDATE: + { + /* Set the DMA Period elapsed callbacks */ + htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt; + htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC1: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC2: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC3: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC4: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_COM: + { + /* Set the DMA commutation callbacks */ + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferCpltCallback = TIMEx_DMACommutationCplt; + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_TRIGGER: + { + /* Set the DMA trigger callbacks */ + htim->hdma[TIM_DMA_ID_TRIGGER]->XferCpltCallback = TIM_DMATriggerCplt; + htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)BurstBuffer, + (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Configure the DMA Burst Mode */ + htim->Instance->DCR = (BurstBaseAddress | BurstLength); + /* Enable the TIM DMA Request */ + __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc); + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM DMA Burst mode + * @param htim TIM handle + * @param BurstRequestSrc TIM DMA Request sources to disable + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + + /* Abort the DMA transfer (at least disable the DMA channel) */ + switch (BurstRequestSrc) + { + case TIM_DMA_UPDATE: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_UPDATE]); + break; + } + case TIM_DMA_CC1: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + case TIM_DMA_CC2: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + case TIM_DMA_CC3: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + case TIM_DMA_CC4: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + case TIM_DMA_COM: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_COMMUTATION]); + break; + } + case TIM_DMA_TRIGGER: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_TRIGGER]); + break; + } + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the TIM Update DMA request */ + __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc); + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + } + + /* Return function status */ + return status; +} + +/** + * @brief Configure the DMA Burst to transfer Data from the TIM peripheral to the memory + * @param htim TIM handle + * @param BurstBaseAddress TIM Base address from where the DMA will start the Data read + * This parameter can be one of the following values: + * @arg TIM_DMABASE_CR1 + * @arg TIM_DMABASE_CR2 + * @arg TIM_DMABASE_SMCR + * @arg TIM_DMABASE_DIER + * @arg TIM_DMABASE_SR + * @arg TIM_DMABASE_EGR + * @arg TIM_DMABASE_CCMR1 + * @arg TIM_DMABASE_CCMR2 + * @arg TIM_DMABASE_CCER + * @arg TIM_DMABASE_CNT + * @arg TIM_DMABASE_PSC + * @arg TIM_DMABASE_ARR + * @arg TIM_DMABASE_RCR + * @arg TIM_DMABASE_CCR1 + * @arg TIM_DMABASE_CCR2 + * @arg TIM_DMABASE_CCR3 + * @arg TIM_DMABASE_CCR4 + * @arg TIM_DMABASE_BDTR + * @arg TIM_DMABASE_CCMR3 + * @arg TIM_DMABASE_CCR5 + * @arg TIM_DMABASE_CCR6 + * @arg TIM_DMABASE_DTR2 + * @arg TIM_DMABASE_ECR + * @arg TIM_DMABASE_TISEL + * @arg TIM_DMABASE_AF1 + * @arg TIM_DMABASE_AF2 + * @arg TIM_DMABASE_OR + * @param BurstRequestSrc TIM DMA Request sources + * This parameter can be one of the following values: + * @arg TIM_DMA_UPDATE: TIM update Interrupt source + * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source + * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source + * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source + * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source + * @arg TIM_DMA_COM: TIM Commutation DMA source + * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source + * @param BurstBuffer The Buffer address. + * @param BurstLength DMA Burst length. This parameter can be one value + * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. + * @note This function should be used only when BurstLength is equal to DMA data transfer length. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength) +{ + HAL_StatusTypeDef status; + + status = HAL_TIM_DMABurst_MultiReadStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength, + ((BurstLength) >> 8U) + 1U); + + + return status; +} + +/** + * @brief Configure the DMA Burst to transfer Data from the TIM peripheral to the memory + * @param htim TIM handle + * @param BurstBaseAddress TIM Base address from where the DMA will start the Data read + * This parameter can be one of the following values: + * @arg TIM_DMABASE_CR1 + * @arg TIM_DMABASE_CR2 + * @arg TIM_DMABASE_SMCR + * @arg TIM_DMABASE_DIER + * @arg TIM_DMABASE_SR + * @arg TIM_DMABASE_EGR + * @arg TIM_DMABASE_CCMR1 + * @arg TIM_DMABASE_CCMR2 + * @arg TIM_DMABASE_CCER + * @arg TIM_DMABASE_CNT + * @arg TIM_DMABASE_PSC + * @arg TIM_DMABASE_ARR + * @arg TIM_DMABASE_RCR + * @arg TIM_DMABASE_CCR1 + * @arg TIM_DMABASE_CCR2 + * @arg TIM_DMABASE_CCR3 + * @arg TIM_DMABASE_CCR4 + * @arg TIM_DMABASE_BDTR + * @arg TIM_DMABASE_CCMR3 + * @arg TIM_DMABASE_CCR5 + * @arg TIM_DMABASE_CCR6 + * @arg TIM_DMABASE_DTR2 + * @arg TIM_DMABASE_ECR + * @arg TIM_DMABASE_TISEL + * @arg TIM_DMABASE_AF1 + * @arg TIM_DMABASE_AF2 + * @arg TIM_DMABASE_OR + * @param BurstRequestSrc TIM DMA Request sources + * This parameter can be one of the following values: + * @arg TIM_DMA_UPDATE: TIM update Interrupt source + * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source + * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source + * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source + * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source + * @arg TIM_DMA_COM: TIM Commutation DMA source + * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source + * @param BurstBuffer The Buffer address. + * @param BurstLength DMA Burst length. This parameter can be one value + * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. + * @param DataLength Data length. This parameter can be one value + * between 1 and 0xFFFF. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, uint32_t *BurstBuffer, + uint32_t BurstLength, uint32_t DataLength) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance)); + assert_param(IS_TIM_DMA_BASE(BurstBaseAddress)); + assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + assert_param(IS_TIM_DMA_LENGTH(BurstLength)); + assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength)); + + if (htim->DMABurstState == HAL_DMA_BURST_STATE_BUSY) + { + return HAL_BUSY; + } + else if (htim->DMABurstState == HAL_DMA_BURST_STATE_READY) + { + if ((BurstBuffer == NULL) && (BurstLength > 0U)) + { + return HAL_ERROR; + } + else + { + htim->DMABurstState = HAL_DMA_BURST_STATE_BUSY; + } + } + else + { + /* nothing to do */ + } + switch (BurstRequestSrc) + { + case TIM_DMA_UPDATE: + { + /* Set the DMA Period elapsed callbacks */ + htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt; + htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC1: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC2: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC3: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_CC4: + { + /* Set the DMA capture callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_COM: + { + /* Set the DMA commutation callbacks */ + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferCpltCallback = TIMEx_DMACommutationCplt; + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + case TIM_DMA_TRIGGER: + { + /* Set the DMA trigger callbacks */ + htim->hdma[TIM_DMA_ID_TRIGGER]->XferCpltCallback = TIM_DMATriggerCplt; + htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, + DataLength) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + break; + } + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Configure the DMA Burst Mode */ + htim->Instance->DCR = (BurstBaseAddress | BurstLength); + + /* Enable the TIM DMA Request */ + __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc); + } + + /* Return function status */ + return status; +} + +/** + * @brief Stop the DMA burst reading + * @param htim TIM handle + * @param BurstRequestSrc TIM DMA Request sources to disable. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + + /* Abort the DMA transfer (at least disable the DMA channel) */ + switch (BurstRequestSrc) + { + case TIM_DMA_UPDATE: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_UPDATE]); + break; + } + case TIM_DMA_CC1: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + case TIM_DMA_CC2: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + case TIM_DMA_CC3: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + case TIM_DMA_CC4: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + case TIM_DMA_COM: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_COMMUTATION]); + break; + } + case TIM_DMA_TRIGGER: + { + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_TRIGGER]); + break; + } + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the TIM Update DMA request */ + __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc); + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + } + + /* Return function status */ + return status; +} + +/** + * @brief Generate a software event + * @param htim TIM handle + * @param EventSource specifies the event source. + * This parameter can be one of the following values: + * @arg TIM_EVENTSOURCE_UPDATE: Timer update Event source + * @arg TIM_EVENTSOURCE_CC1: Timer Capture Compare 1 Event source + * @arg TIM_EVENTSOURCE_CC2: Timer Capture Compare 2 Event source + * @arg TIM_EVENTSOURCE_CC3: Timer Capture Compare 3 Event source + * @arg TIM_EVENTSOURCE_CC4: Timer Capture Compare 4 Event source + * @arg TIM_EVENTSOURCE_COM: Timer COM event source + * @arg TIM_EVENTSOURCE_TRIGGER: Timer Trigger Event source + * @arg TIM_EVENTSOURCE_BREAK: Timer Break event source + * @arg TIM_EVENTSOURCE_BREAK2: Timer Break2 event source + * @note Basic timers can only generate an update event. + * @note TIM_EVENTSOURCE_COM is relevant only with advanced timer instances. + * @note TIM_EVENTSOURCE_BREAK and TIM_EVENTSOURCE_BREAK2 are relevant + * only for timer instances supporting break input(s). + * @retval HAL status + */ + +HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_EVENT_SOURCE(EventSource)); + + /* Process Locked */ + __HAL_LOCK(htim); + + /* Change the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Set the event sources */ + htim->Instance->EGR = EventSource; + + /* Change the TIM state */ + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Configures the OCRef clear feature + * @param htim TIM handle + * @param sClearInputConfig pointer to a TIM_ClearInputConfigTypeDef structure that + * contains the OCREF clear feature and parameters for the TIM peripheral. + * @param Channel specifies the TIM Channel + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 + * @arg TIM_CHANNEL_2: TIM Channel 2 + * @arg TIM_CHANNEL_3: TIM Channel 3 + * @arg TIM_CHANNEL_4: TIM Channel 4 + * @arg TIM_CHANNEL_5: TIM Channel 5 + * @arg TIM_CHANNEL_6: TIM Channel 6 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, + const TIM_ClearInputConfigTypeDef *sClearInputConfig, + uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_OCXREF_CLEAR_INSTANCE(htim->Instance)); + assert_param(IS_TIM_CLEARINPUT_SOURCE(sClearInputConfig->ClearInputSource)); + + /* Process Locked */ + __HAL_LOCK(htim); + + htim->State = HAL_TIM_STATE_BUSY; + + switch (sClearInputConfig->ClearInputSource) + { + case TIM_CLEARINPUTSOURCE_NONE: + { + /* Clear the OCREF clear selection bit and the the ETR Bits */ + if (IS_TIM_OCCS_INSTANCE(htim->Instance)) + { + CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_OCCS | TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP)); + + /* Clear TIMx_AF2_OCRSEL (reset value) */ + CLEAR_BIT(htim->Instance->AF2, TIMx_AF2_OCRSEL); + } + else + { + CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP)); + } + break; + } + + case TIM_CLEARINPUTSOURCE_COMP1: + case TIM_CLEARINPUTSOURCE_COMP2: + case TIM_CLEARINPUTSOURCE_COMP3: + case TIM_CLEARINPUTSOURCE_COMP4: +#if defined (COMP5) + case TIM_CLEARINPUTSOURCE_COMP5: +#endif /* COMP5 */ +#if defined (COMP6) + case TIM_CLEARINPUTSOURCE_COMP6: +#endif /* COMP6 */ +#if defined (COMP7) + case TIM_CLEARINPUTSOURCE_COMP7: +#endif /* COMP7 */ + { + if (IS_TIM_OCCS_INSTANCE(htim->Instance)) + { + /* Clear the OCREF clear selection bit */ + CLEAR_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS); + } + + /* Set the clear input source */ + MODIFY_REG(htim->Instance->AF2, TIMx_AF2_OCRSEL, sClearInputConfig->ClearInputSource); + break; + } + + case TIM_CLEARINPUTSOURCE_ETR: + { + /* Check the parameters */ + assert_param(IS_TIM_CLEARINPUT_POLARITY(sClearInputConfig->ClearInputPolarity)); + assert_param(IS_TIM_CLEARINPUT_PRESCALER(sClearInputConfig->ClearInputPrescaler)); + assert_param(IS_TIM_CLEARINPUT_FILTER(sClearInputConfig->ClearInputFilter)); + + /* When OCRef clear feature is used with ETR source, ETR prescaler must be off */ + if (sClearInputConfig->ClearInputPrescaler != TIM_CLEARINPUTPRESCALER_DIV1) + { + htim->State = HAL_TIM_STATE_READY; + __HAL_UNLOCK(htim); + return HAL_ERROR; + } + + TIM_ETR_SetConfig(htim->Instance, + sClearInputConfig->ClearInputPrescaler, + sClearInputConfig->ClearInputPolarity, + sClearInputConfig->ClearInputFilter); + + if (IS_TIM_OCCS_INSTANCE(htim->Instance)) + { + /* Set the OCREF clear selection bit */ + SET_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS); + + /* Clear TIMx_AF2_OCRSEL (reset value) */ + CLEAR_BIT(htim->Instance->AF2, TIMx_AF2_OCRSEL); + } + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + switch (Channel) + { + case TIM_CHANNEL_1: + { + if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) + { + /* Enable the OCREF clear feature for Channel 1 */ + SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE); + } + else + { + /* Disable the OCREF clear feature for Channel 1 */ + CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE); + } + break; + } + case TIM_CHANNEL_2: + { + if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) + { + /* Enable the OCREF clear feature for Channel 2 */ + SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE); + } + else + { + /* Disable the OCREF clear feature for Channel 2 */ + CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE); + } + break; + } + case TIM_CHANNEL_3: + { + if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) + { + /* Enable the OCREF clear feature for Channel 3 */ + SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE); + } + else + { + /* Disable the OCREF clear feature for Channel 3 */ + CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE); + } + break; + } + case TIM_CHANNEL_4: + { + if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) + { + /* Enable the OCREF clear feature for Channel 4 */ + SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE); + } + else + { + /* Disable the OCREF clear feature for Channel 4 */ + CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE); + } + break; + } + case TIM_CHANNEL_5: + { + if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) + { + /* Enable the OCREF clear feature for Channel 5 */ + SET_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC5CE); + } + else + { + /* Disable the OCREF clear feature for Channel 5 */ + CLEAR_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC5CE); + } + break; + } + case TIM_CHANNEL_6: + { + if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) + { + /* Enable the OCREF clear feature for Channel 6 */ + SET_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC6CE); + } + else + { + /* Disable the OCREF clear feature for Channel 6 */ + CLEAR_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC6CE); + } + break; + } + default: + break; + } + } + + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Configures the clock source to be used + * @param htim TIM handle + * @param sClockSourceConfig pointer to a TIM_ClockConfigTypeDef structure that + * contains the clock source information for the TIM peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Process Locked */ + __HAL_LOCK(htim); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Check the parameters */ + assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource)); + + /* Reset the SMS, TS, ECE, ETPS and ETRF bits */ + tmpsmcr = htim->Instance->SMCR; + tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + htim->Instance->SMCR = tmpsmcr; + + switch (sClockSourceConfig->ClockSource) + { + case TIM_CLOCKSOURCE_INTERNAL: + { + assert_param(IS_TIM_INSTANCE(htim->Instance)); + break; + } + + case TIM_CLOCKSOURCE_ETRMODE1: + { + /* Check whether or not the timer instance supports external trigger input mode 1 (ETRF)*/ + assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance)); + + /* Check ETR input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler)); + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + /* Configure the ETR Clock source */ + TIM_ETR_SetConfig(htim->Instance, + sClockSourceConfig->ClockPrescaler, + sClockSourceConfig->ClockPolarity, + sClockSourceConfig->ClockFilter); + + /* Select the External clock mode1 and the ETRF trigger */ + tmpsmcr = htim->Instance->SMCR; + tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + /* Write to TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + break; + } + + case TIM_CLOCKSOURCE_ETRMODE2: + { + /* Check whether or not the timer instance supports external trigger input mode 2 (ETRF)*/ + assert_param(IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(htim->Instance)); + + /* Check ETR input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler)); + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + /* Configure the ETR Clock source */ + TIM_ETR_SetConfig(htim->Instance, + sClockSourceConfig->ClockPrescaler, + sClockSourceConfig->ClockPolarity, + sClockSourceConfig->ClockFilter); + /* Enable the External clock mode2 */ + htim->Instance->SMCR |= TIM_SMCR_ECE; + break; + } + + case TIM_CLOCKSOURCE_TI1: + { + /* Check whether or not the timer instance supports external clock mode 1 */ + assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance)); + + /* Check TI1 input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + TIM_TI1_ConfigInputStage(htim->Instance, + sClockSourceConfig->ClockPolarity, + sClockSourceConfig->ClockFilter); + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1); + break; + } + + case TIM_CLOCKSOURCE_TI2: + { + /* Check whether or not the timer instance supports external clock mode 1 (ETRF)*/ + assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance)); + + /* Check TI2 input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + TIM_TI2_ConfigInputStage(htim->Instance, + sClockSourceConfig->ClockPolarity, + sClockSourceConfig->ClockFilter); + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2); + break; + } + + case TIM_CLOCKSOURCE_TI1ED: + { + /* Check whether or not the timer instance supports external clock mode 1 */ + assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance)); + + /* Check TI1 input conditioning related parameters */ + assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + + TIM_TI1_ConfigInputStage(htim->Instance, + sClockSourceConfig->ClockPolarity, + sClockSourceConfig->ClockFilter); + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED); + break; + } + + case TIM_CLOCKSOURCE_ITR0: + case TIM_CLOCKSOURCE_ITR1: + case TIM_CLOCKSOURCE_ITR2: + case TIM_CLOCKSOURCE_ITR3: +#if defined (TIM5) + case TIM_CLOCKSOURCE_ITR4: +#endif /* TIM5 */ + case TIM_CLOCKSOURCE_ITR5: + case TIM_CLOCKSOURCE_ITR6: + case TIM_CLOCKSOURCE_ITR7: + case TIM_CLOCKSOURCE_ITR8: +#if defined (TIM20) + case TIM_CLOCKSOURCE_ITR9: +#endif /* TIM20 */ +#if defined (HRTIM1) + case TIM_CLOCKSOURCE_ITR10: +#endif /* HRTIM1 */ + case TIM_CLOCKSOURCE_ITR11: + { + /* Check whether or not the timer instance supports internal trigger input */ + assert_param(IS_TIM_CLOCKSOURCE_INSTANCE((htim->Instance), sClockSourceConfig->ClockSource)); + + TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); + break; + } + + default: + status = HAL_ERROR; + break; + } + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Selects the signal connected to the TI1 input: direct from CH1_input + * or a XOR combination between CH1_input, CH2_input & CH3_input + * @param htim TIM handle. + * @param TI1_Selection Indicate whether or not channel 1 is connected to the + * output of a XOR gate. + * This parameter can be one of the following values: + * @arg TIM_TI1SELECTION_CH1: The TIMx_CH1 pin is connected to TI1 input + * @arg TIM_TI1SELECTION_XORCOMBINATION: The TIMx_CH1, CH2 and CH3 + * pins are connected to the TI1 input (XOR combination) + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection) +{ + uint32_t tmpcr2; + + /* Check the parameters */ + assert_param(IS_TIM_XOR_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TI1SELECTION(TI1_Selection)); + + /* Get the TIMx CR2 register value */ + tmpcr2 = htim->Instance->CR2; + + /* Reset the TI1 selection */ + tmpcr2 &= ~TIM_CR2_TI1S; + + /* Set the TI1 selection */ + tmpcr2 |= TI1_Selection; + + /* Write to TIMxCR2 */ + htim->Instance->CR2 = tmpcr2; + + return HAL_OK; +} + +/** + * @brief Configures the TIM in Slave mode + * @param htim TIM handle. + * @param sSlaveConfig pointer to a TIM_SlaveConfigTypeDef structure that + * contains the selected trigger (internal trigger input, filtered + * timer input or external trigger input) and the Slave mode + * (Disable, Reset, Gated, Trigger, External clock mode 1, Reset + Trigger, Gated + Reset). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig) +{ + /* Check the parameters */ + assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->SlaveMode)); + assert_param(IS_TIM_TRIGGER_INSTANCE(htim->Instance, sSlaveConfig->InputTrigger)); + + __HAL_LOCK(htim); + + htim->State = HAL_TIM_STATE_BUSY; + + if (TIM_SlaveTimer_SetConfig(htim, sSlaveConfig) != HAL_OK) + { + htim->State = HAL_TIM_STATE_READY; + __HAL_UNLOCK(htim); + return HAL_ERROR; + } + + /* Disable Trigger Interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_TRIGGER); + + /* Disable Trigger DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER); + + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configures the TIM in Slave mode in interrupt mode + * @param htim TIM handle. + * @param sSlaveConfig pointer to a TIM_SlaveConfigTypeDef structure that + * contains the selected trigger (internal trigger input, filtered + * timer input or external trigger input) and the Slave mode + * (Disable, Reset, Gated, Trigger, External clock mode 1, Reset + Trigger, Gated + Reset). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, + const TIM_SlaveConfigTypeDef *sSlaveConfig) +{ + /* Check the parameters */ + assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->SlaveMode)); + assert_param(IS_TIM_TRIGGER_INSTANCE(htim->Instance, sSlaveConfig->InputTrigger)); + + __HAL_LOCK(htim); + + htim->State = HAL_TIM_STATE_BUSY; + + if (TIM_SlaveTimer_SetConfig(htim, sSlaveConfig) != HAL_OK) + { + htim->State = HAL_TIM_STATE_READY; + __HAL_UNLOCK(htim); + return HAL_ERROR; + } + + /* Enable Trigger Interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_TRIGGER); + + /* Disable Trigger DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER); + + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Read the captured value from Capture Compare unit + * @param htim TIM handle. + * @param Channel TIM Channels to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval Captured value + */ +uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel) +{ + uint32_t tmpreg = 0U; + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + /* Return the capture 1 value */ + tmpreg = htim->Instance->CCR1; + + break; + } + case TIM_CHANNEL_2: + { + /* Check the parameters */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + /* Return the capture 2 value */ + tmpreg = htim->Instance->CCR2; + + break; + } + + case TIM_CHANNEL_3: + { + /* Check the parameters */ + assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); + + /* Return the capture 3 value */ + tmpreg = htim->Instance->CCR3; + + break; + } + + case TIM_CHANNEL_4: + { + /* Check the parameters */ + assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); + + /* Return the capture 4 value */ + tmpreg = htim->Instance->CCR4; + + break; + } + + default: + break; + } + + return tmpreg; +} + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group9 TIM Callbacks functions + * @brief TIM Callbacks functions + * +@verbatim + ============================================================================== + ##### TIM Callbacks functions ##### + ============================================================================== + [..] + This section provides TIM callback functions: + (+) TIM Period elapsed callback + (+) TIM Output Compare callback + (+) TIM Input capture callback + (+) TIM Trigger callback + (+) TIM Error callback + (+) TIM Index callback + (+) TIM Direction change callback + (+) TIM Index error callback + (+) TIM Transition error callback + +@endverbatim + * @{ + */ + +/** + * @brief Period elapsed callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PeriodElapsedCallback could be implemented in the user file + */ +} + +/** + * @brief Period elapsed half complete callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PeriodElapsedHalfCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Output Compare callback in non-blocking mode + * @param htim TIM OC handle + * @retval None + */ +__weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file + */ +} + +/** + * @brief Input Capture callback in non-blocking mode + * @param htim TIM IC handle + * @retval None + */ +__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_IC_CaptureCallback could be implemented in the user file + */ +} + +/** + * @brief Input Capture half complete callback in non-blocking mode + * @param htim TIM IC handle + * @retval None + */ +__weak void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_IC_CaptureHalfCpltCallback could be implemented in the user file + */ +} + +/** + * @brief PWM Pulse finished callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file + */ +} + +/** + * @brief PWM Pulse finished half complete callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PWM_PulseFinishedHalfCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Hall Trigger detection callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_TriggerCallback could be implemented in the user file + */ +} + +/** + * @brief Hall Trigger detection half complete callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_TriggerHalfCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Timer error callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_ErrorCallback could be implemented in the user file + */ +} + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +/** + * @brief Register a User TIM callback to be used instead of the weak predefined callback + * @param htim tim handle + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_TIM_BASE_MSPINIT_CB_ID Base MspInit Callback ID + * @arg @ref HAL_TIM_BASE_MSPDEINIT_CB_ID Base MspDeInit Callback ID + * @arg @ref HAL_TIM_IC_MSPINIT_CB_ID IC MspInit Callback ID + * @arg @ref HAL_TIM_IC_MSPDEINIT_CB_ID IC MspDeInit Callback ID + * @arg @ref HAL_TIM_OC_MSPINIT_CB_ID OC MspInit Callback ID + * @arg @ref HAL_TIM_OC_MSPDEINIT_CB_ID OC MspDeInit Callback ID + * @arg @ref HAL_TIM_PWM_MSPINIT_CB_ID PWM MspInit Callback ID + * @arg @ref HAL_TIM_PWM_MSPDEINIT_CB_ID PWM MspDeInit Callback ID + * @arg @ref HAL_TIM_ONE_PULSE_MSPINIT_CB_ID One Pulse MspInit Callback ID + * @arg @ref HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID One Pulse MspDeInit Callback ID + * @arg @ref HAL_TIM_ENCODER_MSPINIT_CB_ID Encoder MspInit Callback ID + * @arg @ref HAL_TIM_ENCODER_MSPDEINIT_CB_ID Encoder MspDeInit Callback ID + * @arg @ref HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID Hall Sensor MspInit Callback ID + * @arg @ref HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID Hall Sensor MspDeInit Callback ID + * @arg @ref HAL_TIM_PERIOD_ELAPSED_CB_ID Period Elapsed Callback ID + * @arg @ref HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID Period Elapsed half complete Callback ID + * @arg @ref HAL_TIM_TRIGGER_CB_ID Trigger Callback ID + * @arg @ref HAL_TIM_TRIGGER_HALF_CB_ID Trigger half complete Callback ID + * @arg @ref HAL_TIM_IC_CAPTURE_CB_ID Input Capture Callback ID + * @arg @ref HAL_TIM_IC_CAPTURE_HALF_CB_ID Input Capture half complete Callback ID + * @arg @ref HAL_TIM_OC_DELAY_ELAPSED_CB_ID Output Compare Delay Elapsed Callback ID + * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_CB_ID PWM Pulse Finished Callback ID + * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID PWM Pulse Finished half complete Callback ID + * @arg @ref HAL_TIM_ERROR_CB_ID Error Callback ID + * @arg @ref HAL_TIM_COMMUTATION_CB_ID Commutation Callback ID + * @arg @ref HAL_TIM_COMMUTATION_HALF_CB_ID Commutation half complete Callback ID + * @arg @ref HAL_TIM_BREAK_CB_ID Break Callback ID + * @arg @ref HAL_TIM_BREAK2_CB_ID Break2 Callback ID + * @arg @ref HAL_TIM_ENCODER_INDEX_CB_ID Encoder Index Callback ID + * @arg @ref HAL_TIM_DIRECTION_CHANGE_CB_ID Direction Change Callback ID + * @arg @ref HAL_TIM_INDEX_ERROR_CB_ID Index Error Callback ID + * @arg @ref HAL_TIM_TRANSITION_ERROR_CB_ID Transition Error Callback ID + * @param pCallback pointer to the callback function + * @retval status + */ +HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID, + pTIM_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + return HAL_ERROR; + } + + if (htim->State == HAL_TIM_STATE_READY) + { + switch (CallbackID) + { + case HAL_TIM_BASE_MSPINIT_CB_ID : + htim->Base_MspInitCallback = pCallback; + break; + + case HAL_TIM_BASE_MSPDEINIT_CB_ID : + htim->Base_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_IC_MSPINIT_CB_ID : + htim->IC_MspInitCallback = pCallback; + break; + + case HAL_TIM_IC_MSPDEINIT_CB_ID : + htim->IC_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_OC_MSPINIT_CB_ID : + htim->OC_MspInitCallback = pCallback; + break; + + case HAL_TIM_OC_MSPDEINIT_CB_ID : + htim->OC_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_PWM_MSPINIT_CB_ID : + htim->PWM_MspInitCallback = pCallback; + break; + + case HAL_TIM_PWM_MSPDEINIT_CB_ID : + htim->PWM_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : + htim->OnePulse_MspInitCallback = pCallback; + break; + + case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : + htim->OnePulse_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_ENCODER_MSPINIT_CB_ID : + htim->Encoder_MspInitCallback = pCallback; + break; + + case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : + htim->Encoder_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : + htim->HallSensor_MspInitCallback = pCallback; + break; + + case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : + htim->HallSensor_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_PERIOD_ELAPSED_CB_ID : + htim->PeriodElapsedCallback = pCallback; + break; + + case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID : + htim->PeriodElapsedHalfCpltCallback = pCallback; + break; + + case HAL_TIM_TRIGGER_CB_ID : + htim->TriggerCallback = pCallback; + break; + + case HAL_TIM_TRIGGER_HALF_CB_ID : + htim->TriggerHalfCpltCallback = pCallback; + break; + + case HAL_TIM_IC_CAPTURE_CB_ID : + htim->IC_CaptureCallback = pCallback; + break; + + case HAL_TIM_IC_CAPTURE_HALF_CB_ID : + htim->IC_CaptureHalfCpltCallback = pCallback; + break; + + case HAL_TIM_OC_DELAY_ELAPSED_CB_ID : + htim->OC_DelayElapsedCallback = pCallback; + break; + + case HAL_TIM_PWM_PULSE_FINISHED_CB_ID : + htim->PWM_PulseFinishedCallback = pCallback; + break; + + case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID : + htim->PWM_PulseFinishedHalfCpltCallback = pCallback; + break; + + case HAL_TIM_ERROR_CB_ID : + htim->ErrorCallback = pCallback; + break; + + case HAL_TIM_COMMUTATION_CB_ID : + htim->CommutationCallback = pCallback; + break; + + case HAL_TIM_COMMUTATION_HALF_CB_ID : + htim->CommutationHalfCpltCallback = pCallback; + break; + + case HAL_TIM_BREAK_CB_ID : + htim->BreakCallback = pCallback; + break; + + case HAL_TIM_BREAK2_CB_ID : + htim->Break2Callback = pCallback; + break; + + case HAL_TIM_ENCODER_INDEX_CB_ID : + htim->EncoderIndexCallback = pCallback; + break; + + case HAL_TIM_DIRECTION_CHANGE_CB_ID : + htim->DirectionChangeCallback = pCallback; + break; + + case HAL_TIM_INDEX_ERROR_CB_ID : + htim->IndexErrorCallback = pCallback; + break; + + case HAL_TIM_TRANSITION_ERROR_CB_ID : + htim->TransitionErrorCallback = pCallback; + break; + + default : + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (htim->State == HAL_TIM_STATE_RESET) + { + switch (CallbackID) + { + case HAL_TIM_BASE_MSPINIT_CB_ID : + htim->Base_MspInitCallback = pCallback; + break; + + case HAL_TIM_BASE_MSPDEINIT_CB_ID : + htim->Base_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_IC_MSPINIT_CB_ID : + htim->IC_MspInitCallback = pCallback; + break; + + case HAL_TIM_IC_MSPDEINIT_CB_ID : + htim->IC_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_OC_MSPINIT_CB_ID : + htim->OC_MspInitCallback = pCallback; + break; + + case HAL_TIM_OC_MSPDEINIT_CB_ID : + htim->OC_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_PWM_MSPINIT_CB_ID : + htim->PWM_MspInitCallback = pCallback; + break; + + case HAL_TIM_PWM_MSPDEINIT_CB_ID : + htim->PWM_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : + htim->OnePulse_MspInitCallback = pCallback; + break; + + case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : + htim->OnePulse_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_ENCODER_MSPINIT_CB_ID : + htim->Encoder_MspInitCallback = pCallback; + break; + + case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : + htim->Encoder_MspDeInitCallback = pCallback; + break; + + case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : + htim->HallSensor_MspInitCallback = pCallback; + break; + + case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : + htim->HallSensor_MspDeInitCallback = pCallback; + break; + + default : + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Unregister a TIM callback + * TIM callback is redirected to the weak predefined callback + * @param htim tim handle + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * @arg @ref HAL_TIM_BASE_MSPINIT_CB_ID Base MspInit Callback ID + * @arg @ref HAL_TIM_BASE_MSPDEINIT_CB_ID Base MspDeInit Callback ID + * @arg @ref HAL_TIM_IC_MSPINIT_CB_ID IC MspInit Callback ID + * @arg @ref HAL_TIM_IC_MSPDEINIT_CB_ID IC MspDeInit Callback ID + * @arg @ref HAL_TIM_OC_MSPINIT_CB_ID OC MspInit Callback ID + * @arg @ref HAL_TIM_OC_MSPDEINIT_CB_ID OC MspDeInit Callback ID + * @arg @ref HAL_TIM_PWM_MSPINIT_CB_ID PWM MspInit Callback ID + * @arg @ref HAL_TIM_PWM_MSPDEINIT_CB_ID PWM MspDeInit Callback ID + * @arg @ref HAL_TIM_ONE_PULSE_MSPINIT_CB_ID One Pulse MspInit Callback ID + * @arg @ref HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID One Pulse MspDeInit Callback ID + * @arg @ref HAL_TIM_ENCODER_MSPINIT_CB_ID Encoder MspInit Callback ID + * @arg @ref HAL_TIM_ENCODER_MSPDEINIT_CB_ID Encoder MspDeInit Callback ID + * @arg @ref HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID Hall Sensor MspInit Callback ID + * @arg @ref HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID Hall Sensor MspDeInit Callback ID + * @arg @ref HAL_TIM_PERIOD_ELAPSED_CB_ID Period Elapsed Callback ID + * @arg @ref HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID Period Elapsed half complete Callback ID + * @arg @ref HAL_TIM_TRIGGER_CB_ID Trigger Callback ID + * @arg @ref HAL_TIM_TRIGGER_HALF_CB_ID Trigger half complete Callback ID + * @arg @ref HAL_TIM_IC_CAPTURE_CB_ID Input Capture Callback ID + * @arg @ref HAL_TIM_IC_CAPTURE_HALF_CB_ID Input Capture half complete Callback ID + * @arg @ref HAL_TIM_OC_DELAY_ELAPSED_CB_ID Output Compare Delay Elapsed Callback ID + * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_CB_ID PWM Pulse Finished Callback ID + * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID PWM Pulse Finished half complete Callback ID + * @arg @ref HAL_TIM_ERROR_CB_ID Error Callback ID + * @arg @ref HAL_TIM_COMMUTATION_CB_ID Commutation Callback ID + * @arg @ref HAL_TIM_COMMUTATION_HALF_CB_ID Commutation half complete Callback ID + * @arg @ref HAL_TIM_BREAK_CB_ID Break Callback ID + * @arg @ref HAL_TIM_BREAK2_CB_ID Break2 Callback ID + * @arg @ref HAL_TIM_ENCODER_INDEX_CB_ID Encoder Index Callback ID + * @arg @ref HAL_TIM_DIRECTION_CHANGE_CB_ID Direction Change Callback ID + * @arg @ref HAL_TIM_INDEX_ERROR_CB_ID Index Error Callback ID + * @arg @ref HAL_TIM_TRANSITION_ERROR_CB_ID Transition Error Callback ID + * @retval status + */ +HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (htim->State == HAL_TIM_STATE_READY) + { + switch (CallbackID) + { + case HAL_TIM_BASE_MSPINIT_CB_ID : + /* Legacy weak Base MspInit Callback */ + htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; + break; + + case HAL_TIM_BASE_MSPDEINIT_CB_ID : + /* Legacy weak Base Msp DeInit Callback */ + htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; + break; + + case HAL_TIM_IC_MSPINIT_CB_ID : + /* Legacy weak IC Msp Init Callback */ + htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; + break; + + case HAL_TIM_IC_MSPDEINIT_CB_ID : + /* Legacy weak IC Msp DeInit Callback */ + htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; + break; + + case HAL_TIM_OC_MSPINIT_CB_ID : + /* Legacy weak OC Msp Init Callback */ + htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; + break; + + case HAL_TIM_OC_MSPDEINIT_CB_ID : + /* Legacy weak OC Msp DeInit Callback */ + htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; + break; + + case HAL_TIM_PWM_MSPINIT_CB_ID : + /* Legacy weak PWM Msp Init Callback */ + htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; + break; + + case HAL_TIM_PWM_MSPDEINIT_CB_ID : + /* Legacy weak PWM Msp DeInit Callback */ + htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; + break; + + case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : + /* Legacy weak One Pulse Msp Init Callback */ + htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; + break; + + case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : + /* Legacy weak One Pulse Msp DeInit Callback */ + htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; + break; + + case HAL_TIM_ENCODER_MSPINIT_CB_ID : + /* Legacy weak Encoder Msp Init Callback */ + htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; + break; + + case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : + /* Legacy weak Encoder Msp DeInit Callback */ + htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; + break; + + case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : + /* Legacy weak Hall Sensor Msp Init Callback */ + htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; + break; + + case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : + /* Legacy weak Hall Sensor Msp DeInit Callback */ + htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; + break; + + case HAL_TIM_PERIOD_ELAPSED_CB_ID : + /* Legacy weak Period Elapsed Callback */ + htim->PeriodElapsedCallback = HAL_TIM_PeriodElapsedCallback; + break; + + case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID : + /* Legacy weak Period Elapsed half complete Callback */ + htim->PeriodElapsedHalfCpltCallback = HAL_TIM_PeriodElapsedHalfCpltCallback; + break; + + case HAL_TIM_TRIGGER_CB_ID : + /* Legacy weak Trigger Callback */ + htim->TriggerCallback = HAL_TIM_TriggerCallback; + break; + + case HAL_TIM_TRIGGER_HALF_CB_ID : + /* Legacy weak Trigger half complete Callback */ + htim->TriggerHalfCpltCallback = HAL_TIM_TriggerHalfCpltCallback; + break; + + case HAL_TIM_IC_CAPTURE_CB_ID : + /* Legacy weak IC Capture Callback */ + htim->IC_CaptureCallback = HAL_TIM_IC_CaptureCallback; + break; + + case HAL_TIM_IC_CAPTURE_HALF_CB_ID : + /* Legacy weak IC Capture half complete Callback */ + htim->IC_CaptureHalfCpltCallback = HAL_TIM_IC_CaptureHalfCpltCallback; + break; + + case HAL_TIM_OC_DELAY_ELAPSED_CB_ID : + /* Legacy weak OC Delay Elapsed Callback */ + htim->OC_DelayElapsedCallback = HAL_TIM_OC_DelayElapsedCallback; + break; + + case HAL_TIM_PWM_PULSE_FINISHED_CB_ID : + /* Legacy weak PWM Pulse Finished Callback */ + htim->PWM_PulseFinishedCallback = HAL_TIM_PWM_PulseFinishedCallback; + break; + + case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID : + /* Legacy weak PWM Pulse Finished half complete Callback */ + htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; + break; + + case HAL_TIM_ERROR_CB_ID : + /* Legacy weak Error Callback */ + htim->ErrorCallback = HAL_TIM_ErrorCallback; + break; + + case HAL_TIM_COMMUTATION_CB_ID : + /* Legacy weak Commutation Callback */ + htim->CommutationCallback = HAL_TIMEx_CommutCallback; + break; + + case HAL_TIM_COMMUTATION_HALF_CB_ID : + /* Legacy weak Commutation half complete Callback */ + htim->CommutationHalfCpltCallback = HAL_TIMEx_CommutHalfCpltCallback; + break; + + case HAL_TIM_BREAK_CB_ID : + /* Legacy weak Break Callback */ + htim->BreakCallback = HAL_TIMEx_BreakCallback; + break; + + case HAL_TIM_BREAK2_CB_ID : + /* Legacy weak Break2 Callback */ + htim->Break2Callback = HAL_TIMEx_Break2Callback; + break; + + case HAL_TIM_ENCODER_INDEX_CB_ID : + /* Legacy weak Encoder Index Callback */ + htim->EncoderIndexCallback = HAL_TIMEx_EncoderIndexCallback; + break; + + case HAL_TIM_DIRECTION_CHANGE_CB_ID : + /* Legacy weak Direction Change Callback */ + htim->DirectionChangeCallback = HAL_TIMEx_DirectionChangeCallback; + break; + + case HAL_TIM_INDEX_ERROR_CB_ID : + /* Legacy weak Index Error Callback */ + htim->IndexErrorCallback = HAL_TIMEx_IndexErrorCallback; + break; + + case HAL_TIM_TRANSITION_ERROR_CB_ID : + /* Legacy weak Transition Error Callback */ + htim->TransitionErrorCallback = HAL_TIMEx_TransitionErrorCallback; + break; + + default : + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (htim->State == HAL_TIM_STATE_RESET) + { + switch (CallbackID) + { + case HAL_TIM_BASE_MSPINIT_CB_ID : + /* Legacy weak Base MspInit Callback */ + htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; + break; + + case HAL_TIM_BASE_MSPDEINIT_CB_ID : + /* Legacy weak Base Msp DeInit Callback */ + htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; + break; + + case HAL_TIM_IC_MSPINIT_CB_ID : + /* Legacy weak IC Msp Init Callback */ + htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; + break; + + case HAL_TIM_IC_MSPDEINIT_CB_ID : + /* Legacy weak IC Msp DeInit Callback */ + htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; + break; + + case HAL_TIM_OC_MSPINIT_CB_ID : + /* Legacy weak OC Msp Init Callback */ + htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; + break; + + case HAL_TIM_OC_MSPDEINIT_CB_ID : + /* Legacy weak OC Msp DeInit Callback */ + htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; + break; + + case HAL_TIM_PWM_MSPINIT_CB_ID : + /* Legacy weak PWM Msp Init Callback */ + htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; + break; + + case HAL_TIM_PWM_MSPDEINIT_CB_ID : + /* Legacy weak PWM Msp DeInit Callback */ + htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; + break; + + case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : + /* Legacy weak One Pulse Msp Init Callback */ + htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; + break; + + case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : + /* Legacy weak One Pulse Msp DeInit Callback */ + htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; + break; + + case HAL_TIM_ENCODER_MSPINIT_CB_ID : + /* Legacy weak Encoder Msp Init Callback */ + htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; + break; + + case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : + /* Legacy weak Encoder Msp DeInit Callback */ + htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; + break; + + case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : + /* Legacy weak Hall Sensor Msp Init Callback */ + htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; + break; + + case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : + /* Legacy weak Hall Sensor Msp DeInit Callback */ + htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; + break; + + default : + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup TIM_Exported_Functions_Group10 TIM Peripheral State functions + * @brief TIM Peripheral State functions + * +@verbatim + ============================================================================== + ##### Peripheral State functions ##### + ============================================================================== + [..] + This subsection permits to get in run-time the status of the peripheral + and the data flow. + +@endverbatim + * @{ + */ + +/** + * @brief Return the TIM Base handle state. + * @param htim TIM Base handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return the TIM OC handle state. + * @param htim TIM Output Compare handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return the TIM PWM handle state. + * @param htim TIM handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return the TIM Input Capture handle state. + * @param htim TIM IC handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return the TIM One Pulse Mode handle state. + * @param htim TIM OPM handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return the TIM Encoder Mode handle state. + * @param htim TIM Encoder Interface handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return the TIM Encoder Mode handle state. + * @param htim TIM handle + * @retval Active channel + */ +HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim) +{ + return htim->Channel; +} + +/** + * @brief Return actual state of the TIM channel. + * @param htim TIM handle + * @param Channel TIM Channel + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 + * @arg TIM_CHANNEL_2: TIM Channel 2 + * @arg TIM_CHANNEL_3: TIM Channel 3 + * @arg TIM_CHANNEL_4: TIM Channel 4 + * @arg TIM_CHANNEL_5: TIM Channel 5 + * @arg TIM_CHANNEL_6: TIM Channel 6 + * @retval TIM Channel state + */ +HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_TIM_ChannelStateTypeDef channel_state; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); + + return channel_state; +} + +/** + * @brief Return actual state of a DMA burst operation. + * @param htim TIM handle + * @retval DMA burst state + */ +HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance)); + + return htim->DMABurstState; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup TIM_Private_Functions TIM Private Functions + * @{ + */ + +/** + * @brief TIM DMA error callback + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIM_DMAError(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + } + else + { + htim->State = HAL_TIM_STATE_READY; + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->ErrorCallback(htim); +#else + HAL_TIM_ErrorCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA Delay Pulse complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + } + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA Delay Pulse half complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PWM_PulseFinishedHalfCpltCallback(htim); +#else + HAL_TIM_PWM_PulseFinishedHalfCpltCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA Capture complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + } + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureCallback(htim); +#else + HAL_TIM_IC_CaptureCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA Capture half complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->IC_CaptureHalfCpltCallback(htim); +#else + HAL_TIM_IC_CaptureHalfCpltCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA Period Elapse complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (htim->hdma[TIM_DMA_ID_UPDATE]->Init.Mode == DMA_NORMAL) + { + htim->State = HAL_TIM_STATE_READY; + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PeriodElapsedCallback(htim); +#else + HAL_TIM_PeriodElapsedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + +/** + * @brief TIM DMA Period Elapse half complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PeriodElapsedHalfCpltCallback(htim); +#else + HAL_TIM_PeriodElapsedHalfCpltCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + +/** + * @brief TIM DMA Trigger callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (htim->hdma[TIM_DMA_ID_TRIGGER]->Init.Mode == DMA_NORMAL) + { + htim->State = HAL_TIM_STATE_READY; + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->TriggerCallback(htim); +#else + HAL_TIM_TriggerCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + +/** + * @brief TIM DMA Trigger half complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->TriggerHalfCpltCallback(htim); +#else + HAL_TIM_TriggerHalfCpltCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + +/** + * @brief Time Base configuration + * @param TIMx TIM peripheral + * @param Structure TIM Base configuration structure + * @retval None + */ +void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure) +{ + uint32_t tmpcr1; + tmpcr1 = TIMx->CR1; + + /* Set TIM Time Base Unit parameters ---------------------------------------*/ + if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) + { + /* Select the Counter Mode */ + tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); + tmpcr1 |= Structure->CounterMode; + } + + if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) + { + /* Set the clock division */ + tmpcr1 &= ~TIM_CR1_CKD; + tmpcr1 |= (uint32_t)Structure->ClockDivision; + } + + /* Set the auto-reload preload */ + MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); + + TIMx->CR1 = tmpcr1; + + /* Set the Autoreload value */ + TIMx->ARR = (uint32_t)Structure->Period ; + + /* Set the Prescaler value */ + TIMx->PSC = Structure->Prescaler; + + if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) + { + /* Set the Repetition Counter value */ + TIMx->RCR = Structure->RepetitionCounter; + } + + /* Generate an update event to reload the Prescaler + and the repetition counter (only for advanced timer) value immediately */ + TIMx->EGR = TIM_EGR_UG; + + /* Check if the update flag is set after the Update Generation, if so clear the UIF flag */ + if (HAL_IS_BIT_SET(TIMx->SR, TIM_FLAG_UPDATE)) + { + /* Clear the update flag */ + CLEAR_BIT(TIMx->SR, TIM_FLAG_UPDATE); + } +} + +/** + * @brief Timer Output Compare 1 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + + /* Disable the Channel 1: Reset the CC1E Bit */ + TIMx->CCER &= ~TIM_CCER_CC1E; + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~TIM_CCMR1_OC1M; + tmpccmrx &= ~TIM_CCMR1_CC1S; + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC1P; + /* Set the Output Compare Polarity */ + tmpccer |= OC_Config->OCPolarity; + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_1)) + { + /* Check parameters */ + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC1NP; + /* Set the Output N Polarity */ + tmpccer |= OC_Config->OCNPolarity; + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC1NE; + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS1; + tmpcr2 &= ~TIM_CR2_OIS1N; + /* Set the Output Idle state */ + tmpcr2 |= OC_Config->OCIdleState; + /* Set the Output N Idle state */ + tmpcr2 |= OC_Config->OCNIdleState; + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR1 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 2 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC2E; + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR1_OC2M; + tmpccmrx &= ~TIM_CCMR1_CC2S; + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC2P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 4U); + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2)) + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC2NP; + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 4U); + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC2NE; + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS2; + tmpcr2 &= ~TIM_CR2_OIS2N; + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 2U); + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 2U); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR2 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 3 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + + /* Disable the Channel 3: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC3E; + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC3M; + tmpccmrx &= ~TIM_CCMR2_CC3S; + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC3P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 8U); + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3)) + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC3NP; + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 8U); + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC3NE; + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS3; + tmpcr2 &= ~TIM_CR2_OIS3N; + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 4U); + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 4U); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR3 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 4 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + + /* Disable the Channel 4: Reset the CC4E Bit */ + TIMx->CCER &= ~TIM_CCER_CC4E; + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC4M; + tmpccmrx &= ~TIM_CCMR2_CC4S; + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC4P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 12U); + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_4)) + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC4NP; + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 12U); + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC4NE; + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS4; + /* Reset the Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS4N; + + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 6U); + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 6U); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR4 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 5 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, + const TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + + /* Disable the output: Reset the CCxE Bit */ + TIMx->CCER &= ~TIM_CCER_CC5E; + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR3; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~(TIM_CCMR3_OC5M); + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC5P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 16U); + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS5; + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 8U); + } + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR3 */ + TIMx->CCMR3 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR5 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 6 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, + const TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + + /* Disable the output: Reset the CCxE Bit */ + TIMx->CCER &= ~TIM_CCER_CC6E; + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR3; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~(TIM_CCMR3_OC6M); + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + + /* Reset the Output Polarity level */ + tmpccer &= (uint32_t)~TIM_CCER_CC6P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 20U); + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS6; + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 10U); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR3 */ + TIMx->CCMR3 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR6 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Slave Timer configuration function + * @param htim TIM handle + * @param sSlaveConfig Slave timer configuration + * @retval None + */ +static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, + const TIM_SlaveConfigTypeDef *sSlaveConfig) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Get the TIMx SMCR register value */ + tmpsmcr = htim->Instance->SMCR; + + /* Reset the Trigger Selection Bits */ + tmpsmcr &= ~TIM_SMCR_TS; + /* Set the Input Trigger source */ + tmpsmcr |= sSlaveConfig->InputTrigger; + + /* Reset the slave mode Bits */ + tmpsmcr &= ~TIM_SMCR_SMS; + /* Set the slave mode */ + tmpsmcr |= sSlaveConfig->SlaveMode; + + /* Write to TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + + /* Configure the trigger prescaler, filter, and polarity */ + switch (sSlaveConfig->InputTrigger) + { + case TIM_TS_ETRF: + { + /* Check the parameters */ + assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRIGGERPRESCALER(sSlaveConfig->TriggerPrescaler)); + assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); + assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + /* Configure the ETR Trigger source */ + TIM_ETR_SetConfig(htim->Instance, + sSlaveConfig->TriggerPrescaler, + sSlaveConfig->TriggerPolarity, + sSlaveConfig->TriggerFilter); + break; + } + + case TIM_TS_TI1F_ED: + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + + if ((sSlaveConfig->SlaveMode == TIM_SLAVEMODE_GATED) || \ + (sSlaveConfig->SlaveMode == TIM_SLAVEMODE_COMBINED_GATEDRESET)) + { + return HAL_ERROR; + } + + /* Disable the Channel 1: Reset the CC1E Bit */ + tmpccer = htim->Instance->CCER; + htim->Instance->CCER &= ~TIM_CCER_CC1E; + tmpccmr1 = htim->Instance->CCMR1; + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC1F; + tmpccmr1 |= ((sSlaveConfig->TriggerFilter) << 4U); + + /* Write to TIMx CCMR1 and CCER registers */ + htim->Instance->CCMR1 = tmpccmr1; + htim->Instance->CCER = tmpccer; + break; + } + + case TIM_TS_TI1FP1: + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); + assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + + /* Configure TI1 Filter and Polarity */ + TIM_TI1_ConfigInputStage(htim->Instance, + sSlaveConfig->TriggerPolarity, + sSlaveConfig->TriggerFilter); + break; + } + + case TIM_TS_TI2FP2: + { + /* Check the parameters */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); + assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + + /* Configure TI2 Filter and Polarity */ + TIM_TI2_ConfigInputStage(htim->Instance, + sSlaveConfig->TriggerPolarity, + sSlaveConfig->TriggerFilter); + break; + } + + case TIM_TS_ITR0: + case TIM_TS_ITR1: + case TIM_TS_ITR2: + case TIM_TS_ITR3: +#if defined (TIM5) + case TIM_TS_ITR4: +#endif /* TIM5 */ + case TIM_TS_ITR5: + case TIM_TS_ITR6: + case TIM_TS_ITR7: + case TIM_TS_ITR8: +#if defined (TIM20) + case TIM_TS_ITR9: +#endif /* TIM20 */ +#if defined (HRTIM1) + case TIM_TS_ITR10: +#endif /* HRTIM1 */ + case TIM_TS_ITR11: + { + /* Check the parameter */ + assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE((htim->Instance), sSlaveConfig->InputTrigger)); + break; + } + + default: + status = HAL_ERROR; + break; + } + + return status; +} + +/** + * @brief Configure the TI1 as Input. + * @param TIMx to select the TIM peripheral. + * @param TIM_ICPolarity The Input Polarity. + * This parameter can be one of the following values: + * @arg TIM_ICPOLARITY_RISING + * @arg TIM_ICPOLARITY_FALLING + * @arg TIM_ICPOLARITY_BOTHEDGE + * @param TIM_ICSelection specifies the input to be used. + * This parameter can be one of the following values: + * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 1 is selected to be connected to IC1. + * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 1 is selected to be connected to IC2. + * @arg TIM_ICSELECTION_TRC: TIM Input 1 is selected to be connected to TRC. + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI2FP1 + * (on channel2 path) is used as the input signal. Therefore CCMR1 must be + * protected against un-initialized filter and polarity values. + */ +void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter) +{ + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 1: Reset the CC1E Bit */ + tmpccer = TIMx->CCER; + TIMx->CCER &= ~TIM_CCER_CC1E; + tmpccmr1 = TIMx->CCMR1; + + /* Select the Input */ + if (IS_TIM_CC2_INSTANCE(TIMx) != RESET) + { + tmpccmr1 &= ~TIM_CCMR1_CC1S; + tmpccmr1 |= TIM_ICSelection; + } + else + { + tmpccmr1 |= TIM_CCMR1_CC1S_0; + } + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC1F; + tmpccmr1 |= ((TIM_ICFilter << 4U) & TIM_CCMR1_IC1F); + + /* Select the Polarity and set the CC1E Bit */ + tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); + tmpccer |= (TIM_ICPolarity & (TIM_CCER_CC1P | TIM_CCER_CC1NP)); + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1; + TIMx->CCER = tmpccer; +} + +/** + * @brief Configure the Polarity and Filter for TI1. + * @param TIMx to select the TIM peripheral. + * @param TIM_ICPolarity The Input Polarity. + * This parameter can be one of the following values: + * @arg TIM_ICPOLARITY_RISING + * @arg TIM_ICPOLARITY_FALLING + * @arg TIM_ICPOLARITY_BOTHEDGE + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 1: Reset the CC1E Bit */ + tmpccer = TIMx->CCER; + TIMx->CCER &= ~TIM_CCER_CC1E; + tmpccmr1 = TIMx->CCMR1; + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC1F; + tmpccmr1 |= (TIM_ICFilter << 4U); + + /* Select the Polarity and set the CC1E Bit */ + tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); + tmpccer |= TIM_ICPolarity; + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1; + TIMx->CCER = tmpccer; +} + +/** + * @brief Configure the TI2 as Input. + * @param TIMx to select the TIM peripheral + * @param TIM_ICPolarity The Input Polarity. + * This parameter can be one of the following values: + * @arg TIM_ICPOLARITY_RISING + * @arg TIM_ICPOLARITY_FALLING + * @arg TIM_ICPOLARITY_BOTHEDGE + * @param TIM_ICSelection specifies the input to be used. + * This parameter can be one of the following values: + * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 2 is selected to be connected to IC2. + * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 2 is selected to be connected to IC1. + * @arg TIM_ICSELECTION_TRC: TIM Input 2 is selected to be connected to TRC. + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI1FP2 + * (on channel1 path) is used as the input signal. Therefore CCMR1 must be + * protected against un-initialized filter and polarity values. + */ +static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter) +{ + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 2: Reset the CC2E Bit */ + tmpccer = TIMx->CCER; + TIMx->CCER &= ~TIM_CCER_CC2E; + tmpccmr1 = TIMx->CCMR1; + + /* Select the Input */ + tmpccmr1 &= ~TIM_CCMR1_CC2S; + tmpccmr1 |= (TIM_ICSelection << 8U); + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC2F; + tmpccmr1 |= ((TIM_ICFilter << 12U) & TIM_CCMR1_IC2F); + + /* Select the Polarity and set the CC2E Bit */ + tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + tmpccer |= ((TIM_ICPolarity << 4U) & (TIM_CCER_CC2P | TIM_CCER_CC2NP)); + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1 ; + TIMx->CCER = tmpccer; +} + +/** + * @brief Configure the Polarity and Filter for TI2. + * @param TIMx to select the TIM peripheral. + * @param TIM_ICPolarity The Input Polarity. + * This parameter can be one of the following values: + * @arg TIM_ICPOLARITY_RISING + * @arg TIM_ICPOLARITY_FALLING + * @arg TIM_ICPOLARITY_BOTHEDGE + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 2: Reset the CC2E Bit */ + tmpccer = TIMx->CCER; + TIMx->CCER &= ~TIM_CCER_CC2E; + tmpccmr1 = TIMx->CCMR1; + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC2F; + tmpccmr1 |= (TIM_ICFilter << 12U); + + /* Select the Polarity and set the CC2E Bit */ + tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + tmpccer |= (TIM_ICPolarity << 4U); + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1 ; + TIMx->CCER = tmpccer; +} + +/** + * @brief Configure the TI3 as Input. + * @param TIMx to select the TIM peripheral + * @param TIM_ICPolarity The Input Polarity. + * This parameter can be one of the following values: + * @arg TIM_ICPOLARITY_RISING + * @arg TIM_ICPOLARITY_FALLING + * @arg TIM_ICPOLARITY_BOTHEDGE + * @param TIM_ICSelection specifies the input to be used. + * This parameter can be one of the following values: + * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 3 is selected to be connected to IC3. + * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 3 is selected to be connected to IC4. + * @arg TIM_ICSELECTION_TRC: TIM Input 3 is selected to be connected to TRC. + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI3FP4 + * (on channel1 path) is used as the input signal. Therefore CCMR2 must be + * protected against un-initialized filter and polarity values. + */ +static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter) +{ + uint32_t tmpccmr2; + uint32_t tmpccer; + + /* Disable the Channel 3: Reset the CC3E Bit */ + tmpccer = TIMx->CCER; + TIMx->CCER &= ~TIM_CCER_CC3E; + tmpccmr2 = TIMx->CCMR2; + + /* Select the Input */ + tmpccmr2 &= ~TIM_CCMR2_CC3S; + tmpccmr2 |= TIM_ICSelection; + + /* Set the filter */ + tmpccmr2 &= ~TIM_CCMR2_IC3F; + tmpccmr2 |= ((TIM_ICFilter << 4U) & TIM_CCMR2_IC3F); + + /* Select the Polarity and set the CC3E Bit */ + tmpccer &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP); + tmpccer |= ((TIM_ICPolarity << 8U) & (TIM_CCER_CC3P | TIM_CCER_CC3NP)); + + /* Write to TIMx CCMR2 and CCER registers */ + TIMx->CCMR2 = tmpccmr2; + TIMx->CCER = tmpccer; +} + +/** + * @brief Configure the TI4 as Input. + * @param TIMx to select the TIM peripheral + * @param TIM_ICPolarity The Input Polarity. + * This parameter can be one of the following values: + * @arg TIM_ICPOLARITY_RISING + * @arg TIM_ICPOLARITY_FALLING + * @arg TIM_ICPOLARITY_BOTHEDGE + * @param TIM_ICSelection specifies the input to be used. + * This parameter can be one of the following values: + * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 4 is selected to be connected to IC4. + * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 4 is selected to be connected to IC3. + * @arg TIM_ICSELECTION_TRC: TIM Input 4 is selected to be connected to TRC. + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI4FP3 + * (on channel1 path) is used as the input signal. Therefore CCMR2 must be + * protected against un-initialized filter and polarity values. + * @retval None + */ +static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter) +{ + uint32_t tmpccmr2; + uint32_t tmpccer; + + /* Disable the Channel 4: Reset the CC4E Bit */ + tmpccer = TIMx->CCER; + TIMx->CCER &= ~TIM_CCER_CC4E; + tmpccmr2 = TIMx->CCMR2; + + /* Select the Input */ + tmpccmr2 &= ~TIM_CCMR2_CC4S; + tmpccmr2 |= (TIM_ICSelection << 8U); + + /* Set the filter */ + tmpccmr2 &= ~TIM_CCMR2_IC4F; + tmpccmr2 |= ((TIM_ICFilter << 12U) & TIM_CCMR2_IC4F); + + /* Select the Polarity and set the CC4E Bit */ + tmpccer &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP); + tmpccer |= ((TIM_ICPolarity << 12U) & (TIM_CCER_CC4P | TIM_CCER_CC4NP)); + + /* Write to TIMx CCMR2 and CCER registers */ + TIMx->CCMR2 = tmpccmr2; + TIMx->CCER = tmpccer ; +} + +/** + * @brief Selects the Input Trigger source + * @param TIMx to select the TIM peripheral + * @param InputTriggerSource The Input Trigger source. + * This parameter can be one of the following values: + * @arg TIM_TS_ITR0: Internal Trigger 0 + * @arg TIM_TS_ITR1: Internal Trigger 1 + * @arg TIM_TS_ITR2: Internal Trigger 2 + * @arg TIM_TS_ITR3: Internal Trigger 3 + * @arg TIM_TS_ITR4: Internal Trigger 4 (*) + * @arg TIM_TS_ITR5: Internal Trigger 5 + * @arg TIM_TS_ITR6: Internal Trigger 6 + * @arg TIM_TS_ITR7: Internal Trigger 7 + * @arg TIM_TS_ITR8: Internal Trigger 8 + * @arg TIM_TS_ITR9: Internal Trigger 9 (*) + * @arg TIM_TS_ITR10: Internal Trigger 10 + * @arg TIM_TS_ITR11: Internal Trigger 11 + * @arg TIM_TS_TI1F_ED: TI1 Edge Detector + * @arg TIM_TS_TI1FP1: Filtered Timer Input 1 + * @arg TIM_TS_TI2FP2: Filtered Timer Input 2 + * @arg TIM_TS_ETRF: External Trigger input + * + * (*) Value not defined in all devices. + * + * @retval None + */ +static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource) +{ + uint32_t tmpsmcr; + + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + /* Reset the TS Bits */ + tmpsmcr &= ~TIM_SMCR_TS; + /* Set the Input Trigger source and the slave mode*/ + tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1); + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; +} +/** + * @brief Configures the TIMx External Trigger (ETR). + * @param TIMx to select the TIM peripheral + * @param TIM_ExtTRGPrescaler The external Trigger Prescaler. + * This parameter can be one of the following values: + * @arg TIM_ETRPRESCALER_DIV1: ETRP Prescaler OFF. + * @arg TIM_ETRPRESCALER_DIV2: ETRP frequency divided by 2. + * @arg TIM_ETRPRESCALER_DIV4: ETRP frequency divided by 4. + * @arg TIM_ETRPRESCALER_DIV8: ETRP frequency divided by 8. + * @param TIM_ExtTRGPolarity The external Trigger Polarity. + * This parameter can be one of the following values: + * @arg TIM_ETRPOLARITY_INVERTED: active low or falling edge active. + * @arg TIM_ETRPOLARITY_NONINVERTED: active high or rising edge active. + * @param ExtTRGFilter External Trigger Filter. + * This parameter must be a value between 0x00 and 0x0F + * @retval None + */ +void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, + uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter) +{ + uint32_t tmpsmcr; + + tmpsmcr = TIMx->SMCR; + + /* Reset the ETR Bits */ + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + + /* Set the Prescaler, the Filter value and the Polarity */ + tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U))); + + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; +} + +/** + * @brief Enables or disables the TIM Capture Compare Channel x. + * @param TIMx to select the TIM peripheral + * @param Channel specifies the TIM Channel + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 + * @arg TIM_CHANNEL_2: TIM Channel 2 + * @arg TIM_CHANNEL_3: TIM Channel 3 + * @arg TIM_CHANNEL_4: TIM Channel 4 + * @arg TIM_CHANNEL_5: TIM Channel 5 selected + * @arg TIM_CHANNEL_6: TIM Channel 6 selected + * @param ChannelState specifies the TIM Channel CCxE bit new state. + * This parameter can be: TIM_CCx_ENABLE or TIM_CCx_DISABLE. + * @retval None + */ +void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState) +{ + uint32_t tmp; + + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(TIMx)); + assert_param(IS_TIM_CHANNELS(Channel)); + + tmp = TIM_CCER_CC1E << (Channel & 0x1FU); /* 0x1FU = 31 bits max shift */ + + /* Reset the CCxE Bit */ + TIMx->CCER &= ~tmp; + + /* Set or reset the CCxE Bit */ + TIMx->CCER |= (uint32_t)(ChannelState << (Channel & 0x1FU)); /* 0x1FU = 31 bits max shift */ +} + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +/** + * @brief Reset interrupt callbacks to the legacy weak callbacks. + * @param htim pointer to a TIM_HandleTypeDef structure that contains + * the configuration information for TIM module. + * @retval None + */ +void TIM_ResetCallback(TIM_HandleTypeDef *htim) +{ + /* Reset the TIM callback to the legacy weak callbacks */ + htim->PeriodElapsedCallback = HAL_TIM_PeriodElapsedCallback; + htim->PeriodElapsedHalfCpltCallback = HAL_TIM_PeriodElapsedHalfCpltCallback; + htim->TriggerCallback = HAL_TIM_TriggerCallback; + htim->TriggerHalfCpltCallback = HAL_TIM_TriggerHalfCpltCallback; + htim->IC_CaptureCallback = HAL_TIM_IC_CaptureCallback; + htim->IC_CaptureHalfCpltCallback = HAL_TIM_IC_CaptureHalfCpltCallback; + htim->OC_DelayElapsedCallback = HAL_TIM_OC_DelayElapsedCallback; + htim->PWM_PulseFinishedCallback = HAL_TIM_PWM_PulseFinishedCallback; + htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; + htim->ErrorCallback = HAL_TIM_ErrorCallback; + htim->CommutationCallback = HAL_TIMEx_CommutCallback; + htim->CommutationHalfCpltCallback = HAL_TIMEx_CommutHalfCpltCallback; + htim->BreakCallback = HAL_TIMEx_BreakCallback; + htim->Break2Callback = HAL_TIMEx_Break2Callback; + htim->EncoderIndexCallback = HAL_TIMEx_EncoderIndexCallback; + htim->DirectionChangeCallback = HAL_TIMEx_DirectionChangeCallback; + htim->IndexErrorCallback = HAL_TIMEx_IndexErrorCallback; + htim->TransitionErrorCallback = HAL_TIMEx_TransitionErrorCallback; +} +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ + +#endif /* HAL_TIM_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c new file mode 100644 index 0000000..972616a --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c @@ -0,0 +1,3686 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_tim_ex.c + * @author MCD Application Team + * @brief TIM HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Timer Extended peripheral: + * + Time Hall Sensor Interface Initialization + * + Time Hall Sensor Interface Start + * + Time Complementary signal break and dead time configuration + * + Time Master and Slave synchronization configuration + * + Time Output Compare/PWM Channel Configuration (for channels 5 and 6) + * + Time OCRef clear configuration + * + Timer remapping capabilities configuration + * + Timer encoder index configuration + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### TIMER Extended features ##### + ============================================================================== + [..] + The Timer Extended features include: + (#) Complementary outputs with programmable dead-time for : + (++) Output Compare + (++) PWM generation (Edge and Center-aligned Mode) + (++) One-pulse mode output + (#) Synchronization circuit to control the timer with external signals and to + interconnect several timers together. + (#) Break input to put the timer output signals in reset state or in a known state. + (#) Supports incremental (quadrature) encoder and hall-sensor circuitry for + positioning purposes + (#) In case of Pulse on compare, configure pulse length and delay + (#) Encoder index configuration + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Initialize the TIM low level resources by implementing the following functions + depending on the selected feature: + (++) Hall Sensor output : HAL_TIMEx_HallSensor_MspInit() + + (#) Initialize the TIM low level resources : + (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE(); + (##) TIM pins configuration + (+++) Enable the clock for the TIM GPIOs using the following function: + __HAL_RCC_GPIOx_CLK_ENABLE(); + (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init(); + + (#) The external Clock can be configured, if needed (the default clock is the + internal clock from the APBx), using the following function: + HAL_TIM_ConfigClockSource, the clock configuration should be done before + any start function. + + (#) Configure the TIM in the desired functioning mode using one of the + initialization function of this driver: + (++) HAL_TIMEx_HallSensor_Init() and HAL_TIMEx_ConfigCommutEvent(): to use the + Timer Hall Sensor Interface and the commutation event with the corresponding + Interrupt and DMA request if needed (Note that One Timer is used to interface + with the Hall sensor Interface and another Timer should be used to use + the commutation event). + (#) In case of Pulse On Compare: + (++) HAL_TIMEx_OC_ConfigPulseOnCompare(): to configure pulse width and prescaler + + + (#) Activate the TIM peripheral using one of the start functions: + (++) Complementary Output Compare : HAL_TIMEx_OCN_Start(), HAL_TIMEx_OCN_Start_DMA(), + HAL_TIMEx_OCN_Start_IT() + (++) Complementary PWM generation : HAL_TIMEx_PWMN_Start(), HAL_TIMEx_PWMN_Start_DMA(), + HAL_TIMEx_PWMN_Start_IT() + (++) Complementary One-pulse mode output : HAL_TIMEx_OnePulseN_Start(), HAL_TIMEx_OnePulseN_Start_IT() + (++) Hall Sensor output : HAL_TIMEx_HallSensor_Start(), HAL_TIMEx_HallSensor_Start_DMA(), + HAL_TIMEx_HallSensor_Start_IT(). + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup TIMEx TIMEx + * @brief TIM Extended HAL module driver + * @{ + */ + +#ifdef HAL_TIM_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup TIMEx_Private_Constants TIM Extended Private Constants + * @{ + */ +/* Timeout for break input rearm */ +#define TIM_BREAKINPUT_REARM_TIMEOUT 5UL /* 5 milliseconds */ +/** + * @} + */ +/* End of private constants --------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void TIM_DMADelayPulseNCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMAErrorCCxN(DMA_HandleTypeDef *hdma); +static void TIM_CCxNChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelNState); + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup TIMEx_Exported_Functions TIM Extended Exported Functions + * @{ + */ + +/** @defgroup TIMEx_Exported_Functions_Group1 Extended Timer Hall Sensor functions + * @brief Timer Hall Sensor functions + * +@verbatim + ============================================================================== + ##### Timer Hall Sensor functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Initialize and configure TIM HAL Sensor. + (+) De-initialize TIM HAL Sensor. + (+) Start the Hall Sensor Interface. + (+) Stop the Hall Sensor Interface. + (+) Start the Hall Sensor Interface and enable interrupts. + (+) Stop the Hall Sensor Interface and disable interrupts. + (+) Start the Hall Sensor Interface and enable DMA transfers. + (+) Stop the Hall Sensor Interface and disable DMA transfers. + +@endverbatim + * @{ + */ +/** + * @brief Initializes the TIM Hall Sensor Interface and initialize the associated handle. + * @note When the timer instance is initialized in Hall Sensor Interface mode, + * timer channels 1 and channel 2 are reserved and cannot be used for + * other purpose. + * @param htim TIM Hall Sensor Interface handle + * @param sConfig TIM Hall Sensor configuration structure + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, const TIM_HallSensor_InitTypeDef *sConfig) +{ + TIM_OC_InitTypeDef OC_Config; + + /* Check the TIM handle allocation */ + if (htim == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + assert_param(IS_TIM_IC_POLARITY(sConfig->IC1Polarity)); + assert_param(IS_TIM_PERIOD(htim, htim->Init.Period)); + assert_param(IS_TIM_IC_PRESCALER(sConfig->IC1Prescaler)); + assert_param(IS_TIM_IC_FILTER(sConfig->IC1Filter)); + + if (htim->State == HAL_TIM_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + /* Reset interrupt callbacks to legacy week callbacks */ + TIM_ResetCallback(htim); + + if (htim->HallSensor_MspInitCallback == NULL) + { + htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->HallSensor_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIMEx_HallSensor_MspInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Configure the Time base in the Encoder Mode */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + + /* Configure the Channel 1 as Input Channel to interface with the three Outputs of the Hall sensor */ + TIM_TI1_SetConfig(htim->Instance, sConfig->IC1Polarity, TIM_ICSELECTION_TRC, sConfig->IC1Filter); + + /* Reset the IC1PSC Bits */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC; + /* Set the IC1PSC value */ + htim->Instance->CCMR1 |= sConfig->IC1Prescaler; + + /* Enable the Hall sensor interface (XOR function of the three inputs) */ + htim->Instance->CR2 |= TIM_CR2_TI1S; + + /* Select the TIM_TS_TI1F_ED signal as Input trigger for the TIM */ + htim->Instance->SMCR &= ~TIM_SMCR_TS; + htim->Instance->SMCR |= TIM_TS_TI1F_ED; + + /* Use the TIM_TS_TI1F_ED signal to reset the TIM counter each edge detection */ + htim->Instance->SMCR &= ~TIM_SMCR_SMS; + htim->Instance->SMCR |= TIM_SLAVEMODE_RESET; + + /* Program channel 2 in PWM 2 mode with the desired Commutation_Delay*/ + OC_Config.OCFastMode = TIM_OCFAST_DISABLE; + OC_Config.OCIdleState = TIM_OCIDLESTATE_RESET; + OC_Config.OCMode = TIM_OCMODE_PWM2; + OC_Config.OCNIdleState = TIM_OCNIDLESTATE_RESET; + OC_Config.OCNPolarity = TIM_OCNPOLARITY_HIGH; + OC_Config.OCPolarity = TIM_OCPOLARITY_HIGH; + OC_Config.Pulse = sConfig->Commutation_Delay; + + TIM_OC2_SetConfig(htim->Instance, &OC_Config); + + /* Select OC2REF as trigger output on TRGO: write the MMS bits in the TIMx_CR2 + register to 101 */ + htim->Instance->CR2 &= ~TIM_CR2_MMS; + htim->Instance->CR2 |= TIM_TRGO_OC2REF; + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + + return HAL_OK; +} + +/** + * @brief DeInitializes the TIM Hall Sensor interface + * @param htim TIM Hall Sensor Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Disable the TIM Peripheral Clock */ + __HAL_TIM_DISABLE(htim); + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + if (htim->HallSensor_MspDeInitCallback == NULL) + { + htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; + } + /* DeInit the low level hardware */ + htim->HallSensor_MspDeInitCallback(htim); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + HAL_TIMEx_HallSensor_MspDeInit(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + /* Change the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + + /* Change the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + + /* Change TIM state */ + htim->State = HAL_TIM_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Initializes the TIM Hall Sensor MSP. + * @param htim TIM Hall Sensor Interface handle + * @retval None + */ +__weak void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_HallSensor_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes TIM Hall Sensor MSP. + * @param htim TIM Hall Sensor Interface handle + * @retval None + */ +__weak void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_HallSensor_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief Starts the TIM Hall Sensor Interface. + * @param htim TIM Hall Sensor Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim) +{ + uint32_t tmpsmcr; + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + + /* Check the TIM channels state */ + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Input Capture channel 1 + (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Hall sensor Interface. + * @param htim TIM Hall Sensor Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channels 1, 2 and 3 + (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Hall Sensor Interface in interrupt mode. + * @param htim TIM Hall Sensor Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim) +{ + uint32_t tmpsmcr; + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + + /* Check the TIM channels state */ + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the capture compare Interrupts 1 event */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + + /* Enable the Input Capture channel 1 + (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Hall Sensor Interface in interrupt mode. + * @param htim TIM Hall Sensor Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channel 1 + (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + + /* Disable the capture compare Interrupts event */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Hall Sensor Interface in DMA mode. + * @param htim TIM Hall Sensor Interface handle + * @param pData The destination Buffer address. + * @param Length The length of data to be transferred from TIM peripheral to memory. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length) +{ + uint32_t tmpsmcr; + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + + /* Set the TIM channel state */ + if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) + || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + { + return HAL_BUSY; + } + else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + + /* Enable the Input Capture channel 1 + (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + + /* Set the DMA Input Capture 1 Callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + + /* Enable the DMA channel for Capture 1*/ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData, Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the capture compare 1 Interrupt */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Hall Sensor Interface in DMA mode. + * @param htim TIM Hall Sensor Interface handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + + /* Disable the Input Capture channel 1 + (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + + + /* Disable the capture compare Interrupts 1 event */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group2 Extended Timer Complementary Output Compare functions + * @brief Timer Complementary Output Compare functions + * +@verbatim + ============================================================================== + ##### Timer Complementary Output Compare functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Start the Complementary Output Compare/PWM. + (+) Stop the Complementary Output Compare/PWM. + (+) Start the Complementary Output Compare/PWM and enable interrupts. + (+) Stop the Complementary Output Compare/PWM and disable interrupts. + (+) Start the Complementary Output Compare/PWM and enable DMA transfers. + (+) Stop the Complementary Output Compare/PWM and disable DMA transfers. + +@endverbatim + * @{ + */ + +/** + * @brief Starts the TIM Output Compare signal generation on the complementary + * output. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM complementary channel state */ + if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the Capture compare channel N */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM Output Compare signal generation on the complementary + * output. + * @param htim TIM handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Disable the Capture compare channel N */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM Output Compare signal generation in interrupt mode + * on the complementary output. + * @param htim TIM OC handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM complementary channel state */ + if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Enable the TIM Output Compare interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Enable the TIM Output Compare interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Enable the TIM Output Compare interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + break; + } + + + case TIM_CHANNEL_4: + { + /* Enable the TIM Output Compare interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the TIM Break interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_BREAK); + + /* Enable the Capture compare channel N */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM Output Compare signal generation in interrupt mode + * on the complementary output. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpccer; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Output Compare interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Output Compare interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Output Compare interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Output Compare interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Capture compare channel N */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + + /* Disable the TIM Break interrupt (only if no more channel is active) */ + tmpccer = htim->Instance->CCER; + if ((tmpccer & TIM_CCER_CCxNE_MASK) == (uint32_t)RESET) + { + __HAL_TIM_DISABLE_IT(htim, TIM_IT_BREAK); + } + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @brief Starts the TIM Output Compare signal generation in DMA mode + * on the complementary output. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param pData The source Buffer address. + * @param Length The length of data to be transferred from memory to TIM peripheral + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Set the TIM complementary channel state */ + if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) + { + return HAL_BUSY; + } + else if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Output Compare DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Output Compare DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Output Compare DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Output Compare DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the Capture compare channel N */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM Output Compare signal generation in DMA mode + * on the complementary output. + * @param htim TIM Output Compare handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Output Compare DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Output Compare DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Output Compare DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Output Compare interrupt */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the Capture compare channel N */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group3 Extended Timer Complementary PWM functions + * @brief Timer Complementary PWM functions + * +@verbatim + ============================================================================== + ##### Timer Complementary PWM functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Start the Complementary PWM. + (+) Stop the Complementary PWM. + (+) Start the Complementary PWM and enable interrupts. + (+) Stop the Complementary PWM and disable interrupts. + (+) Start the Complementary PWM and enable DMA transfers. + (+) Stop the Complementary PWM and disable DMA transfers. +@endverbatim + * @{ + */ + +/** + * @brief Starts the PWM signal generation on the complementary output. + * @param htim TIM handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM complementary channel state */ + if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the complementary PWM output */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the PWM signal generation on the complementary output. + * @param htim TIM handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Disable the complementary PWM output */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the PWM signal generation in interrupt mode on the + * complementary output. + * @param htim TIM handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM complementary channel state */ + if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + { + return HAL_ERROR; + } + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Enable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Enable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Enable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Enable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the TIM Break interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_BREAK); + + /* Enable the complementary PWM output */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the PWM signal generation in interrupt mode on the + * complementary output. + * @param htim TIM handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpccer; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the complementary PWM output */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + + /* Disable the TIM Break interrupt (only if no more channel is active) */ + tmpccer = htim->Instance->CCER; + if ((tmpccer & TIM_CCER_CCxNE_MASK) == (uint32_t)RESET) + { + __HAL_TIM_DISABLE_IT(htim, TIM_IT_BREAK); + } + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @brief Starts the TIM PWM signal generation in DMA mode on the + * complementary output + * @param htim TIM handle + * @param Channel TIM Channel to be enabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @param pData The source Buffer address. + * @param Length The length of data to be transferred from memory to TIM peripheral + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, + uint16_t Length) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + /* Set the TIM complementary channel state */ + if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) + { + return HAL_BUSY; + } + else if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) + { + if ((pData == NULL) || (Length == 0U)) + { + return HAL_ERROR; + } + else + { + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + } + } + else + { + return HAL_ERROR; + } + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Set the DMA compare callbacks */ + htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseNCplt; + htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAErrorCCxN ; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, + Length) != HAL_OK) + { + /* Return error status */ + return HAL_ERROR; + } + /* Enable the TIM Capture/Compare 4 DMA request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Enable the complementary PWM output */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + { + __HAL_TIM_ENABLE(htim); + } + } + else + { + __HAL_TIM_ENABLE(htim); + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Stops the TIM PWM signal generation in DMA mode on the complementary + * output + * @param htim TIM handle + * @param Channel TIM Channel to be disabled + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + status = HAL_ERROR; + break; + } + + if (status == HAL_OK) + { + /* Disable the complementary PWM output */ + TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM complementary channel state */ + TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + } + + /* Return function status */ + return status; +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group4 Extended Timer Complementary One Pulse functions + * @brief Timer Complementary One Pulse functions + * +@verbatim + ============================================================================== + ##### Timer Complementary One Pulse functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Start the Complementary One Pulse generation. + (+) Stop the Complementary One Pulse. + (+) Start the Complementary One Pulse and enable interrupts. + (+) Stop the Complementary One Pulse and disable interrupts. + +@endverbatim + * @{ + */ + +/** + * @brief Starts the TIM One Pulse signal generation on the complementary + * output. + * @note OutputChannel must match the pulse output channel chosen when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel pulse output channel to enable + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); + + /* Check the TIM channels state */ + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the complementary One Pulse output channel and the Input Capture channel */ + TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_ENABLE); + TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM One Pulse signal generation on the complementary + * output. + * @note OutputChannel must match the pulse output channel chosen when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel pulse output channel to disable + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); + + /* Disable the complementary One Pulse output channel and the Input Capture channel */ + TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_DISABLE); + TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Starts the TIM One Pulse signal generation in interrupt mode on the + * complementary channel. + * @note OutputChannel must match the pulse output channel chosen when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel pulse output channel to enable + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_1); + HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHANNEL_2); + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); + + /* Check the TIM channels state */ + if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + + /* Enable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + + /* Enable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + + /* Enable the complementary One Pulse output channel and the Input Capture channel */ + TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_ENABLE); + TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + + /* Enable the Main Output */ + __HAL_TIM_MOE_ENABLE(htim); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Stops the TIM One Pulse signal generation in interrupt mode on the + * complementary channel. + * @note OutputChannel must match the pulse output channel chosen when calling + * @ref HAL_TIM_OnePulse_ConfigChannel(). + * @param htim TIM One Pulse handle + * @param OutputChannel pulse output channel to disable + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 selected + * @arg TIM_CHANNEL_2: TIM Channel 2 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +{ + uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); + + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + + /* Disable the complementary One Pulse output channel and the Input Capture channel */ + TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_DISABLE); + TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); + + /* Disable the Main Output */ + __HAL_TIM_MOE_DISABLE(htim); + + /* Disable the Peripheral */ + __HAL_TIM_DISABLE(htim); + + /* Set the TIM channels state */ + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + + /* Return function status */ + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group5 Extended Peripheral Control functions + * @brief Peripheral Control functions + * +@verbatim + ============================================================================== + ##### Peripheral Control functions ##### + ============================================================================== + [..] + This section provides functions allowing to: + (+) Configure the commutation event in case of use of the Hall sensor interface. + (+) Configure Output channels for OC and PWM mode. + + (+) Configure Complementary channels, break features and dead time. + (+) Configure Master synchronization. + (+) Configure timer remapping capabilities. + (+) Select timer input source. + (+) Enable or disable channel grouping. + (+) Configure Pulse on compare. + (+) Configure Encoder index. + +@endverbatim + * @{ + */ + +/** + * @brief Configure the TIM commutation event sequence. + * @note This function is mandatory to use the commutation event in order to + * update the configuration at each commutation detection on the TRGI input of the Timer, + * the typical use of this feature is with the use of another Timer(interface Timer) + * configured in Hall sensor interface, this interface Timer will generate the + * commutation at its TRGO output (connected to Timer used in this function) each time + * the TI1 of the Interface Timer detect a commutation at its input TI1. + * @param htim TIM handle + * @param InputTrigger the Internal trigger corresponding to the Timer Interfacing with the Hall sensor + * This parameter can be one of the following values: + * @arg TIM_TS_ITR0: Internal trigger 0 selected + * @arg TIM_TS_ITR1: Internal trigger 1 selected + * @arg TIM_TS_ITR2: Internal trigger 2 selected + * @arg TIM_TS_ITR3: Internal trigger 3 selected + * @arg TIM_TS_ITR4: Internal trigger 4 selected (*) + * @arg TIM_TS_ITR5: Internal trigger 5 selected + * @arg TIM_TS_ITR6: Internal trigger 6 selected + * @arg TIM_TS_ITR7: Internal trigger 7 selected + * @arg TIM_TS_ITR8: Internal trigger 8 selected + * @arg TIM_TS_ITR9: Internal trigger 9 selected (*) + * @arg TIM_TS_ITR10: Internal trigger 10 selected + * @arg TIM_TS_ITR11: Internal trigger 11 selected + * @arg TIM_TS_NONE: No trigger is needed + * + * (*) Value not defined in all devices. + * + * @param CommutationSource the Commutation Event source + * This parameter can be one of the following values: + * @arg TIM_COMMUTATION_TRGI: Commutation source is the TRGI of the Interface Timer + * @arg TIM_COMMUTATION_SOFTWARE: Commutation source is set by software using the COMG bit + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, uint32_t InputTrigger, + uint32_t CommutationSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_COMMUTATION_EVENT_INSTANCE(htim->Instance)); + assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); + + __HAL_LOCK(htim); + +#if defined(TIM5) && defined(TIM20) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || + (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || + (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR9) || + (InputTrigger == TIM_TS_ITR10) || (InputTrigger == TIM_TS_ITR11)) +#elif defined(TIM5) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || + (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || + (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR11)) +#elif defined(TIM20) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || + (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || + (InputTrigger == TIM_TS_ITR9) || (InputTrigger == TIM_TS_ITR11)) +#else + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || + (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || + (InputTrigger == TIM_TS_ITR11)) +#endif /* TIM5 && TIM20 */ + { + /* Select the Input trigger */ + htim->Instance->SMCR &= ~TIM_SMCR_TS; + htim->Instance->SMCR |= InputTrigger; + } + + /* Select the Capture Compare preload feature */ + htim->Instance->CR2 |= TIM_CR2_CCPC; + /* Select the Commutation event source */ + htim->Instance->CR2 &= ~TIM_CR2_CCUS; + htim->Instance->CR2 |= CommutationSource; + + /* Disable Commutation Interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_COM); + + /* Disable Commutation DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_COM); + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configure the TIM commutation event sequence with interrupt. + * @note This function is mandatory to use the commutation event in order to + * update the configuration at each commutation detection on the TRGI input of the Timer, + * the typical use of this feature is with the use of another Timer(interface Timer) + * configured in Hall sensor interface, this interface Timer will generate the + * commutation at its TRGO output (connected to Timer used in this function) each time + * the TI1 of the Interface Timer detect a commutation at its input TI1. + * @param htim TIM handle + * @param InputTrigger the Internal trigger corresponding to the Timer Interfacing with the Hall sensor + * This parameter can be one of the following values: + * @arg TIM_TS_ITR0: Internal trigger 0 selected + * @arg TIM_TS_ITR1: Internal trigger 1 selected + * @arg TIM_TS_ITR2: Internal trigger 2 selected + * @arg TIM_TS_ITR3: Internal trigger 3 selected + * @arg TIM_TS_ITR4: Internal trigger 4 selected (*) + * @arg TIM_TS_ITR5: Internal trigger 5 selected + * @arg TIM_TS_ITR6: Internal trigger 6 selected + * @arg TIM_TS_ITR7: Internal trigger 7 selected + * @arg TIM_TS_ITR8: Internal trigger 8 selected + * @arg TIM_TS_ITR9: Internal trigger 9 selected (*) + * @arg TIM_TS_ITR10: Internal trigger 10 selected + * @arg TIM_TS_ITR11: Internal trigger 11 selected + * @arg TIM_TS_NONE: No trigger is needed + * + * (*) Value not defined in all devices. + * + * @param CommutationSource the Commutation Event source + * This parameter can be one of the following values: + * @arg TIM_COMMUTATION_TRGI: Commutation source is the TRGI of the Interface Timer + * @arg TIM_COMMUTATION_SOFTWARE: Commutation source is set by software using the COMG bit + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim, uint32_t InputTrigger, + uint32_t CommutationSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_COMMUTATION_EVENT_INSTANCE(htim->Instance)); + assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); + + __HAL_LOCK(htim); + +#if defined(TIM5) && defined(TIM20) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || + (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || + (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR9) || + (InputTrigger == TIM_TS_ITR10) || (InputTrigger == TIM_TS_ITR11)) +#elif defined(TIM5) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || + (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || + (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR11)) +#elif defined(TIM20) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || + (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || + (InputTrigger == TIM_TS_ITR9) || (InputTrigger == TIM_TS_ITR11)) +#else + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || + (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || + (InputTrigger == TIM_TS_ITR11)) +#endif /* TIM5 && TIM20 */ + { + /* Select the Input trigger */ + htim->Instance->SMCR &= ~TIM_SMCR_TS; + htim->Instance->SMCR |= InputTrigger; + } + + /* Select the Capture Compare preload feature */ + htim->Instance->CR2 |= TIM_CR2_CCPC; + /* Select the Commutation event source */ + htim->Instance->CR2 &= ~TIM_CR2_CCUS; + htim->Instance->CR2 |= CommutationSource; + + /* Disable Commutation DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_COM); + + /* Enable the Commutation Interrupt */ + __HAL_TIM_ENABLE_IT(htim, TIM_IT_COM); + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configure the TIM commutation event sequence with DMA. + * @note This function is mandatory to use the commutation event in order to + * update the configuration at each commutation detection on the TRGI input of the Timer, + * the typical use of this feature is with the use of another Timer(interface Timer) + * configured in Hall sensor interface, this interface Timer will generate the + * commutation at its TRGO output (connected to Timer used in this function) each time + * the TI1 of the Interface Timer detect a commutation at its input TI1. + * @note The user should configure the DMA in his own software, in This function only the COMDE bit is set + * @param htim TIM handle + * @param InputTrigger the Internal trigger corresponding to the Timer Interfacing with the Hall sensor + * This parameter can be one of the following values: + * @arg TIM_TS_ITR0: Internal trigger 0 selected + * @arg TIM_TS_ITR1: Internal trigger 1 selected + * @arg TIM_TS_ITR2: Internal trigger 2 selected + * @arg TIM_TS_ITR3: Internal trigger 3 selected + * @arg TIM_TS_ITR4: Internal trigger 4 selected (*) + * @arg TIM_TS_ITR5: Internal trigger 5 selected + * @arg TIM_TS_ITR6: Internal trigger 6 selected + * @arg TIM_TS_ITR7: Internal trigger 7 selected + * @arg TIM_TS_ITR8: Internal trigger 8 selected + * @arg TIM_TS_ITR9: Internal trigger 9 selected (*) + * @arg TIM_TS_ITR10: Internal trigger 10 selected + * @arg TIM_TS_ITR11: Internal trigger 11 selected + * @arg TIM_TS_NONE: No trigger is needed + * + * (*) Value not defined in all devices. + * + * @param CommutationSource the Commutation Event source + * This parameter can be one of the following values: + * @arg TIM_COMMUTATION_TRGI: Commutation source is the TRGI of the Interface Timer + * @arg TIM_COMMUTATION_SOFTWARE: Commutation source is set by software using the COMG bit + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *htim, uint32_t InputTrigger, + uint32_t CommutationSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_COMMUTATION_EVENT_INSTANCE(htim->Instance)); + assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); + + __HAL_LOCK(htim); + +#if defined(TIM5) && defined(TIM20) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || + (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || + (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR9) || + (InputTrigger == TIM_TS_ITR10) || (InputTrigger == TIM_TS_ITR11)) +#elif defined(TIM5) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || + (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || + (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR11)) +#elif defined(TIM20) + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || + (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || + (InputTrigger == TIM_TS_ITR9) || (InputTrigger == TIM_TS_ITR11)) +#else + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || + (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || + (InputTrigger == TIM_TS_ITR11)) +#endif /* TIM5 && TIM20 */ + { + /* Select the Input trigger */ + htim->Instance->SMCR &= ~TIM_SMCR_TS; + htim->Instance->SMCR |= InputTrigger; + } + + /* Select the Capture Compare preload feature */ + htim->Instance->CR2 |= TIM_CR2_CCPC; + /* Select the Commutation event source */ + htim->Instance->CR2 &= ~TIM_CR2_CCUS; + htim->Instance->CR2 |= CommutationSource; + + /* Enable the Commutation DMA Request */ + /* Set the DMA Commutation Callback */ + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferCpltCallback = TIMEx_DMACommutationCplt; + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + /* Set the DMA error callback */ + htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback = TIM_DMAError; + + /* Disable Commutation Interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_COM); + + /* Enable the Commutation DMA Request */ + __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_COM); + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configures the TIM in master mode. + * @param htim TIM handle. + * @param sMasterConfig pointer to a TIM_MasterConfigTypeDef structure that + * contains the selected trigger output (TRGO) and the Master/Slave + * mode. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, + const TIM_MasterConfigTypeDef *sMasterConfig) +{ + uint32_t tmpcr2; + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); + assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); + + /* Check input state */ + __HAL_LOCK(htim); + + /* Change the handler state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Get the TIMx CR2 register value */ + tmpcr2 = htim->Instance->CR2; + + /* Get the TIMx SMCR register value */ + tmpsmcr = htim->Instance->SMCR; + + /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ + if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) + { + /* Check the parameters */ + assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); + + /* Clear the MMS2 bits */ + tmpcr2 &= ~TIM_CR2_MMS2; + /* Select the TRGO2 source*/ + tmpcr2 |= sMasterConfig->MasterOutputTrigger2; + } + + /* Reset the MMS Bits */ + tmpcr2 &= ~TIM_CR2_MMS; + /* Select the TRGO source */ + tmpcr2 |= sMasterConfig->MasterOutputTrigger; + + /* Update TIMx CR2 */ + htim->Instance->CR2 = tmpcr2; + + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + { + /* Reset the MSM Bit */ + tmpsmcr &= ~TIM_SMCR_MSM; + /* Set master mode */ + tmpsmcr |= sMasterConfig->MasterSlaveMode; + + /* Update TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + } + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configures the Break feature, dead time, Lock level, OSSI/OSSR State + * and the AOE(automatic output enable). + * @param htim TIM handle + * @param sBreakDeadTimeConfig pointer to a TIM_ConfigBreakDeadConfigTypeDef structure that + * contains the BDTR Register configuration information for the TIM peripheral. + * @note Interrupts can be generated when an active level is detected on the + * break input, the break 2 input or the system break input. Break + * interrupt can be enabled by calling the @ref __HAL_TIM_ENABLE_IT macro. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim, + const TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig) +{ + /* Keep this variable initialized to 0 as it is used to configure BDTR register */ + uint32_t tmpbdtr = 0U; + + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_OSSR_STATE(sBreakDeadTimeConfig->OffStateRunMode)); + assert_param(IS_TIM_OSSI_STATE(sBreakDeadTimeConfig->OffStateIDLEMode)); + assert_param(IS_TIM_LOCK_LEVEL(sBreakDeadTimeConfig->LockLevel)); + assert_param(IS_TIM_DEADTIME(sBreakDeadTimeConfig->DeadTime)); + assert_param(IS_TIM_BREAK_STATE(sBreakDeadTimeConfig->BreakState)); + assert_param(IS_TIM_BREAK_POLARITY(sBreakDeadTimeConfig->BreakPolarity)); + assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->BreakFilter)); + assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(sBreakDeadTimeConfig->AutomaticOutput)); + assert_param(IS_TIM_BREAK_AFMODE(sBreakDeadTimeConfig->BreakAFMode)); + + /* Check input state */ + __HAL_LOCK(htim); + + /* Set the Lock level, the Break enable Bit and the Polarity, the OSSR State, + the OSSI State, the dead time value and the Automatic Output Enable Bit */ + + /* Set the BDTR bits */ + MODIFY_REG(tmpbdtr, TIM_BDTR_DTG, sBreakDeadTimeConfig->DeadTime); + MODIFY_REG(tmpbdtr, TIM_BDTR_LOCK, sBreakDeadTimeConfig->LockLevel); + MODIFY_REG(tmpbdtr, TIM_BDTR_OSSI, sBreakDeadTimeConfig->OffStateIDLEMode); + MODIFY_REG(tmpbdtr, TIM_BDTR_OSSR, sBreakDeadTimeConfig->OffStateRunMode); + MODIFY_REG(tmpbdtr, TIM_BDTR_BKE, sBreakDeadTimeConfig->BreakState); + MODIFY_REG(tmpbdtr, TIM_BDTR_BKP, sBreakDeadTimeConfig->BreakPolarity); + MODIFY_REG(tmpbdtr, TIM_BDTR_AOE, sBreakDeadTimeConfig->AutomaticOutput); + MODIFY_REG(tmpbdtr, TIM_BDTR_BKF, (sBreakDeadTimeConfig->BreakFilter << TIM_BDTR_BKF_Pos)); + MODIFY_REG(tmpbdtr, TIM_BDTR_BKBID, sBreakDeadTimeConfig->BreakAFMode); + + if (IS_TIM_BKIN2_INSTANCE(htim->Instance)) + { + /* Check the parameters */ + assert_param(IS_TIM_BREAK2_STATE(sBreakDeadTimeConfig->Break2State)); + assert_param(IS_TIM_BREAK2_POLARITY(sBreakDeadTimeConfig->Break2Polarity)); + assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->Break2Filter)); + assert_param(IS_TIM_BREAK2_AFMODE(sBreakDeadTimeConfig->Break2AFMode)); + + /* Set the BREAK2 input related BDTR bits */ + MODIFY_REG(tmpbdtr, TIM_BDTR_BK2F, (sBreakDeadTimeConfig->Break2Filter << TIM_BDTR_BK2F_Pos)); + MODIFY_REG(tmpbdtr, TIM_BDTR_BK2E, sBreakDeadTimeConfig->Break2State); + MODIFY_REG(tmpbdtr, TIM_BDTR_BK2P, sBreakDeadTimeConfig->Break2Polarity); + MODIFY_REG(tmpbdtr, TIM_BDTR_BK2BID, sBreakDeadTimeConfig->Break2AFMode); + } + + /* Set TIMx_BDTR */ + htim->Instance->BDTR = tmpbdtr; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configures the break input source. + * @param htim TIM handle. + * @param BreakInput Break input to configure + * This parameter can be one of the following values: + * @arg TIM_BREAKINPUT_BRK: Timer break input + * @arg TIM_BREAKINPUT_BRK2: Timer break 2 input + * @param sBreakInputConfig Break input source configuration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigBreakInput(TIM_HandleTypeDef *htim, + uint32_t BreakInput, + const TIMEx_BreakInputConfigTypeDef *sBreakInputConfig) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmporx; + uint32_t bkin_enable_mask; + uint32_t bkin_polarity_mask; + uint32_t bkin_enable_bitpos; + uint32_t bkin_polarity_bitpos; + + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_BREAKINPUT(BreakInput)); + assert_param(IS_TIM_BREAKINPUTSOURCE(sBreakInputConfig->Source)); + assert_param(IS_TIM_BREAKINPUTSOURCE_STATE(sBreakInputConfig->Enable)); + assert_param(IS_TIM_BREAKINPUTSOURCE_POLARITY(sBreakInputConfig->Polarity)); + + /* Check input state */ + __HAL_LOCK(htim); + + switch (sBreakInputConfig->Source) + { + case TIM_BREAKINPUTSOURCE_BKIN: + { + bkin_enable_mask = TIM1_AF1_BKINE; + bkin_enable_bitpos = TIM1_AF1_BKINE_Pos; + bkin_polarity_mask = TIM1_AF1_BKINP; + bkin_polarity_bitpos = TIM1_AF1_BKINP_Pos; + break; + } + case TIM_BREAKINPUTSOURCE_COMP1: + { + bkin_enable_mask = TIM1_AF1_BKCMP1E; + bkin_enable_bitpos = TIM1_AF1_BKCMP1E_Pos; + bkin_polarity_mask = TIM1_AF1_BKCMP1P; + bkin_polarity_bitpos = TIM1_AF1_BKCMP1P_Pos; + break; + } +#if defined (COMP2) + case TIM_BREAKINPUTSOURCE_COMP2: + { + bkin_enable_mask = TIM1_AF1_BKCMP2E; + bkin_enable_bitpos = TIM1_AF1_BKCMP2E_Pos; + bkin_polarity_mask = TIM1_AF1_BKCMP2P; + bkin_polarity_bitpos = TIM1_AF1_BKCMP2P_Pos; + break; + } +#endif /* COMP2 */ + case TIM_BREAKINPUTSOURCE_COMP3: + { + bkin_enable_mask = TIM1_AF1_BKCMP3E; + bkin_enable_bitpos = TIM1_AF1_BKCMP3E_Pos; + bkin_polarity_mask = TIM1_AF1_BKCMP3P; + bkin_polarity_bitpos = TIM1_AF1_BKCMP3P_Pos; + break; + } +#if defined (COMP4) + case TIM_BREAKINPUTSOURCE_COMP4: + { + bkin_enable_mask = TIM1_AF1_BKCMP4E; + bkin_enable_bitpos = TIM1_AF1_BKCMP4E_Pos; + bkin_polarity_mask = TIM1_AF1_BKCMP4P; + bkin_polarity_bitpos = TIM1_AF1_BKCMP4P_Pos; + break; + } +#endif /* COMP4 */ +#if defined (COMP5) + case TIM_BREAKINPUTSOURCE_COMP5: + { + bkin_enable_mask = TIM1_AF1_BKCMP5E; + bkin_enable_bitpos = TIM1_AF1_BKCMP5E_Pos; + /* No palarity bit for this COMP. Variable bkin_polarity_mask keeps its default value 0 */ + bkin_polarity_mask = 0U; + bkin_polarity_bitpos = 0U; + break; + } +#endif /* COMP5 */ +#if defined (COMP6) + case TIM_BREAKINPUTSOURCE_COMP6: + { + bkin_enable_mask = TIM1_AF1_BKCMP6E; + bkin_enable_bitpos = TIM1_AF1_BKCMP6E_Pos; + /* No palarity bit for this COMP. Variable bkin_polarity_mask keeps its default value 0 */ + bkin_polarity_mask = 0U; + bkin_polarity_bitpos = 0U; + break; + } +#endif /* COMP7 */ +#if defined (COMP7) + case TIM_BREAKINPUTSOURCE_COMP7: + { + bkin_enable_mask = TIM1_AF1_BKCMP7E; + bkin_enable_bitpos = TIM1_AF1_BKCMP7E_Pos; + /* No palarity bit for this COMP. Variable bkin_polarity_mask keeps its default value 0 */ + bkin_polarity_mask = 0U; + bkin_polarity_bitpos = 0U; + break; + } +#endif /* COMP7 */ + + default: + { + bkin_enable_mask = 0U; + bkin_polarity_mask = 0U; + bkin_enable_bitpos = 0U; + bkin_polarity_bitpos = 0U; + break; + } + } + + switch (BreakInput) + { + case TIM_BREAKINPUT_BRK: + { + /* Get the TIMx_AF1 register value */ + tmporx = htim->Instance->AF1; + + /* Enable the break input */ + tmporx &= ~bkin_enable_mask; + tmporx |= (sBreakInputConfig->Enable << bkin_enable_bitpos) & bkin_enable_mask; + + /* Set the break input polarity */ + tmporx &= ~bkin_polarity_mask; + tmporx |= (sBreakInputConfig->Polarity << bkin_polarity_bitpos) & bkin_polarity_mask; + + /* Set TIMx_AF1 */ + htim->Instance->AF1 = tmporx; + break; + } + case TIM_BREAKINPUT_BRK2: + { + /* Get the TIMx_AF2 register value */ + tmporx = htim->Instance->AF2; + + /* Enable the break input */ + tmporx &= ~bkin_enable_mask; + tmporx |= (sBreakInputConfig->Enable << bkin_enable_bitpos) & bkin_enable_mask; + + /* Set the break input polarity */ + tmporx &= ~bkin_polarity_mask; + tmporx |= (sBreakInputConfig->Polarity << bkin_polarity_bitpos) & bkin_polarity_mask; + + /* Set TIMx_AF2 */ + htim->Instance->AF2 = tmporx; + break; + } + default: + status = HAL_ERROR; + break; + } + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Configures the TIMx Remapping input capabilities. + * @param htim TIM handle. + * @param Remap specifies the TIM remapping source. + * For TIM1, the parameter can take one of the following values: + * @arg TIM_TIM1_ETR_GPIO TIM1 ETR is connected to GPIO + * @arg TIM_TIM1_ETR_COMP1 TIM1 ETR is connected to COMP1 output + * @arg TIM_TIM1_ETR_COMP2 TIM1 ETR is connected to COMP2 output + * @arg TIM_TIM1_ETR_COMP3 TIM1 ETR is connected to COMP3 output + * @arg TIM_TIM1_ETR_COMP4 TIM1 ETR is connected to COMP4 output + * @arg TIM_TIM1_ETR_COMP5 TIM1 ETR is connected to COMP5 output (*) + * @arg TIM_TIM1_ETR_COMP6 TIM1 ETR is connected to COMP6 output (*) + * @arg TIM_TIM1_ETR_COMP7 TIM1 ETR is connected to COMP7 output (*) + * @arg TIM_TIM1_ETR_ADC1_AWD1 TIM1 ETR is connected to ADC1 AWD1 + * @arg TIM_TIM1_ETR_ADC1_AWD2 TIM1 ETR is connected to ADC1 AWD2 + * @arg TIM_TIM1_ETR_ADC1_AWD3 TIM1 ETR is connected to ADC1 AWD3 + * @arg TIM_TIM1_ETR_ADC4_AWD1 TIM1 ETR is connected to ADC4 AWD1 (*) + * @arg TIM_TIM1_ETR_ADC4_AWD2 TIM1 ETR is connected to ADC4 AWD2 (*) + * @arg TIM_TIM1_ETR_ADC4_AWD3 TIM1 ETR is connected to ADC4 AWD3 (*) + * + * For TIM2, the parameter can take one of the following values: + * @arg TIM_TIM2_ETR_GPIO TIM2 ETR is connected to GPIO + * @arg TIM_TIM2_ETR_COMP1 TIM2 ETR is connected to COMP1 output + * @arg TIM_TIM2_ETR_COMP2 TIM2 ETR is connected to COMP2 output + * @arg TIM_TIM2_ETR_COMP3 TIM2 ETR is connected to COMP3 output + * @arg TIM_TIM2_ETR_COMP4 TIM2 ETR is connected to COMP4 output + * @arg TIM_TIM2_ETR_COMP5 TIM2 ETR is connected to COMP5 output (*) + * @arg TIM_TIM2_ETR_COMP6 TIM2 ETR is connected to COMP6 output (*) + * @arg TIM_TIM2_ETR_COMP7 TIM2 ETR is connected to COMP7 output (*) + * @arg TIM_TIM2_ETR_TIM3_ETR TIM2 ETR is connected to TIM3 ETR pin + * @arg TIM_TIM2_ETR_TIM4_ETR TIM2 ETR is connected to TIM4 ETR pin + * @arg TIM_TIM2_ETR_TIM5_ETR TIM2 ETR is connected to TIM5 ETR pin (*) + * @arg TIM_TIM2_ETR_LSE + * + * For TIM3, the parameter can take one of the following values: + * @arg TIM_TIM3_ETR_GPIO TIM3 ETR is connected to GPIO + * @arg TIM_TIM3_ETR_COMP1 TIM3 ETR is connected to COMP1 output + * @arg TIM_TIM3_ETR_COMP2 TIM3 ETR is connected to COMP2 output + * @arg TIM_TIM3_ETR_COMP3 TIM3 ETR is connected to COMP3 output + * @arg TIM_TIM3_ETR_COMP4 TIM3 ETR is connected to COMP4 output + * @arg TIM_TIM3_ETR_COMP5 TIM3 ETR is connected to COMP5 output (*) + * @arg TIM_TIM3_ETR_COMP6 TIM3 ETR is connected to COMP6 output (*) + * @arg TIM_TIM3_ETR_COMP7 TIM3 ETR is connected to COMP7 output (*) + * @arg TIM_TIM3_ETR_TIM2_ETR TIM3 ETR is connected to TIM2 ETR pin + * @arg TIM_TIM3_ETR_TIM4_ETR TIM3 ETR is connected to TIM4 ETR pin + * @arg TIM_TIM3_ETR_ADC2_AWD1 TIM3 ETR is connected to ADC2 AWD1 + * @arg TIM_TIM3_ETR_ADC2_AWD2 TIM3 ETR is connected to ADC2 AWD2 + * @arg TIM_TIM3_ETR_ADC2_AWD3 TIM3 ETR is connected to ADC2 AWD3 + * + * For TIM4, the parameter can take one of the following values: + * @arg TIM_TIM4_ETR_GPIO TIM4 ETR is connected to GPIO + * @arg TIM_TIM4_ETR_COMP1 TIM4 ETR is connected to COMP1 output + * @arg TIM_TIM4_ETR_COMP2 TIM4 ETR is connected to COMP2 output + * @arg TIM_TIM4_ETR_COMP3 TIM4 ETR is connected to COMP3 output + * @arg TIM_TIM4_ETR_COMP4 TIM4 ETR is connected to COMP4 output + * @arg TIM_TIM4_ETR_COMP5 TIM4 ETR is connected to COMP5 output (*) + * @arg TIM_TIM4_ETR_COMP6 TIM4 ETR is connected to COMP6 output (*) + * @arg TIM_TIM4_ETR_COMP7 TIM4 ETR is connected to COMP7 output (*) + * @arg TIM_TIM4_ETR_TIM3_ETR TIM4 ETR is connected to TIM3 ETR pin + * @arg TIM_TIM4_ETR_TIM5_ETR TIM4 ETR is connected to TIM5 ETR pin (*) + * + * For TIM5, the parameter can take one of the following values: (**) + * @arg TIM_TIM5_ETR_GPIO TIM5 ETR is connected to GPIO (*) + * @arg TIM_TIM5_ETR_COMP1 TIM5 ETR is connected to COMP1 output (*) + * @arg TIM_TIM5_ETR_COMP2 TIM5 ETR is connected to COMP2 output (*) + * @arg TIM_TIM5_ETR_COMP3 TIM5 ETR is connected to COMP3 output (*) + * @arg TIM_TIM5_ETR_COMP4 TIM5 ETR is connected to COMP4 output (*) + * @arg TIM_TIM5_ETR_COMP5 TIM5 ETR is connected to COMP5 output (*) + * @arg TIM_TIM5_ETR_COMP6 TIM5 ETR is connected to COMP6 output (*) + * @arg TIM_TIM5_ETR_COMP7 TIM5 ETR is connected to COMP7 output (*) + * @arg TIM_TIM5_ETR_TIM2_ETR TIM5 ETR is connected to TIM2 ETR pin (*) + * @arg TIM_TIM5_ETR_TIM3_ETR TIM5 ETR is connected to TIM3 ETR pin (*) + * + * For TIM8, the parameter can take one of the following values: + * @arg TIM_TIM8_ETR_GPIO TIM8 ETR is connected to GPIO + * @arg TIM_TIM8_ETR_COMP1 TIM8 ETR is connected to COMP1 output + * @arg TIM_TIM8_ETR_COMP2 TIM8 ETR is connected to COMP2 output + * @arg TIM_TIM8_ETR_COMP3 TIM8 ETR is connected to COMP3 output + * @arg TIM_TIM8_ETR_COMP4 TIM8 ETR is connected to COMP4 output + * @arg TIM_TIM8_ETR_COMP5 TIM8 ETR is connected to COMP5 output (*) + * @arg TIM_TIM8_ETR_COMP6 TIM8 ETR is connected to COMP6 output (*) + * @arg TIM_TIM8_ETR_COMP7 TIM8 ETR is connected to COMP7 output (*) + * @arg TIM_TIM8_ETR_ADC2_AWD1 TIM8 ETR is connected to ADC2 AWD1 + * @arg TIM_TIM8_ETR_ADC2_AWD2 TIM8 ETR is connected to ADC2 AWD2 + * @arg TIM_TIM8_ETR_ADC2_AWD3 TIM8 ETR is connected to ADC2 AWD3 + * @arg TIM_TIM8_ETR_ADC3_AWD1 TIM8 ETR is connected to ADC3 AWD1 (*) + * @arg TIM_TIM8_ETR_ADC3_AWD2 TIM8 ETR is connected to ADC3 AWD2 (*) + * @arg TIM_TIM8_ETR_ADC3_AWD3 TIM8 ETR is connected to ADC3 AWD3 (*) + * + * For TIM20, the parameter can take one of the following values: (**) + * @arg TIM_TIM20_ETR_GPIO TIM20 ETR is connected to GPIO + * @arg TIM_TIM20_ETR_COMP1 TIM20 ETR is connected to COMP1 output (*) + * @arg TIM_TIM20_ETR_COMP2 TIM20 ETR is connected to COMP2 output (*) + * @arg TIM_TIM20_ETR_COMP3 TIM20 ETR is connected to COMP3 output (*) + * @arg TIM_TIM20_ETR_COMP4 TIM20 ETR is connected to COMP4 output (*) + * @arg TIM_TIM20_ETR_COMP5 TIM20 ETR is connected to COMP5 output (*) + * @arg TIM_TIM20_ETR_COMP6 TIM20 ETR is connected to COMP6 output (*) + * @arg TIM_TIM20_ETR_COMP7 TIM20 ETR is connected to COMP7 output (*) + * @arg TIM_TIM20_ETR_ADC3_AWD1 TIM20 ETR is connected to ADC3 AWD1 (*) + * @arg TIM_TIM20_ETR_ADC3_AWD2 TIM20 ETR is connected to ADC3 AWD2 (*) + * @arg TIM_TIM20_ETR_ADC3_AWD3 TIM20 ETR is connected to ADC3 AWD3 (*) + * @arg TIM_TIM20_ETR_ADC5_AWD1 TIM20 ETR is connected to ADC5 AWD1 (*) + * @arg TIM_TIM20_ETR_ADC5_AWD2 TIM20 ETR is connected to ADC5 AWD2 (*) + * @arg TIM_TIM20_ETR_ADC5_AWD3 TIM20 ETR is connected to ADC5 AWD3 (*) + * + * (*) Value not defined in all devices. \n + * (**) Register not available in all devices. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap) +{ + /* Check parameters */ + assert_param(IS_TIM_REMAP_INSTANCE(htim->Instance)); + assert_param(IS_TIM_REMAP(Remap)); + + __HAL_LOCK(htim); + + MODIFY_REG(htim->Instance->AF1, TIM1_AF1_ETRSEL_Msk, Remap); + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Select the timer input source + * @param htim TIM handle. + * @param Channel specifies the TIM Channel + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TI1 input channel + * @arg TIM_CHANNEL_2: TI2 input channel + * @arg TIM_CHANNEL_3: TI3 input channel + * @arg TIM_CHANNEL_4: TI4 input channel + * @param TISelection specifies the timer input source + * For TIM1 this parameter can be one of the following values: + * @arg TIM_TIM1_TI1_GPIO: TIM1 TI1 is connected to GPIO + * @arg TIM_TIM1_TI1_COMP1: TIM1 TI1 is connected to COMP1 output + * @arg TIM_TIM1_TI1_COMP2: TIM1 TI1 is connected to COMP2 output + * @arg TIM_TIM1_TI1_COMP3: TIM1 TI1 is connected to COMP3 output + * @arg TIM_TIM1_TI1_COMP4: TIM1 TI1 is connected to COMP4 output + * + * For TIM2 this parameter can be one of the following values: + * @arg TIM_TIM2_TI1_GPIO: TIM2 TI1 is connected to GPIO + * @arg TIM_TIM2_TI1_COMP1: TIM2 TI1 is connected to COMP1 output + * @arg TIM_TIM2_TI1_COMP2: TIM2 TI1 is connected to COMP2 output + * @arg TIM_TIM2_TI1_COMP3: TIM2 TI1 is connected to COMP3 output + * @arg TIM_TIM2_TI1_COMP4: TIM2 TI1 is connected to COMP4 output + * @arg TIM_TIM2_TI1_COMP5: TIM2 TI1 is connected to COMP5 output (*) + * + * @arg TIM_TIM2_TI2_GPIO: TIM1 TI2 is connected to GPIO + * @arg TIM_TIM2_TI2_COMP1: TIM2 TI2 is connected to COMP1 output + * @arg TIM_TIM2_TI2_COMP2: TIM2 TI2 is connected to COMP2 output + * @arg TIM_TIM2_TI2_COMP3: TIM2 TI2 is connected to COMP3 output + * @arg TIM_TIM2_TI2_COMP4: TIM2 TI2 is connected to COMP4 output + * @arg TIM_TIM2_TI2_COMP6: TIM2 TI2 is connected to COMP6 output (*) + * + * @arg TIM_TIM2_TI3_GPIO: TIM2 TI3 is connected to GPIO + * @arg TIM_TIM2_TI3_COMP4: TIM2 TI3 is connected to COMP4 output + * + * @arg TIM_TIM2_TI4_GPIO: TIM2 TI4 is connected to GPIO + * @arg TIM_TIM2_TI4_COMP1: TIM2 TI4 is connected to COMP1 output + * @arg TIM_TIM2_TI4_COMP2: TIM2 TI4 is connected to COMP2 output + * + * For TIM3 this parameter can be one of the following values: + * @arg TIM_TIM3_TI1_GPIO: TIM3 TI1 is connected to GPIO + * @arg TIM_TIM3_TI1_COMP1: TIM3 TI1 is connected to COMP1 output + * @arg TIM_TIM3_TI1_COMP2: TIM3 TI1 is connected to COMP2 output + * @arg TIM_TIM3_TI1_COMP3: TIM3 TI1 is connected to COMP3 output + * @arg TIM_TIM3_TI1_COMP4: TIM3 TI1 is connected to COMP4 output + * @arg TIM_TIM3_TI1_COMP5: TIM3 TI1 is connected to COMP5 output (*) + * @arg TIM_TIM3_TI1_COMP6: TIM3 TI1 is connected to COMP6 output (*) + * @arg TIM_TIM3_TI1_COMP7: TIM3 TI1 is connected to COMP7 output (*) + * + * @arg TIM_TIM3_TI2_GPIO: TIM3 TI2 is connected to GPIO + * @arg TIM_TIM3_TI2_COMP1: TIM3 TI2 is connected to COMP1 output + * @arg TIM_TIM3_TI2_COMP2: TIM3 TI2 is connected to COMP2 output + * @arg TIM_TIM3_TI2_COMP3: TIM3 TI2 is connected to COMP3 output + * @arg TIM_TIM3_TI2_COMP4: TIM3 TI2 is connected to COMP4 output + * @arg TIM_TIM3_TI2_COMP5: TIM3 TI2 is connected to COMP5 output (*) + * @arg TIM_TIM3_TI2_COMP6: TIM3 TI2 is connected to COMP6 output (*) + * @arg TIM_TIM3_TI2_COMP7: TIM3 TI2 is connected to COMP7 output (*) + * + * @arg TIM_TIM3_TI3_GPIO: TIM3 TI3 is connected to GPIO + * @arg TIM_TIM3_TI3_COMP3: TIM3 TI3 is connected to COMP3 output + * + * For TIM4 this parameter can be one of the following values: + * @arg TIM_TIM4_TI1_GPIO: TIM4 TI1 is connected to GPIO + * @arg TIM_TIM4_TI1_COMP1: TIM4 TI1 is connected to COMP1 output + * @arg TIM_TIM4_TI1_COMP2: TIM4 TI1 is connected to COMP2 output + * @arg TIM_TIM4_TI1_COMP3: TIM4 TI1 is connected to COMP3 output + * @arg TIM_TIM4_TI1_COMP4: TIM4 TI1 is connected to COMP4 output + * @arg TIM_TIM4_TI1_COMP5: TIM4 TI1 is connected to COMP5 output (*) + * @arg TIM_TIM4_TI1_COMP6: TIM4 TI1 is connected to COMP6 output (*) + * @arg TIM_TIM4_TI1_COMP7: TIM4 TI1 is connected to COMP7 output (*) + * + * @arg TIM_TIM4_TI2_GPIO: TIM4 TI2 is connected to GPIO + * @arg TIM_TIM4_TI2_COMP1: TIM4 TI2 is connected to COMP1 output + * @arg TIM_TIM4_TI2_COMP2: TIM4 TI2 is connected to COMP2 output + * @arg TIM_TIM4_TI2_COMP3: TIM4 TI2 is connected to COMP3 output + * @arg TIM_TIM4_TI2_COMP4: TIM4 TI2 is connected to COMP4 output + * @arg TIM_TIM4_TI2_COMP5: TIM4 TI2 is connected to COMP5 output (*) + * @arg TIM_TIM4_TI2_COMP6: TIM4 TI2 is connected to COMP6 output (*) + * @arg TIM_TIM4_TI2_COMP7: TIM4 TI2 is connected to COMP7 output (*) + * + * @arg TIM_TIM4_TI3_GPIO: TIM4 TI3 is connected to GPIO + * @arg TIM_TIM4_TI3_COMP5: TIM4 TI3 is connected to COMP5 output (*) + * + * @arg TIM_TIM4_TI4_GPIO: TIM4 TI4 is connected to GPIO + * @arg TIM_TIM4_TI4_COMP6: TIM4 TI4 is connected to COMP6 output (*) + * + * For TIM5 this parameter can be one of the following values: (**) + * @arg TIM_TIM5_TI1_GPIO: TIM5 TI1 is connected to GPIO + * @arg TIM_TIM5_TI1_LSI: TIM5 TI1 is connected to LSI clock (*) + * @arg TIM_TIM5_TI1_LSE: TIM5 TI1 is connected to LSE clock (*) + * @arg TIM_TIM5_TI1_RTC_WK: TIM5 TI1 is connected to RTC Wakeup (*) + * @arg TIM_TIM5_TI1_COMP1: TIM5 TI1 is connected to COMP1 output (*) + * @arg TIM_TIM5_TI1_COMP2: TIM5 TI1 is connected to COMP2 output (*) + * @arg TIM_TIM5_TI1_COMP3: TIM5 TI1 is connected to COMP3 output (*) + * @arg TIM_TIM5_TI1_COMP4: TIM5 TI1 is connected to COMP4 output (*) + * @arg TIM_TIM5_TI1_COMP5: TIM5 TI1 is connected to COMP5 output (*) + * @arg TIM_TIM5_TI1_COMP6: TIM5 TI1 is connected to COMP6 output (*) + * @arg TIM_TIM5_TI1_COMP7: TIM5 TI1 is connected to COMP7 output (*) + * + * @arg TIM_TIM5_TI2_GPIO: TIM5 TI2 is connected to GPIO + * @arg TIM_TIM5_TI2_COMP1: TIM5 TI2 is connected to COMP1 output + * @arg TIM_TIM5_TI2_COMP2: TIM5 TI2 is connected to COMP2 output + * @arg TIM_TIM5_TI2_COMP3: TIM5 TI2 is connected to COMP3 output + * @arg TIM_TIM5_TI2_COMP4: TIM5 TI2 is connected to COMP4 output + * @arg TIM_TIM5_TI2_COMP5: TIM5 TI2 is connected to COMP5 output (*) + * @arg TIM_TIM5_TI2_COMP6: TIM5 TI2 is connected to COMP6 output (*) + * @arg TIM_TIM5_TI2_COMP7: TIM5 TI2 is connected to COMP7 output (*) + * + * For TIM8 this parameter can be one of the following values: + * @arg TIM_TIM8_TI1_GPIO: TIM8 TI1 is connected to GPIO + * @arg TIM_TIM8_TI1_COMP1: TIM8 TI1 is connected to COMP1 output + * @arg TIM_TIM8_TI1_COMP2: TIM8 TI1 is connected to COMP2 output + * @arg TIM_TIM8_TI1_COMP3: TIM8 TI1 is connected to COMP3 output + * @arg TIM_TIM8_TI1_COMP4: TIM8 TI1 is connected to COMP4 output + * + * For TIM15 this parameter can be one of the following values: + * @arg TIM_TIM15_TI1_GPIO: TIM15 TI1 is connected to GPIO + * @arg TIM_TIM15_TI1_LSE: TIM15 TI1 is connected to LSE clock + * @arg TIM_TIM15_TI1_COMP1: TIM15 TI1 is connected to COMP1 output + * @arg TIM_TIM15_TI1_COMP2: TIM15 TI1 is connected to COMP2 output + * @arg TIM_TIM15_TI1_COMP5: TIM15 TI1 is connected to COMP5 output (*) + * @arg TIM_TIM15_TI1_COMP7: TIM15 TI1 is connected to COMP7 output (*) + * + * @arg TIM_TIM15_TI2_GPIO: TIM15 TI2 is connected to GPIO + * @arg TIM_TIM15_TI2_COMP2: TIM15 TI2 is connected to COMP2 output + * @arg TIM_TIM15_TI2_COMP3: TIM15 TI2 is connected to COMP3 output + * @arg TIM_TIM15_TI2_COMP6: TIM15 TI2 is connected to COMP6 output (*) + * @arg TIM_TIM15_TI2_COMP7: TIM15 TI2 is connected to COMP7 output (*) + * + * For TIM16 this parameter can be one of the following values: + * @arg TIM_TIM16_TI1_GPIO: TIM16 TI1 is connected to GPIO + * @arg TIM_TIM16_TI1_COMP6: TIM16 TI1 is connected to COMP6 output (*) + * @arg TIM_TIM16_TI1_MCO: TIM15 TI1 is connected to MCO output + * @arg TIM_TIM16_TI1_HSE_32: TIM15 TI1 is connected to HSE div 32 + * @arg TIM_TIM16_TI1_RTC_WK: TIM15 TI1 is connected to RTC wakeup + * @arg TIM_TIM16_TI1_LSE: TIM15 TI1 is connected to LSE clock + * @arg TIM_TIM16_TI1_LSI: TIM15 TI1 is connected to LSI clock + * + * For TIM17 this parameter can be one of the following values: + * @arg TIM_TIM17_TI1_GPIO: TIM17 TI1 is connected to GPIO + * @arg TIM_TIM17_TI1_COMP5: TIM17 TI1 is connected to COMP5 output (*) + * @arg TIM_TIM17_TI1_MCO: TIM17 TI1 is connected to MCO output + * @arg TIM_TIM17_TI1_HSE_32: TIM17 TI1 is connected to HSE div 32 + * @arg TIM_TIM17_TI1_RTC_WK: TIM17 TI1 is connected to RTC wakeup + * @arg TIM_TIM17_TI1_LSE: TIM17 TI1 is connected to LSE clock + * @arg TIM_TIM17_TI1_LSI: TIM17 TI1 is connected to LSI clock + + * For TIM20 this parameter can be one of the following values: (**) + * @arg TIM_TIM20_TI1_GPIO: TIM20 TI1 is connected to GPIO + * @arg TIM_TIM20_TI1_COMP1: TIM20 TI1 is connected to COMP1 output (*) + * @arg TIM_TIM20_TI1_COMP2: TIM20 TI1 is connected to COMP2 output (*) + * @arg TIM_TIM20_TI1_COMP3: TIM20 TI1 is connected to COMP3 output (*) + * @arg TIM_TIM20_TI1_COMP4: TIM20 TI1 is connected to COMP4 output (*) + * + * (*) Value not defined in all devices. \n + * (**) Register not available in all devices. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_TISelection(TIM_HandleTypeDef *htim, uint32_t TISelection, uint32_t Channel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check parameters */ + assert_param(IS_TIM_TISEL_TIX_INSTANCE(htim->Instance, Channel)); + assert_param(IS_TIM_TISEL(TISelection)); + + __HAL_LOCK(htim); + + switch (Channel) + { + case TIM_CHANNEL_1: + MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI1SEL, TISelection); + + /* If required, set OR bit to request HSE/32 clock */ + if (IS_TIM_HSE32_INSTANCE(htim->Instance)) + { + SET_BIT(htim->Instance->OR, TIM_OR_HSE32EN); + } + else + { + CLEAR_BIT(htim->Instance->OR, TIM_OR_HSE32EN); + } + break; + case TIM_CHANNEL_2: + MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI2SEL, TISelection); + break; + case TIM_CHANNEL_3: + MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI3SEL, TISelection); + break; + case TIM_CHANNEL_4: + MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI4SEL, TISelection); + break; + default: + status = HAL_ERROR; + break; + } + + __HAL_UNLOCK(htim); + + return status; +} + +/** + * @brief Group channel 5 and channel 1, 2 or 3 + * @param htim TIM handle. + * @param Channels specifies the reference signal(s) the OC5REF is combined with. + * This parameter can be any combination of the following values: + * TIM_GROUPCH5_NONE: No effect of OC5REF on OC1REFC, OC2REFC and OC3REFC + * TIM_GROUPCH5_OC1REFC: OC1REFC is the logical AND of OC1REFC and OC5REF + * TIM_GROUPCH5_OC2REFC: OC2REFC is the logical AND of OC2REFC and OC5REF + * TIM_GROUPCH5_OC3REFC: OC3REFC is the logical AND of OC3REFC and OC5REF + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_GroupChannel5(TIM_HandleTypeDef *htim, uint32_t Channels) +{ + /* Check parameters */ + assert_param(IS_TIM_COMBINED3PHASEPWM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_GROUPCH5(Channels)); + + /* Process Locked */ + __HAL_LOCK(htim); + + htim->State = HAL_TIM_STATE_BUSY; + + /* Clear GC5Cx bit fields */ + htim->Instance->CCR5 &= ~(TIM_CCR5_GC5C3 | TIM_CCR5_GC5C2 | TIM_CCR5_GC5C1); + + /* Set GC5Cx bit fields */ + htim->Instance->CCR5 |= Channels; + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Disarm the designated break input (when it operates in bidirectional mode). + * @param htim TIM handle. + * @param BreakInput Break input to disarm + * This parameter can be one of the following values: + * @arg TIM_BREAKINPUT_BRK: Timer break input + * @arg TIM_BREAKINPUT_BRK2: Timer break 2 input + * @note The break input can be disarmed only when it is configured in + * bidirectional mode and when when MOE is reset. + * @note Purpose is to be able to have the input voltage back to high-state, + * whatever the time constant on the output . + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DisarmBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmpbdtr; + + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_BREAKINPUT(BreakInput)); + + switch (BreakInput) + { + case TIM_BREAKINPUT_BRK: + { + /* Check initial conditions */ + tmpbdtr = READ_REG(htim->Instance->BDTR); + if ((READ_BIT(tmpbdtr, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) && + (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + { + /* Break input BRK is disarmed */ + SET_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM); + } + break; + } + case TIM_BREAKINPUT_BRK2: + { + /* Check initial conditions */ + tmpbdtr = READ_REG(htim->Instance->BDTR); + if ((READ_BIT(tmpbdtr, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) && + (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + { + /* Break input BRK is disarmed */ + SET_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM); + } + break; + } + default: + status = HAL_ERROR; + break; + } + + return status; +} + +/** + * @brief Arm the designated break input (when it operates in bidirectional mode). + * @param htim TIM handle. + * @param BreakInput Break input to arm + * This parameter can be one of the following values: + * @arg TIM_BREAKINPUT_BRK: Timer break input + * @arg TIM_BREAKINPUT_BRK2: Timer break 2 input + * @note Arming is possible at anytime, even if fault is present. + * @note Break input is automatically armed as soon as MOE bit is set. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ReArmBreakInput(const TIM_HandleTypeDef *htim, uint32_t BreakInput) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tickstart; + + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_BREAKINPUT(BreakInput)); + + switch (BreakInput) + { + case TIM_BREAKINPUT_BRK: + { + /* Check initial conditions */ + if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) + { + /* Break input BRK is re-armed automatically by hardware. Poll to check whether fault condition disappeared */ + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) + { + if ((HAL_GetTick() - tickstart) > TIM_BREAKINPUT_REARM_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) + { + return HAL_TIMEOUT; + } + } + } + } + break; + } + + case TIM_BREAKINPUT_BRK2: + { + /* Check initial conditions */ + if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) + { + /* Break input BRK2 is re-armed automatically by hardware. Poll to check whether fault condition disappeared */ + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) + { + if ((HAL_GetTick() - tickstart) > TIM_BREAKINPUT_REARM_TIMEOUT) + { + /* New check to avoid false timeout detection in case of preemption */ + if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) + { + return HAL_TIMEOUT; + } + } + } + } + break; + } + default: + status = HAL_ERROR; + break; + } + + return status; +} + +/** + * @brief Enable dithering + * @param htim TIM handle + * @note Main usage is PWM mode + * @note This function must be called when timer is stopped or disabled (CEN =0) + * @note If dithering is activated, pay attention to ARR, CCRx, CNT interpretation: + * - CNT: only CNT[11:0] holds the non-dithered part for 16b timers (or CNT[26:0] for 32b timers) + * - ARR: ARR[15:4] holds the non-dithered part, and ARR[3:0] the dither part for 16b timers + * - CCRx: CCRx[15:4] holds the non-dithered part, and CCRx[3:0] the dither part for 16b timers + * - ARR and CCRx values are limited to 0xFFEF in dithering mode for 16b timers + * (corresponds to 4094 for the integer part and 15 for the dithered part). + * @note Macros @ref __HAL_TIM_CALC_PERIOD_DITHER() __HAL_TIM_CALC_DELAY_DITHER() __HAL_TIM_CALC_PULSE_DITHER() + * can be used to calculate period (ARR) and delay (CCRx) value. + * @note Enabling dithering, modifies automatically values of registers ARR/CCRx to keep the same integer part. + * @note Enabling dithering, modifies automatically values of registers ARR/CCRx to keep the same integer part. + * So it may be necessary to read ARR value or CCRx value with macros @ref __HAL_TIM_GET_AUTORELOAD() + * __HAL_TIM_GET_COMPARE() and if necessary update Init structure field htim->Init.Period . + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DitheringEnable(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + SET_BIT(htim->Instance->CR1, TIM_CR1_DITHEN); + return HAL_OK; +} + +/** + * @brief Disable dithering + * @param htim TIM handle + * @note This function must be called when timer is stopped or disabled (CEN =0) + * @note If dithering is activated, pay attention to ARR, CCRx, CNT interpretation: + * - CNT: only CNT[11:0] holds the non-dithered part for 16b timers (or CNT[26:0] for 32b timers) + * - ARR: ARR[15:4] holds the non-dithered part, and ARR[3:0] the dither part for 16b timers + * - CCRx: CCRx[15:4] holds the non-dithered part, and CCRx[3:0] the dither part for 16b timers + * - ARR and CCRx values are limited to 0xFFEF in dithering mode + * (corresponds to 4094 for the integer part and 15 for the dithered part). + * @note Disabling dithering, modifies automatically values of registers ARR/CCRx to keep the same integer part. + * So it may be necessary to read ARR value or CCRx value with macros @ref __HAL_TIM_GET_AUTORELOAD() + * __HAL_TIM_GET_COMPARE() and if necessary update Init structure field htim->Init.Period . + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DitheringDisable(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + CLEAR_BIT(htim->Instance->CR1, TIM_CR1_DITHEN); + return HAL_OK; +} + +/** + * @brief Initializes the pulse on compare pulse width and pulse prescaler + * @param htim TIM Output Compare handle + * @param PulseWidthPrescaler Pulse width prescaler + * This parameter can be a number between Min_Data = 0x0 and Max_Data = 0x7 + * @param PulseWidth Pulse width + * This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_OC_ConfigPulseOnCompare(TIM_HandleTypeDef *htim, + uint32_t PulseWidthPrescaler, + uint32_t PulseWidth) +{ + uint32_t tmpecr; + + /* Check the parameters */ + assert_param(IS_TIM_PULSEONCOMPARE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_PULSEONCOMPARE_WIDTH(PulseWidth)); + assert_param(IS_TIM_PULSEONCOMPARE_WIDTHPRESCALER(PulseWidthPrescaler)); + + /* Process Locked */ + __HAL_LOCK(htim); + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + + /* Get the TIMx ECR register value */ + tmpecr = htim->Instance->ECR; + /* Reset the Pulse width prescaler and the Pulse width */ + tmpecr &= ~(TIM_ECR_PWPRSC | TIM_ECR_PW); + /* Set the Pulse width prescaler and Pulse width*/ + tmpecr |= PulseWidthPrescaler << TIM_ECR_PWPRSC_Pos; + tmpecr |= PulseWidth << TIM_ECR_PW_Pos; + /* Write to TIMx ECR */ + htim->Instance->ECR = tmpecr; + + /* Change the TIM state */ + htim->State = HAL_TIM_STATE_READY; + + /* Release Lock */ + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configure preload source of Slave Mode Selection bitfield (SMS in SMCR register) + * @param htim TIM handle + * @param Source Source of slave mode selection preload + * This parameter can be one of the following values: + * @arg TIM_SMS_PRELOAD_SOURCE_UPDATE: Timer update event is used as source of Slave Mode Selection preload + * @arg TIM_SMS_PRELOAD_SOURCE_INDEX: Timer index event is used as source of Slave Mode Selection preload + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigSlaveModePreload(TIM_HandleTypeDef *htim, uint32_t Source) +{ + /* Check the parameters */ + assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_SLAVE_PRELOAD_SOURCE(Source)); + + MODIFY_REG(htim->Instance->SMCR, TIM_SMCR_SMSPS, Source); + return HAL_OK; +} + +/** + * @brief Enable preload of Slave Mode Selection bitfield (SMS in SMCR register) + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_EnableSlaveModePreload(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); + + SET_BIT(htim->Instance->SMCR, TIM_SMCR_SMSPE); + return HAL_OK; +} + +/** + * @brief Disable preload of Slave Mode Selection bitfield (SMS in SMCR register) + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DisableSlaveModePreload(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); + + CLEAR_BIT(htim->Instance->SMCR, TIM_SMCR_SMSPE); + return HAL_OK; +} + +/** + * @brief Enable deadtime preload + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_EnableDeadTimePreload(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + + SET_BIT(htim->Instance->DTR2, TIM_DTR2_DTPE); + return HAL_OK; +} + +/** + * @brief Disable deadtime preload + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DisableDeadTimePreload(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + + CLEAR_BIT(htim->Instance->DTR2, TIM_DTR2_DTPE); + return HAL_OK; +} + +/** + * @brief Configure deadtime + * @param htim TIM handle + * @param Deadtime Deadtime value + * @note This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigDeadTime(TIM_HandleTypeDef *htim, uint32_t Deadtime) +{ + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_DEADTIME(Deadtime)); + + MODIFY_REG(htim->Instance->BDTR, TIM_BDTR_DTG, Deadtime); + return HAL_OK; +} + +/** + * @brief Configure asymmetrical deadtime + * @param htim TIM handle + * @param FallingDeadtime Falling edge deadtime value + * @note This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigAsymmetricalDeadTime(TIM_HandleTypeDef *htim, uint32_t FallingDeadtime) +{ + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_DEADTIME(FallingDeadtime)); + + MODIFY_REG(htim->Instance->DTR2, TIM_DTR2_DTGF, FallingDeadtime); + return HAL_OK; +} + +/** + * @brief Enable asymmetrical deadtime + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_EnableAsymmetricalDeadTime(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + + SET_BIT(htim->Instance->DTR2, TIM_DTR2_DTAE); + return HAL_OK; +} + +/** + * @brief Disable asymmetrical deadtime + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DisableAsymmetricalDeadTime(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + + CLEAR_BIT(htim->Instance->DTR2, TIM_DTR2_DTAE); + return HAL_OK; +} + +/** + * @brief Configures the encoder index. + * @note warning in case of encoder mode clock plus direction + * @ref TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X1 or @ref TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X2 + * Direction must be set to @ref TIM_ENCODERINDEX_DIRECTION_UP_DOWN + * @param htim TIM handle. + * @param sEncoderIndexConfig Encoder index configuration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_ConfigEncoderIndex(TIM_HandleTypeDef *htim, + TIMEx_EncoderIndexConfigTypeDef *sEncoderIndexConfig) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + assert_param(IS_TIM_ENCODERINDEX_POLARITY(sEncoderIndexConfig->Polarity)); + assert_param(IS_TIM_ENCODERINDEX_PRESCALER(sEncoderIndexConfig->Prescaler)); + assert_param(IS_TIM_ENCODERINDEX_FILTER(sEncoderIndexConfig->Filter)); + assert_param(IS_FUNCTIONAL_STATE(sEncoderIndexConfig->FirstIndexEnable)); + assert_param(IS_TIM_ENCODERINDEX_POSITION(sEncoderIndexConfig->Position)); + assert_param(IS_TIM_ENCODERINDEX_DIRECTION(sEncoderIndexConfig->Direction)); + + /* Process Locked */ + __HAL_LOCK(htim); + + /* Configures the TIMx External Trigger (ETR) which is used as Index input */ + TIM_ETR_SetConfig(htim->Instance, + sEncoderIndexConfig->Prescaler, + sEncoderIndexConfig->Polarity, + sEncoderIndexConfig->Filter); + + /* Configures the encoder index */ + MODIFY_REG(htim->Instance->ECR, + TIM_ECR_IDIR_Msk | TIM_ECR_FIDX_Msk | TIM_ECR_IPOS_Msk, + (sEncoderIndexConfig->Direction | + ((sEncoderIndexConfig->FirstIndexEnable == ENABLE) ? (0x1U << TIM_ECR_FIDX_Pos) : 0U) | + sEncoderIndexConfig->Position | + TIM_ECR_IE)); + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Enable encoder index + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_EnableEncoderIndex(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + SET_BIT(htim->Instance->ECR, TIM_ECR_IE); + return HAL_OK; +} + +/** + * @brief Disable encoder index + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DisableEncoderIndex(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + CLEAR_BIT(htim->Instance->ECR, TIM_ECR_IE); + return HAL_OK; +} + +/** + * @brief Enable encoder first index + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_EnableEncoderFirstIndex(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + SET_BIT(htim->Instance->ECR, TIM_ECR_FIDX); + return HAL_OK; +} + +/** + * @brief Disable encoder first index + * @param htim TIM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_DisableEncoderFirstIndex(TIM_HandleTypeDef *htim) +{ + /* Check the parameters */ + assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); + + CLEAR_BIT(htim->Instance->ECR, TIM_ECR_FIDX); + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions + * @brief Extended Callbacks functions + * +@verbatim + ============================================================================== + ##### Extended Callbacks functions ##### + ============================================================================== + [..] + This section provides Extended TIM callback functions: + (+) Timer Commutation callback + (+) Timer Break callback + +@endverbatim + * @{ + */ + +/** + * @brief Commutation callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_CommutCallback could be implemented in the user file + */ +} +/** + * @brief Commutation half complete callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_CommutHalfCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Break detection callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_BreakCallback could be implemented in the user file + */ +} + +/** + * @brief Break2 detection callback in non blocking mode + * @param htim: TIM handle + * @retval None + */ +__weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_TIMEx_Break2Callback could be implemented in the user file + */ +} + +/** + * @brief Encoder index callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_EncoderIndexCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_EncoderIndexCallback could be implemented in the user file + */ +} + +/** + * @brief Direction change callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_DirectionChangeCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_DirectionChangeCallback could be implemented in the user file + */ +} + +/** + * @brief Index error callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_IndexErrorCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_IndexErrorCallback could be implemented in the user file + */ +} + +/** + * @brief Transition error callback in non-blocking mode + * @param htim TIM handle + * @retval None + */ +__weak void HAL_TIMEx_TransitionErrorCallback(TIM_HandleTypeDef *htim) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIMEx_TransitionErrorCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group7 Extended Peripheral State functions + * @brief Extended Peripheral State functions + * +@verbatim + ============================================================================== + ##### Extended Peripheral State functions ##### + ============================================================================== + [..] + This subsection permits to get in run-time the status of the peripheral + and the data flow. + +@endverbatim + * @{ + */ + +/** + * @brief Return the TIM Hall Sensor interface handle state. + * @param htim TIM Hall Sensor handle + * @retval HAL state + */ +HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(const TIM_HandleTypeDef *htim) +{ + return htim->State; +} + +/** + * @brief Return actual state of the TIM complementary channel. + * @param htim TIM handle + * @param ChannelN TIM Complementary channel + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 + * @arg TIM_CHANNEL_2: TIM Channel 2 + * @arg TIM_CHANNEL_3: TIM Channel 3 + * @arg TIM_CHANNEL_4: TIM Channel 4 + * @retval TIM Complementary channel state + */ +HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(const TIM_HandleTypeDef *htim, uint32_t ChannelN) +{ + HAL_TIM_ChannelStateTypeDef channel_state; + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, ChannelN)); + + channel_state = TIM_CHANNEL_N_STATE_GET(htim, ChannelN); + + return channel_state; +} +/** + * @} + */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @defgroup TIMEx_Private_Functions TIM Extended Private Functions + * @{ + */ + +/** + * @brief TIM DMA Commutation callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->CommutationCallback(htim); +#else + HAL_TIMEx_CommutCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + +/** + * @brief TIM DMA Commutation half complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->CommutationHalfCpltCallback(htim); +#else + HAL_TIMEx_CommutHalfCpltCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + + +/** + * @brief TIM DMA Delay Pulse complete callback (complementary channel). + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMADelayPulseNCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + } + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA error callback (complementary channel) + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMAErrorCCxN(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->ErrorCallback(htim); +#else + HAL_TIM_ErrorCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief Enables or disables the TIM Capture Compare Channel xN. + * @param TIMx to select the TIM peripheral + * @param Channel specifies the TIM Channel + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: TIM Channel 1 + * @arg TIM_CHANNEL_2: TIM Channel 2 + * @arg TIM_CHANNEL_3: TIM Channel 3 + * @arg TIM_CHANNEL_4: TIM Channel 4 + * @param ChannelNState specifies the TIM Channel CCxNE bit new state. + * This parameter can be: TIM_CCxN_ENABLE or TIM_CCxN_Disable. + * @retval None + */ +static void TIM_CCxNChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelNState) +{ + uint32_t tmp; + + tmp = TIM_CCER_CC1NE << (Channel & 0xFU); /* 0xFU = 15 bits max shift */ + + /* Reset the CCxNE Bit */ + TIMx->CCER &= ~tmp; + + /* Set or reset the CCxNE Bit */ + TIMx->CCER |= (uint32_t)(ChannelNState << (Channel & 0xFU)); /* 0xFU = 15 bits max shift */ +} +/** + * @} + */ + +#endif /* HAL_TIM_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c new file mode 100644 index 0000000..edb4900 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c @@ -0,0 +1,4695 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_uart.c + * @author MCD Application Team + * @brief UART HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral Control functions + * + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + =============================================================================== + ##### How to use this driver ##### + =============================================================================== + [..] + The UART HAL driver can be used as follows: + + (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart). + (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API: + (++) Enable the USARTx interface clock. + (++) UART pins configuration: + (+++) Enable the clock for the UART GPIOs. + (+++) Configure these UART pins as alternate function pull-up. + (++) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT() + and HAL_UART_Receive_IT() APIs): + (+++) Configure the USARTx interrupt priority. + (+++) Enable the NVIC USART IRQ handle. + (++) UART interrupts handling: + -@@- The specific UART interrupts (Transmission complete interrupt, + RXNE interrupt, RX/TX FIFOs related interrupts and Error Interrupts) + are managed using the macros __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() + inside the transmit and receive processes. + (++) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA() + and HAL_UART_Receive_DMA() APIs): + (+++) Declare a DMA handle structure for the Tx/Rx channel. + (+++) Enable the DMAx interface clock. + (+++) Configure the declared DMA handle structure with the required Tx/Rx parameters. + (+++) Configure the DMA Tx/Rx channel. + (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle. + (+++) Configure the priority and enable the NVIC for the transfer complete + interrupt on the DMA Tx/Rx channel. + + (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Prescaler value , Hardware + flow control and Mode (Receiver/Transmitter) in the huart handle Init structure. + + (#) If required, program UART advanced features (TX/RX pins swap, auto Baud rate detection,...) + in the huart handle AdvancedInit structure. + + (#) For the UART asynchronous mode, initialize the UART registers by calling + the HAL_UART_Init() API. + + (#) For the UART Half duplex mode, initialize the UART registers by calling + the HAL_HalfDuplex_Init() API. + + (#) For the UART LIN (Local Interconnection Network) mode, initialize the UART registers + by calling the HAL_LIN_Init() API. + + (#) For the UART Multiprocessor mode, initialize the UART registers + by calling the HAL_MultiProcessor_Init() API. + + (#) For the UART RS485 Driver Enabled mode, initialize the UART registers + by calling the HAL_RS485Ex_Init() API. + + [..] + (@) These API's (HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init(), HAL_MultiProcessor_Init(), + also configure the low level Hardware GPIO, CLOCK, CORTEX...etc) by + calling the customized HAL_UART_MspInit() API. + + ##### Callback registration ##### + ================================== + + [..] + The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1 + allows the user to configure dynamically the driver callbacks. + + [..] + Use Function HAL_UART_RegisterCallback() to register a user callback. + Function HAL_UART_RegisterCallback() allows to register following callbacks: + (+) TxHalfCpltCallback : Tx Half Complete Callback. + (+) TxCpltCallback : Tx Complete Callback. + (+) RxHalfCpltCallback : Rx Half Complete Callback. + (+) RxCpltCallback : Rx Complete Callback. + (+) ErrorCallback : Error Callback. + (+) AbortCpltCallback : Abort Complete Callback. + (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. + (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. + (+) WakeupCallback : Wakeup Callback. + (+) RxFifoFullCallback : Rx Fifo Full Callback. + (+) TxFifoEmptyCallback : Tx Fifo Empty Callback. + (+) MspInitCallback : UART MspInit. + (+) MspDeInitCallback : UART MspDeInit. + This function takes as parameters the HAL peripheral handle, the Callback ID + and a pointer to the user callback function. + + [..] + Use function HAL_UART_UnRegisterCallback() to reset a callback to the default + weak function. + HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle, + and the Callback ID. + This function allows to reset following callbacks: + (+) TxHalfCpltCallback : Tx Half Complete Callback. + (+) TxCpltCallback : Tx Complete Callback. + (+) RxHalfCpltCallback : Rx Half Complete Callback. + (+) RxCpltCallback : Rx Complete Callback. + (+) ErrorCallback : Error Callback. + (+) AbortCpltCallback : Abort Complete Callback. + (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. + (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. + (+) WakeupCallback : Wakeup Callback. + (+) RxFifoFullCallback : Rx Fifo Full Callback. + (+) TxFifoEmptyCallback : Tx Fifo Empty Callback. + (+) MspInitCallback : UART MspInit. + (+) MspDeInitCallback : UART MspDeInit. + + [..] + For specific callback RxEventCallback, use dedicated registration/reset functions: + respectively HAL_UART_RegisterRxEventCallback() , HAL_UART_UnRegisterRxEventCallback(). + + [..] + By default, after the HAL_UART_Init() and when the state is HAL_UART_STATE_RESET + all callbacks are set to the corresponding weak functions: + examples HAL_UART_TxCpltCallback(), HAL_UART_RxHalfCpltCallback(). + Exception done for MspInit and MspDeInit functions that are respectively + reset to the legacy weak functions in the HAL_UART_Init() + and HAL_UART_DeInit() only when these callbacks are null (not registered beforehand). + If not, MspInit or MspDeInit are not null, the HAL_UART_Init() and HAL_UART_DeInit() + keep and use the user MspInit/MspDeInit callbacks (registered beforehand). + + [..] + Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only. + Exception done MspInit/MspDeInit that can be registered/unregistered + in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user) + MspInit/DeInit callbacks can be used during the Init/DeInit. + In that case first register the MspInit/MspDeInit user callbacks + using HAL_UART_RegisterCallback() before calling HAL_UART_DeInit() + or HAL_UART_Init() function. + + [..] + When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or + not defined, the callback registration feature is not available + and weak callbacks are used. + + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup UART UART + * @brief HAL UART module driver + * @{ + */ + +#ifdef HAL_UART_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup UART_Private_Constants UART Private Constants + * @{ + */ +#define USART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE | \ + USART_CR1_OVER8 | USART_CR1_FIFOEN)) /*!< UART or USART CR1 fields of parameters set by UART_SetConfig API */ + +#define USART_CR3_FIELDS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_ONEBIT | USART_CR3_TXFTCFG | \ + USART_CR3_RXFTCFG)) /*!< UART or USART CR3 fields of parameters set by UART_SetConfig API */ + +#define LPUART_BRR_MIN 0x00000300U /* LPUART BRR minimum authorized value */ +#define LPUART_BRR_MAX 0x000FFFFFU /* LPUART BRR maximum authorized value */ + +#define UART_BRR_MIN 0x10U /* UART BRR minimum authorized value */ +#define UART_BRR_MAX 0x0000FFFFU /* UART BRR maximum authorized value */ +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @addtogroup UART_Private_Functions + * @{ + */ +static void UART_EndRxTransfer(UART_HandleTypeDef *huart); +static void UART_EndTxTransfer(UART_HandleTypeDef *huart); +static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma); +static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma); +static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma); +static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma); +static void UART_DMAError(DMA_HandleTypeDef *hdma); +static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma); +static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma); +static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma); +static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma); +static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma); +static void UART_TxISR_8BIT(UART_HandleTypeDef *huart); +static void UART_TxISR_16BIT(UART_HandleTypeDef *huart); +static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart); +static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart); +static void UART_EndTransmit_IT(UART_HandleTypeDef *huart); +static void UART_RxISR_8BIT(UART_HandleTypeDef *huart); +static void UART_RxISR_16BIT(UART_HandleTypeDef *huart); +static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart); +static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart); +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/** @addtogroup UART_Private_variables + * @{ + */ +const uint16_t UARTPrescTable[12] = {1U, 2U, 4U, 6U, 8U, 10U, 12U, 16U, 32U, 64U, 128U, 256U}; +/** + * @} + */ + +/* Exported Constants --------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup UART_Exported_Functions UART Exported Functions + * @{ + */ + +/** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim +=============================================================================== + ##### Initialization and Configuration functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to initialize the USARTx or the UARTy + in asynchronous mode. + (+) For the asynchronous mode the parameters below can be configured: + (++) Baud Rate + (++) Word Length + (++) Stop Bit + (++) Parity: If the parity is enabled, then the MSB bit of the data written + in the data register is transmitted but is changed by the parity bit. + (++) Hardware flow control + (++) Receiver/transmitter modes + (++) Over Sampling Method + (++) One-Bit Sampling Method + (+) For the asynchronous mode, the following advanced features can be configured as well: + (++) TX and/or RX pin level inversion + (++) data logical level inversion + (++) RX and TX pins swap + (++) RX overrun detection disabling + (++) DMA disabling on RX error + (++) MSB first on communication line + (++) auto Baud rate detection + [..] + The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init()and HAL_MultiProcessor_Init()API + follow respectively the UART asynchronous, UART Half duplex, UART LIN mode + and UART multiprocessor mode configuration procedures (details for the procedures + are available in reference manual). + +@endverbatim + + Depending on the frame length defined by the M1 and M0 bits (7-bit, + 8-bit or 9-bit), the possible UART formats are listed in the + following table. + + Table 1. UART frame format. + +-----------------------------------------------------------------------+ + | M1 bit | M0 bit | PCE bit | UART frame | + |---------|---------|-----------|---------------------------------------| + | 0 | 0 | 0 | | SB | 8 bit data | STB | | + |---------|---------|-----------|---------------------------------------| + | 0 | 0 | 1 | | SB | 7 bit data | PB | STB | | + |---------|---------|-----------|---------------------------------------| + | 0 | 1 | 0 | | SB | 9 bit data | STB | | + |---------|---------|-----------|---------------------------------------| + | 0 | 1 | 1 | | SB | 8 bit data | PB | STB | | + |---------|---------|-----------|---------------------------------------| + | 1 | 0 | 0 | | SB | 7 bit data | STB | | + |---------|---------|-----------|---------------------------------------| + | 1 | 0 | 1 | | SB | 6 bit data | PB | STB | | + +-----------------------------------------------------------------------+ + + * @{ + */ + +/** + * @brief Initialize the UART mode according to the specified + * parameters in the UART_InitTypeDef and initialize the associated handle. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) +{ + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + + if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) + { + /* Check the parameters */ + assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); + } + else + { + /* Check the parameters */ + assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); + } + + if (huart->gState == HAL_UART_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + UART_InitCallbacksToDefault(huart); + + if (huart->MspInitCallback == NULL) + { + huart->MspInitCallback = HAL_UART_MspInit; + } + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK */ + HAL_UART_MspInit(huart); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + + __HAL_UART_DISABLE(huart); + + /* Perform advanced settings configuration */ + /* For some items, configuration requires to be done prior TE and RE bits are set */ + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + { + UART_AdvFeatureConfig(huart); + } + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + { + return HAL_ERROR; + } + + /* In asynchronous mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ + CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + + __HAL_UART_ENABLE(huart); + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); +} + +/** + * @brief Initialize the half-duplex mode according to the specified + * parameters in the UART_InitTypeDef and creates the associated handle. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) +{ + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + + /* Check UART instance */ + assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); + + if (huart->gState == HAL_UART_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + UART_InitCallbacksToDefault(huart); + + if (huart->MspInitCallback == NULL) + { + huart->MspInitCallback = HAL_UART_MspInit; + } + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK */ + HAL_UART_MspInit(huart); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + + __HAL_UART_DISABLE(huart); + + /* Perform advanced settings configuration */ + /* For some items, configuration requires to be done prior TE and RE bits are set */ + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + { + UART_AdvFeatureConfig(huart); + } + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + { + return HAL_ERROR; + } + + /* In half-duplex mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN and IREN bits in the USART_CR3 register.*/ + CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); + + /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ + SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); + + __HAL_UART_ENABLE(huart); + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); +} + + +/** + * @brief Initialize the LIN mode according to the specified + * parameters in the UART_InitTypeDef and creates the associated handle. + * @param huart UART handle. + * @param BreakDetectLength Specifies the LIN break detection length. + * This parameter can be one of the following values: + * @arg @ref UART_LINBREAKDETECTLENGTH_10B 10-bit break detection + * @arg @ref UART_LINBREAKDETECTLENGTH_11B 11-bit break detection + * @retval HAL status + */ +HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) +{ + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + + /* Check the LIN UART instance */ + assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); + /* Check the Break detection length parameter */ + assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength)); + + /* LIN mode limited to 16-bit oversampling only */ + if (huart->Init.OverSampling == UART_OVERSAMPLING_8) + { + return HAL_ERROR; + } + /* LIN mode limited to 8-bit data length */ + if (huart->Init.WordLength != UART_WORDLENGTH_8B) + { + return HAL_ERROR; + } + + if (huart->gState == HAL_UART_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + UART_InitCallbacksToDefault(huart); + + if (huart->MspInitCallback == NULL) + { + huart->MspInitCallback = HAL_UART_MspInit; + } + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK */ + HAL_UART_MspInit(huart); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + + __HAL_UART_DISABLE(huart); + + /* Perform advanced settings configuration */ + /* For some items, configuration requires to be done prior TE and RE bits are set */ + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + { + UART_AdvFeatureConfig(huart); + } + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + { + return HAL_ERROR; + } + + /* In LIN mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN and IREN bits in the USART_CR3 register.*/ + CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); + CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); + + /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ + SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); + + /* Set the USART LIN Break detection length. */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); + + __HAL_UART_ENABLE(huart); + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); +} + + +/** + * @brief Initialize the multiprocessor mode according to the specified + * parameters in the UART_InitTypeDef and initialize the associated handle. + * @param huart UART handle. + * @param Address UART node address (4-, 6-, 7- or 8-bit long). + * @param WakeUpMethod Specifies the UART wakeup method. + * This parameter can be one of the following values: + * @arg @ref UART_WAKEUPMETHOD_IDLELINE WakeUp by an idle line detection + * @arg @ref UART_WAKEUPMETHOD_ADDRESSMARK WakeUp by an address mark + * @note If the user resorts to idle line detection wake up, the Address parameter + * is useless and ignored by the initialization function. + * @note If the user resorts to address mark wake up, the address length detection + * is configured by default to 4 bits only. For the UART to be able to + * manage 6-, 7- or 8-bit long addresses detection, the API + * HAL_MultiProcessorEx_AddressLength_Set() must be called after + * HAL_MultiProcessor_Init(). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod) +{ + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + + /* Check the wake up method parameter */ + assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod)); + + if (huart->gState == HAL_UART_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + UART_InitCallbacksToDefault(huart); + + if (huart->MspInitCallback == NULL) + { + huart->MspInitCallback = HAL_UART_MspInit; + } + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK */ + HAL_UART_MspInit(huart); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + + __HAL_UART_DISABLE(huart); + + /* Perform advanced settings configuration */ + /* For some items, configuration requires to be done prior TE and RE bits are set */ + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + { + UART_AdvFeatureConfig(huart); + } + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + { + return HAL_ERROR; + } + + /* In multiprocessor mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN, HDSEL and IREN bits in the USART_CR3 register. */ + CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + + if (WakeUpMethod == UART_WAKEUPMETHOD_ADDRESSMARK) + { + /* If address mark wake up method is chosen, set the USART address node */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); + } + + /* Set the wake up method by setting the WAKE bit in the CR1 register */ + MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); + + __HAL_UART_ENABLE(huart); + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); +} + + +/** + * @brief DeInitialize the UART peripheral. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) +{ + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); + + huart->gState = HAL_UART_STATE_BUSY; + + __HAL_UART_DISABLE(huart); + + huart->Instance->CR1 = 0x0U; + huart->Instance->CR2 = 0x0U; + huart->Instance->CR3 = 0x0U; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + if (huart->MspDeInitCallback == NULL) + { + huart->MspDeInitCallback = HAL_UART_MspDeInit; + } + /* DeInit the low level hardware */ + huart->MspDeInitCallback(huart); +#else + /* DeInit the low level hardware */ + HAL_UART_MspDeInit(huart); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->gState = HAL_UART_STATE_RESET; + huart->RxState = HAL_UART_STATE_RESET; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + huart->RxEventType = HAL_UART_RXEVENT_TC; + + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Initialize the UART MSP. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_MspInit can be implemented in the user file + */ +} + +/** + * @brief DeInitialize the UART MSP. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_MspDeInit can be implemented in the user file + */ +} + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +/** + * @brief Register a User UART Callback + * To be used to override the weak predefined callback + * @note The HAL_UART_RegisterCallback() may be called before HAL_UART_Init(), HAL_HalfDuplex_Init(), + * HAL_LIN_Init(), HAL_MultiProcessor_Init() or HAL_RS485Ex_Init() in HAL_UART_STATE_RESET to register + * callbacks for HAL_UART_MSPINIT_CB_ID and HAL_UART_MSPDEINIT_CB_ID + * @param huart uart handle + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID + * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID + * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID + * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID + * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID + * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID + * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID + * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID + * @arg @ref HAL_UART_WAKEUP_CB_ID Wakeup Callback ID + * @arg @ref HAL_UART_RX_FIFO_FULL_CB_ID Rx Fifo Full Callback ID + * @arg @ref HAL_UART_TX_FIFO_EMPTY_CB_ID Tx Fifo Empty Callback ID + * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID + * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID, + pUART_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + if (huart->gState == HAL_UART_STATE_READY) + { + switch (CallbackID) + { + case HAL_UART_TX_HALFCOMPLETE_CB_ID : + huart->TxHalfCpltCallback = pCallback; + break; + + case HAL_UART_TX_COMPLETE_CB_ID : + huart->TxCpltCallback = pCallback; + break; + + case HAL_UART_RX_HALFCOMPLETE_CB_ID : + huart->RxHalfCpltCallback = pCallback; + break; + + case HAL_UART_RX_COMPLETE_CB_ID : + huart->RxCpltCallback = pCallback; + break; + + case HAL_UART_ERROR_CB_ID : + huart->ErrorCallback = pCallback; + break; + + case HAL_UART_ABORT_COMPLETE_CB_ID : + huart->AbortCpltCallback = pCallback; + break; + + case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : + huart->AbortTransmitCpltCallback = pCallback; + break; + + case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : + huart->AbortReceiveCpltCallback = pCallback; + break; + + case HAL_UART_WAKEUP_CB_ID : + huart->WakeupCallback = pCallback; + break; + + case HAL_UART_RX_FIFO_FULL_CB_ID : + huart->RxFifoFullCallback = pCallback; + break; + + case HAL_UART_TX_FIFO_EMPTY_CB_ID : + huart->TxFifoEmptyCallback = pCallback; + break; + + case HAL_UART_MSPINIT_CB_ID : + huart->MspInitCallback = pCallback; + break; + + case HAL_UART_MSPDEINIT_CB_ID : + huart->MspDeInitCallback = pCallback; + break; + + default : + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + break; + } + } + else if (huart->gState == HAL_UART_STATE_RESET) + { + switch (CallbackID) + { + case HAL_UART_MSPINIT_CB_ID : + huart->MspInitCallback = pCallback; + break; + + case HAL_UART_MSPDEINIT_CB_ID : + huart->MspDeInitCallback = pCallback; + break; + + default : + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + break; + } + } + else + { + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Unregister an UART Callback + * UART callaback is redirected to the weak predefined callback + * @note The HAL_UART_UnRegisterCallback() may be called before HAL_UART_Init(), HAL_HalfDuplex_Init(), + * HAL_LIN_Init(), HAL_MultiProcessor_Init() or HAL_RS485Ex_Init() in HAL_UART_STATE_RESET to un-register + * callbacks for HAL_UART_MSPINIT_CB_ID and HAL_UART_MSPDEINIT_CB_ID + * @param huart uart handle + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID + * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID + * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID + * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID + * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID + * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID + * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID + * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID + * @arg @ref HAL_UART_WAKEUP_CB_ID Wakeup Callback ID + * @arg @ref HAL_UART_RX_FIFO_FULL_CB_ID Rx Fifo Full Callback ID + * @arg @ref HAL_UART_TX_FIFO_EMPTY_CB_ID Tx Fifo Empty Callback ID + * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID + * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (HAL_UART_STATE_READY == huart->gState) + { + switch (CallbackID) + { + case HAL_UART_TX_HALFCOMPLETE_CB_ID : + huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback */ + break; + + case HAL_UART_TX_COMPLETE_CB_ID : + huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallback */ + break; + + case HAL_UART_RX_HALFCOMPLETE_CB_ID : + huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback */ + break; + + case HAL_UART_RX_COMPLETE_CB_ID : + huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallback */ + break; + + case HAL_UART_ERROR_CB_ID : + huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallback */ + break; + + case HAL_UART_ABORT_COMPLETE_CB_ID : + huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + break; + + case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : + huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak + AbortTransmitCpltCallback */ + break; + + case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : + huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak + AbortReceiveCpltCallback */ + break; + + case HAL_UART_WAKEUP_CB_ID : + huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallback */ + break; + + case HAL_UART_RX_FIFO_FULL_CB_ID : + huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCallback */ + break; + + case HAL_UART_TX_FIFO_EMPTY_CB_ID : + huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyCallback */ + break; + + case HAL_UART_MSPINIT_CB_ID : + huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallback */ + break; + + case HAL_UART_MSPDEINIT_CB_ID : + huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCallback */ + break; + + default : + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + break; + } + } + else if (HAL_UART_STATE_RESET == huart->gState) + { + switch (CallbackID) + { + case HAL_UART_MSPINIT_CB_ID : + huart->MspInitCallback = HAL_UART_MspInit; + break; + + case HAL_UART_MSPDEINIT_CB_ID : + huart->MspDeInitCallback = HAL_UART_MspDeInit; + break; + + default : + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + break; + } + } + else + { + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Register a User UART Rx Event Callback + * To be used instead of the weak predefined callback + * @param huart Uart handle + * @param pCallback Pointer to the Rx Event Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + if (huart->RxState == HAL_UART_STATE_READY) + { + huart->RxEventCallback = pCallback; + } + else + { + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief UnRegister the UART Rx Event Callback + * UART Rx Event Callback is redirected to the weak HAL_UARTEx_RxEventCallback() predefined callback + * @param huart Uart handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (huart->RxState == HAL_UART_STATE_READY) + { + huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ + } + else + { + huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + + status = HAL_ERROR; + } + + return status; +} + +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup UART_Exported_Functions_Group2 IO operation functions + * @brief UART Transmit/Receive functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + This subsection provides a set of functions allowing to manage the UART asynchronous + and Half duplex data transfers. + + (#) There are two mode of transfer: + (+) Blocking mode: The communication is performed in polling mode. + The HAL status of all data processing is returned by the same function + after finishing transfer. + (+) Non-Blocking mode: The communication is performed using Interrupts + or DMA, These API's return the HAL status. + The end of the data processing will be indicated through the + dedicated UART IRQ when using Interrupt mode or the DMA IRQ when + using DMA mode. + The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks + will be executed respectively at the end of the transmit or Receive process + The HAL_UART_ErrorCallback()user callback will be executed when a communication error is detected + + (#) Blocking mode API's are : + (+) HAL_UART_Transmit() + (+) HAL_UART_Receive() + + (#) Non-Blocking mode API's with Interrupt are : + (+) HAL_UART_Transmit_IT() + (+) HAL_UART_Receive_IT() + (+) HAL_UART_IRQHandler() + + (#) Non-Blocking mode API's with DMA are : + (+) HAL_UART_Transmit_DMA() + (+) HAL_UART_Receive_DMA() + (+) HAL_UART_DMAPause() + (+) HAL_UART_DMAResume() + (+) HAL_UART_DMAStop() + + (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode: + (+) HAL_UART_TxHalfCpltCallback() + (+) HAL_UART_TxCpltCallback() + (+) HAL_UART_RxHalfCpltCallback() + (+) HAL_UART_RxCpltCallback() + (+) HAL_UART_ErrorCallback() + + (#) Non-Blocking mode transfers could be aborted using Abort API's : + (+) HAL_UART_Abort() + (+) HAL_UART_AbortTransmit() + (+) HAL_UART_AbortReceive() + (+) HAL_UART_Abort_IT() + (+) HAL_UART_AbortTransmit_IT() + (+) HAL_UART_AbortReceive_IT() + + (#) For Abort services based on interrupts (HAL_UART_Abortxxx_IT), a set of Abort Complete Callbacks are provided: + (+) HAL_UART_AbortCpltCallback() + (+) HAL_UART_AbortTransmitCpltCallback() + (+) HAL_UART_AbortReceiveCpltCallback() + + (#) A Rx Event Reception Callback (Rx event notification) is available for Non_Blocking modes of enhanced + reception services: + (+) HAL_UARTEx_RxEventCallback() + + (#) In Non-Blocking mode transfers, possible errors are split into 2 categories. + Errors are handled as follows : + (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but error severity is + to be evaluated by user : this concerns Frame Error, Parity Error or Noise Error + in Interrupt mode reception . + Received character is then retrieved and stored in Rx buffer, Error code is set to allow user + to identify error type, and HAL_UART_ErrorCallback() user callback is executed. + Transfer is kept ongoing on UART side. + If user wants to abort it, Abort services should be called by user. + (+) Error is considered as Blocking : Transfer could not be completed properly and is aborted. + This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode. + Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() + user callback is executed. + + -@- In the Half duplex communication, it is forbidden to run the transmit + and receive process in parallel, the UART state HAL_UART_STATE_BUSY_TX_RX can't be useful. + +@endverbatim + * @{ + */ + +/** + * @brief Send an amount of data in blocking mode. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the sent data is handled as a set of u16. In this case, Size must indicate the number + * of u16 provided through pData. + * @note When FIFO mode is enabled, writing a data in the TDR register adds one + * data to the TXFIFO. Write operations to the TDR register are performed + * when TXFNF flag is set. From hardware perspective, TXFNF flag and + * TXE are mapped on the same bit-field. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be sent. + * @param Timeout Timeout duration. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + const uint8_t *pdata8bits; + const uint16_t *pdata16bits; + uint32_t tickstart; + + /* Check that a Tx process is not already ongoing */ + if (huart->gState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->gState = HAL_UART_STATE_BUSY_TX; + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + + huart->TxXferSize = Size; + huart->TxXferCount = Size; + + /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + pdata8bits = NULL; + pdata16bits = (const uint16_t *) pData; + } + else + { + pdata8bits = pData; + pdata16bits = NULL; + } + + while (huart->TxXferCount > 0U) + { + if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) + { + + huart->gState = HAL_UART_STATE_READY; + + return HAL_TIMEOUT; + } + if (pdata8bits == NULL) + { + huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); + pdata16bits++; + } + else + { + huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); + pdata8bits++; + } + huart->TxXferCount--; + } + + if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) + { + huart->gState = HAL_UART_STATE_READY; + + return HAL_TIMEOUT; + } + + /* At end of Tx process, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive an amount of data in blocking mode. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the received data is handled as a set of u16. In this case, Size must indicate the number + * of u16 available through pData. + * @note When FIFO mode is enabled, the RXFNE flag is set as long as the RXFIFO + * is not empty. Read operations from the RDR register are performed when + * RXFNE flag is set. From hardware perspective, RXFNE flag and + * RXNE are mapped on the same bit-field. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @param Timeout Timeout duration. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + uint8_t *pdata8bits; + uint16_t *pdata16bits; + uint16_t uhMask; + uint32_t tickstart; + + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->RxState = HAL_UART_STATE_BUSY_RX; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + + huart->RxXferSize = Size; + huart->RxXferCount = Size; + + /* Computation of UART mask to apply to RDR register */ + UART_MASK_COMPUTATION(huart); + uhMask = huart->Mask; + + /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + pdata8bits = NULL; + pdata16bits = (uint16_t *) pData; + } + else + { + pdata8bits = pData; + pdata16bits = NULL; + } + + /* as long as data have to be received */ + while (huart->RxXferCount > 0U) + { + if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) + { + huart->RxState = HAL_UART_STATE_READY; + + return HAL_TIMEOUT; + } + if (pdata8bits == NULL) + { + *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); + pdata16bits++; + } + else + { + *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); + pdata8bits++; + } + huart->RxXferCount--; + } + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Send an amount of data in interrupt mode. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the sent data is handled as a set of u16. In this case, Size must indicate the number + * of u16 provided through pData. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be sent. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size) +{ + /* Check that a Tx process is not already ongoing */ + if (huart->gState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + huart->pTxBuffPtr = pData; + huart->TxXferSize = Size; + huart->TxXferCount = Size; + huart->TxISR = NULL; + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->gState = HAL_UART_STATE_BUSY_TX; + + /* Configure Tx interrupt processing */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + /* Set the Tx ISR function pointer according to the data word length */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + huart->TxISR = UART_TxISR_16BIT_FIFOEN; + } + else + { + huart->TxISR = UART_TxISR_8BIT_FIFOEN; + } + + /* Enable the TX FIFO threshold interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + } + else + { + /* Set the Tx ISR function pointer according to the data word length */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + huart->TxISR = UART_TxISR_16BIT; + } + else + { + huart->TxISR = UART_TxISR_8BIT; + } + + /* Enable the Transmit Data Register Empty interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive an amount of data in interrupt mode. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the received data is handled as a set of u16. In this case, Size must indicate the number + * of u16 available through pData. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Set Reception type to Standard reception */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + } + } + + return (UART_Start_Receive_IT(huart, pData, Size)); + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Send an amount of data in DMA mode. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the sent data is handled as a set of u16. In this case, Size must indicate the number + * of u16 provided through pData. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be sent. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size) +{ + /* Check that a Tx process is not already ongoing */ + if (huart->gState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + huart->pTxBuffPtr = pData; + huart->TxXferSize = Size; + huart->TxXferCount = Size; + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->gState = HAL_UART_STATE_BUSY_TX; + + if (huart->hdmatx != NULL) + { + /* Set the UART DMA transfer complete callback */ + huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; + + /* Set the UART DMA Half transfer complete callback */ + huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; + + /* Set the DMA error callback */ + huart->hdmatx->XferErrorCallback = UART_DMAError; + + /* Set the DMA abort callback */ + huart->hdmatx->XferAbortCallback = NULL; + + /* Enable the UART transmit DMA channel */ + if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, Size) != HAL_OK) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + /* Restore huart->gState to ready */ + huart->gState = HAL_UART_STATE_READY; + + return HAL_ERROR; + } + } + /* Clear the TC flag in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); + + /* Enable the DMA transfer for transmit request by setting the DMAT bit + in the UART CR3 register */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive an amount of data in DMA mode. + * @note When the UART parity is enabled (PCE = 1), the received data contain + * the parity bit (MSB position). + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the received data is handled as a set of u16. In this case, Size must indicate the number + * of u16 available through pData. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Set Reception type to Standard reception */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + } + } + + return (UART_Start_Receive_DMA(huart, pData, Size)); + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Pause the DMA Transfer. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) +{ + const HAL_UART_StateTypeDef gstate = huart->gState; + const HAL_UART_StateTypeDef rxstate = huart->RxState; + + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && + (gstate == HAL_UART_STATE_BUSY_TX)) + { + /* Disable the UART DMA Tx request */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + } + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && + (rxstate == HAL_UART_STATE_BUSY_RX)) + { + /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Disable the UART DMA Rx request */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + } + + return HAL_OK; +} + +/** + * @brief Resume the DMA Transfer. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) +{ + if (huart->gState == HAL_UART_STATE_BUSY_TX) + { + /* Enable the UART DMA Tx request */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); + } + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + { + /* Clear the Overrun flag before resuming the Rx transfer */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); + + /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */ + if (huart->Init.Parity != UART_PARITY_NONE) + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); + } + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Enable the UART DMA Rx request */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); + } + + return HAL_OK; +} + +/** + * @brief Stop the DMA Transfer. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) +{ + /* The Lock is not implemented on this API to allow the user application + to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() / + HAL_UART_TxHalfCpltCallback / HAL_UART_RxHalfCpltCallback: + indeed, when HAL_DMA_Abort() API is called, the DMA TX/RX Transfer or Half Transfer complete + interrupt is generated if the DMA transfer interruption occurs at the middle or at the end of + the stream and the corresponding call back is executed. */ + + const HAL_UART_StateTypeDef gstate = huart->gState; + const HAL_UART_StateTypeDef rxstate = huart->RxState; + + /* Stop UART DMA Tx request if ongoing */ + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && + (gstate == HAL_UART_STATE_BUSY_TX)) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + /* Abort the UART DMA Tx channel */ + if (huart->hdmatx != NULL) + { + if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) + { + if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + return HAL_TIMEOUT; + } + } + } + + UART_EndTxTransfer(huart); + } + + /* Stop UART DMA Rx request if ongoing */ + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && + (rxstate == HAL_UART_STATE_BUSY_RX)) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* Abort the UART DMA Rx channel */ + if (huart->hdmarx != NULL) + { + if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) + { + if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + return HAL_TIMEOUT; + } + } + } + + UART_EndRxTransfer(huart); + } + + return HAL_OK; +} + +/** + * @brief Abort ongoing transfers (blocking mode). + * @param huart UART handle. + * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable UART Interrupts (Tx and Rx) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) + * - Set handle State to READY + * @note This procedure is executed in blocking mode : when exiting function, Abort is considered as completed. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) +{ + /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | + USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); + + /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); + } + + /* Abort the UART DMA Tx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) + { + /* Disable the UART DMA Tx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */ + if (huart->hdmatx != NULL) + { + /* Set the UART DMA Abort callback to Null. + No call back execution at end of DMA abort procedure */ + huart->hdmatx->XferAbortCallback = NULL; + + if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) + { + if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + return HAL_TIMEOUT; + } + } + } + } + + /* Abort the UART DMA Rx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + /* Disable the UART DMA Rx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */ + if (huart->hdmarx != NULL) + { + /* Set the UART DMA Abort callback to Null. + No call back execution at end of DMA abort procedure */ + huart->hdmarx->XferAbortCallback = NULL; + + if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) + { + if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + return HAL_TIMEOUT; + } + } + } + } + + /* Reset Tx and Rx transfer counters */ + huart->TxXferCount = 0U; + huart->RxXferCount = 0U; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Flush the whole TX FIFO (if needed) */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); + } + + /* Discard the received data */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + + /* Restore huart->gState and huart->RxState to Ready */ + huart->gState = HAL_UART_STATE_READY; + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + huart->ErrorCode = HAL_UART_ERROR_NONE; + + return HAL_OK; +} + +/** + * @brief Abort ongoing Transmit transfer (blocking mode). + * @param huart UART handle. + * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable UART Interrupts (Tx) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) + * - Set handle State to READY + * @note This procedure is executed in blocking mode : when exiting function, Abort is considered as completed. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) +{ + /* Disable TCIE, TXEIE and TXFTIE interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + + /* Abort the UART DMA Tx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) + { + /* Disable the UART DMA Tx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */ + if (huart->hdmatx != NULL) + { + /* Set the UART DMA Abort callback to Null. + No call back execution at end of DMA abort procedure */ + huart->hdmatx->XferAbortCallback = NULL; + + if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) + { + if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + return HAL_TIMEOUT; + } + } + } + } + + /* Reset Tx transfer counter */ + huart->TxXferCount = 0U; + + /* Flush the whole TX FIFO (if needed) */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); + } + + /* Restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + + return HAL_OK; +} + +/** + * @brief Abort ongoing Receive transfer (blocking mode). + * @param huart UART handle. + * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable UART Interrupts (Rx) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) + * - Set handle State to READY + * @note This procedure is executed in blocking mode : when exiting function, Abort is considered as completed. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) +{ + /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + + /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); + } + + /* Abort the UART DMA Rx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + /* Disable the UART DMA Rx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */ + if (huart->hdmarx != NULL) + { + /* Set the UART DMA Abort callback to Null. + No call back execution at end of DMA abort procedure */ + huart->hdmarx->XferAbortCallback = NULL; + + if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) + { + if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + return HAL_TIMEOUT; + } + } + } + } + + /* Reset Rx transfer counter */ + huart->RxXferCount = 0U; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Discard the received data */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + + /* Restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + return HAL_OK; +} + +/** + * @brief Abort ongoing transfers (Interrupt mode). + * @param huart UART handle. + * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable UART Interrupts (Tx and Rx) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) + * - Set handle State to READY + * - At abort completion, call user abort complete callback + * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be + * considered as completed only when user abort complete callback is executed (not when exiting function). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) +{ + uint32_t abortcplt = 1U; + + /* Disable interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE | + USART_CR1_TXEIE_TXFNFIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); + + /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); + } + + /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks should be initialised + before any call to DMA Abort functions */ + /* DMA Tx Handle is valid */ + if (huart->hdmatx != NULL) + { + /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. + Otherwise, set it to NULL */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) + { + huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; + } + else + { + huart->hdmatx->XferAbortCallback = NULL; + } + } + /* DMA Rx Handle is valid */ + if (huart->hdmarx != NULL) + { + /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. + Otherwise, set it to NULL */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; + } + else + { + huart->hdmarx->XferAbortCallback = NULL; + } + } + + /* Abort the UART DMA Tx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) + { + /* Disable DMA Tx at UART level */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ + if (huart->hdmatx != NULL) + { + /* UART Tx DMA Abort callback has already been initialised : + will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) + { + huart->hdmatx->XferAbortCallback = NULL; + } + else + { + abortcplt = 0U; + } + } + } + + /* Abort the UART DMA Rx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + /* Disable the UART DMA Rx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ + if (huart->hdmarx != NULL) + { + /* UART Rx DMA Abort callback has already been initialised : + will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) + { + huart->hdmarx->XferAbortCallback = NULL; + abortcplt = 1U; + } + else + { + abortcplt = 0U; + } + } + } + + /* if no DMA abort complete callback execution is required => call user Abort Complete callback */ + if (abortcplt == 1U) + { + /* Reset Tx and Rx transfer counters */ + huart->TxXferCount = 0U; + huart->RxXferCount = 0U; + + /* Clear ISR function pointers */ + huart->RxISR = NULL; + huart->TxISR = NULL; + + /* Reset errorCode */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Flush the whole TX FIFO (if needed) */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); + } + + /* Discard the received data */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + + /* Restore huart->gState and huart->RxState to Ready */ + huart->gState = HAL_UART_STATE_READY; + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* As no DMA to be aborted, call directly user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort complete callback */ + huart->AbortCpltCallback(huart); +#else + /* Call legacy weak Abort complete callback */ + HAL_UART_AbortCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + + return HAL_OK; +} + +/** + * @brief Abort ongoing Transmit transfer (Interrupt mode). + * @param huart UART handle. + * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable UART Interrupts (Tx) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) + * - Set handle State to READY + * - At abort completion, call user abort complete callback + * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be + * considered as completed only when user abort complete callback is executed (not when exiting function). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) +{ + /* Disable interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + + /* Abort the UART DMA Tx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) + { + /* Disable the UART DMA Tx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ + if (huart->hdmatx != NULL) + { + /* Set the UART DMA Abort callback : + will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ + huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) + { + /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */ + huart->hdmatx->XferAbortCallback(huart->hdmatx); + } + } + else + { + /* Reset Tx transfer counter */ + huart->TxXferCount = 0U; + + /* Clear TxISR function pointers */ + huart->TxISR = NULL; + + /* Restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + + /* As no DMA to be aborted, call directly user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort Transmit Complete Callback */ + huart->AbortTransmitCpltCallback(huart); +#else + /* Call legacy weak Abort Transmit Complete Callback */ + HAL_UART_AbortTransmitCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + } + else + { + /* Reset Tx transfer counter */ + huart->TxXferCount = 0U; + + /* Clear TxISR function pointers */ + huart->TxISR = NULL; + + /* Flush the whole TX FIFO (if needed) */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); + } + + /* Restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + + /* As no DMA to be aborted, call directly user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort Transmit Complete Callback */ + huart->AbortTransmitCpltCallback(huart); +#else + /* Call legacy weak Abort Transmit Complete Callback */ + HAL_UART_AbortTransmitCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + + return HAL_OK; +} + +/** + * @brief Abort ongoing Receive transfer (Interrupt mode). + * @param huart UART handle. + * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable UART Interrupts (Rx) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) + * - Set handle State to READY + * - At abort completion, call user abort complete callback + * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be + * considered as completed only when user abort complete callback is executed (not when exiting function). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) +{ + /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + + /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); + } + + /* Abort the UART DMA Rx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + /* Disable the UART DMA Rx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ + if (huart->hdmarx != NULL) + { + /* Set the UART DMA Abort callback : + will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ + huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) + { + /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ + huart->hdmarx->XferAbortCallback(huart->hdmarx); + } + } + else + { + /* Reset Rx transfer counter */ + huart->RxXferCount = 0U; + + /* Clear RxISR function pointer */ + huart->pRxBuffPtr = NULL; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Discard the received data */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + + /* Restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* As no DMA to be aborted, call directly user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort Receive Complete Callback */ + huart->AbortReceiveCpltCallback(huart); +#else + /* Call legacy weak Abort Receive Complete Callback */ + HAL_UART_AbortReceiveCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + } + else + { + /* Reset Rx transfer counter */ + huart->RxXferCount = 0U; + + /* Clear RxISR function pointer */ + huart->pRxBuffPtr = NULL; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* As no DMA to be aborted, call directly user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort Receive Complete Callback */ + huart->AbortReceiveCpltCallback(huart); +#else + /* Call legacy weak Abort Receive Complete Callback */ + HAL_UART_AbortReceiveCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + + return HAL_OK; +} + +/** + * @brief Handle UART interrupt request. + * @param huart UART handle. + * @retval None + */ +void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) +{ + uint32_t isrflags = READ_REG(huart->Instance->ISR); + uint32_t cr1its = READ_REG(huart->Instance->CR1); + uint32_t cr3its = READ_REG(huart->Instance->CR3); + + uint32_t errorflags; + uint32_t errorcode; + + /* If no error occurs */ + errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF)); + if (errorflags == 0U) + { + /* UART in mode Receiver ---------------------------------------------------*/ + if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + || ((cr3its & USART_CR3_RXFTIE) != 0U))) + { + if (huart->RxISR != NULL) + { + huart->RxISR(huart); + } + return; + } + } + + /* If some errors occur */ + if ((errorflags != 0U) + && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U) + || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + + huart->ErrorCode |= HAL_UART_ERROR_PE; + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + + huart->ErrorCode |= HAL_UART_ERROR_FE; + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + + huart->ErrorCode |= HAL_UART_ERROR_NE; + } + + /* UART Over-Run interrupt occurred -----------------------------------------*/ + if (((isrflags & USART_ISR_ORE) != 0U) + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || + ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); + + huart->ErrorCode |= HAL_UART_ERROR_ORE; + } + + /* UART Receiver Timeout interrupt occurred ---------------------------------*/ + if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); + + huart->ErrorCode |= HAL_UART_ERROR_RTO; + } + + /* Call UART Error Call back function if need be ----------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + { + /* UART in mode Receiver --------------------------------------------------*/ + if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) + && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + || ((cr3its & USART_CR3_RXFTIE) != 0U))) + { + if (huart->RxISR != NULL) + { + huart->RxISR(huart); + } + } + + /* If Error is to be considered as blocking : + - Receiver Timeout error in Reception + - Overrun error in Reception + - any error occurs in DMA mode reception + */ + errorcode = huart->ErrorCode; + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) + { + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ + UART_EndRxTransfer(huart); + + /* Abort the UART DMA Rx channel if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + /* Disable the UART DMA Rx request if enabled */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* Abort the UART DMA Rx channel */ + if (huart->hdmarx != NULL) + { + /* Set the UART DMA Abort callback : + will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ + huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) + { + /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ + huart->hdmarx->XferAbortCallback(huart->hdmarx); + } + } + else + { + /* Call user error callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + + } + } + else + { + /* Call user error callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + } + else + { + /* Non Blocking error : transfer could go on. + Error is notified to user through user error callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + } + } + return; + + } /* End if some error occurs */ + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + && ((isrflags & USART_ISR_IDLE) != 0U) + && ((cr1its & USART_ISR_IDLE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + + /* Check if DMA mode is enabled in UART */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + { + /* DMA mode enabled */ + /* Check received length : If all expected data are received, do nothing, + (DMA cplt callback will be called). + Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ + uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); + if ((nb_remaining_rx_data > 0U) + && (nb_remaining_rx_data < huart->RxXferSize)) + { + /* Reception is not complete */ + huart->RxXferCount = nb_remaining_rx_data; + + /* In Normal mode, end DMA xfer and HAL UART Rx process*/ + if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) + { + /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Disable the DMA transfer for the receiver request by resetting the DMAR bit + in the UART CR3 register */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + + /* Last bytes received, so no need as the abort is immediate */ + (void)HAL_DMA_Abort(huart->hdmarx); + } + + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Idle Event */ + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + else + { + /* If DMA is in Circular mode, Idle event is to be reported to user + even if occurring after a Transfer Complete event from DMA */ + if (nb_remaining_rx_data == huart->RxXferSize) + { + if (HAL_IS_BIT_SET(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) + { + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Idle Event */ + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + } + } + return; + } + else + { + /* DMA mode not enabled */ + /* Check received length : If all expected data are received, do nothing. + Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ + uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; + if ((huart->RxXferCount > 0U) + && (nb_rx_data > 0U)) + { + /* Disable the UART Parity Error Interrupt and RXNE interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + + /* Disable the UART Error Interrupt:(Frame error, noise error, overrun error) and RX FIFO Threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Idle Event */ + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxEventCallback(huart, nb_rx_data); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, nb_rx_data); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + return; + } + } + + /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ + if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); + + /* UART Rx state is not reset as a reception process might be ongoing. + If UART handle state fields need to be reset to READY, this could be done in Wakeup callback */ + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Wakeup Callback */ + huart->WakeupCallback(huart); +#else + /* Call legacy weak Wakeup Callback */ + HAL_UARTEx_WakeupCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + return; + } + + /* UART in mode Transmitter ------------------------------------------------*/ + if (((isrflags & USART_ISR_TXE_TXFNF) != 0U) + && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) + || ((cr3its & USART_CR3_TXFTIE) != 0U))) + { + if (huart->TxISR != NULL) + { + huart->TxISR(huart); + } + return; + } + + /* UART in mode Transmitter (transmission end) -----------------------------*/ + if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) + { + UART_EndTransmit_IT(huart); + return; + } + + /* UART TX Fifo Empty occurred ----------------------------------------------*/ + if (((isrflags & USART_ISR_TXFE) != 0U) && ((cr1its & USART_CR1_TXFEIE) != 0U)) + { +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Tx Fifo Empty Callback */ + huart->TxFifoEmptyCallback(huart); +#else + /* Call legacy weak Tx Fifo Empty Callback */ + HAL_UARTEx_TxFifoEmptyCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + return; + } + + /* UART RX Fifo Full occurred ----------------------------------------------*/ + if (((isrflags & USART_ISR_RXFF) != 0U) && ((cr1its & USART_CR1_RXFFIE) != 0U)) + { +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Rx Fifo Full Callback */ + huart->RxFifoFullCallback(huart); +#else + /* Call legacy weak Rx Fifo Full Callback */ + HAL_UARTEx_RxFifoFullCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + return; + } +} + +/** + * @brief Tx Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_TxCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief Tx Half Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE: This function should not be modified, when the callback is needed, + the HAL_UART_TxHalfCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief Rx Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_RxCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief Rx Half Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE: This function should not be modified, when the callback is needed, + the HAL_UART_RxHalfCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief UART error callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_ErrorCallback can be implemented in the user file. + */ +} + +/** + * @brief UART Abort Complete callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_AbortCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief UART Abort Complete callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief UART Abort Receive Complete callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file. + */ +} + +/** + * @brief Reception Event Callback (Rx event notification called after use of advanced reception service). + * @param huart UART handle + * @param Size Number of data available in application reception buffer (indicates a position in + * reception buffer until which, data are available) + * @retval None + */ +__weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + UNUSED(Size); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_RxEventCallback can be implemented in the user file. + */ +} + +/** + * @} + */ + +/** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions + * @brief UART control functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the UART. + (+) HAL_UART_ReceiverTimeout_Config() API allows to configure the receiver timeout value on the fly + (+) HAL_UART_EnableReceiverTimeout() API enables the receiver timeout feature + (+) HAL_UART_DisableReceiverTimeout() API disables the receiver timeout feature + (+) HAL_MultiProcessor_EnableMuteMode() API enables mute mode + (+) HAL_MultiProcessor_DisableMuteMode() API disables mute mode + (+) HAL_MultiProcessor_EnterMuteMode() API enters mute mode + (+) UART_SetConfig() API configures the UART peripheral + (+) UART_AdvFeatureConfig() API optionally configures the UART advanced features + (+) UART_CheckIdleState() API ensures that TEACK and/or REACK are set after initialization + (+) HAL_HalfDuplex_EnableTransmitter() API disables receiver and enables transmitter + (+) HAL_HalfDuplex_EnableReceiver() API disables transmitter and enables receiver + (+) HAL_LIN_SendBreak() API transmits the break characters +@endverbatim + * @{ + */ + +/** + * @brief Update on the fly the receiver timeout value in RTOR register. + * @param huart Pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART module. + * @param TimeoutValue receiver timeout value in number of baud blocks. The timeout + * value must be less or equal to 0x0FFFFFFFF. + * @retval None + */ +void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) +{ + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + assert_param(IS_UART_RECEIVER_TIMEOUT_VALUE(TimeoutValue)); + MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); + } +} + +/** + * @brief Enable the UART receiver timeout feature. + * @param huart Pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) +{ + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + if (huart->gState == HAL_UART_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Set the USART RTOEN bit */ + SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); + + huart->gState = HAL_UART_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Disable the UART receiver timeout feature. + * @param huart Pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) +{ + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + if (huart->gState == HAL_UART_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Clear the USART RTOEN bit */ + CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); + + huart->gState = HAL_UART_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Enable UART in mute mode (does not mean UART enters mute mode; + * to enter mute mode, HAL_MultiProcessor_EnterMuteMode() API must be called). + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) +{ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Enable USART mute mode by setting the MME bit in the CR1 register */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); + + huart->gState = HAL_UART_STATE_READY; + + return (UART_CheckIdleState(huart)); +} + +/** + * @brief Disable UART mute mode (does not mean the UART actually exits mute mode + * as it may not have been in mute mode at this very moment). + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) +{ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Disable USART mute mode by clearing the MME bit in the CR1 register */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); + + huart->gState = HAL_UART_STATE_READY; + + return (UART_CheckIdleState(huart)); +} + +/** + * @brief Enter UART mute mode (means UART actually enters mute mode). + * @note To exit from mute mode, HAL_MultiProcessor_DisableMuteMode() API must be called. + * @param huart UART handle. + * @retval None + */ +void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) +{ + __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); +} + +/** + * @brief Enable the UART transmitter and disable the UART receiver. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) +{ + __HAL_LOCK(huart); + huart->gState = HAL_UART_STATE_BUSY; + + /* Clear TE and RE bits */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); + + /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); + + huart->gState = HAL_UART_STATE_READY; + + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Enable the UART receiver and disable the UART transmitter. + * @param huart UART handle. + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) +{ + __HAL_LOCK(huart); + huart->gState = HAL_UART_STATE_BUSY; + + /* Clear TE and RE bits */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); + + /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); + + huart->gState = HAL_UART_STATE_READY; + + __HAL_UNLOCK(huart); + + return HAL_OK; +} + + +/** + * @brief Transmit break characters. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) +{ + /* Check the parameters */ + assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); + + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Send break characters */ + __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); + + huart->gState = HAL_UART_STATE_READY; + + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup UART_Exported_Functions_Group4 Peripheral State and Error functions + * @brief UART Peripheral State functions + * +@verbatim + ============================================================================== + ##### Peripheral State and Error functions ##### + ============================================================================== + [..] + This subsection provides functions allowing to : + (+) Return the UART handle state. + (+) Return the UART handle error code + +@endverbatim + * @{ + */ + +/** + * @brief Return the UART handle state. + * @param huart Pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART. + * @retval HAL state + */ +HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) +{ + uint32_t temp1; + uint32_t temp2; + temp1 = huart->gState; + temp2 = huart->RxState; + + return (HAL_UART_StateTypeDef)(temp1 | temp2); +} + +/** + * @brief Return the UART handle error code. + * @param huart Pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART. + * @retval UART Error Code + */ +uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) +{ + return huart->ErrorCode; +} +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup UART_Private_Functions UART Private Functions + * @{ + */ + +/** + * @brief Initialize the callbacks to their default values. + * @param huart UART handle. + * @retval none + */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) +{ + /* Init the UART Callback settings */ + huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback */ + huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallback */ + huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback */ + huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallback */ + huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallback */ + huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmitCpltCallback */ + huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiveCpltCallback */ + huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallback */ + huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCallback */ + huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyCallback */ + huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallback */ + +} +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + +/** + * @brief Configure the UART peripheral. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) +{ + uint32_t tmpreg; + uint16_t brrtemp; + UART_ClockSourceTypeDef clocksource; + uint32_t usartdiv; + HAL_StatusTypeDef ret = HAL_OK; + uint32_t lpuart_ker_ck_pres; + uint32_t pclk; + + /* Check the parameters */ + assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); + assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); + if (UART_INSTANCE_LOWPOWER(huart)) + { + assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); + } + else + { + assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); + assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); + } + + assert_param(IS_UART_PARITY(huart->Init.Parity)); + assert_param(IS_UART_MODE(huart->Init.Mode)); + assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); + assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); + assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); + + /*-------------------------- USART CR1 Configuration -----------------------*/ + /* Clear M, PCE, PS, TE, RE and OVER8 bits and configure + * the UART Word Length, Parity, Mode and oversampling: + * set the M bits according to huart->Init.WordLength value + * set PCE and PS bits according to huart->Init.Parity value + * set TE and RE bits according to huart->Init.Mode value + * set OVER8 bit according to huart->Init.OverSampling value */ + tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; + MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + + /*-------------------------- USART CR2 Configuration -----------------------*/ + /* Configure the UART Stop Bits: Set STOP[13:12] bits according + * to huart->Init.StopBits value */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); + + /*-------------------------- USART CR3 Configuration -----------------------*/ + /* Configure + * - UART HardWare Flow Control: set CTSE and RTSE bits according + * to huart->Init.HwFlowCtl value + * - one-bit sampling method versus three samples' majority rule according + * to huart->Init.OneBitSampling (not applicable to LPUART) */ + tmpreg = (uint32_t)huart->Init.HwFlowCtl; + + if (!(UART_INSTANCE_LOWPOWER(huart))) + { + tmpreg |= huart->Init.OneBitSampling; + } + MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); + + /*-------------------------- USART PRESC Configuration -----------------------*/ + /* Configure + * - UART Clock Prescaler : set PRESCALER according to huart->Init.ClockPrescaler value */ + MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); + + /*-------------------------- USART BRR Configuration -----------------------*/ + UART_GETCLOCKSOURCE(huart, clocksource); + + /* Check LPUART instance */ + if (UART_INSTANCE_LOWPOWER(huart)) + { + /* Retrieve frequency clock */ + switch (clocksource) + { + case UART_CLOCKSOURCE_PCLK1: + pclk = HAL_RCC_GetPCLK1Freq(); + break; + case UART_CLOCKSOURCE_HSI: + pclk = (uint32_t) HSI_VALUE; + break; + case UART_CLOCKSOURCE_SYSCLK: + pclk = HAL_RCC_GetSysClockFreq(); + break; + case UART_CLOCKSOURCE_LSE: + pclk = (uint32_t) LSE_VALUE; + break; + default: + pclk = 0U; + ret = HAL_ERROR; + break; + } + + /* If proper clock source reported */ + if (pclk != 0U) + { + /* Compute clock after Prescaler */ + lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); + + /* Ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */ + if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || + (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + { + ret = HAL_ERROR; + } + else + { + /* Check computed UsartDiv value is in allocated range + (it is forbidden to write values lower than 0x300 in the LPUART_BRR register) */ + usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); + if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) + { + huart->Instance->BRR = usartdiv; + } + else + { + ret = HAL_ERROR; + } + } /* if ( (lpuart_ker_ck_pres < (3 * huart->Init.BaudRate) ) || + (lpuart_ker_ck_pres > (4096 * huart->Init.BaudRate) )) */ + } /* if (pclk != 0) */ + } + /* Check UART Over Sampling to set Baud Rate Register */ + else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) + { + switch (clocksource) + { + case UART_CLOCKSOURCE_PCLK1: + pclk = HAL_RCC_GetPCLK1Freq(); + break; + case UART_CLOCKSOURCE_PCLK2: + pclk = HAL_RCC_GetPCLK2Freq(); + break; + case UART_CLOCKSOURCE_HSI: + pclk = (uint32_t) HSI_VALUE; + break; + case UART_CLOCKSOURCE_SYSCLK: + pclk = HAL_RCC_GetSysClockFreq(); + break; + case UART_CLOCKSOURCE_LSE: + pclk = (uint32_t) LSE_VALUE; + break; + default: + pclk = 0U; + ret = HAL_ERROR; + break; + } + + /* USARTDIV must be greater than or equal to 0d16 */ + if (pclk != 0U) + { + usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); + if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + { + brrtemp = (uint16_t)(usartdiv & 0xFFF0U); + brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + huart->Instance->BRR = brrtemp; + } + else + { + ret = HAL_ERROR; + } + } + } + else + { + switch (clocksource) + { + case UART_CLOCKSOURCE_PCLK1: + pclk = HAL_RCC_GetPCLK1Freq(); + break; + case UART_CLOCKSOURCE_PCLK2: + pclk = HAL_RCC_GetPCLK2Freq(); + break; + case UART_CLOCKSOURCE_HSI: + pclk = (uint32_t) HSI_VALUE; + break; + case UART_CLOCKSOURCE_SYSCLK: + pclk = HAL_RCC_GetSysClockFreq(); + break; + case UART_CLOCKSOURCE_LSE: + pclk = (uint32_t) LSE_VALUE; + break; + default: + pclk = 0U; + ret = HAL_ERROR; + break; + } + + if (pclk != 0U) + { + /* USARTDIV must be greater than or equal to 0d16 */ + usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); + if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + { + huart->Instance->BRR = (uint16_t)usartdiv; + } + else + { + ret = HAL_ERROR; + } + } + } + + /* Initialize the number of data to process during RX/TX ISR execution */ + huart->NbTxDataToProcess = 1; + huart->NbRxDataToProcess = 1; + + /* Clear ISR function pointers */ + huart->RxISR = NULL; + huart->TxISR = NULL; + + return ret; +} + +/** + * @brief Configure the UART peripheral advanced features. + * @param huart UART handle. + * @retval None + */ +void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) +{ + /* Check whether the set of advanced features to configure is properly set */ + assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); + + /* if required, configure RX/TX pins swap */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) + { + assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); + } + + /* if required, configure TX pin active level inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) + { + assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); + } + + /* if required, configure RX pin active level inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) + { + assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); + } + + /* if required, configure data inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) + { + assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); + } + + /* if required, configure RX overrun detection disabling */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) + { + assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); + MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); + } + + /* if required, configure DMA disabling on reception error */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) + { + assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); + MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); + } + + /* if required, configure auto Baud rate detection scheme */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) + { + assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); + assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); + /* set auto Baudrate detection parameters if detection is enabled */ + if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) + { + assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); + } + } + + /* if required, configure MSB first on communication line */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) + { + assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); + } +} + +/** + * @brief Check the UART Idle State. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) +{ + uint32_t tickstart; + + /* Initialize the UART ErrorCode */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + + /* Check if the Transmitter is enabled */ + if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) + { + /* Wait until TEACK flag is set */ + if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) + { + /* Disable TXE interrupt for the interrupt process */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); + + huart->gState = HAL_UART_STATE_READY; + + __HAL_UNLOCK(huart); + + /* Timeout occurred */ + return HAL_TIMEOUT; + } + } + + /* Check if the Receiver is enabled */ + if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) + { + /* Wait until REACK flag is set */ + if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) + { + /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) + interrupts for the interrupt process */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + + huart->RxState = HAL_UART_STATE_READY; + + __HAL_UNLOCK(huart); + + /* Timeout occurred */ + return HAL_TIMEOUT; + } + } + + /* Initialize the UART State */ + huart->gState = HAL_UART_STATE_READY; + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + huart->RxEventType = HAL_UART_RXEVENT_TC; + + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief This function handles UART Communication Timeout. It waits + * until a flag is no longer in the specified status. + * @param huart UART handle. + * @param Flag Specifies the UART flag to check + * @param Status The actual Flag status (SET or RESET) + * @param Tickstart Tick start value + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, + uint32_t Tickstart, uint32_t Timeout) +{ + /* Wait until flag is set */ + while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) + { + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + + return HAL_TIMEOUT; + } + + if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UART_FLAG_TC)) + { + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) + { + /* Clear Overrun Error flag*/ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); + + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts if ongoing */ + UART_EndRxTransfer(huart); + + huart->ErrorCode = HAL_UART_ERROR_ORE; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_ERROR; + } + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) + { + /* Clear Receiver Timeout flag*/ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); + + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts if ongoing */ + UART_EndRxTransfer(huart); + + huart->ErrorCode = HAL_UART_ERROR_RTO; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_TIMEOUT; + } + } + } + } + return HAL_OK; +} + +/** + * @brief Start Receive operation in interrupt mode. + * @note This function could be called by all HAL UART API providing reception in Interrupt mode. + * @note When calling this function, parameters validity is considered as already checked, + * i.e. Rx State, buffer address, ... + * UART Handle is assumed as Locked. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + huart->pRxBuffPtr = pData; + huart->RxXferSize = Size; + huart->RxXferCount = Size; + huart->RxISR = NULL; + + /* Computation of UART mask to apply to RDR register */ + UART_MASK_COMPUTATION(huart); + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->RxState = HAL_UART_STATE_BUSY_RX; + + /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Configure Rx interrupt processing */ + if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) + { + /* Set the Rx ISR function pointer according to the data word length */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + huart->RxISR = UART_RxISR_16BIT_FIFOEN; + } + else + { + huart->RxISR = UART_RxISR_8BIT_FIFOEN; + } + + /* Enable the UART Parity Error interrupt and RX FIFO Threshold interrupt */ + if (huart->Init.Parity != UART_PARITY_NONE) + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); + } + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); + } + else + { + /* Set the Rx ISR function pointer according to the data word length */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + huart->RxISR = UART_RxISR_16BIT; + } + else + { + huart->RxISR = UART_RxISR_8BIT; + } + + /* Enable the UART Parity Error interrupt and Data Register Not Empty interrupt */ + if (huart->Init.Parity != UART_PARITY_NONE) + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); + } + else + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); + } + } + return HAL_OK; +} + +/** + * @brief Start Receive operation in DMA mode. + * @note This function could be called by all HAL UART API providing reception in DMA mode. + * @note When calling this function, parameters validity is considered as already checked, + * i.e. Rx State, buffer address, ... + * UART Handle is assumed as Locked. + * @param huart UART handle. + * @param pData Pointer to data buffer (u8 or u16 data elements). + * @param Size Amount of data elements (u8 or u16) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + huart->pRxBuffPtr = pData; + huart->RxXferSize = Size; + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->RxState = HAL_UART_STATE_BUSY_RX; + + if (huart->hdmarx != NULL) + { + /* Set the UART DMA transfer complete callback */ + huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; + + /* Set the UART DMA Half transfer complete callback */ + huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; + + /* Set the DMA error callback */ + huart->hdmarx->XferErrorCallback = UART_DMAError; + + /* Set the DMA abort callback */ + huart->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, Size) != HAL_OK) + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + + /* Restore huart->RxState to ready */ + huart->RxState = HAL_UART_STATE_READY; + + return HAL_ERROR; + } + } + + /* Enable the UART Parity Error Interrupt */ + if (huart->Init.Parity != UART_PARITY_NONE) + { + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); + } + + /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Enable the DMA transfer for the receiver request by setting the DMAR bit + in the UART CR3 register */ + ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + return HAL_OK; +} + + +/** + * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit completion). + * @param huart UART handle. + * @retval None + */ +static void UART_EndTxTransfer(UART_HandleTypeDef *huart) +{ + /* Disable TXEIE, TCIE, TXFT interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); + + /* At end of Tx process, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; +} + + +/** + * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). + * @param huart UART handle. + * @retval None + */ +static void UART_EndRxTransfer(UART_HandleTypeDef *huart) +{ + /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + + /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + } + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Reset RxIsr function pointer */ + huart->RxISR = NULL; +} + + +/** + * @brief DMA UART transmit process complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + /* DMA Normal mode */ + if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC)) + { + huart->TxXferCount = 0U; + + /* Disable the DMA transfer for transmit request by resetting the DMAT bit + in the UART CR3 register */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + + /* Enable the UART Transmit Complete Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); + } + /* DMA Circular mode */ + else + { +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Tx complete callback*/ + huart->TxCpltCallback(huart); +#else + /*Call legacy weak Tx complete callback*/ + HAL_UART_TxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } +} + +/** + * @brief DMA UART transmit process half complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Tx Half complete callback*/ + huart->TxHalfCpltCallback(huart); +#else + /*Call legacy weak Tx Half complete callback*/ + HAL_UART_TxHalfCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA UART receive process complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + /* DMA Normal mode */ + if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC)) + { + huart->RxXferCount = 0U; + + /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Disable the DMA transfer for the receiver request by resetting the DMAR bit + in the UART CR3 register */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + /* If Reception till IDLE event has been selected, Disable IDLE Interrupt */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + } + } + + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + + /* Check current reception Mode : + If Reception till IDLE event has been selected : use Rx Event callback */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + else + { + /* In other cases : use Rx Complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxCpltCallback(huart); +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } +} + +/** + * @brief DMA UART receive process half complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + /* Initialize type of RxEvent that correspond to RxEvent callback execution; + In this case, Rx Event type is Half Transfer */ + huart->RxEventType = HAL_UART_RXEVENT_HT; + + /* Check current reception Mode : + If Reception till IDLE event has been selected : use Rx Event callback */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize / 2U); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + else + { + /* In other cases : use Rx Half Complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Half complete callback*/ + huart->RxHalfCpltCallback(huart); +#else + /*Call legacy weak Rx Half complete callback*/ + HAL_UART_RxHalfCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } +} + +/** + * @brief DMA UART communication error callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAError(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + const HAL_UART_StateTypeDef gstate = huart->gState; + const HAL_UART_StateTypeDef rxstate = huart->RxState; + + /* Stop UART DMA Tx request if ongoing */ + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && + (gstate == HAL_UART_STATE_BUSY_TX)) + { + huart->TxXferCount = 0U; + UART_EndTxTransfer(huart); + } + + /* Stop UART DMA Rx request if ongoing */ + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && + (rxstate == HAL_UART_STATE_BUSY_RX)) + { + huart->RxXferCount = 0U; + UART_EndRxTransfer(huart); + } + + huart->ErrorCode |= HAL_UART_ERROR_DMA; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA UART communication abort callback, when initiated by HAL services on Error + * (To be called at end of DMA Abort procedure following error occurrence). + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + huart->RxXferCount = 0U; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA UART Tx communication abort callback, when initiated by user + * (To be called at end of DMA Tx Abort procedure following user abort request). + * @note When this callback is executed, User Abort complete call back is called only if no + * Abort still ongoing for Rx DMA Handle. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + huart->hdmatx->XferAbortCallback = NULL; + + /* Check if an Abort process is still ongoing */ + if (huart->hdmarx != NULL) + { + if (huart->hdmarx->XferAbortCallback != NULL) + { + return; + } + } + + /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ + huart->TxXferCount = 0U; + huart->RxXferCount = 0U; + + /* Reset errorCode */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Flush the whole TX FIFO (if needed) */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); + } + + /* Restore huart->gState and huart->RxState to Ready */ + huart->gState = HAL_UART_STATE_READY; + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Call user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort complete callback */ + huart->AbortCpltCallback(huart); +#else + /* Call legacy weak Abort complete callback */ + HAL_UART_AbortCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + + +/** + * @brief DMA UART Rx communication abort callback, when initiated by user + * (To be called at end of DMA Rx Abort procedure following user abort request). + * @note When this callback is executed, User Abort complete call back is called only if no + * Abort still ongoing for Tx DMA Handle. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + huart->hdmarx->XferAbortCallback = NULL; + + /* Check if an Abort process is still ongoing */ + if (huart->hdmatx != NULL) + { + if (huart->hdmatx->XferAbortCallback != NULL) + { + return; + } + } + + /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ + huart->TxXferCount = 0U; + huart->RxXferCount = 0U; + + /* Reset errorCode */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Discard the received data */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + + /* Restore huart->gState and huart->RxState to Ready */ + huart->gState = HAL_UART_STATE_READY; + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Call user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort complete callback */ + huart->AbortCpltCallback(huart); +#else + /* Call legacy weak Abort complete callback */ + HAL_UART_AbortCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + + +/** + * @brief DMA UART Tx communication abort callback, when initiated by user by a call to + * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer) + * (This callback is executed at end of DMA Tx Abort procedure following user abort request, + * and leads to user Tx Abort Complete callback execution). + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + + huart->TxXferCount = 0U; + + /* Flush the whole TX FIFO (if needed) */ + if (huart->FifoMode == UART_FIFOMODE_ENABLE) + { + __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); + } + + /* Restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + + /* Call user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort Transmit Complete Callback */ + huart->AbortTransmitCpltCallback(huart); +#else + /* Call legacy weak Abort Transmit Complete Callback */ + HAL_UART_AbortTransmitCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA UART Rx communication abort callback, when initiated by user by a call to + * HAL_UART_AbortReceive_IT API (Abort only Rx transfer) + * (This callback is executed at end of DMA Rx Abort procedure following user abort request, + * and leads to user Rx Abort Complete callback execution). + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma) +{ + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + huart->RxXferCount = 0U; + + /* Clear the Error flags in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + + /* Discard the received data */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + + /* Restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Call user Abort complete callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /* Call registered Abort Receive Complete Callback */ + huart->AbortReceiveCpltCallback(huart); +#else + /* Call legacy weak Abort Receive Complete Callback */ + HAL_UART_AbortReceiveCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + +/** + * @brief TX interrupt handler for 7 or 8 bits data word length . + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Transmit_IT(). + * @param huart UART handle. + * @retval None + */ +static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) +{ + /* Check that a Tx process is ongoing */ + if (huart->gState == HAL_UART_STATE_BUSY_TX) + { + if (huart->TxXferCount == 0U) + { + /* Disable the UART Transmit Data Register Empty Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); + + /* Enable the UART Transmit Complete Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); + } + else + { + huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); + huart->pTxBuffPtr++; + huart->TxXferCount--; + } + } +} + +/** + * @brief TX interrupt handler for 9 bits data word length. + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Transmit_IT(). + * @param huart UART handle. + * @retval None + */ +static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) +{ + const uint16_t *tmp; + + /* Check that a Tx process is ongoing */ + if (huart->gState == HAL_UART_STATE_BUSY_TX) + { + if (huart->TxXferCount == 0U) + { + /* Disable the UART Transmit Data Register Empty Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); + + /* Enable the UART Transmit Complete Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); + } + else + { + tmp = (const uint16_t *) huart->pTxBuffPtr; + huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); + huart->pTxBuffPtr += 2U; + huart->TxXferCount--; + } + } +} + +/** + * @brief TX interrupt handler for 7 or 8 bits data word length and FIFO mode is enabled. + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Transmit_IT(). + * @param huart UART handle. + * @retval None + */ +static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) +{ + uint16_t nb_tx_data; + + /* Check that a Tx process is ongoing */ + if (huart->gState == HAL_UART_STATE_BUSY_TX) + { + for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) + { + if (huart->TxXferCount == 0U) + { + /* Disable the TX FIFO threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + + /* Enable the UART Transmit Complete Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); + + break; /* force exit loop */ + } + else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) + { + huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); + huart->pTxBuffPtr++; + huart->TxXferCount--; + } + else + { + /* Nothing to do */ + } + } + } +} + +/** + * @brief TX interrupt handler for 9 bits data word length and FIFO mode is enabled. + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Transmit_IT(). + * @param huart UART handle. + * @retval None + */ +static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) +{ + const uint16_t *tmp; + uint16_t nb_tx_data; + + /* Check that a Tx process is ongoing */ + if (huart->gState == HAL_UART_STATE_BUSY_TX) + { + for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) + { + if (huart->TxXferCount == 0U) + { + /* Disable the TX FIFO threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + + /* Enable the UART Transmit Complete Interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); + + break; /* force exit loop */ + } + else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) + { + tmp = (const uint16_t *) huart->pTxBuffPtr; + huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); + huart->pTxBuffPtr += 2U; + huart->TxXferCount--; + } + else + { + /* Nothing to do */ + } + } + } +} + +/** + * @brief Wrap up transmission in non-blocking mode. + * @param huart pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART module. + * @retval None + */ +static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) +{ + /* Disable the UART Transmit Complete Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); + + /* Tx process is ended, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + + /* Cleat TxISR function pointer */ + huart->TxISR = NULL; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Tx complete callback*/ + huart->TxCpltCallback(huart); +#else + /*Call legacy weak Tx complete callback*/ + HAL_UART_TxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + +/** + * @brief RX interrupt handler for 7 or 8 bits data word length . + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) +{ + uint16_t uhMask = huart->Mask; + uint16_t uhdata; + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + huart->pRxBuffPtr++; + huart->RxXferCount--; + + if (huart->RxXferCount == 0U) + { + /* Disable the UART Parity Error Interrupt and RXNE interrupts */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + } + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + else + { + /* Standard reception API called */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxCpltCallback(huart); +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + } + } + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + +/** + * @brief RX interrupt handler for 9 bits data word length . + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Receive_IT() + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) +{ + uint16_t *tmp; + uint16_t uhMask = huart->Mask; + uint16_t uhdata; + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + tmp = (uint16_t *) huart->pRxBuffPtr ; + *tmp = (uint16_t)(uhdata & uhMask); + huart->pRxBuffPtr += 2U; + huart->RxXferCount--; + + if (huart->RxXferCount == 0U) + { + /* Disable the UART Parity Error Interrupt and RXNE interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + } + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + else + { + /* Standard reception API called */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxCpltCallback(huart); +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + } + } + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + +/** + * @brief RX interrupt handler for 7 or 8 bits data word length and FIFO mode is enabled. + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Receive_IT() + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) +{ + uint16_t uhMask = huart->Mask; + uint16_t uhdata; + uint16_t nb_rx_data; + uint16_t rxdatacount; + uint32_t isrflags = READ_REG(huart->Instance->ISR); + uint32_t cr1its = READ_REG(huart->Instance->CR1); + uint32_t cr3its = READ_REG(huart->Instance->CR3); + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + { + nb_rx_data = huart->NbRxDataToProcess; + while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + huart->pRxBuffPtr++; + huart->RxXferCount--; + isrflags = READ_REG(huart->Instance->ISR); + + /* If some non blocking errors occurred */ + if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + + huart->ErrorCode |= HAL_UART_ERROR_PE; + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + + huart->ErrorCode |= HAL_UART_ERROR_FE; + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + + huart->ErrorCode |= HAL_UART_ERROR_NE; + } + + /* Call UART Error Call back function if need be ----------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + { + /* Non Blocking error : transfer could go on. + Error is notified to user through user error callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + } + } + + if (huart->RxXferCount == 0U) + { + /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) + and RX FIFO Threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + } + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + else + { + /* Standard reception API called */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxCpltCallback(huart); +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + break; + } + } + + /* When remaining number of bytes to receive is less than the RX FIFO + threshold, next incoming frames are processed as if FIFO mode was + disabled (i.e. one interrupt per received frame). + */ + rxdatacount = huart->RxXferCount; + if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + { + /* Disable the UART RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); + + /* Update the RxISR function pointer */ + huart->RxISR = UART_RxISR_8BIT; + + /* Enable the UART Data Register Not Empty interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); + } + } + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + +/** + * @brief RX interrupt handler for 9 bits data word length and FIFO mode is enabled. + * @note Function is called under interruption only, once + * interruptions have been enabled by HAL_UART_Receive_IT() + * @param huart UART handle. + * @retval None + */ +static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) +{ + uint16_t *tmp; + uint16_t uhMask = huart->Mask; + uint16_t uhdata; + uint16_t nb_rx_data; + uint16_t rxdatacount; + uint32_t isrflags = READ_REG(huart->Instance->ISR); + uint32_t cr1its = READ_REG(huart->Instance->CR1); + uint32_t cr3its = READ_REG(huart->Instance->CR3); + + /* Check that a Rx process is ongoing */ + if (huart->RxState == HAL_UART_STATE_BUSY_RX) + { + nb_rx_data = huart->NbRxDataToProcess; + while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + { + uhdata = (uint16_t) READ_REG(huart->Instance->RDR); + tmp = (uint16_t *) huart->pRxBuffPtr ; + *tmp = (uint16_t)(uhdata & uhMask); + huart->pRxBuffPtr += 2U; + huart->RxXferCount--; + isrflags = READ_REG(huart->Instance->ISR); + + /* If some non blocking errors occurred */ + if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + + huart->ErrorCode |= HAL_UART_ERROR_PE; + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + + huart->ErrorCode |= HAL_UART_ERROR_FE; + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + + huart->ErrorCode |= HAL_UART_ERROR_NE; + } + + /* Call UART Error Call back function if need be ----------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + { + /* Non Blocking error : transfer could go on. + Error is notified to user through user error callback */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + } + } + + if (huart->RxXferCount == 0U) + { + /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + + /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) + and RX FIFO Threshold interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + + /* Rx process is completed, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + /* Clear RxISR function pointer */ + huart->RxISR = NULL; + + /* Initialize type of RxEvent to Transfer Complete */ + huart->RxEventType = HAL_UART_RXEVENT_TC; + + if (!(IS_LPUART_INSTANCE(huart->Instance))) + { + /* Check that USART RTOEN bit is set */ + if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) + { + /* Enable the UART Receiver Timeout Interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); + } + } + + /* Check current reception Mode : + If Reception till IDLE event has been selected : */ + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + /* Set reception type to Standard */ + huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + + /* Disable IDLE interrupt */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) + { + /* Clear IDLE Flag */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + } + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Event callback*/ + huart->RxEventCallback(huart, huart->RxXferSize); +#else + /*Call legacy weak Rx Event callback*/ + HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + else + { + /* Standard reception API called */ +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxCpltCallback(huart); +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } + break; + } + } + + /* When remaining number of bytes to receive is less than the RX FIFO + threshold, next incoming frames are processed as if FIFO mode was + disabled (i.e. one interrupt per received frame). + */ + rxdatacount = huart->RxXferCount; + if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + { + /* Disable the UART RXFT interrupt*/ + ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); + + /* Update the RxISR function pointer */ + huart->RxISR = UART_RxISR_16BIT; + + /* Enable the UART Data Register Not Empty interrupt */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); + } + } + else + { + /* Clear RXNE interrupt flag */ + __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + } +} + +/** + * @} + */ + +#endif /* HAL_UART_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c new file mode 100644 index 0000000..cdb0c95 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c @@ -0,0 +1,1042 @@ +/** + ****************************************************************************** + * @file stm32g4xx_hal_uart_ex.c + * @author MCD Application Team + * @brief Extended UART HAL module driver. + * This file provides firmware functions to manage the following extended + * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). + * + Initialization and de-initialization functions + * + Peripheral Control functions + * + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### UART peripheral extended features ##### + ============================================================================== + + (#) Declare a UART_HandleTypeDef handle structure. + + (#) For the UART RS485 Driver Enable mode, initialize the UART registers + by calling the HAL_RS485Ex_Init() API. + + (#) FIFO mode enabling/disabling and RX/TX FIFO threshold programming. + + -@- When UART operates in FIFO mode, FIFO mode must be enabled prior + starting RX/TX transfers. Also RX/TX FIFO thresholds must be + configured prior starting RX/TX transfers. + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_hal.h" + +/** @addtogroup STM32G4xx_HAL_Driver + * @{ + */ + +/** @defgroup UARTEx UARTEx + * @brief UART Extended HAL module driver + * @{ + */ + +#ifdef HAL_UART_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup UARTEX_Private_Constants UARTEx Private Constants + * @{ + */ +/* UART RX FIFO depth */ +#define RX_FIFO_DEPTH 8U + +/* UART TX FIFO depth */ +#define TX_FIFO_DEPTH 8U +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup UARTEx_Private_Functions UARTEx Private Functions + * @{ + */ +static void UARTEx_Wakeup_AddressConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection); +static void UARTEx_SetNbDataToProcess(UART_HandleTypeDef *huart); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup UARTEx_Exported_Functions UARTEx Exported Functions + * @{ + */ + +/** @defgroup UARTEx_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Extended Initialization and Configuration Functions + * +@verbatim +=============================================================================== + ##### Initialization and Configuration functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to initialize the USARTx or the UARTy + in asynchronous mode. + (+) For the asynchronous mode the parameters below can be configured: + (++) Baud Rate + (++) Word Length + (++) Stop Bit + (++) Parity: If the parity is enabled, then the MSB bit of the data written + in the data register is transmitted but is changed by the parity bit. + (++) Hardware flow control + (++) Receiver/transmitter modes + (++) Over Sampling Method + (++) One-Bit Sampling Method + (+) For the asynchronous mode, the following advanced features can be configured as well: + (++) TX and/or RX pin level inversion + (++) data logical level inversion + (++) RX and TX pins swap + (++) RX overrun detection disabling + (++) DMA disabling on RX error + (++) MSB first on communication line + (++) auto Baud rate detection + [..] + The HAL_RS485Ex_Init() API follows the UART RS485 mode configuration + procedures (details for the procedures are available in reference manual). + +@endverbatim + + Depending on the frame length defined by the M1 and M0 bits (7-bit, + 8-bit or 9-bit), the possible UART formats are listed in the + following table. + + Table 1. UART frame format. + +-----------------------------------------------------------------------+ + | M1 bit | M0 bit | PCE bit | UART frame | + |---------|---------|-----------|---------------------------------------| + | 0 | 0 | 0 | | SB | 8 bit data | STB | | + |---------|---------|-----------|---------------------------------------| + | 0 | 0 | 1 | | SB | 7 bit data | PB | STB | | + |---------|---------|-----------|---------------------------------------| + | 0 | 1 | 0 | | SB | 9 bit data | STB | | + |---------|---------|-----------|---------------------------------------| + | 0 | 1 | 1 | | SB | 8 bit data | PB | STB | | + |---------|---------|-----------|---------------------------------------| + | 1 | 0 | 0 | | SB | 7 bit data | STB | | + |---------|---------|-----------|---------------------------------------| + | 1 | 0 | 1 | | SB | 6 bit data | PB | STB | | + +-----------------------------------------------------------------------+ + + * @{ + */ + +/** + * @brief Initialize the RS485 Driver enable feature according to the specified + * parameters in the UART_InitTypeDef and creates the associated handle. + * @param huart UART handle. + * @param Polarity Select the driver enable polarity. + * This parameter can be one of the following values: + * @arg @ref UART_DE_POLARITY_HIGH DE signal is active high + * @arg @ref UART_DE_POLARITY_LOW DE signal is active low + * @param AssertionTime Driver Enable assertion time: + * 5-bit value defining the time between the activation of the DE (Driver Enable) + * signal and the beginning of the start bit. It is expressed in sample time + * units (1/8 or 1/16 bit time, depending on the oversampling rate) + * @param DeassertionTime Driver Enable deassertion time: + * 5-bit value defining the time between the end of the last stop bit, in a + * transmitted message, and the de-activation of the DE (Driver Enable) signal. + * It is expressed in sample time units (1/8 or 1/16 bit time, depending on the + * oversampling rate). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, + uint32_t DeassertionTime) +{ + uint32_t temp; + + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + /* Check the Driver Enable UART instance */ + assert_param(IS_UART_DRIVER_ENABLE_INSTANCE(huart->Instance)); + + /* Check the Driver Enable polarity */ + assert_param(IS_UART_DE_POLARITY(Polarity)); + + /* Check the Driver Enable assertion time */ + assert_param(IS_UART_ASSERTIONTIME(AssertionTime)); + + /* Check the Driver Enable deassertion time */ + assert_param(IS_UART_DEASSERTIONTIME(DeassertionTime)); + + if (huart->gState == HAL_UART_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + UART_InitCallbacksToDefault(huart); + + if (huart->MspInitCallback == NULL) + { + huart->MspInitCallback = HAL_UART_MspInit; + } + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK, CORTEX */ + HAL_UART_MspInit(huart); +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + + /* Disable the Peripheral */ + __HAL_UART_DISABLE(huart); + + /* Perform advanced settings configuration */ + /* For some items, configuration requires to be done prior TE and RE bits are set */ + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + { + UART_AdvFeatureConfig(huart); + } + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + { + return HAL_ERROR; + } + + /* Enable the Driver Enable mode by setting the DEM bit in the CR3 register */ + SET_BIT(huart->Instance->CR3, USART_CR3_DEM); + + /* Set the Driver Enable polarity */ + MODIFY_REG(huart->Instance->CR3, USART_CR3_DEP, Polarity); + + /* Set the Driver Enable assertion and deassertion times */ + temp = (AssertionTime << UART_CR1_DEAT_ADDRESS_LSB_POS); + temp |= (DeassertionTime << UART_CR1_DEDT_ADDRESS_LSB_POS); + MODIFY_REG(huart->Instance->CR1, (USART_CR1_DEDT | USART_CR1_DEAT), temp); + + /* Enable the Peripheral */ + __HAL_UART_ENABLE(huart); + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); +} + +/** + * @} + */ + +/** @defgroup UARTEx_Exported_Functions_Group2 IO operation functions + * @brief Extended functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + This subsection provides a set of Wakeup and FIFO mode related callback functions. + + (#) Wakeup from Stop mode Callback: + (+) HAL_UARTEx_WakeupCallback() + + (#) TX/RX Fifos Callbacks: + (+) HAL_UARTEx_RxFifoFullCallback() + (+) HAL_UARTEx_TxFifoEmptyCallback() + +@endverbatim + * @{ + */ + +/** + * @brief UART wakeup from Stop mode callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_WakeupCallback can be implemented in the user file. + */ +} + +/** + * @brief UART RX Fifo full callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_RxFifoFullCallback can be implemented in the user file. + */ +} + +/** + * @brief UART TX Fifo empty callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UARTEx_TxFifoEmptyCallback can be implemented in the user file. + */ +} + +/** + * @} + */ + +/** @defgroup UARTEx_Exported_Functions_Group3 Peripheral Control functions + * @brief Extended Peripheral Control functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] This section provides the following functions: + (+) HAL_MultiProcessorEx_AddressLength_Set() API optionally sets the UART node address + detection length to more than 4 bits for multiprocessor address mark wake up. + (+) HAL_UARTEx_StopModeWakeUpSourceConfig() API defines the wake-up from stop mode + trigger: address match, Start Bit detection or RXNE bit status. + (+) HAL_UARTEx_EnableStopMode() API enables the UART to wake up the MCU from stop mode + (+) HAL_UARTEx_DisableStopMode() API disables the above functionality + (+) HAL_UARTEx_EnableFifoMode() API enables the FIFO mode + (+) HAL_UARTEx_DisableFifoMode() API disables the FIFO mode + (+) HAL_UARTEx_SetTxFifoThreshold() API sets the TX FIFO threshold + (+) HAL_UARTEx_SetRxFifoThreshold() API sets the RX FIFO threshold + + [..] This subsection also provides a set of additional functions providing enhanced reception + services to user. (For example, these functions allow application to handle use cases + where number of data to be received is unknown). + + (#) Compared to standard reception services which only consider number of received + data elements as reception completion criteria, these functions also consider additional events + as triggers for updating reception status to caller : + (+) Detection of inactivity period (RX line has not been active for a given period). + (++) RX inactivity detected by IDLE event, i.e. RX line has been in idle state (normally high state) + for 1 frame time, after last received byte. + (++) RX inactivity detected by RTO, i.e. line has been in idle state + for a programmable time, after last received byte. + (+) Detection that a specific character has been received. + + (#) There are two mode of transfer: + (+) Blocking mode: The reception is performed in polling mode, until either expected number of data is received, + or till IDLE event occurs. Reception is handled only during function execution. + When function exits, no data reception could occur. HAL status and number of actually received data elements, + are returned by function after finishing transfer. + (+) Non-Blocking mode: The reception is performed using Interrupts or DMA. + These API's return the HAL status. + The end of the data processing will be indicated through the + dedicated UART IRQ when using Interrupt mode or the DMA IRQ when using DMA mode. + The HAL_UARTEx_RxEventCallback() user callback will be executed during Receive process + The HAL_UART_ErrorCallback()user callback will be executed when a reception error is detected. + + (#) Blocking mode API: + (+) HAL_UARTEx_ReceiveToIdle() + + (#) Non-Blocking mode API with Interrupt: + (+) HAL_UARTEx_ReceiveToIdle_IT() + + (#) Non-Blocking mode API with DMA: + (+) HAL_UARTEx_ReceiveToIdle_DMA() + +@endverbatim + * @{ + */ + +/** + * @brief By default in multiprocessor mode, when the wake up method is set + * to address mark, the UART handles only 4-bit long addresses detection; + * this API allows to enable longer addresses detection (6-, 7- or 8-bit + * long). + * @note Addresses detection lengths are: 6-bit address detection in 7-bit data mode, + * 7-bit address detection in 8-bit data mode, 8-bit address detection in 9-bit data mode. + * @param huart UART handle. + * @param AddressLength This parameter can be one of the following values: + * @arg @ref UART_ADDRESS_DETECT_4B 4-bit long address + * @arg @ref UART_ADDRESS_DETECT_7B 6-, 7- or 8-bit long address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength) +{ + /* Check the UART handle allocation */ + if (huart == NULL) + { + return HAL_ERROR; + } + + /* Check the address length parameter */ + assert_param(IS_UART_ADDRESSLENGTH_DETECT(AddressLength)); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Disable the Peripheral */ + __HAL_UART_DISABLE(huart); + + /* Set the address length */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, AddressLength); + + /* Enable the Peripheral */ + __HAL_UART_ENABLE(huart); + + /* TEACK and/or REACK to check before moving huart->gState to Ready */ + return (UART_CheckIdleState(huart)); +} + +/** + * @brief Set Wakeup from Stop mode interrupt flag selection. + * @note It is the application responsibility to enable the interrupt used as + * usart_wkup interrupt source before entering low-power mode. + * @param huart UART handle. + * @param WakeUpSelection Address match, Start Bit detection or RXNE/RXFNE bit status. + * This parameter can be one of the following values: + * @arg @ref UART_WAKEUP_ON_ADDRESS + * @arg @ref UART_WAKEUP_ON_STARTBIT + * @arg @ref UART_WAKEUP_ON_READDATA_NONEMPTY + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tickstart; + + /* check the wake-up from stop mode UART instance */ + assert_param(IS_UART_WAKEUP_FROMSTOP_INSTANCE(huart->Instance)); + /* check the wake-up selection parameter */ + assert_param(IS_UART_WAKEUP_SELECTION(WakeUpSelection.WakeUpEvent)); + + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Disable the Peripheral */ + __HAL_UART_DISABLE(huart); + + /* Set the wake-up selection scheme */ + MODIFY_REG(huart->Instance->CR3, USART_CR3_WUS, WakeUpSelection.WakeUpEvent); + + if (WakeUpSelection.WakeUpEvent == UART_WAKEUP_ON_ADDRESS) + { + UARTEx_Wakeup_AddressConfig(huart, WakeUpSelection); + } + + /* Enable the Peripheral */ + __HAL_UART_ENABLE(huart); + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + + /* Wait until REACK flag is set */ + if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) + { + status = HAL_TIMEOUT; + } + else + { + /* Initialize the UART State */ + huart->gState = HAL_UART_STATE_READY; + } + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return status; +} + +/** + * @brief Enable UART Stop Mode. + * @note The UART is able to wake up the MCU from Stop 1 mode as long as UART clock is HSI or LSE. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart) +{ + /* Process Locked */ + __HAL_LOCK(huart); + + /* Set UESM bit */ + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_UESM); + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Disable UART Stop Mode. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart) +{ + /* Process Locked */ + __HAL_LOCK(huart); + + /* Clear UESM bit */ + ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_UESM); + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Enable the FIFO mode. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart) +{ + uint32_t tmpcr1; + + /* Check parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + + /* Enable FIFO mode */ + SET_BIT(tmpcr1, USART_CR1_FIFOEN); + huart->FifoMode = UART_FIFOMODE_ENABLE; + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + + /* Determine the number of data to process during RX/TX ISR execution */ + UARTEx_SetNbDataToProcess(huart); + + huart->gState = HAL_UART_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Disable the FIFO mode. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart) +{ + uint32_t tmpcr1; + + /* Check parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + + /* Disable FIFO mode */ + CLEAR_BIT(tmpcr1, USART_CR1_FIFOEN); + huart->FifoMode = UART_FIFOMODE_DISABLE; + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + + huart->gState = HAL_UART_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Set the TXFIFO threshold. + * @param huart UART handle. + * @param Threshold TX FIFO threshold value + * This parameter can be one of the following values: + * @arg @ref UART_TXFIFO_THRESHOLD_1_8 + * @arg @ref UART_TXFIFO_THRESHOLD_1_4 + * @arg @ref UART_TXFIFO_THRESHOLD_1_2 + * @arg @ref UART_TXFIFO_THRESHOLD_3_4 + * @arg @ref UART_TXFIFO_THRESHOLD_7_8 + * @arg @ref UART_TXFIFO_THRESHOLD_8_8 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) +{ + uint32_t tmpcr1; + + /* Check parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + assert_param(IS_UART_TXFIFO_THRESHOLD(Threshold)); + + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + + /* Update TX threshold configuration */ + MODIFY_REG(huart->Instance->CR3, USART_CR3_TXFTCFG, Threshold); + + /* Determine the number of data to process during RX/TX ISR execution */ + UARTEx_SetNbDataToProcess(huart); + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + + huart->gState = HAL_UART_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Set the RXFIFO threshold. + * @param huart UART handle. + * @param Threshold RX FIFO threshold value + * This parameter can be one of the following values: + * @arg @ref UART_RXFIFO_THRESHOLD_1_8 + * @arg @ref UART_RXFIFO_THRESHOLD_1_4 + * @arg @ref UART_RXFIFO_THRESHOLD_1_2 + * @arg @ref UART_RXFIFO_THRESHOLD_3_4 + * @arg @ref UART_RXFIFO_THRESHOLD_7_8 + * @arg @ref UART_RXFIFO_THRESHOLD_8_8 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) +{ + uint32_t tmpcr1; + + /* Check the parameters */ + assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + assert_param(IS_UART_RXFIFO_THRESHOLD(Threshold)); + + /* Process Locked */ + __HAL_LOCK(huart); + + huart->gState = HAL_UART_STATE_BUSY; + + /* Save actual UART configuration */ + tmpcr1 = READ_REG(huart->Instance->CR1); + + /* Disable UART */ + __HAL_UART_DISABLE(huart); + + /* Update RX threshold configuration */ + MODIFY_REG(huart->Instance->CR3, USART_CR3_RXFTCFG, Threshold); + + /* Determine the number of data to process during RX/TX ISR execution */ + UARTEx_SetNbDataToProcess(huart); + + /* Restore UART configuration */ + WRITE_REG(huart->Instance->CR1, tmpcr1); + + huart->gState = HAL_UART_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + + return HAL_OK; +} + +/** + * @brief Receive an amount of data in blocking mode till either the expected number of data + * is received or an IDLE event occurs. + * @note HAL_OK is returned if reception is completed (expected number of data has been received) + * or if reception is stopped after IDLE event (less than the expected number of data has been received) + * In this case, RxLen output parameter indicates number of data available in reception buffer. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the received data is handled as a set of uint16_t. In this case, Size must indicate the number + * of uint16_t available through pData. + * @note When FIFO mode is enabled, the RXFNE flag is set as long as the RXFIFO + * is not empty. Read operations from the RDR register are performed when + * RXFNE flag is set. From hardware perspective, RXFNE flag and + * RXNE are mapped on the same bit-field. + * @param huart UART handle. + * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). + * @param Size Amount of data elements (uint8_t or uint16_t) to be received. + * @param RxLen Number of data elements finally received + * (could be lower than Size, in case reception ends on IDLE event) + * @param Timeout Timeout duration expressed in ms (covers the whole reception sequence). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen, + uint32_t Timeout) +{ + uint8_t *pdata8bits; + uint16_t *pdata16bits; + uint16_t uhMask; + uint32_t tickstart; + + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + huart->ErrorCode = HAL_UART_ERROR_NONE; + huart->RxState = HAL_UART_STATE_BUSY_RX; + huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + huart->RxEventType = HAL_UART_RXEVENT_TC; + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + + huart->RxXferSize = Size; + huart->RxXferCount = Size; + + /* Computation of UART mask to apply to RDR register */ + UART_MASK_COMPUTATION(huart); + uhMask = huart->Mask; + + /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ + if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + { + pdata8bits = NULL; + pdata16bits = (uint16_t *) pData; + } + else + { + pdata8bits = pData; + pdata16bits = NULL; + } + + /* Initialize output number of received elements */ + *RxLen = 0U; + + /* as long as data have to be received */ + while (huart->RxXferCount > 0U) + { + /* Check if IDLE flag is set */ + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) + { + /* Clear IDLE flag in ISR */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + + /* If Set, but no data ever received, clear flag without exiting loop */ + /* If Set, and data has already been received, this means Idle Event is valid : End reception */ + if (*RxLen > 0U) + { + huart->RxEventType = HAL_UART_RXEVENT_IDLE; + huart->RxState = HAL_UART_STATE_READY; + + return HAL_OK; + } + } + + /* Check if RXNE flag is set */ + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) + { + if (pdata8bits == NULL) + { + *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); + pdata16bits++; + } + else + { + *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); + pdata8bits++; + } + /* Increment number of received elements */ + *RxLen += 1U; + huart->RxXferCount--; + } + + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + huart->RxState = HAL_UART_STATE_READY; + + return HAL_TIMEOUT; + } + } + } + + /* Set number of received elements in output parameter : RxLen */ + *RxLen = huart->RxXferSize - huart->RxXferCount; + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive an amount of data in interrupt mode till either the expected number of data + * is received or an IDLE event occurs. + * @note Reception is initiated by this function call. Further progress of reception is achieved thanks + * to UART interrupts raised by RXNE and IDLE events. Callback is called at end of reception indicating + * number of received data elements. + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the received data is handled as a set of uint16_t. In this case, Size must indicate the number + * of uint16_t available through pData. + * @param huart UART handle. + * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). + * @param Size Amount of data elements (uint8_t or uint16_t) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Set Reception type to reception till IDLE Event*/ + huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + huart->RxEventType = HAL_UART_RXEVENT_TC; + + (void)UART_Start_Receive_IT(huart, pData, Size); + + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + } + else + { + /* In case of errors already pending when reception is started, + Interrupts may have already been raised and lead to reception abortion. + (Overrun error for instance). + In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ + status = HAL_ERROR; + } + + return status; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive an amount of data in DMA mode till either the expected number + * of data is received or an IDLE event occurs. + * @note Reception is initiated by this function call. Further progress of reception is achieved thanks + * to DMA services, transferring automatically received data elements in user reception buffer and + * calling registered callbacks at half/end of reception. UART IDLE events are also used to consider + * reception phase as ended. In all cases, callback execution will indicate number of received data elements. + * @note When the UART parity is enabled (PCE = 1), the received data contain + * the parity bit (MSB position). + * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01), + * the received data is handled as a set of uint16_t. In this case, Size must indicate the number + * of uint16_t available through pData. + * @param huart UART handle. + * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). + * @param Size Amount of data elements (uint8_t or uint16_t) to be received. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef status; + + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Set Reception type to reception till IDLE Event*/ + huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + huart->RxEventType = HAL_UART_RXEVENT_TC; + + status = UART_Start_Receive_DMA(huart, pData, Size); + + /* Check Rx process has been successfully started */ + if (status == HAL_OK) + { + if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + } + else + { + /* In case of errors already pending when reception is started, + Interrupts may have already been raised and lead to reception abortion. + (Overrun error for instance). + In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ + status = HAL_ERROR; + } + } + + return status; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Provide Rx Event type that has lead to RxEvent callback execution. + * @note When HAL_UARTEx_ReceiveToIdle_IT() or HAL_UARTEx_ReceiveToIdle_DMA() API are called, progress + * of reception process is provided to application through calls of Rx Event callback (either default one + * HAL_UARTEx_RxEventCallback() or user registered one). As several types of events could occur (IDLE event, + * Half Transfer, or Transfer Complete), this function allows to retrieve the Rx Event type that has lead + * to Rx Event callback execution. + * @note This function is expected to be called within the user implementation of Rx Event Callback, + * in order to provide the accurate value : + * In Interrupt Mode : + * - HAL_UART_RXEVENT_TC : when Reception has been completed (expected nb of data has been received) + * - HAL_UART_RXEVENT_IDLE : when Idle event occurred prior reception has been completed (nb of + * received data is lower than expected one) + * In DMA Mode : + * - HAL_UART_RXEVENT_TC : when Reception has been completed (expected nb of data has been received) + * - HAL_UART_RXEVENT_HT : when half of expected nb of data has been received + * - HAL_UART_RXEVENT_IDLE : when Idle event occurred prior reception has been completed (nb of + * received data is lower than expected one). + * In DMA mode, RxEvent callback could be called several times; + * When DMA is configured in Normal Mode, HT event does not stop Reception process; + * When DMA is configured in Circular Mode, HT, TC or IDLE events don't stop Reception process; + * @param huart UART handle. + * @retval Rx Event Type (return vale will be a value of @ref UART_RxEvent_Type_Values) + */ +HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(const UART_HandleTypeDef *huart) +{ + /* Return Rx Event type value, as stored in UART handle */ + return (huart->RxEventType); +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup UARTEx_Private_Functions + * @{ + */ + +/** + * @brief Initialize the UART wake-up from stop mode parameters when triggered by address detection. + * @param huart UART handle. + * @param WakeUpSelection UART wake up from stop mode parameters. + * @retval None + */ +static void UARTEx_Wakeup_AddressConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection) +{ + assert_param(IS_UART_ADDRESSLENGTH_DETECT(WakeUpSelection.AddressLength)); + + /* Set the USART address length */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, WakeUpSelection.AddressLength); + + /* Set the USART address node */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)WakeUpSelection.Address << UART_CR2_ADDRESS_LSB_POS)); +} + +/** + * @brief Calculate the number of data to process in RX/TX ISR. + * @note The RX FIFO depth and the TX FIFO depth is extracted from + * the UART configuration registers. + * @param huart UART handle. + * @retval None + */ +static void UARTEx_SetNbDataToProcess(UART_HandleTypeDef *huart) +{ + uint8_t rx_fifo_depth; + uint8_t tx_fifo_depth; + uint8_t rx_fifo_threshold; + uint8_t tx_fifo_threshold; + static const uint8_t numerator[] = {1U, 1U, 1U, 3U, 7U, 1U, 0U, 0U}; + static const uint8_t denominator[] = {8U, 4U, 2U, 4U, 8U, 1U, 1U, 1U}; + + if (huart->FifoMode == UART_FIFOMODE_DISABLE) + { + huart->NbTxDataToProcess = 1U; + huart->NbRxDataToProcess = 1U; + } + else + { + rx_fifo_depth = RX_FIFO_DEPTH; + tx_fifo_depth = TX_FIFO_DEPTH; + rx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos); + tx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos); + huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + (uint16_t)denominator[tx_fifo_threshold]; + huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + (uint16_t)denominator[rx_fifo_threshold]; + } +} +/** + * @} + */ + +#endif /* HAL_UART_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c new file mode 100644 index 0000000..092a253 --- /dev/null +++ b/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c @@ -0,0 +1,1419 @@ +/** + ****************************************************************************** + * @file stm32g4xx_ll_adc.c + * @author MCD Application Team + * @brief ADC LL module driver + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +#if defined(USE_FULL_LL_DRIVER) + +/* Includes ------------------------------------------------------------------*/ +#include "stm32g4xx_ll_adc.h" +#include "stm32g4xx_ll_bus.h" + +#ifdef USE_FULL_ASSERT +#include "stm32_assert.h" +#else +#define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +/** @addtogroup STM32G4xx_LL_Driver + * @{ + */ + +#if defined (ADC1) || defined (ADC2) || defined (ADC3) || defined (ADC4) || defined (ADC5) + +/** @addtogroup ADC_LL ADC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @addtogroup ADC_LL_Private_Constants + * @{ + */ + +/* Definitions of ADC hardware constraints delays */ +/* Note: Only ADC peripheral HW delays are defined in ADC LL driver driver, */ +/* not timeout values: */ +/* Timeout values for ADC operations are dependent to device clock */ +/* configuration (system clock versus ADC clock), */ +/* and therefore must be defined in user application. */ +/* Refer to @ref ADC_LL_EC_HW_DELAYS for description of ADC timeout */ +/* values definition. */ +/* Note: ADC timeout values are defined here in CPU cycles to be independent */ +/* of device clock setting. */ +/* In user application, ADC timeout values should be defined with */ +/* temporal values, in function of device clock settings. */ +/* Highest ratio CPU clock frequency vs ADC clock frequency: */ +/* - ADC clock from synchronous clock with AHB prescaler 512, */ +/* ADC prescaler 4. */ +/* Ratio max = 512 *4 = 2048 */ +/* - ADC clock from asynchronous clock (PLLP) with prescaler 256. */ +/* Highest CPU clock PLL (PLLR). */ +/* Ratio max = PLLRmax /PPLPmin * 256 = (VCO/2) / (VCO/31) * 256 */ +/* = 3968 */ +/* Unit: CPU cycles. */ +#define ADC_CLOCK_RATIO_VS_CPU_HIGHEST (3968UL) +#define ADC_TIMEOUT_DISABLE_CPU_CYCLES (ADC_CLOCK_RATIO_VS_CPU_HIGHEST * 1UL) +#define ADC_TIMEOUT_STOP_CONVERSION_CPU_CYCLES (ADC_CLOCK_RATIO_VS_CPU_HIGHEST * 1UL) + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ + +/** @addtogroup ADC_LL_Private_Macros + * @{ + */ + +/* Check of parameters for configuration of ADC hierarchical scope: */ +/* common to several ADC instances. */ +#define IS_LL_ADC_COMMON_CLOCK(__CLOCK__) \ + (((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV1) \ + || ((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV2) \ + || ((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV4) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV1) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV2) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV4) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV6) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV8) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV10) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV12) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV16) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV32) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV64) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV128) \ + || ((__CLOCK__) == LL_ADC_CLOCK_ASYNC_DIV256) \ + ) + +/* Check of parameters for configuration of ADC hierarchical scope: */ +/* ADC instance. */ +#define IS_LL_ADC_RESOLUTION(__RESOLUTION__) \ + (((__RESOLUTION__) == LL_ADC_RESOLUTION_12B) \ + || ((__RESOLUTION__) == LL_ADC_RESOLUTION_10B) \ + || ((__RESOLUTION__) == LL_ADC_RESOLUTION_8B) \ + || ((__RESOLUTION__) == LL_ADC_RESOLUTION_6B) \ + ) + +#define IS_LL_ADC_DATA_ALIGN(__DATA_ALIGN__) \ + (((__DATA_ALIGN__) == LL_ADC_DATA_ALIGN_RIGHT) \ + || ((__DATA_ALIGN__) == LL_ADC_DATA_ALIGN_LEFT) \ + ) + +#define IS_LL_ADC_LOW_POWER(__LOW_POWER__) \ + (((__LOW_POWER__) == LL_ADC_LP_MODE_NONE) \ + || ((__LOW_POWER__) == LL_ADC_LP_AUTOWAIT) \ + ) + +/* Check of parameters for configuration of ADC hierarchical scope: */ +/* ADC group regular */ +#if defined(STM32G474xx) || defined(STM32G484xx) +#define IS_LL_ADC_REG_TRIG_SOURCE(__ADC_INSTANCE__, __REG_TRIG_SOURCE__) \ + (((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_SOFTWARE) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM6_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM7_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM15_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG5) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG6) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG7) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG8) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG9) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG10) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE11) \ + ) \ + ) \ + || ((((__ADC_INSTANCE__) == ADC3) || ((__ADC_INSTANCE__) == ADC4) || ((__ADC_INSTANCE__) == ADC5)) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_HRTIM_TRG4) \ + ) \ + ) \ + ) +#elif defined(STM32G473xx) || defined(STM32G483xx) +#define IS_LL_ADC_REG_TRIG_SOURCE(__ADC_INSTANCE__, __REG_TRIG_SOURCE__) \ + (((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_SOFTWARE) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM6_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM7_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM15_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE11) \ + ) \ + ) \ + || ((((__ADC_INSTANCE__) == ADC3) || ((__ADC_INSTANCE__) == ADC4) || ((__ADC_INSTANCE__) == ADC5)) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE2) \ + ) \ + ) \ + ) +#elif defined(STM32G471xx) +#define IS_LL_ADC_REG_TRIG_SOURCE(__ADC_INSTANCE__, __REG_TRIG_SOURCE__) \ + (((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_SOFTWARE) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM6_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM7_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM15_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE11) \ + ) \ + ) \ + || (((__ADC_INSTANCE__) == ADC3) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE2) \ + ) \ + ) \ + ) +#elif defined(STM32G411xB) || defined(STM32G411xC) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define IS_LL_ADC_REG_TRIG_SOURCE(__ADC_INSTANCE__, __REG_TRIG_SOURCE__) \ + (((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_SOFTWARE) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM6_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM7_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM15_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_LPTIM_OUT) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE11) \ + ) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) +#define IS_LL_ADC_REG_TRIG_SOURCE(__ADC_INSTANCE__, __REG_TRIG_SOURCE__) \ + (((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_SOFTWARE) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM6_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM7_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM15_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_TRGO) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_TRGO2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH4) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH2) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM20_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE11) \ + ) \ + ) \ + || (((__ADC_INSTANCE__) == ADC3) \ + && ( \ + ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH3) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_CH1) \ + || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE2) \ + ) \ + ) \ + ) +#endif /* STM32G4xx */ + +#define IS_LL_ADC_REG_CONTINUOUS_MODE(__REG_CONTINUOUS_MODE__) \ + (((__REG_CONTINUOUS_MODE__) == LL_ADC_REG_CONV_SINGLE) \ + || ((__REG_CONTINUOUS_MODE__) == LL_ADC_REG_CONV_CONTINUOUS) \ + ) + +#define IS_LL_ADC_REG_DMA_TRANSFER(__REG_DMA_TRANSFER__) \ + (((__REG_DMA_TRANSFER__) == LL_ADC_REG_DMA_TRANSFER_NONE) \ + || ((__REG_DMA_TRANSFER__) == LL_ADC_REG_DMA_TRANSFER_LIMITED) \ + || ((__REG_DMA_TRANSFER__) == LL_ADC_REG_DMA_TRANSFER_UNLIMITED) \ + ) + +#define IS_LL_ADC_REG_OVR_DATA_BEHAVIOR(__REG_OVR_DATA_BEHAVIOR__) \ + (((__REG_OVR_DATA_BEHAVIOR__) == LL_ADC_REG_OVR_DATA_PRESERVED) \ + || ((__REG_OVR_DATA_BEHAVIOR__) == LL_ADC_REG_OVR_DATA_OVERWRITTEN) \ + ) + +#define IS_LL_ADC_REG_SEQ_SCAN_LENGTH(__REG_SEQ_SCAN_LENGTH__) \ + (((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_DISABLE) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS) \ + || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS) \ + ) + +#define IS_LL_ADC_REG_SEQ_SCAN_DISCONT_MODE(__REG_SEQ_DISCONT_MODE__) \ + (((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_DISABLE) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_1RANK) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_2RANKS) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_3RANKS) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_4RANKS) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_5RANKS) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_6RANKS) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_7RANKS) \ + || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_8RANKS) \ + ) + +/* Check of parameters for configuration of ADC hierarchical scope: */ +/* ADC group injected */ +#if defined(STM32G474xx) || defined(STM32G484xx) +#define IS_LL_ADC_INJ_TRIG_SOURCE(__ADC_INSTANCE__, __INJ_TRIG_SOURCE__) \ + (((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_SOFTWARE) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM7_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM16_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) \ + ) \ + ) \ + || ((((__ADC_INSTANCE__) == ADC3) || ((__ADC_INSTANCE__) == ADC4) || ((__ADC_INSTANCE__) == ADC5)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE3) \ + ) \ + ) \ + ) +#elif defined(STM32G473xx) || defined(STM32G483xx) +#define IS_LL_ADC_INJ_TRIG_SOURCE(__ADC_INSTANCE__, __INJ_TRIG_SOURCE__) \ + (((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_SOFTWARE) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM7_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM16_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) \ + ) \ + ) \ + || ((((__ADC_INSTANCE__) == ADC3) || ((__ADC_INSTANCE__) == ADC4) || ((__ADC_INSTANCE__) == ADC5)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE3) \ + ) \ + ) \ + ) +#elif defined(STM32G471xx) +#define IS_LL_ADC_INJ_TRIG_SOURCE(__ADC_INSTANCE__, __INJ_TRIG_SOURCE__) \ + (((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_SOFTWARE) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM7_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM16_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) \ + ) \ + ) \ + || ((((__ADC_INSTANCE__) == ADC3)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE3) \ + ) \ + ) \ + ) +#elif defined(STM32G411xB) || defined(STM32G411xC) || defined(STM32G414xx) || defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +#define IS_LL_ADC_INJ_TRIG_SOURCE(__ADC_INSTANCE__, __INJ_TRIG_SOURCE__) \ + (((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_SOFTWARE) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM7_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM16_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_LPTIM_OUT) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) \ + ) +#elif defined(STM32G491xx) || defined(STM32G4A1xx) +#define IS_LL_ADC_INJ_TRIG_SOURCE(__ADC_INSTANCE__, __INJ_TRIG_SOURCE__) \ + (((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_SOFTWARE) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM6_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM7_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_TRGO) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_LPTIM_OUT) \ + || ((((__ADC_INSTANCE__) == ADC1) || ((__ADC_INSTANCE__) == ADC2)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM16_CH1) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE15) \ + ) \ + ) \ + || ((((__ADC_INSTANCE__) == ADC3)) \ + && ( \ + ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH3) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH4) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM20_CH2) \ + || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE3) \ + ) \ + ) \ + ) +#endif /* STM32G4xx */ + +#define IS_LL_ADC_INJ_TRIG_EXT_EDGE(__INJ_TRIG_EXT_EDGE__) \ + (((__INJ_TRIG_EXT_EDGE__) == LL_ADC_INJ_TRIG_EXT_RISING) \ + || ((__INJ_TRIG_EXT_EDGE__) == LL_ADC_INJ_TRIG_EXT_FALLING) \ + || ((__INJ_TRIG_EXT_EDGE__) == LL_ADC_INJ_TRIG_EXT_RISINGFALLING) \ + ) + +#define IS_LL_ADC_INJ_TRIG_AUTO(__INJ_TRIG_AUTO__) \ + (((__INJ_TRIG_AUTO__) == LL_ADC_INJ_TRIG_INDEPENDENT) \ + || ((__INJ_TRIG_AUTO__) == LL_ADC_INJ_TRIG_FROM_GRP_REGULAR) \ + ) + +#define IS_LL_ADC_INJ_SEQ_SCAN_LENGTH(__INJ_SEQ_SCAN_LENGTH__) \ + (((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_DISABLE) \ + || ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS) \ + || ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS) \ + || ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS) \ + ) + +#define IS_LL_ADC_INJ_SEQ_SCAN_DISCONT_MODE(__INJ_SEQ_DISCONT_MODE__) \ + (((__INJ_SEQ_DISCONT_MODE__) == LL_ADC_INJ_SEQ_DISCONT_DISABLE) \ + || ((__INJ_SEQ_DISCONT_MODE__) == LL_ADC_INJ_SEQ_DISCONT_1RANK) \ + ) + +#if defined(ADC_MULTIMODE_SUPPORT) +/* Check of parameters for configuration of ADC hierarchical scope: */ +/* multimode. */ +#define IS_LL_ADC_MULTI_MODE(__MULTI_MODE__) \ + (((__MULTI_MODE__) == LL_ADC_MULTI_INDEPENDENT) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIMULT) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_INTERL) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_INJ_SIMULT) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_INJ_ALTERN) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT) \ + || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM) \ + ) + +#define IS_LL_ADC_MULTI_DMA_TRANSFER(__MULTI_DMA_TRANSFER__) \ + (((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_EACH_ADC) \ + || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B) \ + || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B) \ + || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B) \ + || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B) \ + ) + +#define IS_LL_ADC_MULTI_TWOSMP_DELAY(__MULTI_TWOSMP_DELAY__) \ + (((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES) \ + || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES) \ + ) + +#define IS_LL_ADC_MULTI_MASTER_SLAVE(__MULTI_MASTER_SLAVE__) \ + (((__MULTI_MASTER_SLAVE__) == LL_ADC_MULTI_MASTER) \ + || ((__MULTI_MASTER_SLAVE__) == LL_ADC_MULTI_SLAVE) \ + || ((__MULTI_MASTER_SLAVE__) == LL_ADC_MULTI_MASTER_SLAVE) \ + ) + +#endif /* ADC_MULTIMODE_SUPPORT */ +/** + * @} + */ + + +/* Private function prototypes -----------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup ADC_LL_Exported_Functions + * @{ + */ + +/** @addtogroup ADC_LL_EF_Init + * @{ + */ + +/** + * @brief De-initialize registers of all ADC instances belonging to + * the same ADC common instance to their default reset values. + * @note This function is performing a hard reset, using high level + * clock source RCC ADC reset. + * Caution: On this STM32 series, if several ADC instances are available + * on the selected device, RCC ADC reset will reset + * all ADC instances belonging to the common ADC instance. + * To de-initialize only 1 ADC instance, use + * function @ref LL_ADC_DeInit(). + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @retval An ErrorStatus enumeration value: + * - SUCCESS: ADC common registers are de-initialized + * - ERROR: not applicable + */ +ErrorStatus LL_ADC_CommonDeInit(const ADC_Common_TypeDef *ADCxy_COMMON) +{ + /* Check the parameters */ + assert_param(IS_ADC_COMMON_INSTANCE(ADCxy_COMMON)); + + if (ADCxy_COMMON == ADC12_COMMON) + { + /* Force reset of ADC clock (core clock) */ + LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_ADC12); + + /* Release reset of ADC clock (core clock) */ + LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_ADC12); + } +#if defined(ADC345_COMMON) + else + { + /* Force reset of ADC clock (core clock) */ + LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_ADC345); + + /* Release reset of ADC clock (core clock) */ + LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_ADC345); + } +#endif /* ADC345_COMMON */ + + return SUCCESS; +} + +/** + * @brief Initialize some features of ADC common parameters + * (all ADC instances belonging to the same ADC common instance) + * and multimode (for devices with several ADC instances available). + * @note The setting of ADC common parameters is conditioned to + * ADC instances state: + * All ADC instances belonging to the same ADC common instance + * must be disabled. + * @param ADCxy_COMMON ADC common instance + * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() ) + * @param pADC_CommonInitStruct Pointer to a @ref LL_ADC_CommonInitTypeDef structure + * @retval An ErrorStatus enumeration value: + * - SUCCESS: ADC common registers are initialized + * - ERROR: ADC common registers are not initialized + */ +ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, const LL_ADC_CommonInitTypeDef *pADC_CommonInitStruct) +{ + ErrorStatus status = SUCCESS; + + /* Check the parameters */ + assert_param(IS_ADC_COMMON_INSTANCE(ADCxy_COMMON)); + assert_param(IS_LL_ADC_COMMON_CLOCK(pADC_CommonInitStruct->CommonClock)); + +#if defined(ADC_MULTIMODE_SUPPORT) + assert_param(IS_LL_ADC_MULTI_MODE(pADC_CommonInitStruct->Multimode)); + if (pADC_CommonInitStruct->Multimode != LL_ADC_MULTI_INDEPENDENT) + { + assert_param(IS_LL_ADC_MULTI_DMA_TRANSFER(pADC_CommonInitStruct->MultiDMATransfer)); + assert_param(IS_LL_ADC_MULTI_TWOSMP_DELAY(pADC_CommonInitStruct->MultiTwoSamplingDelay)); + } +#endif /* ADC_MULTIMODE_SUPPORT */ + + /* Note: Hardware constraint (refer to description of functions */ + /* "LL_ADC_SetCommonXXX()" and "LL_ADC_SetMultiXXX()"): */ + /* On this STM32 series, setting of these features is conditioned to */ + /* ADC state: */ + /* All ADC instances of the ADC common group must be disabled. */ + if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(ADCxy_COMMON) == 0UL) + { + /* Configuration of ADC hierarchical scope: */ + /* - common to several ADC */ + /* (all ADC instances belonging to the same ADC common instance) */ + /* - Set ADC clock (conversion clock) */ + /* - multimode (if several ADC instances available on the */ + /* selected device) */ + /* - Set ADC multimode configuration */ + /* - Set ADC multimode DMA transfer */ + /* - Set ADC multimode: delay between 2 sampling phases */ +#if defined(ADC_MULTIMODE_SUPPORT) + if (pADC_CommonInitStruct->Multimode != LL_ADC_MULTI_INDEPENDENT) + { + MODIFY_REG(ADCxy_COMMON->CCR, + ADC_CCR_CKMODE + | ADC_CCR_PRESC + | ADC_CCR_DUAL + | ADC_CCR_MDMA + | ADC_CCR_DELAY + , + pADC_CommonInitStruct->CommonClock + | pADC_CommonInitStruct->Multimode + | pADC_CommonInitStruct->MultiDMATransfer + | pADC_CommonInitStruct->MultiTwoSamplingDelay + ); + } + else + { + MODIFY_REG(ADCxy_COMMON->CCR, + ADC_CCR_CKMODE + | ADC_CCR_PRESC + | ADC_CCR_DUAL + | ADC_CCR_MDMA + | ADC_CCR_DELAY + , + pADC_CommonInitStruct->CommonClock + | LL_ADC_MULTI_INDEPENDENT + ); + } +#else + LL_ADC_SetCommonClock(ADCxy_COMMON, pADC_CommonInitStruct->CommonClock); +#endif /* ADC_MULTIMODE_SUPPORT */ + } + else + { + /* Initialization error: One or several ADC instances belonging to */ + /* the same ADC common instance are not disabled. */ + status = ERROR; + } + + return status; +} + +/** + * @brief Set each @ref LL_ADC_CommonInitTypeDef field to default value. + * @param pADC_CommonInitStruct Pointer to a @ref LL_ADC_CommonInitTypeDef structure + * whose fields will be set to default values. + * @retval None + */ +void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *pADC_CommonInitStruct) +{ + /* Set pADC_CommonInitStruct fields to default values */ + /* Set fields of ADC common */ + /* (all ADC instances belonging to the same ADC common instance) */ + pADC_CommonInitStruct->CommonClock = LL_ADC_CLOCK_SYNC_PCLK_DIV2; + +#if defined(ADC_MULTIMODE_SUPPORT) + /* Set fields of ADC multimode */ + pADC_CommonInitStruct->Multimode = LL_ADC_MULTI_INDEPENDENT; + pADC_CommonInitStruct->MultiDMATransfer = LL_ADC_MULTI_REG_DMA_EACH_ADC; + pADC_CommonInitStruct->MultiTwoSamplingDelay = LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE; +#endif /* ADC_MULTIMODE_SUPPORT */ +} + +/** + * @brief De-initialize registers of the selected ADC instance + * to their default reset values. + * @note To reset all ADC instances quickly (perform a hard reset), + * use function @ref LL_ADC_CommonDeInit(). + * @note If this functions returns error status, it means that ADC instance + * is in an unknown state. + * In this case, perform a hard reset using high level + * clock source RCC ADC reset. + * Caution: On this STM32 series, if several ADC instances are available + * on the selected device, RCC ADC reset will reset + * all ADC instances belonging to the common ADC instance. + * Refer to function @ref LL_ADC_CommonDeInit(). + * @param ADCx ADC instance + * @retval An ErrorStatus enumeration value: + * - SUCCESS: ADC registers are de-initialized + * - ERROR: ADC registers are not de-initialized + */ +ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx) +{ + ErrorStatus status = SUCCESS; + + __IO uint32_t timeout_cpu_cycles = 0UL; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(ADCx)); + + /* Disable ADC instance if not already disabled. */ + if (LL_ADC_IsEnabled(ADCx) == 1UL) + { + /* Stop potential ADC conversion on going on ADC group regular. */ + if (LL_ADC_REG_IsConversionOngoing(ADCx) != 0UL) + { + if (LL_ADC_REG_IsStopConversionOngoing(ADCx) == 0UL) + { + LL_ADC_REG_StopConversion(ADCx); + } + } + + /* Stop potential ADC conversion on going on ADC group injected. */ + if (LL_ADC_INJ_IsConversionOngoing(ADCx) != 0UL) + { + if (LL_ADC_INJ_IsStopConversionOngoing(ADCx) == 0UL) + { + LL_ADC_INJ_StopConversion(ADCx); + } + } + + /* Wait for ADC conversions are effectively stopped */ + timeout_cpu_cycles = ADC_TIMEOUT_STOP_CONVERSION_CPU_CYCLES; + while ((LL_ADC_REG_IsStopConversionOngoing(ADCx) + | LL_ADC_INJ_IsStopConversionOngoing(ADCx)) == 1UL) + { + timeout_cpu_cycles--; + if (timeout_cpu_cycles == 0UL) + { + /* Time-out error */ + status = ERROR; + break; + } + } + + /* Flush group injected contexts queue (register JSQR): */ + /* Note: Bit JQM must be set to empty the contexts queue (otherwise */ + /* contexts queue is maintained with the last active context). */ + LL_ADC_INJ_SetQueueMode(ADCx, LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY); + + /* Disable the ADC instance */ + LL_ADC_Disable(ADCx); + + /* Wait for ADC instance is effectively disabled */ + timeout_cpu_cycles = ADC_TIMEOUT_DISABLE_CPU_CYCLES; + while (LL_ADC_IsDisableOngoing(ADCx) == 1UL) + { + timeout_cpu_cycles--; + if (timeout_cpu_cycles == 0UL) + { + /* Time-out error */ + status = ERROR; + break; + } + } + } + + /* Check whether ADC state is compliant with expected state */ + if (READ_BIT(ADCx->CR, + (ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | ADC_CR_ADSTART + | ADC_CR_ADDIS | ADC_CR_ADEN) + ) + == 0UL) + { + /* ========== Reset ADC registers ========== */ + /* Reset register IER */ + CLEAR_BIT(ADCx->IER, + (LL_ADC_IT_ADRDY + | LL_ADC_IT_EOC + | LL_ADC_IT_EOS + | LL_ADC_IT_OVR + | LL_ADC_IT_EOSMP + | LL_ADC_IT_JEOC + | LL_ADC_IT_JEOS + | LL_ADC_IT_JQOVF + | LL_ADC_IT_AWD1 + | LL_ADC_IT_AWD2 + | LL_ADC_IT_AWD3 + ) + ); + + /* Reset register ISR */ + SET_BIT(ADCx->ISR, + (LL_ADC_FLAG_ADRDY + | LL_ADC_FLAG_EOC + | LL_ADC_FLAG_EOS + | LL_ADC_FLAG_OVR + | LL_ADC_FLAG_EOSMP + | LL_ADC_FLAG_JEOC + | LL_ADC_FLAG_JEOS + | LL_ADC_FLAG_JQOVF + | LL_ADC_FLAG_AWD1 + | LL_ADC_FLAG_AWD2 + | LL_ADC_FLAG_AWD3 + ) + ); + + /* Reset register CR */ + /* - Bits ADC_CR_JADSTP, ADC_CR_ADSTP, ADC_CR_JADSTART, ADC_CR_ADSTART, */ + /* ADC_CR_ADCAL, ADC_CR_ADDIS, ADC_CR_ADEN are in */ + /* access mode "read-set": no direct reset applicable. */ + /* - Reset Calibration mode to default setting (single ended). */ + /* - Disable ADC internal voltage regulator. */ + /* - Enable ADC deep power down. */ + /* Note: ADC internal voltage regulator disable and ADC deep power */ + /* down enable are conditioned to ADC state disabled: */ + /* already done above. */ + CLEAR_BIT(ADCx->CR, ADC_CR_ADVREGEN | ADC_CR_ADCALDIF); + SET_BIT(ADCx->CR, ADC_CR_DEEPPWD); + + /* Reset register CFGR */ + MODIFY_REG(ADCx->CFGR, + (ADC_CFGR_AWD1CH | ADC_CFGR_JAUTO | ADC_CFGR_JAWD1EN + | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL | ADC_CFGR_JQM + | ADC_CFGR_JDISCEN | ADC_CFGR_DISCNUM | ADC_CFGR_DISCEN + | ADC_CFGR_AUTDLY | ADC_CFGR_CONT | ADC_CFGR_OVRMOD + | ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL | ADC_CFGR_ALIGN + | ADC_CFGR_RES | ADC_CFGR_DMACFG | ADC_CFGR_DMAEN), + ADC_CFGR_JQDIS + ); + + /* Reset register CFGR2 */ + CLEAR_BIT(ADCx->CFGR2, + (ADC_CFGR2_ROVSM | ADC_CFGR2_TROVS | ADC_CFGR2_OVSS + | ADC_CFGR2_SWTRIG | ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG + | ADC_CFGR2_GCOMP + | ADC_CFGR2_OVSR | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE) + ); + + /* Reset register SMPR1 */ + CLEAR_BIT(ADCx->SMPR1, + (ADC_SMPR1_SMP9 | ADC_SMPR1_SMP8 | ADC_SMPR1_SMP7 + | ADC_SMPR1_SMP6 | ADC_SMPR1_SMP5 | ADC_SMPR1_SMP4 + | ADC_SMPR1_SMP3 | ADC_SMPR1_SMP2 | ADC_SMPR1_SMP1) + ); + + /* Reset register SMPR2 */ + CLEAR_BIT(ADCx->SMPR2, + (ADC_SMPR2_SMP18 | ADC_SMPR2_SMP17 | ADC_SMPR2_SMP16 + | ADC_SMPR2_SMP15 | ADC_SMPR2_SMP14 | ADC_SMPR2_SMP13 + | ADC_SMPR2_SMP12 | ADC_SMPR2_SMP11 | ADC_SMPR2_SMP10) + ); + + /* Reset register TR1 */ + MODIFY_REG(ADCx->TR1, ADC_TR1_AWDFILT | ADC_TR1_HT1 | ADC_TR1_LT1, ADC_TR1_HT1); + + /* Reset register TR2 */ + MODIFY_REG(ADCx->TR2, ADC_TR2_HT2 | ADC_TR2_LT2, ADC_TR2_HT2); + + /* Reset register TR3 */ + MODIFY_REG(ADCx->TR3, ADC_TR3_HT3 | ADC_TR3_LT3, ADC_TR3_HT3); + + /* Reset register SQR1 */ + CLEAR_BIT(ADCx->SQR1, + (ADC_SQR1_SQ4 | ADC_SQR1_SQ3 | ADC_SQR1_SQ2 + | ADC_SQR1_SQ1 | ADC_SQR1_L) + ); + + /* Reset register SQR2 */ + CLEAR_BIT(ADCx->SQR2, + (ADC_SQR2_SQ9 | ADC_SQR2_SQ8 | ADC_SQR2_SQ7 + | ADC_SQR2_SQ6 | ADC_SQR2_SQ5) + ); + + /* Reset register SQR3 */ + CLEAR_BIT(ADCx->SQR3, + (ADC_SQR3_SQ14 | ADC_SQR3_SQ13 | ADC_SQR3_SQ12 + | ADC_SQR3_SQ11 | ADC_SQR3_SQ10) + ); + + /* Reset register SQR4 */ + CLEAR_BIT(ADCx->SQR4, ADC_SQR4_SQ16 | ADC_SQR4_SQ15); + + /* Reset register JSQR */ + CLEAR_BIT(ADCx->JSQR, + (ADC_JSQR_JL + | ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN + | ADC_JSQR_JSQ4 | ADC_JSQR_JSQ3 + | ADC_JSQR_JSQ2 | ADC_JSQR_JSQ1) + ); + + /* Reset register DR */ + /* Note: bits in access mode read only, no direct reset applicable */ + + /* Reset register OFR1 */ + CLEAR_BIT(ADCx->OFR1, + ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1 | ADC_OFR1_SATEN | ADC_OFR1_OFFSETPOS); + /* Reset register OFR2 */ + CLEAR_BIT(ADCx->OFR2, + ADC_OFR2_OFFSET2_EN | ADC_OFR2_OFFSET2_CH | ADC_OFR2_OFFSET2 | ADC_OFR2_SATEN | ADC_OFR2_OFFSETPOS); + /* Reset register OFR3 */ + CLEAR_BIT(ADCx->OFR3, + ADC_OFR3_OFFSET3_EN | ADC_OFR3_OFFSET3_CH | ADC_OFR3_OFFSET3 | ADC_OFR3_SATEN | ADC_OFR3_OFFSETPOS); + /* Reset register OFR4 */ + CLEAR_BIT(ADCx->OFR4, + ADC_OFR4_OFFSET4_EN | ADC_OFR4_OFFSET4_CH | ADC_OFR4_OFFSET4 | ADC_OFR4_SATEN | ADC_OFR4_OFFSETPOS); + + /* Reset registers JDR1, JDR2, JDR3, JDR4 */ + /* Note: bits in access mode read only, no direct reset applicable */ + + /* Reset register AWD2CR */ + CLEAR_BIT(ADCx->AWD2CR, ADC_AWD2CR_AWD2CH); + + /* Reset register AWD3CR */ + CLEAR_BIT(ADCx->AWD3CR, ADC_AWD3CR_AWD3CH); + + /* Reset register DIFSEL */ + CLEAR_BIT(ADCx->DIFSEL, ADC_DIFSEL_DIFSEL); + + /* Reset register CALFACT */ + CLEAR_BIT(ADCx->CALFACT, ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S); + + /* Reset register GCOMP */ + CLEAR_BIT(ADCx->GCOMP, ADC_GCOMP_GCOMPCOEFF); + } + else + { + /* ADC instance is in an unknown state */ + /* Need to performing a hard reset of ADC instance, using high level */ + /* clock source RCC ADC reset. */ + /* Caution: On this STM32 series, if several ADC instances are available */ + /* on the selected device, RCC ADC reset will reset */ + /* all ADC instances belonging to the common ADC instance. */ + /* Caution: On this STM32 series, if several ADC instances are available */ + /* on the selected device, RCC ADC reset will reset */ + /* all ADC instances belonging to the common ADC instance. */ + status = ERROR; + } + + return status; +} + +/** + * @brief Initialize some features of ADC instance. + * @note These parameters have an impact on ADC scope: ADC instance. + * Affects both group regular and group injected (availability + * of ADC group injected depends on STM32 series). + * Refer to corresponding unitary functions into + * @ref ADC_LL_EF_Configuration_ADC_Instance . + * @note The setting of these parameters by function @ref LL_ADC_Init() + * is conditioned to ADC state: + * ADC instance must be disabled. + * This condition is applied to all ADC features, for efficiency + * and compatibility over all STM32 series. However, the different + * features can be set under different ADC state conditions + * (setting possible with ADC enabled without conversion on going, + * ADC enabled with conversion on going, ...) + * Each feature can be updated afterwards with a unitary function + * and potentially with ADC in a different state than disabled, + * refer to description of each function for setting + * conditioned to ADC state. + * @note After using this function, some other features must be configured + * using LL unitary functions. + * The minimum configuration remaining to be done is: + * - Set ADC group regular or group injected sequencer: + * map channel on the selected sequencer rank. + * Refer to function @ref LL_ADC_REG_SetSequencerRanks(). + * - Set ADC channel sampling time + * Refer to function LL_ADC_SetChannelSamplingTime(); + * @param ADCx ADC instance + * @param pADC_InitStruct Pointer to a @ref LL_ADC_REG_InitTypeDef structure + * @retval An ErrorStatus enumeration value: + * - SUCCESS: ADC registers are initialized + * - ERROR: ADC registers are not initialized + */ +ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, const LL_ADC_InitTypeDef *pADC_InitStruct) +{ + ErrorStatus status = SUCCESS; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(ADCx)); + + assert_param(IS_LL_ADC_RESOLUTION(pADC_InitStruct->Resolution)); + assert_param(IS_LL_ADC_DATA_ALIGN(pADC_InitStruct->DataAlignment)); + assert_param(IS_LL_ADC_LOW_POWER(pADC_InitStruct->LowPowerMode)); + + /* Note: Hardware constraint (refer to description of this function): */ + /* ADC instance must be disabled. */ + if (LL_ADC_IsEnabled(ADCx) == 0UL) + { + /* Configuration of ADC hierarchical scope: */ + /* - ADC instance */ + /* - Set ADC data resolution */ + /* - Set ADC conversion data alignment */ + /* - Set ADC low power mode */ + MODIFY_REG(ADCx->CFGR, + ADC_CFGR_RES + | ADC_CFGR_ALIGN + | ADC_CFGR_AUTDLY + , + pADC_InitStruct->Resolution + | pADC_InitStruct->DataAlignment + | pADC_InitStruct->LowPowerMode + ); + + } + else + { + /* Initialization error: ADC instance is not disabled. */ + status = ERROR; + } + + return status; +} + +/** + * @brief Set each @ref LL_ADC_InitTypeDef field to default value. + * @param pADC_InitStruct Pointer to a @ref LL_ADC_InitTypeDef structure + * whose fields will be set to default values. + * @retval None + */ +void LL_ADC_StructInit(LL_ADC_InitTypeDef *pADC_InitStruct) +{ + /* Set pADC_InitStruct fields to default values */ + /* Set fields of ADC instance */ + pADC_InitStruct->Resolution = LL_ADC_RESOLUTION_12B; + pADC_InitStruct->DataAlignment = LL_ADC_DATA_ALIGN_RIGHT; + pADC_InitStruct->LowPowerMode = LL_ADC_LP_MODE_NONE; + +} + +/** + * @brief Initialize some features of ADC group regular. + * @note These parameters have an impact on ADC scope: ADC group regular. + * Refer to corresponding unitary functions into + * @ref ADC_LL_EF_Configuration_ADC_Group_Regular + * (functions with prefix "REG"). + * @note The setting of these parameters by function @ref LL_ADC_Init() + * is conditioned to ADC state: + * ADC instance must be disabled. + * This condition is applied to all ADC features, for efficiency + * and compatibility over all STM32 series. However, the different + * features can be set under different ADC state conditions + * (setting possible with ADC enabled without conversion on going, + * ADC enabled with conversion on going, ...) + * Each feature can be updated afterwards with a unitary function + * and potentially with ADC in a different state than disabled, + * refer to description of each function for setting + * conditioned to ADC state. + * @note After using this function, other features must be configured + * using LL unitary functions. + * The minimum configuration remaining to be done is: + * - Set ADC group regular or group injected sequencer: + * map channel on the selected sequencer rank. + * Refer to function @ref LL_ADC_REG_SetSequencerRanks(). + * - Set ADC channel sampling time + * Refer to function LL_ADC_SetChannelSamplingTime(); + * @param ADCx ADC instance + * @param pADC_RegInitStruct Pointer to a @ref LL_ADC_REG_InitTypeDef structure + * @retval An ErrorStatus enumeration value: + * - SUCCESS: ADC registers are initialized + * - ERROR: ADC registers are not initialized + */ +ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, const LL_ADC_REG_InitTypeDef *pADC_RegInitStruct) +{ + ErrorStatus status = SUCCESS; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(ADCx)); + assert_param(IS_LL_ADC_REG_TRIG_SOURCE(ADCx, pADC_RegInitStruct->TriggerSource)); + assert_param(IS_LL_ADC_REG_SEQ_SCAN_LENGTH(pADC_RegInitStruct->SequencerLength)); + if (pADC_RegInitStruct->SequencerLength != LL_ADC_REG_SEQ_SCAN_DISABLE) + { + assert_param(IS_LL_ADC_REG_SEQ_SCAN_DISCONT_MODE(pADC_RegInitStruct->SequencerDiscont)); + + /* ADC group regular continuous mode and discontinuous mode */ + /* can not be enabled simultenaeously */ + assert_param((pADC_RegInitStruct->ContinuousMode == LL_ADC_REG_CONV_SINGLE) + || (pADC_RegInitStruct->SequencerDiscont == LL_ADC_REG_SEQ_DISCONT_DISABLE)); + } + assert_param(IS_LL_ADC_REG_CONTINUOUS_MODE(pADC_RegInitStruct->ContinuousMode)); + assert_param(IS_LL_ADC_REG_DMA_TRANSFER(pADC_RegInitStruct->DMATransfer)); + assert_param(IS_LL_ADC_REG_OVR_DATA_BEHAVIOR(pADC_RegInitStruct->Overrun)); + + /* Note: Hardware constraint (refer to description of this function): */ + /* ADC instance must be disabled. */ + if (LL_ADC_IsEnabled(ADCx) == 0UL) + { + /* Configuration of ADC hierarchical scope: */ + /* - ADC group regular */ + /* - Set ADC group regular trigger source */ + /* - Set ADC group regular sequencer length */ + /* - Set ADC group regular sequencer discontinuous mode */ + /* - Set ADC group regular continuous mode */ + /* - Set ADC group regular conversion data transfer: no transfer or */ + /* transfer by DMA, and DMA requests mode */ + /* - Set ADC group regular overrun behavior */ + /* Note: On this STM32 series, ADC trigger edge is set to value 0x0 by */ + /* setting of trigger source to SW start. */ + if (pADC_RegInitStruct->SequencerLength != LL_ADC_REG_SEQ_SCAN_DISABLE) + { + MODIFY_REG(ADCx->CFGR, + ADC_CFGR_EXTSEL + | ADC_CFGR_EXTEN + | ADC_CFGR_DISCEN + | ADC_CFGR_DISCNUM + | ADC_CFGR_CONT + | ADC_CFGR_DMAEN + | ADC_CFGR_DMACFG + | ADC_CFGR_OVRMOD + , + pADC_RegInitStruct->TriggerSource + | pADC_RegInitStruct->SequencerDiscont + | pADC_RegInitStruct->ContinuousMode + | pADC_RegInitStruct->DMATransfer + | pADC_RegInitStruct->Overrun + ); + } + else + { + MODIFY_REG(ADCx->CFGR, + ADC_CFGR_EXTSEL + | ADC_CFGR_EXTEN + | ADC_CFGR_DISCEN + | ADC_CFGR_DISCNUM + | ADC_CFGR_CONT + | ADC_CFGR_DMAEN + | ADC_CFGR_DMACFG + | ADC_CFGR_OVRMOD + , + pADC_RegInitStruct->TriggerSource + | LL_ADC_REG_SEQ_DISCONT_DISABLE + | pADC_RegInitStruct->ContinuousMode + | pADC_RegInitStruct->DMATransfer + | pADC_RegInitStruct->Overrun + ); + } + + /* Set ADC group regular sequencer length and scan direction */ + LL_ADC_REG_SetSequencerLength(ADCx, pADC_RegInitStruct->SequencerLength); + } + else + { + /* Initialization error: ADC instance is not disabled. */ + status = ERROR; + } + return status; +} + +/** + * @brief Set each @ref LL_ADC_REG_InitTypeDef field to default value. + * @param pADC_RegInitStruct Pointer to a @ref LL_ADC_REG_InitTypeDef structure + * whose fields will be set to default values. + * @retval None + */ +void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *pADC_RegInitStruct) +{ + /* Set pADC_RegInitStruct fields to default values */ + /* Set fields of ADC group regular */ + /* Note: On this STM32 series, ADC trigger edge is set to value 0x0 by */ + /* setting of trigger source to SW start. */ + pADC_RegInitStruct->TriggerSource = LL_ADC_REG_TRIG_SOFTWARE; + pADC_RegInitStruct->SequencerLength = LL_ADC_REG_SEQ_SCAN_DISABLE; + pADC_RegInitStruct->SequencerDiscont = LL_ADC_REG_SEQ_DISCONT_DISABLE; + pADC_RegInitStruct->ContinuousMode = LL_ADC_REG_CONV_SINGLE; + pADC_RegInitStruct->DMATransfer = LL_ADC_REG_DMA_TRANSFER_NONE; + pADC_RegInitStruct->Overrun = LL_ADC_REG_OVR_DATA_OVERWRITTEN; +} + +/** + * @brief Initialize some features of ADC group injected. + * @note These parameters have an impact on ADC scope: ADC group injected. + * Refer to corresponding unitary functions into + * @ref ADC_LL_EF_Configuration_ADC_Group_Regular + * (functions with prefix "INJ"). + * @note The setting of these parameters by function @ref LL_ADC_Init() + * is conditioned to ADC state: + * ADC instance must be disabled. + * This condition is applied to all ADC features, for efficiency + * and compatibility over all STM32 series. However, the different + * features can be set under different ADC state conditions + * (setting possible with ADC enabled without conversion on going, + * ADC enabled with conversion on going, ...) + * Each feature can be updated afterwards with a unitary function + * and potentially with ADC in a different state than disabled, + * refer to description of each function for setting + * conditioned to ADC state. + * @note After using this function, other features must be configured + * using LL unitary functions. + * The minimum configuration remaining to be done is: + * - Set ADC group injected sequencer: + * map channel on the selected sequencer rank. + * Refer to function @ref LL_ADC_INJ_SetSequencerRanks(). + * - Set ADC channel sampling time + * Refer to function LL_ADC_SetChannelSamplingTime(); + * @note Caution if feature ADC group injected contexts queue is enabled + * (refer to with function @ref LL_ADC_INJ_SetQueueMode() ): + * using successively several times this function will appear as + * having no effect. + * To set several features of ADC group injected, use + * function @ref LL_ADC_INJ_ConfigQueueContext(). + * @param ADCx ADC instance + * @param pADC_InjInitStruct Pointer to a @ref LL_ADC_INJ_InitTypeDef structure + * @retval An ErrorStatus enumeration value: + * - SUCCESS: ADC registers are initialized + * - ERROR: ADC registers are not initialized + */ +ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, const LL_ADC_INJ_InitTypeDef *pADC_InjInitStruct) +{ + ErrorStatus status = SUCCESS; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_INSTANCE(ADCx)); + assert_param(IS_LL_ADC_INJ_TRIG_SOURCE(ADCx, pADC_InjInitStruct->TriggerSource)); + assert_param(IS_LL_ADC_INJ_SEQ_SCAN_LENGTH(pADC_InjInitStruct->SequencerLength)); + if (pADC_InjInitStruct->SequencerLength != LL_ADC_INJ_SEQ_SCAN_DISABLE) + { + assert_param(IS_LL_ADC_INJ_SEQ_SCAN_DISCONT_MODE(pADC_InjInitStruct->SequencerDiscont)); + } + assert_param(IS_LL_ADC_INJ_TRIG_AUTO(pADC_InjInitStruct->TrigAuto)); + + /* Note: Hardware constraint (refer to description of this function): */ + /* ADC instance must be disabled. */ + if (LL_ADC_IsEnabled(ADCx) == 0UL) + { + /* Configuration of ADC hierarchical scope: */ + /* - ADC group injected */ + /* - Set ADC group injected trigger source */ + /* - Set ADC group injected sequencer length */ + /* - Set ADC group injected sequencer discontinuous mode */ + /* - Set ADC group injected conversion trigger: independent or */ + /* from ADC group regular */ + /* Note: On this STM32 series, ADC trigger edge is set to value 0x0 by */ + /* setting of trigger source to SW start. */ + if (pADC_InjInitStruct->SequencerLength != LL_ADC_REG_SEQ_SCAN_DISABLE) + { + MODIFY_REG(ADCx->CFGR, + ADC_CFGR_JDISCEN + | ADC_CFGR_JAUTO + , + pADC_InjInitStruct->SequencerDiscont + | pADC_InjInitStruct->TrigAuto + ); + } + else + { + MODIFY_REG(ADCx->CFGR, + ADC_CFGR_JDISCEN + | ADC_CFGR_JAUTO + , + LL_ADC_REG_SEQ_DISCONT_DISABLE + | pADC_InjInitStruct->TrigAuto + ); + } + + MODIFY_REG(ADCx->JSQR, + ADC_JSQR_JEXTSEL + | ADC_JSQR_JEXTEN + | ADC_JSQR_JL + , + pADC_InjInitStruct->TriggerSource + | pADC_InjInitStruct->SequencerLength + ); + } + else + { + /* Initialization error: ADC instance is not disabled. */ + status = ERROR; + } + return status; +} + +/** + * @brief Set each @ref LL_ADC_INJ_InitTypeDef field to default value. + * @param pADC_InjInitStruct Pointer to a @ref LL_ADC_INJ_InitTypeDef structure + * whose fields will be set to default values. + * @retval None + */ +void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *pADC_InjInitStruct) +{ + /* Set pADC_InjInitStruct fields to default values */ + /* Set fields of ADC group injected */ + pADC_InjInitStruct->TriggerSource = LL_ADC_INJ_TRIG_SOFTWARE; + pADC_InjInitStruct->SequencerLength = LL_ADC_INJ_SEQ_SCAN_DISABLE; + pADC_InjInitStruct->SequencerDiscont = LL_ADC_INJ_SEQ_DISCONT_DISABLE; + pADC_InjInitStruct->TrigAuto = LL_ADC_INJ_TRIG_INDEPENDENT; +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* ADC1 || ADC2 || ADC3 || ADC4 || ADC5 */ + +/** + * @} + */ + +#endif /* USE_FULL_LL_DRIVER */ diff --git a/POWER_SWITCH.ioc b/POWER_SWITCH.ioc new file mode 100644 index 0000000..cad6698 --- /dev/null +++ b/POWER_SWITCH.ioc @@ -0,0 +1,209 @@ +#MicroXplorer Configuration settings - do not modify +ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_VREFINT +ADC1.ClockPrescaler=ADC_CLOCK_ASYNC_DIV16 +ADC1.CommonPathInternal=ADC_CHANNEL_VREFINT|null|null|null +ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,master,ClockPrescaler,CommonPathInternal +ADC1.NbrOfConversionFlag=1 +ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC1.Rank-0\#ChannelRegularConversion=1 +ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC1.master=1 +ADC2.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_3 +ADC2.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_4 +ADC2.ClockPrescaler=ADC_CLOCK_ASYNC_DIV16 +ADC2.CommonPathInternal=null|null|null|null +ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,ClockPrescaler,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,OffsetNumber-1\#ChannelRegularConversion,NbrOfConversion,CommonPathInternal +ADC2.NbrOfConversion=2 +ADC2.NbrOfConversionFlag=1 +ADC2.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC2.OffsetNumber-1\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC2.Rank-0\#ChannelRegularConversion=1 +ADC2.Rank-1\#ChannelRegularConversion=2 +ADC2.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_24CYCLES_5 +ADC2.SamplingTime-1\#ChannelRegularConversion=ADC_SAMPLETIME_24CYCLES_5 +BSP_IP_NAME=NUCLEO-G431KB +CAD.formats= +CAD.pinconfig= +CAD.provider= +File.Version=6 +GPIO.groupedBy=Group By Peripherals +KeepUserPlacement=false +Mcu.CPN=STM32G431KBT6 +Mcu.Family=STM32G4 +Mcu.IP0=ADC1 +Mcu.IP1=ADC2 +Mcu.IP2=NVIC +Mcu.IP3=RCC +Mcu.IP4=SYS +Mcu.IP5=TIM2 +Mcu.IP6=USART2 +Mcu.IP7=NUCLEO-G431KB +Mcu.IPNb=8 +Mcu.Name=STM32G431K(6-8-B)Tx +Mcu.Package=LQFP32 +Mcu.Pin0=PA2 +Mcu.Pin1=PA3 +Mcu.Pin10=VP_SYS_VS_Systick +Mcu.Pin11=VP_SYS_VS_DBSignals +Mcu.Pin12=VP_TIM2_VS_ClockSourceINT +Mcu.Pin2=PA6 +Mcu.Pin3=PA7 +Mcu.Pin4=PA12 +Mcu.Pin5=PA13 +Mcu.Pin6=PA14 +Mcu.Pin7=PB3 +Mcu.Pin8=PB8-BOOT0 +Mcu.Pin9=VP_ADC1_Vref_Input +Mcu.PinsNb=13 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32G431KBTx +MxCube.Version=6.16.1 +MxDb.Version=DB.6.0.161 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA12.GPIOParameters=GPIO_Label +PA12.GPIO_Label=POWER_SWITCH +PA12.Locked=true +PA12.Signal=GPIO_Output +PA13.GPIOParameters=GPIO_Label +PA13.GPIO_Label=T_SWDIO +PA13.Locked=true +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.GPIOParameters=GPIO_Label +PA14.GPIO_Label=T_SWCLK +PA14.Locked=true +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA2.GPIOParameters=GPIO_Label +PA2.GPIO_Label=USART2_TX [ST-LINKV3E_VCP_RX] +PA2.Locked=true +PA2.Mode=Asynchronous +PA2.Signal=USART2_TX +PA3.GPIOParameters=GPIO_Label +PA3.GPIO_Label=USART2_RX [ST-LINKV3E_VCP_TX] +PA3.Locked=true +PA3.Mode=Asynchronous +PA3.Signal=USART2_RX +PA6.GPIOParameters=GPIO_Label +PA6.GPIO_Label=VIN +PA6.Locked=true +PA6.Mode=IN3-Single-Ended +PA6.Signal=ADC2_IN3 +PA7.GPIOParameters=GPIO_Label +PA7.GPIO_Label=VOUT +PA7.Locked=true +PA7.Mode=IN4-Single-Ended +PA7.Signal=ADC2_IN4 +PB3.GPIOParameters=GPIO_Label +PB3.GPIO_Label=T_SWO +PB3.Locked=true +PB3.Signal=SYS_JTDO-SWO +PB8-BOOT0.GPIOParameters=GPIO_Label +PB8-BOOT0.GPIO_Label=LD2 [green] +PB8-BOOT0.Locked=true +PB8-BOOT0.Signal=GPIO_Output +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerLinker=GCC +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32G431KBTx +ProjectManager.FirmwarePackage=STM32Cube FW_G4 V1.6.1 +ProjectManager.FreePins=false +ProjectManager.FreePinsContext= +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain=STM32CubeIDE +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=POWER_SWITCH.ioc +ProjectManager.ProjectName=POWER_SWITCH +ProjectManager.ProjectStructure= +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UAScriptAfterPath= +ProjectManager.UAScriptBeforePath= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_ADC2_Init-ADC2-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true +RCC.ADC12Freq_Value=128000000 +RCC.AHBFreq_Value=128000000 +RCC.APB1Freq_Value=128000000 +RCC.APB1TimFreq_Value=128000000 +RCC.APB2Freq_Value=128000000 +RCC.APB2TimFreq_Value=128000000 +RCC.CRSFreq_Value=48000000 +RCC.CortexFreq_Value=128000000 +RCC.EXTERNAL_CLOCK_VALUE=12288000 +RCC.FCLKCortexFreq_Value=128000000 +RCC.FDCANFreq_Value=128000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=128000000 +RCC.HSE_VALUE=8000000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=128000000 +RCC.I2C2Freq_Value=128000000 +RCC.I2C3Freq_Value=128000000 +RCC.I2SFreq_Value=128000000 +RCC.IPParameters=ADC12Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value +RCC.LPTIM1Freq_Value=128000000 +RCC.LPUART1Freq_Value=128000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=16000000 +RCC.PLLN=16 +RCC.PLLPoutputFreq_Value=128000000 +RCC.PLLQoutputFreq_Value=128000000 +RCC.PLLRCLKFreq_Value=128000000 +RCC.PWRFreq_Value=128000000 +RCC.RNGFreq_Value=128000000 +RCC.SAI1Freq_Value=128000000 +RCC.SYSCLKFreq_VALUE=128000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=170000000 +RCC.USART1Freq_Value=128000000 +RCC.USART2Freq_Value=128000000 +RCC.USART3Freq_Value=170000000 +RCC.USBFreq_Value=128000000 +RCC.VCOInputFreq_Value=16000000 +RCC.VCOOutputFreq_Value=256000000 +TIM2.IPParameters=PeriodNoDither +TIM2.PeriodNoDither=128999 +USART2.BaudRate=921600 +USART2.IPParameters=VirtualMode-Asynchronous,BaudRate +USART2.VirtualMode-Asynchronous=VM_ASYNC +VP_ADC1_Vref_Input.Mode=IN-Vrefint +VP_ADC1_Vref_Input.Signal=ADC1_Vref_Input +VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals +VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM2_VS_ClockSourceINT.Mode=Internal +VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT +board=NUCLEO-G431KB +boardIOC=true diff --git a/README.md b/README.md new file mode 100644 index 0000000..09ac8ba --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Introduction +AUTOMOTIVE POWER SIMULATOR - STM32 C CODE TO FOR AUTOMOTIVE POWER SIMULATOR FOR BROWNOUT/TRANSIENT TESTING diff --git a/STM32G431KBTX_FLASH.ld b/STM32G431KBTX_FLASH.ld new file mode 100644 index 0000000..e214908 --- /dev/null +++ b/STM32G431KBTX_FLASH.ld @@ -0,0 +1,187 @@ +/* +****************************************************************************** +** +** @file : LinkerScript.ld +** +** @author : Auto-generated by STM32CubeIDE +** +** Abstract : Linker script for NUCLEO-G431KB Board embedding STM32G431KBTx Device from stm32g4 series +** 128KBytes FLASH +** 32KBytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used +** +** Target : STMicroelectronics STM32 +** +** Distribution: The file is distributed as is, without any warranty +** of any kind. +** +****************************************************************************** +** @attention +** +** Copyright (c) 2025 STMicroelectronics. +** All rights reserved. +** +** This software is licensed under terms that can be found in the LICENSE file +** in the root directory of this software component. +** If no LICENSE file comes with this software, it is provided AS-IS. +** +****************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ + +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Memories definition */ +MEMORY +{ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K + FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K +} + +/* Sections */ +SECTIONS +{ + /* The startup code into "FLASH" Rom type memory */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data into "FLASH" Rom type memory */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data into "FLASH" Rom type memory */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >FLASH + + .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >FLASH + + .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >FLASH + + .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >FLASH + + .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(4); + } >FLASH + + /* Used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections into "RAM" Ram type memory */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + + } >RAM AT> FLASH + + /* Uninitialized data section into "RAM" Ram type memory */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + /* Remove information from the compiler libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +}

      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

      $cJK6i!AL%OhjU^%R_{R}PPx^?GJ9Mwt7 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

      )nr;#hX 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 z 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 yjay@wkQ%&zcmA}Sz?ii!djR1_5j z!7dgQrKlhxAYvCq?D~GsE_r@=-v9sid3~PDxu>6VXLjzr=iXsix4zw3mSz6=$1-)8 z|G^k$?GPiexaLlQI!rjT)5-4%ychl>+1~iCPg%P!V860*7Z$O{2wlCm{vi3^ARb}nffPQ7|HGuwQ?X`db zW$kr<>&x0300Ya~L4d(!?TvsT_|NSKb3o{`c_!bx%PY6R>nCw&t9n;=wwc6)?qlDp z7SHa%Br*m?Cz9p*RG6mf-KE5Bu6e?L@noa;<^;bH@;%OD8 z)#+vK(q}>)P-^#vR3>&@*7S0!`9&cC4b^q|6lm7{N+A(r!AhQd{tSQ)untVI8l+?DX|Lv$0Q2q6SoAi&pc;x|J%pm zw{8Pesh<`(x|1Dc?mw;nXgQxX*vGx+mGrzRm1g8zVLFF4`D+Xh|JCQ@!}ZKfr#@Fe z=3f$t&KUl~um1nwcX?&_f9U^j{QvRUM1xl)!>aJZVJx-o%FK5W!3yT%Gmepo^sj$P zRy{RBWYnjxDH%mQM|-f8tYH4CVU!9k<-8JrFZBne;(GRi+^jJIqZm+*US&!ZKe>m3 zQ3_nuKnMu@x=4Yss<`R1<`M5>w!o-&G>{pk!`uYoJiRK^SH7~0vay9;sXYCz#a*~a zt5wI@`*?-389%BR)d|+L2ULbV)fCuC)4?a#vZnUHCa_JqBfo2`=|^DmSa*sg#pS`55$J76 z>1gOxEipXxoj`r2g0z#!GGYmcJQ19nO8;<_jHpAKCxVmH>K~4Z5$h0#2m;-lLI1;% z8yayhuCoWoVJmJuTVIJAWXC<_0$C&7AckExS7x{%7p7vv@M`CRU6{a*_*21f8(o;p z9{&Vhhzm0)1`cY%aGPA1g>8$(xy`JR0&t+CfrYxTimYAGFx(cGWED1;{B3n%HP~}s zd4}8O!s@Vxzd%^84uZaum%AO%!Qy12g{Y<=OF03zmiFnOj*g#hC z7`zrPY>4a5{h*Mk14p1=S}vlxid|F;tcwd1*x?PK-PMK3&ff~xP2qfG46ZP`yD$qo?R(t%9xh1- z8;>^;*VBbnWM6&%^Y9j*JGm^t!St86F0^cs<#r3-L@2 zabbPgt48PzbzuY9CFF0IOK%8koQ)iYyLcnm@`R0WVPn|a1MrBAbYT-%AJQA;(woed zXTTfn;!R_ViY0~{zjn!r?_})6Vy`Lx4Gr>IFODFWtkJGCU!igHi{%wXYE8UL}NQ~uG3V{84RqgfB__#f?kkz&PvK^yWQ1w%`uvhLLh z28o&WFMPOK%g|DfaYc_Ogi-3+NNu^+QZI8W3AR8G{!LKUU?i!7q{JOmHDo%LgLqYz zC#1J9YwWmqD^7++g31O%4tWoFUPR0ZA${=`~NhGb?X z$?3MLhWK)sI@h|Yk`%RdV6GzMb^jBC)Viwr-$Ce|xm4xbf+4%IF*Iad5etZzq}!Dv z>v*-0QPV$M%IAM<{q2-7|Nk@paxyJOwx-UEPN|?9YB#b5`=54(v6l4|?ubprc90}w zj+D>?Bn#P zpMP|V>0cG+^?zW}|Aqg|ExGF2cc}7`HtJLT?F@FFS1hRrtYaY{#U(eZw zw!s9yqQNPz`uA0-HM&rxPWf*-r>%DYvt?yR)4!<79juuv-z!LDls{NpbeA#ZPQBHI zb8d#%!G zA6hnB(M5a8ednUNuF71tQdz5jt;|`aY67FI?CR_?%RxqZ$K$1-QhsKul?i()sykcC zE$SMaW!!ZQV&AH+$yrR^ihp8P9#QZvp>&1tkBQrgS}t0csrEm#Y(*Ux?Sx#njK;lH zj41d|FK~@jS1_bDsWlZNVpDB(T$}ag;S&!6{_hn40&{IAM3|=jn0GLhK4IKq*4M(Q z%#_Z?EQNW|2-8L8pn>QCYcY~Delv+Xd?M*?FHaQhS86Np^1)K_30dp)n67(#>3UC1 z@|UiW)1M`3*LzFt&DAhlV^%h%HkU?{FIQk3XZmGPBpqgxbRFJ|uF6*w z)uc}(U*C%?%u6CI>m{O$x+)>`-Wzq_Y+;EsA zBh8d!{TJjnHJGgZHi#(0&QOj;N62qcEJ;2eNm^?L5@lf$$qO~e@-7dO?=+Yw-8vDs zpELJS{>0sSg#1n%PTavMWTAasvNoIMc+6@H>Kt>c5A}8>rPEFhX>A%nGOedm{CQi6 z+d@lpFEd4TFNL_fn^3#ULXv6ZAo~S{WG!eaT~GEW?n0I%2RVCeV>n4Jb!JihDp{)) zMOw;V$nS+KB;TuqqBVV^-di(+xDD`ngXN=?SL1AIEB#3_t0{SDFoCYuoIO0AmII7W zO|ll{OEMStQogEXbj?a83wNA%uvQew{ORn6V7vj)!@)$E-Iy{>{!Hz9$rO3_k#z0c zj;u`^MeW;KEw1HW5aloD)3s_i$%l5KYj0;RZ=G4VwI;tSXOn&56tx@Wk^R4&eY?Z? z{47~bG2ike?p-H6%$sCpHy~>ZP1IwTM$@&Qv%PvdaYuY6tvOiKbIhVH6v^K`$jgep zWJfqpGJZ*9!8e9tmiAG<73b5{Z7My1U6+x~)w`+P<{H^)y@uLxZe;EDD6)`Rh3IiR zNwPIw4S41+5@m@SaWhSHcOnw#`Zp>icy66pkIX0ToX#ZK^*8dK*@3Qo<0-bwPbkjA z-RK&SMDd*bMD&D}l+oOFWbM53iS56UEcE+A+;w@?X0|Kg$MZ>K;o?-fT91*|lINylUh{XlD4WkRt4wWarOFB@`oEb#)vvo;+)*6!6I7gE;eaTwSA1Q{s zi*yZeBT8l}wTI?Xdu=6>?-oey&RXivf!K>ew1E_DxdP(u^&&4_+^HS8Kt^TcOC7qZ zQxv$qFC=Sjow1N(j?YFtfZ2iHi<()2`-tm8igv|A)D)QUmr)^S8kLgF{!w(bjYkoj z2|p^~T2W70Yo?Olpm~(RaVJ$IYuf<8j_dPo5-A*vXQbDqwyPHGMA8i=_|VSUqsQqo=e;+&e>p#D&)N`-gRo`ey}sz z_QcgxpsS2I54;3XoO+BDY9R4OqjpqmHPVL--RTRx@?ImG|rY440lv2ajBhSuj|A79FX+EHITfPn4?#2>m_IQFy zKiBil9Xye}9?b;3ca2Jjug@8Jc7J+z8r(q{GPDLKRKs=1PuQHkGF*w3-bsKRak#nK<5x z>!fc>;BoSd@6l6J`p$&bFN=cVeQL+!ke|jkfz0%mXF!?ZI1I}(J$Jy%uk&fN_$~7k zt_$J=Ve_v+`S9YwHpYeqw}wrg0ojf0JQ^OhvG?!{qNbfV7Q}t*IDg0=V{c$HhC9xl zTnW86w%!Y1C)i?|!JTB^;*sOx+3lU+>ngiUq@KY4YpwVdgyx4^!Q9x(RAC=iya@ir z`&UBX6B-&I^K(t%HEn zr*ZQ+KAHtjNQnVOGsMBVB&t@N0FQON2IEKP%T}cIzzVi`CH$ED*ns}dgol3u=Fir` zlAl}4{uzRY3JE)4ES#M*7b5P8Z4ofyqX?aaxcwFBQz03w2(69ib|~)W0^6_BNAct;6_@aT{f?KQm!Izrp{i$|!*-)X*rev#ANd)AgB^Ww zvwrKe0=IQF+qwt_ce8btl0kN32s$B!6>{<5m$2Lkdj6IHZ27iKeMt_oZ zh9A#5<4<5IX!RM^na5d{5^?saxP)Fy*0^c7mTOJVX@%fu1YNc05S-U^grYZVuWJf= zgEPP4+Qhyaip_e_Gt+wFUQpWarCZqX`xOYNYa+eEd)?@c`1_x{i>?`5Jr!FE&X>gN ztFZW8m!?3gr?i8Qx(65I+QNG`ZbHYZDbVSa7Y6R&6k5=^vH5rm(HnlWMX{V6k%&+> zvic#&KZNCDfNf&sslaxye<%_DPIfsBq2X)*{UW2;DAGH?t}BMygREr52#aHoDTf`Ei$fuuvu;N4&gu788 zQcZogVnGOuMJRGx=)@xI3M7tLR|sbmMU5ZnCrVKTknI2m(oG+ztzeG zR08l*zWffUY*fxh{fP@vUb>1P!j*MUPvLecyVZfhA!U_K@E)VQLvPR1$^_JoxiiW& zsAbx!>CWXtg8W6UE4`8+M|C**qr*%TK1wT zU(^pBR5!RElBjg`KdX?qsuYq$;x^tSI@cnMK=Z95i{ zee2*C$_?pCqr;eCFW_l%&ufU{SKArL{Jv!+wC1?&K??IL4us5Z_9IRA_OO55L?qGd ztu_#jVe5Fo?oqbdV_;v^FKJfyO}&Q}Pj0+wJfiU7gXY4NA72^_ULb!s9YKZiW3=$- zFU0)?$uy0GtzE7_^WZi_eDsHDG+Luyo(8uChOE)R9vR+Yq2TPCXtwh;^hg%lR}D+| zSkEsI%V9GyW#JyM@9nUg$3`fSL_TZ5b^*6RG3yn)1S$enKr&e2R~3dfDrQ^**rYf# z4(V)GJZX*ywkU>Rf0)~Eq} zN8Ja=Qx0#3F349V!~uJ#?B4`>g-U%5=oKmT^v-*%oc#mBeX10TL42khPu^cBy}QEg zOJ%pIAQmf)Pm#)NWlswvOO#FNNBUOToYvv*ly&MMvG>Y_G**06&WMEiC*?+Z7``Y& zX=(6PnMp&QyQ=syM3$>Ou7l{MI#eCNTXpp|c)ltvPJM7IR3)fia;sF0X+phPWkh|H zTccXo6vq5jhdP58psG0;lIv8tzaf?ls+Ux>2vi;40%O6dq1ZI$HmW>m4ZT@)Z8xw` z)yzPMY*lHW!qGO>rXc{^Re#@u`VLe(A+k&L{SHLETh*-_dN5Koh6-a*s_!;Ha<3}# zJM`c_RmK{CXw|M}FnvJv$4J;bq&htsA~CATEn($|DlQ2iR@I#9h{si1&H;;4Wlw_X zld5S6kc?M_(vS9(Y8^_hT%v0I2N*l8s?-#cXH>d|$nTu0#X^Ads_(Y~TvRP=4RA@- zcQ$(BvT8&p1b9U?74vxRno6GlUWzJ64{$@ZloCr-O;3W&TdLJJkzbnXcs-cTP&G$GmlS2e^^gey=@TnJF8 zx+O#8k?Ob%V~#mM%RYWZ#ui&cGc;r)&3@gBG>QT_57 zyi!$x7kKYfe{_MP52_9{4f&`l#%VR~GfwG%_eG`H1mMPH4?|?`T*znWd2r`S5RxbN zBdra*Irk~(NFQ$DW0+pS-BY7OR&pb3$bB`pbPFW?xYuo9+Mi4FMZc`&e#?U1I_~55 zAg<^B_yu}F+(lac1anmj;4g%0FayL*oMH$}hjPLsSlPl=90!qY+#V}}2;<7pJ9!6p zv=+kM$Y;$o>M_Hc=`YTC!0ZUgqJqty3qIpnC$<`^rHiNUfO%?;F)#GawS8UUC~Eo7Lqz zBfn7f80w{K>P{ZOQq=D|Lo!v}k)}L1)%8Y#m!^K*1q$ivp}xQ})yMn5%5C*`G+)1~ z-W-mO%u@SRK)CnR$#a3_sJS$NT(xE{;(VZvT>y};j;Ed^~qV8jbhi&{kB8Ks! zMRdUqen5Tb?c}#^LY%w!J{2Icn=je{5Xs-9#ds7S(-A@J<%2h%U-t1HZb&nl_n?iC z1N@3j;2q+pQUO1PA4rp zIsDm?;N9mB6hbnOAD@mO^7(}!uvy4gqnYa?J~$HIpYRX2qLZKU9jn6a3%)J=m|yZ4 z@c_mA_MRZV=AQ@wlR}FY5Q!I-ZiCHJ!plC$C{akEwft$JMspC)2tV`(@tm-NR($7$u&V%@7IMURGhsb?C%8Zmax76QKt!Mci=BWD0ddTOd+s0)b9wJ z=tp^1C>#lpEo^=dEB6Fn94O)L3;GfebA@&-0rG@Ex_|jX#3S$?3QwpoUMK_%1n;rn zUP4_ijQ4`SXF}!52H-WJAQ3HRLqiiI~LadX}X(OJMsgfsL+mI{rj=idqCXu%*OrZhkH(|n^rc#Wq0E)WAWS35yuohFW!F&i}N1K>7LbDd@v!J5@=05)o# zZU=9ZX2dpl*sO`Hhcvfn-qSR6t0wj-K$xa)35eS@8u|r%QZ#L-;B!MWw*&G9nu@fZeWv-oArzi#ej5Yzmzn`Z2;!AyEp4a1)}%dv!W)fkJg~PK z#dqM9YUEf1_+GP4&p8`sv`o75LKZ7kz(XD7~3Q6eTt6UD{7{~ z!+!D3At*$PXJ`#|P<&2R)I;JuKR7xprk{bMBjVv*z>bQ8-XhLp;!pShgNqZFQAOf} z_?l*b@uE-!kRaw!St?095dz+6v2PQ2I45o(f9J&%+M2s4o~#a$OJaxlaCBL0zX&;8 z5jT!SxYxwU5dbM-r*{xZ6|1d--c9k)BIu=w9kUT4I#5_A^`&QGgVZbz3V~7;ng|9<`T^+AjZ(kO=+8~kOPVrnmRc0R$`V3 zHJ?BvOiKR&oxEKN`~tn5QWtM{2$wu|;|A=OZqT3~A=xtFC`t;WrNSO*25pz_lirqx z$bPBWNVq*94W5Wp4oV9e!E}ri^9VK%OTSRn)mxd{`+r z`~|VBlFQT1-DpQpE5 zpnQjxvO#j)Xng+KJyTcYFeWXXP&A zK|Ck-q*v^DdD3R|?gjZyKkzQftJ}clCAkJ2#7LGa`U1Nwvm4<3ioCr)z*V`%VB~jA zo^t{UDRPB{kj#{;bOP_ToMFN2B1=9;=Pd5aJ+ojsSH5Eg@qt{2p0hl8&`Ly>FMBja z5C!sb%-x&?fhtR>&RT8TDRe^hMd|3R8upjSy=Kp!acgT;UJN(2+Y6xA5vhP%m)Q$* z-+!e=dcCPsm96h+0!o93LKtqilDf808g?1D#=~i6s!7$6u+X%#2J+3GtN^8X=Tneu zQK2WS{V=FJC@uRugZ)<3slwel+5^_wR7dfYYa2r+SlXSYDt`N3YFs<^--S3k)uYoR zo!g~A=Ev$yLFv+|1lO(y_ado2{sTcD;TsLg)Ub!Jy!bXPmc7`ewB5Cqz5NNCE$qbV z5Zl3Kqyj{+&t-JhKGu!y-ys%5ysLYPRUz(({I%-nAcRt)>QWPy-m2zM03rN4I?b?& zFIo(2Gao}$*igReMVQ#ahmS?P+xX@*?Fi%hwui`ez8-CV?ciI|*b>ffq}A{)eo!|M zBlv7uvqbVket={Ye{dg6@8bjTl?At-U*Urejph|pr#ry^L^coewNAj_5k7k>5{Ttn zQN8OZ-*5xGALEa-}t=qy_ zBJU9cEQ#N~43ek$bpv7S41aqQz*#=lAI8q{o^&YUJfBQEd>8ne*ucSzG?LC9T;eYe zfn+k@cL=b{d=J{*y25{=`S4Z#7}b)m@g;Qr`UYRT5B-_S%c)50CcmH3yu~kj3XwGa z54xr4d~y&RW$?G@z)B_`^c9ia<_%P8zr&xU{>`9bXW5DSSlUl^NyuZFW^rug2F@oF+FTW{FqP>AM@!r;fm?)aXQ!h zl*hycqdMQVDjYrMD~2KJ7yN6gpTFcanNTn0yj9`>0UAA|g8` zET%&)$Aua+V~Z2g>D6`uXTi}uCxs|Fq82Yyaf7i0A(&D*CFCYRGEoq&Kr%^K-VMCd z!T=F*o)H{t5d2vo@EmNO6Z+B+b6yy71lR>(Uoo(YLbw{HFA1GTK_OZAown953$;(e z%2nYy9Wc5k?5+-8ijcPj!Cx2Vmc#4hhA{mbOs5JFn_=vh5IYchX@ch$=%ovR46qF0 z=l1Bx+d_^v^zH~VXo7iH_CXI3EmJ{r7-LS@<|FBE$Af`>=KZaNiGB%Gzy+hd{a2L$m% z$jF7>Goh&;6rKx?WMD6Zw^tzfQn-kXS1dCQM4=;#g@u6-c`Y0oivZsU)#+$LiO`}v zth^P*Q6;rh=-3I7y%U;K7rYm08bJIY6m!-|h)VtuHu&;$e`v6UL1o(N)< zrYe92{L0LitQ?zB-Jpt&~!lIt|q`jA|&IiZ8G4VtJk zh$To(G(~@?X-)I}LXA%#Y(COtSOA`AN{IMWGn*Ve(=@~RT&#TNwnGjtG@mkH z^QET3GpN7P%oq(&tQn4P&9DwyP!rf2O@BK0Q=;iw2!*$r2l(m@%b}K9B=%0@mkR8? zrb>Tg^g+|{JZ{xTO%qohalo5u6zsA-Xf-_v~X%hlN(=gO=F0x5c>zf^hzWIF5yUoe6TR!g#O86Z zvR%xj&wF-={X?L)Q+yBx5H8kEhTbkQX+472Eq029qX_W^El(oFei2ZJ5`VNJmOWy* z2oU#+Pedq0i&eTp;ec3aI7AML7w4c~4vCHh$RS2t6_5Omh>hrt87uCjs@YM|Jqwb@ z#L1Ij?6`<|FfIPZ(iz8-VvU1v8!vA73pNwP{6a)_O59%)#6+>&DCCzUmeMr!v{-d8 zJe(E#QPujK7%G8yUTnf4+Y4gX36Q)f=2itSS^R^Jwp|tnC_%g;&U^>cS4CR{;=Cq) zJpvCYqSrhSuZy*(z~&7x;Xd?IMJ@d-Zi*3W0d9$ht|EstamoXTq>BS9Kp{hPuK_Gm zyxb1pj=26Ph2Q{zqNvTp(sv+!Xt5B2tnT2x^9D4s2Wwwu{i)B`u>u z!fxsQRXB=}4$_1tQYxi)R+Kb^&T8(FexTzq`z3vMq!}&6b%go>sZ9nH4oZX1fpJ8CZgJ z-v_tjlyvkR+$KsVu0SD4@}h_6jAR`La8}wvo5|;-h;a18c_|?U3Kyh(I2D35_5MG> zOO`6pUAZiI(eB6mrw?n)<5A z#fI>ZD{VXig$L5uIdGdN!I|}fgf|B6hub>9!Xi0Ly=UA?(}16Y5<~s zB7LG=fM-&}9Oyll-nWFY7t-+%^vg@>V>%>XN%lSf#ge)uf_Ni6P6Q~C_{GqBD@{BG zz4ww2Epv~{cq^pgQ(Ko68F+}DjH_1c}?s8A^uw2&C z2~7{V(j|y^%GbUF<}GJbf}W3DCkZxv<(FNdutKi)93m^_7N3#ID!GWZO#Eau&B)fs zO(uZnFHfLCAgWbA}78@oUw9xeONgzKj;dPIN6WR8J&<5Pr^#Pya|6# zfJ>08P)MibDYV#1luN1Zm?U4IGt8%DH##VMR`%-v;yL-*Fesdt7cYgQOR|X1G*S2H z9{`cd^85NAUX`cPjk_lA^hSrI$fIaNkShPt2oLm4xkCU%Zppi8A1qz&Lo@LV`By6E zX3F*g5bw&Z>mk4_IlTiUvt`vjxVEzZ?ZeujGlJ5MZ%vngpA#<+VLvvqa9PcimfgFU=K8<^B(0^POCYmUHM@TIYO_ zO*HxXD7P66g->$TWPmSnBihaWDmQ(PSiZ@{)IDz62Ws@EyLJMtu9s_D(#DyG_Wdzn zp4uOOgNToI*H>V^+Gv`ztHg{-EbnbYk))WVkaP8zG5O--C z@KE2ay?zLeBD580t{AB`_5?3VJ8uIN_G)|34|boHxqu+{YlqVMAzGV2TOS9s@;vYk zYTIYS$|3E6NGQZ;*HXbLR;#-O;!*8Re1ygw(^jRI$8qiW-{B}un^ywK6WT)BMmwp^ zS_F}J?d#DHIi+2F5+G6gJ{?w)w7K+qKds$IYbLx#Z0Rqf~>K)j~aorOY*Hc$oL4eb{iOjEU! z=#@}%un&o`#T8fxwb=HsK3y*cn8Us+7S8x?UlAcYY>aI zo-|y))|Lc7;f*$7J$R+sKk3E!PHUu(fZl7}YXkeF9d#IzpS9IqL*$FLJJnpjYCF+{ z^_$ib4x+p6U@jDv>kiX|$3xfUIa2Y|HJAetFWtBv;Cbtc{{qoR$6N&P)zujUD=T&1 z)7kG;x(Y3zw^|pK2uFT8(+vc_Mi)x`vR1c{Ey z)BUj@k~?&1Gzjn1HBrK5xNZ@he%Pg}OVy^`x(Y0^d$i6IAC__lbX#bMJgD1G6SG6Q(IOOLbRILoi`DJ=f*XER*P0IE z9n)nzM$&OQ1D$9*p=*oJlev?+E$!hbURRga4+*-|d=O9R=F$=)N%xXA`%mj8)6jZG z7eQy1&+1~IgLqEYu?9?^*VV+IDd8^Y{@4TFMV;>e1emM~_ytxj>o#W~vMV~}HV{*E z@2lYET-P023+#q&WK)RT)U6){E4Or^H()bOx27IIy6&zBUWP7$s)d=lpDID&j;?tK zh<9}jsAis}n@k5Hvvs*+0q*Hy{Sict?rLXX_jP?91IyJdDndwkI{PLBpRfBk1bPL! zdbAPpNcTAs#)@=-^aapkorY$PPjzGI;LkJNR}Fa2b+hjSd!hU3H}GESj;(>QSGvYj zZho!1RDjNUqwBjDA|<+pvyj7EU8`R~EY+ok!{$4kAAOARUbjdEV;^*n=|%QQ_r?tY ze%5s<2keW^hqf2p^mh(J-Ce)`H5@J1Z>Ep1JoRm#A!;vu(tb#K>#L^%_~`BDpzf>B z*bcoFdavt9bCrJg5fE4FkJF~8pS~`=g4XDZzXJH{Q~hCjtv;y>K!Cmv9r9SGpBV>7 z8}yUB5N@D;feOSRed8tY7oz`6uY^r{EB)d&>oa-+Y}H?;wbM3zOlw#P(+@cg(>wJY z8H5zBZ$Uk{OYcVmN~C^a28dDm?MI-uM}LvN;oGlongxH+`cZmF9?;jP3i3hy!`k2- z(ihZ(UW~r^K=2OhKYoGU5&g?L=(<>a_I+SS^>y|`@|fQ1ID$B?Pm2XFPT%PpuoL=O zM#OSb-=Pyk;`MWX0WU#6uPS(_^p|TQqeOkrKERUnKQSHo{S^{`E{adZ7P6BW0dGZ~<)Q>yITs zvOsTl0DGuU-UO^rU%D82kMwJ%!e){FK?WQ>*7GNUJ<%5@f%jBzz7FtAfAAF&d#)dn zkIs6bKc+xrFZJasLgAIZh>AJI`T{z4`C8wFmO^j!(bd5#)wic<=sW#yR1$ix?_LAy zAM`=Ab@fp{oQm(C^s`qZmd|?rB0BPmo>_*dzv`1mK*7!Mgx0C;RZ5}3E)STVf&7-DM!^ELc<8CF&pp3(P0s|`XnlJ+ws(6V}s;XKuv z*BOR1hOzaAo>b@CV93+r-Ub?$P>qu<=)j1RI*s1ahO{m$l%97%T@7%O=B3I^4h6 zkV!#=8k$qFc#FYu10q`uo?!@Sn_*xGB*P3H-oov6L(cq+y2@T^Da?MkT}qLpYTwP8r1Qh%?cUJOptj8MX|A_tS<7vn+ zh*u3=Xn?+Eh&c?&6vMkb1aaLkf{G6}3?pL@M5$F*y)aCq@AqCB^5|IcD}!nuc&`l{O;z3)hDHM`F-)MR;H}}rCJ;*vjcL;T-Y^D# zhK>7Ru+ZVGkA_+?@b}4ZWIVuUgV$2z@Wn8Tis)Yr7u*npn=v{I*}5B3vfyvIaiSTC zc^Io5fK5+hm1?l!Wn2;i)80lctu1_v0@VwAjn8*LVU_Xd4G>ow+t9v+pRqSBIQ)&} z>6ut-+-8BJ0OKW^V{S6$(s8=Y#)&G96HkwYpgj7;Hc5k5CI-DzNHft$Bl{4 zK#VhPY6{{BV|&_&i#N`ss!D>9#h=IHP8qMzc2|-yhYl;AHZJjo$Qk3Z^)P+T=%8uL zc_aM=H12|NDh;idjITQ(h-Bl3S_tB@F})WgZyMLfqR(y_`%>j3&A6SaBk9Ikoxsa5 z?xyED)9C#W>bH&W=!>#D#O#Nx)?QR;$04z5}H3#rAEjb7e-lknuAn9Wo_6^?sP5!08)|v*~ zg-C$u8=VT-U|RVNRsv0T>8NCosZvuU7Gk57>-5{)YzmzO$xzc3I;pnv zwwnA3kmfei_~FPe%=Fs>*xYW~NPqKThspB>9PKo9p;JrYru{Ur-evlU$Io}SX>DIv zi7>gHhUrLCuUts(HSNhpzw9%0_ClQdP4T|4a?s@aH}npfQfh!0W0F4toG^8xQTwDx zOWzj7o4%)NeS+!r6vT4M^tS`VL{p!Q2tLV_NHvzzre*XjoiRoEA;7bydMhAu&g5=~ z!g_2fsq^s%c6;gnP}D_6tN( zOe1MRaNU%A40i4GkrU#{_8P1I(Qzt4Lyf?iKKq?IRroraS5b-cOx*;-8 z^D`MXz04!K0C<}_oPdarIgLKxSZVH5ida^e+uee~YV*=;*z_~|{{Ula%mZm>(%&3S z)8)11yQ|?Sz&wK1o9oQ`=)lE#vp|Q|HkfbFS)@R7k4CV$%^c{QL6}Wd;cut;Xmv=2 zo73qNs$J#<%MsFUbNyy89bwKN0T5-jEQI$x=JtzVWv_WnCW!mYwZ;P5Z)WXO4>30y z5A1+Bw;y6TWFAk4RAS5?EzvKB&9~}9{fIe;UNf=g8(omYF|(dlk;l#ZW&y;R!?I!X zggJ!{gPk$~xTnom>2{nk?>Y+8XUzth+MY8< z$?$OA-19dWyI}r{&TCvWC+~qmvYG9SST37meuvE~=2kRuxn>?jufr7c`aFQ^=En4} z-!Mn4gk-9DZZtaUruie)e$&iD+Q3-4`4o-z8RjEz05Z*M>6FoJb4{vs-7$}-2Ge)V z+tiSU2S|w+AfxCIAO5bLmX3fqn1c2cptMIKM5Co`BnU%k87U5-dl_$|;NYuW*}asZAe^Cs{7hhY@Ejxh9C5v-s2mcHT0As*D#b z?@|CRTDH*^{UwXHKkma7OK2AKu3E02gOzKRg_qzV#S#+%x7RJ3Xanzt#g|Up-LkaZ z3x8>rUEM)Ux1`e%=M2l`KVUP{a&j_Kxo!EAKH$i*^!J2hwq-RP-M?q~X*6QVu{@;` z;(bfG-B8H2G^Gv02bPO8o15p(E9saSP8N& z>jTrl*0^983$YsLd#Fv;Kl%XMY|WvXc&N4UIOuJ$F4zL^Tdk)hD1=#+c1UiwdQw$$ zhqYw|q!Mm@pMYm#m-P^p)OTA8s6HQMy*nM)9xFEvdV8(@G(U^B?(L5>4_H%IL+_w< zW_1t`TkFn*`VngdI!YI79Yfz19JS`t3gwvf7XifM)?^zLPFi2TK=AQaf65`j+O{@C zPFeMBkyxU2KnqAFS;stt+q2efw9$Xg`jZ5a^VWmQfnBivMaQ%+S~ur`c*(kA6e7E9 zokc~2D^}Hes9&|l`a<%$^(hreZdgyvN4TlhWGZ3Yv>u~}{gyR|W&&x}Gc=TESQk?* zDARhw2<*1C=QLnh)-E)~$+qsI($zg{>jt>fIo7Td(4Y6M%BOIYYkfzL_XF#I2Eg*I zEouLuz&hTF$R1jcDdD})8bY&#N7h-iOH*X^qz%f)R&V;q^r`jXRNRMW)}d5Ocy3KA zhUpj9TBp%VFRh)aK>NzNo0j;+*2;8F;Eh!|6~q#&2hD=sTCL?ES!(sC^F;5g-)O=3 z-a7X(V)yX1C_N1Y&_u1x9d4Inxj6U9swsmX{g#)&>3dDKP*3AYFhir|8LLtT`v;#P7 zo3Q}?j@W*qs&uR^lvdtHZC@{-vyRye^!_|<%Z~<#v-zxp=@YiPNicTO_JU3t#@oDU zp_yPCMw9MSHZL0Z5^bwC0!y+jr#izq+lJmyKX1E!8&O}dRkooEF4|6<2l0}vcrm&> z*_KAb=Ve;~{&FUF#WwOc1aZ~&dw+y`%~ppd@+r3OX-ak7HoXwM8@3O$C``5aeGieF zw$^luvuy9_Tg7bK_dfx$c8?#}zRm`gXDjWEr1Nc! zc_d+;&=kFo;);3`(QYp1P zc?ayBZFvfEcyE&(i0p%H))LtKXuC!A>rb}j^y2(%OC1R-Uu@6m(AHPmZ-WraH(PJ2 z-MiWAroptkeWpM9Y`MK?JBS|k`Iiucr+pU{+`R0iR(SBXPobSAAA4gugyU;};RVSR z_J}Lst+Zbr4&EwzEbZH`wp$Luk)K`J7mn80&rt=^-#(1KTwH6fKqF;FUO`C5?NTRLiL>{oSIG%` zXdi%+_FpOj#M{5NghGP-4y`Rt*`M|UG11e?7woY#OSouXK&#zL_R}Un+5hif{^<|`|M!=h4y8u;P#O{nTGNrJ3|%g$985h z)SuW_?t|N>_CbRIp4mk@ne)=#mI@QE?2qYl)MESNd+_(#erEu3cw@g$=VnUmSLr;; zTYFatZcFVxG|7Kw|GOc)zqeQ9!24iV6v4_zd$k>K`^kPO0ld%l7&?OR#eTmf^uF4= z^+soXv%9Onb8|3sG{fETT`h#W+;NBMOCFBf^cVF!9nYwK=H*~%vf%C5)(JuQI&5_K ze}!YT7Zg@H=Fzab%2AOvNLD+{uOPX`(Z4Z*@OL!G1Gd%?w+oU1jy664qij_a@B;fSMZB5cMwR?wpG zsAKOOC>(Q)r^4WI$J0v)H_qXI6AC9B`5n=NCml2Ca9O;g%V_8&I6{^|@08;uEoGA& zb<4r#X~&GFkUZn)qC)WJ9BZxuoOkRyi^wiGZcvr@k|QMnAtgKJ)2ipPL!dg!RmUWn ztzC0yVxW-XXdVqK*ByEEk<<;xmSu2z(~;?eSZ+B=c0wf05kYhPbVmwJf-@Z2rtqHW z7)R^B+m1blfZcJdp=y1WBQO~X*^VJ0P`Kv^Z4QMT$61<#-FM{BpK8c;+%ACW2ae7g z;V;jzjS74Z9Sx5CAC9g&F3akRw;U}~TfTemJ!v{KD@(IsWonjYnOW)2%9gPakv&8< zvJqtn$P$zxA_yo`hKOvDp==QReNTU#&%O72&pG$L&-2`S&pG$Lz;!R<(7K>!*-8rC z^e%gLJI1ANSrvWO?kw~92`v4~QbQs0?lNUISO%7@bp~K?*=jllF|;hu3eMqWbKVer zZ`mhPV7b4nJp?Qx%MShkmeFO6l-D)3%(xkx{nr!^?~Ggi{FDS#3GU!phTZYoNFj5Fj% zIl*|FPX7ckq9&jym~oiGu_25f$+A$!N8u11#_*-*Gn~;eAEgKe`#F$E#)scS!%2qi z^B_@-<-fzSXhyCRN->OX3XjGz)=-Q+juAk9=y*mTCB-B#94o+*$k<4U8mAbYF{n&p zoS@(6G$ZMKRGwkCPS*i185F=O{u zw3RS?Q(@pG#-FsHyUb{&m${7bD=l2EFp_3~D`)t*p|XNuxdQE18B54#T*){~uFfh( z2zB~8<2zea)-ckNVOcFh^Ez;K490C(R?isQ1hox}rI9E#G87a|y1_790cR8bL3u=L(n<&decOBAD@Pz$2N#EC5b2ORFF{is=*ymS|=g zC9uRWk5F2BEc17A>BTXBei|(C%-?PSp1?G2!B{6UrL7>Rn46pdNMd?C37Myv&MPs3 zXP7&-1DDKvdpAlcOxaR!rZR8FL1r3LOy^$DGM{IHC7ro{2YQ>qG*T*LCUf97l+H1K zvH+09yyuFpWHbLQg=IO+ar_m)yj-ROCE(^Uy&KSWo_Uex&3xvHWUv%4an=WK4s-F7 zF!v&}=qTC>nXAnpMa+tN;EI_mLLjIr2N&%9!5YVCb$e zi~7*9a;86RG%J{&eTcTJ%pK>Up_2KH6{RZXp5^FKHS?!)V7bP;cMv9BXa2)LWeqc9 z6Ig1Q51vNH>X@PsD5_^hkt4E!`P~dOG%_E32f}VJ58Q{jP0X(-OQD&$`XEXz%!Pk} zv@(0T0JzDVnnGI}^MnbCZZUHnM_W77X)y-!HuH;QlscG4@1PHz%wzurOPP<{KwCHS z>@KM7VfK^vb(p!8u8q9Mj7mW1J~N3fCmUg|qtDDJb3qY|A7egM1v1X`qutU3^Zh5F zZ<6@~<AHG>zc*bYPP&H7#jDLyPs09brkF+ou4$I?;e zkw2^Q4Uhm<6rI^R&WgvxGB1$za1ZpIV7==CTo5b#Av6TDu9?6R!kVGoL?}!5E=U;b z&s%_pvp)U@qZGkfO}Sfq%N*U1fF96j{mI zCqY{k>jsU|b=H;`m|Me=D9~2Rs-+Eh9V;;#rFvE!-6q+#HnPlgBg_rfU-Z3h zV*P7?fz7Nm3aGWP-kN~+R+cOp!fvvDc^T%mu`%(OkZ#t?G@g!xySmH=7;;Nr4vvz!pfzDl2O)?0hlz#TKY0<8E4(- zgy;!Y_+uzdveGG$Xo~guV_=zP-8h5N3@c_S;15`N6m*$oC0$2pj#W?In1`%=lBdt zogylJ?Dr^$?9V<)LF54TP0GkR&VGy%90S=~>j6K(eoPNLgV>MlM`bYkCtAgZu$A;l z2xU*kf+dVSNr9?x_Fra{BG`vK(CJ9_b9DUrBzxtX&= zl*Ue=+4n5lm(r=z*_W=ddN4z4dYE%V9tB8ARu@ z2gqlY#~#8}i1W^~{d3X3eD=Xgzzf)SIVfFVU#2a_MfL!>PYc;K;ZR$|{=g4Ecrn{9 z6_%B-{ew|?iETdyVWsR&TL`<%K259iGIqy8kSpv4%3vsGn|x5JV82i2Ca$v6Ho}%l zc9#%+uVR-bq7T*VRi8oTHFl0IIIpwcp)FetoBtg|*RubjgT3@6nA^k-pgiMd_OVKoTG$E$SX$Y27a;5=yMvY^ZS0@v>AA%|xCEtk zwtyl=x7jb!qOF5{m?rj4_PcjsQWtyEU2t}@camSfhwVnMXfHc=5-fe}&S@BNhrMn! z2Be=I91baW*$tF)GQiGN13t+1B=5)&+lKrM!|ce_V7bR`yaaNe{nAyC5%z7$+#F>K zH=tu<>}Ypr7-tK5Fa#59HAUGb*)^|&%&;RUh3f(P487B{>{n^|Gsk|3(mfust53r~ zTTaYj2(#lfQ!LA#qoEMC1LrxqXTg!vND&Sv&WE z(Q9~=Ge==#H_l&dENYH%oGISn&dJB$AIF%?_U5X%LcgPoR6wN0y!H}Fd!#5f0EZIi1P_Kpo2M??*ksf zIZsi`P)rAcOR!stGlOwM-{Wjn`-UjUg|oR^k> zGn=EQ$tH*M!B?ov<+PSSbRMVhUD$G-)7%NG^EnPu^r3(=OSjBi;CxBDtcx5jMYak# zk>mw0;WU#Y>k_B-0Di_&&R6t1T;}M>=U>K2qwV+=jz7H?STINpXD2zwYB}3&(6KsBFMVn2IV}{8XyACo zgEVsb_n`6y$ITspCeG&nJQAFb7yz_z+{nw($|VpWhrV{s z|7av`bFMq0(;b}M^saPrN;addi*uFIFSN^9DHc;j&VNe0`5L%H>F~YaQ@hjwo%S| zxllC5Swze8agK3044mMwDQ$R?W26~k zuZ-h<=m3-AxwqE=m%#P*guXs%hWYiqczYaz3iyX!f$)p2zc^RDNf zrwRH7_qPJDG;!ahv#ZVA{h6q2;r{P9G_-Qp(~S%_xrgWqfHv+^LUimF_xBZOYv=w< zF}K@X2O&rYH+}XXq(}>7en6z?z42}XO_E^{IqjiGaU~a7NdX`y-o9@Ecjg7t-LEdZ30f~5;n^iaiYrg> z7syfG|J-1wJMUyUSUh+Mr$9V;qfHnPFJ349vS6M!@9kEUe0aY#LW3{wB28I-yf?^! z;?H|}6=VkR7So#cI4_Oz>jHTlwC)M!t)auUA-qF2s0`&reFx4k-eLOv!g=%S0gvD{ z)PpmU_buIhbCSoQ0g2-Ee2KPbUJscR!xPU#DVDcZhqeUXl17k3Ui6F5cZ#=`Lgq=l z3pACV<`wfG>pe-@RkW-*#%zIa(Y*I zEIZ%|d4dG~|MwOM^W;ZG!ZI(uiZ;F8{BP<}^5KV3rjsv!2~A*r{6`}p+MoY;5?BKG zUs5>eIKS>|j6@*+Uo}LZ;D166ups`WgJ22fH&J*kg#X%~uq>1xPD{8j{*xa=N;u!v z7sf~MzoG?eB!AZqC_2f1G7PvV{ z4E{L|0Ga%Il-%EBru8wk+r0$OdNx zf88@^tKtV%qOzJ_cmo4+jlZ-5xa<7C$!Ar=pQJl%YWWJvs;=V)(Z{%+f8j7#8u(vt z0ZS8qjuN4p`MW8zv4tPhfgx|>7aLK!#qXnwSlapF^ijRd_xcD@IzXVdlOOjQ+Pe5R zC@j~_FH@kchi|WezFz(_j{?xgUqE52JAButVeSBbUm7|+$p4V?9EbR$&!TdeKh+1^ zJ-(3qruX@uJ3!_L-+?C6QGQ1qILG)ulY@Pnzw#bR6Z~9SRZjA~~F!Tnft`@Kbc?-zpJkZ(t8c3T0j2WssE)pS1GUNBD6nS)@{JoLd) z@Vz~VlOW0foU`C9@`AevYRIX5L{NVooUVdvbUNXvfJqarn?Txv%433zA{g&3IO+_U zUV=ZiK%ckZnKh{N5qzlv@f93+0;2r{d6YTkFA&orF;MUl9i~4axJTi&Ai*vAwgwBH zquVG#1iEmvg$mY}Kv9^$r3f;^1+xzTj}TPS$0Jg}xd53b1zYa`5G8QVgp_DOKnnmd zg3ciTVg*?r(n3DW7qnItGr!|#4taFY*~GlJ#a zusT`rI8D$gfbc`iKARC9;OhNU2s68imDFd8Y zg0@$H%NArj2F@J8iH}g3E4V!$8uA2QZNQxulu2M{}FDgp}^J#LsBuMN)$4UjUgu5(Y(Fd?haJ2xoToH`E1X3=r z(9*9$kVVhZRe>|P%_{{LX&X@`cykF9RSRs$fq6~v_#oid1?{^ax<>HkFZlUu1;H z?g&cA{oOCv;|FqA&{PZ~1_aw_F*_(&O$)3c!IGz7%do(okN({g#6FFV-4|@Q56%(6 zhG#M4qk>g5JY#|ex~pYeu%6tm69Vg-P&+B;pl{EV;2ql4O$)kdi#Q{23>&x7373X5}qU1&S{~|e02JZ z5YrLfD&dixfTs!1Qf}c{;h9SynZkXPOMFgv_y>?Ip~EW>mMh#$!KggpoEfF_!cCVT z?4poM&doxh#TIQv!e^F4(Iw$Y@+g%Gzv)Ejvaq-SZC8Zr_0U%?JV=)vRR}}=#?aLY zLn+;=PWYiWI$bZ^B?X{C$P__CqwpH}BX0-~)84m5xFQmOR^i|(wA~cm+6tL%LT5gN z-4g!s1~}V=J9|-iTiE?N`p_X9JPl!;!eq*G>=H_84(Jv>PTqqa;kE%(_6l9ehtwxb zT?7qxgwDQ@(l4y?0Ows{)h8$o2w!l7hC$&VZE1#t!&lI;VPRYa`hHLNG8-)Sh2Fn_ zj0m0S2^kkEUO?M~@R8H7Wm4F64o1ufIdpC317TMe+Gd4|X_}uCR?$-Bp-@CIB3sd; z^aI$5-fjiXUbLNj0uG`X`qnv$9;N;{iM*5;0%y_3wES@uU3m$Q+fmW{Rv7Ol8nvQF z$3){^Xmc0+E(6>{^x6>GJVgaGBY25c*Q4Yu+D5BUA5kFfAACh4A3}ql=xd5J`HLQZ z1GoUu5!&e=7rpro070T>C?z~t6hQ}|LqxCA_c~nEQVS^&qThc9XQarUf=VYv(=Vbe zN>mkxQnV`4RMJx*{?~3-*c5XoQ6uoMLA`N}~heUfLFa*OQ!&?B{6K$g#67Gw(QM_?P z^x5Cw92JGCQ8_01^A4npi_U!lwG*PA&j6Sd&E7}bl;~aha6S-a4WlcwB1d|l=R~R5 z_^BMkF2w05o^FTnPU5aI$aEJono;r)t5%`SQ>>*JgO_;kRt$l+_+t~=e8h2|!3bY* z)NZu-i6>}P;xG328*KsNSLsuET>Q^!*b*o z3l-lPhN3X>Qkq4>#m9dGi4ZSb2GNn?9q&WRN%6Ook`pEF{uRGUv{+A{$`~=5rq)<- z(+LQR6MvQpK)krV5-bT~79~O_iW`iNBx(z_a3Qv>iwn@4pTW8RB5d!pIa0=%W8~;$>54%Mn{>NtG+k zSO`F#*zN_8^J23IEcxOuBcY){+%1IK3*wGGR9+OnMXzt6_}@6-io_=4rG*Z;Vot_~;`rqFHR9ReFnfj#AWG#m?_R?Jezc_>T4|m1l17H~t zZ~qacL2(E9iH5{;KfPMIV#R3cl4O}K{Cj=IPDZ3 zsR^;x8@Nfag)%gz#E!GTO^YMQt2rZnjgD155dZrr^v#NkIpCZVpQZGthvJ1bP-`nm zeg`ael7)R}vzI)53?&Ci1UWDrB|lMKo|7at8*pcd=Y5o1BrpF7wMQgBy$j+hIr|TU z9h0p34cgr$=hgz}A-Qx1L+2?et%EII5|age_m=!j7moNy;`Qi}ucXEi!u%xjbZGOJ zu-X6!kXY#|qT><+W#tA+*1ZB@CnT-6p(sdlnbyLgk~zvt50g01j1VsIazH6UGPDA? zND2Ed*m+WNjZ&4OB=46&QM6=!8Z3*EyfFwnVcAN<8LLI76C}GS;V@D1 zIBkzlNf_?}o+JsO&(mqi2!+YcNCL>Om@Iib34j#ICVH+@CDUFIohJE%Li=YW1OLFJ zbjjb*P@5rH6o$%7iR~3so|8n2iSQ@GEV2} zN+prx_PH#1?f?udlWh4DY><@GdZJOXY8+~tC0zrM*&=!OAk?->exm5k zP08Ps5ZflHc^AFCC1HJp$_|Oo=iuy=B#xu4OXB4OMctBGnoxQq?L83ID@mUO>6fH* zqVIPlaaQ04BvHB0Hz;xD05>EFp&iPwqptj{ojKnLAsxk zR1&4%ke~LH^u^oYOp^ZiC4RBf(#cPu=#13-GR#euD(KsqBE44vMXA!8H_@XsX%{7C zrAyWHozIZ|ummJi`VH;a&q>GLh0H8z>uadYmb%gII!78t4)$E>eDWvfNmtO)_Pn&3 z2a+#+^9PUu>38qJ>I>4aMbLLq`nm`76-rZR_fjMsszzI}^w$p|vqYLeN1iW9%MH+1 zD$TA(|1L{^_#8bdlb-nkmR*t7({8C;dUYNuE2JJfP`WB@qWP~4Lo`=~8+P zo24(%bloC-`hDP9rFU7Vyea+VGn8&g-=yVFyHrHJi`!B)t;jm1d1PRhbT1`9bW8my zzh_9APcnz4$)&*Elm7M;)ZUk_I)Ta&>5GR@8kI^%!8s-!rHI40bPJu&nUHdJLfE7< z#u+`DlA6RI)6$^-LG+CDIr2w7kQVI&U{>n84Z`N677FG+l%{!t*vb|^fi^qYYhS}M zds!R3+77avw9s{wrK|$nN#?KtZO*dQQdGLgvXmf4WWTO}c30Ui@1S&4Hu487bCdCT zka^Ogzeq4klyvK|_IWu5dp_{o~gsPvb8 znGAgaveV?#IWAj3&dosCHrhp=kbOn7Z;-5`5~71;2bm~^$i936ZK1Mg%5D#n?WKia zxGbHrc_U=peGnEYdyUrDCuJ|wQaVbuIvwz6+2Th~86%6PJgZn)(@s1EakA(rka(Gz zVp$0?4;s2eS>0dIa7q?F0ewlbg|wYJE!#lC&dAb|K$2yPSa@1fWQWtxhg8`xU96ZU zGtu(ktSt2?q@>F}q%_wI*_-4B&6I5<$KW~H3X1z?$zo|snk~CPezzQ16$M>#Wu-L7 z<;h;&i_&@7->YF#zRa2mDHmn6S^x@VZ+(WgBH0dlq>5!Cf51y*m2aZ$l1xd*!AfN& znwc-law(&=Om?FYQm)7x|Ah8(*;m(LZiUR03UXEU*9T~;lr?)pLzV2{|3Io`{%=F( zHCb3IG+dVn(?M!vG77xc%9!L2sgqqyNB`<&Uy$p#K~_Wh8fBiehQ1*yBxh=qY!x{| znq|Mzv8NW9;V3%RDw9ys)=k-K6HwG9E0%!emQ3_DWVXxF>8#~#+3Q=OuS3RKgi@#M zbxQu|l64*cXSb|yBZT$HzIp^Ky|PbjA*@dpO-F+7$eyQVMZfHEIXLgihKzs@$e#9u z=s_84I{-tn($@hPmhG4W%ZTi+bdXWm5{eLy$^KW2Uu9hOG7DoiA$yEG1d}rVkI^{`4#$cyyd-=vE(D~q_auB@^N~+{p9Yn^Y)idx_~o4 zzMUS-<8n9hum;LQqEUH5zK5<-43cjllY-^`+o3N+p6LsgQ2B*rXbY2Xd;uE5<=(VP zh>-ix6cQ;fyokz^@)dL-D@Hy|=ZIqE+sPLcCtvUpet>v+37MN9zd=tyqI~8#m~=|M zLkuZN@;wweI4y5D4BQ#{Qo45}S$?PiqEqBQcL0|vzuS-TOp_;(d*iI!mGU6c20XYmp65Rr9f^=2Z%1n z-%&#JMfu~aU}vFx|05tp^54FIqGEX%dACaBF0^mFBtJ?4wNiP|s~Gaj^8ABfDU%OB z1i2!Aj5bu|@@4djR>&Fepnq58uh3sTRmz)bF;peLtp}-=Po}`mYx0bJP&3q^JE{x>m@_3{SF^KX#r!$BJ5RpimVA^)4suQbWGuY_gI@@KC@UyFQ| z2rRAg0VPT|(R;%Z%T`!_(k z<+a5C^vHj+qODgx;tE`!{7V4 z_^>=T658*{moNaoFMlx#!bapT`vEs9FRw(~nEdy@z&S2|k(LJ&a<@*DCgt)s(KaQY zrL>f3`98Yjct+kxr?ei(2k(N+%7 z6tB`2!%>k;GlG-Cwi_~?6*=z#?yB&o-{`2K`5RQaDHh%Z;FzLM26NpNdNBYViq({f z?x{#jfD|u9)@E4dt!U}PNcboo{qJO=;=SD{`6<4mJZgW%D!S_`K%u6P!EwdMbkZzP z;ai5%2}LMvlY$gYv=j?g9HEmgA&TN}PzqIC8iwdF#c{f#B3#k50BR!?|6YUWNX3$M z=-5d`(fcSxDNcQfA&6Ey{uK<2Q8fGyBv#?`97M+{nklRkuXy7hs7+AJ4}_FN#Z%c&JJEM3#4y9y838iMFDAM19EvX6>c`MQsZ}QOTvx*!iXh>H) zNq3oKC_?>UV5Z{p<4|-?@s9wCvJ|l^peR@I5*P41#o1{nI z_JU%|SFrPQfKsL6FIoXsDK?P@xmqDt0e(%ffihRFE4C(} ztws^>J4&?*CngN6Q&`u5rCxEc6KWe2Vp?N1DxM4n{D$JmY?#}m7@dZJ&5DQ5qOwK7 z5d+YwaD4z_Hx&_dxTsCBG6gbkDM~1*zFo1O^3QH74A~$ZicE6bbt<-!qqR#hu^Ga; z71iTV)T4-|^ToXi_dW>gQ(RjNa!1i7gRp+Z`pZysS20FAq5;Lh#TcGJ#arax9a22j z2Fr#O1GIFwr&y=}?!MxeWQ^yC;tSeLjw(2Es2x+RE`-`~MH{&{CKS#OKqeKBk%Mna zA^8i6rWMO64m+c;Uj-=-6l3H?omIrsM{Z6L+K$SHioxU1Zmax(LTGl%$9vH+du2)` zy5gYx&;}+sDpye?#z~p88k6R!eyT=@;H zngf*zT3MY?j?+QkAmy50pf*^!>k3LC$^}ZmLzVt?P9sct!Uz(syiX?@Ba|vy>qja- zz6V7omA#bD9;I~YhlXfnG5I`VlwVLVDpvVSA~eJ)bBh6pSE}etT7oiV1d0-skJ2~m zl=2yJ#w97gp-a(DD>uJ_Q97dxl%ku-$|Ty`rzl5dfTt>V(cU6W`AR3qS!KHn!qSzU z6jRJleoXIsrZV+ujORJ!Foiv`l!xhxm~5qxZYar7c2Wv@t}@y`E>rHJ zmE09&+vBJ#S3Z0RqAQe96zRRHoS;2=rE;SONR=|b1uWIdm9!UhSnNGELD%baerAt{`4wJf- z&96XokCJHvDZR=s$urcayc`T$?kMAah7tYBjCP2=tF&Jaz<@H;12PAd>%Ilxo^nu# z(tTyWJuDkhmK6X#s$4@kHDk)PyJ5t*awHFx6Ur^eVeX{zH*!-kiYnWS=`g%PJ!at?ZQMs z$fKL0`j8SFQ&rRSWlvK*#slYB)%$H=NmqSFp|A|qQA*IsRAtd4d`|Vr8Q`*1WxvC+ zY}G>=i5%6_6k^I%B~GA}r@CK+Zk|`MDV~$B3i5=M0#&Cy02fr6U(xrAs^#QhFI3&B zhQ1=z^BQ!lSY>bppj5S!_D7dhyXp5UQ!(iGyQ2EvmylAfdd?NLRH!acn(I|n(+U78 zRln{=Ta{`t{eIP|>Qm5gO(p*tCS6y}bU}2Ds$m#ywW`Qj$gEQh(owo^4P6QwSdnqH@F)hElr*`u0&6K%b!d3k8-S5-d-VRuzF=Q|14Qw)?7YmP65qYTzQ^qpG!ULgttX|2K~}N0mi;$_bTw5LhNv zBNnKgQk`srlxdYcy<;;fo2MYgMer4(k4A(RW96F~tU*)CISo$XRXv6~?=$zi@)gBkHRZ=WDe84pz5Y5%Zt89I z031`F%?69RdLQM9d#E?uLYt@hD7g^5)SptCh_`wTIi!5lNwg~QRkJBw+)w=+{mG5L zx-1MV0qR&v6h5wA*#lvL>W$=aIiVi^3`PX0mCfJ`R`WK1gs1~)T^_2gpq)*ax-K0< z5U&2r3VjjkB5!DqR9~R9jg#ta7nU%CS$Qq@uP zu}V|dtcLMt)e5>5IbEGS09=MTr~;gs>V&7ka!%c7fs`!usYFXOd^xTb!h4{g`grQ{)~QLp_SZMEuuhS651Ru7}CUOl%Qy=_qc`vQbDs^6o%=neJF z9Z=Myj->cev)Y@CXi?iWgS4t`YM}k5y80`a+ooP4Lg|*eb{10F)xXdm6yH{VyBlpC z>V1m{q(!w98o_>3-VF*dRl9Ysa+@rJ+A(S0!I_-04?B? z>W!~}OsPv~7dfr|gTga2>hD8g-~;swF9A2JZlg`%oVp#kW!t4a^ekyWt8Q`1_4HZRTiF5tX1Qa7~uXhLY?;H&X+gcLsw>sj>3 zU-M=#6a{F`9)L;5HJ_>=I#4q~3)T}F3w1L{^C+dq25S`LZV%BcCAVv+rfMxX!!#Rc z{TZ(Ld_5FJXbL|DE>aT_2$pC~r5$iFnuhDBjMbbA2Ru$wvjC-dO`R5P37S$`Lnmr3 zzlT1Y(k!ci%p}bQTU4Ibq!)wbj3((OL?>%rCRbpJ=7lOqN!6U8Nh(dlNJ86L&AT$d z(>2qyPtDN0d;;1tHBOWVaZa1U>V4n%kK$>Ac3Y z6YzYEZ487JXtsw#^aV}+GyoShTDp3rP*dFrBZ@S+M=+4ZnpY_qszmeGpRnbU=A)}1 zrJ9qOFz~YGbNW%sG!08px}ur>FXKg1a1e?rGz-aVbX8+)hW1KL*$UvQG?ROvuUg~g z0}a;I?d|6sI1pW1u&vPV-(zyJ+)+Py(&v)7(E4DAlu8FC&u zYCosFsFU_v^5i>f9n!(#qTNqBz9ZV%H^Jhn9jDj#sMfauZEo5%jSzNB+gAnS-L*E9 zx8|X>r!Rx2R+I%6FYP;&p5U!*`WtW`?R|1O`D%xb!gxPz1bq(uwa4ECXMi@2l6sG8 zkCRg^P`h9Rl_#_rXHglXE&m0a!P>AQltQ%X?;#~rtM~?^6s8^C3Ju}fSA)=YQhPWB zoKf10Ltu&4Et$kj$Z4m*&uf>)L1w=8>?q7F&^nS+^n!MN5DdJi zU49KLh1xL6*(=ftMQAJ5*6Kh?w0k}S%O!2$2k337*6VK=e_3l!ces^lKUoRD73~)C z50+~O$g5JJee_!Zu4*?e2dUJK(WkjeJ3}*9wYF#;IIn4A4xmTZwR=B=b=sq}gRa+p`aA#)TAwe$(x^4j({n>>9s^60c4Zi3Hfy&&0x37O85DeO)1F8K z=PhlPGlaEkKe&(5ZSB0bAf-dQ#}|N3?Kw(G?b6<)cxt!yHaQ}DwDq)c=+!>62Bc4W z$^-B_+U3+ zj5e5}{|~h7G`-AfpHX65=Co~#q5Yxuz)}da)g`&1(oPpt2%Noc3#~C7bS7v_4JK-a`R@z><>N060j_O{cNzqNWk=%C2bhATH>#pnh2qW*I zTfhX1r!L?PJT_iBaRy4>y4^JQ`{;^kZ||#%twYIAH`@n*zpjb`IRUx}augib-E+iG z9H=`-`;`;A@>sM5>0X|O_F!G!Pmmd+dx7qM3Dv#vFW_OicLrf~xXy*Lqa$>oKLHo1 z>k9)psk=sD<0xGbCAUQDn6##i(aq3@GgjB?23z8EuTZL4yzWW59y~$!dNnLd)a4st z%PHMYl=+aPE2C%kw62BRl4o>H6hTeaHH7ZJ+ZtN&T=jg)2AS_q+b^vgBx_fjH#ChEcy2T=27q}Uf1-ic| zs&GN)LtD0sI)B=X6zYE8gtj8xhYKLOSa)_mDob>W$6(+ko&8(rbgAy*6)3u_(`Q0M zna+O(@GH8pD40~PlP`q!3f*h3f%B^F;6Vth)OFH^s!G>Nq1tL)b0R9Q=_+WSb6t0Z zzArVpL*1yX)rsk`snaDYQCY7mzX>B6bboCJY0|ww2MU^X9g9I)bl=e?v{hGk8*Mjr z?|p$%o9@D^FzJ@=hc{5!u8YrxWw&*|=R$3l?kD=hcI!OpL{5)x-?R7x_38|3fa}wx zT!g+mx*ZWPqF*O11j}9Ba!*ta=o~0>Wl-nx6e@>wyXlD>)*V}h-rmz~q@#ZKb*pH> zI-+y@5!y#}YB5;GbVq3|JgzfQPU(bh(I?P8sXI*lo6`MEUgBw8tq~e#bO~Pr_dqwk z2O4H|XXy&?IbG_H(C|-dNyE7O4r{sw` zqTe?K(XRT(Xwo>UmwgQ4rY|E0$}xRA9q@M7-+vT15BV>p%_tP)^1125UM^Gd!P|vRh?u6cZCs=~??!Q7PG=^H0a_NO=>Mg*RQ+Q5C$BX9 zt4r~Koz<_4hLm)@!)|EL(1(8uMVb1|4*@u*Kd=%cOP@`y>TLZIilpV}D}Dh>u0E6= zhCKZt2WUU9-$G9NeEs)ybh$vEzZAF&dhe%zyQsfP8H0uTbt&L1(&tPWD(FI}N;M4z4y4WoLm6(D2!FuDR~Twm}vq)h1J z>7Oj8^@~0M=ZyXzS`$6cd*4TIAL>W%Vz6utpU_s;&cK;Qo1)io}Fg&&&c19X5#RG8CkbVWW;6TkLv_%`fpl3J6P^5#Mv4+cZ zgf-5fro7mA!;j$*cFM478n`3_lOhMF4Q4OkG7R24lrjy|^njf+?4UDZS%$rI@F?5x z+9JSn4D0E9Rjy%}?peq)w3eao=M60jP?>MImjif#LH9a1FBnvmxp~p>)qGf1Xt*+t zP8S&>a{wqdtfJLSiD4l*7%mxHpMrs<26ht2Wy8;u7+Gd;$%6JPhJq51a)V79+A0if z6yd*W7^SJM(h$55mQ@-2D9xbSkl%pPHN%op7;)X;xd0k!3{SX2U#;OKHni6nwl|@z z-q11*nGJ@ec>pvTHXVbo8-^RSwrMgvGlW5IHrxmVXNzI+J1DgpcKr$XO+(r5U}-b7 zz6IPZLkZnP)o%D@81UPMeIEjVODI;u&Q8NZCscMB-dqJm-3I-C-em)yUW;Bs_rH+R zXKgn^TWfK|{wW!Ow___SdkdFW;gFYJQa2Zj?`h@LfkkpVJiSp7F} z4-GCIkZEg7CikM7afWgrj~RcY)xEp%9OVIe7)xoLIv$E@FX%8-M;6l@UfY?Z+aGfpn+ENnyn_KrFg}|L4T;7o zO0zp<>Y>v!6DO(Um4=jM0=kl5D(1i9IPs9XX&=jU9B~Q=0K33#6Pi1~Ea> zjeAZ2kYPOh3`nMN)*Je=jeay!<``=!oR@3tegM&VMh1n3&l|U{MPCUy(s=sqxCsu;sGx(h-O* zGsbR5+Z7{|QmV?0KQzPY3gc!8WL`D?GzCDV@#q9dmGP-Qa8?_A$fa=2xULqJ*Nr95 z!K50as~o>ktubB&c!QDuHq_&bfMJQ7UMPrSXzy(51$#7SLhrE@LIVaoxu8ZRlo?k=F&% zYiwTvtNV;EQA+9^V-^pkek0o%qjcApbQGllV=^rk291By`J*AD-Lo)a*qDDAN(^4k3r@`vo$?T2Efkr3td!VZ%X(ilUomZbjwe%OP1E@RoHVf)qB6?#_#YtArk*j_5@RZ$ zwN0!^L~E2d(`9%3?(ru58yMYFrrb#kPm*aJ<+q+T9s3;m&X}4h$1K_O#6q;Cm_Db} znpD%bH-Sqt&HM`OXHB73AuQb#{{%QQOi4$eJ=1iJLaygbAMONamg#vJWM-S%Xu`}f z1(B00*L3(hROXq|>5FpSbjSsj`KH-clnPAYEZ{DfzDFq7yc$22&QffE!JB$y;&5 z^wDeh;aW_!1JKuM@*_{_O_L+VlG{vy{{nu?bcQC(cGC+KZ@g{VPg!LhrqN*lI!%@2 z0qHVje2hMHo6?0KJtp2C(B5lWK*IV=rF#IlV@jocT)#<0*?{a%xZd99L;-QLdnTIb_+6{LC_T!^Hz6M9x*@rJSyGHqqJx{W-g?)zPtG& z@*#PcJ)Q>fH2ZxI(OzaJnqj@oz7#z1F{jfT;A{4|gpv0%dvpNjZ}y!7OMrPDZJ~~v z&Gf1Tns>?oKVcrA|GEh>7hlDI1e@iw;|nqGq&|e2cYg`(VdlXCkZ|*HdKeTqeF)1lPtoNI=gk|wh7tMZ0lJ5$z`Vc#r3>aF zT2EXwe?;m2g=RkrQx}<^qz!SgId>0)m6#U? z=0o)HC^!GniXo^le@92*u9{^ZLVKmzN=t_-^TsX!s?7xzAlJ+Z6yUmUzIFzpYs|Z7 z^HXcSYlg5o^Lla@)teO*#A+}fChu0G`BC}`-!NbQ4MsGXKd^%l&F1|&C~7fJ)uPmD zwtEBva?`xQ4J>Wu-2$k+Wxhds?RN7t3mR^l_n$$j!<=*o8amDV;}G3tUQC&d-R4cf z(AQ(`@81lR3G0J@%FyC+h%bYp4x+s*;#DdfU~zOdJ!FSusj(CfTKk~bEA`m z;|DvPEt*f!=3>d*j?xj!HJa^REytID9JR2z(dK5+(Sq)nC6aPx-7QTt342)9E`pt& z7MEt&;$>M$M;5#-Z_pJ@K9-3v{BXXOPs<_2&+-D@G4F2)p}`8UEGYuugk{lER0dhL z^#c%W*I6A!`I3xCx6CIaGAwh8fXlSh(J``fmK`60 zCCj3z0!y~#4-Q1ytN-Xy&YI(`R{uBC2Eh$WtE?ZjO#?Mi1`IeR{6_!s- zz+JV>L_>6?r869gsw}UPv$5LpkX+o?ELn9ZUAMewhqf9^DcuBDYuQZ42kR_plp|4Z zX?_->8!W!`J!`bArRDMs3!739nk?^A5V_eBLn%ismNk>;W~;@;iZQ!sd1MJhw^=$L zgUnkNBjqc$TN>VnWw$M@^l#}M7H7(X=(I3sfz@UCA055xwzSVebdP0x7*cvIuTx5D zpXDs&ZQrr{Nvr#QOYiRARuiQkx><{)fFHB2rFl>6O=V5iCkB6sK{S5$K*6-pV%-dQ? zetjS7CQ6v`wF+s6>1RFj1ls(q2V5XC!1|OIq#U=JDYzbJU9kwgJz>?*4l~I5X(9{^ zw)#-yJj7}-0vBo>qxF24^;1f+4Y%HS4l*OGq9bUFwEn~gIcc?_wSJWKqnCk;wle5@ z9b>&f_ld_^zokU|IBV*cz{Ojq$Pboa4Pii0qBVz-KTcU|C^;#~`U7o#lC3EevP-c( zO)2Q9)=XN^rCIlO#;?J+oVUJ8cX;Pp-TI-Zz$&F={0r812O;dDwJ07eh1O4pK#Hsf z=|w2Ewto$oCDwgmV7X+i8G*1;>v38uUba3N1kBkfUbn96!AR6t@4SRLr`Ecw6Sz9-PTE1& zTY2Q-Zm=FG18KA-7o+Wl^_U7KHCa>sI}B<~+X%HS)>!&@v|788QMzf(qJ43@HHLzF zx2HuFpIw5vA$t|x&79Y zGLXC0cv>Y4SbwE$^`KQtpV1-fbB{yVu(h1BweDHpc?0nK)>Cw@XT*Ah!d9c!Ph(Iy zW^JN1%DA=E1kn@L$<*&YB5&Ne#;=VDVNfv_Vs zZ;Qa*{7rG#V>Tm{P~vX$?P35tY%~@SPa7e5iM?#j(IIDFn^QX> z#n0yZ1?Y;u%^Eu86JYbFBRG%S%%@p2(59djEGKN%(RV(`=GV_Ly1_O)T2_SEL{i>G zsLeqKs1396C;wo$%^mVxMA*C?4-#pU`x@F#+AwzEA&RmQM?!71&94-|i?NC60zB5n zwh{e{v(XHKGv4N(A3zdpf+^;fXrp-sicZ_V99?%@mem(;Xl7Zq(}t#%m8LeV zckjLT`&MRKn?KF8v|%!3%Tz!V5D-v6hJs9G$d;j?G87P$EkjTd8Ncu8ulqUop7TBD z-sgGmIOp8wO=diQ7q+A@9&v&AamGgKQ7S`A2e>rGpA?`>XN0iPmch8x07WMlq2$6p z$@ueqpky*6exR}#G4#=mQ;eVmP?XL1gf^ZzjK%+j{TZ2bM>>yTI));j@kb}13mETg zhrnsZzXo8QVJ!U;0)-6ugD|j&@hJT^iy15FW@0JhWHe z>Ix&S5}a2VC5K^P8{^<^XlQ3#1eyb zu+o$6X6&Z;Uk{^D3d~-{mZw4WF&5PVte?>_2gLwm(ieRgWPERhz)i;305FFb^C=cN z%owFW&Im){g0@jc63y(l82NPG9AgaD0c@O6G>!*;mobk9WP&mB1}g6{o>~EFl2Imu zx%U~F6l0iT+@u)aG(%5`Su+gb<4`-x=%n0wC+2r_kalL8!l2fLxwi~$u1p2xhqy7# zaR75?vMEaH$$a=OZ1G}hX;{6PPh_Ffe#{L&gWAhnJOM@i%$0wjV*$+X$#opa+(~%} zLCkl^Ya7hm|1wxYnExDtzJ1KzzaY1tDUStaD07I5p$lW?&Ol!{^EnCZJiu%jgFpl` z*aXaj%v?GL9AeI+Ls}#=?J_WQ#y+xhM74J=EgE_&4czh=E#2^ zP-0Hbf{JIZr<9xo<{z}@OJru!g{-5@Xo@r)WBSqClfJ*#oc=W+YvSI?GHmgR_)r358r4vvm+u zIrBcbswAMr0ZOoTCP}#}U^uVMp=4N{JuQR`*4bKhc-dR}P&Aj{^hP8+J-Xf^&Wxnz$ z!1|aQo`t@C=3n%kg#qSy`n<{@v%L!f!_3?CTNzE zgf6TUS`l1Xt+dH-V|DX@;=y{*h&E4Fb1pP^u>_Tn^JWd!0>y{b`aCNASb-u?dszcN zK-`}dOEYZ{%lk6)1+#Y2tQf*t^CejJv2Ict;eOU@&Cn3a^1B5MVXPT0iUX`SAA~>z ztLbs{{UGZEv+k11`7o<200J?rKuYsD!YYaf70(JI z2YUj`L@vZc){*t#Jj&Yh3M!AWVqS%T$t*2}(^FXH5Inf!tZB+aN@dM1f}%9m>u-Vc z1nZ&SQJiGOFNHuRYpojEvsfG6hViFZB{V%{vuffXp3B%PkI^MXbs#U@2x<=;mw*%l!=6&ayhmUtY@k<#kk+v6jWS=JZ9(!tt8KF4dU7Bv)g zvfiWJXcw#YY4rUDE29};-K>uqK=rV;+yGcFE3q93&YUcL6)78BW|+# z`cVwA4vnI6m{mYN_z_l09ymu?I$DHpu{MUH7-xCYKJqqe{AXa^VSW8DOuEZzBroFx z>l&><_gL%cR>LIgd5V_ZXZeu}af;=-5(3k#iAWT)tmnp|!HGTVhQgU$K$*-gYzZBD zUD-!{A>hXTUZz-HZLpE<8RXd6vDF7QRw;Mgod5_5uo}l(U~F7h45;6Wsx*WV>>JQpG+^4u)!W5^d|xv5Wek zsD|xT4n?)>W=ip`W1s&RMLnDK3W^4{kUUC_?3NY`&qa1hG%7E#7gN&RWwwe|(I$4U z8g0$&m4^Y=!fv5drB?Q428Q4Y`vkoOSJ|Po`nIvhDR$P*<}<UF;ZI`>(S@>HDTP*bg@VrJMapKGgQGkC8{Pm;F`)OzLAlybI&m&t_c$=S}ug zY(NjOSwEs}n7w2#^o_7f&jDf;LZ%YA!gvIFBEP25(N#hv4+#oS_iC zFNZ<}4FwO^b*b3(`9ME@w3@xU$oN>CJTE}@?icZ&aw%r8hc}}hmM)v{+ z5&{jJ%j7R;yH4+y|lkGUwaR!P3O}oSc-+92I$0S~%Z52kot#Y`Rr+ zg>y#=&a0f+{a|V1JTnj4uW^=t2$oJx^DofX#d&ETsOy|{1rWzF?5^!v;_{Ij5I^bBNRVF8V&qSxgh)2&b?F#VDt18!WrUX?z-L z$2c{=p>mwFdK&IcIJ^eW=8R`{^Xqx^lZ+fwG6YY5|P*;O0?i z!;||Md9b{=KbAnin=9K00Uz!ozo78ta>-%i$6cHYbN6yjd4SWOd+Hi01GpO~*d53% zrrhNqZXit%!CcR!P!z%yYhlDb?gs;?+|S*d3b0V_Ga8_TaWB!%Kb-qo5^OoZy>=X& zhq&={5R2r_Ifc=U;?}H$Ks0wS2|YT@b*JRA816Upi;LxMr+r-c!mR3>rR>j9n2eRMM(P6{`wAESGm`xCvNsoYFo zP-)yB$t9c49VvxL8QiDnD*-3CzJ(A!$^DD+-7>j{$R(7;UH%SOPH|`GM4Qb$CW3el zcNMLvx!iZi$CAfgM4p;_?k~@SrGWb^Wu_K$gVw?75^mJ9;5^IC=!L#gZZ<`1%ee1; zf})(e(hj)_?zc+ltK`o6ALOdIZz!R*nj7&H4vgoxB3d_VxSP7bS<6kMKvf+#k?zjb zb9Y_`=Xvf0a^7CxzC8x<2JWl(U_>L=jT|-?xnlBaUgCcI8Z=zy*3*rECT@5tIGee{ z5fA$H=fcf`?xPggQcIlsUK|v+;39=J;+U= z#EF|+2Duc5xIOt$JItL!*Rw{rtDlA~quisElW~iiat178+@&-%k8>3xpl)-A>(P}v z+$_q$y31|ufrbfg|HGi}aqF(a>PfEe08s98FFXV2Degu}vzz8V{0%Cdc+XKrt20kP zfiV}J`4vFB^7g-hN;lr?$6=s5FYbHDdGfMp-|EGa90ZFuue=y0`S6ZYl-rk=PtkZk z-iHR5w3qi7rJDKk-06$70X#NMa)G?hD3LaZH@zPt5zM=@2}XqQE<6OxeY}g?0Jfj! zL^n@Dd0Ao+@YrtXQ6g`VKeQj^NuER7F<$)=Kqv8@ z`x7Y1yuD(yrSLkILHs!HTiPY0^4Ra9EsZzG14=q?co9%Ccu1whFNgO5xhYQaHim)9 zMZ?ky1b+F|W??cMx%jP}!6$Em4)z<)>%e!xazC7OZFQP45qTTu^zV%`NxBP`)LX`$gPFGdFqrM#c%uvNypNP+iqp4tVR6}+oDP?fy8Zvj@t z`+!bo)x4cTV4maYwxXLgyaNT`tmUnu2xA@Zc@I$aykJ_#&hvaIxPF268%+=mysH19 zt&vwt3;RXhgFm9}67QG>oR@jtyU^CeTR^jZGtX-l`dWBD)yvQ?=KC++j&12FfJWD)@e}Jcwe0WSSK%$Sh{#Zx&(Zk_d`E^qBnRkG#B*q7Ci#a z0p4$BU=H#&-+{nQ-T}ImGQ@k?1h8SAn693W@Rrbr{6~2gE5LG#H%4xlF!ApW3nr?#R@JIK-bMlHbp&u z6C0K1`70iP)eZdGB0x9txy!+Fk*}qr^Cf;G?Uyd|m#>3BGyk_?aJKMGw1BnpwR9f4 z!Y@*SMYrBEc!T)_BM(G-V7cJ$T{Ku(dU3|~K(T8sSN^<-3@E1s7U@!mA z)#yVXf9`Ft^z*}|CT-}>*Xm;5^gU>WAyOQB(efA}1R=NA7U1@OlBWAt%? zaXy10Be(ez6z#mj|A-9@6Z}0FLEYo~(Q}yOZ{$PYeZG?B7}o-h%zV0@_Ew zqPfRcaO+1D5V%fh+t(MF!u{41z-sk zTwM<;Ob|>vfp9_JUoiK8U=R7=4+<89K;V#|{UxZ46ucaRjztN)Qcy$-;%G-5C*W)W z%MrmS7jp4}pUAJ6AYhQYJy9S&1eT+MPmZ9Q#{`F$p-2+!ApcUb;N{IgIWBPNgk`CM z6k0pd1j@yD#OZ>MT|s3CZXN;WNx^IvP%;I6N5GjS*!~YJJ0sK!5z6z8I!Q(q1UMcu}KH91TkJ9JNss&j+Fz}qf|0vq(1UaYCRxj|N zwfMZ?4!NK%2)=(FRD<9_`XWQ4VB1G1E(vbiA#ho+g#w~Yf=744>Sn<~I^wqon&#n^ zY87mynV70DVm`MW@zI!BN_ZbqSm(l6_s^ z8|KAbW+I z4nx3S7)@T{0O2b?p)yd|6$P*$Vd(d;ELeE{Ix0hi^^~@;Pq?-h;`@c`^Ff6RlWDy@ zAUrDsN`x?iu4^0=8qUMcL&CI53`nFfg~9?+!cEVEiWa_14u-?ROmbt#2iClncGnFys}& zE%9ip6h2FS_9|gIc|)s(+bA*eobXxNHq{7=zXVFH@G(j^t`lB-8b;I$1+9=fFZ`kq zoEL;YF;Lkcyh6)Tqp*lF11<_5_v!zzC-0fQ4*aP4v8KjcSEGey&Of9$fpWz(V|yq?KmuQm%+{$QFSn=SkWRU z2*im5mYLAMt4xuZ@M2=(>Nus_pKuH!&CV(?V^h+fwkBder`#W7U zod>HkL?3^S9-R<%|BJRP(OF6lIwdl2VPLlC6n(@pNA&RoDsx3It${$EXbyRs@TY8PNlj{!}Q+6F@_eNOcc##iENbu&hMHu7(k3Mbl4VJWE972;P!&Ru}MDiTtBx=pk@0VwUF@IPThhp2{rN7qD$DP+(oYNZUY zE)o9+pj;PuQc}eY(JFFQb&GPyXWS#Qi~*%rRCFC}eWK?Jz}YXlMqZ8q(bwm|IVfV0 zi{_@t_h+ab68TZ$%djYb7TOU}gbbCVqSj?7Zi&7pchQ*0o2IpKkuQA*e-ol=vihE=k>1Ej(Tf!Hyf0#hL2gPEwi3|OqQ}UEKO=hQ1gKe2^-Tyk ziQRtyn6r2lZN*%~3FLcn75|$F%1wMM4wSoi(N=)%5kIL1n1^__8-4H;zf7SpAMsyw zSoReQe*%i1_ytOB3lM)g3b{aW8_g3z;y=hm6D%%`KoKH#JAt-+;(T&^?iX8W2tvh` zyU-RUUiBJ^aB*rGDi4SsdlH-x;`Pa(4vJ-T05~Le;(;YnyyGIEqr{bQXp0uFq6y-# zc!*Y@81d9jRK|++6c>#XyN>}SLEJ@CNuoHNu5lg}>vlu@n7Hr@6iMQ#0dOXZeHy@- zDh?dP^Gg$dNY2}Iak?04GsGJx#o~l`E=7n>iW5J8K&JTkar7ZeeCAygr^H!wFv=G9 zlwc%s#OEm$Bv*WZ=IcE1drkn$7jOOzRDt;IT(q4QKhOruGvbB2&{imZvkz*E#PxK` zr&wGt0hSW+S9-La6|am0bg5YXHK5DHTKXhSx!67jwp56J;G?oq{MtcOR*9>3qkq-n zyS;d}=fuw(0ZWbe#+Mk7T5%Pnn$?N-lD>NJ3_ZW|;)PGb_zU8C1~fE?cV2{Cqu7&9 z$rr`dT}t zxW$8IpX5i%rr0m}^f3AtDtV9suwjyCWq=Nsv{M%80m-j_LPLb)E1KsIN|=;&d`L1_ z3(QE#)Cf$9k|=jVE?N@M1?T}V5yL7`UjPjlI{h-tdcxMXVGej7mdU@$$Tx^>LllBcB_{>+zh$%lJ)dq z?+cQxOh7kCbd(;{D0zzoBQ8n;DQ)ADN)(alMT9|hv>OMYuY<&cGPXHUYw8Hti^)y_&*)2Yr$npq9X zS=zfFoG#MCl#l5uO_~O#oAmsnXmgjIJp|4@Qgtl!c}VwAgwa!aj=Wo5(pt*)@s=Kc z3>ti-|2zflzS1w=1LY@u{u_+oUa2d6b;w`3gbVQiY4s?e1EuS40wqYw`3(a5q;JqU zZol-6RnQ(PeT{CphDpQ!f_S*poCKBw(mh|nmI$f087v2-9LkC~Bwf~q%1G&)?SMWk z{i6eNG14?zykn&iG-t(0XU3uLh%|xj4aQ67Rf97@%4C5hQM#lWl}Dvw(tb>u76^Sw z(nrWGnJle)0-a8grV1f&T)LmW2$m{c8V+01q+Jv~OqVWP3ziINH678pWy734t$2;>67lI{aL^C#|>Z^kgon31`bM3JqblOr5`a+3`xDW zLtt2X?n|_dNO^1&qtbs~fStFbx%5LHlfFyYBI8mgT2O9Fmy;jmj+9LvY-kH8XBn5`RW7ov%faF*`>q*< zo6M6!OzyH8ib?H}P0|_GLni$Ta-Om`>8S1{6Og0FTlV^XwE4&iI55yx=BI-`KiS&1 zF<5(Lt+a>smrbt)Sb%IHd3XY4u75y0NXGO)Ww30By18HW?3FAPY(ZN`$QU0*3CO?4%zA4$0!_wp^qvk#?1bWu^6ij*-1J4JuZ4H3=+nve*}4 z;1SuKVpPV(qXhlV8C_0>?DEQ`McmK52JhhWli z*;7eiNtHFz?42enrBB$V%R*@m$&fLqM<-;-Stzn(Ym+e&r)0uxv}Mck#3*uP2~|MJ zmHj#g;(4;}4G_yMUf}CP4=|}YTIRLH2HVPzIQ?8HQ6IiL;Si- z@&GDt$UeP>%5K?L7lG0v)4m6jdS!pqqv(@OZ2(xm>~or>24vRxFmO<|ijJ~3W!K5h zAsJf$YFPHyOJEt1&7}jtsO$s}a<^n_?xAu_HcDT(7?;(42I{u#8FHiDk&V-hoV&8f zH-IuBbEf#_ec4<}cAk>mJqGR5vK3^@jO_ekJcn7?-%04Lll*E73TJr@U1@WXZ`=$_ zSNYa*P;PSX_hF#BoV6C6-XkBQK$VC5aXQ&}$}^XP@{(uL+&~0152p-JERmIAKX=@uVZ=z69f;@?i)rs!&CZZNN%L8zTs(~;OI}B=)l>4nHen!h3KXOAIMQ%S{^_r+>_tAjsdwZ zzyCd;r{o*y^3=5a3lDT`My{t^{#p4Qn!%hD--p8_7sU$7N^(^Mw4-oStfbr~cg0P* z8N5f)_b@0=#l~eo@ltG~L!r0g9Rn2kC_bTlVPC~@Bjo%PX}2)sdld=v9Q+mMJpdh` zDEb+;1S+N}Miiu2M((#@#Sl$MA&MpBN7<(sC%@@_MdY{WW|+dZ8v_}x_-Q_%4=7%v z)aM9=X+H!GDz=fI;gI6KJ2XTp*46?nN)c*;c(meEx`7a*_*sFD#VX#+hd`WS@mz?< zE7Is-l%N=-moHI~m4(VA#dH4!#uU13=w^!I-%uEMT(OqUajA+Y-T+IQBAOz^84A7; zl_wPUKLh7Ug_!mXnTmgH0LxOGyaDQzqQ@Upw!$qJJ<3t|1VLY}qKn2QPw^WYZTX7J zbaXCIG%p2JsK}t2K%tcquD?&eohKmZ- z_b~91;krXDO;6#tNW|EglP6>V*bmQ=L0 zD}rb_yQc7?S-4YST@QU-ij|kaa$WJlENr=<@VJJeTk-kF5bsee9s$*>&~`ylpQ7L~ zaP}*_7NHnalu|0zO+}~;C_{=O3T+H4ZjXR-L{aJiYE<#F11Pr?eY7x)DSo;Q%f=Ni zrUUb?Vq!6#`-DOm1I~L2Llufi#rrfl-dAjO2Q{T|nTKLp;avfN8O7JHq0LE|Lzzy_ z%A0eb$VK@#eecOt8BTjsH|3*g=;j_}#XPimD0iG)gMgRv8QNHTD_inmgpacO z6rg>T-_TmTR~Z-$1O1gd&S6*sl&Rn25eF-?-Uf7tvi1#d?o$rYjj{boCvsATD!-zW zTbOdp0~*4W5755gfHH)9#u3V2s~~q!nMmC{q&)lvpd*z5UqVro@-Q6{qm{pvVCW7j z)eeBgC~x*bE>^jV7U(!--6SfHC_n!ZRJ^i&3Y-bbkR-4iQ^p3PGD#_+V`s8bI10=Z z+~QyCo%Dofc( zpRzfnY@^!(*~%T{OwCbl{2q4ZD%IaYJWtt7cS7@(m16X$K)E~*m8X@jKZ&AH`2u|x zr%2hD3OkFHQBPo$N|Zm-+3>8gh4Q*el{YAny+Rp4*NG~XPc4LHRmzoJ5U*Cg+J&}r z%Efe{yhdp+KwGV{r~yTt()%40^-A_~u$)(ZIv-#clpeHFHYi_bLtmrvqaC0wD(|;| z<&ttj4wTEviePl5NtsQnQ?s&xX0R6JeA;-nD#KGCcSV^-H@n-FU(w;UL%D`>x2`GY z&O>osIibXW+)!3tN71d+Ux7fc@*IT>`jj6;q7VJbCc2?Lp#0xvP=m?_7BmbgQ)mM+ ztXxV?t`TKf8y?4~GD3nr+)|cyLwrmb@f(V9<#V+tZY$@}M(K|73gv>|RnFfJb0?H5 z9tPMw<*RgCXG-Zb0L*FS+kc^$QR+Sc%dB!f-S2QxeLM;6&MJ8iP+V293t*C)DuK4y z?kbZC;(Jt|QQ+M})zg88>Zxj`KgRP`eQf~cqmt3#z*qGp9h3Z2`gg&(SM@9#l)q~E z$50fg`h!kOL8@2Jg9=t{qL5aIs>cG(eX2{-Xxp#K4nk#^DuI$F!&Mc{P#XE+Ph*7ov2Dw<(Ge4q;Q#Jk!=y=t8 zbORwlm75E&MAhY8&~Q}s!xo?%Q@uss@=8*9Wy7)*)lmglj;r{?C{k6MC>thCwVXl? z>8fW^fSI9M_AkT>RI_yQE>v{~Kzotuqoo+gVpRscpCu~!K~$bqeHw_OR24ZF+RIee zr(kZmYUTk@6)N6gP*tiXTKlV2elx&4r`l5hlp0m`CA8J5-q%9BPW9U(pw6rQ*9guF zs<6Fyi5gUX=h53n)wk(ryQm7I^U)>M7qpmOR-K?@Qj;p@c?dMCM*Lw?i|XYYsBBdg zcc8eUnoH~0Rh3U2`rf8WeFk9dDz8VNy+idoB?w$o6^X#vsjB-Dm|d#NGM)to0FH=q(612w4XIsx&Us(F;)F{JAJ z1k|W1ln(W`RNvf#qA^wMduSV1ZKjX>-&TcC1mKS9;WkirRnOEwU_xafZ}vS^;VXC! zld6~Yqw>D0l3Y+zs?~HpnpX9fqjE;o&;ra^mHb7tIjMhr3~kQpH%HMi7xmp@pt!1A zXyJ2HtEW-vu8!`6z#er39XmbL{TZXL(X6Q$KPNHP(QW>MWA}-53mHO@7XW}!D{6I2029i{Za_*Q?Gg)eb}#F z(g3hf^)GkO7N*vf!LkT-Ic@z8s>f)OJEZ>54wgvu)3lq3QZp!xDO&v`rJx^HC(tML zV$|QQfWBDu_8f@EsVgYVc|^T{d>--Y*-QO10R+Kn79C)8Ky%{r;}{to&w z)uYQ$nWawt26Cs=hv+JJwt4}bS8~+rry!oIK2J{OJoW7dK;^3+qv%J0I)=`hr`3Ns z!Ok=4dz64%td5}X>zAnGpM_;-)r%-BUal6>WL%*(Y=_!P_2+b3=bZYPDYVt7zo3A2 zty+H{nCI2cQ2yWr^~oAg4eAM6Y%ZzST!#2%^>K>gH>n>rB(gT zDX?5oPw`>rRkbP;J!(_GM_0Gn)eB!o(V>2@2y)ld%PF+jslK)fMs%se$&+|p-AnP! z8|uOmhb+aqX?N$Gq4z+#idiwZfzuJ|Y#RKYL7Z^CG7VkzkZ>r-d-an)s zrmfMidL=muM%1AX!@yDXV~@hJTk6#m79UfeYJ!Gw_4seVysfUGZ%^G(x6tLcd+MFr zAwH>|ISaY_YCpPjFr_|P47q9bk2=^nqptW2+Go|T(mvTq6Z;0Boi(S(N#dpPT?_$l zO^XrYJ{k{NP<%CGWsvjJd@&dL_G*S#LqmYZn=TLqYW`3_E=ZGm4#hsr)GMgmuem%1 zmQc;ZbZ`jMh-T3it_hleq63;4`Xpk6CVLyGgBlAB`611pl#~{!nYN)VN^^yF+tHc~ zGWW2iG7%=lXco~$=2*>UI-tgBYObR=qA8}$Uc9E7?&>9IHq*`{QS*uy+Ky^Q=fjp` zn!;*ONg9tcU`f`Tq+6#cntOCuKCW4~5(cJfHq%F((=^K;24}j)iJa3Jny9k?JE1Ae zLUB^lO-pj7CU_25vNap_Lp(<_L_6GE%{iJz^E7YJAm?k+D4(xD^RpS1r!^(NK*Jf$ zll1rtH5X|kU!-ZAL|d`OO#hrxqWNGDl@*%EeJCn5UsB|*N>g_f51?A(Pw|y=ntwUa zUZbg^UsbKj2%QSxr9w>zYDZ)%rB7Us2hwd6!P61DgBf z=^oT9J_wYX8h>&q4r$~D^kG=jL)i_tG|!Zv7}Id+X^v|`9)&HpH9HxQyQ5i38@jt1 zCLNO|G&ywd^PVP-1+YoYiDyuGUn8Y_qAATElqNE*$yt=2ekE+wG*L@q&$Ix+QwN39MZOhK_F5q9tCEsc9=4} zA5`r^DJ2;509M={a(3Yxo zeF>JOX`h~fK)N=17~&b)HM9nt(3&X?`=s_Me^h2_zu5;WOMAHxV5hXv8feegK57M3 zpuPVfEIX}beG9oW+Eo-@E7WeG%LYZ-L<$lVYei1bSFTm9Mp2>7r98Px?F!0>tkV8V zr@?Bi^H;FtoOTbnDQdK;49H#3zCyPe8nj`H0M@8|lTL0IwX0~2yQEFdf@PPr>6CeU zMSGhAZfb8(iuRCp%T>IQ!`k;KP&}?( z7Y{pcYj=Ez;*QpzHeYwOt7zmWv@7W6dr$itEkrZg%a5a&)jG%-=cIf08U&nmA7r9` zE;?%>1YC7nX?N(U`{))by>yiaz~ZeNE`orMZaX=Me04q)8S&HA3c(qqOQbJx1nUaq zuroyWzt_OBPxm%$Iri(`_#ASfy6SE8X6fS3qAfxv_#Kr8b>E19a!9A62yvwDBHaOx z(wXV9d5ms?lA&UCiGP5K)7AQbI->h-7F4{hnWmWp-9Pl|C+eOXfSpHmDK03E={(8# zo}_E1wLe)m#l#a!(IqBf=#J|iod)Q)p1%E{tH;n=#E~6 zfrYv&XHgXCVqE}TtgGXp?%1azG)v>Zjfj`bjnZ_sto*0xcXOw-{- z-CUYxuIilB5NOkV-3)Wvb-xb+vqN|F8x+@cPyK|hbm}IaLR*)vf|lLux;;<8h#R{3 z<0!gygXD?o(JfyFBYJi3(@6B`_AQ1j{kj(^Z*)LsqYe2@-EVt=Ii%}A?0fF8?!geS zjOaFc0D4qcb^yhguAC~zbqQt^w{=5vVBlTdD_%gE&{-(k^`0(_&i#|R^ic zv`y)6b}M(X-D(z*R4mqjHZvjH3S@`oEsVQ}NXMQ`)|l zzJ$(I-un5ptMt)7Ltk_C)u+=fS3kW-2D!cZD^_$fK);R-9D({*k3dn7ewKyGV7=r5 zDns<#A#m=~7t*F}zy8pF`&Rv%6ch~C-z5L;0sVmyXphi8vl|)?>Niky?vUQ;5EMn~ z->Lv+l)kDDZPEIDl!A9ye`^PZE=GTtR^M2CaW#f6PQRU|gd_SrCOq4C{b{=1lc0Z+ z6ea3cQ}FAkelum!9MdnOMJh@E*HKg^>u+s`Whwf~9Wdg!evB5=RQ*SGRHo^@D78CX z|7AP0XXp>o3wA=ko@R!V`Wv(@%+#--FWO}3l$0+7jpkMSNI8W=dvmt&)zmzUT6zW^!pteL`@Gs=f>Nin-R;m8o7g1TJpGz^} za=ka@QdQ_J@er@n4^fn~TJJ+E&^i5Eo6uIH&q;)aI(=>-D(m%i>!AI-{sQIGUeK?l zQ&xlCoCdH){Y$iuyr_SKjtZCbBb2Pyq<1uevsr(a1I`w`3;8jx=r7Pk!>jsVDU#i$ z|70#6PP_i)(-7#;&mq_2HND3{aCYhgG*Ek8AKQXax}hIwhe_S~Qa@Do=m%*R+pE`7 zaHwD3OjGlK{?2xoJE+%F5b~xz{#D2g>5nJ?J*@Be6>X#X=gBE^OYcq5&N2N0@+aTc zw^KCtj=nbnmfh7~psmWJzU5tD-q$yg$8$=*DFmZ5t*@hdFEe`YZh+0|BPF1m48E%% z=WO^m8UikcEmi1)t6@KFIou4pglKa&ymu3AdknvmFWtkivk3k3G&Fqy7B9o4G6;AZ z0_X$CK8BQA5b!npO}F;_45=Gn?q0)On*99@8!68?z@V=HN}%ERLRcMSu+YuDV8fjG zcw0jZ|D#Jg`wWlK9(un)w+cn5VLtiK!VE`?(CKi)JCyr+z;J|Sn+U^4ZlDeto}@2{ z9WuBcfGv@R)aBreGMpm~(T224pd2>%QD#+);d$~k#~M=Trxs_3xq_#1#4t?vx#A6> z6zE7Wtnx)=q9J}4Dvuh)*$fhYF)9~$CP+5j`Stw2!lD9)V+t4=)%W@2B$*=M0DDLwk*3&10Zy4WH2j zQDX4e##6AYU+~l!2we;9UUmM#JuOfL%1qqi-8rGAulbp}TA-r7tEo z8QM0$_+~@Q5^%N{{O`huR>R_#fpW!AOhb3o@MsPy+YH5Yq-i$@-bBYb49h8mea&!$ zPUW43)P11348K=H?z-WrKq$Il2qKSex8Y+-jO;Pk;?dS?Sob&D`V77W=t{pqO(*XG z!&ZtZ4jP(1gk?7k^0!erWH|C)h~7|PLfeR8wjRZpq4WkY#|?kSLhWtCItudKF?{?C zin|8wdw`xWEFu5yJ;QhOZM#VW=P|sr_YLnkz%pgH{RDbDZ3v;1;u*u@qp)n&kU-%) zC*wzy;pS{iAlIXd(Y^~K=xThMtadXll|kIy$axrj-(y^{9^xLx=jn&%X?!~fC|<@f z3hjFv7d;C(ALA#K*X3*MSp+aYV;V(C1C6s~Ue7>?TiJtg+%SP~wbF&p~Cpv2iyvBp9Fdf$@pP_d8G=Gk!__>m=i%K6EA7xPdNK zr5GD2&~eOoSetFm_Xb@}%)2`eW@(V=K7{PZ@paXOV6E znyyFY7{AShT&{6oE_$11ETL57d}DqWOe!!QAh|Qf4_kp*Xw0RUaFKEHH+1Z*vGEk3 zOO1oH1t>HAL$?phjnV~RsW84p8mf%b*CAeQ{D(fxb9j|=V07z(c!NG?tL-_>xgx3GpUl2YIlXjqdb0f)*nq6-BFY z-D(J2F+P(9=&Qy@9q2=waZrl>T{Eh97^O}li?VXNj6w-mt{cNClybwE@ekU1jHchw zzh2|*Xvp;$AE1DCzj5O$5Ew8PG=pW(n5D)j4H=jIgvw##N(N9yj7mzT88x1v`#`sh z>H*j}X58@$D#wi)a>Lv)UZNlKUE{~}L!U7EUIy5t@mX3C?i=$dS7plhCFR~t8~<64 z!J09yp$F$=3ULCbvni8)aW1AeGtuU1x=wx+Ho8jiLwQwk+29x(kogprRhjrD-#py{D?P;|)j2IVhBnzB@&qD)_Q{)n~#hP|{!${g!3JxA__Yo;z*k~>Y$|A}$wGF8$i0Ir*! zy#vl0CJTifyG3vz?8Wb`UXv(??T&6Q`>r2 zHe}lP4m1p#@_&ZaBc_Di;2bq2(9idlX)jGIVwxqR$H4Hhty>?RQL{Qa0gT z(+N7iPnh~BVdkFcD}UHBY5Ip!^Y5FQD9Lup)M5towCREUpk_>r|7LwtK^z2}%oj$W z!P(5b3;`Fj6D6;@n)7JAbu-IoTj6eAxdV#!n17+@oQL`Brx*!O^I=+Az08(zbj91; zDhB0aUf>57UvoKm`Tfi%C<|k+`5|(g`J10KVXy+s57A%+nyoBo4>B(dg@$1BAh`|p zoB5Q85^5fxY?v_fLE2A*o5v}dbikZ32S!AgIpr`g()=Txr=!dxYM?}$-=uXq)?8)* zXPkK*i137Y z0qxmOnm=oX@u$qsG{Wj^a~y3)a?GDlx^cew_!D3$Fps!H?P;@736>)BK{{R)n@4C9 zRbtL1KkZrbA~h71nj<5@QfAhWqoCY8pP(zuulGW2rFjl5rd8%&=0mR9yoSPS=gd-U znC8}*XL``-db0<4o6eiv>8)!tA13G6Mf3M(VZ^I+e0OAAYE)CiS&9^szx@rD`QWJ;F3n=z7 zY+gY(m`BW;dx1G>e%u+Ax6G@S0A@FloxXbRPt!&6BGEJ!9VL1Io!V5(#lVz z11z0M;0&}>(w(0mOXwbe1zTF|sN8RPfxdbYYWazx7-5!MH-Hju5o)3KfFLol#_}h5>tijEv|7Yjawu2&h-LNz zaK>9U(YkWf^1o~-I%ZiT16Y#f-d3Ez%mu^h=jan|zV z9t=;ZW&Hr4%Pb}2gD6^l@Y;;Q8s<>j?mdLBY=+buuS<>3y?r+S!l&C+=pa-9~o1Z`cG zkYI>kx2$SMUWXPY22^%jtU_^9h9ea2M;EBSqFSk_*jd1K=HNyLyyDHdWOQPd##ctQ2tiqDPRUz z!#BXBKx-~JgoCYb(3>1$&0U1Heb#C6*X_5KK8qsM>d%1oFzX->0^!zsekcxFS9`+T zL)JUw42ZP8y8u*_byXL{qphd50_?E$`bP9N#u`HBu~_S7ns?)@#*N@SVjZkUTf9|G zTg^o4foeSWqt;((Z9Ha;cpWAsS<~oem~34~QS}t7*B;2FS+6aHzI1Dr2QV|NZRKD& zY4x}UxlHRc1+lWMBQHVVl(mn}582kD_n|1)dfOY7c~)0SQOmdb9);X#D>Dq#8LKO8 z;R>xE(oM)Bt9CD*d$Dz`5`%Tts-bMqQfnC96E3sH(~3}T^>%>~71lN6K&iB<=q;$S z4%6nF5M*II+(Ay;ors(_;N*6uf9?gi^ly`UPbZM2PPw3?+T zE?R%*)2na&j`Ba7t>!|EM2j^j0Y-FM<3B)KmsPk7eZOu^pnE+xtVRDFUah%wxa+Y7 zpFq)T{oMzgeOBuiVClEsA*aQF^`{J&G-#Dj?ChrXCLJ_~te5C*9kxcz!j=*196BYB zTKV+EZdvV2^l!{sOUZiU)(0p7>9%zt9fibwg&Q|R@tJ-p>fVuPa(7#TP;P)YHcqRfwRt*-31Nxw!f|d?1F7o6cjbsUfG7e zH`=yPbl{@xF^Za8vJF#`%4J&_eUz!m7EP)0%{JQ@9zcuj^)O(z+BW?P1FzU_dhP=_RX(jJpJq?bPU{U zKS~h}fBRetDh1g69zbQF{cBpzg6vkhkQ{E`T7}|(J?<$$N7$Pq(UpVt4K&*vvajBQ zBGUfK+mMU0*B65`+CCYD;;`N8cL>DTU0(wgYyXB`(>S}s2$PQ3*OT8n-ae8FlM?Jd z2ZBnpw^QcIQTqqw5IAO!kieuQdp%`GC)#=`-V~o6xcVWLEyCg5N!y~*n26JuF!6vgI|$-|1lU*Y!9Uka*6#f%CSCc zpErrhQhS{aRGIz453sD<&OZpS3j0Y409D%W?Sep+T|yH?wcY=FaGtYwrU0|X{@HP~ z)!L0_wAI<2Yhir7{X!EAJa7MZHNY;|>+gYTuotF+YP6@G2g^nK$JbC?vWM28xNN^g zQK2ULLt=n6+aDq~VT;`~1?{c&m>&Us#lC}%Em!S1188frGd!Wa-EK;OK!-h#9AMY% z=Lx#gZrKTeE_-kvDzDpDpY$No75 z+yAu>h9cx3}FxF=ZDS@ldDjUNsoc8GCdihG*99Js&7e zj?m)}cXlj(3(zi(OlK%^bsVNd8#l-2bj8};@ohg)_Bfh{@W4GB0(vT*j#obdr z#57=tEl;oA^LuDfg>s!D5o9YQYht&<5zkrg%0okp{>ZVoK8~3jti?{b&11U1nR7# zk>0^lhi(Td%N)nAqkrX&&P@=naJ)iWxJt(w+M8B6?o%|r+QGC!?wq5K&W$yWR`R>m zI!ftIXq|)S1(bTnmj9024n-Plx!|Y`07`>n=2Z-Nqr;hY2^SsjQXJ@#V`~^#E;~M^ zBXE;LC#31nb;CdqUYzbg2RYQj}t&TacpC73=~kMS2I3UZe~B?|lFB=WwDPhUy(I4}fcMc*z{3(cxt(t!Z-jlXk+*4sLmvkQRsTU9iyV z@cAUh-sZ54KFZYYu;CH7rw+dyf|d@4${2_|b2#ROzD@^IikNjd{5plkZifUadhK!e zXA;(X9X@##6WQmm_h*RoJB&PoX9Er!iXb`YkhvRV$l=Yo@cOyKse`}`JG`EWfsHs+ z&oI8bS1g+YvjK`SO5Fr1#5=$pQ%upiCq&WmA1oYK{8)+k z3{@1+0xL{W+y?96iXjzLM<^7O)Qwcc9t1o}arP2M8?D$yLA)46^d-5)1mW{BHIK`q$pN@j=sx^Av$T6s?f&*m!aq%2DzfBcY?@O#oW8-yQVN^ z!of_1f=Z^d6hVJMS+=6{Uzp8NOwckWS20Fk$jejwM46v_MVT`kyspTahJ_o7pJ_2v zptyAbxIzVwGQ>9(x;p^eQrzDJ$=iyz=>*;##W4K>?kZN^1n!=qhSn(e73viLJWy!p z8~R0xT4!8`Vnqqn9+W5!Qw`)pMI0Trd!)#ut;u6WG`(d?6^E#RvrJ)4r3B@QkN3h* zg(7M@oOq&GQ3x%Sih8Pws8ZOk0j^px?_V_5C}JrFU#qx5l@E1_drvVT^@{I8VXr~) z>2J{4sJQkg`kEA@F}UE(ic`vQmn89*R81iUm#1-U;zugiaHr+%a!FsqnJq`@#7u zH`A*5nDRNLM}w5_e2czdC4WA+5ak>6*{v<(zzY7NJa8 z0Fe{Q?G!0JsZ`P1H&Pix`J*W1dT)?uWo#7yF-m8uQ97mkjLsOHR<8OR+!R8}gT`3p>0yvK=TzCS?&MTMh zhR6lwPkc09RHoBpT~dZegG*87CSxdgM(?xKdJ#pSFWRoM27PCbpWm? zt3HS7t4i)5M6M~DY1N#m3{Ze%DSapnn62c{izr8FJO`?Cm6s{ba9#Ol1VnBqS+s{O zQ2x*i?w0bk-vGF+OznfRJIVn%*>+#)O%w7!X<7+;MM@#v48_WS9>TK{rO}t@d#IeC zNX;W<+HK5dl~VB*lvOJ$Z^BTG@@q<1)GFV952Q{xQvogY%ANEEYEZsH#d?iO6E~11 zU2o?oFe4Ul^1FGI;;$&!if=O89kv#m9J8yW=z>gHErX{Gzs7@lzJurQ_2;s08A?v zuwidTx&AQ#PO1%M0641#8o;@zTBYc7Raw~q;HLWIG3>dkCg-BhQ#C4q^WLg0wrKQG z?azfvzN&_LSoc${rz*Xps{V86^H(jQ)JC9cKkY(-R8@41f>mDcL1&0+Hzkgat1{_B zETO6$FQ79_rGEy`!d0{BoWMd0XQ)1;T8Aqtd&+)XRr&0PXV+AJ8lx{$C7~m%S*l(Eyv|m= zN@Wx|s(n-$kgGaJ51l-fIt>6DVzKzG&Z>lQkv3*OGO|@{hRg0Q1 zk#|&k)Fs-YKJ?y0uF3+wk)pN_%o1J%)ZNEWNIDC$t6GFU?7p(=9&3_Viqc@=$+ zRX?pnU#aSc0nB`vDvQdL%T-x7VXs0JO=nc9RIZO;p;{I43rLM>ANf+NIzyh-sRo*% zvr)Bd3AiSe`5IVnR_zFYXDuqzDR8Z-XGg)csotSvM!Ra49{^8Pg5_}VnW}04I=fX) z6vymSO)iH>zbb{c5d*5g55Ntoj!=$vNcH!8G(J~}XvsLN`hx0aMpUs4&@!r$Q%GS# zb&yt8lPdr7nB5nuRZWnbQW^3f;_T?L2g+O=vzwsI)p6+wNP0MO{)NsXjywvYdpa6R z0q}9mzX8tIv6O0N{T%%?7+8R#JMBIL9p5O1^T!;&qx!56M}ImYdfahcE3R#*pbB^!s1sCf$Ooua* z98>&3k{y>&%ICb}C$s^$zG3O z)O(IWVUWDaH-z0kX{o_ zj)y4m-s)K63A0Zf+bNga>G*pueCctVprX)z$A`3;9CECqn%NOY^(T-VcXZqd$rp}0 zDJC%ExQA9OF6sc4H6;Di8I;04s+PyW`9O8V4Em0# zmn5PwNS*KvygsfDr3YZBI%*Wk!qk_3gt8OrfA+)PN%f97XpB@VX|EQe9;ax?nh&`I>H28uKJ}T zFqEebr!#l?>hsy?D^Q>41y`v4k0$b_`XIgZZ>w1pX1b%k*bj17o$P{v-BX7j$H4BZ zFRg?V57d|5$4nHd|LTIyVl^uajStmF^Wf4WwLA}!kJa_Qn7VRx#T96&P^)SG@I<|u z-kVkGziA6qtv=WWcWcxslsTwXH&Eexoq9h-QR~&~GvQ!^`nPLP-Kfr{C2F(!zcGlk zsDJT=*;e&;^k#mlPNyAahk8Bz)Sjtj^gYflwelC}>{cgIc~FnKD;V%zwJn|g?Ngi3 zp!?P5DSvK>jlkZ7`m@&|IjJ6_Q0|m^ zJr|ABYB?45%&1fUMW2%@}qH5tFdx{KyVszY+sY@|TBn?^@31`o|X%61;nINHOy zr{?TZH2P?a>j3xF{P@53m?rHW0REbzm(duY8L)*&pvGtu3?0+tP`y-;rhtM~!I~*r zM}}y8mx4R4Sw%~SFijDKlEO7#QMx%o^X6`Fk(!B9AW<3vWkRDhIh1HTr3s_bn$wzL zdS0K=6i`g{tVZ<$BIh(uUIrJd`9_Qp#c9q6AQG=Bq5CsYlWzlfk_JJ1+^rhtYakaj znTr9qq}lZn+)dH!@xnx=YPK|iq-h>efGAz_3hi$*G;Q?QzM^@Lp2Al(IUhXtkX+3{s`e?+v@V2}n;MJ5n3r3ce@kKSwq_aCYTnW0jKih7 znvTtY-_v-|>hOVP(iW;qG?jPI_efK|3j=$sxk{g1E7g2a3a(6(^gFbaYd#wXsnBeu z-+QIz0#&iqXyWO|T&FRvf|h#Ct~fL{Xv!&p*Qn{NM`M$w=RStgtQqKxIOiXl0w>84-6n8x=uM8-7-CPL$FwQM5DC`yO@j;7o}*26xOVDWa1q+M6rVVu<lBNCcRd6}lKw7`# zYPlC7nWqiD4-5HP!>=%VUAy5PRNv4(r?RO+ZJ0SEZ)<;|6XAEY2dVF#HktnH*?nyi zW#=AfvnUr*q&>Y8z7%Wo=@x#dy~Kl|Qmu~SMCIBwDu`5QJ)=RMXoIQHrc#@{78a_s zz4PH`wRUR-aJAY$&Vp;uHhc$VO_PH z_X9->eRMlyAilbf7Xas{yRaDCQJwY{-Ag*jKkzz0XGWpbK;18&0(VSz;sRzONEhIU z(FW`O%LfV3ef<~g9oOxkrC6v=nu#%l>B?!L6s}9BA5erYkm@{6=*07(`lRmbPcXhn z-Lq&&M(NH{crjWx777b7x<`@Fc}ka)1(DObQL48&qno61tFt=i&2aFXZu!4xjMe?Q z4;JEd8Y+T|*Hx#%P=fBKcsP-$J48$VBpshpVadAArw}=>D@}l*3%XVbv|Q8$(zE=M zPAvl;OQ%u5$&*b)Dq~_;N#c{slw|bQ!b`DbyVd2mGdP z;C1+NOLxT>eYbVm2jK4L?*9axcXe&^Vf}&5pYkh3I(LfG7VG9w)V4(TY7+V$>MUqw z{785G8#w=1x6Tr{Qk^FS*voWhDPC8uD|r|8Ds)%Y!@?8Yj!kH+)OnwRWR=d}5q;IV z_vwDA(a8eQSgX^}vV{tle4*Y!7J&<#43it$WY{vpqVC zwJ_VOtEGH#pYCN^PWJ1r(o)AMsw zmq;u4G2J}6(&M@yI=?cZ8>eqKOzIBJM&GoKLGRQV-9cI?IqB=@c5~J*q#vb=zI-v9 zaMeexhoqanq8USR*L!usPY=BdB?*q`J3fVKPkkTIx!}SMfCl#UpgA4A2-j||`C-pq4OOMo#_(EBf{yZhdqV+lt z*o)B@G{U7*`m!o0JFS16q9bSYiY)q7>HnY~>^Z%RV#cxh-z?xnoc;&}q~i4*w3DhBZ?{Nfu7xiMw_g~Uik`pOl2p4daC{s1ufF_mb98l z*VpHxF+=}rBSfy~BWMg)^~qjPeNDe=F2-zIin5-LmHoeLV^ap7HS*TzC7W!`Lk3ELFxAf1?19w~h30>(s z`d@cJ=Ux4kc^K_IeX9U~`}&KCfIrZ`k_KFne*a(KiuIk(0VvV`CWJ2!^_v<%9_jbI z0Q|9Das%#`>b)udP^N#M@~P$ek!a|w&?Byd-7P>|xnBPV6~H&>lf~c~^&#)Ti6;HFAECNg|0XTuTlDjvqpww; z_zdti{bO2xw(H+A!n8iq-=a8Xr@pEHX1ny$JrL>EuRn*r9{u%?;dQV6o)+%*>6>nW z>(@6ML-m0EGb%P2)E}h+t0Db@N$7m8@1`Huu>N-o^o{6;wg51yH~s?fG5uaHB**pD z6aksgN6>a)QvcQaF#AI9^&EXu`s`U4*tEWY0o;uKx&?4fhL_GkwX@;KY7E82aG(pE ztD(#khTIHW==8R`;SCcg^Dr>^Pn(IGQ2`zk<*5297vuq%qXDctfBA?xOC27D2AW0hSD7{6lYjZ zas7D1mFuvVU{F()LZTs_%KDNFnG~E(Hmspitc!*kTGw4Nl+q$9#qdWqETkDO27sg+ z-l5Z@83xZ+;LL~b*sC<$qMM=0urCH8)rOfCkQ&3GgCMnr_(vdhhJ}>9syBGjqq)Iwq8PK( zXkc2vi6%pE8X8*+-`_!FtHCuFs@n{I{s!yqhRy%M`cuP91|&NSHRqwM)9^FpOuG!# z@4}aE!-7Kq^clEoprzk1xevGjLmX|koVFO~bI-0@?xtWO-M3h@1K_pg3aWBRNIKJg&BZ!1=xt#zmYReB)WSg`lm7ZWJTLS2!rfvD00=qd|)^3Fp z`CGIb;dQ~5GRh6!*%H@{3Aw+eB?2N3xAgymzOpTUQFY3bE&5WLr7chCnME-!((eK6-W4O z-FXVCgSUP$4P4mPnHKb&-g>gd=?s88QbPTq=zB=#N_{t z34<=c`b+!r!M<$UiV?hWp$it~r%{e;!6n)ry!#3rKYXu@map&sP50#oJIvAY;k}n3 z^U(tOlM^2=*?{(CF4v*$lWr;yUp_>Kn^!O?4z;p?N*+J0pmRx|Sy0gAbGaL^UwBc3 z{L4c$-c^ymz_qXbRpH-Xx6%e}weTlMu8}-|4{ML#M$5V#??A))*bUJC&C3*r_;%4= zXx^ZWhHo1!)6w$Xr(B@Ex2NRC4=KH9-?Z2a7h!V()v!2(UxI$c*w4_W?4>P+YWHHG z9QTHzU44KOOWGLPCg|dvphuriB`5|jT10KxC&H!Os-&mqw%wFHIB+N%|94}2POnvW z#wZ0yJQ$r+SayW5f$l0#MgR+qUW~N&F+bjnzhA{*d>DV}VBeRarh_7Zj0hgMHpcn` zQ2dcb7pqWhZYy6{|#vIWiF?$%lI)JK8EB`W(Gw7{Fzouzy&Zzs1!bs zsi%))9Al=L!B7zMOFQ%hGws`8A(UzJ7=2;Pd|FK>F!xMhu!&43DqcxrmcIm&&YY&# zcm^|xUe#BaFVR}}D)T@MB(E_uD7==*yz~M3vY6IXI+M-(Nd}U`Tse%sT&8UjB=eXH zDAbqFyg+$^>&%1A;0l`A##_s=^OZRkHvTla-a3I27W$ZC0~JsBG%zd0E$@_^!g}aWmo|BkhP^4 zzC2?2e+(dbQRj{s9VMI?@MjJpXS(g(rJyon{lwYW3 zz3K~{wXAq5eyC@S{Q!6a%b!*cjjT}$UN*7bqC>vTEGd<(x3K1|2B4J{O$EeltlhLR zXlHd!LiJOY-|sNn!TOnY`OjE?nZcz_*0#Bj>|!xrLti&*Yz%-N){Uc>iC$Lg9}wwd zHBoH7pVj7v#sOA3-Hn4Rf2uGUV!d96u|H=`tbo~J7IOv;j<6OtqHmPdAb`#>)?#{D zj_D3jDlVR?xE4}G2k8# z*_{Qv+-TzsI9O@4hE5Y#8Lj&Z@M@!yY>3ntr72B|PUN3Z`U#$lUb zq22iTZQ!07cgzCUXS|&XQ2UKLUV<;jOm-GxL_sD4Qy5XO$=+M&3o}Wi%8hW7o3u`h zFxfa8@DnET&)`dv$)^saA{NY++;KXS8UiMD+VGXCK>JU zbJQfq7$OrUIdb$(n+#CN&5X$@N=rGJZnl6uXVc3J09;J%U18SMv?Le+H`Dozu;*^N zDg<-p&rXp65WxPG3TXn_O<6Pr?B^fjG6u1ihQoR=TST$>5H_2>2XvfmB7~MWc5DkI z2!YE5#qGr+yze4Y;{ra3`W zG%>@uM4=QXvkv-&Uo<;M3EfL(EtCblZ1&MEc$RAB{4Op>n%Ot|0Z%t;R04O!?7$`f zu9_X9I9I0GW-4UMGBa`luF&jrGkAT|Eai1H-ZD$t2XfoYioPg#$1G3*Wp~X64N!K^ z>|`h!@0kRnGW$9W@M5#hGAOGsYkmX^Pt5*JMqia#M;KhHHgjBvzFM;x zis{#xJvj^u!)9YMAR}h3RLL}E7EO89aWe_MJ}1mH<*+bmw(3=IFU;6LcpE4VOIcm=JFc>aN!Q6f^+5WG=URt+?1to*PZ*lGdK_K9@?rN;YJPv z?#T^&1Z7^_9CE^&`{s8rrt0o==6=nUi< zwg7&N+a&@#n46PQh{yH>{uL)_OwO8Ey&%#?Ep@TQHI5xVz}Z5X(J5 zlNHA;4gw&a8($BSz&%Yb;Y4o75OgMS-MZm!GWVxJs6Nki`3f#w;1=IS-$m}$O!PhB z{xbnXmE4c?5NYHx=*VvqcNq(f&D<&a*j5WSiIyX6+@>~o-Ohd23-AuERSp`Taet*> zYA07nzi_Oyx1q0xyW0_}d$~CjGwtJEOb6-bYX1Rzkh{hfeb2dZxquIIe|rq##QXYh zz@2#?QozEM7hH}pxbaT@1l7L0`xl`zgm=UU7C+9De}9c)OYb59gKG0T;m= zPyly=ca3holRUF(j3|=#;Uk!h;vG7H#(3WRG>`;dJ}t--dF&N{C-K%$ur!%xN-K}^ zyn;H2T;Od<2ks*8ga=fo@bYNYb(t3~#U!Wlg0I1P8qb(c38wQ*7eQGDuPzGquJ9^G z(RY>CDTkJ8yxe!;QYLSJ7DHLQnI?$j@Sf5SJ(stm0F8OPIrIR`=cOG6?mCaB2Uoxg z`2llwllMyt;J10J9f7;U6VacPy36aLeA|8A63X=#@zz8DP{K2fhU7z@Lp!)fJPy5t zOL=!J;8{6O77jlvc^R()P{sR|mLt_X$6p{)$2-VJV*`&(vDQZ3a@u({0S;f9d3We{ z)WT!8fotWxMjO|5-iCv~_3>V(4QM~_RS)zH@ZNb7qaEb^`7Hp?c~0rjGRzC1%Rj=4 z2{g1#p6ZJ$GRi+MWjrdrLLI$_q$BJTtm-7Pjeg%%Hs zAI;&}5sOY+z&$N~FM|ayi~Cem?rkwq1hak?hp9;8sKuw-F_D25nUoF*vRK>;5^S;a zPdFHB5y60kIE%S_OhLTGO^VbfSgiUEB+%yWD9pbxO9t~CU~)DSj@~o z9ELO3i8athy&7T@r3TkE{l>nkZz0GIq;>&qP_z5dM)N% z1lMQrgv!(UEh_2fG+?opz8XJhF_8yu$fA~Z8qY0`(bsH-E#_>7k}5Q(+h0U!mS+Sg~g$2NKRQ~c0gp>V)6or)9l@ppmUyGP5XV9**B;d-F5b7 z4=^zI*|+HEgvabqT5=qj{reBF?m4@UHV$61f23@!_v|}Y0PvX|PIVlq?6^Zl<4-foY@5~z|vwh0D+d*4*`D6GR_%( z23aN+LFBBZj-GDGmY$Pv;=JW_D*7&1eotSYzG(T;+Ze+Q%LY2qRbW{-0tP99pC(@Ol2^T?`@V^=6;EpFSFeGCM=X& zezOd?3d?OWXnA58Cx^XC%cWP)SY`QB9RM|!(h_K?wM9^F=BWS=9dud#7 z%M0&A=aA)B<8c1D<#Q^?9=80QiWEmJ74(i9vs}9iBIA~`=+!e}>GT0qPg)MGL*EO_ zb28|hvSbW^o3_kx$G~PR&%Fv|PW-oNFY3&HWChZn#9TR~2@}rN#tRKHvhD&vnzhosu{P|z_g9Pw7 zr{Q2Af8D3hd5r%KRjmZ^nFnDnn7^_geIfiOgTRII)&1}+jGwU*BH?@oPh5@&{yqcx zPVmDh)_RgZy9|aR`Jd|07{wp@1{PxYW-Lga;%{;T?lgbvZ;(907trC-v;2j0N1o%? z(uucNzJQYMar`@nArjB$g+nBP|IWXdmqdPQC|pY7XU>9_^L&pwG+y9qXXD9mk?&{$ z_$7YZ6dX+9JDrB)W&Y|P0Z-+>`4LDO-jJ; zZvg7~?^4Nk1K*A^WsUrgS|QoQXByx{Grx)MkQV-9e@sCupGQIDHvXry0BPsn{tXU3 z82-` z>zoI((C9YDi~hQV`<$0`FzYd=tpQ#inZth@aL+jx?E#Om`b`eNX{#kqz@4?aw+?-= zRz~!DkGEp}i^fDN@ftKHTivAn(FLndxzKXiDuhnlJhb|Vww<+B<5b^SXZ6)Wn60;3 zbRArSRX2s|8m-=q0Itbu{~z;9Y#&4JEa)~AgzzT4KhZZLGmTCxx1u63Ln8t+;AmtuPETi0#?DYvfELUo1p zC`ECeSeHM9gO%2SKH#dX^Qf4z+WL(_z-z3(Erx|!>!^q5tFykd9)0!JSq}kkuzuq+ zaE;c-Xy4If9k~#IW@{^o0k&9gHv_KKdN~znwpm}Rg%cgt74!#`pIHa@VeFmOSL)H& zW&J7r)Vi(L+W_8UeQgGSUh6`7hV)tEErH8uE%N{wvi`OTjU(1yQpL`w^_{;kA!F7K z2VrR3dKDWpKVd!n8|G!wx_ccYUs$I~(Klt?{1L&Up(BDH=3)vw1-5+{gO^|x zg-pB!mp%X&B1nE4@Z$oF6?_R3ET%O|xWIH9l${i8&W5r`!GnWnj1u(H+B90AqEg%# z!E1})(ka2c1CTr|xP20hX9U7|5IHOO;wZRtg3a_Th*-hGX&8zVgz7=!1q&%>pCFi; zfk>iY>j1bUK?6mQlLa6D3!Uc$-ZAjyf}k}SA{PbjRJ3$Su$m9mDFVCyJq`uG{fEX> zLGL@znI_my507*~U^QkpL$Id}E?p7Cyap{-1?!GM9AsRCUVoCvK3FM!E%NEp9 zJ${a0C;jkp1$$HBM4ljHEhZ#iu(2JD*9D^#puHhjOR=s3!8hmV9u({dzzp6L^xeY+ zxFyIt19DqnMZdp0f&$v=-4z5<+U=fzxfOu>f~b$cJr<-<-lbG9{Wi>&2?o!@Lb>2i zIY@=TgSJ9X1fek)L#4p>5Oh`vTy8>HwZM*our-2UGFvM+e+WA31bwl<)e90E(bpiz zpzGHt$Sc51Gzl7MHPbARQxLXA;774+7<8MUm_q;U0)-vOQ^Ar2xHUQi=Vya^ zCV1mN;5r4fT0y!59j8FL1?_pT*CSxMK%`d?a2ihZ3Bop@v0o7I91ac$dVhnVK|zrR zW@$)pgu?sJ1$;V&IxKLblZPXM9&d1?f{}dK8xyRcGM90IPY-lX2=3=Y*`z>Dr>tKH zM4=#4f;k6ZXj;%mr86^v({$FtNqB_9FwVjtii)`ir>VBbRp?A_5;x%=OMr71s&XLd zA-wktl1GH=d+F8}E;x!lFJbt*Fyt-t5Ch;N+2al%(F!$Q2U&Kivg!VUB?O%(of5xyh|Efb+7 zS;(fG{dpm09Xz`roOKVwyeRzjGnl<3eD5oWqzI>}j{mZ7KKhA#9^u)D>Z0H=CxP1JEmM ze;JpfPk5YCF#W>ak03H2ym=f>3<`_rEA>Oddy@b>7tZa1*TcebIi_wz_yrwg8WmP< z1UDwU@)&?|;i)$Pm=G?Z^4>||AGADwA@q6^I;VtgR_L1++EILBM)*11Qcj{{^ek`| zef$a>bP+B60614s>O+jkP2^A4-Cb0B6*v!(Ep3{Ph~~{hpQp%vE8t$D9wBhvqOa(9 zgpX+QeZYN1`Y20!O>~=f$(bT|TGV8Tt}Vd4WQ&9pj?NLiM}>&FqUW@W%oFv}k2zm- zNehwdA_mno-w@ru1wRW!o91Igg(8QuuzpkYHibTJiM%N0e_Ql=7wp{;-J#mZyP{D# z&2dk}`UoQTMV}=A_dw+AhFK~So%js!Vv#dF;7dd|sGRYkXpssck3@zG=zA=R+zDSw zMSDJkvNF+Oy7kLNJE-KeLe#PkzC01-P)$jtNNNOlm1vN@s!%QBhryQ`Q4-ylwW5zL zAW|oCqn%>C$c#$N8$=zsAdRBFWK2ktD2xi{nnjhrLQ9J%BofwJMax@ZwoSBX1ti-= zYYt!vo{D;|p|3*}69r|@M01uwq*D~-0g*1z_fxRfEn4vxxE_%=#j|=v&${7tpJ@9= zaQ&hKv`Zcky+*;DL6JRGjG)&VoEPCt<3nQXKE*RgaX!A8Rj){8d@jEX1 zoR)$ zp#cCtv5u-wj*1(PL5simcM)&_;zbn@2^7C#0+)`7=hM9#Bv!JZELgmp-tQq|P7~nA z#arkT2BBix`)CXkpI8B9;o=SzNQ8Kt5~(M|hI7z)Qd~ff*hsMn)j~&!EA@a!i_gXb z9wVMx1CdkWrPIKj7XOZ)M*z->GhYFBPJBZRUt+~sv^R_sAGi(@FMi`18WY4} z6oXF`pNs+^N&L|#;F87PtU=#-aRrqHUl1?f2kxRcf?{2l#JLAyC`Ej54#;J(-(EDP zir?4+k|w^t1d{3Ehfm>WhPZ(KcE=U*B6<;B6@T*pts~KxFFr~)^mXwMRNHYw{B<_W7KoiqVWCj$zZ5!eicM(` zdrMq+41n9>W(t4b5%1a$>vzRgbROoOc-Lca_r)(qfIJY3GXXCWmz{#U#o`!JT_TR6 z4bDSx302cQ5+9#H-(zv|6L6*C%~U^ECU*V^7RtrpQIM<^&EE(+X)={QVl( z8xdE&2X0jCLJ!q3@w-$bH!faDJLm~<`Vxptig(cy?1i{@4Dc!OK8lS_ixc-_3^U^A zl!$YZ2#SDnmYjVK>n@Vr&vC(BCAU?8yGcAKlHo2HrXRY8q=>?&M8oN|pzMi<8Kf z!a}@cMGMR(Nc0qcNtD8Z7$O%Wg5w|;B>_sz^(6_%6kLkr z7hm{tS#sG9s#7KBZJ{$w5)%Ps>5^uucg~RfM{E5nl2a6uyDHiE2PCgae5=uzC0Rzl z>1@eV7u?N}F#6zGuEd1uU-Bfe(ctnWGD^W*mmC&A^$m%hmRkjq6czx55@Y(Q-INU1 z0dPyQa4B@&mblU~^o}HBJ0$N)VxOY#o&;sfxXUGnKLFr?wC; z{COJWp=5^2Z68UL1F-N|@_jp;D3#1x1n0{nn5YWQ6{nOOr%S*S%R1 zO*!EfNx~Fxt&;U&0JKTwb;F5vNoXW2Je9a3@?zW}Io1TgGfA;Av~)^#IKka6$xa3u zyCuADp`}Oi!(sq>CF|%981zZ@F~Idp&QPpmK;rlzR1Zqtp)!#nN%XhqdoD?S3N6Eu zc3LxxNLsf7H!3Oq4rENStO6qAl8>x#!6zgQKf}Vk?Pjs`dyZ)Qs8c?)P|4wOp^*%!s~RY5exP*q&q*s)x09@SO`N` zrS7W$zb1Xp2!=AH)k~l{OM2iY8ndOGz0jE>O`ZqITp1l`xSq&vqUd0Tot1&w#46{gT~SK1YczI)QKognw6 zZ%m-^fz*r2k&2{0)9&S=)GZ0*kyP*lL`tO}P&~3sI++d6%B9AB7+8h$^(YMNiL{yu zQ7WZhe-A@d(i{yMtEFSzXsnUGn+SNV^rayvtCJ>P1Fl|L*##{PQZq{CH%h~pn3pE$ zjoEObS=#(3NQ?Bpy}-3f8F?_mWi&(Sy`Riwetq%?|t7E{vDXgEJDUA_>iXQTx$ z1K=ckb3F#;EL%i3gNsbv1Fv0WDRfobWG_*vpu6lFa}W<1mu~$dvKO17%u`l41q)uX zO%!18mbE0okdN#PZDM?7uk3`^ezF&>5IHK_MMp;cWtt4&0%Y&=K>}sFZ6I;=UchX-EQAg}Kb58Fz;(!c zt8h7<$sSVpv{RND2(C*ep^MrrJAV|CJu+8HP4&vgX$jCL+w?l-rC*ltG00ULV=oxG zX2ZCLzAPJaQ;-~+-|2CmYqNeIW+Kn#&wnwLd>auJn_Rc){~M&hCX3cYH*NM%HtCkl z11`pQ$HtKYrgv=?nxXNYP2W{C-nY3yPyGir7r%hABAY{XAjLNNbC4{tVNfaaLz_iE z0`S;IMVZ1R_Hv(0oP04+8jO5jAR&F1UAsg8P7#g$rf>zDrHlJRC zmI)j0|KQ-Hjp`C4U)W4GL+6yuEXtKn+bnZK&U)~4qh0B~ON(=PzWZj2hslMnEV1g2ZQ9p6v7CW&rnJ^M6P%lBFE*8U&8rN z`B~bzg~`jeU|`|$0ZM&G$OCBme?tC|9;#2uBk2#^M9SZwbx)N1g$v-(auqFHV&rd> z!@<+?a}(gs$j525eOBH~S&Vb?rL^vemB;M|iIaO%y-mFQ4n^7$ej(oioI`ib4>7AM{kEC44b@?9p3*~?5 zxHv`f3uoX`vHYAneljKUg$vO5P`=b2_8!U4(9-C!{P;#_DV3+vg04)SFoni)`3F95 zw?ZCWgT^Ov&lG5>lE>1wf~w_g9*}0BDd0&PHRSd~p!CCb?TThSDs5 z_A(5$$QKU4!REQ<=K&v>tD!gZ;9O-JBxmO4P&tH)ZIdS&-EAG5;k>8q-q(Tiv9*60 zxKLYDx&UFe!R2TSw|#dGv_#nABQUrpY=1n5c{yp@yB+o-ZAZ({7iGJ7KYWR{{pmg? zE5`P4ImjtnjXji|w#}k|%^BM+`c~dq+wX^MUC~+EZrRhMT}%uI<+p(8#m>PY)*o>^9IhaRTkeDMfM2PIebuke!Yy!-MVA zl)MbFdz;oMp?2?)g)lo4JuF1nWl5p)jNKMnIC0jllZD1}c7NM|#M)hb3Ai}BzO4|6 zw;Q*Ep#-~^f57+>?fU3sN2;BgGSX>wob^zhZs$y~<~+Oa>5Apso%|Y-*X25z~}I+(r(jc zSnsg2H-@rKyPlUI*=1Mi4F|jJ`n@o9J$B=?(&@A7)C1mc*Yzh{8nE;ALgS!aoe#7; zx8u@Z(HpiqM1THb#LkR9AT({e5fXWVWvRfkR34c|cD3%j{g^*CiGx&kfJ zcF*Z*&e%Pp>INtK|LE9^vwhWvFyvytpMv48_6rYVVD9!4^px_je@O;%#6IT@jL*~F zejOye?8hke=57D!Cs5{N&!n#(`P#3i*x^z8Q3`ze+uL0LF3|oA1r3kckJ3TA2zw)n zn4PdM_!Z7a+FzyGttk7SW1uC*-f9&bJZ=9;I7H6aGh)DF2egPe= zi?e_2J`Ba%r_yQn1p9qbh$Py7Sq=+H_SY_fB-@W1#^pb6Unzv-Mf*2G0Z*}?qOHPZ z`#Y2o%d+1%ipFgFZ~ueN9Q(oV(3fk!cs;m0`}L3De7=1M-67ZQ*_34~u#aDXIV-e( z`Xxke+OsGYTV#JghrVKaUJ?vd*q{3qW}n!9kb^0xv_C|f$twGWe?X+#K28p^HTHW- z&{u2E$c3^x`@g@2mU{bU`qX8E{m0fAbfdl9dWbaHpP@)%v;C~uXl$|f5rZ4EFDiqw zar@#wK_={5|UH)-gphpqC;E@OlgI%kRJ!x#TO62gd3xavZd~f zK&p52V4S@J{1L`sdKr5%Oz2Rg7vt|XV7(cQ^z`>(EL{f?Uq%uY4Er&D)f>$+iDF!! z4=`L~j8MT;CS!gQxGaW`4@fqnm4lJxF#J5wm&?$Hz_mQaW(v9FGuBfr`E|xJDt^7e zxJ3(}0tTxX)(aWiYiM2>c0Q22#rUujuHR<-9fig_jIi^Nyvs15wAVw%%{s;`lO9GA zeQ&^rxu0r5e3`~nkm<*aEd_U!`6?x-{h5c4feT;?C_@s+TtxZUW6bPLXbfU5rbJ0F z^I0_{Lzvu~P<@;kN|!p6`Qrz0B8=%Z0}{@xlEJ|U=7&PFStfDJg-8#W)G^!fFfj3F zjZ(lTm{ssL<|TsVHWz)-tURhpi(y48F(Kzz930mE-}U%#-5~z)aV4#-mnG5)bonQL zV0>Q&W#Hcq=|S*IQ#J@=JKv)9#@~~xF^31XorjD!!;&%(ehk4o=)cMsZpDxa7?D_F z{ZIE1M#3Jncrx}=NFabQNn7+lMiV7Qjxkj3K(qni-KVL3Im5a2g`5jI|V3 zYGX`M>a3kHbppzI8Rito=wlpBgiHO5q8dmJFeWIcJIJW`3Oa`vU+;!X&l&x6hiyZ zaE5VPiHUS#UMmD~W|q{V&xQFDrNCU7UIl1$V?NQtkUKM_6c#*~tElkd2=lA^m}F1p zH@$Gzi}^m~m%W({o*+KVg>)h+h`Fc-_JWx#8f^$Obus#mGs`GK8pS+s2Y57-`zGKq z%y5b;onn?BhDZX_Jrj+I%m61CN@8w22bWTr0 zB#-GzH5~cO+J1=KVOqvu=I=5;rz1`GnCIVx6OWnuVlb3a<{vC5D`N(xL9&)PPGu!^ z%} z{#rvX^Dr%N`)W+gr|T{GQH^e<%ORew0N`LX~Pxs zVR30hzN}4DWa7t~p`X`LmYppc{aKD)&=SD9E`v*ftfTKiB$)NZD-a1`Mbhp+lC_4O z1W~MSsVXI!l}nWwF|1|^Ii6xQP@wxX>s@*ypJBZ>8+~V4{o{Zqvy3jI@jR>PAQ~^Q z-qZkok+pgdIxn&6i{aT-RuBbWudyD|&MTAkp93VbSl=5#XEtjw<)U&}0;-0{Wwow^ z&OBCxEBZ=UN2&pT$U3tEGx&%Vxe@R()?dRADQ68#0#M1?PKCu)tRLH;rJ7Yw?~@wV z@kQvXWnG}Xc^#|iO$@r8wSw{o4J><0G&Zw*RzYb+JyEB(40Cjc!v+G|lKz9}UGwK{dp=M(ibUH{VD| zXJ~F1ExL)(78+U8+xnK#T*^M(FR$_;cTBzB1$kt8osGUK(>*k|Z>>&NaffcUdt+X#_B_Uq-~g4lsip(TVZ$c5@q z_QzEq;p|x2D4t+PhC_8EJK`TW5yMWP35jDL`vVh_z?KH$`X#ZKr9tundojIpQrIhc zU@w)uI055JXZO>&zbkB3JVbKXH=LmCK3hPm`cn3F+5y+F!#jX$Vdou!*)H~`1DJ^^ z_Nr{SoU8QixXW2w1eaGkOofMak$jP87PGH7S0bVp{$Kl`2oy6 zpXxF1}h+{Yb_%J8?5gJ|1WONU@n?3v& zT8@~#%Z7-T*-k$w^Dzrk(TL14et}tkv&-$^0?oEKVJM+y8VYwt9}n(@*~@fj(S^G<3TEB7kEm+OgM0BG5KnG{1zhsxHanot zm%D-@UPrl?s2)9lE2k33W88*u^o4Nwe`C&0aywT*XB5}+I7DK&C0_!5hC6f;lCj)R zD7Y2RHT@e?kjS;7C`>YUo-ZUXbN%QxP2EveG!@+)TFjc2db4%l3!HIW_>ULdt zca5RbjrXQ0X4iu!rhCbkx3C9*qdfgwxEsLx=pTq2=k>3G>PX&tS~^GbTxo@Lif0=D zku$v6oxq*rSuMt8OyX6p!d-Bl=SWM^i@cU!(3j2&wFfESnNr5}Ca=m9_HOeI%z-a= zdGjcvb)VPn50N6?S_v9Ucs%m#5$^)UD9d<7ba1_bXSj(mRPy$QL9&`R`8n*>@_OjS zP|v$dFa1W|f6G9cd236cvzwP?3P3OKr_;D_{k$$(+Yj=-r1Hq;yaI~zjPMrG?s$y1 zfe!mm@DeGJ_JY^88pOqXbqbvDG>@?bIcEOd+mH+~pQJERsQKUz5D7QmN?WxP=4Tec zmq_!7O1K+suIxnPDf6wgemP@4#{uwj=Dpj{m}DNs0X)S#J`{i~^Xz*td(-?gN;j66 z=g^v=$^2VARJWL~xQV%LGe7SK_*3&^wAbk|U+xPneddB+fg3On+6BoW^M&7G(8K08 z=>*oO`R~z?95228tHr9Nu;6a7o*qv}EQJ5Z-Ft^sb!`3P&g^#10ZyT) zn3!l1TkJi?lGuBRCH7!L#U8O6jWj_if)oX;R8bJIp@;$sN>vdXf)qt5f*{zj{65Rv zH}}2wCeQQUKfk{`hB>olt zZ|zXJ=l!*gn^6R6H=07jUTp&}uL{%_ z#k!-lHyU8fVziO8NhC~b zn)XLO^gTm+p4J6f+7Yz5%F%vF2|f3YgYI|NrtymjC_uxaVwghS)X%%uWm1)rDz*8Lz9S&Eo~#n6W4lbq@W3a#7d%AmoyDBP~(8tZVie1X6YC zEU={OJSak#t23h2Z=SA?0F&dZIHGu{t0({7BVFDEm{h78NU6Q$ zy17kJJkgb}1=us4S08}A(tX|#D0cd_%^~NgpSBkr+p6C|*|;wHmt#QOt~VYE0XMyW zGB7>#TMvThsb4@@pgZ+>w3PPIC-i}UpMC(HkJ_VOTm;S_{YN@x6RCeevF^M2=o28` z(-;4QB42;BKiVGX@7)A+iT;;n7?8*Mp&8&T(_2QNR-u1S-i=EASA9`D)w`0ztVaJk zouR4K-}iylFZ7RYq4rLHix%r2^hfilD~1T{OL45{T5F)V7!qh*x82ZdG&<&H7?T34 zJq-37L?6TNl=!#H(5^Sy{0)N&pgquF?+D8d8U}4eE!dD2j2?v=zK;Mg++a_kmk7gb z`u-g;gwcV&C`0=e;EXnmeTB9d!z{WPP8z%^czn*#$`-vnZ*WS3K%(IZoexen7&4*u zis8cp*qLT{Z42!ghCLJ*$ubNs2TG2ioLoT<3?)ARti%w|A1sdz87;w5X6QE+Z54)t zIuL6NCIKjF4Y$eJ``i#614VBQZz;*d&UDj$^wz<&grWjYrXzyE;%vH~0)E>}7kmzu z9j1fH6X<1HO`aBS(~zG)^f&#Poad3IVU+B1)b#7&Xgg*);v1kGH(hK1@uca6delyv zzM!!78Pm&eVN#r_$`l5kH*HCWiV{p?$$^n%ntTEJE}8m;V5~Fg0xn4MnEo`=Iu~w96fIti<$^4>UYB?MPd_GSl~) zAXj1faURUAG)<$hMXhPK2nf73ZE8dd0<$*?aC&2mzq?~&OwI=fM7X50{*KH{PsFB-u&A-81H9ZHvw|H&GP~w5MbWF9GC~px9$QOxVRC8ZHSeaWx2UG& zh@(YyTZnJ9u%<dfyYIx)phTwd| zh$P6}Zn)SJ#odOh$g5J@aC;YMf8Vg32Mly>)Nl|i+t%o_eIWWaO1zC)P^0hPLQz_y zZIpbI*XX!8WvavJ0z2bf2$`c^&w50p$l zlNN19ER*u-f?Jl8|Lm;gu|p6~wCubU0+%fHlq`AKGM|D9sg@z@(7$xcDvDWWT22Uo zzN?nIM?+DzWu!OyaLckmC5U${Pb@-_YuS+;8hMs2e*##6W&6!QDYpFn2NVx2RSSVq zYI!99MU~}>v0!;-xz-6rytKSG4Pb99$1o7>o3x~m>DDGOCB|UIKl3%KVbyu|y$h6F zU}@xBxXeoXf%yviosRFPGV4BMDl2${-dtl|{eWC zyqg8UcJiBh!RgH{=;0i}Hyy*U9p)Vks2$9#`o99FBB)5G9;wi55gurPYK__1> za9fH8Ch+5hz)a*-48&Bv<}Fy#c+guA(|H^Ek;5DO@;3A#hxex)-A!&~1eRMoiZ1Vc zzMw6vF5p{kqA27yDA~G*i^bq9=Nl+@x`JP#rN|S0qY5aMys;~amwf4O(C~_@_M`1J zZ%oNbc0#9c6!wBbPP*;F*8Qlt3J12Kx86d_4v_N^M)Ux*udwAZEK3r;SqPRip{Ebp z(uEXSiDn4HbzsR9B65;7M^x=^ZLZkawsAZ5V6*kfKsZ6+XAGI1`h6@JdnV_YW?;By; zYlz#6w+>Ms#L?vI_7T4&x2mt`PJ6$-Vi~Px_la}J_qkt8BInQnQLRAkpcp_GAV|DN zE45(p4(07cilPRi6eUJ&hrXj?Miy*|7B`bS=$P1dFuEBdmeGl><07N!HA9@=44k*b zKIBO&78h2~1rW!Q$NiN!hZ42yq$+Q;c}S}$;=fx8`5GoANGIrvkS3j>7l+@JmQo_j zeQ91k`cN+Az5-^gw4w+o@1@5*FmzjGkskktWxsHMos^q;p-7e+(R%ip-2N9RDwGQ; z0kJ|3rWCR_@@!g|I4E6xQFtoTI|6LC(%?QWPMG5I0+>gY=GMTBQ*0<5VOsY0o_zZF{jBKC5&bLNdS`2(NnjoRg-T3tYjEj$PaW9|* z8V7v|%pl{A=HNVJ981fvDC5eBsGTr&Xa_q}ja#NbJk$7NSF~jtPksP>H;u~|g5|bx zDn;P$8mANk<(_eE&woss7GDRT!xPijL&u~p^zMnD17ZO-xrE|*Q@%d~jHwe`(K_u( z5-8L6cfsEoWd@i%bIMwP{W5V46j(i557}AQ&ZBj<^OwM!lSu3Sxy8SOXI@n>hG4$6 z4RBTsc>>PW(}zK7O@kINb*<_UKCc@`5tj|~zXQT=hPC*-DY_xFY+gpgw}pL9P8mBE zwHny=?88V9UD8^=i={n8afc1R1L9p)O{;`l=KdKt@39JFVCJ!7a1KeNCBsPPA!r>nhF)4Xy44ZT z$9Pb3)A;XlAUokYgJkW_1L8E!IST0i2EJMgspgubJT4G>CSOo1GHy_xC)Sx3{ncv}v?sv*?9r z_N?a?G;L>`He9akTe_4x*l4aDvA$|RN3aRznEH;gg|vo=W*>dPa*P=q zA$NgQ2LLRAjSGaLMD`gaeI~JuwA;^MUwsGSH8zMQoD)x2 z9OVR6vdKqa*>mPXZwGqK7SMe7hSgBI*jv_+0_*k6l)k@P_#=8@m>nPaHF|`Y962K$ zc=3G@xAWEwQQOJQH$mSnKDHT5+Razdt1kWd3_5ujz}HX)TOfaU1U(AogXmyGDF5j_ z1Y&uMod20U&eLoV$^wS~A&kvaU`{wIq)pl(rmcod1j}6ms}8e<6l^}iHd4gs1goa> zkW?pm3={y@T28t5c`!dKSvRO2zU1Y{T zK<*Ojl!{t1yV(kyDa?-?8kbp;3biXNwi!^;SXWwyrL*u$(4N66v!Ef9%{`1-7Q6C2 zI((IlBoEz9_W2kPZ?WFAO}fqY(=PcAdq`W$yX<}=wB<69PVD6|u{qS{vpy90dBFT; zLc>G$z7}>qV!i22M6cOPiX6OQb3sqvJ<4bAHw4E<}h)%n5 z%vG2bxfdNd@Zf{{!p#b?^yJ5vG=cHE z_(gI7@8*s^VDaZ?CZQI>(<$LPlsi%MDvZyqLR&chy(_>X_^>0;aF|C>cEJ(uUImm$ zzULikr}>oW&=AX==m1G7uUY_N8lOE0w%p{4DeK}Emo~xbJNzn5G3xa;(eYu6N(CWBBimE@`0bh+%m4QL{ZK|;vw*iZ#4l+Eg$v*EN}UcA0dulDS5#i zggWxfItqEcP&f%|Z$qEEFk&@o9>PrWOYIPbM?!9wFrAJD?iL~`w0}TwnGTeLLV^i2 z1POg@=?}dtL~eg#xipO0!B3y3=YkQFt;BoJqoFda_;=QfGsBNmxN!^<<%l zPC=vytAB*KmxYrm7;#0&{~3x>h5nAvo+iwr>yR!a(V4&up$p9enZn18z|0b2Xvg_%yROP+H4UD~__tY0?fK4h0Kc@3TwjWsbPU%7p>{1)FII_>^yY9qV55#zRu>5v_*}>9jC*{e8 zko(??8RkJhl8eYO=FR2}fZaYU<~UG%*%28mer!i?wC!S>3!rB=7AC;-XA8(-AHdF; z!JI(Wk1`1NuWv}*eSUK`NYr48G`{4FNXyD zBhAYEvybTJv=Ouloe}>4tiRl-1Iw)6^Fg08YZUIQ#j!twvZRtWBWq&lfxI?#Bk1cw zhk}3o(|hQY9SbZ2$)3fSKyEv`Lf<=AHkM*F-mH=$Xg(}33&cIlgEsVgnJMjNL)nVq zsD&|qbP8kgf%X8=Y!+SjW2_ym6l2(^=OCVC{vW{^$9|_c|2g*AuOP;=15k<) zxC?9#rL`uoSx9BV^Q0kdhLc$MOcWPc14OGV~~ojeLY6oo%Q5*$k$m6t7Iy$O5%2_W4I}US;1_Hx&v)MN< zVBih*Z8h3*Sk4eAy2+N%79yYdHp3;l&vbO2xPUdu0%jqL4TM|~drz4)#VoTs+R9lN zIXWuX!4^>TgnixwwMw?1c5PKGYaO7UGKXB)Qq6kP*RqCH4o0WX^Wn6vyTs#~04#;~ z-3^v2eCkVRPvbEm;LPG%=={NT{+%s~9R7J7irYM&el#POSEryW`CR9QqL}v_4((+; z6f0Cr!t)KV%tQETss=FlXYm^?DteZO0pPobbdh>B-w2fNhb;$xpR6Td?>A%={{HX< zIm-rq^h19KS(1N#aF!lj8S-#7C_`VR18tb}E1I%4)jCj7`vXoz*`?A8xU2lv;S3 zg$k&@5esZqPn!s1aYV7oeCv^}M1AFw_2b$-asQm#u0Q$>U2G3&hm+DqAQGtreY*7zeVt7IjVBvHjKwuit| z=6DUnYWBVm#2WVH3>c*zcu1N0Ts(b5A; z-w_ah!|u)n=UaBi0PXc`nlZ%RF*_f0>^<|(g`FQ*%20ILkq3-In-h;52!XBq<03#i z^UCFbcHyP_fw_&}Tmj7OJaYrYUHQe`kaOc(XoKU&x{6}XPae(W-1@R#7N+S`(f1?0r zD0ihTUpSvhQ-1`XLHE~b?!6a9EVu0e1JCgJlztP>f1wo}^4IPHEP-cwLs1f6DZ}`S z+{qNsmv|68RZ{pYYjCFV^%ROp=i3{?zzp7F2?jEgcOC(jEY6Msn2MNMOF>8IyqdkuNxlKG+K%3sG|tM$jRzK*5R9upOlj zwCr+{N-3w&Su!7kf!rpI`4$4(rE%nya+TJQZ@^u$B+ebuaXXmgC5@!BWjm!T$}jhp zX3)6;Unz1eM#2wk3K+3VI-L%pzjWgiYJt)dZwTy_uDW1&_DhRK1LdI9)d6D`EGZNW z36%uuZ8)4^5QvZpLeX|ax;PXlQPRfu7?)_NH)dHWMyd;eWhbOWB+yEyB%6zg_YBkwK;Q21(xyssNr zyyVL&%uC*Kvp_%x$#X|SU$Fe57urJP=d@Z1lS}AVB96*eDYh6b`$u80j>)@dVvdnr z+Jf_}+{GC~a89nE7m@Q zfId$pZU+q9sTj9M%|~hU4xE0$E_*Hct?Gf*&r(=~b<*J7lf#tqBhf>N*)g#CgTCP4z zJFz;oVFifK)$#OQd99wZ7=@$eOG*@Q(p2Q5=A{w7pfS_5xB!7YnmcqNXP@Sq3_u^y zn1nz)NK;75;tEm1}b zO40X|M(+E-a?a>Jc_)*MhW&_6rx@vP!{ zc2M-d=mRY>%8eGkMe)=qZZlYFjfM}ykiRi{MBc9tM)N5!>S%nHjuW{Ww|EaDb{YqC z1JU1j82Op@8*hw+c$o1%O7w^{KH3AsJla0`$7bYf=V0mqF6emukdXpjNP<%A;D1*4Yw%`W{IB6%*{jyD){|IW` zwBrI$?9euqQFv>2RKi?8?QwGL`D+UnqYrzvttpZ7fVOEpz=E|C6^Msx_q9Pc4{I;a zgj|%iI~^a4(Qa&w9-Y)W(#|1PJ7NrqbJ|ngq5Xokt`)?Sw1sr^JVk4j31X^t$|`_m zXj=xs>TB9)J%~57vlpUvOB*%=qm-*HCO1L8Hj)xm3$;DIg!n^k3-WtE*3K9K@p5g~ zUVyIB9=rpV8m-q{m{g}dMkxiaw3(|R@K(Ey9+>a7gCk&|oi1=63P)WR2}EaI$RmKc z>b__VwH`Y64O>W_kd-OZZ>729MCy_j#{v8Fm18IblF`oJco6& zY(b3D4Lt?oG2MD!jNnOKG{yAJ=muIsE?&2^2GB{mL38N3>$Ky+nWnR$b52)v^Y3G< zZ|H6>L?3SJJZ3;`o^H}~2o&iuDK+(x&Se>hPjoFP{86o2xChX6I`=hD^jf!qURY7D z8$oODkGgUS|2ygri?GZ^Z$pn{H+{`<7~!SAY6cWveda(A{q_EBV9P#zH2s)FkUn+* z1j6*`DNuVvKkqDTiPjhOg}xK|EsMcuUmxTQ?FITF`EQl(J%i4Yx0YGt7|v7?#BtVu~Ps(ojf#hgidgT-Xw4I9v&q^M+A_ zP)jsau7da_Lt5?E2L`iy=t_y<1^L{n3<(rptTFfx2G~o3{xAgI8T2$&+M5ph9yL$Xcjds`X=;5K zEIy_a-ojizQ?KJ7?l$f80>l8*X8U2p9@8PYXxnEx`789{psANLj0iS0$^vJo>1uky zhMV>v?^%qgC%sPMgz3s9&~VB$b2Ms6reD&5gfi1j^I%!EX~&5We`%Ur0r6L+k=E#g zy;&bmu)_tjjC3m74vW2b9C+N#t;-H~(rUII}DiIwNtuVZl(K>}+h=8pW~3 z>HxG|ZtUG1D7PAGD`Csy#)WhM;#K2^^hoxzbbXILoVJ`-NTXzVHWw%_EJx7g-`?cj z9moYW(O!ny_$FnJ5Xf(`Es->Q_Dcg4IiDHd`o}4`v%+NBSi}ipEg;SbL#BfJyzsOk zlqCwSEHJSq3H$q@c2RiP9A>2m=J!yf38s%AkS@$=fuYS1GQD8rH6gJt#B+rBL14Kl z%>DtjJHq1mqk-bSxyx-^dn;F;`q7fYNmMi9cov_H8f{m7vm_e@rKx) zR>wER4l`lPZE?--sNEIw=sMjKFVGr0Urf3O?T^GNO1OP29@q`FrQ!|>IhTpMHbbCB z95)p#wW9MZ6!qd}f3&?5C+RURPSRisnmbF^M*?%3v?d2Au2S_f5Z$HIlnK5=`pg!J zyrd3?K=hWhG^6@THCPs${-Jvx>2xXuk;nYm|{OX%wRbvwP}YUSh~Is z(4o?tfxrxx*be}Uka$NJctq;g6yj0RaSAa;ODkx@93vS~u=#{E#}BnrQlA{uVx_wj zJUc55x(k$Z$S8-vd1>KF7@r`Gpg3%jWJ_6&m!$ns7|#^^vJ2X-Nbz*QEKO=<4wekO z=K|tclA$dw&Na!90hDa1E&@f4^aCBi$d?|{VyQqHb`|=Hq#Rci4K zy|_;fs6pF)+50Iv9WL+c0)2<%^vM|c2-%9-4$FZw@<-$vCm0ba+e;uu$zM`<^{DL9 z51i5R8VaVLll$xkO1yj^3`2KbUPS@v3$i!uXAB zF@i3NIprv9S6Wdp&rLDyjf>-_jHCDI?NZ7IqRn5KRtOD&%9lmZzEA1D65E63X-`g#LZ!tq^r2GuNSl=^Ww;IGo+@+Oqbt>l2|37Wlt3DgXNucpu)I)KDrl=$ z9IiwAJLP3J82DbXYKz(jWz`2je^k`1XdqQ5Ji%$Fs_zLodsV?T)Ercs448$TR0qhb z?5uie32{$V$Neb0RBjaO+^MRi(1f?DrVIi;s>8I(^;KC>T9cn@^gH@KsCv-Jf!(UR zdvH(qtFmcJ5TKfO4RSH61ukeis~S8WZ5LGoXjs!#GR1OpR4$!B%vTxBfW8tHZb&RG zRBgjhIH)(#u^d-*pR*A6R==@>KmZ;rXbVz5i-W*k%~y3Oay4lb6@8$&mIHGuG<9?c zqE_Qp1Ox4iPSBJdV&vQwDEM`zWLS2^sQp#6-8b5^4@IrfT$*3D8vjTkltANyK-H2QePv}mO z?>kj@nigP%x|Nhb@k(b=1uD6kubKiU^fw`7&2< zp5wpIL+w1TA#Y3qKSQUSlXyHWBrfqy#=uPB4`~y6g{x_8n#M!P*OkHhu7^Mtzqbjs zYn;;?2eSFwVc^W+WwbuK#UCdD^7D59mUE>p0|!`Dz1- zhx`NuydLqEwD&FLd;@GL=cQ91_k<6jbek%^YZk<-`Gf$pz2>LLTlki**#&`j+=-s% zA9y>86*voJlxN@~wEYNiPeEr1ft^C$w-E3Z(w0EqZeeXDh=D?)0Ai?6Mqpur{tk+x zLLepAM+>n_anX(mohhe3Mwnd<1LK6TPe62xd1>9i}>mnaN3I|bc;HQ zy#r8l6W{&WfSe z@2NI?kJl?R9ZFvrbP3~SyX*lzuW}v^wADBE;_sRnBOtYQ z;TO=dZu%w2u0KQ}qz%{T1u`37{S5x!jOZ7#Hido!|K?m;Q2d@oUfnHhg&9n=V53vMno7 zApTEJgkUDqEEd8>&^IKMwQT~hFxLJs%uHaht)VE9y}XM~CLtCKt1q%&dZKoTtuR4b zGP~Fpa%rr9wjk*&h&(wNteldHGTCR>VM`X9IR=kcH9aA&)J>?fW2dCiokwgM~^`*GL+`1P{lv<0`djzV^3;O+0P}Y3b4r1A~MGR)KFQF@h-LQl}D4TK&oMEivZ?Hd{b*7BFL#zw!!z0+Q zbujKQdrX1<)9eX7R%2O)8!!{tJ!fzxvn7;Eah0`P0L*Lb+?Hs)_w&z@3ZiQU@2fSd7BE^kF@YAWlvh-!jv%=JVepc&g3$A!D8be_ny_;pzQ;D zb_m`7$ljV@Xk2(JN(|b@+fwS$b{;znHCLW$4KO$UzB9DD^WStp@!-oJq2|Y%Q7m#7 zkDZL#Zf;4(NBwz88)yjNDa&y`1oCziG1|ie>FDKNZaoiRp?v)-poH-+10WF2OX!r) zAzsrSwFq9+6vGq4=g@lZIPd-qYH|GhYqXu?(=Gt|61SxwK{6lM338ddk}~A7xPLCX za*GF-!xn_|DL18n*JcByke~Pt0;PPo4%*9jHKj7_5T4F~fTxg6%l6%Z8!h7f1#8N% zIv|Yi4Y`BD^qnXU35P-<9wFTS4qb^6exp+p$Avct7yDf)O$SU3}M@xpallqCya z(e+Ca+AIYzOISw>uWLf{CNTc4@GB)8=L&BI1LdCJI|2fE!YVoypD(zO+x5Qiz9m=+ zgy|G^EELRo1Eol~EdaAv;0@8+2f{3Jk~|a^{)V;^!Tl1%9|;>N^!8ZLzXGvTXiDp^ zYN06wYifkPWKx|_)D*>Y;Y1|Vz7p~z6t9II^!8snadIOR_TtIYu*^a1Vur#|?0gl9 zoWy<`QEU~h&Z7?qYn=n9i}=k@48btpw&1 zF?$yJ{!EOdZR{)Y8!fcI7w1ev;UJABcl0)C`zRRUDSdwq;{H;_MifEPOM0zbq;zUL zP)*~-C5QH7hn44%u=S{tdI!ZZWdj8RPAU#`iv6?_7!1qLC;>EM z#wn)1qKH=l+<OhNL}htC49rx{lNaEsQrQmz*@}*SJ}O5so(9fair-`uca&)f z;Jl~op$yi1<@yQK3Y6C5)h$x|u%G_p!DzPvABHxgcoW=!Fnjn+I?p&_>jzLqKB9!S zQFUD~Qlr13jq8}rsi6F9d>K-c>!*TeN^CTwrVb=0;K zg%fXrzG8eZ_tFZOEd%=(mDe11(qlA%qh^G#&^*BjWW4NG2yHH-GF~QDJ&*Zcw$IqYmCa+uW6|> zt}Sive|p&vl<^_y7>^12=xEr)23w$O(u1k^`?LNWD3iO<7jKFqtr4egw#VOT2PwaA zdT2kWoUw|W1~Yrf_&Y!95wzQMA)dtnl-{)@iMAiB6xt83o zlW~-dKMl-iraKJGW9(EdiWp{V50>N1hoo?JE0{p2yc%Jb5zivWq7%7 ztE*VRWe}gTbTgP#&0HwLQ^UTQjsbbb5;tO?Ynk;TfYq@Jw90+X49=*%WJ_oV^NQW1 z?6udd)(Mzz*c(d4tY@dmvGjrU+lAT|{zVJeX~%<|AnwBp0wEs250g{$0Kef2&M=

      _E4u|<>1K*=rC>4(=Jt(+=syz5J}u;03^v&HyqH{j8z_Hll*spB9A z2VGqkr>e+eki$QBaI3>F;8wpb02&mSo^!~((Wbznyg`mdcri5SYO{T4Y$~;1Dc#E; zrF#JzLIzge9R;KBg8sf61ZWay%{^UpW8G;!+b*GxfU*IZ>Vpwebct0H9rl0y72q#M z1KjF(Jc$fherQ=iT_Q)Jp5ry517(`eKrF2QmMrTN_JXqMg%fiZNvHXg+6w{z-7FvC zKpXiEC^;q=cBjU&KD}8>mTm9-w7HHm z+WoqXxOU8-c4&{zUwsc1r!lsv{dRq!w1*gi8<1Fwd&%9y{L0)8{nO+V@BF-M2gzUP z9GD4;6+>N{2fNe}&)}qhq=6T9&rulzeTz;t>|RH-d$G(G@L@yh^e%lE;G)c{exO|I zIz#@;{0&kX_HCr>+|eB;ZAbS22QGP|Ny_Zim-i#`pk8 zQI|m+vBHSdX3K4PgS>M zUJA4noUnh0dd08C^!Q!vF`A*|Hc0Vsftsx@7=-WUnTUv@M_k#jyMoLzm(gjGFLkAL zj($j)V<;QqnYLJsPCZZ`NjVnzf>}#%zWVO+^}8S6B1+G@Kxf*W%$I8i3r?$4-N2vO z{s_|ICqONYlI_%Gjjn!(iWzsWE^zD?v!>D65q0X#YXW~~h5z9%OI9@{=Q^1p}5{sf@;#Pz)-> zv1$?U@GueaQqg3Ggg#ipQW4gN{9lc0-6@s}cd}4t4Rd9WRU8m(_W~Do(;Dh6UIeAts8pp|c@_?$e8?y-{zZfScbCAVlq_4FL zJwu2l9GU2Av;!A4hiFR-6@f~@Ly5_l96=^w!a}6L+jy*0B<@oAs%Sk5E|NUv8ky?= zz4VIM9y31*bozuYfgn4$4-pZR8cF;$%3u)cdxX^1;MD5Y2jE=Frn-}TthhuDwHG|RHk?UU#6foY7rl*{zJ3WBBf5D97I)J)et0p4rPY5RqMxn#(ID#iu zq53VR*X+{1ly)<17?b95lbE~o65^y9CF2UUV}Ef7!p@=`T|slH7Kfi!eW~g4c?y{a znxLbuAqSpDIHDI`zp$+P3g}k?pfVF6otu;gP(ravPeNY4V1hR`x6WU8zR)n{`gzBm zaoSo|SlK8)LbuFW^@=GEzk07Nwt8?z>v*I%2Rhl;IdSakP%&8HGX|` zW%a%~5M5t5nw@Or?PcGPF8gWmm|c5y<(ZrL(`?_T8Ca!yZ{}kw8ny3aL};mjMV8WX-z`W4D;%16E$#7>Y_MfxtTKBO!L z!bL_kGqvSG>_;SF=@#v-5Bw^+KG+Px|C(EZ3Cq0d2 zDSNai;U@y!DAv)yj>xWU|lvNy)ScH7&r*&(>a+Au@mA0^y1EB z*#*^M0O1r$6>p>y6{eq-BUnzKQ0m59uz(;86GQ^OLiG6h(_g3nP0NTiH0O=dxogxT z%vLSha-Hz33<6uGz5SBNb@cY<_v^>EkI)0Xe+T#0(O_@{6$pE-E*1bXB!T2! zSx=2wJ**+g5qm-(LZG1b5f}`9F{DYG%N3YmlY`-8N5H#A#TDcsx*FZl5yM@%z*^u~ z$f?6yG(dhG&>pwOJ=M*-eZDWB@=)y;0iFZRqRE0t3HoZtopHdC*7)#N`zQT;PYm{CGyqtWuMpM`bZa2Lb z@adP$S*0h!;1P(3-7%gc zWLw=-9$29vR=a>VGdRE98K}yBTj*4Nb-8vLN#D+;YzdgUv>HOx17+AOE*(FSZC~GymTBU4DX1{M!s4BVotYCO8j8KP z7F1-=2m&DntQ5j`f~UcAX&bQuDu4cNaW^w3u0p6#t6Q$AE$pM{Fz0~%(1j+2xQ&tIlEENm?= zeFS(Gmi}H&?r*>wFv5eCZ=O@Tf%G57rQt=hYp_DrTBaE*h=@s1m1jOkNuwkY z?RYzEE+8ku$Keu5$TC&JOF^0ce#Z8(y8>IT`62ywb2MpJXHiWIi?Wy{p0?(w-6kdl zox3$>K!NSJg}2cpp-?H#5rlc)EDb;oyXe%`WZFxY(8^-cv0}a_NnWrW!kySDs`-G7 zh5#f3y~69kdfe?ni$-r}uuR6JSskyiTrwVJKuZHisCcRA3Ne3fJ1dNslQ$n<|K;tY z4S)ac328}JkNg+>KIY=eRi(D6(;g_iL->ZF!f)?oo()Y5i ziK=nX2OcDBP^ltz4)SHb2PiNoc>*8)Z7*c#>>AMb(sX5uol>_O51@C43t3(NVtBE4N6;0;x28qRxhL*luZ48dATZ#^#_~Y{w#} z^aifutMGX_%%F;ASd2cxpp4v6e|Ix&86sdXlcgLigFG<3woAhj0o`twDT1q2;a$WP zwGeOrh?sYNGvCY^>9fR=te;;0@VCwTUo5y96H`V+7UIP0Ek(8#)rH@F)3K=0sZSQd z+|85^#>Tv7l}IXkHXqkj&&q2rdS)g`yf)!Dc)B7z&^}jJbko(xa$*J#Svs>R1 zh!3j{9=5waPxR>qvEog)36@bRI>K=R&BhAh;M25g8Hh{!m;p@LTfBq{GdyY&71!Lf z%!YJ=64E}}jn9v`*V*|J-cgathUkYYAYW&?23<$JT)GD-gUZX*_T}`IK?{dxHW6S@ zrl&W>K$o6o2W!pyjjS`68CT4rV$p2EeXUke^)k6Ufdcn!l^S^5zc5RPN0X*VBd5`_ zgrq*LNTB4=%?yW8Iz3`&yVMc`hNWTznt>*Bw3=^TL6DE1S*z!LY=9cBd5b7v*6n>} zFeoNea>*b55L(hhh)oX7O?Ua|)(3Gf|2zRs{j>bb(PqYnl3b-!4Pt1|FRsV%nt-n? z@>5GqP*Y&{wk!weO@elsld=BHJwS=^%ml`hx?02K{QH=@i#27v2KMTK8Ls%~X&5X% z=N=N8v&1yIo0uLV=;|>!G62_Soa~1+)86jYtg!!)=ZmNDfd9xrzKpo zD_ssUEpVX=_7x6qQ0cIw@GZvZ?X~EV9o&HW;i=+j^>z)i`9pA`8^sCm`UuJRNFB-+ z0IZlzW*fQ(Q(JF7!6th2IG&-+8q&{X1B{nL4syU%4=;iHd)n4Sqv6{K}q zOd`LTCiMg$?#8m^QyL^-V=oNHOcYE2S7hc74*xHF8U{VQf~`^QIEg9t^)q+2Z*>kF zPP2^|)MueufDCxc^hxrnLwY#5}3)Pnb#%uAy%!Uw-wfYT7|VEsscw2_F@`kk>qn-I7}3+VSjP4E&)aS z(3#B_W-1ADOS3)fE6w%@*lf0kp{3bQ%Ze~Byp%Efsln1Rt^^f^<`Gjey;_vYQCz9N zS(1Kme9}x_d2TfPLV%%v$BQWhBY=frf09V5ivfPHsaJeLqf3xv8KsYQxRw#$SAAK% zdtQD4F7yEe3d=MqcLt`W5_NC1(a=Cd(Dn>2z^8jagH+B^MUde8CUA$NEnTD%-TF#? z`F!k#w==O3wnp=DAFY^904)t1Ou~2#!#!9fXiAW0VZK&v(^8d)aVSj&6S^!S@U_N0 z5Gk09G>A`E1q4J$OF+U~n95Ujz`>b4MAA1JVH?DRER{4oq)-B4`mm((=F)>;52zVLPV+4O}y-OxFa(otAR9wt~8;<%HGa#xJKg{a)i*V3erb5q1*RjZ6&P z4~SYkWw3o-rXEom)1$`35BCHO9paes?J5pQ2Yy_4>321(hg?4`3 z)k{Hl@?l|YIxH_udf19vJEVqae`uR*5#oUh4_=xa1iY~M;OA`Fm)TF@PuEv)<6c26 zMV*TCUMU7DI{nBKW_S3K);-v99;Y2+8!oBNTOdamG?sl|K)=%B(#;?|?g{Ku9Do{R zT+bh!nr_L?=2Q&S(^x77r+7>#!&)24P{PP6|Bp1*@GkH&Lor|V>Pt;+3mxGl-R*vlfL6MfXkYg4%M9%Q`2^#@e4rqaIZt(grBo^0h$&Z$xJJmgnF-M>^QTAMd zE|djxd6WQQ<*Mh#(E)_7*6_K!OR5fsj#jrr2bqi6jy-Sn5kw(G!J2XYa$r#ocnl!W z@I|0is8viaoCL=&_QwO$U-~M^LxGRm>yEegraj(x1{#~i_->1T98%&^kdle$VmwG< zXB1Ft^!kckUCo#m#|yL^e0%uEW2npgkJF26XKa_m(Tj_E8Zz@^Pf^YWeir44-#JJ# zalog;67@!QXUZhl?A0xC`pDA2#l61Nyb3fgGYYiWFR~@2D3V5$8&D3xL@FPwa#C^E z$0YIddvB@kN%{&1E(T{%p7xx!vrTRw78*0(fb&M6hN(kTLcHd?>praoKL7%E=~>)B zG(hWMyPyq4q4vh=R$Y2rYVnW?9T_b!m_`}{j%~T)N~>+^RWocu;aVHE*`QGbL#Y4G z=S`YibZ8E|cCB(Bd})o18=dI}FH&&?cg6M%MW=mb6ssY>v&r$1uG&boYNA^=X{REe zYgN;XA}u0pwum^uub#N6WCREHGe%f(4M|SDzKwZ0lUVlXeVPA57vuNDzIL#ESpJ=9 z1?*O$CC|T)Ojdmw|M&+0nbKM!=tKqB%^$8cs#s^3FD}N%NH*KG&Z*Ns;b9HV&eJoP z`v-K(R4|{3+ldQ4D|6Ax&oH}kOcx0ojIB=ELexbBzq&JsD|P3+^Ca-@Y!z2}HNn0} zK6SFaT{32nfKB5+aJ@VN7*y2JrbkHpJqNRMj<_3-VzbNsQK5sy*RTp)FY8^sMGql# z%g>kpxJXdA{)+d4gqfZ5z?Ylo5Veoj8sh+uiiZ9WsBs~BS%E_`25z7bAJ@Y*p|5NM zlNDqVb2Gn@ zB3>5n$08I=w*n7>WG^xQ+oH!*F5p+>g4E?`1knQO7ke&b1RNpMv~E^zaRDMa{S4ys zX}`!x6N3Bzx?6oFC^pRthu!7{G=tfHN0uI}1ac?>J`{5+)Q}kdjsf{ps@&25x;)`m z_*$R>H}cRKww+#383bxrQPXAL28GUJNi?-j>BbX1S!)^m;DthHlN$# zOAQu`I;>e;x+||HwYoUzwY68Baa9qHTB)=`&sFKg>JTby5A>g~m$F{D9p$(ZzVHq2 zyTuisc4^v`GKT}er5d2M=YfYB^;Jr&`AP&y@!VXV^Z5j&Wg)xNSl+^^if%nD$;PxX zA%##1EHoW0%V<#Y!LiVp!MTz}hS1kPwRhhbcG= zv-IW_PNuKSVgjpX{UvpuKEs&J(9>MZGXav~#xe#;(Ta&fE4o5LrK<@fDBKPIocKP) zuJk{b{k&tqAU<9u?kH#)ALbs;@>8ym6_3idf1(G&U{_&NDQ>JDqvG58e>{D0dh%k} zA0C~Z42J#V)5rg&LSS+nE{wERJgI09*agR}Oc07XfN(|6spNO;2?OgTZ}!%((}C9!=S$GRu3J<`EOf!;?YqXCo+sJ!KK}w}0KQ^0d_N$}^KceI z^q`3f+WoelbVnFX?q<^wY7xO%4tb>LTjYw1%ma9brFSOEf$^0&^`(77Oi^kO$cY|A z8J}k0Poq=w(D^Q6M39(N7vxyb2OzI63ZMipF@b8P!&;?rclid0eZ9Skv!r?y%5tM0S8 z!-9m#(O_%#wz7p#^+@<2l~&Kl%4*y>6`__#5Rv^ChsIA74FW2hHS@BYT`fi%sI!lfc(J&H z+7kZ1q_6}7zs|52lA!15BJ$5@2zPVL4H**&h zm*dr9*~gdL518hWiNU19t}ZQ%t6jMGfjHs%ftp}R^~t^Ai71mjn~jL#hCLn{V>s7g zXZ&^YZQ@3)R?p~?VTqs)hJ(`+#NO(8L)Zm$&~n)^T$+*7fg${hyvA(0w26a*l{+## zr=qr)2vFi-+x>!d;gReM9j=lp@$B{z#Q7oqP{enO9BqX?%_9Ff_riIB))??+*Yx4q ztgqdQmfezxm#FmzlSNh;6Tx5=oZ|uNJ2)e1yjWvs{pf$}{d@0U{`%(a;{iN( z?Ngw&-(tmDNxPc8`g#a9<7+D`?^H5ll15Jl&fyxI{Mx`lddM0@|9^E_4!s8<)(yn=IYbcP2Sq>+KGt!^9P-j!@GyH8j%{t!=9B zfO2^73q-}vR*N3m!0G*x@!at-;L05=v$YqYp&p2LNT2&>aIbmC`WA;cFK`-&KFTYy zWPzOrJddt6Q!9ao<`AAXl_@*7Y8iP6DA+JxV=%MEER;POn&cWYY^^iBb-PxB zClJOe1`4UpC7^%hVZ@UKVrbNl_d||@LP~NSz60qs?qCiqI2R9yu@23qiPMa99}MWq z0he01ydc2KaF@8G)aLn1!qyy_JPs@Gk>I>M&4))48Nl;dx z^-Z^rzy9#}%l7HR>tB9(^X_NuJZu)CM63bpqR|cNkijrjoo$h@l(wa=L<0>s^r2v~ zaejLR&ILYeDcv&uwccXwNoVdBR~xzw(QSj7?t^NZFEzsmK(O~19t&EI$I-u|Z&E%b zq`SphG`xIRXN9BATQPDEV`wN9^P3~LSBWvI4t=d0=zx8usE9^c!5nE@65on-MBNhs zV*KO(`tEiL-Kz?>~h06S{b~A$VmPspFXIj9zIo82;hjb_sc+2dOe&#W_ip zm|ye`{OIH+9_!=>gR2$AMP;O~%RX;PZ-5)( zp6*yepxL0$0)!AqD~3LTJV0gQXY$o58{84A^Im)EXaMuvN`KEF-><#n7IJR_dBSO2yDu03pyIAxwG8MjiJ_~)$yN3K>7NAeK}0=LD;K`KyOxk%2#n1>ow6#| zLfceO=4n8$ZZTMK!n&GXkCsShv{=330&S+(!ur7U1^;Vfzx@-&t*)1U2)4j3l^lr{ z%U$irMGw5}I0ym4FjH)MgKV-|JqVPkfM}qVWVb4Z=o=cM@(MbMRxSj#k?94}vFc`s zK0)9BIRAbRk_v-6EfXO`S5H@X9ur7u-nvI=4%}Iwk4WbRMJ+8bz;4h6pk67L*-AAk z1fjUhX}P}r6ZhXyU$Rjr0gb#jJTqvZVd-A}J^{8GEa1I5L+LzA%3t;pnWb*y6@n^b zB`8kD7rKH~>_l^jgUP()HsfFpw+N&bB)RF4PaxO0h1duGm`dl+?9+oqEJ6)jhPZRD zl6y{Q>pgV@Wdt1%yOf(50qCcv%8Ah7S1 zG-O5<)1^>?@Qr)rg~A5MUh4|nh!qE?g+cfsj6vS5Y}7+=Je<=`{>Cocm%QeVA-QJx z!)!iVz^Na_?YAi!KTsQ7d@yyLmb&RDcDjqdU-`=>XCt zdV7$V%issmT*Qf)Gm>VDWEO`!@8-S*omQz_8|AbENHJj&C3${c=#`-h1%=pHom~J0 zsR_afNb2;8^R@iy@Sd9AYjoP;%l?eWmveYv1kUyKUwwz57&zs9XHX<@28nf9NXhIJ z9^obkDtq;0PSs)$Z!3YVY`1|X^(5!BGeAHA!E!HM&iU4{{qe6702`@hR5jeV5E1T0 zSsYIa#}s|(eX!Y6!*mY9!c3Brsp`w%&>i8pWwwlv9^%Mey9j***bZT`B zdO;h&kb+2_Mx0A(5S-yX^oPR#(q<%llDhP~Y-$*-R><-mH~0>#828_M|ACu$ zFXRkhT0``BSF+|hM@iK>DNE(#EC~{+y2MkqdTr?}j#h7gKn9IXVPTI3JsB)97-G0= z@IkmBdpvwL-&}96K=+m(9zPyA|4VcgF#rwueSZ6Yusp@ z%Z>MI5q0qnOatZn@4n#Nmef^lWn)>gk(&fA=Q?09DKXVxQ&cI~aD!+2vYP0hSDaA6 zdZb~Rf+CH>qs9)Lz(-*O#?fLeR!kgOxOh8&c6m*>UexgH8sU|`2!2a}XW6Ma@cUV) zYzl0SKZ6%d7YoGs;VHD(w=71fEi6W*wAAUE;+1d}wGGI`i6j+)NxI?o}OBKt=4 zk?Q%Tg{<2B+FM7Ns|%)fzPLGu`c{{)( zBRj{3H&2h-^)IhKJdQp*zE&2=u8!^5U!*qjBz|KQtR(9iN&R@Ovr;&eNt54yqwcr=%rw4c z41m5{w;-zT=DKG+ps#LcNWJq#NP<@0jCrgrxf6I8FK|}1IeF$bkSQthUb{R})KSI& z=q}eZbZ2pen6kJmo=4Gurie0=Q-=xB1kPkbbomoEOZ+UJCuTf^=<=c6a;>xaNw96P z{>j8w30&sN!(3TOwD9Z_My|v%-$jr}A@)7*-6KmFRYVtxsrvR$P$hH+h7^1~Ro8$F z*x;C!BlvMvgToYRX`s<5coM-5muMFS(xuRpxlv8dH%oYE{rTSA2Gh01xVqHx5(13L zMj(1g_Bv}63$&mHOR3P5*DN?OdF&OeinAnc<)}I|XJ>k#R2na8mIoSFD%`x&LMN#v-`UoQKV=0F*_j6&poji+H%uEz8;UIW3pD%>$tN4IX{Qb55oqZTs$dM2Gf z65T^|cjj=ekrl@kKigZl58h1XR2U&e1M|uy!pNhPE=ofIiCym-Y6=qR!y`#y-~uqz zIrGQ&?4>->%`Ss4@bWCH+7vbgUa3#hmxhh&cyrzxeoD}(M_LAN;6KUxdaiOWjiRX5~NLgQML@?K$8QLYd*@a(g4A%zY7_8tr*z`@tZ{&@=ox$J* zy0ATe^K|p+?|(sk;M{~e%-6K(R+@Bw?(XBqIlN8<7pA6Up`Ap>9Gg_@0RPmg1Jn;Y(FT8{!x#+dx}E%-g61VFKLiYg9D4 zUIl9ILkfO|yye5e#nG?7>P4IY?BB$9@~{R4vFsZnHU&1Udj-GR>XeMsbCcw2EvGn% z!X5~DP&$5Qq~d?t!T4fKCawJEDSE{zRKcvKsdkSYC+E}<;o-!NGYa2Te(CNphBFFf zX*x4FqxcPIn%ZuGmj<2h$g>0FXDTqGlMbNCy#U)0M;1x3v&3APK{`ihZam6(Z%)F_ z)WU_aQ(4&iaA3y5o|3OFYk#XP*8*38u80>q%<*EyLWPGmkQR{R1Wq)@O{8n>I5}Np z@tRz{+T#D$!$gq7Q@Yi!ZwYzi*3<bazBElQu*k9ExKTkM&%=U zTB!r()^z!6(bj57!(=|d5Je{UVE$tq2%7NvJfC!ERzf7lAH5oW2 z54!aoIJPS#f$)4Q1$r|Vx@w4aGJJ%3IU6S=E(&BrDIiS$AioU8CwiZ56*I293VoEb=?eGWvdNXcQ&71P2Bj>&}AsYHg~!#{L>nv{T4a&Tr<9ZKslTMc`Q{{g61DX zp|>U7v$L1|&aKPhd)#e}sqAu5a9wHT<=KhaS@@qwh3k8ZX3fa$10C6Sp+1?8uGhz5 zh21kmFYKa0iMy;w7wARevcMa<=Y@Z^<(j-%06uguXsHIw$>o{4qGsTiGT7ma<3sL) z>*F&7ogvspv}d2f0SK%uQzcg25C-`qWU}zy90f?JwiE?|=9k zhFZ-BDQYapN?|kXurCjl{8>+vPnX&%t|tjJEl|QyVJ#{<3_MJ@#^Uajuf0#h6<&fW zb`uz)MlbPw@}qMenm!#UBL$xh+!B5CN5Sp@JNC}{@Ud%TwrnPYcJD8#K6IF}1L6Ottdd`qI*y?`mFTXv#e7S$GacYDa$eH@Kc5QW}JKnR^l0WultHmO; z`~8ei_8gm!4MD>Rl1VAir^PqqA_ttc`!a=cfLN5l+mliD=M^^4vI7-q5g_XQn{i0xR;e*>XLLW#bejr|e+eC)4&!|-1O;cb!#8?rU9;rk>GmJxe5XK|{LeV9dfJ!R7jZ8G`=+F*jI0P)Ca?QR7 zt?pEMx=*GvXRBrFu>zqLMpMa9v{pHk!nmu;8Az7aQz>RuzrJj8c;KB7av44(TNC}A^*XX~$otg49E{bIggO^LTt`~|{ zNVVjuJdKF?1|1yy`2G`$4n9Bn-LJ7 zg)Ek?b}02#BODWNcyh1Z>&=XIt3P_J>Z*Xk5Qx%W4lADlu{wR@1x)u{R`6+};0h4MzAca40 zA2gG~=|x3lKGV`ju$MG$ja54ZLo0{%kTF zFh%UOI)IBQKbjZfV5T%Xm_}*?>jpGU(ntLtcg54pc<8+YH#ao z{6{3Vaiqt@iG1y5Ma_k|Xr%o1HI8Zb>w8@GIwPrq^xB7Xb{+y*)tDyid4x}@G{Pq` zVtCwtrGn>NQ?WY<3c1^$jo&N>MpTSk+Y+Qpy)_gsunXSw$_w=pxm)2(@Pz3H0ahM~ z1z@h*>U;-T^k^>5ai z$8)F!F?Mjjn%@fDcWQp?jT2|K*v-CUHe>!M4c_mp1i}t z+s8UBUpkq#KlHk|I2@p%{FSO&E@p>rBn>%jIKmb|#H5WR%B*)NCO$4SS!eM`xQGV$ z7w+w&IPc6K+$IDw_`#Ts2M?vsG zxJymM_y*bgE8T=zH2vcEghkykRd8?RY4n}s4okAk`n2p`R4Tfwe$Cj=41x{58`K_d zRgcCRMV2QA&Gv{-FhEk_2fe>mq^F}$PN6wOPmV2RO=an@wZXd5s@TIlpbxTiROQ4^ z*A#m0u_M0y!s^Ieyq?*UUs)DNx*xU&6503dd^q`vfPX(vT( zBtysSRn%tmD@;}Q6w?7GZ6$R$0irhNH*9vfSGO1w(nkhFBL&6ys!M~R>98Q-Libys z>vm@Z-UBAa3ehqLT6fChj+j0|39GJO|Ihay$ZzQL!J8U%J8epNy z3mCLg`;T;r)rt~Qqg~%iPc1U>68Z09TL|z@+nP=-C{GQU-*l}hu?p3Qp=_-h!xCII zhPt(SbX_JyiV8%JK%Eav1%HNz^JF8C-4zz6R=Z?O+bN_YQ?DL;a>rftq4DdbR!@DkS@>PvVv&B!x=WrJ=iQ*JLT)5bt`uD^tj``xSX77id zmOa>e)K?=8wgWFGH<945hk)w=ufjA1VAG2W7|ZftDXe*^V9erCYLmd72TqOk!E$!nT{z zJJV91&qk}Pv^|hiuXdMnFoXd2-+DB)*ym9SAo0R+Et%{JfhN8H>hHp2%qzQBHal^i zQQW=64?+^mHONyIGyrIXBx`vEZ951_U&%%3^I5efH!5>po`$V~>S8ng5d;|9%Sf2T z3VW}O$Q987B-+gY4tWygv3QPPqkkKLxAY6h{T6@QzDZHIgRi_vp|D3^dD98wTu;98 zrZe7j_LVpF4|x|%H($3DaPsDDU%ME6eHcn2e%;%KdfV`8-*%$4Kl$3l?+>(+_`_+U z@Hq}qrL{W}5}|Dbg{i}FL@t)@Ej=oCJX z)jG%RAHyzIWBHB&y3r{hQ3+C4D`L3d=$gH{rO>AhYe&ASC(jF5hOZxbdVzE)Tm{m~ zPJAp>LI_*nagU0FtqwP^wPLX9Z#5aXHAoW*K5Vn48=F~mH}qAcUd z)Yadshl?3>535;-7P&$5aCrm!u~@jwK;Kl+&g4Ta(pmsPvsdfr#Y-mB@%)-PbtEK$ z&+Mr^3bHSV(u~STpJRSH+)qLdPL6rz z6%ASik~oCNgZ81Kv6r7MzPHuwAAC95CIOpb$ZSR_^TV5;=kNH~;t9=OJs@$*XGj_Q zzyQj+g`pxzT{-=AJAL;W-W#h=@0RcX>Is7H)72|Q4wm~Reo zY{Ci>mS}_OaGnD=jw-%seUC7kK4e!chm$fm5PJj?ys{LDB*7;A{u2)8uYG{mserKe z%{PFC)C&WJ_rfXi7Be@!1?2xL6kD6#4JAR)$QTX2>2!Q5-S%+ELojZ38RE~`t1Lr@ ztnOqYeg)CD@;zyZ3+)wcOgB-=mBH@B?O1D&Qfqt-8i(xA$6(?M!OvrS^ z9CfLvyQ#!2qONcM#HbSZ1@qR7OX+VF3`olRRGKG@^GID<-^2x+FB+>>_7p=|@)X4H zkh&Cp2=Saej$!X&1Nd~E2KQMwHHRYR0FC_7sYg#0pP2jx!XJ&C2x%`tOP;2(X`k?C zIGQ%wZ8sv20OT<3g{*QeE zn!*p*s*v6QKZqk!qMKn%I~-)8Fe_)>Xx20YXhFK1=J;h~b#3Y~@!FFLF1}2U$=lpl zp-YK_?o&^_Qt>eR$7&n7Szw`*X8cTBL?3zP83*eO6+}*B0d0sA!6LG;(XB@s09w|M z^Hq+9uA&Qax9*7(r`$I@ar^drtdPyMgAMrGQ+q4U5)h&6q-~d5 zdm!Yef9yT|{g)4qKlcz%|9MZ{;-FE`kJE20BV#v!X&LZq^ii79mX75nJb(sukP^ShOG>u5Z zy{Q(^t0x*~Tclmn;fiETtzO+jwT0>R`D@sz#FM7qyLA(}sdVr_>JdsVRBN7?rHSp} zpwFO%V9Meq4E(iWX|vO!%!TJKCu>vy#;f3*FBPX8VIUZ+9_T=?^TlHnI1=F@@LXNa z0yi>5Sq%az*AW&uyNH@;zdsyWRELxx*9c4)Lklu`_xkPopJ#90K0SWej^Drg>CMmP zR38JZtsM5O2)vq_Dg1`|B7+Hsh+Si}qDh9o%AU{xQEeH%9Aq1UGIws>2}xpp6Nd14GvW|{34KRvgVK)otn0_ZKlWxa&?Z%jg4!8T1bu-k61sm z?$aYd^1;6{8TGlC+2Yzs1ZA(g$z%>Eec@hnUYcGYH5JoXTtH2g<-2lVNO)yk;5aXZ z(@dP0qDdbjaS_r9V$m*=FRBA_-KP(Ul!`1PbH&smnOWS~CAoFFL@l8Ma?ZJwgB?vo z6`M)g<1m*wC^su}a-VGx{ROvW-kY;3?+r;&%pQUSE285*h{;4I;jD5wV+3e*r6pkt zs<(mPL97JwGh8MwqTsbUMrc}063_H3>w8q2G`Ss`W1b2R0Jz*#P9AlS9^p6)NDcn^ zlC~qSebu9};@IUBvbw)@W}Pk~xYCC>eFICJkoZ}*tLWM9^b~Efs)Z+dxeaGhF~AxP zH>Bkl%4*oz2@)zhd|W3X6~?TUI|2O?QphcCZ#Ku&H5q#$I!Y~{xG8fKV(m-$QNi?>G%~r% z78>%pr5Xw!=rTwe2gH#uG=>|ncR-aqs3j!Ew=-u)d5^v=^Y@Be4y%Z9_+91@`0*fg46z>sI6AfP%EF#$3i14HAlqLNB$XA_uAc-CL1DF@FZ$Oq~ zDOIZ$9rL_U=tIP|yFKk&s3PDFYC8tp>DFSIWa8nm_Y_nP)ixowZ2$o(hHK}zp*bmcbZD2PimhT4pOp<`c8Dwf;}Fwie~^>8zVRaM%A ze65u+H!`_j4|%&sAQa8M^ykQlLn;EU?CJ_;icjzaLhY@m=de+b??nuw)sdsi5TE1+ zzGyX6Xl$v)kis3Gm=FIkDBIweX94DO=pzA=JVFeAiVIZj1YziX!5Fs*fRSEIJQ|N0 zW1tIt%KB{8M_Z2_J05h?8iPw{!;5x1xIHCP+ z=N#%Ezf{(FmP0keGc`(fMWZvkzoM;<@!=1oK65?A&m`NiY=`B zd>tVAyG?T~DxQ%LdhCcf`>dJbvl|4Rp8~CaH#H|VLiZ)~1x9}1V*>FQxXQ^y;&hKa z--AG#Qa~&E17~pdYeg)YM%xZX_RI|2$_(Ue9l94YA&OtAJTWw z+rext%m_z#dXr<3)=8-W8Y@q8k|J|8pGosrTnmNl08aO{2>y=(U>nS3%q_!&Hz-A{ z+{%0lggjuR8j;$`A!p@2O-!ExDmZ;uLP2xz?eGvGyjX031L+8sSL7r-N#g?Qjx@#$ zNG=5A@zoF~Xv^gn4O>LAo*hpcfe3x(Nf`3EryzdFtYG`+gki4A`0O})+?NeUAmA6h zp5wmg{rQ1kHhzRe_lpalAWz5+1T?;0UPtv&GAGcN&A^o-*DRo&_83$!n(xUm_(nV#<{Q02J^)*JCtI>c z^evDiX|V)!e%8B2ho;lNMm?P#HtOm0v60~Auo5qqv(D9$U41NhX4*)1U|@%N;(i2- zB05(!xgr#WA3*<-e8BXTr7kqOwGxJ!nK+Gm=WK~vFY7)H-%WtCbg6PXJ0!qjlrT;h zmhk==$|}I`Z8d>Wi((P4HHP0woxLhos*)WP?&Lhk>49R3;VXQ)bZx=aV(_u~VDQH? z33sfWt1CU4GP?PbGTrB7I==zz(n3FxGCg&bJyodH`qN)hpcRw>NH;aVyJlJd`M*H0 z?4OwPe7oH@R?Gp^kw%w+L(xDx+ZM_37~a6Y%1~iMi&6o?ik_ZBoy^}1>v>+>^}P3A zdsRo=`@HuL&Ryu1h#aej<3W1obA&!%h4CLXO1O`DC4OiRYzcphJ2V!Vtk(D?k-b4= zx=fqL-Go;$b`uGz1+_(kMw#G*J1N_Yft?0{TEr%a@QLTSod65~i4aVwV{yg;{$Z=p zPNrIYf?nfXB(bcZ`6(`sBGhY20vrL75jU9VDdIPrZS+|X^AVd-8A5D?+1X*|1wXCe z@^_EZek0+$in3J*GdB-(XMADs{sLT z#INwZV=Sy^)+^OYJO>dqptO69*AwQcQ?Vs)dl9iPsJ&SwLNOFC5)(qdTz5HHUoKFS zMX6xvMAaK4D-m))T!Z)tCZnRU8<4y!!9pqnhZ6&DL{J8u3wYe~dm#;5tJa){D)a{N zw;}j;57FBk9tQ**kmCw+kP8TSQ6Bm*NiR?U?A2C@&JOgiyovo6WRz;04hqh3@1S5J_YOM3hE=j6Ry1ilN@&?RNbA;g1-OH@Yjf1aTv`kNBmp(7q_6{opAVh07N7e0u=Hw>{ z$g`jYDflJ@{V`D@>^O|Z&Gkk1uY)3aQ*NGDL zw>dr^bKzwK;rk_GQ=AQ1j31!;!uK;(cJLYn)A1D?NF1DaN^mT3R+{ai@({KqEudBY%UDrnqsBnWjNKi!+0%=R`U9I4BIdtwB8A)D;-VqY%g&U`10{HKbm- zXEcVSZ2}+wTZ^S8x~3g>*JTl9UXeyk;^lLnyB;$4^CV-;vfa%c6Voa z>gcWbqQSt~soJ>{LNY<6cxLyqk}emvUtOv`7k-%&44@jmA}vXb3`gqHN|FV40^p@x z5hNv#w)MZfdHUh6@DY*#-W-#9lh9?eu#i9eHqw-AV`3?Sqw>H&j?yGj)c+M~`oeNA zFmS5Y?9&awV=9sEiLE80A^0^?C#@j6E|qt3v!HxZP$Wyn!I3=dWFP@A@X>o(J^n9~ ziK`}y*%xNsJixG+HMI}$sd|{*%pl0jCQIl_So2Ub0LhuHWvg_w%G;f&kRCC+GX}WM zOCMv0hvT%M5PXpeS)4MgnOwZ8ML^i#?$1n$&a!|x#>f~AnTzJG5ZJL&i7X<&%Y*r7 z=vSP;P*m+2r)^*-!x= z#ZjwSgQYyjmei7d*p;z$25MVmX_@1LL(+sg^z87(RV`t8ahMReY$0tEaC$D0fNk>1 z1tLNnsx)j?U{T)Dmr}q;-$;BMob_a(!e968OvR8|-C9sWBn+L9o@bEeHgMu|FYqDP zll<{H^86ud#JYzIL!qfD7zELraBC;!0afoPDfK(j`oa8KBwEM&`ekLQaoBLDiOeQLV!f2y3OF@NvWJ;WPCM^tG0x*5a2K_n{Ghh9jy)XMNgl92yU%LKpe;8*+@DHhxtM$uJ&Lu z#NdG9!S4eB2_m$1s8d@<>d(Dp_}ad4*@czGZ-vWvAf3Dl6rpOcK8M60jxJp&M`P4d zh7#Ol&)X%8OA^aT^=?39aak5x1_{FktEPE*N0>f6z_G^HMqYF5V|8*7^437_+8xF@ zp1)+LrXPn(rGAf+&e1MKI5QXPaNi~X>_vh~y-lj7_go|?Vd5;0mp*=7N0c>|`Nynld5F)W>!Gk59+S0Z>8w)Ol1G!sOA zGryxBjZxITQ&i<>%lpsSQuJ-`Cmq}W`TP^w%%n@>lPAvLnis102gvg0ixt{k|Cz5H zGDlNWMcC0R@PFMQ1q4ZZs7=5qK*ydl(K($Y7?FgDjR@IO+aYr$IhXkj>qi*p+i0{; z$_5o2X${8S!X{_QI$z<#GT zEsr+9Ikc0AI~1tuTgXs>>5W{9WgDHuEMFzowamIMo|`lp)E_*A>I)k28ea~2M+ks4 z!Xjz9S>lJND1r_)>*a^Xk3YPA`zQnk%~Sv`?;_+j*00sA!7;L?;Xoen zl0?J)f;X^fX%s$=D?@l)!OcNn10LA&Pwr3^S~ph3tTDh=;1vO%jcYACA~nGe?c}i9 zorbt`>gu66)44C50Hy5IhgUf#3vb4hhf+bZZmSF(J0B(E6CPo*6Tww7q2j#7>yEAf zk_2Y)8wm5STcv1LxkBit0FBBr5POvz4+y5MK{jy_FBV}nj|Zb)BwyPt%-c#`2`f*L zxw3E(xEZZ3;BZ!1SzFzD4LPsPnl*LccU4|!i*zz%b3mwBd7)k|3NhwjZpBCZxB6fi zE^4z&31ER3&a{rlC%;p>c}8XaPA5rObN zjsyA3NVi(HRT#p@eL)>7|A;Y*IYLGo^qLJ?P@&>Mn>ZFU3H#A8;8{ZMJc}Ez$V}I| zV9jX%J>pB6jHug&#i$eR?&*?wKc66qbK4tMCS%gqVsc4=+KhOvxVE6;@_CvV(GO&TUW}lwuTaiT(aPW|(yYEXM7vvQis$_Xoo?K1@P(4wP;Rgc;8Cke%D5$y&Eg^lHwD%9B zxs{i1IF!LpgIyX9m|?w)7E4z^ZTA49APgC}f+xZhm6D8xlr8$K%sq0Kfn8ef+7Ylr za4Xfec8zaSDi+yFh;7Z)iJm%lDwbXfsLeiovLlkQGZgL*kuHP3s0(@{qe`ow_i2&U zKyYuhG@Gv9RhMQUVv7k|QuxM}Hac~KY1bd-lM$G*Is85X3g{t+|IA6QHA?rE%u^rE z?TybzI?s%N#>+Wem~aZy3+%}WL*)T_Hgbj=p5AVHKtCY|gH66eRXMo1D8&VAZ5Qrh z)zMLiT$78y6turKZ#6Sl^EV~%|l_l*fl-Fng9y70J^8xBsxN}Ph9VX_d=<&2lz+pV zKUZ>6LO5RL1p}#5ol@{RfE0ZbbyM^LP=>Ir{v^Ovo*>ijX)O7B1f)0psdo(vcWOC# zQu2f=A7lwZXuKgi8XlGF-Q;S+{jTa5R=tV$aU;CnA<3+>bMX{=%UzelCQ;zr)>^!uI@_LZk z+nrR)1-G0-Z+>cT!<(l+-oO9wqh;e^PF6jOPL4=IcmYQK#rgBz|L*O$b@`epThnbz zly-w37=09ZQ#pfg|8)Ht0t6FB9wM*gZSNm@|K59i`|)wlxWgFdBX>+<|NPJX^XH%D z^||>&cdPIGJ@Y^P|6%?yug}eYSkHg=j?!_A8~X3PfBEa1w~q=Z6C#w~sc9Pld-S`{ zo~OpJMI;}BmlDmh9@m_84A>*rLzi|jz41&G1Dbn{GeZa#u&HJM4=~0CW6m)AnFIs; zx4dxOmVPHp$l{?S@qN1Y1Hqe5Ev$b_W>zBGzdnJy|KQoRbAt&eYo%*~%@=%|T-iZ&8ZB(y znV`@INY58|7aCT|B0Doe^$-N}Wf`H8!U$W8P2(gB4MVe6>jPK2C1mS0EO78=g-bK8 zp|3wggjC6O^=H*$H@fsBlUCqpFdJ?0|G5X}=LW4=xJ;bTOOY-U`r#8jO`=ctFujMI z3{{oPWMDi8el|X}dyH;p-H{CfPpV4nI|{JRP<$*4*;uBDg+c(LHxInjC(RkNME8qW zZpm+Cyx_nI!)epHQi$T+1B~&2V9d1XGo;ybubbSU_l96;@_Kr^b5zs^V@}>_du>ht z;AmbBcG?nCuWq6L$YO+vEJj#mxu4`q%>tlMx(-MU5oen6qnK|bYFw;dnZt&Ez9XYn zw|MgN(FQv3S7c3A7v!hGKh0r>TWyak{#~4JxT%DS1t^LyhI!y6;_2Wi+JAZZJyU!Y z3RyUh!YQiR5Fez3k3~+s{VDZ|jC!SPein*{mSJOP6AVL!vdHiCI?%P5O``!FLl51pK>0avx|WbV z;MfL1e#TH^sJp%D#X3sC)9Kp%3*kaGoxyS*N5_D-(W%!G+Gq3GV*T{`>C?yU)#JyH z{qH`#{(!7=vrli|N?E0TMB<=84RjUj{&(cPrYopZuAVUrx)9Q-jNYDIqv}UNM3E&q zIe7qt;2CI`QRaJ;tC{{z4SLA(O+Vm}-<$0rvp3uKL^=WO-1F2Rqw0ha{YXdObAW(l z;~XcsUTT9C@6tlUSA=;{r}v|t>}0&S2OEmeHcRJZN?o8gu^|H?xDc+5(IEP5cgCJ0 zG9TpvB6-W)FLm}HjKEOPU5c*JgZJM~Qk6*P#zRX>4q`DoO-g;g*7JEjQvm02EQJ@5 zZ**!giV_f@8H`VYB3{*zQi&u&xaTEf#7U4cgXBi1KU0GEKDy97KonVJ5UHKz$&3qq zoMU1fOe((VnFBW$k9}$O`9#nRe=W(z&D0*vu4fFJq~AT2fig{%4cLth___Q|1|*K_ z2@hS}h3Gwk6OfDEuS->;dA&bQ{NMdhcD22xZz?_Ch#G^8I>%r?EfBYZ~ z-4E~IeSGSDeERU|ho|1A9E14L1MB_g_iujWm2QH__|JizlxAqOzIIL~F16U$q3+}c z<*M%-q~*6zQz+aop)w)}@$m!nltv zdo(n!A@$^Y7IBP4%#O{-I2H9e=^H4TjtRmm0Tt!1%)#|Q@vZe@hC+&10;aN!e0QEL z?_ioafAe(n>FYkuKuXzwe8dl?pQd18hgXrEK8l0 z!|Z@#Bhm(S6t}>0xNbS1mZrfJ0Y^jG}41$PBY5^AaiBa|-|8C}{ z>PnPwid}X(Xg{@}1;xFekPO!F)aur<@(bv?Mwya_njSPAZF&LWkMCRF*C`u|_5`P{ z;tz#yXyrw__v#01YvMR>7k6NoZY}AT93Z>_E44)aVNgG)?Qh4Mpmf{q>!+s=Z~pS> z>2bR~IQZrD4}W|7@ejS%Z&mg60LeTms!=4L{HK4?b~rg18q04w9l1`ydyfTaoXj}8 zp5v6FTPvXHyUzMf`W?Vv!(8d@03t|vJm}ML(~qX?(Q|R0K<1N+m!c(ms10ZuB1*|O z3n=>=J1=oLcj`$%3eGmlOrR_T2l`jsgZ~0*aQ@a$er~tpg4GnXB&S%wLjRPwtucpP zqY}U@#xmu@sTU{= z_K3=0KlZBD>4vtA#iV#NGK3+!Uw)phbpi}g@b%N{BQN{vHRFzq=uv&6yr*zaOF2;O zHwiX0g~%liHHo?FDRgBzpEX@#xX-yypOSbcB+-FoyH$Cy-LKoyK|;!!$<-@?xVaVT zT3^L6e4Fxv;I7^Qi+=Ds}us zVP}*vq4Ikh4if!C1g@ccW|mt_f*-L9eWSZl8_(Zj(fRPQE9eIjE(qeGQLbso3~&$W zM`dCVo-n#XO8I7kzn2;r?k8Cg;`+jr0o#|bzY*jjtqdWwk$iYr56!)h#vu3Gk}#X?5!+SFV7`L>`j*hN?@0 zb^MuM0r+&jrWXW$92r&so<;jsRnYkHmYNGueTZ0_pgOT}xLB~%5-eBQ0OXo)P95PH zQQzD>Hnb{VG8UQ^u!3MLZ1F+Gc_8WkOE!oZR!0yri{AoYr&*A?lE1lFDr^`|#m<8$4~J<_Au2XDt$U1ZwFt9L z0BajS<)Q{49bG;P)5qa<^8OP_S#DAP%PX1(V{wOsXzmH40ssU&5z$LV z8Pot%_i0;$@l&>z$}7XqP)^^)%ApcVJkq79rl|Y$^l;zzngN=PD>WKj8g9%FX9*b& z`GG6pr%s4yzC5YQ5K;a9`{etBazcCG;f6qeI8D87=yipI`+!g2=}r6svVcFMD_nD> z)5(R=^67hJ(hw$N+-+7z;y9KLI(1KD8R){|Os*MCfG%hgWb*n{G()?JfwHPp1L9t& zQ7k0-H0*o&;lRnHUL7q1iTJ^7_iIK#LMU3Jsy6FO@bB>6jCwZB$~MuzrT>~~ZL0D% zsUKQ4jPMV!SX+H!|C7ow==+ek3_=pzaio~@vB~&&WSZH0t#j%~Pf5+UNOguS^C-Ym zbEq};fvC@d15-#tYJrEEv+Z!3FmG!=sI5FbtpU#zbWz!YB3OS7v%f1xe7Wl$Ej3A} z>pCF1GljcJ{6)LQWmHF=6SCiLI<%&MaZO>NjXB?YX7}H<=g8WmMN94=;F(l=!wlyp z?zA*ulyO}H#?sg*6?Fr1H}1{UstmgIsA9Mz5@Yi{V#t{aFo)$T6huMJ;~DreP|`7U zn!9p<kmet5dfSg)?pu;0}BstVNa*eK6Wn;0?*-f-;Dj1L=fO{%&!# zL21Qo3*|z(oCYSRmXPMKzr23;!=q|)01siUsEAokt|5nS@&D`os-jZu-g4evUKWFt zILu91y$jT&UAy5n{; zXn@Kpn5dHM9jOXtA5|J94A5GEDpXL2vtFj90*6?#hD{SD^B#T}2FFDhaAB-L1u(&e z>MVfc*sRI^C(*>y_VUi?(R3q~A3n}YcvUShHAzc=l)Vg7{0`azr1*mN`9<%AaW*(2 zs61#|2LG*Xvy&w=Hqy`+S10wlUcmXM0=H^i)vJlx1`_p+153ir6w;8Yjzp)%XYV!r zqQih^E{R zYR)yA8jjuE{q6VrKKF=>$jU-DDcRZX-f>2a%81C!$ar}8<8ycLVbww|I5*dI*DMv9 zIHSCHhqVQ6rS9o81F{DZB)gjO8!XC+w)@b_CKYpyo$L-56+P2K5~oYdi6Q{G(tX#0 zdqc0cV?Oj#>>XOo&{lAA^fsr_2X;SJU{UB zy+tbDy zY}P1x#1Vmy2hdOtfbFLZdm7EN*vPJmoKYlziZrAweVfgbgbTw2@G zW#7!-pRt!P%PM{AnDUHkeTz;pdZT!9B^xPi@8_(%*=}zQDpjzJ}0V%wy`WYr~YLZKIvm9cXsV1UmKUiLV^Jz1vm6jNGbPuKkreai?7 zD%Kp$Lm)7KS1PLUw}w`zv&2?AB3F;gYKr}FW9~N(|2+G*Ykd`?EEJ`Vc zi2eNrF7f(wt+3gX@hDY$57 z5Evv6_TWJg^}D!%KhLpRk1@VRN^tG?lIqt1jnLt(AoGQ8$QH4CuZpf`n8}5LtoWpo zXE;IE?JFMNQRPRQv5+92Y5(7!*Go^3=n;Z03kbVdnna5}NEzVZJoiCjsBOa(icU3^ zUif~JrSJtTwXaflGselyU;LOhdej9*AW62{Wuf0{z`ACd!)iZrI_?n=?BbGy@WZaj114%~yrn`g}1O z!M@JTb?#UZAONCf#9yTuj%|FbROW|g=@Rn{0lJ=fm)BQBf%F}iopb3}w6Ja;dek8i zry95m(rwjc&qpZJ1S|(2n&JjV)^tkqEtJ9p>=wr+F|&@dXCH- zOsdW2VOvcBcum0X*T)rK(u;+q($8y@p9(9_;g(3@u;P8P{7=8R`{Ci;55M`t*MI%? z55Io*?KcmZ$ALvdAOhddj9m+d%wB4evMp&juj*8Z@lcF z=EWvq$}^yOQDA*sOk(a+Na9NW9O%*BV@oLoBSIGPR#RS!n@n3DXpqn%^VPpYg(;Pb zM@h45L&Ls|27RJ4i^{m!`ajmCl^wgF*!q4kx7Nb#*^E0}dP~(;nKkrFTNYB76fcfl z?c86joa0+m-N&G2a?ccQn71Rn9QHE1Z^#Ni!TYYyjZHb5TRYEcnWCc_?cq_SAEs%G znE?l;IOxKqCHJD}oKZA|IMF+y`#6)oxq0%_r=0$?|L`Av;(vtl^;p7k@`0-y%5v2Z zCo#mU!&RQddF6Tpc71kOzKhv&WM{Opu+&MAPiw7js^u5gB{h9-Kb>rRc7A$>9>4P^ ze9B?o`4hUp97(PKFS{esgy9roty^Z+(|jn|+zP+lo5Qazt`CoA`aLT91a9CCb(#E? zWO$Bfa^pfvHpa>*O27sdBlNBd=xSYWHi&_oxIdDe6#go=Mqlm`*1iXsE$*%35}3w9 z5T+X#tcDhv?}db?h6kZDu21L;Kp;e(V)LaJeSu$(GLLFle=8MB47)R9fCj?o>^Cm`4 zI^N7C-yGn5ou6X;Cn*^fNdRW&`qha?^tdfrTk1|f{-;|Ktj|1pvRqQoPFy%bNS|EcmP#A?*)5qj;EwW38tOy1R- z*4QE2$A{5tP_3pJ4;{2dg0JZV_;-6^?IVeCx|uonoBQ~8dt&Y5(@`Iv{>^=ydSbKSpTVOj2tfLa^7Ehs zNAHSE%!flxu+=Ir7t=Vr@5r-7R?j{FnXa5J;Q;Qp2+5*lQe7S`POBP|-+pH@Rj3q% zpm>ErRE!tbDJVQ?c#mp|;>JWq2D6rsh zN&pWTfd>|moFH;f9T#}LOcic%L}EPSA;G`6H%BjTo`?R@Lehq$G;m|)zr7>}1fc`44Gu&IY@Mx82f#=@8L3lu4#lZN`xl}ptCerieH z`VXl4+8#M%09`VNR#O8I-ZzFB#P zNt5uCFfk;Q`Qx{L^4^NFD4-@JOXOs{^G*{8Q?A_Af?=@!d~*XkZLL%ljU$Bf`m9*k ztvejM_U|u7Dt$uJsJD#O(bqpb+#eypo4%_+=m!;8Fe-=yX@LD^EBOej1xx)C?6z`Y z`MbNKbi7F4Pjp5lMyl0E3#Y0$Uu>-W;4i^7kvZA|e|lY^Ks~Xr6N^QrB0`3-*yJvk z5c`6_QAXY-fQy!zBi5;07i`h%i#wZ|f<`?lIeY)Hxs7)%XpXh<^VzNjOfd}%;vul1 zVs$;y7AcR@W+`VN?%|;1q9a2G)S`Lk(A7^r%bnEs_On?&Z+HZ5#Ds1lsqpkzfOY=O zta$~W)r{Gv?Z?eVpI^StPp{w9KMNs9p>aMRy&@v!KpB+OxZYZSjb8N8MNN)w^O@s7nR^yG7E0Bg~q#O%*!a5x3oX6-&mNK!ZK z((hNVJu={wIugN=eh+6q!7&Ogj*~f(i)EqTisd|Q^cyerIUlP@rsTjT3wUpjnrh*m<(>>7A^cDjm10L0s>Lst6Lv@r zVsyp96CRM*IQN@}|KrDpx9`9G`n&t}!#5A#{`Em;pbzH0Ra@O4{Z=O@MY{`k$dwPO z<^X(FoJ4&>KC?n9lD;Ar94;5K67@r8?e|bw=QDL$i$`=?)VaA0kP!>+_Lm0}0qMgZM&BrIQY9}!sEcgw>1k?S*kD0a0PJ|~6x=Q~4uwYU&{`5b*gfey65GLRub zC}TmGds`kZ&w!vCiQXJIZb4d6rNwTR4_36nqfv2{2BtMBk!(OR;A_3d^5XIo`=$X8 zA%IXNe)k}C5nW+{L3D-XW4ed;IEXM%2Rh^Miqvk5-|R`dn-th$Jh^2zMV*JdA+>i` z$53KFNX{kkibUcjnJTzk=G2>lu_7M+GPVQjke?(I76B`)KbiNs!z0H{G~2c_!TGdI z35tM)vShN&p=w&G!J9q}Q3@SlEIf^@9cel|O;0X^T8NG$sB{f|kS2%tzFJuqAk$S- z#F(GB$8o#M6VuHL9~;%k>9XV;9=|$SS*|c@${`0*qALd+`uYuqf{Y^olaK08X3BOOi9;jdFSAmEWR+3<|@Uax)Kj!HX~-cNP9%FKY~_ zGEFCvMhjSHQUqpL{lsZa;#sMt-Y;c-dU%%^X?wIXv`P3HGYAn z*t;%*1CXHbE7V(+;E+=;OqUre|9SY4l`F3^eI|xu28eukQVDC>4&GSX)pc-u)+jcQ z;cVQK3skqXb-qDeR~Ax~G%N4ZAp}N+(GUZ%XXZpm+uHi-qHhFo@mmhr0 z;=@gVt$wJ(FFxF4{_MkT_CKOGLeYMxJB;y%8!^ZqZp0{mxY7LbgFRY&xXHnXn-EC! zgP;EF!)^9IqBqYzqB{)phhN4pf4C9D{NYCP(+__A;=@f2XcAf+Neh8RiIZDu^Z_P# zwz3H^>zSDlb;eJZ!%6SZtL8{((O8Zx7wK6 zI~F%#eDJ;|IImTC`@cTeTfA88A3S@u|KjQ5#fxVT|Fr+&g!ry$5nTyhy5%x9s`S&X zzFXgJG)%V#Rc1{Wjd87S=~$x-J6il*jEcQn-e2MC3ie&j9GIO7AD!&;Nog=q>Cw^~ zE?(Abx0%~sdO&BpU3qo~_x@)y&31F`1+!(K9Sczt4Yt2;VFd`E*CZ&%eI#ae1Q;@> zJu1r`Bd%yW6J4_>ryDphKu8wIR7%iuvqTvqn`u|7+!qC2JmF}9mna(AJ=whE+qk=h zdt2djdqSF4m|bB0N<5lfjXZ*uMWIi(ZxBWG%tkEg>)hOIKYAm(@dP#N96}|?rK4!Z z&o*RlIs)>zDtUCRkgzLV{SLArOK1bz^#a;m%`=qq>+tsal3;VoGeC?E&?0Ev46{{@ zGfoJ12Q-pPhd*2UsCvn8qa*G_I6tB&K_#nXRVta@ggOkM2zkmX*(tAnwDKOLna7t; zQCR%Y;4pU2EVr<31GihlZZ=Ik6CzbM?M1+s@!V}y`=&TplHks7&oD-vU0(otRA^R~ zZ85KTkRiU0H1Wpn9rEVp;`f9#jo#};eG~Vh7{KRy$eOX@BpKqDC=Hy?XhLg9`A+W$mUZ#Z7HoKtA;&c~nUn8H(ZPIQo)FrK5E*>t@v(gotD zs+vjhcPx=TD*SazV@4D7WyP6eh%1q&RrtueC!rRBhRCllO&HyoYXMF{H;c>j{fmll zz~)cI3s10BL>T(3;hv}iUYMHNp)#hGV_#P1`@`!37|@x@_>Pq{GQb}l;txtZWu4a; z@_cL;;7PeaHhS#V`|B%Y(6y8w$*m60`S7h7u}C_;UvT%{8>D%;oBg7DpFWLy<7^7` z&v1;!nd&2I6tnn#FOUvaK->QFQz5rH=%j^e4P&!mrS}yfq3a+!?3YC)HyP!(?9XH} z28vbca|L&i>$S*Y^y%w0U> zvt4%vX5?5W115Sx!umuLC;`P3X=fMh(3kZf#w#(&#p|uSc-BtPFqj6f} zjF--N!^o=4B8B74yq<_eSu6a^uyZKT$@=zMKA3iKsn;IoD3eB1cDeJb>hV{od%DF8 z^`l4Mthy)b(hnBzq7+uah$vD|KvlSX_CzXikFs8TdB@B`n7fs|RqNM^@GC7s_!;__ zUnW^l9t9X~rD9N-Mw^s%W=zJ_ewOBd|GmH;MmH`Owqc5PD`1=4WSn7SKR0s8^YFAW zOx7~8JdAiw98l)Lw#(k|9PT$Y2?H)iVGT4oL7wNL4JM_zFYpKQSh+%56a9vhwVDwx z7yf+TCM^I`!|hHbKvdRo9K19Q*i53^9IXKkNW41O)cHPWLZN2kx8GbLaR~wvXgs8( z)AjY;4Ft1X3$N$0dSccq&cZZDMiDefo@R-`YaSsI?GtE_t+oK?l2E2mBZl@jofyB? zM#kIK@h^MtBS3e*xE+d*`HmgW+wp0w03%W&Le2>Z<`V&KB}~`YOEw`#gTzolO0b2I z2p2ORG{L!N?iC28V+)5fD_GScGZk>uq;rCdnE6KVxLja3fmvt5s-UF#72hF&IV}1x z<29+kxK@dJY>_WX2M1sDf?Xw~ zv{R0Vyp@bNUn>3f5lRWcPQ2%d0y7$3qTmM;|2K%F9%=^$sDsUJV6osn+b)(yLYSyE zp{oKX2ExNjKeN!>9O5MZ8HZqKX!aDm!$i9YXVGCc ziu$E1{0Jb2`^%d2F3=gkkJ(hA$zEU<9QzI*j5ldEuh(wl$qp;)ri((9Pi4`|xC#tw zF!Hx$en`t(cMnM|?$I?VLivr%Y<{!Ez(bS8|F7j}r1OwKcmct9bHtwD|Ct63NKPD+ z(*~j$H4ZHhw>bF1?VH>{6&^9F^tAfJ@ElkSVyiTp9of+PgxfIagakkEl0BLvSj?Ed z&6mky#@ia#>xP%=>&p6a5I8sj(xia`O3kSgt*T&{phNHk;fJu-DP=r+ZKWSP?8;ce z0}nq*VKtqV!0JM99HzUd`PlMThn^tMhqxk^o=weC2F-WtiKudi;^QM8LqTukmA}!` zo2MlTn+R7QLu?68rzNnhvTNG1NqARPobxFPl3(OTBKMWOYWobHW9fduVU8G;`?xRz zS@|~|=N>ACYd{0e#k|4Oi8%)$s6TtbQWfdc6W^?zc6%)Vh%TD3+H#l)J_N0jvBu@HbVNQ8v%oW;Gk7`di37w z(IPaE;jV?A&gUJG&xS=b#OH}1E7x11S=q=6=eSX|d*jV|LkxrGsqv8lz}cE#7<}k( zBNgJpGZaR2i?~0ZB>5_h(M+#pWv(z;nmrM^$=Gm&)@gZO>$9t?F((w9ZdWp_sA~pV zeLW%x(w#igz;fDl(%>ek|NOVo_yo1F?&s*3p2vR0h6ku-e&7SGT!2~j7J^8E?X!jHDMCg*Y|hp>t0og zmvYO#R6aJ>MqlTriaIp`j~9;yb)(idrB?Ok4tv!#;DF1ULt?QMpT#D=LN+8r-b8KN zRXD1C88=;}F2~r`sbS0odDcQwS|csfbtx)yntwk&!Fa1_^9C+Erq6j#+SjuMy? z<^1F;>D-=p2X7@N)GZuib|2fiJ?Cf;H`w4o3GZ$sNbqmiXyOc1)b_>w$t{8F`yuiU zYid164L*1RSKV+B+^vJQpsI`BSY;gtk?r;xNO65|zvE+H+NxY*me-U@xV)>spZ}KR z0I&~g<^DHu$~^`?tV1cGVJ5LJ^5pet@K=%W!Now!ku@{FYS1$g5$tB{Y{43Bx7U#Y zk>FU-ujN_9d<&C)R~`rsLmhx{C<+OqNz`!}y|f+0ff5!Q6z)YNm~9Ju%!tZHK%w;g zHg2UmBXv@9{z(@jB@Qz^n$d{{W#v~_GvZ4H8fEXNKaT!WD(Rx=IrxA%mU=&0zI(j8^Vss@#+!)iRf_1vRl-6xd?a!4^Zl7#)@{PO&E#@D^a-Tva+zkK_?bQu1W zj_z{=mL3l!?()4@X>5OAM&xH=O`|!qjdQy^7Ev!o)E|a z$Ho4{!F9P|KsP%XP-;Bx0&OgB?i3RAQ1N8VqlsfrmG5@FZ*vcN)y)@W^R!Buag&^D z69j<^I-`85ye37!P=Hh+F!dqaFO^8x<V)w z#=un`i@odLXHUwr|2`(KT!)6rqkF;^{oXx<=CXR$U&edI~9} zGpFWFpFmQ%zEYARufC9u;^cgFaU3TfU)VtTU$D~}Pj|Sz3$*&3?6zI)6(wR{m z-nR{yuDi{tFHL#AH2?zdgV1C5=AwqEyOIDlc zK1{=(zkd7n;k$?}?IevRtqQ$>tGiVtd~h5w1Ke@H(>v*%ZJocyyb#iz9BV>(rO``f zd{pThv~&!+IeK}#5$?3Z@QrJIi>AB*KQ@^iMD)C*hm@p z@bQfi@j#|%t|2Un5#K}hx(W~CAfA`~)mbSfPg|$_sfVqv3WsB5hyV}(d49!+IHzWd?*#lzb_z5nz5{MqfhuiyUgM}jn4gRbg3_6uChDS=?A z##*yE0T}B2%j1q-Z*CV>C6^0-a76>iSea|2f}e4#KPPnPg(ITrWED^o9M8Rw0i|`& zHRznS_GF zntldB;dAnaou3E3?`M48fChZ@^I|LvSLY7@UnqnksQechR6f*HoPk!Sz!S=73X^gC zqcNnYelIsntKh*p=Qeks250*$sNgo8BW5mQr|dBRRkjR21e zFjy*aXUnPA7BDr#ZEmGY7D@>b7aLP$p($z}Jw%7AjlyB1AoKKoPA%;jfwu__xZEEl zjOW^Gf5bm+)=Qtq4NFClTk2_caNd0X<2$0Bqt*1bb7;FfbSaBnU-AdRtIoS{Tk}OU z$Uyi>`^uGH6e9dB9mjQk$zhaods9+7biKT4gHgLf8LMP|b@NHdFMCR2GI8*tCtyVr zjRt_~5(&JOc*H3yNQEmr#Xe-o>50wz^5#W{^c+>Wc>=&-`!?amCQZ+=g9n&-$8h{c zqDv^hNjkilJu!DZFon|J^U>o1f3w}Ph$aYcdr7owynF6vdwOu;-UV?0xY-AclN$rk z^>y@&S8Pdki+LqM`hV|*8;>nen3A%$#5WwT;K|k{x?w?LYZ@*1B)`dOWxw%n1!?8) z=}5>!NZh(NmK^KR$C%b#UZkoJx5}b93!aA z>eK|tam?|e?e$2(ZCv0J#H&WqBBd9gVe zA}}R^!KO2A;JdsRkf!hK`Nf_%v%)shMzJ~jP}Pw_O2xigRsKz`9SYrY`3w=YAlv1;a(( z6epG}2eO1*9nB7Y40CVbBQfdbc_EqMcDX#U)TXlsQJs*llHux=w?LsGxKnItr}{ci zK!qz2WVE5YpPWnpUVBRv(1M@0Ir5rq}^bMB02Hn>4@{U&W zYO8%yKYEIF-wfa*_}E=ueCouZ2eAb39^(HpeJgy43&VQcga#f}HFoJxEA{;fBJlH^ z9OF6Bv;QUXZ)uiNXBtAMLs31@PPV$=bhN5jTxbPtlh|n$D<~yKjkYgW>uUg!MM1?7u22^DTX|IJ?<`ss z4Zc`{L7$QZ9^*oQNdsE3_h>!` zAiV=`Rge*En;pBS`%p&bc1*{-uJ_wzkm0Bh9jLEb<1knynb{&#d11XUz5VFgi7faRMP;c zo^-)!dd_}Ek{!7DC@Kf)_hC5K~2;XI8JTj}6?xkjaIo zpkaEr2$#qnYyk{G#N%SFXHOibTe@r@hsv>r1iZPGO%Y{oo@eQ!zO#|n4CBrRpc;5{ zRn=e>5A|7!MPOn0uV~4NPpNfes;RBm@P1fo#&*)duh(}q3*qH2A@Z;f6%5~#27!j>`7*cRAnvOhI2O*AX)u2yF?m(Hr^A`CB!fDd^@WIR*t z%BIrqf>7i+FU)S6+tWif*a@C>+NiBcKg_C!LzqpXxb&}XYuq&WKQjP!7-Ei3b7lFvFaZJf zIK3#28qN%A)>H~HfQUqy^3#V)-&)Q%pK!tDk6HFoT3*#S+&mTPuf28~Y&sEuM|y`P z-c?U~u%tBRReh!aSVdo6_ZMfOcV1(KU28{D-mKfQ1-=|}bo~yY+Bd=8h%-TIK!-Kp z5?I5wq@M8ntLtUPP^d)(RYI*M{GV(I>ELz|UEu}x5OauDKOo9RI8;->*I)m)hadl? zSAb*_I;V#nrIfA;&E!ffUuIOWNdxj;h^K4DHFEzvGB~G zcu00{oov1Gt9$??sw|N#<;wLTR7lEwO?>fQRO#!y!bB{Gc*vcXdtc?&Mb)Dy8DkAa zUsszaZGx*tM|b^t)@JC_EkP9K|K-2v;x*y+s-?#;IufZBwH2Wjf^TyuzsS`_~8#XdyO!n>+R8`59C7@#zvFiH#weDE*LrjNa%Ic-+J{Coco1ax$+> zV7{@hi*I#U=RBGccP#tH{oegPO6`ci57;3P$*RE0E~N3-KajQi{r$gu{qF0(JV74q zAEAafho>u90lRxYB?=BoBS+?mTR#8o=Jm~5!E^eCV2=Ow&)$w9>7 z6T3v+T364Pu_xG??TNH7fG{j4wsBX>G{luOQqR~zg4ee9U^ZajQZgdiKNgtob2~==xwu<$* zf`P%X39NoJ)2g|ouo;P=a65+rEf0n(eUy@lm(nWfvn(F{!s+RyU$NWR#7NXAY_2Dz%>k@|36!@cbXvrN5 zFX^+}4%6M&G}CHkI}DE}EB3a$1UXfYFHpiNQ+-vIWE-_;n|u}=d3{1g~$m!1AGX8gt3+2!|mN|GfsrSB-j1spNWMTf0NGccQ(_l zR(^mMC$iYSga-XNi^x@U8bf#ugxR<7jn+{SjL~dk8mNIqdyiOmr3y*Ca+AXkc%RLQ zQ#b8CP(0wm@;kX?7X!w2w2CToKI(f^{BIzRwokrQ_RkLfWi&(+vU| zT1@2XgLY*rIn=uT+cu)78%xusf^qGS5R{K|6s7}*#&h|J)b8x88h>atd`?^5(X%La zM_n0%Jtuyq|Gb>5AN-)cp zTI=HoYmkoDcTwfHXb&1d6-v#mU|ZTBFc8K*9Q0_hzRFLt^!|m{d`FwrTMqfQ<`dsO zpfYp5Q>Q$t^uup%nMGyDbE3+6b@(PSR0fAi0x!7BqP(}YwctUKbjG7$oG9gfzBjcN zvw?=g#)h9agOV`Z19rpcI%XI?haH8RzI@WPbdx5laj6(yGz86~OoCfV+<~i+9Aj9` zOHct!O}LLay_ZN#M4o*8^Bdd%BzmgQ0+pa^UYH z3SnOw+&0GrD(92+Db|RPcT?E)>DJczTa%Sbk)62Cp)yN#+Kb}G(K|rBm~e_393hL= zT1z*Ak|gJ16-CRXuyGo;25Ip9*Y6()$f_aK-J#P6AcDu_e0f9KZH6HI@tt$}d^uO? zUcqeIvQp_ta3YRQQiuyQP;W?)>0(6;xSQ+O&>$Q^iro8Y6;<7AEAw1aIFI+i?z4VBqLbukM*5X*L6N&4M`gdVQu|AVO`ec05Ms{7PpjM=DEnp6TmE0}MH?oxvHw~|+ zB)vom!y-NNJ&|Kc_p&}GR^||DIqB;xNa-UjOt-x{rPntl;^q2%QWqv-{$;U`N($81 zx;rv8z34vv1^ux@L+A2Yx&c+(t{kS7k2b#E+}&tKUFYe^PvTkX18Zw+>X>ve?F58^ z*Ni7vK5#EkX^X$Z_N5`si=53n^cIrqoCs(Ly>fREyyWs6eURiZN3Zj=2}~%Zgiyzu zBb>B7mntQC=bJY+0GwYDsS3vlcocB3=U4KB!kwjwpw2-{hF)By;NEx^lM^NGmU%9b zq#NLoWwmIE@Qk6W(1D1Bb&h6Yk|UEV#~f6e`!-m#b-D*N4o9w{+rZ(EVPJ9G-P{)C zW2yV}^WUDo{o(!BZ@+o?{I?hrX8#T}zi;1ZNkt3w5$5$`wu4qy${2iQ7Os|a+!qx! zGoTrDFk>Zdc-YZq-tG)el{gq8u{qodPKyl$XoSFWTeN3`A#iz_s+RdMGGfK`Mo4cj zpt0(RMt^v0{W+~7xd#T)0a;zFrN>Rw+`2$6k0_3Lux7^+3TMQHqKWmx)Kz&;sHB0m zNs`s7p15zSl^>Ce7^l$15i(fxM2pqqJ3wysqDCaiJcYejFhAAfFlq6q((h22Xd5b) zoG2-9l|7A(BXw*O`M9AOQ`OO};?6K@76FpAD74ru{&&DX2cEHR{ilLK_6;cb=?aNs zt4NPg@7POhB~(hHG+T1nL~Tpa;5l<&F0?OWl-FOf@-Nrnjpr;j$>*C86TH5QGL_d3 zYGo$FrbM&d+B-fzrFbhSe0UTXGTbKjJAuu&Hg%p6Ho6_OJ1FN)=WVh9)wiTjJ1^RF zi?~(@2SE&gE?oO#0NtoAJqgguEnb!RRSUkVcrIg%ohw^AjS=_6SeW=J{246X?P4$d zUx#b2g4ilpQsjH|Y6xF}!jG99+>ZG52168p`~;1Q&<=&Ph3?t<%^6V8z2tox4x>DA zgI;z-GPJy$l^H7z$WFwCYba^x`Fol28WU%n3JT+du~SQ0V&%9ZBJ#Hh=ZlzPrKTM+ z+gguz({oY|BAT?iwrx)QSdEZeCt8In0*3QqMGsf^2hSsFm$a+7u1jK~Q9T?b#s-Fr zBt<8);rIHJCeZhprUHBz85wf=f$7KgA2j)dMGYD-6yay90ZRZ!I{(%yua4qr@K%6%mlKNxk+{#}ipS6qw{@L&pkFgFjrR7ks^} z{nPje5!MlnQs7oO3%jGIrFA(noOSj7>XxZdG&VU9*6}LYFQyy$e$yk65DEML_D^pg{xJLI z&tJdmPVv73ADYqlbgibW1dZ?CtTK4fKT>o`M_2*TDpW zCdT4utfi+m&NTRtkBKh|qRrPYtR(V68iP5p&bTcSiV~OQ+VcB-ix$X~1p>Rsd z^mirKK`&bMOb`U+0(dG(xBhUob<2$C`Jzj)c@EP^X=DbYZlS25h~gQ^%Th%xhPnun zL=fl~oO%3oVCdZetlKu8Qth=y2!-$xi&KSIhV|P7b8|tAAM0^hyUymoX`)7katWuS z7%^Re`r8%IQ|%GCAeS7Zo7ZSO&##EJSScJ%ow^Hd6Q%RYqz)xXv|ZXtTbPXH2_~ z2Caa$oNb;}90aVl#hn*PAnM#*khkkg*26vaqg1*Ior@Lq9y2O>_B4~%5f!C_kCg)R zSPTo%vUP%Sb}BDR#_q4DvQQHd&L8$eCT1y}^kY8-pHboFrIvcjd2bSjA^E7reZV}T z@DUw>8CAw)ToE4eP1+;qtuKl>!iPn3nAZUCtr@AS_cN=eZ2jg8Y!+*$tSZMTa5V(Q zdbGo%F?MUK+Ruy=J;Gw1?BOOwX=FmuBE?$AD&?PIXL=D4%q7{#M;qp5{pIpzZK!BCMmk(@7;zOvOtf@Y!#yBf^BX)?se{uRpc$`P04hpvHe82t?Nb^b8Dh1U(K zGoA|07LT*?B4U{d8EG=@P^pOY-U8JOU9SRp1oTL!x0b7hr=av@k;zCKiNa6ZejXHR zo4K)D#C|Fv@|F^+Lrj>7Z5@0_REy1*VoVF)uo{?4rre*U@?O0+Mof%rJy448#3P7Q zMQHz4Puf+usnkSeAv09XB?HzRN9=a=y&rILb5@ao`!J|qH;VBn^Qq8+i>ib3m1dq- zvHX`N9U`(uAXUjhVB?l(OnE$zIK3OxxgvCUTMmk0WbLhpffPkExzSx8kHH?n1!k3p zOkZLQ%d5*(5Y2j(U!ujNk3d3WX%pK8^~>@3?HT6=sbI~rGS;-vfGR4L3{LtR+^kC! zsyx=Ld^nKe-hawH{gd4$9xT&WdEloO*Zj=yt;L+pWmV|P^^&_)EgB_c~Jg6P_Vst?x=VJ`20DHMUvyMxIgU}L@|>8qlf%={}?gRF6ERH`e#}=)S}OHm%g)%?Rx2LF#P~0wW9>>(>0>^Y{GpOo?qHGqXRY zNXDA;p*TlmIM+Z9Bur!|qiDPjQT4QBX|zkJ^%#V*=YD+(ExRtpg&nXi)O=%DSJ9VD z+tWgq($twDAhUpG>E-GwLylN;gN;Dpse1)#?j%q7cC8LQrT4=V`sIR%vh(pa*sk|C z2SY#~%nm5|cuErTB+w?PVdBl!i>J43dwFJOsHhGFWm^}bc|p`X57E3{dWVTs*TXBYY9-vh@_ilvfpUo|gT^E629k+gW04@_GM;NrA*6>|=BISZvCO_v zbYu2TY0e^gD%fkIe4RF-2=zW_vvnmQM9xAw*k|1es=c{$g(^j3sH-R@4UGICsS9L246!G3zfqWFlNfU|(-= zp6sq%KWGbYPEX0W*=bj|Dr5E4B%FswYs*yaHZ6Tv+?QJ4G}^ssB~8W4R;6z#yiWOC z^|!IBY*qUveIdYpPL*?l;|ZeC+_F{aTgsZo(~_Njd3Z}qj$GzLkq68D4Ckw7v-ZNZ zoUOdCVSk#$Xr=ks}<6 zzUhUsRrg5?YJ-1kF2#H&3xGg&cno2+;X z?1=kV0>Ce|08_Ag|b?yNv^@^HUZ7 zG%HdOH&BFI71>WR9g-vB_$+aR&VBZTuXY6;UHv#13>AZT%`xg#q@Nj+cz?{jB!L*j z3X;5!FcyO{MTm<~rf9vOI7FJ?T%OFjE8j15J`3Dh{bqstTA|(1roD#E#Su0B(O{rJ z(QMZMniE_`Tj^CAK4zL8trEp_@_5gMo~*mp;Fr!RDfS5_F8@c{peH)yeK3&n=NjlR zha|G|l%i4x@O+RCeVMoBksRvO?qqKW?L=*1|1a-4eo|u#^G~TixQ-w!G@fo5ey~Q% zp9{-_F>?4GXA%9d^0mM+1|CBSS5$x{RjHnd8YQ&JA+j{zGpcFc-)3OT(b(p2rn9ic zM+i>gb^jqXh8j-jFD5k~COF>7x2vZi-6%|{trcXIAqRYdP2LFMbo2TA>6&l4M|!>g zSE>5%-{1dv=7$vbP7$eR_k@^yu^;jBDq2dbya9P1Nq)1#T_RL{GUj`xJRd?s*7xya|<#rK{FP=vDcndfe!lqwBV+PvoM za9mladuM5UcCa^?B6WldzlRWw_^@X!_PDI%n{C^n%l6c#;SCFqx3?X0BtTfv4XIt- zILSQ;+s{y^9NsR^8tc5IEbSsA>>1Uh5t0XzJjTH?)?@X~iUI81>8yyz{E^Oz`tA}U z>A(kJz4DB}p;+A@&ubMljA2)0a$pgQrGipbv90<`KW>ZBt?c)}`ikO*F^Q2F^kU7V zYjt;ZF?5yfp|bC4&-a94AqKR|zK0)>x$-t%;kbc6RMBZY$EZAIH30F$mbmz5{$0zw zuOhTL;n>4?^p72i{V>saLxj;wi5nSRd)%A}vI!v?Z6NMaNF;{0=e@Rq6jZLvFHIK6 zM5kDYJ^if>*@ zWiEtz?awY71&hVar4RN5aNjr~3U9RFE*-hTrH%9mQ1)#g*3N{!B`~A6cna`~r@6&# zZA6WVllcAF{miGi)cw{3lplOTSpB+Ee~6_9F_;= zw1tHTfM@wyHo(CzVhVJlS%TC6O?c)FF@$Rnn8#bWzajO4V}>8RBBId!tIHB~kwRGI zC>@1nRQSc95^{!EzrkwHxr*FARp|Fby7OHUqxN}M7e2b;Z(mhFY0A%Gv5OjS3G9K2 zd5`m?4X=AY9UaMthCTk48E53A`6sITb?S{$fu(oyfe@-KK4e@K$A|f6^20sOKkxl0 z9!Kim2d_(%ev%AZqSq6Ux1xb_KrIGZl7A+0yHVYJiO#|kw!_O3` zsOaENe6y{V!Kg#=SJyY`J-}RXfzVp~O(D$8`4vhTn|#9Z1T&Z{q*Fx(;lV#uhc$%9 z2?1&tZ#Yl!57CdJ%AB=yG0=V6Gu0|ewrjn_MACclGLPzlb=hv<`@DP-orRnPNLPO4f;8cgPxR3G!RTt|Um){vd-5zYSKwAL`Wgr@e`C3NROylM(i@;tsbp^o^0BEG zBM55h&-{x=#NO+`Z^t0*`F`ci1KV=Z;NDbGlOHj7Zdv33i7PHZ81SLa^(*{vHpu3A zvK!v3;{x`dQ%?`87FJS7d9e<3u&(8_8f{g31YCNte2Fb!`7*U6_0nG-tHoWCZB(&! zBVX=)CM|+DEg`$r%3*6|57h+=?D~QzJ^;)ewID~zR@R9pO+G3NqFYZ3V+B!y4_=Tk zKCBe$HKXRD>no2UD&58xAAqCK%u|$Hnm~=EVj`!F;|{nw+oh&#>3IGurz)Zt^VblZzh2))LUe6E*0stS9ATc6d{n zz1&7ft=|NnG(t%cqsfntm(%g=MH=4wK1H71WXE@=>7A&zS!yZd+T2oH80E`luC)s} z=fZBEW1oAr_w?x(K5HoOx|d%@K^U-B%Fk4N_5~%fZF>*j9YE(AtDt?vA};u^RPh76X!g25sXz) zq9borl(5KK6~sd}o#G%e4pN9EtTY@i>(gtC&20_B&Z|;cv{9|mYW`x{YBhiH%Wa*u zY-(-{7DF0IoUWLfiSaBjMfJz=w=Ivhups47K3|!K7UeYVAcy+oauo8Rr3_|KZ)mt(6}`>HOu{KZl_JcHeQBvVVD;n;w=b zcdbM_ySTPUZsFHP+1cC9}_=kcHzeco9J#&xmptwX{s@`|9x zlmuwfhuI)Of^f-`Y$#LC*|8we$Ku$o^&9={;T&#!)tC{%M@ZK5Qs|Mfv-(zb{bI3x zugDoVFnUtj+L-1n<~QiG0OIQN3Y!;Ry5xP!4@<9IXDPD;X^Ufwh*q4~dnp;P8f2GTc?7r{)eqmF>@2R+ zOnxxTu?pBo;j9hb;)#M@ex&l*o5P_Yu9u5o$OJ=hR4PqpZEDphaH~*PD?C+i&~M89S>AF*DB1F_AJ_U8vEr@CN*1dF ze7eAE!e5F5s*$ty_g;iTLUtRRoDXtK8(qEL2)_V4u(9syGK{nM0P~q8>Sk zC+p(?T1u2z3J2c5Cw5t_^owk&(sv^%r`oaz-uoJl+mJLAHUfXT&gnt{$UpsLoV#V9 zVS|Gt0iV)G{`nu{KXnwvr=3WesZwdq75wkCqiLPS;C1S=DV&R4LbtC1}Q9pD(>#)aCdW4Lg;v+9Nl|TqIM0$FP3eL|rY`ajCJ? zbL=lvEDS!-Q1vN<{r_VGo?RE6b7I#jX!^?Z(hv-<%3vbnC4p-@&V5A}3vq?jo zxYui?WWC`}Bay`gtaEL6*vL8CwIxB!@SyhI<)il=KU!P-Yo?!k^60&%FzPjh@hS=&RE2b7arZ(l}~5CnGNqp4!~bGR4s#wMaZA>ERm+r z#OzR?d^XF|Vz{3j$>0|j@q%d5SIe(pokBURxLvjE^~UsHN|N9-HW#l()WO8DtM^XO z#tSs5*OY-xR1k&|HYJu3v_X4WBh>g~5$R$RmT-*U$Ak}Gfl<1Cjr4YPyS`R#()?A| zUUSV7GG#h@T?%#N*BLK`=%}_^5(n(#8iEx6xQ0AYuyU4^@)wM=$!j#w$cRZ39v^fS zh=%UUTT%o?V;t^{J{_(OQ8&VSRM+(y!VD3jJ0iRno7y@xNGvjBioDm`dHvp-&UU7vti_TlX6m-xQqc0C0) zc2SDSP8$1y6^Gt0!9@3$?q#9inr`Y|#RD763{74M$h@(FF_q_D$VZap}*^ zsUt`UXq(Gfe>sowB3Ph2F6S{^<*J?2A>B-hJ?BG-+vU&=4mtBh3BAYgEW)F#uI-_S z#XSJQIUTCd=#&7OXjzy7)kgp4&-7DoY}Ws-Rvy4DtYJZFY1Vk6(1$$klN{(8-(;AZ zv;?CdIzhis;-47Q6zfeBgJ#{Mm%sf;E8;YB_d~Mw^go@d3LE_EbI29{ly3}02jZr= zp<3&2i}U5~1^|Rq0bg*q4Q%sPrEl?uc!eM+$OJI>Uq^i zKCg}9S7snSX$E4dMeDM`U1$79;o49m{sbPeszgloff zGnis{@wo>xGMcA>AI|E!1WJVFJuiTI<%h~33f-Ci@LpS@r-Ku( z(@1Dfo19bUSFdgo8qlC_47`sj_XmL&eh|IX>exQQOrN#WPrm-cAKrcT*RQ_=#P-+k zzx~6fS}#AmfA`}z?`OANOD5Yb^j9~1O8m9IvShfAyNeq8lB87ZwB`4I`OA+)Z~gZB zx66O|jz{69GF5>Tg>427VG7qYs!4gE((83mcMf{o`Q9fn9bP?T9)TTBfrb4M*Su0r z(vGcE1DgE!_J;^*qEx0na|%0rFq-aBWjER8nye3N4iX<3Fa=rZ8-_J=3_)o`DqVVg z41y69!eUW-IBnPZvDTwYO1QkcT`l>>ef6W{oZYJRJ>pXB-1AJHh{LZWMnjnU9qs%O zrZ>1{d?m-6YhM@r3}zs>vWV)xNVgL!5OjX3(sGKqcdn{M?4HPND4@Ei5|vrxZQ?hH zCuFt;3L%S&ZBHls8cpVOn;aLN>saILyZ_e6vq8w)fgXw?qz#nG1+hF!DDn z$D23fq3Y}Wq*NSQNz~e{4y61a86_6$@_8ARd%NDxY-Xfj3?oS730bao^9U2Q?4`m% z@X!|x-;zAWw%0@DN2?>rz@EM^*Ai+*R_`5%wVMpUW&y)IS&u)M%(Fgj;;+_R2h>W$ zh8aS549&c4;(Q99@P$leE5$yxZF<&y->5R^(ICZDn@CC{?rmG`ZUoq}1gSZ>L8tKw zAS>WK1z$V6B!I~Blk?ll`wN!H(Z9WaIQ-_DnAXB?jOyygEu~>M+-30MjUXgt>ux71 z3dYQ+fY4-WIyaYiY~63ZBV75#w?DjpFbVIn4@Qga%3R$@g}1Adlj-GMD|0w9yMQJo z7fmzj+m(SSv>TSQlRU*0%b@12NF!!GK&P%KZ$_*rSFVrk7WT@`?_Q^9R3~&VrS}{P8J8deNKvy zJ(yAP?v?J6&?hIIG|&wCR-I{S2^mEaYh)jN(UZYh57S(@H0=Fob}>##U~iE(Fi&N4 zM2zHD8?x$PY>`56s7-QM3GjAR{L3RZ7zCes1a4?-kPC zoh%Uix_fh*jViebhfe7LB6%>%(EI>dXH~2th_tX3LKLVUaXuJpZtif;F-&h%@6(Mm z2^!P_TJdQDcroe zybfQ-dgXN=q*meHz<=RbQovuO1Ws#WofiqFzzaA`^!?ZPQRL@uq?t_%Z@8#-*9agU z;$j0HG^oQpqc#h8&z$PvB(Wt#AJQ;lI~sW~<19bD)vj%g)iDF3THi5o7B$xYks1?( zfR#&)W|JZhw2@f1PY&0o^UwGP(9r$;!%q<1AK;zAxjgwlXT>-`4X4s){84Lh-ug=x zJqn0{@Z?uN{_yqt*?-*oZ1x{<)BKN%Um>vl>c77GmArb zC1%@Q)g=d=Wc4t{)Ah8+093Ha8DU2b@7bUtXG?p6*}M8j`J^sq0!>vl~vBOQ7QQ)0FW3p zQZ*#7N)`BmpHlrKW*R5VR%V-^+Qm(?o%00;W93eY@=u(cj9C4tGOqPk+hWf8AXL=F zdDTr#&wfr%*%mzyJUR94gx0|Ogd$~lq;+Peg7w3lTi~Ng@30}(-TOOUBE7@7!0T3p z0qK7&pW0HJO4n@kv+1QDK&=(#NTI9So2sBr*k)hn2RTRl5&I42*~}(_B)ywA zfXkJ|Q@e|GY&qQ4M=ci%;hh_fLOi->(k;jCRUZ_b15T|TX)rU`5F9bC1@c%~tGhC> zW1HYWq$FZ-w0HQ>gHrZog!CYW>3^C*vR4k3L;#NP@5e9#boSSKcV}xu#Zmm4vTubv zjr1sxa#F$_3F0@3sTPBT1u?O@(2k5dJOc}Ypr+6utRac z)GbMDH}Nz!3u-+^-1K#B-auGvkFZx%qEE+lz9Ht$XHv=_&Ac#A%~d-~Xs(1_AM8AL zMEwY&Q#t2!_MJ-vxmhlOFNjHADHObEcoYd~h!mbR;S7eNJiNgoBTv#OuQb0g6fivn z(aP3mbah_u*PG?}1sDzhI*RIy=Afe%)#6OLsbaO{fFeMMWb5284j8FUJ}bVE2wV;u z8D(y3$~w4F71~;Nh`T7m8T?MmS4}F9oC^E#C?vtYqEFc2k1|=mtzFj1;i+r%%apOL zMU|UaDS1rmGe$LJxiuybq3WenV(d3&ZB0-&W=!?Ya;r`=0TTwef+ejKUyybt(j9cWby_@w)~jTTpBf&?NsnK z2_WGwdrDTM#(h?op0##U3vZo04e0e#bC&5OIT_k=sPjjQp@b~zP#%8zJ*G}?=0|rY zvY!JL1B&RryVWj+xV;COS{0$EdQdwBv7o`1<$XJ&<8- z^WDS4zg&L*hX>QDOu05uZPK1Njdaj1b_g%qKyajYwz(Wsa|*ST)KSDSsHm`$IM)_U zwGQJGa8mdMt@rMazyFbb-T%wGhi|^Mz)Y8CK-Guin&lC}tNW0?#bq>7i=DDTD@l`* z2+`}}Mr1P-33{rv_wBw|Y`Sf-F!KR*K=#K3F=fyi)x;ZtSlL7YY1nC?=vsJI!lZxN zsLHm8yWGQ z{OZ?#<=6M`e)yFlj_2XZD|L|_+t04kO zC>&T9QZbZNcv2o&LquLQBP4`JlOqx-5zD|Y$xp)>l||O$6o|-fR%b_x)W@@f(AohW z&K+cy6a^RQpbs7~1WwkQjR48Yj=`waBygZius&@mi)mahBpdx1^V0oy-@pCS{(@`+ zS}D?wR*yn<`*dQl=Mu3LNoH{K@|{`FR2AyP2SYTjUoQ~Le!9c__xg!|892o z$Iu>^pdY~QipV@)%0nbi5{q!R0vQ8KA(Lw8r;4B^!L4X%K~PKz2O+8r&0sNzOz`Kg z-@bkLZvH7@7{zn=@wcnFp*FwZi5xtC=O@-aqG#{=xcHm<_;-6^?c@HakNbafAOCJo ztbN4Ew;RWUzqyZpwEGPPsV6oI{#j(2+1#QPM#Cdps}y2LLyOqo6BXX) z!G=4Yf-F@L*&V0ero0r-=eDaW7!CGyqLg65`gi!QEG&7-Wlf^xaS0z3WVs=C`;~O^DH$)9Ph!2zk zvS&f^!w1b|EMUREu1?OS(X(7$Phd2A?8ftxugp`?SXoxdIvc>9IF~uE4_>fKov>nj zdn>`AVDh+Yh1KJ@Nj^t}EtoiMfWYXGfSkx57}>4hc;bJ7C_X8_V4~evP12k*`}cpR zLAGq`Q!+wsNqIG5FYW!bA_7%}f7#*Eat|B4T<)+um?2%BVRz8P3A0u#1pZPZ8`Aj_ z@v_WyO4?0@=U7Y(%ZzVYT?NUjSGqH_Q!<%>@zTFv6s7u5Mp2bvB~gN-CWRQk%twK{ z3e{OD^wj^9GuffrUFp<_*^L{clW?hWZha!_KVwK5;H>dy@2<&vWwZX0fiL!RaA;C9y zoq0&JQp){8^+GUXe|Uh#^fLxzyWGR!T~~Yr3iz9j;qrmsz`-YtzWHX@6d}-uSMIbZ z-_^mH-Vyap0bHt1|D_7SdSzOpy9@b@O~R@kY2{Twz&YIeoDPCO*W$vP0)M2avOqza@Hkrn5PH5ozVu)Ct5e=V)FqMEJ z^mKtD0|frUy;M%tuC!wh`g2edBY>m+lUg|W84mnaFhEag_GgiZ+~JIjcYdB3Y^U^< z_hNhUgLDXTzAU*cV4`X5%j|khUfHfKtMPQKPa%EAu7N z{@ih`VZEkU$pVK8elz(_Jj+C?i?_|Rg+Nb3&Kn}F)1KEY_8t+qC+l-Y6o>K4yL0%h zD}o#;ai5Hh?sJ$MgB7*~Qetb0{+uqX^DSLmOir!zz%;1006Vt^^{q<%E{^4g3 zD(dlPEc}c|Ub6qcYwv13#Q71-(oA=R2s5q<0v6d9fFhb%3l6c-p2!uEll<9_BkkG3 zrz~pyA?!(5l8aWDoE)dkA?>H9|Ict1N>*rNvyO7$ZPj`Oc*#cs7(7?It9oLwu<^5j z(aiH9>4K?Bsq({$P8vxI1Fc*s+7oWO);9%db>?MxuJ!L2Rr-cx`e15qQr#+ZPUU<` z_$t3TD7bKKOsD4V=GAe)hd4grmeEaNpu5e9O&(;TL4nvAbYx)a080=rS#{RsqO59x zl-xe?cpO4i-Ta}pvbeIP%%I-~@{2vV>&a@(=J^?|*(N`u^}$ECc36Or4TgC2-I1cD zGgNt2H93JwT7lzy_x9`WR)2kX`+oWTk8inLKm73U-o~@qW~(}uK%aQ4TYz37qk6v^ z0@_9OlcT2oQ!bF_`pOBy< zF8D-6p6`=UDUB6@Y!)cuAn71*G{@v?vK_Zh)VlU_Eo&6`1R^EIk|2ruRcMA%;xc-< zNUpM8`u;RaH5cwSk9PZW^}mQ2fE0hQ0YSZh9fn zUcs=>*7F5M6Mhp9`)qC1;keLaRgNQBoEIt)o1CXXUzgj;%zlSXNlL3(+pY}N60&V3 z)q#PHMb#D6Y2Sk4G{8Ng6Z$Y41pQvz+NyMqlg+PT2F6~A+x5P!a>%&kzq#LQARK$? zOvpL3kSHPLPI?a7t!QAmyXX_U8u@J~1_0DO;;7vs>cdDER$TY(P|y)aE*itopFKfJ$qc>AaKe=fB?`CPn2S6IKOh31Iz-5Hd9T29TN>peQKw6z^4yB9oS7K@adSiwDdr+EH|4o zVhs#eLEr;AHYU_2@1@FPFhaV$vY!h3X;jYIPSn7peI!1m%DYeHT}L>di{qIsE@0yp zl9u!b&hKg9tgS4AJ@k+(xiIO1{YF`L-zuBvVu1--X4ad^T0 zkqxkZ*d<|c&m$_nJOJFFkPXJ4(~pw=B-`~F~!akL?LM@p{3pw)wokmWilk5HHX^D4B-lGW@~%m6f2euXjP zx|rzOSW#WGj2hJ?ijl7}oPDRc_9zbmVd!qOo7Z<4p!aZjR#I&@e6kzDlP@vl#7zRP zoC7|LS@s4?DewGt{nWD!Y(u}}v@MM1B$R5X^sF{UHm5{>+{!jI@y+JN0MS6Qmy9ocb5) zMYi+Ny7Di1={3&s6C<`hUCMrYP1ItqEv<7M&H}3*$t>TUe0`0_KSdDSI=In zt-nw5uT6OMcM2Wb&C8^v*zplJqz!QBFCHG~203a`e+Roz`WrRwuXbaF`R3*p*$US` zhXcQzFSkQxZP)v8qUg&u>qHD=Y|*0GoIN*HWS1@&QS6s;kgUXU;BG`8$Bq1!c2AJ_ zfimpEGBD>XPMA=_rYiOJc*lO+J$^5ftMO{=vv%zi*?XdY!aVCAOst!#fuqjcAANOO z0xU+`?Ix^v`-tYG?`kGD(guPmLf?o9dTq?8a_ZJ$P0?;#>+c%&ns#*nW|L@4Y&DF2 z!&Zw6Ygf_26@`eFfwTeP$iDkgDeKp58;%pcvyftG{(pgs=dj~%mq(|Sb*^R*k;%v< zrCN`IIz8BkrG5~CwwH{j+xYguS(f(q-QAjdp=p>Ncttg0(Nba4kdb#7?xGt@kp~qp}Diw;-pbz?r4P`bqF@QqYWo- z;qZ5Moi>Hnf2>X6`X6ia^h4jzyPkbSo97?V2Hj1z+L|st$1dFeBTm=eM|}GKnA24> z?T;)~;HGd&`?qjyj--{Z4EVB`CO>w`tR;Bb5;qR8{7VS&a>k9kADOKU9MQ92`v*M^Y zS7xPUTyNFhlMT!p+oDk*WcxjWEL?{M4f*Qo`26r{wMk4vviMW=!=p>gtCV<+RIU1~ zku}Gj@=DYy_2{lfessq5jhKh1XN&M4kyii3Beq)k-h!YdC1C=E1>v-orKEZpORl5J zc+Ax;flZfBeo_=ApyYXx=2y)*xtN^tr?H@fZMIhWL4J6qft{x|WT61*Az3*<<@M1P zd}>_lXCZWkaz*J%aepjO$8bGOe@NS)Y)in@fzEEd#=(v|)laDtK`Mt=x8h-=VOuDE zZd$t}`;!eK{8gtlOxu;km%3Vq=#xfr`D z4~b;4A&&Fh0m`}pYo)?QsZg2gBmASe6GeyCg^-ygloqCdEpYXAz290CC#*2E(SDqt z7M8^lo^VD+Tx`}R5Ki|7HHQK%%U{bWDpJ>2^Z^kqQ3yN- z`E|~;*;HYIGf7ncC606_U*4Q&;Dx5dBQvNhG?JhhKNvQ_VNk24A%dd%UP#k8LIwFY zJZ0AcX|iN*p9LsWXl%3@8KSn?L0Y%Awq>nHJ01aa@0y6-F?URz@;6#-bPbVJ1Y)IO z*Zor!Rr!d@4x8Z)Wga!d3kNGX5cx!D4rLUD&Yyfl={9kj+2Es#W28k{$puFfG|col z)!gxJFRe5?m_j$B)7QDHM%S>C^mm@7?9dWw)K=cZyI{vVT9mazC+=^Lm)B+GlxwdW zW*i0O0xGn5X03j?aIHV9iSp3u79XMfY|5eUFF)A#i5Aja1`zw~_8>P8ut5~{f`U2n zoWZ=kHma}lxF*dCOOecQdhp%V#ijg$H*?&T_ej*?<;pNo$*L`Mje<)x$02ywUXE>6 zkh$HA9CN}H9eqSVn{F0cCrxmqpL)c~hJ~;tQFOQe;8CT&So0#PVk=brk@pQ@`lp-4 zT4YUhzUX9pJGT~X9%fYr=A5#!br>?`{)p{^eIJ|yM^uRu9~QJx6Tc^@c_i{ycF0EE zZlpcRMKVg?;aDvVUg+~9Y9i*J?W&w4uV}|lBRHsLWLIFNp^mua=Wl;_|MlB%9zOpq z*=DB_sx7~N_i+61`yc-VfaH<^c%>A17$k#X{G!0oJR`3Zg-^$FYI-9_MW;Ge_2<8Z z?OJ>`(>z-?Pxa(l+*?oT_r$F{BZ8}%^s-BLb3?yH|cB!R#1G2y$P zv$Z~hg+mL7+e54E->&rwMJr37g|`YOgBt|U*zfuJa>zis-jBD}dBCJ9ydR4>`<#jliu@ zuQKXI(Am|_?<=c=q<~{6ZdVnJ!#5DVD`}aAoE&3MjddPJcIysukYide?uCfe^L?toV zn`<&DQaF1e;an58;q9CQ>myv!x=Zgj_qqzUAv4!YxA3If1x1dj zB98m*jyS%*weEOm^sdzVW6E)@h#$?Tw2sibA~vNXwX0(sBareDI4r@jPPCt){PCkA zdWXxjXm#zO?1Z7Nc8L!(K02?FXAUp0w`#fhaYZ6>!7*sQqnE2#PXp^nO3n^a>&a=W z{ZTw2gg&ScbVS@nd+kZnZjfkB+^xcnYCUMV36RIif`i`ca0%l&zsppq$7Rebqux@= ztv20UN_2!Tqbx6Urg|Rw6UY1ZZlAy>NrNY(yfd_nq z#KC)2qaIKkB5(t7#iMTiY=#Fid4ZQr#3Y?4rLYN{bWBbaV)HA$z!4e8{T({GJwYka z%wOd930$ke6xzzkfe$8<0|z@@V0z{TdNy{*BB#N#7AFA^EMoS#AP^brVcv;&0f3lj zjwjd1T7AJ;6U_Q-k3mKvAGuWWeqM3|lCGRxAG7K+X^Y!hRlb{B;bf z$$Z8Hb!E<)KXSj(v20-pceJpIC4o^ZfKgg>1t_I!AGXQ5zfe{>lx>xWNxt{QmOGFx z6CVEsGu|ZhtHG|F8YB)!9U+q6L+^KcegEqE;`Z=V{EM`z5o@{>IwrF2u#)f|RF5tg zw(E<#0__@bt*RNl#MWikFa29I-EczQ# zv5k15ajj>#h(72Gob8vt74}+^Ixg=nILu7xWS*N}QRF%BExwD`~#jn4f-oWy4K#7f^_ z8$gRm#^=ygFjtP$iS$d`m7z39vX=aH#9U#+D~PJkN`(m^!vDr$RmDh_0$wN%VZWt) z4aL~1izury{2VJFA3CoLcM<%2lzYsyccnrhZj64W$bN9XvJ`W>f$2FWCW}Q=|Mp1M z>&v@tQrdDq-kVgD7gM-~$=T9#tBemcn^N3_12e2a$vYM>!F-P5vzqTEx}p;8^J5nf8I{Q=>l z>Zs&!K0b8(<>;@X&Z9bfU7=<*@<)(ZzOZPR=ojdDPDKaH$PX-+(1!If;gkUl7sXW! zG@dBtvWI!-j#|}y{#zuP)DUu66@-KsYK}nGHWsm!f}>TEB1X0zy-OJyH!_R0dYL?z zhf069=o-j$)*=6tJnNx(!{FG23t45Xnl4SWz_-t=sT7g$l^3%=w5Slq9xbCvcO$42 z-bHh8=Kh12*=P*H?y{rRur0#V+vUR- zSZlbz0`4wv1woK%46jiIK^TZRxoeBlo5pXnTZ;^%@3E*Xx6=NwbRg&!-*w8EZuduk#TKV35%+H(Hczdhr8JVUD+ zsl1w_*xT*{Z7jtm1>E0Kb*U3gWnGYYyfQU}yAHn^Q`{QIMmsCRAC1&o@EtErA9VJJ zh190gPJu98pP;Tpj=Sdg5mynXPu4ffunpy!W1WIxEWozjx8I zA!_r!;gF8ySFT*|sZ2~chjDcPpX*GGARb3MPe`q_QEgq8`?7U$k{5NFSuzn&rq3xn z#s%(9HL#suU1|thYBH|#I3yGP-27>()*4za4!W!3n>Y``DQ3I*xT?lEzlivP^=nLD zp+9owwgMu2&$u7POJTL+k27$!1^!5V`6%59tZyTN`0qo1@7W?C(ArCu&2FQ`DZR$609g#2Xk2Iaq=75WSfwb6>+! zcl%~Vnw8bb=>S3~1#TtABprh;G5EBLV^rm@5h96Wkwpk$-`t|%^m1GfV96<24yj6u zj`y78!-xl=844AK_Vns{X@eu?Vf&#IhC-GTq!lq@xBvDp*zNvEj^de0)00k&Enxs& zpf2QR7aE`~i^(iX$fK9?73^uPxRJ!IsL~(SlmRYUjIk^c$J(r)KVJ&$*Quy+EPJcu zGHA@<=zTF0wbJj4va_2@09FKsq%2hAio!?4EtuWq`SsmK9AdFZ&YHSA>LLP5?l^Nw zGBmEvYrljjD!WRof7O(x)ZW**TMdJ9W;%%F^yp5Bxtr+}ffEN>)08r8;V>m*y~8R? z)5YsKTGhDmrXs0n40!HM-C?aHT2Yg8vJDWmV09W~KF#_~t9u%}>Cb_Vud<<+e+7;vc@l4pkf-_cy3Nl@t5wDwOf@Q9Q@D_rFuN_S%vs|4wv4l!EYmzChec0Z1b3E4fjL zrA`vlcLa|g)DaUo*QW1^)=Ilr^uSxsZ&P%Qa;|AiY)pE6huS4(lI<4j1_C{Sbm{9n zvgRwt4yaWU?2Q-_2DO>Ih!%s58GATVn|7H)2}N}r^tt;+6P`o-FkjXm`-4Mx{`2Tk_^zS8hkNvark+yj`u)SL$zBS=t!a z%?wOcd&S9)f?QI~DCIP$v34}}6OH_Rk`B_;Wf`R)5cbU97X!qeEP#0cI38(x0z7#F z_~hbKohkbIau0X>G&%@|^G;GM>5S+CCO*SjLWv)Ob4BmwrAIahfezVN$<->9W2BnY z4UZc5Q@Tm1`3wgxw40Zqp2G_*7fW*UI)Y)U$HFK#v;p*`-P)gZDyzu`9&@vVJo5I9 z_{884>!rW->JrWYl5gB9GxK1gPbQJzn9C_}b-gB2p}$+C8rUa@=t8)C zl|y<*ZnCi!s#8O;CC1$Ggc@qfUsrcFN+{6;%%}V>W__^nsb7LwMV40F&?6G7`#VuS z=m?>W*Wy6$QNV%?a@FJC5#*z>ruAu9ttZ)cccx5{!*wDS*O3^V@ z7=m2hWfB5^)*phY?*}sf{!^dEVy`)ktLEDwp~8X{u~jXTKVQ;}{~C@_J1Auji5@u& zM8Z0`xI;nho%LZ$(X&VFVj4W_#VeIzwKC8;YYt?q?b-H1Wk!v>;*(y6@m(4iqKH86 zZbpyT*~||Ssk&Zz!6O(SAsfIozeex!L^Y8}?Rq)Cgk_3MC`}P@>eWAl12!6=-Z7Q< z1ZoSsc+5;C>Tax4>+9U7-FCPLs9d}n!h4|TcIof7d1*`c35AS6!Gm^p6gXI?24oL} z?M{WoRCPf|h)mkaLWf#^roo=7&_fdZ25vmJtCKM*r?2yn1Rv!r^!!tjQP*ofGIbb0 zx^`G1yvF)kQ?qtIb|KKlo7!DL;jN{Sz*{rO7_Pj6iuJKvB$g+ex|Hv)M#o2+4Gvh3 zHk*G`y9m6*9ecQJQSo(1vNrt_T99_3m(6d1}gZ;a| zD#wUO9CQ4_N(g8>=B>2)JO98x!3^&!I4&9tad+%~M9(o8udVUI>G-=4YEUW@CCM}! zLi|jmxbfzJo`4ub!=D6R9xA9uXg|lA|NQ9^fsv1RjKIMN+4o60WH|YYBPVVkjGpZ7 zDfw0IaGM3*(V{g;V^FSk&H)+Fn44|j6H$Sz5dw3UxoD!+)K#1kJ?GrG1h!jpEF!NX zCTbsw4~BvtV2@6k4byswiba8r)j-x*T^BfPxkffOHx+is&6qCtbwPwg6TixQj$cir zb4(%XC4tRQz33k?cAC``UT!zAOwDi8EuA6A^`=6S?=wk3U(^uIQ13xEQ=5Pyu1I$y zZzC<0M94+g+IoLd9yJNuY+^8q^a-YySpxha4pqYhS}r_1es!`U(JjdzY$JyThON91 z!Fp8?72`XKj;qqc58n|IBy0Zs>hPt=uygMk85h4J+e*onG3!>y|OUb?a!iwpV!Cx4G43gSkU`l z#LCgu)scCB;v@toSin3H@_ie0KBPn<9(yFk?zyMwHtobeid;&dh$BFTpcKdOcA&DP z9B>;$d@Hxz5vz_JDDh8Mn_MotTLA+`9l$eLC!@W! zHhg2{L;zhzD2?zj5DW^`M)6>0ry&t1M1{Da}z{he}>vl_GO=g_T z>m_ycY;smxgqchq1Uw)Fcpnh4^B9)wdmHCm_vr(4>MhoGy+bkP;(B-l8X3&Iv8qL_ zi9SYNLQ&@9YZ)nfS__32PG9*g6oh4LvCtK~qj3f4RE^?jh_`;SjATK$hIIz1rZXoa zp|ZkxTlnkL$f?t<1xl8!?dz)z93^UVSJ5Z{b*v4f`RW8BH#sA4WuY{J)xdfR*m00i z?enaTN5XSa4={z(@tJAbqkeMPQOt=?LKo_m zP*c~3OEE%FTqH09PYV5<-A9KN!<9-}@PTqPq1O>;-Iy0HdEuw6ag}8df2 zVaTF2pF(L`@20apjE+*TK9A2Sagpo+Yyn4yN)KVHEe-w>5#>HJJSNkKb%Ess%hFLE zH$8rMxWt?LFN+DW)Q@l9-+#J&`~K^_I6=A)pd)laq99pG0u7B)9kh@4&qRpA728UE|4yyA5qM%|^Gq+USJoVd6rqiS3)_rf$D(GZY{- zCl!kNfzsf;C3?{8Tb%Gdmf(n02s%f&8sT>d8HdlD8+oXVVoJISwyJ^FgJ6wIm^|Q- z0>zxXfAH$6HsP6EfI6)LlR|Y!W)$ZeG& z^TQ9=?w9a0bF7h)iu4T0pb@5)3h=c*@EKtUt5Y?~>uKi5Njklh!P%_a{4G$h?UXXRpqHK&ve z^@%W@T(fZDGBS0RhY*sFugpOex&}`R!~2R}Ej|4`CUY=)C@oLJxb2y9XPr*nV%VP% zI^(5L$YjkZXy;Malu`BSQQQc@obsr^tRSv}td?n`tx##}NW?pSHwC2qPCnvzk|A$7 z_)y~KkHaej52{OR=F8lhoZ1!oB;rVGE#V_MfBSpQP93d0aYepS4O$fmX$(>FY$X;F?AuK;)!mfV@xhu|xr)FpdA$DF{<-HK$ z85c^o6gATx^E*5q*3GhsEt_+k$>!n6#csA8e;l|W;OH?N1^s!soz~1wV`PoUk^;SQ zK;y9{z)w`&2#d?2eguCQU3Dz#UbXA=Yl^ssgNS0dlk&|S9Ys^UKp{AF*S@7=dxHwS zi*s2yIDy>0IhX$lZMuZNbNpmS{>WYWZ1|XA>x)RwXu#n&m=cOB%BLN!4PQI5CIYN`^<0NoD!b%W z^}--l(hnN@ovL2+`cyGYam(|mVv&1lM9xnrsbU}uj@gHI_z%Muqk|Wt(-+4mD0vE8 zc>lxm`5{X=Fn@OF3deKo3vID*Y9*(5fe5a}1YGz`vM(wj!r>d$t2a<@F!tzjd^SPQ z3G@uDuOYz{&4e-cLr@NiqlY{d(g-aa@c~u|^6{&qUg^<#G*A?rkTw@E=V}|wAV^f0_TVT5bVc-vGpmJeaZzalgMwM1uLjtWc0(SI1+ z>NRjK!kSNdS?F?rK4i>vL{OCR^hnY#s{NLITCLq~yqWH97n=q1_YcEL0(T5(R2o8O z1{CY^n}Y{H32VM?VmMa#yKeF&3&akA9x8e;*O0stwl5nc?a`w0oWfrE;WO$c-KmFZ zc7!*5FA&T4jRZmI9gJ+Zy}E_O70!H12}Vp(HW0bRdakgRT3xaAsF%#o#XZn1(SL;j zhg(!JoT5S~V!j6A#+rMVV@&!L<4o_NoFZ&4*mhTeY%h@JcwzAW0kO$Wf zDs9hUgq0W`7XtcBz8ht_pC)h`*=B(gV%lP%Y)?Z(>SEW@*Yjr;IV;bi3MWP&8ki~T z)I7x$d$0pMpX*CIpfl9nP#oUu{5SZ^lLM$ns@cI)UN(}w*^uGz2FqvIkPpaF;!Cw6 z#2PR-)|YxyGE@OOLN*`5l2sfF6lawF5G5(M3)DPBbV{ndxLe;`>jmJcpc27t)Ti0a zidTs5V$O(m1M5Dm3RyEspfE^G4(IaBH_bX(IDEfYw;UV5)-bX#oeyyR4k5<#D-2Cp z9I+U1NX9~lXBd;!V4Pfm=96SokI;+=@L2UooYD0?PyAKE9|Q>!1)877yByTpUcJXo zA($g%okeo2XhHgF2}E7Md=kMKI8hYr%4{ zkdud2nVp)VSy8~5Nh^mYFC%EWCm^Xg9D>V$sj5SdAeU8;3{62IfC0Dp;}CTbqLqIv z72q5ssIS}gEkqXzL1*Q3klurzT`a6Re4()zNcFhK53buOlU1&tC>>(H)a&yxGYC(v zJi(Rri0p{0hK(wRS<_(UchiX%j3ALTK@sbIzC&2Wv5Y8;GhjBQtJ^u~`h2zft?57eDqPK ztDP)8I$Np!G&UJX38qdvTuQHJ%4oQjuIC3H?LjajrGeu^8EBTdCJ3{fJq6Dc4B&uG z89(=w@^>DfhtpjO*asqRq6xkBRO$ZA$4G$@8~7SvA912F%c9&g8EVs2`8@r+_Y83` zbEKj?@Kpt1;c_e^UB2;>m+Ku$v+kyMFk2Becwwo7zzZ@Vy?@ygFn*g0*i)8w*Embq z;;u#cVtSVd4FS;1#ZYb1C<9b4XR-BcG6N$C@vC&xqRW_F%M@$L@VagP4^`M;*vPY$ zGBE=9w&04>(autF-D4ce+5D&{IS%qONDQHmEf_@p3yp8nG(1$^auB=u_VTulrUtjb z%$3%mZNMkNvr)8t0EwRvvKZnZ71fLD1B9Li&n|mR8mBy$b(5AnT0F*nc(@%R? z$H^j4gLmqNbUwD5JEuw9D@X7^JQ=PX@QHKu>fG~$Mgg1e^E%*cBvIBd`{NW%G(5&8d2y6 zEaJD2ogicN>!vAIb>n^WhE1-@Qkb~1?L*EBODQal7`xz?GHxaP8?ewDRS7MWa1Q&e zUl~sF@VL?s6b@yh`M>^VkVz6QsYfM31Nt{_GXMDT5D z+aGGx0TN#YG1XGW;#_~FFuE@rxd&$d;b#Ks^XT^E=r{QnNR*mg^hI);#s zB?phQZ%d%F@7WUDeL3!Gc5M^UqZBU6X_}mI2!Q*FK?`4cfeOQxMYRec zB7*AGTc#o2ZSMd5E4&lmy?wvi(jDffcV9wFUymxg0RS6lub{WQLW~@pQn6I134wNj z9pZ|X2rtL_fFBxUR+z-C>JuZt`k)uvr0$9kTds0+2@zLx;6+6TUKmH=#t8v5Ho)`^ z#1=xEku4&b038gPPQ6Q8EEp6B!m_deZI{eVt%Jb;%>F=+N{875KgzP?!d&t1b=B>t9OzPMi8ohe~0UT_quiU@al& z7h;H?3*e1J1)y($9;nyoeEiGJ%)q6EEt=FqhUbDJu@Tk{?kcc~;PMUWx$f2p7@wD^Sv5MGSQk3m(u9V{Un2 zOxqb!8Ot@-wT+(W{#e{R^NUc6$&ARAfR1&j`UJ$}%&5de0)m;lF;RgBW9Umj93(q8 z7*Q;MY(fE(NnN;F;kH(KrAc+L+@5n#DWjBQgj4W@ep z_{um0z7Q3wp7L)Q)1Y?OxBIcAdJ95(($qbGcd;O){zneWy7ytU3+-bs&V|wB@AK^e z0|3R@Q}O{t+y-0IC(@^DI-4vI=?*|gR_K8rePcP?Z-+(}Qq&|aV2Pc6E_f(Q34Pkt|T*AmlM=uY5!EwofFy#Qp*=~E> zGsd?LNEG}JN)PRBw(}kQGsq^|ZtEkLS4r_g zBm9HcNUasVLUor;gn%*Q;H*|Dv%XjTx~-NsN`Kx4C`f>A22J9s8;!%a?e zlm~UcT9S4Ms3mJEezqh)Xh@(l4)h)VXXdic>@i5l6vBcy94x@ z^>OdG&SfM~f~>f_846lmK@%xBg)+ylO(aTzlD2T^QVVA+mq&N`#<+&I>e4Hz-y)$f zcdtUKT;KnA{|+8t?)p`Y+2zhB^m>zZ8F&-uQ^kaaqtlltV^*Z+7Fr~8M+-GP7R@V( zKg7{>TJ<5En?nK1NDu|C5Ztf%B7ujD990Jz4aGqL&mBx@eQ;qouBSt<;wm>u7L}kn z;UN?Bh^pa*(91u}6LB?0d=JL#c7o}pO_+w0_3JtE9-dcT7TsQL987tT6}DK8$rb6Y zjytM6!WQ1!k+YmkR+och&%=eCwv-BHqPT7&S|;KW1q1TiV0T!sc^H#TNaJnEb+bjhMy0111|~?Y9MWPK8~drJ5hj*I4`=jYCfuu5h`zVf{G&<6tD^7pyig zlTg}SzsB-~VB^Q9a;_MqIvW5p@SLw&7b0K&6u91VgLWg)e#c(Of{gILoD&(UJTFWD zPJqjq8?2H6nD#tcECR;0jS#0O@wWFr8~paSwn<{(@aQ^e8Qt)12Gm~I!ay8dPpExrrUFf`H2TVo1em60Vz@|(#6UW zmOeUNj#)@oVdyaUAgQFSz5T-$v=rB{TR3|CgL9Pt?@H`eA$2xDg4|4y2a&VoDQ!E{AiUexH`i11#*3@`QnK?2go-`aBv5~? zug}U2k@a3sU3hlAxdP+h-kbt>Q_*KzEqo8*Zjm4c)#Ooj#q`c#gpCa(`9QO|8^FUwMr}Wn%J*mk&80Xjyndy(xHQQ0 zv}+ct-7(sdxSLoS)b|#v&&Z&rNpV4>jD%C}S@M0VfO(JQL9WB74Z)j}U)ac=V}6D> z-^3`U46vkvNYglZkC@dI#qKA?d*RX~umE9!xn{O@PMM6_Y&mW>(v~H4YFi4;gQ{M1 zt;?0+6O)HybX3a79$osls&Ixw4YC3uLD6hbUuqYuNr?o`Hf;cM(^%l11{tfPPJ)5DxEAa92!qLe(AIllSn+AH9ND=I);lva?%LlOW z@`l#T(0k-dKw@V++)7|BN#x>@!6dVnFQ5JGZ{mv{84S+^QHMBN@=e2>xm>^8ftOFQ zgXN`a2qaOjs1z*9b^+R)9)@>{Ahv(e3Y@L83Bi!uc7KhdZYNGNq5zOu`08kPflQ>= zNFP2KDDNu|B0XmA&eqrMQ7!#utzQ!pdIScSdYJfoI1fLY?dvg%AWsU%Lf2{7Q7ZfO zEDwnW4&$$rHorrsTQ?zD-1hteS)2OJ;E-%+d#VRu33U3bN`&L`jCVSHPskZrC;;qH ziKlaAZ_}w+5mqA>Yr4Lzv;%FQZjk8e)oqfKUa5UdefE6Q7%MC*RK^yg1vdQ&-%wj~ zR6EFdL;;N=#1VI65#rGPRBQoY(J9izm6J$4#-~P*){AVU1oC2!#0m4*!3+maiDL9o zvgIBk^ix;+;)kDq4Kl-rkzmgvBj2N>EUa4z`FmWWo>CFAq|<=9`}MAJM0A}${R5al zv7C(u%~Z$#LEF-!MV!LHn0OT`bcL$G&16@&TM`9izs;k{Y}@t;B!YEhbPJrsYH_XU z)D1bbZgUH~j?Bm|&_3K8*-AfdOz+H%_qgx8(i`5 zN?57c&=>DpnT}6+r_U?W*RdEH%SvbhfDezGF92HZ>wbSoSz0Y z4O}f|xWNp0Sh3l1)p46|I(^NcE9@AiixunZ4i!fTHE_uY%&J`xPmRUCyftn!UyCK< z7*h0H#=Bcp8YC-!87dC7N{yl9Qp0^DrZNqWf5UI!0L&JiX8bZcN z4Pnnq4Pnen4YV(~uTAB%calleA#=+9*Dv?G9W`Xu4vbYB zE$73fJP?eMNrE(it+gXnUD|9Bx-jsxn7HZG4csXy@IaKHBRAjETvNYUB3cD{(8QCg^!0`tE$LbKwjG=>j14gM`82P4}l(y2Ru7lSZd%%*a`oL zc70VcSX|v~XRz}(B&pM#mLhHKiQqb43UE`#F0UX4)n5uYYWwuaD00^F?!_8#4-ul! zF!#nsL4cA|9+~%EzgCJ^<%skhk!8c3sAPHp&LqF+iMLgq$l_EfECU)d2!{+*wYb8q z|8`p9vpDp9_hqf;_uY4t#INtW?-a*PC#NkdgVjTb1{p8`$eg9t<_M#mn*l6e3mCGF z&Gq+1EI|AB+fji>OSorw+P5`F@5b-wMJ<|2oONMmf5SYq%c6i z6i39hXKUD2?Gw<>NU=H0KM1FoM{Fs=5bV1V_Pd-GUOT(h7DYaxJ=pFB26^VB#Pl46 zzXzSL)Z&MMg+X_!fd;z>(ptcvtM`*~29*E;K`hecZS&!sZhd>=krmULjf3`8TnAd- zsHui8a=ns8haP1SU2wpjp0`!VsxA%YY_@kx#f!pvW0}g16iN!>#NsfxTvkKK zuwSkyj_yNrJ-xzp9>5zp7LUWi-P5i$&w?Vrq*NW7AX#W^zzRJWw9oq`pJ47`-*S&u zusFa5;l_xP)#Q2H))TGIN-sv*_XdAcb$c7i1#v!XuX4cnxT?E^PR|0n6sR55$S+;vkh_B(J$UdN6?Yk=jmXljV;y@hY`6rZFyVYT6 z!wKp>J;o91M7g+N8oZv&9T@wsVyK%%tEVYCG*Gl3IT1nI zI*JaE{<6oRkPJNJd}xWT=ZkaFq|3`tmjMu^0$>q!{J54u5eOuQ_xU75Na)(8gnVHWk9^m9X5@i;I&X*Rbe0LJt zw8Pbjp`M(0G15pXQ3F#yu5RG+u((=X&fo#bG+d5eB92A!WoM9%fzuDM(igj1S)LU{ zf&Fh(UEcW(9=&)PI6puIX_uguEsB{CoA1GdhX;n$6a$R&c(=L&H=eo8uKs=B5JyZz zFYE0R2~-SGrE4J>u5Y6jVX8S7V3}a^Nfg&weR}ut)4MPKImq?4qRE&Cw`xE=BHY7jlaT?jQ2&gS$EgZDvESw)t^F_S%xU!p_K8*)qm zi$8;A&RoR_$d(PRn|p!JH&+)G;s^*S%?dEcc2V9T&*Ld2pMLP(*OyrJo8n$p0yIfovVrvuJhoUYV z!Puo2abqY*!ge406c0PRVs4l^3+tXZDw-Tw5fj6a9t)%^h9xI)+GoK)3dmVrjTcDY zYD_Qv1t_8+_=-4XXV^G{T8I)3dJ9$11-VRsilBI#UpEFSFp~N_Q?%GeBRS z87bu2KKuFw?8^I(Zz=W%gGFZ>Wa5PhHT2R z!2iym5`JPlE3y@UpWUW}!EV!NIyD*c!%C&%)z}+Y>2&KRQv0ao*(a*xJ`GQBG2K++ zc-gLjveZ~YDd3L8)Id1Fcs1LB_o=i1PQcFQB7WE zo#=GxV~Ga5cv^4GH0qf+hDIG6DV9-#g`-5;qnJOzF^id2HN%Yse*QYWngTu!NdC`n zKYX}<55G9o(^5UIFFm_zPTo3lF(I&K6pUEr24ONS4YXRY+I}+cszvH(Y>=f0=%DVP%;jwtav4 zRe%P>3nEo>*+U!~GPg{ZNT!7q1^ZK7lY0_V*=dFLCO;(g7WR*xC-vXsq1iy%-~i2{ zot`JMia9)ZrvmJL;k|h4FS?yxfxlqJ=1hoq!0(-|zt88|U@ru$6wdC%UIY&yKZ;ZU zI}<{Kje$6al2Qe`#Y+KI=BasPtYU9vvF!C$F$?8>gQX?|#Ss$z@}GRtE!l_)i5UKh zAv!65QZgXKiOPIoVjBQ7QuU{m1{9e0fhjPC%aBz<5xP1qC^Bn4{qfSy7ir8-Z%c&f>TQOIESmnG~Q9 z?IHOIKd!t~0R%U|mm_qmbO9z4)vu<>!?_G=s};5qZCukRSGCO@`Mo3&A%I8?dWG0h zWSM1h9PK2%^j!KPA8Kv59i{~oX_&)}R>^&sN}hxTHRlI)qorSztU@yZ-i9Pc!^+mj zmzI4xD1{~pdTZC4mKMU^0lHO;m9gyeG4#^44}Pat_ZT@sJ?*=jRiAc;4x84e;fyOl z-pk<#RTl9Z1u8DqinwnZ^TvgoEqX|ci1Q|*qAX5+$Vc=n($c z$cKiY-RVzXNuZ*V{WO7?uF_NKmSPeV^1$JTuut2l(HXHC&CVJuoNq;S!$W&HAd|}a z!h+f*j{C%*@k2q2Mqe$#Kb>*g9s!KY8{g$mV9VcOCK zQb^*DQP>D5zmeG|i_#N&S9NJ6GxN@v1d|e_Q&floPixZBkLbw)Mw3Ag_M01Zkh4(A zch4pSROTD$&{6m4)via41W_<2=+XG3P?Y{swW?8wcuJ^ShsRDjIvpqbI-Y}mgascJ z^&l=4elsE!5vAzaL6q4Lf{x|B8jn${6DlA?K8ypE0^W@g&+d@Dbeo30M74RL+dxB} zh>A`YhQhUzaW15%kB^Ne|+}= z=Ki5E6pGy?EkXrL6ClbKO>{L`FIS8yVnp+XIT@KU4)-tuz!P0IePp1-U8hOl1wBODZj=eVbVPFVU8XNS^_@#OM{%wZh<8O z$2!wg_c^Rec_xK<_U@zMVe#;zhrjsIhmSpa^ot)2|Bi=eefWzX4Z{EMqmLeW zbdtuJJv!cZpZiQ%79x~)xmY3$8=g)`EQ;`|m+24;m8i%hA|7%m-0|;lAZEH~5Zxf* z2ay|Q;}`6jgUk-FkLW1pM`4_8T)buhSaM!QG<;fhphA>GPSupyPcsTB`VTf zE7G{^v}UJOj(ee(1@a8?7MM-711oNaqki};J=hQ(#Cvs{C>Ag{m#9ptkpveZAWJ%FHhb%Y*R-!}t8zkmNKC#QE`d4Ze{{;<;(%<-i z-GQ^Ud%D9dVNZAXY3=C-CXhOCPxlcx=hAXAVfOgf*dZ06_qv^}fKS&`fmln^+#L#>TqG>MFQ|e}!_#yW5@8 z{gO2S)6X3rRoa27LtjD76oujQ#k@^lSaoS|hRjRkD|5nFMY#|(*{9)zKCJ^}d#-?a zdZG+BtHWph16jsFqNTX7GBU@t!J+EWgUMyXKN_EiG?CZiwM53ULC2Ch6xAP>&*=CK za!=THb~_}mF3%vaF3(2Xf`jKu-cdK%Q?soF{+Hv0O1Rx!foB(G%@!7V`!-GV=53mQ zUif`ms6{8*UDMu^Shs#$qJ)Y4*=TG+ruu&nE4@+$6dCXXbDy6VF4{A4l z>^X``^E^#1P#{6dV7l>F?Scb(Pm--od@c=#9HyLxX_z4|bbBfBf`i_t*O$VMzY05v%|pEf1AB{4qq9U#>~hXazlO zD4fF%aWX@PCLO-p>~xp)Ye!6W;exn0Q}UuMXS(?C`ODi6Ki-4?nIMHBk_c)=v0~In zBo&byIo+EP$|7x`oj?==Sugj&gj_FeL3#Gg|Wioo+i z?uG#!DnD@m6wz_%07KNzX@U#ramcE8VhmH9dB5e34=_(&+bd`RU=puZ1B%x!xd1Hu`TO-6R z8Y_j9F10pN+qttn?WnSigx^=&DUj$mV$|GFr&~8w@m7Uyht${EsNNyE*>R<%b1EyV zGipAUPW$e-dFtaUKBtZ0=^3C2$*nHZDP)!JgKep(j+~pwe%M~5vji(b#-^c| z!>+V;*-$hlow^+_9Y~$0h?M0rkPW;jSVH_3tg?^5jeL6`7)=H~YtcB9K^3MkrjaT! zGKG$cx;kNcC!r#7Y$#k;v&e0)=EaSJ zwpj|*6#{xKo*#$MKdI9XICNxISqPxLPVoLbH2GvZCs&iw<&2k_tC$36g@@82$cG1M zr-y><84%Qs*N`LaaN3Er2SnA#RiGLXMG99yO=wrxSop$lD6K`|B_uM(8~Hyy-c+KD z4Zohjb_eSy{}yT?@4$j;g4!%$a`K;a9vLs@#ue07awLfD5Y^6zv=N10yqB#Ga~*c6 z>eMY*$pvcW0UX{iv7pikmJK+YBuW>1C`qT!EGC|BVAwK%QU&Es&43?||B%dNaj17? zAOHdhfE&T2d=$ryT)ar71yx2Otu>Yqr<@CnOzx<`d^TBac?#;Z8&2~HmHP+TcSvhB zJoWSg=4%YeN}mCVi}9sEz@x7KFXYeR9yRVF(5hCa~E@C>SjRE#KZr zPA61SvG&~|dP8g{7^cZ+!zO-5lMBN;1sz1s5ekWGVBOvX#{ty-pOGVfHKgZrR@sTa9Jir)fck z1d5_0$%Nj6|M_gd-*RTJsHJB10DNnDC39**jks(2P0$9-gG2$@_oBcS?FdbcAWC)& zMmTzjT`e{n5E~F6kkIuSuHBiK>&czt2SOg!O+4!Xwph0tUu@C}T_bJ~GViY8aj9(* z85dKkunK2$sAvsIQqfT!Op&s7JLOk=BR&tT4U;hIFf&$j%hP-|X6DO!dHP0Zc{pj$ zhuL5GE!>icE0WGeG3Gqu(wy2RRi(?Upjl6c>mjCNAiC)ouK4y9R74~ZUinI@;_2pg z1c_1q!&t%~W&|z}!gP6|#WlQOrROdO)s_0G2Q^PE%4_6;kU+d%u-+kBG45P;v8n~g zwof;}Au$ySCkGRrfR(`h&=5#>fL8*`e0I6GGVo28`XU2j=)%sBzWJ z#DtPnwXTT?U%c1K0y?I{L@g7gt!f78dx?~2yWWgjygSOt z8DX7~vLUSoQVm-^X=r1x+~Bif5mJx7-<4@ZA$PQ@*89`;>K3kKByaQK&IOe{wz{ZY zbqy=P?rMD&95Chg68GVhjv&%} zizqjF_j;KN2f^L}>EW6jqb4}4;_kT>;a*LyqMr?k6d5)^kM$c};MWO|3a$Cty~Fg7 z3duphpcI`F8tzGZNza+a5uBe_ID(7E2lIdjUL85VK_>yuzWCHo0Zkl5~AFZ)m+6vhGA+0XZ8ua9yQ*0Lx~IS@^+&X%|9T4P12A6SC`as_S*M-Ab(h)PB203S%N z_Gd|(M%zJ9ei`(t?1e$7y^ONJ4wGTPrN=Q2Ss4mB`izU)uTSY8Aa?*BHM*~x>Q403 z$f;!R+$m6Yc@F>#wKG}I~f&E4(lz^!}z{fp&+02krm2#eUB zH<1^F+T4|n6DF{MR?dLhehW7Umm~G*>Vg!5W|^Z**G`iwDghn(^y{$DD-;;NeRf zZZg!!wTf_zlYId;Q!pkeAvF&jdCbV?CPB>GB4HbuKq=GtjM|?{tVT9)q7YEia_WpD z7$yY$WN8%_T5JCbAT#Pzmh(xyFKh&%I1G#<^C$SDTT71=fd;=Ujv*Yd;wcfw5S~|U zdnCwe+anuf+x`pVA*9W~J^(4hlykWqT_@5NG6vO~%?O3;X= zXYO450mn7`F&z}m zxi#ZK`5TYn@PcI7HN&1zWjRD&OW_QTQB!!X;%MQF2{CzbyF2>LRM){K1oHR zc)xD+XqxfM#Wk48YY0hyS6(9Gb>itl(Y_ASSs1E^)Febx<5OhQ$ z$q~(A_~{b=(Eb)UW= zpm_{#@}?@3Q1@uCEdfgGmM5^@$3rnYoQxU_)-Gg~?XbL!RTscZu3|PMO zc;q}7jDqmDJGPd$cE@rC$nm~67P)vVGrWJ>xCdgJi|0}M@Qts|`FkJ!ng_$Gi&x`Q zkX+ap^G5q4tp^iY7mAO1h(Wb9EF2-`r5YjY z0?Ls;{FWjdhcX-{22;eydV4o^pdO)#O+7u@!ts{jc02o1i%Adysd;Hqn}Bqok-%3a z?*J(|_}P`Polbo_Z5S3rUBsvrq18pJfJFdHz`p?v((cELDeIvMnl)0F*H=~X=)Cc# zg+wa{d@|oazf#V+Ei|;8Xx3EkuMquyxx7Q9>g5*2G+8+hMT=&=%?1Nd=urJYIuTSB zwc*0{J3;2630zy0Hd`^K(V$NisJKdqPcfScOoF_CQ7{Mz95T*5<^!CFuJZj95zTPX z8anj&vRfaiRz=N<&QPeRRjEA#>_%iEHf>1hSV8)gbR;2d(m;5-!lMh{QC(}=ej228 zfrbg2ilB6DJ8p{xmq*M*xB1;&Owzq$j7H|(G()f3baj1GahXA8p|xX|hL@^ffC5>u z0ZIp%12M9lVPT0IR_h5owrZO@-DH~)X$Dx0H|FVX(W1506I?t?bYL{7IzUs*np7oF z@?!!}?}tweVg;bykE`{pU>lzk`9ee_`nBI;EkSe`hR&mrG)73Nfjkd-A60lfq@K%I zZ$&6H6=zu^wZRFCumP!{*ih-D*ib30*Z^gTvu-#x^I^vas_E2fWeW(P6fn?S3s?+| zan@Hz_2M!R&|iu~`~QErd1lwk_2!jp58vWC*OX+$f_Z5VgaConV8BT7f=rHXvIsY0 zw3dM@+}GRSiwXt_bnrOXP2YWf`}_CzjJY-`uWbDE@h>us=un;``&3{v*l&dC7=lh7 z9%mvcJ!?8jywNwRnjWnyo~Qz-Ojp`w!fVQ#C&0X3qU2f;p+kNulz~D~@Gf@2DD08JIhlJpc&FZl_KNIvdZRVMFHU|p~ z!;mv1r>2dC^@ZnOpb6DH66x_0>#qx;I=VvO++3}WD*`X5%3Yd_*gbBwN**2da)V{J zZc0oH^`M>}W}KOrvQ-OaiWl&wM*lr2#&bXtLAMYjK)Ee5ueeEckRBiWO#n{IsJ9F| zEiy@gYMGx>hp%pW05B5x`~9)nE-g0`Ho^m70UE4n11mNSiGv0AXDj4g;G z10cr>F%khsvK4ZGeU8MWZ3l*#n&OtxR1 z5&opiMypnN?T#Nh*J!8qQ!{ee8)9q#aF{U=@S9WFu*rkP%VOw(5$0FEC5-?tLOYV*wZc$aU{4t7aCm7-RwbO zzKwze32VK9aF9#}XE-Ocaob^Q&Fyq+rY>DTjsOijyS@fKJ%PCWJ8Y15rRHyleEuDt z0~P{nnD-woN;u6H%Hyi9{-USEwwZ4nue^xu=d>}mgb=#eanA^4dx3J9S_q{3y`E5` z33`#aL?iXaBlZkSJ1Ogh(- z!=dR#!P2L;yG;;#1inFu4ahCiLZSxx&y3*agaSV(%p*IcdaQZ$+E)ib$bsnf4OxKZ z2uqq^hfb&r717AF8525lYFEh_O^%Wx5_El7We>!o@FZhesIyouHl@W6XGdmh`1ZJ5 zCcXf2bgG|KX4m2gEBvfjwO%_!WU3SIzVL2zre4GjhCGgVaxB51a`Y8F(ZTj)wzEJ! z<=()ziw`#&f4+bUSYKd6HRNWM^ty3N&nVW0|CVv^KSMB~;^Jo0$j$KJ`>Q*`TKMgE zu*5h&DHK~rg-#@5hTHCRl;G~|q?11E#EG^&(oX?FxD>#QvxW}5;RvPHc*aB@kXD=f ziZp55?YfD3Lrha;7FWe$?2uJ1jx9=8SpEK6!1bgp_=eF(-!=O5yGA2!>3gPf_(&Ng&0y^2b~ksXZ#^re=s>D-lni!R1^5 z`&1yV&+S?-FrA8JVsVqbr)2?Ze4?W$KM#qYh9!jn)RQ2%k~|7_EPzpFWsNG3mRWhK+fIvpEmkWhE;NuB+_OPLQ7*j($mfyBzn(ICt(TZdC zLM?k(W^=JU`QcU2Zj7LDfCe!<0LAuXk+z>Y zE$-9u^Uo^k!3DY)m`IGL+`Kxdm*@@D40>UFt>!>yb68>69@krUC z{5wKzjn^X={ql-IppFDZc%}6X?REC`?5OP8E)arn!yyXo1|)W30wX69Qpk}CQPh{b zKHBL4{N2>{;;UQP;c10RzT$Xnk2 z2Nn4GgjP@GkI^Ru=5O#AG8n;Go`|7QjprS)B%pl2!Bm>OjyV#$@MGvX=ke~<3JX>F%UCNi$lFUHK48I!R zV3N}0=bHP;IRWBEdsNPCm*_(otUK#`y$(?k@XHZehOm*0c9-MnWm0_FrSPS6Fc*le z-vZLWRl%3H+oX}iTKJEV{5az9${R|O2w~I{SsKc}X22>E*#w`*AQ|k9jOP&lB?g^-MPA2X{kux0k5e|a>To`Ky{9OjI z)gy{;Am~chw|*(<+ke{$1b-0Oo(?J#l~%Lr)g!Ogm$xV{HGcQy`s+`>N6MvWfQrhF zdWbKWPf~R5DX(|@_u)BBv2Y%DXQ~*>T?UqvvE4USKS7bg5~g32DKoUrQpKeE4gffEgEEDF7n<$5msk!h^+=p1lH4z=bFpc;f{H- z6LVpg2}9C6!hBT5x2G%hOXC6@Jcq``lTRwE0?|R(?nV6KLU$o&(e(|S6Bh8ifdT$7 z`vYBUPfYBQC=*Dyg*mbh)miwqEO6pF7~>}X4Gg=ooIx9Ox0qsu;NEfq`1jzI%o}vA zX8VSO84Gb|charr1e$QPnw?#3Jl>chv}m0tNHPhM=1SpF=mRDbWCHh-;e2`3rGue) zh(RrKM2;*+B=bLhLyb;~2vM}UufjDR~N>sIrjt{YH~zSB&705j!I3!lajdD4u{@OJnomX_`cM1WOQ zF=%fhjOPGhx8p_aEZ;5gWTBRom(6BwsvMMyq>|QhooPFpv|m9C!a45x?0UMBYxZvS z_D}cnPHNhAr@xoDK!Fw@=&=*jD3L6rDl-&zVNA1ysS-O>c^#;_s@%?wgn3{MUBP!b zB*+5}Gg#spGo4_&C2g;^1#^_u;d)8vM$ts&XQCYnFp{CexA zf(QTOfBcO9b~~-C0#1~;d4&ZoQaHjNw}K|Cp6;i=AC~&F4IEMV0T&IW{o9+{tgpMl z$j!N^(Y48k)C|boEtqsS`fbj(H!{0jhssi>1|^$BA7@C#96e)h2I-f!%QUCIaCZTJ0Dv`2L9t_p zt{v_j<0nSD{J?5kbdDc|id`8!#O|R}FCer)KTcDRMbqGdGdxYJft`aoA}O>zJ8aD) z%e670=5m@0v_6l|wq-8M%ad+BNjmAA~AUwk=DmQbz&n}_lHDs{5^*lrk zPbb3J_K5^~eVen*n=6zdSubFQy1Rn942ztFx~t^*p5#2{$?Qv*?;3Tg+U;9`FUb*_ zmm1iv_%Y~h6@ZWdhQ{5htv(v4ilN~R5z#{uWvRt+OM2T*&j!4NJ55KMM7kg;=lH+= zaKLK32VNz6eZCo@bm!@GSNYbVV5`4%D99~7M-+Vl47r#lz;sru>Jo_8Ec!#~8%Um@ zv=6HWl`4$sMz#V(uALeqw}En%z)1Id3}8Png?WaRZDE`!+YVyt=0&|eF*RCT2^_eP zAoW;1Fp1@bdTY7SPyKX|iDM}^Mt6`C1fBK;?RX%J8-s||=z^pI3L-z4P1TsDNz(%8 z4;BK@$7E&fAqw}c;Ox6&v?p9aiYuZsIy$sGNxZU(Z6Fs57);eACNF;?w20qe2H6*f z%)6y*Hb*+Ji6GM?Z(zL0Mx#uZbCmSFR#@R7zsbYfv?Hk}eTy*F=9SfSiwiAOpccvv zhi!E-+O*swZW>lLC)(mi*euO9VOr31Wap>~}iLwSal()$q{9NAhyV;NGRt zTFj{3NWQs;lctaz=j~$aY`aV-f)>`ET`lHE-eLKPJW-p{wbUXxWFKZDv;X-aPf0jUO#|spI&Uz5O60wNF4)NNb5;j=s;{Gx`<7PzT#o# zoJ)M{&ok6~BIN;839#lU6W|~$No*6xU-&ex3dU&Yj1d8(9isP^52~K3Gv|!qepx?- zVm>fLPck_QAU2z@Y>%M`Nw@MBJ)7RnQIPxwLK(fj$7hhn%R-h(j6*C$KFJVHS$YT` zGI&ZsSvwN7f`RmEEZX+!`^ALA#Xk8D`vPYy3B1$or|1LB>x99{M$sZlfy7CDfs@{> z*K=P|onr7&S9NrHx7#O;a@n;WprBlxJ{O?@+009{TEqF?GG{dv!}j#g{9Bwk(bg zh_3$a9ip3^yXT>#Sr-2xrxv_45WEN(_HqlKn{*QJty#Y9a11W@DstBM4r+Ax1YRAs z6}GjpxlH_Tk}B8}3A3!fCWMo$gy z5rW-b-6U)WtK;MfI$+q~W=Pbf+!f&ckczIxSY?myZuq)UGrrTUo5(mRtPEBwn9p5E z11vE5KSGfs8vuM90v_O1as}Q4&w%3(*_ikw&|79`J*n83PN&{2B?6!sX5$+qNHF9& zg|8E=&R%axjzCY#3-by(P->r^o z1*s`qbO13-{LW-hXIqfYF^>3CGEgEt_5+lsxZ`?>5_%Klb#xiIZ;V$Ue|!XMls_;E z$OFgZ+urujb8J3Kz3tf(+LD&n=S!Bj;nCtXQ&Yi?;?0%fiaKzeUMlAaJvNEK3gDZw^@v7EG=McpT85${8z zk|kMjb)RfFKt=>bmZ|>wc{l(1{=JHTs?A`Whe}v9`C>|AB5yc{bOs7J7*H3%EKXHI z6u*uQMqQiO;T}gZtGE-ULqAMBOXMUJUdH1mz9L;|0S!B1rSH~2Q$^ANSJZQ=`!w9#ETOD9 z*zD#9ty#0})h)4WmzS?BCl|IWa&rM=msi*voW)3imju+y?zgg9 zTsI;5geBr!(hJfD%z}RsJjDfG?ZeapYMWlTcSwe*JwxbH`PgIVr~lZP&7&hwuI#ag z$dL0bgGP@JdVI>0>uk>0vpTEIRrOc z_n49V^Tq6PYU&*D9fec(u`$c?eM2$pF_In=2Nu_QWkDT4Xx#1H?RD^ZFF8fkoT>@(*%Z&31Srww7_}nG_quuQoiT~=Y<0Em7tV@eS^iB46JA<7=%IyvtiI9ySt<2NF~s_RPNlM~*W z=zy!{#sfCBdz5~Qa7xR>67g>-C5xv&)}EeS&Y2YmwmSXYz|a5<#F3|(>K~%XnOx4S zH4xg@z|643hi9d?Xa)EPx7!7iMxMO3($IvKB($sop@j=45~;IkhPi?Cwm83r?#lgV zOYLscU#y>Y@fP|=v7mlF_c|6MxQjPvtQ?C`aR8bmf^cL7f(x`jy0}hXDs>KSZdEl} zNZR|n&zI1}DkXJ&$bN3D(E=e&6d(9DE>akytQJpn>d`LpP*vKxg&Y=cAyMsT2;Dld z7@{9w_=K95Iie2#;pkv=IyyW$IXOH%9-W?^-2eLUbROac1q_CI@RP_5K{iINDyVMS zZw(D^bwjPUEzv6dHT(mg`w?lo^@%*aQJR=(MKdDxoO;>|rirb~ms-^N;l3Tf91~9rfW-b_wK44qQzF3e0Ze(6Rjbs)A9+$O*Sw=l4PGWr>fWF~|yheEbdO7Qt&$_<^l z#uL~?qeBpd0=YU$O{bn!guQiafskF{egLv>J%+00K=#P--Gii3j~<+8h9_`3$W$a+ z1OlO4P;%961)NQn9?LcuFM1N8TdM{c`2{K&uPc?lDYfPQMIXh6oiSAEzF~n$tq7gh zwsV{9it%WcsQ_S0T%Temj29 z4!EYsGoI>o)2da*HZKQ%{rLXvmv`^)&0Gr)oKWX%?YHd*2y)I#!?N`9duc$4Xr^zJ zmcK-i5avsK({u%-6g9Drja5lCvc(8unQ>?7zSHGI`v>?28Jh}hIj2`M-IeE1=NMcU zOoxWSshst*?3T<+hWnt~I)D>kbMM>ga)3yyN=}bpMp8JTWmQRrO`vnBDv_IGcm%Xf zUXYp$5v;?}YrxlL_v&VW_!BsmGo-E*DtDr0CNM8%Cdy%}7;-t-esO zVECGolEeQV=V&I-sLW`i=YtY!jpS=bt%6!7V<;5B^eDD2enBMURBV8S!KAeZ$%ycZXJdY&z{tV6kw>5yZ7UjLm`nlz%}Hx{Ye>b}k7HhSm82bRVWU(i~cG zVr&_~6g@>ZgcrJ~StOrDd4QB2oq~793bxd-HJx<(HDzOlD90goJk`+iOYOgtI57Fi z&DpSA)HNY%T3|fF{SUuYuwz#?n8Hs??01SCcZM)s>z!I$FLUD=3CPuCxm%fIZ&!ur z?Jc^U2dtK|d#j+VOi{g$2t#gmxzT_vt zQ8iB5Ub>gES*Jmo4ZkC_2na#5Nb5pizy}OLd%zg$7-QmaESLg_H1(JQ?e@~N+#=hR zsQ{ASC^afW1kaH8+6nXQ97R+#0$5U`mUnNgjuI<>2Hf8gX-+tC z=eU5K5H~l0v4yn+Wyo_M)ZPJltuyYxgjx8@Ng|59#H1+%_f=F2ukPw0wLmET6pHtp z-y8g%d~gE4NaB$5BZy@RUO9gku|O z0#FtJRf#L{C94V4S#B6W6i3g~Pa)+|Z`u~&qocnsoq-|X^(z75+GyU>;1Z~$k~c1G zuy$N5&=4{UR8UaRon77mGw8g_$B5fZUnFMvG_8wY*n0CmKrzyMQ|z&y>Y@9z_n|s5%zD7khg^4Drh2ov=Ap9W27Y z9!3<^c7;n4G)ojKU>t_u%=zp^R0B-4sa`}_0HtVMzUN-yr{>R^({rKbk=g+JAPd~l;{Q2F-55J-3#_Z=W^LO{}|L~i|=gpr{ z`i~_U@O$$1$3MsK@z+28@&1!KHeY{_dO^6?pZlB5yZ?Lt3{_sC0)zMW8m|PCRlRl4 zd2JeQ-aWgg)jS5}L~xO3f{Q#AFqxgn3^W@;5VDZ%0ie3a=w1Y9sJz^HP6*O%*GXyk z`q9utlg#OljA(?)#?yLOt~wMZXxc;D7j(WZ1Z|WZB9d;~UQBnR1#9Q-5^l>R4d6%OaolPFwGVfE1HQIh=7`oX&V*jwYLoD(3!1;AL zP0IJdbT<}#)Z-Qx-C?s!zHreI2DVN|7!*4lN5;j2*#7zLhY$Dfkzz_7R({#>w2EQw zazzALQ(ebzg{*E4p^Z(=*OIRdf+7q$adph+6pHrcQ=!lU}b{B z_@&N{p>kg$#PzaDqEqUSCcN^YD#k*pV44n}<%74G5b{qC4y_-J>>PuXo&zuh-3=m6 z8DfX}5=k-Z_lT6L$Iodyp!O3XCx;~oy$cl)ru>NjQE*-2MJ*jrarG4yf~) z&LB2KhBye&l&bl~;U||eu^y*X45YK7iP8hG5JPa`KyHANIiQp)W&7Mj)KVBGxcu;2 zBo_n6#X$leH#$ME)O`@w5gaq?^`uLEf>zz_YVgrftzVL!+k}FgS8Dy-mLRu0SJ0D} z&VBdcPw(${fBAI(<2#a9tp?Hs^c>4la_H&S?1EW9o)x%y3YO%$Nc8|RILmr@1^-Uq z2pT-VA$X~9x&m?)O~?R!zyI{%?fcnZ?>~H*&^7h`)9eF@xwKts#kAzYHaMj)n|Z$zn9$~BD<4OEhp(9)usSz$}wP9nwC_cAz5}sSIcTh zsYlatZOud`bKn|>0QvuU>P0_vLds4ayXVpDL*yPdi)-*i2+~A~9#|XdCfhYv0+0iO z$R`Li*U(yOBFGjFq{TQ*yXVW{%_5$6^SE$nc^}`>4b#^}?sl;bKkhVKF0q2_D-I3ZR5o;GA zugr@9WnzuZs{1rt76r;K{4u;F(#JV(?rUWNddTeM!-bgOPOehFdp$lp)*h@}4jyVxQ`FFFU^tdgK`_ZfB)3R=X; z+!)VUi(7D@A-O3Y4wUyto_lBWwrHx6tju**CA8z5RmKK<10- zYri#J>t50zIn;P7XUHvW6iv!ZJMP>{bb!MO`{L#1=3)C{9-vp62N|vL;LS+=-^dt`JZH*gorQI0 za0&#tXM~-ilnn(3gBk0%m0T$25{VMX3R%XK7^4}9%HzB0S{3P9FcD%F<8E4ipt?_w z6k9c+Gyoq|Md-t5fK4mXnA8FMy30|l1X@c+5l2Z^pblICD`eQeI#nOWPY}9aW&SHx zv(smQeM|KhKZ$$~{2FI&D615MDzY@tns(c@VBw5$hyxhlPLw5QF3(+rl>r%HD^$h0 z0A6-)M^#j=vxh)6M5j~xAAr0G77o}3g;NcLe-a-Q%W*4w7 z?FBSLT7m6r;?Ro~1&VYXtI^m)8)W&x#^J&q<%fTArS450)|<%e>}O^A>c zH|7V+tAq%nL96ULU?m1f4)iNFrfE)h(8`E&=DUDs9?WK?o6y?RWrkL04R(`j(4o+6 zkOeK6TO7Gk-CFl(fsjJfvaY~@Lnpua+>#V*mr?B<+8CAvID-@K@;n-MJEW54Nl-?E zxPWqXd3nQRp5_AM4v^1i+slKW4NwCT+JV9U96U`U`d{*F@Q>9PpX+pS4#aRt2j)x0 z@bKByyPpkysP60g08?_hd)9fb@JIAr=@vS{pKY%e5?lm#{z5@T_&3EA`EQ7L-p}$W zDWajL7owX7adbP!Z&qiU4W_P$)rg#rl&~j9MtCeyD{zLWj9rZ)yVDd(JVard^bHgn z*9MBAFhK%0=}o0Q@xm!jy2xct8J%~wXuU!~Hp<~G7$thc3-f^alY2cj61?aX*#!ts zlb2I2;U7N!7xjVB@vN~7GtKo=%jb;~jeC&m_@Ut_NQiEGc6a2vFaI!MO#SrTU!^)5 zRHF+mEf11b2I(mFs+H8Ik0v_Zq@?>nCJKgu%yenq9J)kF9hz>ImgEZQjGDD>I`uYf zI~-QlQ00i90Y6);$%J+`X0OEV$@ul%g17VO%2Z_NSc?EuTzIMCEV*@N+?xuOk<$za!;= zrE5XL3TT?Oe}ElM!-hcRmO2tXZ0|O`dU;!ZGWve|Tc`>6$ce-rria;F-f~sxs`lRx zypOJHt_4iD!ZshdGhoxWyIHxfpB!7_B>vk5%EcjxQn%}TNWc0ryLb(gl8!Rchm zZJ$ZVO*O9F79KPmI@c7FRf`ni{BB;Enq23o>?{-|ute61l9AUeipV3YYo4wIO*V_x z0U4*^2)Z|$5^W4Nz)~sC|CO3DzlCfk8|dXqvF%8v@Di**xYvnUfbyHVBH%d}jj=2# z1yewtbF~KO)c}EB5MNkMp?Qg&p@Rj+nkYD(q38$``(j2T$koY|7%0O&n`n5?h&WjA z2}6LqNqPWY{9eo?L2U1q;hOCwqvV^NticAq9EH>>yOLQ)McKeW>xsO>A*$Xg3r z0N0jkup4vC4kn_mx*02nn8Yg$Br-| z(V^@mgUVl>7QxH}k*LzGF#c&is4q3b_C3YFU}_)~57i&x2pq!6`prt%y@N)Z9?5b5 zHcIZaSL{}n|GaL}T!`el$lW7v9z^dxCflu*$VB=E=D)GDCYkinu?@wxK(&q1F*m*p zSU*DxpbS+I?fzweQouKZ|J6TA3ImNo;w+9j!6_En(1NpmN2|~gSmWGVpMakrT(|@d zJ#H(hm%9CSwsC}%grAy)yFTu{?A0w?Td8(&OW4QONl1g&W3vMf4o%yQeM-gl#24?7Y1iXqT~Mefzkp5s zj$quO12&i*0LYzsVQ4EM_05X#oTPYDI5?f)#tO)+Jkj$x5*0VcC?2wu4pqrjv zF>XkACb_6xJA5TbO!WCH_~{m5wcqcpX8=UFnb?u+It_SVNTz~b=W=`o?=8Cil4a2e zRN`huoMWJ@cDb1hG`omhpCr)kR+sEJO=(%GSh^ZUm_5z+?1>W(xo`!V} zv=GVMwVofe%B#9h^FeAjB&?iRd6s;^gHkvFjKVpJ%ndibi$TmlNsE8@-c~3ibyL)G zEVa*2(AV8-n?mY_Ts#M9zA-s_4`s8W5Yy>ng_w!~8^DBBbU5G+aqam7(sEC$R$M9V z%-w6Tel^(b>IPFyZb6iQ_Cc;-Eyv_$mx)skkO3Euip$+$`CM9_?MN#&q;x>WO|HaN z4pEF;acv-xa)w_jXE+`>K;C=tUt$NK%)2vQ%VR`lSVq(05Zq{ z9S|0-e+P2vec^j;KH79I6bf+@eV?1x9y74~yu@p`4DMd7$=3vq%ps;pNQ2~yQmlSz zRVoS%nzkKqdY;T@V1w&RjnHW$M*(q#|DHnQ*tDTZgoQN!W(B>PW#Uj->YM4zB{(1# z`S=B<@Vvd2CL{a*WtoDx3O&h;kOZ)v-9QU)XlR5GgM#n&tHL5gpZ}E+GxHy+M|~3^f}gZS=w{9=meOt zz>H~00~;j@%UnKeqmx6(m5eMXVn5$5jbg8 z?cim5dow70JD}~&s^ZS~MEeY5b%r#9+>5S`yX@4&%aep%h69ZBH~0ZHAUSOnwP!dm ztD~b*3lu)(Js9{i1G~It)oMvI36C+Acn*a18H8Ly>u=*dCZDq&Z-1s z*1#cy;|JA&%h=5d(m|U>2uy?=sLLV7kf$^^IUDuCfvd;4i$#B0AhJ=4o;#ty^Sb_C zU$9p<_GqB#bvf$P9Q3J7#M%K?;@MKcM*}c! z!HEVq1OpA(144?L>7gnF7%st}2{i_2do_Us-qK09Id=RK*{YMd2IrN`9_4Xx9-EuW zucPkKBZ)13rls}@iH#8y+hL)42IxjXpIi}_w^*jq!>Z}haKqjyYU9AOs6;c<&t=R> zXPCB7P-tqbPtWA4!x#;>rp0ZFBtJL+i$ye%*Svo{Y5@UJ~tT5vWS$#_P7dkLBd!MGsUBiD$0y~mNM&2$^aX~wk{qSn4 zVW8|OpLEKkIN&_t+)31Cd>)z@Pl0d)DBHldgWg#&qyZYl|Cf#8&rx#{0qv@f3!`}b zZmw*@og^8 zg=*e3p4ucP)d-JgaZiBl@p28}B~%Axc3F4!NGWCu=MTzy$Q#lx>#-Ja?!i!`95yY> zY_(aSloS;$KMz+wK=*WcxpvJnm_Hm*pd|f(zge&{wJ#UjwZG&oBR$e6bCzrZ;Af^s zs^_t&B+jE<5ghCxOoWG120sp80aAZ@q|)EVxz_qp_nIK;%5t#Io{Z1Tu17^Gi(6Ry zUe4ao?5~3gU+2Qb6Cet?(NHyW!suErAi07-4hSA13r0(?PI;6$WPXhiNIzKF@f5%I z?8*C&AO1AZKVLt5e)p#j_kU1wZ4iFJ!BdtnQm8*B2PqGJ z1NA|w`*eup_fyoO*}g``E1ZATMz3%Kj;{OkiL0Ss-F!h?ru|5Y=zIxHTXhGbo|0Z| z|0sBqf5Rxco350i>l+4B8FaG(7h-4AVrVw^U*yBE`gH&K$G7kAKSA1}2E}`kBdCgl z49*(>I6HI839uwC1OY)3sF@ly%U<_6?!x{+;+Qa48WZ^P>D`ZC03()PaHxXP%~P6A zJw}u{s+3#a1SkLrZp7F4?-2itgr4hU-y`DZ1AifP_nYxcKT`6ccP4^S6F6JUkx@fZ zw_o$oK|@+pNV&j$&;7*)?ydwqOWDfFLQ&|V0)XRBA?<}@Hgis(nX`;aDI%5L7KKu( zN7VThxBzYnZ!&b^Qd=hCs=AOySgk}PagB>SI7OB{VzKNjK<^N(0qI+!x`XOUukBNc z8q7f}3Ifh)C3`9tAQDVejS+-gHAdQrN?TGdi~IR`hA9j=vcMz9wgijz> z=?pI?*R}kZxNB^ftt*f3g5F^D5p6oPU6>u^1^h?vu6zaLU5N(Z59^1Oa)U|u7MB64 zM&7~PFo)8qT2tkp>E`Mjh6!aq<^z{>I^58#Ot&on*mQX_zKpDhRR4NL$isp|aWqW~ zq)#mSYC)#55CmrBN_7N_08nU|tXr!^Af>#^To|A>u;;TtRW|q}?IffQcnPgI*fOoy zpwJ+qWXS?dmc$Y-Y~w0S>(I-j=#Fr$(UqConnsU9GM->M-oo(&C=&I7W3wWZOp2g# zfL`I8>FnwZN|!Sn4LfQu>(vj9vt^&Y^Gz#B(Ib&d) z_@&CL0}v*MDET+L<4kxv^HzKll08@;9B0T(!TbwmEY-z6I5-J8j&?iq6KVsva*sg* zRSsBYB!oG-7AKspL_kDj^I3vQ*}YeC8=6d2d~pF9b^$#a1Qi~*GI%fLT4}{w|E8i} z^U4GO@fJwVZ4b;F$`i?Tc|3{WesL$UKww-Z z8v&kmPvaMO(Q*J&@*%j8lD_#6`wi_d8)B~F*gpu^h2pa5sRKO~G(^sS=r02y@?n zw9f=dNPnpNRl3CsYos0x<|$u{HhK-T)t6wD%J1*#)@@|8r;{s$DSZ6!$9I3?zUh0* zwof1bg3o0PS$}Gnrbj#l4T#(){<+wBtub12QZkZygeDWj?HmUePA>JOZ7>$ov#`%7 ze2UPO4f$ZY%T~u1UfZ5K_2R;YHbmljQ{O{$n-9fr8<#{@SkZ>eNaQ}SY{OL0A02qMj!>UJeI#s70N}N5tfz}F^5K_*~f-aRfV$k4HEJ)PVJS{nt!w}YmP)20^ z#z5p3WM0PcyD!&YfBHQnIJ?Yw{s`m5W?)gMUUSp1fVHSdXX^~G(K{5W0~snojLu5EO`Cn{&`&eynS1d;Kktc+ftCqp}L`BE$A{Ffu< z%a^RAXnYTtapGz!9N5^}E*y``d{K`xE}8nbG260 zX1QOQG<`PV=|GZSZy%609`izLQ}dS2Ayi!=WVsH}p`;+;VDVG*&DRi*BAJIjIL;55 zEf#y9Va@Spc--+%lo&%Tv}Ow}8nf|kFTm@OC&H?y-${K{wSXPyy%WwB;r!V=)^{8tv1o)uecL;pfA@Es;tmrQDc(o9LL`n*Y=SF!Al!1V34zK?0-Y>) zz66y;n;#77fJ4TD6-0|(w<(SfhXbjerfZ~9_LGBzl2D3v+mq$Vq6iY6iildbOGU4+ zhNfJ_W6k#DmQ%Z?4l11ecOn>xQONYan=&0fpi~ZW;+GK^-Scfc{=_5<=VBpni|eY? zj}D({&K8`kqBgEQ#RnyC zP1DZh6;fK0NK-bZ&}G|G_NA^O-^u3Rzal*$a-Mwr!j&SG4Dl2`B%Xq)7^5wqmRxR3 z^pc9QE+O3-N$wq@n@tE%j<{Gzf zfCwQJ!Z1LJllgP#ZotT|CYv4VUND_|j}D~%>Yf3hmZ3z8 z^`$$9kv$R_Io!kiYheqyKpd#NWXNB{L8R<0Dv@;LP9yTQ)+jtIIeYM!J-(Il@xWb)=iqR@e+CrR0YUtu(^MK|Kk^= zF&p$XLaufnQrJ!Qd}5`_z%xNz-8Y8ID3*zNWx4VlY#&S*{ft`0aov}ehlXsZWssXF zJaD+_8thiBLN+!?R5|y_A(LYG4n(_NzG7KBeW`(!(xVS-5FwM0)ye{$;ohcD4+VgJdt%&;*%_b zJqj|^H3#BIfn{bgTCS%H$c840E+$EZJzj1vsN9n{+MAs*Mi4&_w>KnAbYE|G!87Imf8yignJ8mwGLcB%6wNKxCr{oN>n2=oo?MEWJ)9oa_z#k z$(Pzr^JT>O8_K>mY`in@1k?2JghCH-Xqt*cXex%1I_a}j2%hy2y`OhhLLH9c!Oul4 zimFq$@aQl)bwSHQc_A>OQGB&to)ayY_Wcff7t%m)r@pFi?$l@T>}Crw(+HrxN=kwd z`3LkjvD)bhOtT}O-Wv}RQ~RxVM8p=7sNw`G#lR!)V7wD?56kx=&!yYhmB2C4FBqic z%)<{xI8K}F>kt4c(Vpm%iTy4~0F=Yo&ZhI8O_w$)F*OI|d)$@VeshBlvMV>>)e@0z zXNC0+v%$B5i9@Xocm$Y`Hn5Z2Hj7kxaKaI|Im4~+<(N!xDX0($;p~z2KjN&RvtSHv zpF60m85jtGpf_%~=r^DPNQzb?V45!d)nyvt*4yc3ZPIjctuX*M-nqJi+a5W+{qa5= zwwy@OgwYu|)B=nS*rd@B_oYr@AM4z$&!fEQRSfX^Ff?W zX{YKdeT3Ji11+2v?^LGRF#KF$`ta|YL!X5O4>VS{`iE_hGZGvtV)owbE}@>iMEn|0 zb2hoRF>r0KHj8JI0Wo4NaeA8Tcp03SW=N*7y*eD7AH7Bise$qBZ8=P17u!}n#qc4v z@Ae8+534KnYd2+uBl*%5*9j_V{RSgVJtVN#?5i;XNgoFLp+JQQ#g8$3kj}0rI8uwh zGbY#7-%Ovo`S|tIkN3c9=KNBr#3z=`pHW9M#qg6!H~7V*4EVN7fW{2}S_koZLexk( z`+8SZw1lGuQMI{V2g{6_Q!p~Yw*h*EvS#0}u`WZpXv5AQ+4v`ClM6UK-;HmOE*93qYSOazzE$=F8hJUqA0= zKmFy)e@c6zM!3A)Y;Y`B+c$bNBsFAA+UlMDTboXB!}hi@e#P!qs>!ceZCr5xE}236LTg{1CZ2_zv3CAW_G55wD0Xt28%fdo(v{ z*N0?GgZVuNJ1K?bFLxg0Q-o?FpRBzAhex6mQV?CzgTVK)Cef059vrAoWQZG=X$34I zM-lobl2P5<@v&GF{T;h^MQQBC(JKpX3h zU>iy1wQmN+zNxrxeg$r6!$oD68!n-WJc-hZ$7Q1_LOiQL;mD-0?hBq;;4zdwh4JuQ zXXzAa-LZKya`qt8L^XV7nRtcy-hf&97drvMnAPd+(>TkUCu0u64l3`;-}(T}-L&M= zq%i_y{R&cOR|rT~58WzlAzafcf1ZNF!$xmHOCE0n!+*i#;ZoS+fwMq6sg*g;h-%?( zvN#N!Odby9M?XmmH*I)70n%Uhc=q*!vnt_A5v~ZQ;-92ci5Xaw1NAO zad9ZK>I4*XxwgPFsDeVhN+&@igKlPVFw1@dYD}7jq&AD?Gp$GsQ+J)ci3P_zopEH?Qk8VR_X>fC}-3#v8LDQ}_xG*Y@Es;F@ z<8)fUkMT!Ns)A1nAHbZWj8FacJE`%EYUP*ObFz>jRN70n0-CT-RF~$qYOfM6Gen)k z5r%GqcDPd3)ut$!`mEP(Qcn(SLyy_% zcBK;=etjGV9eNoO2;O5lM*VVBE%)FU+Q(%Pt2QMuhv^9orVrfw?bG({_kZ!~t2&qB zaIs^baW9eT9Cu)gXC&he z&`Y6vn_$d|y>MJE>(O<0p!6Gct>}5R&s-_5tc%+&`=dacTWEhc6ARMv?Phtiups>6 zTDaqU8u>jaVa8*xQ$o=(okci7p1`?mF`q;B!d%gTzUO6)t45EF(#bI zljKzKIB}uzn4k?t9($tc!Cu2O(SD9ZfmS)+>bS|cn7GEyI6{057)lc+onDabL4wZG zk4s0Ax9h!j?nSz_R<<>L3YJpBLlI52aNlR@Cc_OH`bHR|>jrR=`)-A_Bg;$DftL?@ z=su(MKnrcA&k|btOI0H_hb_d#uq^X$?T6@Oc+%hnR8KMAE(2t%aNkCUx9?1sIP=mYE zqZKNZIMSmcjf(x&TxH!m9}#{?R`V!b=@rCI3?BLyIEk7?D6Rwtg@GJkwc`3Y>Udy3 zCG#OO7-^&F4n*h?#Rmf#P3^E`tZ9}ka{syuKOINV33gFn7c&9#PTW%8EAwVmK2|2m zhy&O?MNZ(3SAOv}3#<3n;~7Q%-%2d>DgcmX#+q32%BS3sZY7=*MaC9XMm{ti%CAIE^`vDGO0dFNaR69C{UyInt0_-otv8)8t zr@P2MJscR*Fq%Oz#wY~Zm9R5QAF2~1WI@m_oLSc|$E$wNFSZNI#vTFDlQqV|Z6f0g zbwS`f@ee|{o7+vAq5`VnnS?VTB9AUSjg{+08X$FdE_*&<DtZ+J1W2@eXmDhnl92TX-}x> zvi;T2*Jg3EB7=znNU57UX;it;J)?tRhK9gR|1$tB2W`mQU<&%Bw+bW!Za}8j1!345 zO2XSD6}F(qG?&mij-~4oN_v_Cec~JcF;q4DkLz#@Zh8-9G_XEf-pIIijN+|&1 zZv#vL%s7hs5JvTfIO57~?LI5x3|oR1bheXNCwHff-lBA5aB&lz0>!du7}BoQH8^;)3$r#JoTBcZiqe&jWFJzmcoHhg;>w7g{q(2M z>#aGSFW&5fLAGd8-{tmvRw{)35cbEC&hP1Ay3p`77)py!Fpd&g3aH~ftOF(H6t8JO zr0pgDx}<(DZ*ZqT+~EaOPpA1>>Mm;W(~qEBywUg|OlwZ&FyKK@C3A?JxZEojFcir5 z7U&%jTjwALuG{wEvnOVWz1_c8HyK}&?t?Q((sh~l5I2^Tmhb?X&6iTFwFK7&1WQKz zlX;#MJCkVGYd1BFZmwK&R={`_rLp!M!T={s2Ike>kCG0>C%pl*NjJC9`Rd|UDYdK^ z2qg?`z3FJNK~;e-c1a}EE#FR^lf{HDP9VKjHJ!~^;xkqqDG0pf5VFDX$k`yOhzS{k z@nc4d;#cnIONUrr9(;21fk+AdlcqtT3*12P&6~+$fsfECS+a;c zxh+_=!}kUkbNfedF<3J$;0&b$uw{@24WwRwv-gm)T$bJ&>f98U(oM<9L)~n9fYy_2 zti}^K>fFEm|GE%83 zydW1vFwc}VOy<*Q;87H0)X$^#Nz~n;EN@J@jI9XVfToB8>DbSy{%%w%YzMZ=F~pd4 zh&V58dnP8Jqg0`cRFy{>sDXKwCxM1fVPIBz&WPBBgUq&Pi|{uf=o|bO_ra{h$d27? z#L4$^L8)eR5#jO(;WrnsTvb=v5F%bh1n?=?Hc5Gib5M{lQI?JBZ3VADZH;p3`eu+$mJtymGt zrv7N<`yQ&8!zOLGj%p6x#n6Hg65yV5Np(N_i6j}OiQ;F`+`K}(AKZNKgWHa}N3&hw zR9L@SY_K6Gq2ZABw$RK$j6jG4xNzyDELS+pO3sHk(YbPZ2pL1HaxMr|CtR^R>a!~f&Oe*7)*WYsLkjq#-Rv*G;qg=hDF^RtIv zeD>fA&&KC4hsLh;!NYwwCd)jGfGW-d(u}l5+ucb~mq&(m0w`5RewL~+!ZK5%ND&zX z+UpgjDq+=Cc48e8L>LDO!&Y-IQVrqd^LU%tU+#etH6f9}?Qvi6}SnxrJhigB?+8_0d%N6yqUDJ{vk9rRDnq3dE z=EpvvYhLk$$IdFccFn0ZKWYqScI}wb06gj`2-xeI3u}JV6L3Ct3_`7sx?hK4#}mB$ zQO^L^)$s(iKI(p`S~~7m>!a?+S=aAE2ycJXGjMu!jRCFhG2}EJG1rlAsi*u@brOX> zl~=ru-&tQ_at3qWx&ZDz=3gylk_qVX7KQX|RZ5Sa{Kh!dvK^SWXU$?RCG z#wkv}oQW)|wkiQ;SxC zG#0MA;zkuSQM=`usu!9{h~H$Qw8T^&Z?;y}O}b=U=(UASD%Ohkxk|i*>cxycE(^NX znJ?N<-Lxn10~6rEhnVB5gr;B{s>a`%;(?Vx8l-~9m| zn<65#%kv@(KZuqffs@J-Y<_9^L51o}PDxghUx5pe5Nr>iMN}5NWLqFjMS3h!50ASa z>~u5eYJ3KTJ6U3BPs6;KT#{dg5y8xobvhjqw1@OpFG9f=+!!J>P-NLm0YlOe?OHFQ zA^2uXmo~b30h31L_9r{7)Y_<*qrEVJG}U&rlQPYGG;s2xR{8?TGZ2Ac@@rgcPuFSG z;Hd83PM1_k)S;2@bY9Lt$21J8)E%}|6rJ#y zG@JO4_})Nrt1T`SsZEaOA} zG%1yMD=Y_Bqs{Hj1hk)6#>BLSWjuFXg=HDrL++vlyG-8R5JKngKi$81|NY&!-_iS< z)ofYwv%CY5B#^zB%#Bq@a*D&U39?X{USvNSV}6n4CZ;sC2x)Z46iY*Q%to|A1=T`; z?#PjYIRn?%R~VxIN@~mE8j?xV>m#6sQ_1HenoX$QcazVn3|Qo4W>DH9gBJ|PD&M&n zU-xVg+=yGilfNp{(>Ew^lW3$^@bv`@G}!4$b?8iuW)5|A6IfHDm9H6+->b!4$eTmOah59a?&(bYN8fUw~%mBn!-MCQv)1@L{2TN zmoSkvseXYoG&Mub9z#dP1rD7P&rb#4<&NDzfA^?Ml)(I^G*_I+?^RHI=7p< z3CqmsN*JmSNBmhIVLLcZYVBGBs87_wcn-2UxSpmyxS_lljFHG)F1U4z-WLoVM}Tcp zU#dq8f4TAmNEjP_3+DQ*6mU`~#uSncqc6`Gl^GhYLw)5BHi;H#YLiUv|7Q0j&|ukR3@qAj3SJ~_U7x_xn# zN*1QC52tx?!kOBrzS9z7LJ*s1(A-$8``HY+6A>Y}K=yH^LAyd$f}5$_KxS{>!4a5| zT8Hukv3&YS42OmwY3p+@Bbx2P9?Nb#R{<9~B>y^=cQS_txpNYQxwtn!{P6a}VDaJo z+xrh6cc@2n@#g&xOqA^%roZm(!Xe2Ly=Aghyv_Vmd*hn zx1v5lwwQcCTmknLFErx?4ZtbcW@p=QO_@lq7`yGbXTpFSF30>}Jl=e}+@b40Z8@Ij zu#b9TKnW|pLrxmLByf79Crx>_bav3|$qs4q_$e-&%R5s-Lm{V@X#w|CK0L{|(K z9ipLt%^ZSiANp3W55P zy9cUd`Q#KjL|UaObW4F~4KX``_0_R_E2OS3Sh1p6-S}m+oX@Quy8YDT15zDpE2B(G z3PYqT(Xw<0Zo&*5N&~68Hp1kT@N#I{2Cxkj@9<~0{oBuXle<6l{_!b`beMyh2{5!5 zfnf|%8C5NoBeX9^18(udzAAgvP5LT2{V*DUbi^Y+spcqI(MYWZyojF(FUp4CNXc)e z_I^|?u5a$_%iM6BEo{;xj6gaZfLx6S+WI8~){>h5MqE>MHVpTi4a5J(v%$}r)d*TK z$q-Bxe{(j13WTGl3l*=x?m3qL_G({X8E$Ao3qD~!?$bl9#8={{F%b?FI(2d8!V+|6 znnsA?;Z11ggB%L`EZ_D`IABulPxah%GgEQ^#o);?W-dAu{#48$e&VG)I4kgTO|P_h zX$zFDgj_rqoW)|-eCe#Nb9MBoApWf`8APtQ5#UgioP!kpBWdjxEdKK6apcn<8*K#h-f?@3!?ml z#+Z~OsMTA(vu>rv+%f|n`h?#IiacsBF#Gh>!wwglA`L+wX$Wc&gouu*NBRZJP~fUp zvKxOuuHvOp-+=;yY421eNOD+5l(TBqLrU?wgT9&XP(1h<&iC>{OO_gt+6GKkdw9Cl zfO;Gd(q~M?isH;Xh#xYg<_pk3^1|gUS4-P2F1tV2*L)`*)6wbH zXe*P2~^x~ow=YT_$8+U_{-Ig+wl>M^|PtO4+g4648f{b5~A_kL9 zrjJ1!#kC(XWecLOHwfFfEZdMvEA#3+=Yeho99P(_WyADx^t!x8?&_?w!52|yb8NH* zTAFCklA6=fi&6(%NW>&h6%2=f6yV8cKN-OoDm6y&&VKMTs;}u16Fy?PJgaJ?>N;T+ zr_iFx_^lSOBw0EUx1rItpmhzxmb*DoBO!B*J@F}(DxuLYi8+ysE*Q=;9Ruj43g;v?wV2Pki=aZf(AD_ z!q%I=0@0n`-7u>XxmxJ}aA7N+Y%p7dC`B;6Tt+-R_Uz?SvmiBF z=pFmL`cggk$n3{=)b`^$^3YL{>M7F3iKO$u!3C%a_A6MPBEM@vg<3Er9>k_N(?o#4 zFTq`{rx+~hFL}%+a2il;O$}l-XChxv638DIP7dpdH*V`BJx13;^!|L@))LT{AEqRN_DV3L?q%DlQP@H=kZk;u58B({J9j zjl1Z*VqNpez=#QBg!Y9@RC!f1_Q}%}Mrk9+=}Mmf%vbq%dVeYd-8nA??BQ$7frDBH*vP`NBk8B=REz`_$?IH)y<%X&Ri@zJ=@@J#Aj zLp)w1PNTRwHTkSAX<8Srw*6g2p}OBOK3b9&UJEm0ljt^~8YaYE#8mjPVjH-07;ghb zz7QNE>ck)!owYiI&CF5ggEr&$3S}H`kx3V(Lbw#&GDj=k%s56HP&+$SmLXets|tPA zzPp|M(kzi0o0bYkcH8v5gXO!sEIrD2Kv*_uk(-xvpme$KACq!-wrYK){s5uF;fRcV z+qFFk);e*8NLx1uQpyJIA*2dp;acT9Sd0-1I8J81{s|-sKY2+VkdRn%h`9Ud`UXii zvSQj&0fA~4E<#71azQ>)Iy)m)q^RPGFiqs|7-9OZUJQ@~c{(~{{i=>;9G0Hs5$xLr zxI@()xBBM#%siixd`-bS)tdI&NGMUAy`r-Ib6~U0LIzWm;3!J$*kvxUVPT|x_W2w#PXWAPMwS-ov)X8(P5?w&oIxRTB!DewG(R!fBE`EXv4LSFbjM+!x+Mt z3z5xrGsw2mHSd~O|l!>wy>_z zprCvoP;iy$KXj>`ApCZ_kvZ-oShA32;e-)prI@DT8uL^>08YH{=PyL(6e^G+1%3zW zQ9ZKp2sp4l_y`09eCZKzX@2k#@caMLBj6&m3wf!03=Bx}%C4fIK@8lZnAi|iIKPniMgj||(!{ssdLES@&A z-_|e<4|Z}ntq(N1p_a3Dsng zGzT9*H!FAs+&?wi2yt!%Et;g3F_b9d^=rCj!r2g4#_)>@nCi|eiDu6wDFNyZnp=K} zTxd_g;IjCx%TpGEQv0*Ru_k6y~Uqs!gB_T`a9&2oP1&l+CJlz};F-$kAyrC1SzJEz`Rdi^_2%F4 z!~QypfV4dx6VTa9Qy3!Y8FYNJm-168&-V6t-2NZg^F85Uj$fr>RK zE;Vw)JL<3choohmL{>_ys--7}X$@+f8 z@t3CVHdJ4Ycmdc+Wt9UZ;fxu0QzG9_#Q^)j_C`H3LP+kz+e zRfThp+~fu!kw}{&g_)@`rZc!8<56C1mrE2jRjWmqu7nEywP&wan~TvTyh8la&^##f zGa|caw0`Lw5z*joZCFdE3(-)Rf9J6OLIk$K?K27^4HYI19}7~uKHi;=kC7C*X1g0e zOVE~`2TJ9N`;}xev;v9|tE~?;pG;#M1plgGvBJr_^tUW6kS-ZAbqYN0Cp-gj< zND65aC4OKR_CVUzh?$X+paf~?wi#X7AfFnAGE&y05!fi z2J1Ee>o(RYl-6)S)c_n7+yo}Cw9c&b3O9yO$d#~#ribZ#Jn#fgt~G9eG?83ecnCn8 zmQSXrlNb{=MwmL!O{5C6FSZNEa()-d{c>H?dtG}U=TZ3aQ6|NH>%_^a+Jt5=F>u(< z&6}!`^Ufd|w(mePMvUb)@>XMfXBXYfdDtMcIFxLcON3;&lzF{^adMi4Stz;kjKLQM zH;_WG(jNE8uhg+!F>73PrH|&PgcSCij2V*S6_lSY8K@vcW?Vga8h9JnZ&9;C^Wt1* zZh`k`D`^ns664}GV_2AyQB&@&K$-@UXr#b|EP;QVXSL7(Y&#zCVJudPspZvdeh$e{ z7a^k4BMIZGYHP_S!0aaG9sq&<=oBZN{63nu8^Vh5!jeR8R5=)M^0}c^cmtEgYbn>+ z7{|nO*&V9UA3n#vW}#}~@$zQ2p7+XYIBiMiMkQ%3_NKMv9Ae@~9(R#&m|N+5b|ejZx)Mf|M-+3yxM9K4!yGk5fFVQx4X96SlMgjVd$wjykQ&V! zK&`Ae>zt9IUnVq31D(#n?bOezVfj&!=(wp7EjjqUSAZbW7<*;bVCcWxQl#a;CE6`I z!0l0ol{w0s4b9v)0LgH2S?~ZgOrwl)93x0o2x?>@4sNUAWTUCh}9F#W_F!;1~O6!c)Qeu*1d92cu$VZTT z+a>ZA7~R62{F0h1cgB75{o1Um-xRtmJlb3)_j%HFfy4V(v%el6ok~@wD~ORtr&VZ( z+0=^F6;63*2!LANAj8m|jECkTTBr7Uq8iq8mz&*h?mzte^W6{HKTwkMUf?wsPux+W z@5taGan2*}a3m=p&h}mKQ)~kO0w{3eNVpPi2dbHVXzD(kfU66X$|OIJ5u2=tlsN7- z4vTY3cx}Oiv8lQ`Soi7rGI55Dg6ak}O-*G$Dkd@sfiyMQJm#`u?!ucKM#FMZ^z55mY8+pN3XOve9PlVf?iNHfy}(n2H97YhrU!{>;NfL4!1bj_ z7)4%w>lng^DUUHR;S6Q9ie0BnrE$?a`qbTfl}7mMuQkuX;NS`WcG1G{#7FQSX8QKcFL!_X@bRbdhtKa3 z`UIQ8$9sAIb$|sFBV8EUAaItNjkY+d7rL};G?8i(qRREvE=2?AZU%0L!? zYF9hD;^8IEd83CKz;?4er&*Lm80rA>U(lpL&aql^rRNZKMX<=-9kLhq9MLn=@m!+3 z(A-6`B+-{0^pO}2ZPDv<9BRwiAz8}uTDv?cco1JXdPT!d-2(PpNGlRTVxAo?}Y< z#Rg~DPV@|=ZAU`>7+>KDmq2NmxPDPW(EY{xsJ~|l3}~?+%4Yt)-{kL4j!l(91`emv z=oQ1ocmf;_j<{vQXNozip~#kVj&i=p)!ct!ub^Mi#g8Q4Bzt@1h;YtJFq;ZvE)}6I zpuW9io(EnxJ;JPINdzr>e+TB+(w+)8=s^I@%3_sLwz$QFB(wnP1v>gbPzO+JGM*Kq zHNVTcP3xMG87YM?HrJQTWRbW)|IT8!Qy<~Uhr9cN=YlQ?O6ASxBxd95u?3fYms z*B2P9n@pGmlMF<8#69}-W*LQEvq2xN6`*$rW@vllqHVrbAMSiGF|>jrk7g1`4#x~e z|LgaEe)Dm64|KCrIm?&O1eS-R_Fo0nF!QYA+aNHN4zE7vUB%PF)j4tBmSu$-)9473 zvW1FiyMYD+nTBA^NR_OqUy61^6<2yfcG}WmFSuX7)=cpDv?XA9o|ikSH#mdG&?;jt z#;}a7r#Ci3l;!9QefDBCL|x7FQx6giA)$wy26n2xRFA4m4$#nLW(>6lL6A34klN1s z;K(W$#tNh_qw^>x0RQ9NQoI>uVb0Fgt1x!@RgA9;W9)|^f-|a^c78t-VNA)wz?nHO zBer1!Sc|Qi*CE0Uh*n9MjaI!~NEwz^nP-bF&;aTSx%H6_XL?KKh zTLio1%vC5Y5rQ1tR5UTIOwE8b=ClFSJIiqt(ZE{DbQmnwIdLz-6N)tY*PHXIwjNYK zvCpo-Ra#PN>^k7>Wq=ntW+R9 z19Jqv8|=#2+xx4}Km8HO1AHRA8Qhm?w1K(Yz@*ArJY(x%PIv4jp!BdvaNll7aWdat z0CR0d;!-Fp3?V*&W-<0>ekGv@F9vgZ#k{UnJ1tX*UEL4<7H*U9`+|pf^?Z6x*tf%Q zPH%oXhaVcR5?2~k@XHHXKq0tcF!~*?S8>t7DH9~o)TwadmLGFZ;+REdv6QgvmWM&n zoDe~BFY1jo_8uoYfz+8eP?w`^DTX_G=vE#=(_p2bvT3qXmT99_R2kKz%$$9H@qIQ- zXX|Q+UPWQBsD<2r`5DqB@@ss4_f8g=q9k(vC3o?3OdH_F1jsCcW)CbVav39Icqz7vx(^iD zyh&A-`X=a8`JLiB*JC7I(SFLc4@yL7fHc(ltQnLs94(0hYYd}p&c0^aY3!yxfAKKG z8^EbJ-(h%LdPH}D?XYm&5pIU4D!+U?X=sVWr|ZuJD7m{>vI!ZhuFs@EF~+oP(kzR- zUCdXY4{$+2-UqAO+H96S73ZC1j=|sje-ea36yn?k&`{Epc@eL8kg-x% zd|m9f5~P_40#<(P|ayC|ANNbJyT`W$zlusHS9ImJ@G@3~V)hp}{M|G|9$qLIyj8 zGt*(%AxTq%s9~z$0)S;*ojpU0!YYuG^I8Ek5#+V$iO#jV=%w+(Ensn!!^P}UH%Js) zUSDnHdT6y$ESRfrVgdcd`5%Vlhtow@CRMp`8j%y1fg(h!3rdMF6uV@E1Y?Rf0WmjM zQcC2z-r*~+Oqu?yzGW&@$EPGu8N-#{9sxp*-RgQec%jHajiOa6r8lXHm|fqY)>j?+BC-4P?8 zQEZM1cVGaR31yAb0>aE@(fj4YyEpgD=J3^5zx&hJ>H~LoWru#K5B%A`*e9oj*+1rIk9f}M zBl%&f;fr6^KZ420GH4fTiunF80mj;3No1Kqul;ktG~Hi*h0n6bmvAoeNLY%S#=J6wlU)IdS8RNN3$ao1AQ?d-9u)c3fzm`B6dk zm1ZseMPNc#g(#4Yi_LUtI)=E=Gsw;a{|^OklmCBqYO2(gB%dr%`gIm1#R9>oi;qXT zQ`SWXWkU^H=E?=1>;U=(!l4KHhN@Wsw(E6QGt6vA%b1slr@^S!wSa2n1QK|z*`hnR zT-_@!*K}50sz!S7K3>Uay|q+)IAqTiwMzV#F^i2hG(ACesmbmZmIwvSx4wG=myI_+-pO8AH|{b+^ZMG^GYAdfQp6X~I;<-S;N3$;^+qMO4mnD(w7nqpqn zua$YXRNFUUx&cRdRf@VTGxyI|BxMmTDWe|~kpCRy%m6#ad z@(fDu4Js8W#`N@_f4ODNAsX@X71A47BWr>JZe1319P57-qtTDA8~g@(!!kb+xe zog1qJm1Ldy=`mWQRv`5ft*IS$POGo%?4YmZA!@EL$OSxWhM+c~d4l2`9k|LMU+cq2 zHaS-)w_OdSY}dmaW0ghkq%#!2LFz45ko#wIYiyzY)+;59;daVK`}d5V^XpzNqHZbI}e%Nk>!}Ba0;e_T`-93=wf1 zYhx6^nW%~nGWo@n#@U73HOQx4uW66VgQSsgH0yAqNV1J_%@Gyg;ibwJ7g5^ev~M7h zHLf+M5J9-(&13U1G6;Hi${=X(ltIuQN|j1BL3=1tn(d(&X|{(lq}d({kY;-yp06=G z19*YXh8~T`(lbGAunjg90jvN*UMg&Ez9+#|rgdav&eTuIARFoCY$D2g~Nbnno7-YY96o#duU5`!3xh>g`en1v z4nm0S^?-sxM7NVX7&&%DUOY)^KtZUcAUQ28Y@m;#)^(E>F2ok)tCJadWry?)cx~-p z3UEpv3W+a!7kg8L_1XEe?hni32$yLi$v9h<~7&8M4iGcxntpzSbk)x{d+` zm{WTDLZgoZ)i`~mZ=l-ClBd>;zRN`Y-6h;B=Qx#(iKGbvjJQ=DbJ@o0Vl`VcWdjjV z+0@eHoTys>g{y`497$K{O~-5h8Y&p*7_V=qW3Q(**-g*kffP6a8hE0Kqp?KNTj=O;1sj`<7ywbSc1;!GjEFBO44oxS5h?vUL~9_jv1<350h(yE0)W% z#yjYBAly8}5m`tfpXto3g?tlQ_@^Jci)ru>awFcS`-8wP)_wGj%uh=HyF@WMo}9>j zl=G?wyJKl862s$JD{!CGwZy=P;CCm=Lr>6AgY;fecS_$*{|DybTDAx~^+lHHYP$)& z5rx9obKF>aw%p%7ZQp+X7pI|{@y323jvw}V){sa%JE#h{_fTX}xFh|Q+ZAc2Y09q< z&XrKfY_3ug;N~f5RWcX2wZ8$>SDQJ13$Kyg&0^#HZ*e@e;ku3Uhvapr`Y=O|VrWpo zb{JawySh5)PN%3A#i76*C!|p4f>^%gZFNbCerO|u3mKGF+PLqR$G$v75 z5Mn|U7aSgXhg)?>D8E$vU2gNlBlwnqWG9HkuiJ39Q8%TB&mBefJI6t z~^R2Jhfo!FVM<2{?ed92PDO3~{jU zv{(laY$Ii0;tuEzRQQYfJ?Qu=ebhW%3%&+hL6aXDqxv4+pRYANae6D4v`+Xbe>PTT zUoS0ESX@AVuHlXy9E-g^;li^PE*uLNCQEEctUMxpmZX!ibdb07t;n2iBlm<-7@@ed z*IqC9wVhHOZTdQU2983gD8`X3Bres1A_ky98}iQPfiJluHCmeoRkNT4{q1-l^9K3S zxOz>8G%&O7p((0Y!fkp=FsGS?ZiJdAvM;A(cI$1?*+q}#R@mMyLpq)?Wj|6ujbFof zyh-*8JI>e--g9-I(l!BB)!*wHyKI|W_h{A3C&8d=hNP_ zyWR8$$b*A2c)RTd7`lt)3>Gg85M%wRZ zI-Ws9uX7bC{47vY)N=yMx$vH7Z!D&(N3X9y-C2DTn9)C}v})Ev<$DIRe=m#o;8F~l z?vc{cC)YKNuKuxVs?2^=>P3qarwP(((paEGZRv+bPVGLnk{=Pq3xs@INy^bEp||V~ z4pITT7`1S8IzdG87NQ>g{=Eg+o#5{`y*WAUrOv<=B)CP^w=dt-L>aI|8vKCh=cMA* z>?ITtFw_}{5R3?Q-AJWSCnWZWvywGTo1{WHppY>njaE}(05g!vdPT#-ztCZE4)^uW& zU37DU-n%L@9{?6is;n#cOqhhA5FBk0)Cx0wy>#7u^b#VJqK_xyN&5KR>uA$bBF+Y? zrIc;blK7BMg{FHBFOw~0IM>KjLYb!KB?!vq<@2^=3TIz~Xh1?US!%H2%2{Q1IQ{7W z>o%*vGwU|kawbcVY<9q9)mtx(&dyA$J+DD+zzs82vsF{XO|EsL?(cbuUZPXSb5kCo zxDO=&SA9rjBstbr14dsc!mm|EbPng~@kPIPf{fl|O$ry~;e$CE0QET`h4GU$pQ}7p zsm8+)4~j$eftq;Ox@L)FfE$(+wWErh{DMSNmqRo!h1}=K~XTzpVn|^vcmw~ z{=c4ziARh{Rcbb8L|O(M^yXi@SP(whmc{W+Yw-SB(-fqG>xmI|r-Rpc-wsy$$C8h!#Hu;R;%0 zyY!_;qrKWCAxXg%rPRPGXo0T8C1XvBGByRq0xlk~Tid8RrEet7bKP|Mi`USrMw`wP zpSdN3o?eL(i`}awU+L1txYL<787(Y8n{JC^*efVUYCdRtmwZ`5oP>H>8}N>E=)g`6 zkB^_jNYKyB2of|@+z4I>4CAtAU$cJO*9@v&Mt|e*PMJG{WTtjaGr6iY7JWTcirx6F z;Wfz2V6CXWg76F=?IW?Yd8F|n%zos;Diz%%IHLAjq;X{3%-3=xs+%cJ5hU&BXr;@(~2GOlX@h$2hG91Lf+)z>Wm3Gr*(48i36t z;>aCQ90wdmvSON1^~{vqXw-m&=$;doCP-Ham^Jbl5Kg8yd;(H+@`ge+RKqk{dm0|I zoHWg<7070bW8&mcfxf%JGGRTSbEpne4ZN$99#NfTpddkcl(q&*IAFKn99>LDlm20- z{^%!?HWJXkNQsUmb8e_^*Hm%abK6iYpfqsLs29+@b8nJZ!jX_fr%cAu%S5yj{=}IQ z&VnB1)k~PU4(jspF`DanH<=?tH4{3OfbGl-XR#%Ip`jc1m}=+2ZPCoK(XJ~qD-5AI zNt)R@m!4-)81DoWBctXv)V&NS$Y(6m0?CXax)4%e|+Q1l`jxu z0JJ$;xNK^Ph>k>YMWVqoppyE{VtFJ6_y}5f+ncigXEje8$PFg)=!sWK5B?0A&~Lz} zIj2Jz6<*NyJ@{_^i!nd=1!qpylZ5`|meEp(v`hW|@#)tGcm%_8dIx+?!M30)J;8Ak zp7G7T8`vZwZU)M{Trg$zIPQP?`QzP>xfXF8;0mD==|9nn-*a5PV~HfpC^BXI1C|g?k*ii{v*p z0M|~cF4h4>gFwoB%B&l-JLrzwu*m3Py-rLyXgn{>WPNaK$Z4l6ybW5_-A5El^k%+-pZ0olpf!6qY^!P(>~;wP}HnQ1vS+5Khjnh((OU`tH+*cc1Uyet5qp&m;&y zGeH_E8_us_N=fS=Lm@Zj+5RB;F0fQ%966Ml>*-=-98}q$*)*)uC_Kq$&GZL^NFB*N zy+^QCjQfUB#2GES(z8cQY2)S!XYjm96KVOfm^5*Y3|si<*WxaP574@s)x%J5pV_0U zo1QJ@6U{w{2CW$S3ZSmezTlXgV+q4BPY#iE6c}k`TA&p@B)?)kvX8Hn_i>5n=k z=tnT;hnRHpYAV}6j}tqtP#-c*HB-}uYmq20C~q4J1QanhWc1XIdPCy+;z9^0HV`I$ zvVl#v^ctp@#JMSU3uaz4_6|ao7F7`A@1`9J9-#QEe4i$OjhSo;F_A?H7-EWW6Q1LApCUk&YCnD0UP}n+~!73F^HVHX{u~x^$o>p`4daf!^m+`g!*< z%eli(%+0K5&_Zw*iQm{xPqcR^DbjtB9~7pjzhD(jq5bsV6gY^^Nu^yra?it_ z{;s%d^7a!o;g7j3krGc@h;j?!$}lb5ix76uV%a~*t*0V}+8RzdWB+ETmP;6v6|Gd5 zv__>TVW12;}Q=IQk%zqEYW)Wu!tLQ*@BF<&oA-EB#cP*0} znY=QWZ`S;hLTGphvlfZu%u$Cmnch&Jj}T$g>=Ve$52Y{IioRm*Ic45sYDu42#I3KL z4Xm5g(}r+_sJf}BKABkju3)!Fz#jeZJG}u^c!%0MqYWm86N?>(CbZzd%GXQeq%&@` zD{Pz6$Y`+%a|=&t$Y+$@dNre2mtLxPP$!@*Jyyl8w4r&|n})P--Q@YDx-8CX$RSLG zW(wD$v-1|Sxr9p_mBda5YMwJ~T=2SLb8xaRui;gRjSESwlyh1&Jgh%f8aSmnt+*W_ z4f5$H>5Nn)SZJw#YL2?R`u01Oo`k3cW`d6{6qrzj4Z9SZ(VkFXoFjX2R_Aj*7yukO z<3W+r$@f7EthMkXtdZ5}B#y9@7VP8+BPu|2Xpz`#$t~imwMVFQkLlLbC8yz1gVdFW zGZ^43nHt+{PvP&7il4mu@czf1{()#N4Xm;tlksk<)5&cWKz%0Xx}-U!3bYB+4P2Nq zzeDj`B}zi~gnq3&aPsYk`iT#Yi00j3H-zwZy;?2T$P>lIP+mF|;FG1*0{2s@!+>cl z79&{&!}ao%<54&^c`Sxx!;NZ|alD^gAd!`g;FzXs#JTe5*lh=_HH=c4N$4Z%B@p_N zjgAh1>3oE{fo(44vr>rcJpkj!B3RRObzSqNoJW{1E0Yx+AwCzA-jiN$46X|uIeQ`x z@@92j!LFwR72K# zed#Wi6+D1m%C<`9^Xms!syERfZ6nsNfJ!|~2)xvs=!uXgG{q6)z3XK)!?ENTsK z<|$Rq@VBIEy#`WoU`6Y34Tu@sJO_4pyxS3&rnN{~%CB-vgw~Cma#_P0JeNv)<7`C= zN#`im=SVq#?8V`v9M=g^kaG%$CmyRmkgjz!!xt*09jki?3na~D$*WV?E5W*HvAQ;O z!5YpOkVQ5<*d1(`*-UWwfSEw#WIVcp0g9WH@*9%sga52G2qd6<*Lnn?G-3T>hlbI6b2@1LWYr%IP=gF{7(6d(S^V#LrnoUve7X8}lbR;D@!J`_io~ zkg9e48b++q0=o;Wa+El;PTziq4(r7#)fBYL9sVdz7^TkqX$`=x|DSsR(X$S-` zO)~io*5^aM-o@rczt_0d_TWS2;J>js*7ZXa3KPzPa^9RxmXS;-T{}ep;z1o!ocRSm z(1N*ySEh*JW4J9{IyZ5z>QGQ-vN2Q{^XR;M0Yjh1a^NUb6XGM-hy$_atNo}|CA_+$ zpWtwPWUW$HRjHaJ-=!7BoBUkIttQ!s3m1^oJzv(O~EEYX)MXj74CDrILL( zC@;iIm=eeM35b7)=t0E8{ndx}tf|$QAo+FG9W+7Qttg}mrg%hJ=N`pHgVu`&1w~G? z0&gd0k&cH7Qaf0v+1_KCc97mjUL?w&A0e5H7b1e%aYp zi&C)X^Y~O36Ix)sn35c8Kr$pmt_pFX5ABAOHs?W4ls+B_AQ0}hTF z&QTTP>t9WQqu?RHKr|Tfg2;Bl>8B0`3RY37=wMSjdwt-gPmndJE`nlUy7jmxK_?j1 zxX>Y;{bMp-NcfK85kbJi2iY8Jiw>H&7|nYX~C*tlD`-81oBx=6c>BCw8F zSvBx8z0?>vB73`!-irhamzNftjld+vX8$t??IlyAf#DpF){|YcC|_6!svcc-JK6Ls zhv5no&>3?~4E%3q5lA9+{U2T;eIh-kC7m*sF13htV+%5jvq$68$k>%oeN<6*Q!%Kr zZ31&Zn2NnoAV~{WT1+BDK>HQwr1{^Qfe0ftm`1`)%wqwZ2CgkUPZXMsQgxR4jT)i{ zNS6#Igy=QeCW_J$fmlij`}UIZn9&HMX;tQky2d=!HxSYqhJQ^!0QXx5hpXqA)xEs zdraMKb1}K~Fbpew7ma#{u~k?)#G4>;f9*YUgL?TkN^x5K6FvkV;hylMP0KNDOf|J) z)$8TBKbuN3molPUUcJCph0PETcwVaJE?3++M%8??f!l8;1GPOrsF-Yowc5SRsN+XE zkDlawF~lsplm}M$h?F*cI|p8UyEo|DwRS0OQI#iR(;tF20&}-z?nH)5IiqI|UNpcR z^F`XK9;*mR?}23cwBMT3B#wmAl3|97l3l;LuH5$;pp2C{h3QdsgTAW->XyVEsPt@U z3GoKa2|oz4n-q0QOQDh{}i3}+ap3C4tIt*}&K^{;jJu&R;HL9B%67B=zm?wwBvyY-I!p?R`3Zk>HxHf$j z+*fhJP#orihhp~ACg0LGX3_nn!LU~{ns~hg z(|2R_s%RPv1GQbars#}md|CKh+fI{LdQ-Jhfowvl!ponGU+!4MUFRtqbPV%dI0l@H z3RZH+G2pDnDTNt;Vca_)0cx`;X$vDdO*5-Pl*p3sg7;6su=S*(vEMs!O0kuREJ9l|f0hpZhTAr5wN97z8$&eq>ybaW}iw=%Lk$X$NUv@W9i_LH`WH zZz5rMQTalYCMjqk%FCQX{M+xqP4xcLvNMpeh=+h5l^VB35WP0Uu#}3zN5h?s!Yx#x zAs&0W+3XIOWp(=N{p{`CyC1%pf7+lB+#Nj<@O%8``#;C;v(JC})7?h`xCC#E6nBZ#b&uEW&6ekDoNv>OswMyU7Wwoq{TmOMAs!%I?v zUNdiq#kCcO8;VwxjAIQEu89go^&hY8kuF8^Oxba?yIpnpERkg(L=WTh5$J|6+e?t{ zrli`0>K13)sI@i=q`NLknk(@bPP_lXTnWjw@!Riy4BIQIzQ~u!fO^osG&-+;eYm#= zB`HA-Gt7w8F#QZYT*}z}7Es?I7Mqd38&s8~a;Bp7O{i{xa7p^5n0pb`hjI#5!O*x3 zVdQ>VNJQK)s?6W%YK9hAFXbEQmqAwxP)Sb~A&(3;lPsj>AUMV#fY-Q2QUIo~_FON1 zN^thkC3!BbP}A!AXZ}0+@Yna|4h7Q1LuWmj%vt?pAjc_=#avP(#)*K+d4meBh%;EE zlgb1CNd5|_zKXo0Jop%AA4#h0caUXIQWXg`+$YhTc)|h=f)5=Ww4W`>7>Hc}(@a_t z1Lt?h1wk1$g9fo%d~AZAOvW#SX80tq6VQB0-_&Y#x-Sd|v)Ca+m-_-#rrIS@LW1Of z*!%kTz5j~y1&)PRQ~I_)xw)jpWOUx6IV&#wwPbQNzu6$YSIj^{)Jlnf`zT_tt#EQ^ zPj3sZ85Z$uD9Y$hM$K@M_`TIbHv|2X#R%K?0N1tk0n{Du(J}LOVBUN7h7J7(sMr| zjDy2UguxFUFp09$PZz7r^lAfNJ9w(#0n{~RN92FRkq#RKGU7fv9-$}^4!}~lhyuzk zU053bI3h#k?kuhnEpU#fzudjQ-+cJ|@%y{o_0K=NxxbSFymTx=!3n7T(yQoR`z*;Z zy3*$fiLbU8Fn{UX&7!Ad+#s1a!H~4c^{?F4PO8ln4bg;NRWv)d5l^t~>V{O(vE2;c zf}q41NJ-F@hh2~Ayl3EEb${=D!{2z{(Qmx(_&44cUW0${_dWZK?>kNRrB#;*s$B9| zVf{@Do34Cq*wxzLkaH25;Nq@Uzsu-(q8t?`yIfHB8;j z<>=W%DsYmBb_cm;$&G!!-OOYIO;_4hWb3xHfP&eS5aiX!%61Jp}@Bdvhy#EZV6sdu2fS4v<9|BgNs z$NB^I6W(Yx^j5o;i!>GgAK)M8YEYicY%Y;ZT=~5%BKr0ki;92jqeuoV8UnsT?Yx8*2w87+t|hN5b8Q3(ZC2o9FONs^45f^je}y?Tw>NNxeoqb+J%4uceApizot_Ma{o`kM|1>;2oec-S+HmM+F@>*YDPU?e0nk(JNQF>w z_kTa%eY!utdk^9N{=-Lbab(G;?#iGBV+LTyjn1Uu=Az1jPnI-}u9pB4!+cOGVl*7U zy{#0!6;DN_7z1IXsya%V7FEW;gwMwiszxXp^4i_j#CXU<(YJB~ZmbMh0Vt06?+GSH zOl)pLlUpoB^f{R%Vy0)a2r!i z_m68kh}DyWRm^u=7(NEvg)5w$*k(9piG_Z z8aU4i#`A&v5uK9?xVzoBarmT?|Hg>KlB7#L&;=Tuu+Tk#^c9BPXi(Z5v+#=#Q{LMR zH@0aXCOs1P2RdjVMg9+sM2mNOy+V#rx3hz~g5^Kuz$C*M3O1pd>BtFn2*R=0{qb-2 zci(^b{Qh1Wd4P;V{#}^y-3Eqz1YyQtcl{&UK{lq$#(|Ek<&qu!eCK5fR5YlE6~Jdo zb+iVlfO;OkD$Unno-cTkc4!p3E8_@3Q^_Rdbe?2K&I((Wt5#8 zI}zD6svU>zdcEV7UX(PW+s*Q3zuwfLdeI&at#vUnIy*t89drG>y# z(m_eTxq-*#4#*ioGr>Kj2nj4F_Q=B(G0{2Fi9~PZ*F^gRRbeddp?O1pU)`DhGiZM7 zpu<XPajOVkaSyLPzw$@fKbw`++*J}5w-#P#X@KD#GXNtSl5!k2q zHD?V^Ji7*2yqsR0L-9F~*C22c733`M1Wnu3+z$`!ICY=Dp+b^P`G)i&MIk}^d@^Vo zRI=B{`i1b^_QK?B3#z{P!)+!NP7Hy^kVD8MGb4$Iy@PEDY@y$n>Ubc+5i@~^AmT4y z1AY)L1u$CZrMRN~!V(Vhb3cFlbbopG{>S@2@A}WSAK$$H1Z&(Uakh=w0GLjcoDO1H zwy!`7Vs@6Uh?(3i468|VlWu|%r08bnI1napALJs}N0D~MI+X*Dad!?oMjd32IkR{U z!$k&m3&?srg6#wrZ}tZQsHH|Km?+UM7q^3N4`20H!#--V=U>U?gw!-A0A>bZdnRSL zi!IDE&IU-Ig!lt|$8>k}?12mgex%N@wBw8IeCCI0$baYS<@IWOacmAFNiPcoEyR*)rU7{-%@Kh_M@>xVbx@n8! z;2r1qB{XccY7<2NFpRTfI6kaoWDq z`XC_oL#h&j$?u_piF=nG}R&1JGV81tmQKqLJ}40j-$B zG#5Td5Nxsiw?ULjcS@qU+)92I_747eFgQMZHatB(#h<}p|LE@9klzdUyp(j&Q#PRj zfdn>q%k3^d{B`x=uXi6kqrvL#uyNC0cJo2u@#!>(g3Jhp4G$V4((|OeC`B%Vkhr**>*KzpkpZq@r8$q}%(z*`t z+up<%X`%lsh8BBSRr#m>Iikghxn&<;Zt?XPyDm$Ej~P$7sl zp_*C^bjFN~4A>a5d+4}oka~yx3|SB8Mx4G{SNLp83qY6F8`!v9U#Y0@a~`WGz+jqv z1p6j2Ss_VocwWEC;&a`uIit=S&mK=vF2|+<_ynq!WT@cksKbi%f?Z|NJw2g7`Y^+O z5>t(<;o}bNIs?0*=E$`x6_j1rYVDf0TdXPdJVtOKl*0u=iVjFp&I>WC4vPaerDZKr z2HF~_Tst!c4c`lx%%P})*U|>h zB*4wwY#-g6!%9Gt`Zp~Y9`tH=(}bv%PZ5A+MBQ{8x&0eYA|gn=#dcm`z!92lT=u~M zh$J%@K4rn`Y8d(Er@epVlytohi46Z2X4r|~WPT2%_a${xm$X~AUdbn^R1NCKeA_GE zUA>yK6ElD}sm}Ct)$Kcb_B%IC1Mz|^FFvxl;2wVR$CrU z`c@l+nk!WU10ZXtbHG~jR0@KFRD{$6yMlnUkj_;63k~r|hm-cLwygs4txlN!wE}`g zgNADK9LgjZ9}nQR&aKdm?;kJ$VLXZP!(EJ)=3$N+q zf;|r6fSIT`51uj%{iH05zl+K*hyBxIn7J> zqwCU9pluhz@&DTlO2cFk;IT&>uqrt6(ATDPzdTiW^UY#iN`Q8H*WK8^Y2Q8gRPj?@i8;jkxj5|?i($fQSsJb7@vpy%}C7Y^6Y_}<_6VbnTdmY z&)g<}Jk#B&BybD9+_)8_y9?tkHz6qFj4b?Tj@=I<3)O(rRc4o6t1`pjo`{)Wz(58C zLt*eIX&uIHnBOjuC2BlhVBxRMF#pl+G`DK_S{!5afZioSQ^W;JP9rd)7m#oic0NE7@EsE=f+LoGdfDkP%_QJ*S6I%m*Q$ zuZ0&sgt16hqJ-3tdno?Jbs2~crxU)WmD4Np*c<`z9Z$P*K3MveZ3}`!S|ExxxVPkF9Zeqb%AJKGjyI(m&aF(zzT#yw<^0-TtM}JuE~wE zQ*m5&=&Wa6cIYf@UUoQgZDEW|+p6qv{G|?^I%zxsI_&$3 z)M4LOqz)(0hjM=gxxpdzKp-6aKV5^sGMI`^lu^9d7^D{MP|&c*oA$b;mco@22BJFi zLqIz?czlvI_J%xBD01;ND`1|h*!;*3Ew2N$;V7*ar4st118&(;vX8l^#p1=3^v8o+2P2D*Xt9LMAMFUXBTjs@P?V_8&GJXOuo1 zNO6E#FVG{LLF~Zchhsv)Pf1^xuKpDn<)D?k#&k-slg}N01>q$fCx*a^3|qlVXiVUg z43b*-NM(>s7|o}n$;}LTr77}kZb!5!TcNB(j3dAVE$Tk$yn9&WAmH^7*|vv$@xt`+=ON*gJP&ue?MA^~s>t z>0)$)b)p7_M<(lqAPIpj+yIqNMpM+$<6cJe1w@4L8sb>K#{4m(3N~6pCDhA&Qg;X3 zd5ui~w~%m;Iq5Q;_v;ipn!JWH{=kGHB5JeFvZhfsOmkGkOCjP84#hG+HA$9{<~wCzXzV8zf6t))z>Swd+i~gI5uW zQ|1y&;n%>A69ATX5Y%A%2fBArs@{S55Z*z-Xi#tUv@R&l46)Saw(DIZgtZ4@`y z!QWxL**xU$Ah6~x^C`F28`uwcMAJD9S6V_HeDpMgvznV)X&@xRz{q&nKm(oylJR)yOMk-|4PFMOy zU;zpgS-K6TwMkBwekix$`VbHwXrRD4LIn26xw^@yLFh%85@8N%b#8JeB|v0Abb?@d z85Sv`OBB|V4Mq?siU|<=J~aSOa+>MUr@y@)zx&JlJwK^X5q9;^@JSB9ppmjma|o6~ z#wLm8q;o)4xHvtKqX|@jmUa(@@GIShX4hOMuB=)2s^;Nbcgfc(>uOOUg2YF{ZxgTr zTY&^B$%)Hc-3tQ1-A0SoxSvZJ>q4vE*kY;BUfy;6BOLdklLOOCZN&^>`|yq5L2=`% zbh6Oh`gP9m14{L*4BGqXJa1Q-9Bu*^_*lp}9TAc;2Ex#R{?*3qWs=*1 zc`Z2D3D)Zt(?;(c*$@QN3I>BijPlrjcdEA7fB98asYy<(o|f4Ti$QP~QEBzF$@ zWq!^cUr_7t-|h<wM-g7eY3b-^X6f33o%x3*Jt(+Q8rGFLn*NP_Cvq+fJ5JCd7rHc79m$ z%Iy@j)a&E31=hr9vT;~*;KbcHuiK|N5!;|(cFA0cf}!r^)|oBpzIbWFyqr#vE_jRF zxwj~kSvg^m-Fq36SiCAF4hM)fN zHQ0LNBY`xp9`Zvrs0K$4pO!WyO-Mfg0$+l6ICr>@u5oHBn0c@O|6n(rtHsWYdZe~`-gBlfBgnv(3yUO11VTCcJ`Wtauw#rkgE-Da?e|^ky1|FrxIaFQ#i2 zO0l8R&LW1#?#v|!3GjfR8ZH_@ZpwXJEE!tapsB8o(9zWuB`r1|DM|&_P%`qQ@cF71QUgv2AuzVEtE3e8wvPE7%e8pgX(Y;C}i0xCMa_+O{C2>JtCdU zmLQGgs8Fq_%30P(VfJsm#yzmse}lOAZ-6HJOBaACFl71rq}tCdpfJV`a)h!?#urx28{3r^ngNs(Mijub)ME7V^0r{w z2vqOV`5&{2zgnBR$>z49OtmaI_$(*RsU0gWpfVQwNT27yf3#QL%7Bmq>j=-l#9eU7_FRJab&OhIX7b6cQgPPe%zqi zD?RS|y~YvL&suuacS_mK>^B!wqCHjhrk}v{4zLOJ=YpOqTyyrZQ>=zX^|eV()T2nbVtT zkN-{O`eL0;&nKrIRimoWl#E%1X*Ka0t_}7$5fZx>{`W*RXftGTGXJ)G0Y=38C-anU zk`H7uQl&_~c*d7+Gc^AVH+mtb-*BhBGTk3!Mk)!KqD)6I#6~mvQ|TCe2H_GIH;+A2T@a-#~*=U8)Cn z3M?H~+SeExnxyP{=GuB3V&E$$2o%Lzdj~17DUo7`GlIw>QA7ura0X>{8I|f83Y76$ z1sQi$;SA4&?NLQatHYE#n}6qcIYln@iX9~cpKowYiPp%Bn$2*N3Z%{^6|?lj`V9PZ zy-gZG-9V%-JXgyC(!T0d_-2L&WwHdtD6T&K@YByoc5mCfzi&J>mvE*bXQptDq;t=HhzGj7WZLHCly~n&l8z zEr7+DkP4z_BcKB)OvB!KEd2FCMcB89hG)G`v1i;DjFDB1EbSRx>2<-n!yW;JAD#-{ zojjh7ICpC@-DI&t8$gYPgw;Gpk$`bi8EG0IbuTd3(@N>x++NN}K(xGKsdI4l?&jC8e5qMvBK(8e#q#w(?=L;d)7M zFf=T8FE3aa2kHiieGGMw3s)_N!d*Ty1WhL?XBj&9nGo?42Vx2U^TU!1ipS=HDA;gV zZ1aVw`H%G_8%jp@X3b)iS(|meXI?v0B zID=FZ5d5GL)=4p&GwWaCs}U;+7Eg*6yA=K>l859ZuL>oOFeA#UP}J@?N8LXLvzbua zX-t!C3D7)^7I$ZEK_Ty11D-;gjh<_wi=7lhW?q(>)6FWPUg`jyzB#FvemQtC& zwfLd$n$jfh>S$7JVk%yq_|jdf39v`n&v3I@BY)9SN!%9G$^3djbqy8wIAeB)+>NkL zgB_n=@#A`*?x6zszW4V1ySMM}s*fB^K)cdc>dN#LN&7|1?-4h-kusWQ#G-g;=)m~R zxY9?1Pfrs|-W;=z@*VVjvgG)UrmuVdWx>|4^8k5~n2z#x5p`W%uaE~o^0>vOKu&}L z>Fck7dJGq--u1OP15}UIUFv0NRGbz6`))PoqTh5Y=MFK2HsIEHQ_%UoPySbaXa2~m zGsGhf2cMPjU(GTNvg$EL=P~S>di4AU^?V9tng|~}V7RPnQz8^Dhst_^gLBC341dQW z!kDeTZwoa7ybR#~8>c^m=&VJ^Kui~6!i!{F1=iINkt#AEo}(Hm*;K}Yb??XnKwBj! zcN!hm4-E~I<=OBsT^b@n^1w|XVPL-}qX~=vWTWaP^^8ay*aj|OjP|%3T?xM1Ew|?v zo9j!`_vCn7pKhF05_|N7XoAvWU45Nu>6A8+*;PMZDnh_uEd;9MG?&Ho9UdV;Tpw>|K5oQ#TkYHD<1D3;XfVFP&4|)FJ%wW+RWsekxK5ysrYdeV3~*Vq@$ z5n$qj4Gd^NO-{nextwp3qqU#o7^oNqfzlqpiE}oXH%+By!he{`0R`-S zeHKYS{O{$ZEMbbYU;&FF*|9E#-hS>ugC_qOF~~#mMo_`R>*=7WEwE&2*5eWCQapE` zwv^1toMsA~vT*1?aJeVL^ZDt5>)T6K-7RQ%iu3I{U&rvtwb zO;tNRx)F*Znnel+VoO)s@Q|*$OOcdH^JuH9D6E$!<9&D)O(b)v#=Gj1c#WtaN@@Db?zkoKR;Mkd+H*cPIA1<+UcpfHSV)Ui{QrKH+^`%xMy zNk2q`|5j&y#qYoBpIy(e%sZqh#xE1TeNAHT?C)r3fefN7M0Sqc>X2P*MO`Dt?4l)1 zHzXOUp%$uwzxH*~6Jldxf82l$=*A*wjA-j1b>EG)z*zXWoAQMxreq=W_B^}ZAUpD_ zWWXIjaOV0cR$j7?TSUzHKG(+p&!v8fA%PkR#<@hN)<~UP)K=7`h;J6jHLa~`5 zmkSyu#xJi?Lm4%C5*iJv=nx3FsSH{(Y9vu8+K~!dCyk#tWKb<6{nCm`K+1Y&r}h|5 zQ{G-|&SrC%a6pUZ+k|eX5v`b1I}%o-I+lANaw#D7$z=-%MY@~0&ZvgKF2JZbmo-7H zVYVBxLptfcj3g?bj$&oo9W*)DQ?WuK{#{U7fJl_jMq4bj%NH=Q zbajv8!zHUP_cxq|M3eWB)NeSgo6KRyE(!@K+38vWQP%HlHmGtR+8ti_)_uvgZq-r~ z#GPeFII780EN@)vi4?d%Ij2_^&SyUbX>L7Hnrbg%ou5$QfSahu0ga;AUax)|E)1ZS z7b@K8QZ9COHT6p;VR))&);xlQa)ZX_$C-i$ET{2GsbMqBWTpO1jI{#aFokwvg2W}7ca+^6 zjX^K{? zM11NLN9SUNT(H(MnQl#U(gSUl+u|2{>X?(DczcaJ#TbFr?6whP{dCLZc0%=IrNVA^ zN!ZTND^on#(aqnse>wo^F48UPP;cQWrrt%vmBc*>uh7i{%`CqRnQz2|%8`UYrFm;( zwobJ7?fk&e@WY4Re_-!_xl~WL9}XY*V6~nv-1b1ho(|ggtcxHj6i&2{oLCe=<@~jT zkOC|$%M(MhBzY9%UJzr9nK_WFIsBR}(PBGPlHI{3GNps>H+aX7`zvVs{N>L1x4`Ag zp>dP&1`KENI_7b}D;o;Zwu%>w1aVupO3yh$Z4(fr8^k*>X_0@L^mzhM7hS(Y8HifC z%46vZ~RFF29q7bT!S@Uot-Fe{A@9X zZzqx|AWT5jq9Mtky2S*(;ipK(=0KK>E&$p+ltNX_8Y!S8VA@eso-2TO3Mayl6?g-z za6gGNI$v0ba2Qm16o*vC4{VAOO_;EOIAU4f=~IhwPLcK5r@>@6G+bgUBPe=-6m&em z+gjK*Q08^1p;3n@6LlTi*qijIfw6Y_ANDbDM@C+cc?8$_0e)!?-hr!~*`?sh!BxNpuQ1y0! zjiBSpRyUJo9UMLqb}$3k+~a^?s?Fy~VlY4U5c*}IHn{q80rBD2*l~tB*{g{2A#6G_ zs$iKe5WKF1^X#{C7xL=Va#A=#Wp!j7C_`Ht zAPuaDm{MIZsIgy6%}IdrnUMlc2D8|bS%**Iax?+K1G5I7Nz1#J+G#m!R|?KGP)E=# zAj2r6-SU=ZvEVsy=AW7G`oj;My;HH^U=gXvg6^~>M1+e&K=sML(nASp1Dxo)mNi<{ zMP%A@CwJCGN-%Xt&S-`GSnQgFERZ0Slk5dVbxVE!OU-SnWC+tS3|AxbkjOAS-C|lx z4N04jaKm==aLGeCPiB{`0yM_QWvE`~-1DiOueB-!iD-#LkOTS=KR{bDDF{&x?IfN9 z9k7_>@p!Pb%-3RHa!`M=J zws!kS8)Mm&=lKvbkl|G4M6lk}c#HTDBqCprS1(MEVwEEvrYKkmRpAJ3)zV_;OHEH< z8(ds<7a|8eBuL*#GP}azC>NcacFHdGz5wy-3g z83!Dwr)z)X?3C~L(9Ju_rE!K#aA@8QbCswwlzDyuv5XT!Ue`?`bW+p_oZxBTL^_m- z9v>sSsPo5%huM-Mq;$CMY5Ty{M6M0jZPX|-=oG7iH0$vrMwtvz-QDyA+X%v;8|E}3 zV`)hj$%BA9zl9Hof`#Q2@a=a9*zE9ZfvOckAg6k$`r=f1o8zS-Jb2?Gg~k*y!hbc*Yk{P z2G^jz)gvfD=7sLiQumcrT&3o{Lk^UP?h`EG2X)lUIb>gnpl6>`7%_+xQF6M;9>vb? z*`#{3anVf^A|_Be0)^NPUE$xS#y^#xP^k`|YPt5u$?9Pp4BOyw4aVZ^?fuo~pZ<9F zQHPPY;rRB5*@E?#q%)+LV+RF{GEZ4n0ww|;i3|EO?#R9SOHTO`*GrHQNA$BB2CP~G z=`K%1>iG%Vc&e5dWXR^e4cBdE z9s+vY%r56GrmP8d{Eg3)|4R2!+RNuHX_5P{xD!Kt>Usn`Yg25tC=EeheMo+~(mvI0 z2O9@swHS7$=gB~gP-xgk>Hu3fuyzXX5HK8Yw%TYx~2J_7BuRgrr+<*94Fz5|+w6_uk zlB9;L*U>|7%a~&CrTqQhr9{&ce}fh+-}itT&CgI(u=Q->9<1iRqDD5TEyM&RuM_0W zm~3vy4r_-N?5w1T47RoCu3T;RD)Fh@h|MJ2E@Z7|IK^6@t5n_+)pcsx(1!cMP;d9J zQ`DXw+)cnh(5l7q3WAAt(1)LX`tZJV{VO}U3!r2>a;F#pO|cm{Fi4PVSfY{@&XA;w zYY$^e)0WL=7}xG@ZSEUE`{cl#4OO(;m0*SOx=5r2miUC4b66seE4g2Y88 z2b?gL>@T32wx)&NYNU4YFQOHg>#AdZzT7muI*k}PlaE)bEF_yblga5-S!$$pFA zSJw?JS;Ui}h}MwMQuVfY98UA~(pzCZ4|q`K?groj%$?m8j&Je{(CIgWC~?}NN2iD!xfbQ?Hyl9lEgt7jdbkkod0 zEHp)i&QiyAU&N(r@VCp!jaa|UA!W1=zWdIfgAbXPk>=Z17dI#D-7*%iZSn2+NY>H@ zyYoTDC;%z4(5j7`OIz4;zBj{rKh={<**lgu2eV|=^3rbzR6FER7zf91_xtN}>qZ8t znyI!mNIkJZDwM2Grm3c=blVksJ-8o~+Hv8?RRoy=S0mP9OKvOH6ZSf@Jf85|B==mB0JzkbC+kUaOG0Gf(0M*KWZyi+iH`gjA;>rn z?Obvd*q~5dRaB>u2Z(Z=O$ zjZfm*zNs(ducjU^c38wNu7(6uK~Vw^Af{1UJJl|+Qr?pnC}4eJ@>2%}M%fA4@7AdM zBhch73Y&@NZR3Kglx+3GQa3X>$RO&^JH+Ylka830ITe@l$U%R5gF1?gZ%!L+&sAFF z#xA8_xn?58^U~?}VH+o0FNy4B!_UaVu)qIorm(ZjuYblC6O2Gb8G&ak(NPnAqL#SC zFv**cT+kv&O{xOpcw+Vq3F?aAS>CVdp6Uj5IxU3|{^}0PFW3Z|~$ zX+;Cl90b)H0-D7ph4)LH%{)oj^dL`5`fKDSk&EZYmwPUb+Fa-Q4|`cu(Sa3!rv~{3 zgrn`aM-g2`pC^(G4$*-9zQT8k*ONm$Q7;7eT1;Z2%=6jH3I~g4CF+l4l4q-hDO+W6 zq?Xzna|OOV)lzi&O~Qc1p{x8o3Pn@NMLs>mcXJX-(d}S0U!`uf{<;2Y7eVB?nOyK- zC>3>hrB>8}Tfsf31GmQv(*(E)Per$%8ZzO=fg@ydt1O;qob4L9^~foUSipf+DlkxY zHo1lTy}S#-U?H<`Fln_YXcv~yDnWH$*Xfy;MF(>#vvB{#qfXzDGK`%s6ppL!H9gYd zE)B8Kj%jg%sBy{?Ke+Aoqk}=ZRNZw_qvAUzV&JyrQDd8kKZ6jAUTZz8LO- zv<}Z|+!HZFAD&z+@1*BmtbT8$G#digDlurRc=gF0#Vqc3K^dm`TO+)Pp`cg7S{Yt- zCGIt$J1w5mW8(It#P~qmZkJyvbh`BV7A4DljRqib)~fSmZ?y`m^g=4nbt zc(429p72vz^##!-V^kE_saJk0htIb3le3k@wtCUbNu-C^U89M?&cshY$Mdw}t3b{(K-)n1<0g6?!a*1a7mx z%w<)zW6s`(zl1_g4lRx!JUdpC+_ zNpH-}?5Qz~Ai|Dv=px800z=eQ$FweSeqnNrL#H1q9!Cf9~2zH zS|rjeoxZ{QP%7?_4zanO?@Pl197lE+Gq`p^n9a$b18CtMXglmfGV;A+8qlPW%}~O{ z7d5pi2M4M2;rcDyv5+3g2aBTl&uva8%ozO(D{iwyfEY<8ZE z^;}fYdp}r1o^+5RyoKpc4HKD~tK;ge7UXfdk7fMs!g!za|b%{`A@{e z_fLLeo#W!mevXTOc#i+HC)PRcj^?=g56|(R_QX2Jz0n-^{^2?P)1Fx8xIdcX{y#j& zsV6o7|2VZ`p=Gfer*r>m)GY1{+{t;oy}<}{wC$r=+C9*`In@`hPF^0|E>DlHPMpLP z!t6lTHhys{i$x{^NEfW)*piwXX{{xFx$4n{6f2EP61Hp!E9A9lFN|3n~SG5`q8ZG!+~1pI3?@}rD__QB3>*OVe+@1Q?&3S>khi3h{qnR zJ9|Myq)En$LjTHr-n3(Aqp6|(FC{3Z`@lmg3$zpKaY|&}+bAt~N`A79B!zPc_cD|q z!N|m=QT4d#xAGW{d`;sns@bB%f#t3WD^u~_oNrCY4$f%$k3~(IA^mpLKo#-bRUMC> z11%e$M0?cfotLdrYE$^S^i{4`vDd*ezr=;JMicwOy{wEv^l$DCC6_40Qc={?6fIhi z=HlO?PJ3GLcXn2*&OFEVrVu(Epk}vga{@SIqClc5jeZE+;LeBKfH?R|e_V2urtM+Y z4G^E4IZm@bIPh?)J0_`FiMf;r9d?^^8)$s}W&^KMWIOx{ngKonSC|OuWL)8RL;0y< zQ@0UbWshm>owtfWgyPoj-c~z0G#`!>v&GfXkt53MmA9p}n00JZGg-4mjkPB?&f=Jv z5XEm=pR)k2l5>)NFEZDccuUldO`G3dBsdwpvVfmdD1)T0szUIZ8Z6Ml#x3u`VoeKrQ(HGY@$Co!a88KnisJN$`*l6Hq_*UGLLFOJu z8WT9<;o{yG-nQ2SZ>wVPC5LzR)BCqSyaz@)CD(tv{_f9jzW?>?^}Dx!eE;VANAo7C zP#8tF2K~jPg?~6?Y z=gZpb=Ql*CY;~f1=G_Nx-h24w{ReM; z{P4|BAbC1us;+~X@#5zBt`A*v?X`~MZzb}Q0`F~3o>7;Vm$RvDTNJ&*>1~u)D?N5E5=VmBRvub8>h^uEN=%>_r zz5Wx`v`Vf-QF%3P+Ey)$NstR0>kxU4eg za2ra&S|q*JfwLRdC0|tl$#nFPK6}(#b$*KfdKw2^=RBEMA^QtLb2FMtORf2wt(f!j zc6qi++%V*>hCJ#~jX6*2&;QXK;L&17?U&DOo-QszPD@m)v@*ff&QLupFAag_nu=kt zob#5Ws(oHbF#*`QQBV?J*SRYyjX;4K$krVcH$GkLg%=#@1e#giQS5x7WorkNErTZN z=*arn8p}Mi_IR){u_GN1%)>^->*CTk>Zn9in3~VP=aYwEywODEZO*eJvah|U$5mNb z);MkY9({3P9;Ac`_TflB%Xj8l-ZyHPKPI|^Bb)=V^e4J)usAQRy}pH2sM?DC2SIum zmLQ$L^VD`NmJW1+z0&RuT?&|cD!{X^T5sx0oKkd7Or{)h(AxO#5G|!vU4ilIc!tL) z#i%9WIfpCJIrMk_|>AgMJ+y&nQ&^L-+>((W?5`T zXow{wJuSX?S_!QZ%d2(x#r8<G&-cIXUuV7bHp_~Q_sV%t>EwViwvYl!nxd4pzX&j@p)$I>6 zk}Srqrw`e>7Id1g7(z#h9KP6{bWxR`QFQt(s(w!8qPvUDO1OJ7!+SRDWw%#s?qFD# zXEEFC9X~(6RD{BvVq*O_u>8}z848}JEww<+Ao}M-jf0}Z?>Q6PyPrP%Y5nu+?H_)a zWgEFURzqvXUX_X!x!j_(W-$ln*Ob0p^~^hj+tZK(6?o7+>R7J#HZO}5twt?%L=3pH zJl;!GcXDac%~9kP4^}wKXEo|83Wnp_e06t8AQ8U|cX}c#<=MfqvL0ewZM|--5ViSV zL$z1aw9gd1gPFG|(HhG|bI*U3=X-)-()UfgJhfb^Sybx6du;kB4hMqC2gi0Eea(B>I&l%Yz+7X{xOtVkLJ>K zqGdlZIU|;=bTKbFNznsEyEy}vMM2t5Bj*Q zj@nDlBL5FdxHZ+nyw)7#4h2g)kz@Kw6I%uMW7(lCc(aus(3DD*w}j%2XyuOHU& z)C1z&I*|n@5Rc=#Z9s|oS*t@_XUf?qPOV%0hRuR6MbXC2o_(K(`+LE>r{vd`dr5T~ zOq0uYf1Cijvw;C#IM+vLV1c+7&oC3rWHuG zyGDl45h)|)%5ip&1^BDqD$NC9eg8iDFW=)rU6GkBa-Kc(WRy?8_{j@=%s&0(-A_K5 z($dYGq3_Gx=E-HDz8uWw@u}OlDccD6qhL$vdigCRM>yhStM_S}H)|Cz+r5Sc>+NfG z;lexiO8c$us!S1OPt8al?Si`JGrV_0lRxm|l8JO@V+a%6hYUfoDddCmTcWWxhQUZn zBij*T!$#q*l=IkKydrw@=1c{$HnYWV7K@#|y~jIy&ldYTyYt=oo3G}NSG$X!zqt9& z54Uf>`?I{I;WIADWR<71(2$9KuUKxtg!e2vgfv&R|M!oGW2L-hn!PhpkX4PR!yn0g zMR3n)1R=_0+&XFLwzs7Tf-K07hia{pF*5X`5FnX)LckC80GbIQT)EyXl!)L4+&NT) z%_e+t1~S2kEYd}1+xaC@R;Id;$W>h*#Umv$RxVH_5Q{~S8CTXX#8)JWd$fEaMWbFz z*G)buWr@O}O*tUL|0r`(?fiY*LarGv3ddA6$|;(gu6BRQ`s$o0HYS-8p5e3i%t1UEqA^4JuMbSI&m-#AQ*dONc?=8j-LdP6W5cFTI792fWe?XrBkaw%0+;R%Zf^+R4Ry zKMOxSprgq#?1df=XkOcr(#zL=)Od(rB3jdBnw@R61b{nS=j~?BO@FsYZi$%MRV(@6yq`tfIMx8IU*if`?2EC*2FQkZ`Frf9jc+w#ja)T6P>%!vjW0$7SyR zW^ZTlbg{el`0?)3{l(L#kKg=i_vxzRU`dS>?tufh??8a%X)V5F=X(VQ&<6i&4LF$? z6@R){Jvj4Nk2;6LjQ0cfLm00tg1NrQ7lOsXXXiz<(B~xS0 zlz+TxrfRWM65|FxQmUUPE-#mU2gsvTO6y`Pns%?UQ3Tnhh+MKBV2JDywVN>*7T}-RuFt!>?b-3;!eRVjKV`<#yRrl^+KKY`?o;Bx8vz~9f8vHbHOU2eV zd*-?W<3}M%9*PBLAXBRbiCH~8GF^81Jf0THJijSb4E4ovJ6+X&@g$_p-Cj5OBupfM zZbJ@RAGLCrOUtxMQBnc4I#Di(7l$LYG!}W42$w29EP|Db+8WC-cq(Di?{(`%#K4P* zK0}GmXGXp*#>&G{r*8-X;fxXpm;ReEQ@y_3TE%)`6uke~2wd5LedXDLob4Hc=4FVB zPfI}G=a(nJ04kM-(m><#tpY18$Bu&R>yOGFltf9>!{W(Bu)Mgtyt#eOp2g!OaNanl zc_}BY+9!JRuW({6CMo=`Ufx~rC56f>e;{&|S1|=?#3)}nRIw;LyB5j=w>OLpL|<(1 z(a>7WEajDa3WroH$j?p0D|FEI`YVkiE}_52QPX;93FiFnCNikXEBY13UBhaXxAYtt z8g%x%5r{+eTzdyH%|YysY^Vb{1ZgPwUX@FdPnbA^_t8Q>!L;y;tD~EjxIqj_RZ9c- zATz2OT*Fx|9oh22yAucWkc7&x48>tiVxa+zV?kP&+hc0Wkfvk1$&b)VK*w<1T5YJ2 zQx}G|g|XTBP069P!8Sd-1&%sie*jAyi~*8HteKRe0{`?QQ$*Hid&j-rUQ}P?{X$U7 zgkOL7gMFY>ZH+)JO0MbX)vG#vo^|-sj~_mszj^=1kAK?i-~Rae{f9ri`SF9lM!k2S zyz}GB6ViF@*R0p42zMH|hVFucHlADGtg7u|q0CUbVv%rbwGt25is*Izx%o* zTa$pAgtHI+9WDR#7;i#)0G}P{n32Bu1={y=H;Sxukqi4$KghTH$(7&$PMSx#zY(+s zYFNhj_Eg2xc$8|~$y>MkeOnlL*IxsPhtJnv=W?hzOJn~YI| z0>M|_Hyx1UzoJ09`QfJ@zk37rcfGPmQkv{6Z7uji&0TV-90y(dSw@uU)3`V5uH26d z#Y(mj4h?{gyS``)>4-dj8WwfQQ)jpLrNrLqGxSgf3*bCIkGPB;FKd7MelHtzB21)b zD^*9sz$~R(`C+H);R2PLHw=52J*u~RiZk_g5B8{udr*lN7wYbotl^7Q$*h=EVZouE zy!+wX*YAq|?|=I;I8{oha_Y7`S@^=)BY6iH8>hy1L-w}zdcGG25{;2Fqc=HMYGS;& zb-e|M&2!Z06&))SsJ3}|wUmY=PE*401H=3n8^iB~A!TT4@Skb2@2#=DmC8vvpD4SUNPoDuj zdkUIqpM-zfC!wGAN#Ljb={?V%@88!^f(gp}ZM5P^bA=J0L?^gPY}RJ>FZ12s?EYp> zu7<_l&g1#szl0`o{faf=ALY>VE=nq5X$Ds1k@yv1g!l_G82Vg-*Xlr|haK+PIU(1T zj-Q+`n1&Rx%jM&dSBO6gmH0{Y~Cl=2OimCd=63x;y_`{s{fhlfbzox@e6(Bk03FS9&Me~%v z;0Lq8kCSwAe7(P(J<=~ThUNo*c9iPQoJd9i#^!wa90$_n^ClEfOB~MF9EtYA4;HQ} zVX}1Yp)J{)J%O|LmC^!#dP?&WGNiFNR8fP1_CYQDezqOph>+c=0Ukib+I$g8M=lZosM>=P0kX)dHi zsY;aKsN-hqP-6G0miOwq>|fjDg%-qNqP;r5lSA`nz5udPWz{#gaub=4##Brj7DAOf zbBUnV;4A4AD3XqDWY$MjMYhYa*Wr*RB&CnulO;7xdTu=_MJdi&Z6~C=PqiEm3gs`T zQ{=$BX-QX>jBma4dO@1ME>6Mt>;`8g(~B0MR|@$smo6`efj7kDburV&lXvy_x}l@tCr(la0kZH9_msTT4{WgmGC+K%(hy*d2-;5WLlfU z!@y{5OClGYQO4bt>;e^s?nDA|ynEmQBu+r0&WpTFB6^jXkA>S+p0i{YhJ(?ndULurh&)Qx}%W3rmSuGl@M#}qPhiW+OEh_tK8nC zv^Y>cE%jBbGcg3@^x^IQe6#roV`WEQJBgg(9RK1BdypYsl+J4ZEULvelmvTSt*v=z zf3)N;*7AAo1vpdkq0?XA0Mj6>XRvtR7sKIi5kDP{4j9cTraO8`Y5}?tvCdBLpkk+5 zB31VcUu6GlCM$n|Dty*8Bq($;IuregmpBz28JwqYY$1!NSy+mO4g|4C6!!pfLkEM4 zUiH`0MewtYPnU5Th-7sJ`anms_{pcv&DBU`ceI8bR*LmU`bS?LfB!AHVO?!555;rq zqoVkE&M^T>i@eom#K7?frOZj=-)ANTVr!STgVg23?okwIjN_YE+%v-1F7vRT`IMK7 zTxF00f+P>#p7pq^Voqg>ZK70fmhZ*0pW*x<23=a`8x*7Ev&6fGc-j~azn%of(ExwE zFkq^f2UcW2mbEKaDyoJkU`wbSCCs&VGEN+&cW~o*|tMpfFg9VujV9cywdg zF^uB;R68TpOYNxO>B)>$l7+Hor&r#SDtKqC`yO@r1{PWI0RqWJDW%p_NhL=02C0ZN zKaypT&R4-qax$`8KI|ar=Au^|fj>(@2>7{Fz0NwMa?DKb{^^_b4Puy zo*C1LmuYv1(D8u$JuH6umA-I-Ya)F|{-)V3yeHr-?~u(iCO^!+PGG7tEz#>&Co33< z^(xr}+h_;Y>0T3~{2SB6=)zp^Av-w6U2MLkM#OhN{Pg}~IfW(ehaC{NG9KmKEi_c= z7hp8<{Ei50cE$~$c2JgNw-*SR#n`ZORDvHpyDqKDQ@g9BD==>Ms%H=7R7+L1f&N*`QKNBC4hUtj;ONHVS2Qu1}K^=6zC=9uY>uhIQ-;d4K~J z&Y7~+s!!82>{7rH_uq^GY_8z2>L~4M@>lncxRlhvW8<4anyCqI zQmysr8-+yz|JB{aEYND&)5%mOpo*LDB>#Dz^Oi;H$sd0v+W((%3nS6FgmhQK>Tvvgk?dxYzFj5FlinXsL_Ltkx^fJq!&J#n$CTMVrpi zwjJ^5aIy(&R(>x@MQD{H!xyia(O$hn*O`VQKx67=~nwUC^nAB-oV<_P7kk6 z=@;ktLttOfdmlaIIWXA769EaqO*wWC-F34~CW}}pd9#t)9N!YJ7gr&GC~+>iA&G6< z9)CmTSvkI3#O*Fd^ucMAX5ank^^ac&f5{~WzpvHVxlua|g`h&uDv|bv!E!M`U;zyB z(sZD}UNNtFKG*%AO-$8@oHv+OW$Er*DbfyfS3fA=^Tuo^mwBIKgdTFQnrJt+RVJY^L6An;YMCNuREhw1=_PBd#zimXwn6KUh>ATioYhh)9kZn6*YS)u>T# zxvO~=i3IyJfz1}1>RaH5G}Ce|Sdbf`?7bWyZcdLL zsH89q@hTY@YI5^{d|@h6-dNJ*b4YB7P8V^y1&_<$n}|X(gp{)8 zF0MQpF>Ghe*Zm|MJ%(#<+8C+bzJkXsNeGI*li&M66d8QF- z#xF0zQX6{mv*jXewaIzk8-|lfc|F4f&<<$EAlh}t@g?n_sRDaiY6dqMFiazqQiI+1 z+B1w;SfL}Un49zK4Ea$0?I!P>P^+;Vr&g-*g00iAI_~y<=s3jV!nyVWm+-jeU$S+c z5zMy^%|=E5u1`~~GDHMEO*mM~?VDT`MISKOakLL7Z$4sT{qfC*?_R&7Y>ByWyFK!VNEBd3~aQSG^T~xh~`N)BsO0HY0gt_T&Ax0{*0=LOvPY!7&T`=aD{DyL| z(M3R`iT6i&E@I6jbc1+SG>XO(d=@S^${Z-x3hXS{>@o)yf8DMz4RTiHr5x%ydA?hS ze7&1ASen9<1I|;PuzFojZ_RD{1cQn&`oJ?aUHf(CHuJPpe9J&@m65FJs%?YzJHwYU$;KMGa+TYY^mC?nS?fUv zg3W2SiwTR3x$MR^DPR)?lXT5V<-}UhHr!3Ld%^LsL>pUdMk$LOHOFVFJ1EQGS<)j^ zBc8UiJqcEI_xdm?mB5c^%!{o(mFEe)0*HhQbEbH1_y|hnNyH^tHA;j^z3h_EDBF(7 zjZxOwnrdC>MEjO6jE`P$w&l>M-0~`*1mjZSSat~v?OOwszco}ctK;QCHQEh`r0)(? z5=XKNKpUd#Ms6u$Hut9D*c9=iX?Kt5#{5;`ScywZfOKT`CX!ToKb9k7=%ghqVO$_jjdXDnq z%d774&SYn}G?ZHrB)$8qG%&@{Y+F1|$b~OxL(k?rHTJ9^nrCun8vq(rB$tTxGpG~MmY^4yiLD};P^|j|qchcQ+M(^0ImWuJvZFgYkHhLScgf^$P_O%2{(pcuQf9z1>B<@2hk<`+G=1;0`4*&2C7<>#D4}$UZfRKqJydGNDS7x$G z1^uG`17%bKuwa!YgOZHd7h;p~lXcdWv^}xtpcMbz_}CBU zH%*xdOZPikO*s_Cy^W)lIq-+0lR#q=1K5D&0i4c&M`9)o8ky{Gbiqx9W3oS2O|VlE z*@1K=^1lL#x*QIDmmx+uoZ_eQ-q>F&{3>>!l(D z=GDHOGvLCIC^5?9F@UbrY#O)ve4}iXoAJRbO}btntQe~(anT(<{@35c+v}z871URe z4gG&;DTOK3Ju<%CGtm2zf>Y-BEg?2csQj$LQ`>-iBoq*L)sFM4m(_WsHnL08qm`Hq zR}wuZm$q;MwS;MS>$67PCs}?hU4f3qNzsD%G~pliH7OEEs7;UV00D^~H)m>?g*`|D zf;wtW$kG6_ReUUT5K49~k&Xl_J*y@|33U$+LHXQ4yHbU<)>=?xwYIHJp}Du@Ch6YQ z%XD6zam>ziZi}=WX!-R`GXt%6!)ILzqF6~2vE$`(naWdsqAcPX98-ATNN$GoXW!?p zJsSs)_9izX8yKetmWzjCPESK;gnb^Y$#a)3U)Ly&Pa_rkEjArQ4Ez_dBb?#kbH3;p zL7N?>1{q#*!{Vzbp+Ew0OUjXQ+}Dkzk0?foj3X!wD%ACu72lW zxHlr?sK5%BtfaDo6O^xfM}!1`djo0hr+!)J0f!e>G_NN8}1RHm&Mp9V(XdMbnq0+^gx;~uSAb5 zJC52(5~Gi(HT!I})8?L_QkA#o`sy5uOk=i14pTokM7r2Py~(e}7P%wm2M+J$?PCJ} zE4GabVcWA1*29?)<&k3!H!m*cv&oLLE9KgS)7-p!^ZJ846gS_$`NLZZwaw-Q6-*dr z<~!4tnR@btXl%kMmKjWZkW9td>~+yAKHzPq0Z$@}?RK{}_yNTk3KO8l|Lz{c{#GBK zCWBY2ikJ;&dEDjwy}DVRp&`NiXr5eUbOtWia*bHU2lHj4coiCrJ%}oo1_xjKs}Edm1ybUaaWIcR?!&A=9J+fA^>ecd4uj8(;A>aE0D z$*N)e8q`{5WyIc+9TgS*jQ(RF!nuv1Ev1j0PNTz<2e@4Uq9 zTYVJ|Kw5egc0luj{LK`I%jB27n1SiEHn=adRCDRhTH{OtG~W}q{dKepJe zmqxa0e41`PzJCAxxBq$Z!}o8(Yd;beP4x%&@wM`md`%UrPN3C--qfzT#@ZoR=a=UC zX~nZ$*dR7J{DAHBHwezMH|Sw96GKzxTV~=>r(YHHS4)0#pBIlpK3XpxvCZ-$huc)} ztJ$~5dwm{*9nE!&&Yd<>+Cnp~AVF$Sk1+oB5N~%d#C+D}0oA9?y|r!>6W#teYp<#o zTKYRQB9UNg&`!37iUfh+ZI55O$fY+r-=;OS70N^FrEznyualk}hJv7b_5;vpr zMpcttF8o=8p$cUP1&K%3@#&%3TPQCN%&|oOnx}{BIz}}g1*LuD8iZ1E!jOanQgyvK zz2=`p+{t#8+#^H3=Rbrc9A9iD)Q9i{zC0Cu#c_hltfCMSnXhp~#vg??_C;7BWb)!q zT&1FL;gBP08 z2TfNK)-c@|)-WCU13@KW#;~d(O)XP9PgPd@RTF6n$AEkmP$B<0-H_F1?9#hi>1xKO zNvYSk{L=5wgHyBPWD}Yt->$<0Le3#^ur2Ln)h3M_(GflLnBvb}^-I6>{@^5G&ZqHE z@?)7-wJ&#em&ETzQ?NhYaS7+ibEiqdtDba z0moX>(iKM)NH|+cio?hXQMm}6#!j(rZFT!DUOA^^ABTf3|s=wyVwn zuEJ4CQH$Psc4F#AI+K|R6};K;)v|R+=gd(Wphf&~uHr@@!CGR2k#vbZSnTZ7}#MZNEzaT^UQ~)&3|d%p8_keUd>B@szi6g5(!bTN>NBLEIakmi(r&(cc9-5em2-0Q`g)=8c z1mlr7pwCZ;4h*%f_MdZ(o(cs;UXZuz{HeLqo;WzX0W?q|9Ja|v-C2B4=b!LFE&aZy z(VX{szr(w8m{q+gcx+t<=iKG*<{_XAK~HFpVLb24b`f2EtG>54)a-7f#>p|h-ApAY z72ZO6l}=C?^?AIHvBG#b3AcOcb|D+b0K$>#$9mh!mY7sBRote5Mk+EuO509oOL%S6 zXyzwGYmS?=+i>~e`lPVPMn-q~!N&Qr9PdfD(OZt~ zDB|*|Vc$)(i?-nkhpEoQ)OGp68!Avq8zB?H%^u(Rs$rF*!AGYsT;RB$#d2i=q-)Y3 zs3Zh3Lgi=SOb@^L{qZ_qUbupi!F%ZT1We_JsE_J;uE86SvwdG+Y%?FUuHI{x|1cfUUP?z=Z1K3u=~@h@*bC^=#_9DMxv zYW&vz zZd^w7N$uU?McUmxOi?2r)py?>zcOh5eRy{`dNvJ_L9uB#)Gc4)2J7jKKe?aYjWU^y z=BKvd^J0bC1u5KK_fc*f?y6r9P?R$Q6X8p{;Qy)R6^)){n=nM%ZssKFESFk|s<~_w z_(hk^qw4LdbAOw~!x%dmlw!yiFO=L#*Q9x-3hV9~J+aOp!J(`W$6rJ}DPBPnq&o;I zSLC$)Qnn=AtcG#on$n@SX)HorS~^zHn7}v)9H%|L6fxywbpw1@I&uiVf;<^~SNXDN z^QW1X9joT?@kRMAmo6A9i30V~YLoc35^2=$hj;8(h+jf;tA_t7Hl4~sDpnwt*HzI& z^(Kz^7&Ny=;BMBw(S)Qcd8kEf|0$ZVQk^+@Q_<-tF*(mN_Gl~4H!o}Qsnj}8kMa8E z(nMg`$t6w`U-vsRHNbb~meph{1v}OTFI$4tl+Dp5$7cCVfW)LCC&0hjiNk3@#mpX? zi%LJon`A^qhVgY!wlx-dd2uw8>&|eQvfAydV}h%Rgx8Gp!bHzONQYj3mWfSqLyi5B z6KZ}(7(t2UzsAAzMx|_S52Qj-oRQ}*cop3_SCLa5$jK6qV)bA#`J;A~QWiQr?}X8N z2YF(qvF2}V1D*{(Q_z`jhDn`^y{sqy_jcz%3`#eRK-=LO-#1#35n;&Wt+(}!L-XKj^|)}9~B zwuD}xi&vlMEv5tZ2`O=8IT#%NIGlIKcop+Kibn*7W>3-7F&zsdktBn4LtA=wh=NPn z^%aIB;57ZwrhByfJ3mw6jTMgBuZoeg2(67+r}=O7=TXCH`tT}GO-K={mOc&IUZ(6)p`M~)e~lSLnMGQzKuKZ?Rb%W z#z3g5!9G)N-Ns2nK#iOLh>=eGueE5&Q^t;qKNcA(8!L%<54Y_Z^g^P1@3g8-N^RS? z&mYB;aAXJv^%4~9w#Gp{{7o9+4vt%Dm|w1kn)DAPKf^;>sE6)(KnJBw39kme`?1L>?dQlz);mY9on1dw{OzSB*Br;QH_)g3h zk-;ZL9!G(;6Sy1am*4l6PslNygjPlsTneX}%M9m?%jy>{#wg6?D2AgZi7 zx~Oh{D#%pa{^Xp-i6CZZ@Fde8b)lI>(^t$jb8ky;u3_Q=l-tPqdwU9UKP689()?mp z$R)_+)rzEECmT6qNjtf2Qtm2MLt@k9DaXCsr1SmE2Qv|HgMYXBih_x4J0yd;_K7u& zD=$DQPLL#)&I#gOmCj860W7A6C=ia~g0r2n~oc@edCYS%XxO_!IN zvpe#GV@n;eNP2xm0+?ZOYS&0!k{Z)Um(#lT=!=8~wB7o18tJsz)sj(rdxSq)FYMEu zh`5yK@xIeHNXaG^>Xy1X+BFT&o#?te*g_lO*!K7`yTGpy+s3VifXakgG3Gc~|Kef1 z2LKH>cncB1_QK9z%AFLBpCy>+FsOR7<(*kGi4GTC3ekz?Hg~AH1H$yJtlcrb(`;h= zutvhmS0wc5QFYl&AfBf`ubM*S->&^PjUnzDNer|N}(c7ICg~ZuX)4@tPU?(oT&_fomCh`m45l4qS z)Y;yh)d1Jyl7UJ3@-h9W`b{?%hv=DZ-o5_on}hGa|8e>H-MepJfA?qaWc0Po7*m`X z9s&Fu_xZCMC6v-!P!-U?rtj1mq-y?@@w>cT$&e;JjcZpFNnuKRwZ7~E-9x;JQ^-B(zfgb@1}&h zXEbhh29z!iA@#9FPR8o~ylr=r*>;nGczm)0nkpx@)$PYiDk};GX1=?*yPiGXPq$+D zv2b6ISmK|RPaCz@2~4FD^~crpLz>6dsN6~V(6m&I!)%}zqaLZXw9xhq-h`|SbCW`| z^;z9z2J*#l>)gPFG7`1-bc2EawCLg%lxBwpQ+h-bREheBV;eG9u;XAY zMmC|1^KgAGwv8d?(Hwn<9VJcdI3;3;9yp(1p}4h_(ejU|AW)4J^qpe)G~%A}ZHwE* zKyv6ML<%d}dLKr}T^S*R05#NSJiu5>XlMv|9wFUPXQDY;A=XKH$_@>fY`8G$Em4eFTu-{-P~cR%lMO6*W>i1k9hKQGoc)XMzkmC~;^K$*Z$JLfvo6R} z@MDwx&iB41s~Q5L=$oLSC`L0yFGf&-h|`qU;DYDJ-*^^J=g$@gyNAV_*dTiPQt~tb zlWcm;pbVBSL80=6{9ow$u=*i{VLCuHi4f9`7=omfw{iE^Roo&ZhyH zzpdW=@VDj1cTu9O$ZPeM|2_NLpWeQEV}%0}JfQK&g8YB}$D5-!f0$8!SFPJ>($0uf z9cZ>o+`C*B3}o>W*Rn-{d+SS36-!^DvV1^?eg`GqZm*PBYM&zxM(zMGF0~y8l&HZ@ znysw^bVd+m#}qZRm>EnAXjm)d(rdXc+vQ}SDEV6W$|`1I%&X%3?h@;Z z!@F4FCFvM0uJ=p8SJUEsn2A$CtsEP)pohn6LsD%^FOEQnDwfOlakq>iFtHnoidMVIkd&I%kd$qGPA`v| zNa676_EeHZW~N&bQh<;xpAfHcUSD2sVPP@Jy*hD(rZvD&>xE9Q(J>+E`x3~7_)Pee zBd`;6JB3C7>pgWexs`($3agg~FOIPm5GH6=-=V}JifX6qb%u!BizO0)>VQYk)qwcz ziXry5^?PPMijfkQD@W&^ltX0G5?kK8Uxx}Wov#g)!}};DeB=y-1IyheNOX4<=ktzI*y7! zL5^0i70h{c{^C5?io9^I&Zjo`!R&}SlUj^}qxI1@T}F!9;)iJsa53QUAK>dz&UI0X z_r1Bh!~wvGjSfV!#gqMm0q~ULi7QSmp(7==4!tz5#Hq~pP?DnEd;9V7r@wqlZgKTB z?QqJ0A*FjlF3s$2kbX(cdD$9DyJ5)-h*guh|8#wINx?F^{Y|vNlb=!dvZ;cGvmkV? zu2U+7wg===ogW<%rbC%el7q{JN>TGKN&wfONUl^2hor*u?xo{h_&0!}YD3*NJ2r&c z*p^>GPEoY0#6+cOsk`d?JVQYV>q9!q;~RaLEcJvC3$NXT&Po9>E{{vX8tsJD(dRr$ z+|Hv%0x|dp6rLzmzI3pw zw5f4wCR3~=hI&axoGKXzijvJ{rEIGiGMaIpkq0Lj<%slM|MdR)hrhk~@#u%Yy|*gS zoi&=J?M~2^n5Kiss>688prWbvinDpff2!I+Ew9oK@um&D!!C+NUmcxMm{tY`U$G&X zu5IyCyeNtP1|Ej3y+3Y`2(x0kVu^3?EQD9JEp4tGk<9|DT~tjfAKRg4{1Uo|D`=73 zh*XoSq(%YE|1kOw-^X@jad~J)M%KHc-Oq|w4vTg;lH|}=SC{9YxX!{k>h!t^{tdpY z&-wL@Pu(8D`r-(VPS;OyGv?=V&hOYKQ5bc0=|`*CD^JzL0KYA1$f#)CV!l;0ZZS73 z=%6X-1j>IyalQ0;C)t=~jEC^|<43FttDoMzGhuUQ zID_tfEm`w;Er(cuLcE|To!Bfrocalkgs3DKIXfrBhymd<$FSO0vxSuwbbkLA-`U8n zon(qEAE7b%N}j017`mZ6VaPyMTFCqT@G}>`{F%F-dgksgf9Bq&p1JqSpSl03XYSwk z%&I&XZNTHL8zRWXE^*Y4%en`@()m3SsvOz4sdv%if}%FCVV7PX&xYTY4_*qV52&oB z9N{3H=&`E0N(d%>QSr*zo$189fp7 zVV-7cx zT>YYMb?2&{H7xIUKfM3&v6=|+Ls{*H!x@}`uZ-F(3Dz?0c**uJ+UoX;epb2O7cn#u zaW=Ud9?Q1-m$PcIf0-Mg8%g3$>N)R6x%5o#dJTq0(7S1W^YHnaCVKF`! zTit%Cp2wU+ob7T!nys7e^718w!+pI>MknG<<1?m9fo=5#3;P0DMC|CLQhpC=9w4(Y zPEG!-C*f%d$7;IP=Fcig58Jjm)Jw8LV_{Qu=*8?Y%z(kI4RvEp;MjB`beu~mqq=ix zh3@*ijEy~z6Sh3NkutXRLY^GpTag@_G=*mzPI+IJN?A|jm(y3u+AU(S)XNDH;R}Pj zvT({G^Okv1eERJwQ@j0MeT0&3E23}A=Jb6Yen2raD|^jUp^?T9ce(zCphjtchsG~9 zFQJqic>-KZ9V9DNIEkoT>QV;N+xGZ10aa0P8CgFur=k=%+qH5)aek@rFHk9#eTC}JpL~Wt2M@Z>ox_mUL}2c83gGQtFUFLYK^1_W z%|6r3pol=7Lqd^(9`HRd;D~HQE|eCUM_mCRh&ToVR$=4>9db(Ak@k8eNH~Pm6V+9O zFQyTYL+5xZb`{@N+|$0EZ<~l}kEdndg#9tepAE<#JiOIyGA;j0Xz+56jBJVFbld`m zIYHCe`V;^gHyE_Mqe5y>UH;wO-tM;3GX+a^ZqQq)l14!ZF{o3u~3t{zirk+LO<$xzo(v zv4YNTmJ>)%tI-%AjP1vP#og`8>kQ zD{CG(Z(t5lh+Gq-AS+2>vx-`Ca*%IVQtwD^zd})h%I@**7o3pUuatjY$EUMOG&{4^ zXGpU43S?%(Bn+?OW%Py0s;aZ|SJ;FCj1#xqF1H|73Cxk2BR+E9tXgA$z zdnemx?zhyh!_5qB@;&|<$#=NuT(BpaTNi9~6HpPmf*!zWi&kX(ZS9;=5Y!G21^Jdz z9bz?$4IR{g=@leJeMEtXc;!IHSIfP~5GW=nIh=8?pNt64qn8v`zX3YdX2?k6A;a^M zhmG51>5KE0!eK#K1EHAew)NgtbGW`^*Ek9XWO98KHck9Fr*wFbG0mV-Pw{Tj=oNhV zwxpp)gvq9$#nZ_4oB3O8hD-0KA}jK7L~e*!hU*?K30$wjYEml*@Hv1(YElhmwad@|^N9Z(>3Fb#e*?33 zOwCzEebOGKS)+p{&yf!hH1I{9A(uht5WJ2rb0@DU4r`NmQny48W}Vfgh?xMQ80H6u zlaC~DS#c{H<+9h&=!h{^08AzUgoz|RE9lHV4{g6cP-hv^vf!WnAe$xeSJ#tALyVQ4 z^F(M*4)BUjko!d6GM10lvKPz@af8sLw#m5P#q&PwcSq?-HJi*|xl1fmf9c)VqM)dV zAYBv@_Ck=0LSWNTH|A#@t&~KR#m{NXb2GfaA*9r|JV2qLL!jk9T})Wje!xuGE=uc>=eNK|~%sM9xyQ!1{#S-Wny^g0drgnj!Q z1A4fx45}gyAS|?Q=9dtxaGlad zMEA?!#OPpF#Z5q9htpmgv^{|`aVybx4SprMGAyn9m4XO1Nv4h$j|aA;RNx4&lz_b= zJN9i}dl?+STB}=3wmpSwJNk`m%+lpVCq$R6ZbtZ49}Xg3OEd_w1iwkOAa!*h7(12d zazC?_Pjxw838j)1g7EhJ;ZJ|K`JV*>lap6MlhFXrK;Mbhz{rokM8}jH6Xqud_{Pw} zDpd6N>afJU+6Ap@He}1`lPn2`KUs=gnqUSGB=H3%>2^2pPE{TH5G8nI^<&@$rYM5G zCYjlZajmB1_7%1V(my>>gm;~%u7-ARzc%I;Tzh`IFb2!t?i08M*dv}|bgmc6Q;rF7 zLD&O%sX{JYc(}?&+ifD$pHVYF;#*p1gJTji5zO-d(hFWwVt7l$?R+W> zmqyRLelZ?*W1W+Qf9;D>V1dR(qKlcXDvJ|C_kD2)Bq^$rrQ^3rcMw=T(6gK620-b7 zVoi>*T0iNT(!@M8DsaDWR3U!LaFkiG;qXd+Y^*nM4ri-xq||xjkvP7ol62hFC|iFm z&TzO-PjB^dt83(D)%-!VC0^l_pwY9X$r-q><|){aML{0!)j^B*IuV49t6(#_tD99x z#&WNlRXe~-34?Bzp)LNg!PfVT80o}AQVyl9&f0TJp{@42dF1qf&^c#HpT%xycIu^} z3U*omak9R;yI!8|v&dIVd0$6>KzsSG!0x;{BHAmMIRE%hnJ*HjfOprg$Q8qCApS}- zNC3g@#qQ!{@8_RQEjWHG_vUm)&p9Do9nEOIX{)bj3>4(70DXNxBWI*Oq4s(|qLF~| zuldl`>O9p9LxWeLK)Nae0MS=#Z1{@v;2@VTbZ$2bvl3))UI?P~jbwf*JgK$*coEgR zaNOO(HzLK1q1M|&$vE`n-7vRXforcp=U=6)6%ygui@lll4PLu%En-Dv461dIST4oE zsUA}3B_;8?w?sMBhEyv_-cwS|L|i0^^Nv<`2|Ma#J}P6`wjmZZ2`5ML=&peWq2~~d z`GVukC$dr0?t)OXSGm>U#2QE9VJqA{79l?;3_|JUuBYqM#g{BL!qEB|v)5VdRPST+ z*r?M0mST@ZPVO}Y%~PQe9rh+S8I5V!?R0!T{=Mx*=93ZTXQ~wKSF!f-${GRX2@HM&IXVV$$cIRmhXzK#RP~e`Ihv6BBt1}S zK2H*$B&bE0KSyEy7)Z0w2>|x3{v0m}$M*J>y!O=8Aiq(kSII9(j@vx5g!%ww#l;s; z_bK;D*vbSsImFLygm`D@3=SmI>x?_=Y$P~dpUAgLPv!~%$IfbhpFQ%P9;|lMEa$Zx zQ3Op%lJbi2uoIB4Z}jDfon+ea*VHRgRH5$h4NA;02eS!hhNg;aMd{(HV?7YB+hcU% zUsA$^g_4f#o6ZC_$3@7=LB8{}p9?5}n(qq-VB8QqnCUa1(_P1+8q0s1qGJ_&B9hsO}|6-kVV#(GDRRCAe=zuJ{=k7w>Mb@7PhC zr68{HA=zg8N&O0RELr2DQ#tvgYnMkSa>zJTph@0N2PiKm5|)w3v$Pf;rh#P`W_#Z@_dlhF@}(y z@QgZrL%cV<1lDVkNA|aDb^E43%`mr)eCe(XQ%zkyN~^Yo`4}6S-VUFWbbYrf{s#L) z-|g3>Qu03G!y3!3)AUj#E7jhiD>j+30){SmIqw+3-=69BEj!4c)-N;~W5@ucD zLxQNhOsw@ZjUm-3Y6SG+0Z(r0eT<?O2PU?>hrq3ikyFONbE^~%}gc<3=^w6G(|i$C0e15&<-7h z4#^&SiHOG?1+P|9EgKHGkjkj%4IS|L6{_&6s;=J*H%gq z@El1}y2j7&Sg9H;>lT$@?9d6i3<3o$-#5s6YHTHgvhVYTI5n_NmDoDeG0O$M1fy&3 zc4@cOiO-wIWJ!ol;%7 z@+NlFW`vyjK5t@?31qt~0)=p^90<-?XFyN^L7Ummt0yJMHve9KwL3q5Ugdpf$4UYU zWeuUCrU6G)uw{6Y-A(UTg$JU)a8l}VY2WAR>I>vKKo+U1`K-J0*GoV!b8Hl*=vj7Md|$5EEdnm zKKCkh=Hp(!LmG3omc7`@>DP66uqMg>m3NqMT7gf;H^v#WN5>}@1qvuWH?;-VjwA6|~(f+f+s2du=`Ua~@A zWXmP`)bLFE7UI{Z2A3QnpEo)lUEhGcicDE#*zYa{=Zj4a(5k8-z9^V1ne~@XiDSExfeB%+!b$M z4bF;MCZk;iNa^GioYx&;^TzIF2VC~vMB;q;9Cl^-ydt5*$D>Z~+GgYQc+<}LIZ1)YTNUO3{LqPJ*PO(e3Y?pJv7ysL0satGY@-~Z? zHzo$saw@Ha_Tk=|yxj;-O31Ki8^$J}zR$yxx$W3!xnoQ@kUwO3ZIB2dO^yTt3~)%NV}A%nP43b zX6E!vf;S$X{$BMCGHzH}7mQm0!`WebW{(DatY&1^X~gY-6~|TRrh?LRYZK}vw^fvz z`}f*Bg=R**R<_wXhfT7a-Vk{O?xn|IrP(UAOfdKYvLpQ*KFWMian1LqHW_kFzmKVA zrBOO!{O*<6;8d9}_lr40SE|Ajt%gYZkjts(0+VB_`RF=4TlvL`xLv58=-F{N%C-%D zpiWhvEfDy|(jR8f$QC^|gNnbeoK0#n11|GI-i1;7<(n-1@{QOO7gL^jzqi{xn}J+v zbyX?dBDp3MJOM>>wy9QxzGr4*Tpa0>OmqVmG6NTv|`qx-0x_tHViBx^b`fUb`yX_n3dt<=mV_>YJh(ld%-& ziTpQRBaSuIp`iB@294g+W9%rK(n9L?dq=5^phnFfe`3@^qn^$l8ns@6HBDT})kVCx z7=y&~CBlO&<1iLFvUUgol8S#WKh4>=y(x8|iUtc~EDk633UW602tlh_yW)(cvt>%@dVLSt{o4~1y~A-x6s*r1chy`lhmA`eOxn)Rqg*g; ze|$|~3{YxC7W$pgiE>{4VUNRet@&*!d3UvvFNdUL2b(%k&aF~w_iHllt!o03tByqI z;V8$@2765@(T4u?ti=OE6iWCKtc-VW8Z)q1Y+GskVv#WAv;%@jol8L->*~`fMISRD zx}&oba&5sf2sr}e+Q){QMuQq6>h3N&F*P8dB(GE}J`e)>Wb(VN7#s)x?E3U&8v7(6h@U_;hcNv_ zI){6FgL6cDy5h-1?aAWTAEQd{BfsC^Zh-Cwcm`9+-C=x__?Ps)8O97tAtd&KRXxu* zGAq3>#K48vJuVSwsX+3y6VMX&E7%qp-LV>tc5Zz6dP$?qN@-HRNG!* z+7p?l-=*2BqITNr*q>3Czp0?>`)UniUDe5p)Ez$$wQ?d2)o|^tSY6+3R@Z`w145R9 z=TjY|VB{NDN(o@bh=E09Y)rvZ*n3-b9Vy#~t}l2+Cd11-U&FP{Glu-%ea(}C=h8v& zrROO_3?E)=Kw!tmm3y)^zRTG9_6E?nU1rW1RWlphXK@|JbGP-KEiKK$94T6SeeuKh zZ;Z^y_V7ib=d%l!r8_=SO~LTc!rS`%;G5$k=B7%($1k2do7K@Uo(CIfO&RpiZLuDJ zEn*|561At`Kw8Gq;3=x{0rDb;nFr~MTwBg=;i&jVQeZ zx$<-Zm3FlPO7*6`(W8a_Wc<9kBQd?a_XS3m`1QUp6VsSXqt7f)FQqsupB^T-%xUYf zQ={TQM8>x?#=l$x7Y8TD_*HKCS%G;iAhYCb)Co+}=sjEAenH}60`MucQ#|BF0Idi* zIC`-N#y8Wolv1Ms~zO@9gsfH#x^hLMV`!sgZ#2aSRpK{4;N@Ta|9pvG_{)3 z-MCc2ZfbNfMN1jR4j_=Tq9n2Mf4o+tfTiHi905B*6YFKO`Oay-M$aCw;LF`Oax4i2 zro_({r?a^9-2yFD6R|HselD+VGEiZ>Pn%24K!qzTF%o;5{mtXe+4}4Ey2KijIb19~uLGhSDdC>}~0KJ)Hy?u^fAbo)J9k4ZJr>mhDP> z8N@`7A7^9*`d)xl&IxN4^ezOwL2QguSHF(~mB+U4@l%T2xGM%@O!7yaz9E?2T~e3a z5jo?xN>oagMA(xgb(vdR(Mf|)&JZG-|6j`F@^`K>xh^zc{yr#@KXB6n61gaUIsxtx zXV+hP`^(akTIKlsD0vg_rZkX)F3rUC;0{yZrz@90XPZHK4z*0$rr&*i(Op8qk+0e& zwZJNloBBaa=ji;Kc8ube+iSQuFi6{Ck!aKaE8Di%65lo;-L#kN77H|LVP-}@cH!)q zn*hCR3&+Nc0mRG6Q0G)LPEk?oVC3*N3oN_0)!o3Ppt(`$H&PF$HAEis#0h$p{pCK| z!$pi&NLRerwj2tflO%7x$c%XlE{xX4jfN@#T9#H@qcl4cJ(OW?0}(@6r|zQgpI?Ce zO9J9>t)K};BTnZ6N}mq2I)cK0xF#<6XCc$hPG-X>1%f!U%jGT+f<2Mf3u~9pe#nuR zS4auRxA>fvK=0}H%#7u80m(bRB2G54VYN;EbO^3#x4bwA*}6QrJ%#edk4k%oOQ>%h zo~=&~D-nKh+|$n-_v}za8wtuO$7l7Ir<+OE9IK!js^8HCP zrd(WEo#=(nEWWFQ(`!nvXY4q^Jy^lEkna`+tRc%C0aUAFV%E#Or<+LNNyOtH-u$>( z{^k2e-~Hu#GeP?M@BbcKubg($<#JeRQcqIQa=S7#VqM@s{f}nE(c2HNzkT;+G^Cm^ zq6Bp{N+1p1p)x6DsAo}zdQhq${t<8Y+-!UP=4b=9^QZSJ@h5u6`Ox>$wBcII4U3gA z7*R#YCd0xl7kY$2Yy=LX`7p}u00V^|I|PESaShFsBSWLw41(fwZ=8Z$U|6pVIp!H( z3R^&U{g=aUMz*89dS58S6GyT!;Z`6GPvE+TRM^$mM)^~SR@NJ2h!MUinXtyrg?-=f z*|C7@O<$GC(io2JC29}TZ?TOChuNrw40RFyWwX(>*TO6>njw&gbXVj%jUTP0B&W*vD%N+vOP1C)WYaf~WSETp`MmZE(bS|B`QfL?6F zGfkDlC47LgTYCve+F*fp$Kj?drrCr}`{wH$zmU;i)Cs2I@D4hh7+)E&4=!);XNjD( z$W_XF>2){B$ucmFf~5@`6KGS&yAyN^3`bw?_YLZXDknW5Q*XmiFs+(=GRY%HZETK& zkAQ`3a+Byvn9I2*|Boo@(yKKi{y&{E!^bLXq)75DtH-)h+Bm-a)TeZy5_iMoP_KM68eU`h948_ma?oIGb^4LsZX{%R(>Fmw@V_J^5ubHTjjoWVfULfjr$LzX@o1uC;(zW4$k19`%8bh5tW3G z@Whd_!FHk+V73U;Om~fF6`xx6Hu7+xdSwlZKd`3Gwr7{Wy^F76y;wQ;bsRd1FXWCD zEMtzeu4<~>#jL`j_P$^<(T7Rnm?I1`ef4BHp<0((*!WqiZm1 z^I}*L2gXcc*o^&WMI#k0Q+aERb|SOzWSEjor9|az&*%wIlm~!p7{p~1m>%>gefMxU zP`X)t6fUqL{c-8V!I2ugD9aX*5rvTC3ZP3x$)&?%fduL}7vKVxNk>=?R^qLMuITd& z!1s+ww8BhkH^#jIkII{cv@M=`@a?jn`{)|XGah5q<;VKeJHU_|UY_kf zjrjex#g7gBJWeymFH^xNp(~GkQ!R4ttisj>4iOVlLxbP^=TxLp@K4&1MJuv4XnWih z3Pr_ABe0Qx1c&)#4oxz2+^awWULBgIrl_6rc^*eGJy$1`hbfe zQdl}&9bEG}$$cSYi*_i^70@JKMsrgBKRn0}g%u`NlLx^n*w#V0;YOz5C<6=2p(VGoDtk0Z~vd?cJE&oc41w!R_=<5jC8EE)5l{ts+rOf+pq&x zIRhohrD&Q+-C!26IBLjm>>+OK*Yx1>63-V4ms1{!PyfN?YzyU7x2zU-I0+Xo3%M!wQe2!d|&lp3s}MdF4zwQ;c*H-jurNh6JQI)ao2)NAxls z))MW3MdonbY20dk2}uAgJF?Q2M2nNK9Yh7bGlFn8D56 zwc`GdkBZe_WvL98fU3Q`w&14Kqbq)%L2k;o-vMt{Hrils;1mI zBa8&p!`12P@yeYM?3Ih9age(e5bpF*OINA7~nTo-C9Zf;9%@QC=R^gP5PyRJ-5oyIOY0yr15AV zj7w|z(Zdn1h`i*)bj9G@HXu(7ch&TDF4WRIQ$s@VDjqaES!&qPm~_*QZy~+dBX(G8 zOP0_xynx_?`kZlDpcv`5n*;@pPxf`) zVwpOWLVS1C$?cj$)8(CO$OtGR&CPp=s!c~}rx~O{rsB=JH?Kc@q~uZ?tzI1S$jcAq zH0RiyL1EWE?A$Miq&(}*vv^-zJ~O#0v6S4onC+4&Q4-Sa&)2WN`}3QR%OBqV;q4!1 z+fBDomeqEf>g88}IH6bqa_tNFg{J}G;hld-X@MNx_-hP(!=g1t>fJ7G&mY$H`X+G< zaqxG3KIX6+Gw8qX6{K^GHbcXH`_(_`wycLz@0r3WP-;W!L?|(I8XDEOl zvaN!M8pPC@3$Q9Bi7hg*ixT56M_YKyj4 z+YOhb?y8$_+w6l6lAYh9Bp7#v_3QBY^;0+$EwqFTAlgg}MCNmZp=R7dSe&*}990iKDaagT>fwpcaNs;cmA+njMCQl@F`o!8^->LKrqs4|$ zijIAp@)l>G$O$UcW0;F5vH+t7mu@5J`-Zgn8jr&a0LM=KJZ^sgT_-8BpeXH9DEtGn)eX`4_^kQneIW?&qlgQt}isA^xg_BwZB>K8~;SeEcDD9kdMyneEl=PVpxn6b`zo3;^HjBtJ>Z zQspR2U3&Z`NfegNUR>R*OcnMH@Ntw&2ql8 z6xTc!Y~#z~-{68f#S#4W$JgJz zIsEB^5{`%1`lN9D=|kR(@HDKOpr{G<aMDCEWoux6`tifZ^EdDR`0-DhJ+|uo2mGf#SafF3TW^KIS;2yyX+>~uk z(DRCvt_pSMIAd)9h`uEuXsly{%o|M1DwShDO zHdzKu5diJ9Sg9d)TYa(U7~s)aT%?vYE^>z?n7F8jwl`U8eF-j z!4K8B#9o&|qt@t&2!+w*M0+<84$^8+ruoYK!3-!;FKUWGW(e+=IxqB|0_qasE8N`a z2(~)?F+O3ogJQUSdA3N-#FZ+_w@bN~=}D!+H_X=Pz(#`8`8`q&1Z7UxhbvGKw(u7* z^^iP-EVRpM^&e+J72;kvu>%IMWu(V&er?CHXNgZu`Ug9?ZD zZ9bL**mXg#!Q++7N+m*bCMJ3dV||9LU3pKAUyz(IU{+^LoR1L44YdLENm`de&)P0e zRy!l(xBP}FnNTo5;x#YS4MDEEen@D26lY!6O`U#F<G;{U8^H{A}tsAyN2pAWmep|{Cb88Li9Ed;C#}Pu zro*jH?^lv2C+G*gt#9<65$Xvl)(`Q`K?UNtdV3p$)%SUL%sL~;=U2tAerWKg0}08` zhR+9Dq;&o$dZghJMM*an!{z0m*?C|bqF2?5JUA@0p5QO2qQt~N^9`0CceNlpj*Fh} zZwE#fu)--%ani+iH!lIOLV?8s;FnkQeQGWho1366Eyr@bhP>JvLV5wmETZ@i;yN+F zo1=`mj>yAH2&vRDe)GlCagH-pHLE0qB7g%u;llfO3$tZ@Oh4uf=&wCSXoD|=uzdZD z$U2d^oL<-CiD4ZnBt_&TDM~Q8UYi%PMvIG#y@{-Ku(>4}g8IJttys}t`}9W{I~(K3 z49N=TX@ZVYX(u%aI%V8>Fi$0>1cS1-r$7}I0?g38Qgj*=lQ+dQDEiPWuQN7-^a z=(}%_-{w!ma1VrF8tkt8F%u<}Ru|`O7{rTfc=g_?IRps@No23zrDMSI-IpL`U_-h> zl{G;M%!n7i)ZlA5`ZzgyfmU8=8$?-ywQCy8&2&X*pn=RSBUb(RYq6iCs2=0~QK!Es zO3Z@X2Q1oZB(?H=C;astLYsn{U6f!md-ucpKgK^lz5np`kMG}nKSQ`+97ZXu!Vv~N z|IL$UPaZ$po$u~FeZ1J6?>~9-tKFTatH*nV^zICdkfq%ML!CDFm${egF=5&TPlx6M zOQ+d($?S?_j>Vmh92*buBsFiC`O{l?URT-_OP{*#na)MOL^l z63RcBto-q3xG+AHtz0lsZni{U5O+~uRm#9{1EcDCrIQz>oJ@Ajkf=rOAZ`i51>&}YQbpXp zs#K`B#W$)9sN?eD%=oHRmo~iLWPistEI>=09PcBRaVd2A8$yAFmi!3+wW7ijhrNunr4_T__8OV7D?@b;Ir+EX_dH%UsUc%g9DW0!yRD` z$|EP>f`PB5&0!o|4kKm%5D`e_uc*Yf4rY3QRm#@<>;Si+1M)9E1MI;<2F(+!I37;f z4s#pTCPuNgr{{`%H_oqpFmeN($UJyx<3YS^>kzM(AXFH_G8@meDQ2|&(_?&lz}YwC4+`m&|sRFkFp zBsm0ZY|X5WPH_o~=v+dL6`(vF6LLtz-LskYI7YeXzw5k<4;2rnW>aLJD0pCC0u{ny z;CmPTMnj~*{5SJwi=AhSr_c8Hcb+_*FZSPj^<*Wtle6{F0X__aQVB!L(Auh$bmC1H za6ox{5xO;m%H%Lcy*`<0Ge~30unU!GOeqL^Y|N@-C585&__Li8&(`$1UEaj6Ux}`+ zFw^6MM=XV^L%cjY!u++NW`hMdK=S1s(K&!qqMpVtuj#CF6S!Sm;GS$H5#?T>!#jnw^CK~Psd|-fg&75pWog9EfN?G3)hF$Tq6`6 zbnZsc3pdFiq<>f_4l8bgdy z+1S~WDEL&$6}IaP3W_!Z)dBUUq`+4ipFvZ&@O8RYf>#i;+xS%p=T79C(l_uKI>N*) zkMeK$ctbBQm*4o{b)!fb5=6C*hNSi*ibK);BZ>#n{UeH-*Zm_(Ow|1&iW=ko5y}j! zaL4;cJo)5^LL%;e#DhZBxauqiPw$L zqawsebuT?AC`Wqw%G61!%m0K5%@?P-Vp5$@`zqQq%2E;^8L&Wo!g!tKvpBqWjhS($ zvelS$3bwLDu=wKVYjAmF#8frn41yyA(}w?F?5^!mM3~&rVjfGc&&1ls4HUp47jxs1 zAJ(|WCtnSn6TTYIM|SZp$uh`RHgK`2>2&-70;0;XZm2F&5ncpdYJBv4*}C>BQP%A5 zE-}*HQ1qZ{q|TQ|nGsZeNi|PfIy$7x&@?A`5$Kp>K7FaJUK5P9Bn}~oP3vh)YVZFw z%L+*YztE0oCyW<4RV*`TY*)`bCWqK~^xKcWIsMz}-4B0Tetb9k*MFb=*Q2dl{`c%} ze|r1wjYWbfefQ!7Y~JXFaG)8yMB1zs&&F9R=EUhcI7((t=)m*E*;bw*0Ho{nss-l0 zK6-xq&4P2gI#?a9maC%*cH&RZmY0VO(=IxK&E+LkpsgH9&ZTMglYNk-RetmO`~O_N ze)sNMLKxabizGi~#L?@Iuj{CG*so`zounE3IKwyQ`yc+YyZH9)$3fSOqs>vVbqZV> zmnnp*<(Zt^S_iJ$=u^{6o=?q&50a=oF#6=I8!NN*CyH_RH_Ic4-;TqRKH%ov>%S5g`sV-s>CO9(Z(qOL+{!WOFK<6e z+u@z-Ms?kOdYKe8Xnu)Bv)G?HD`&9{%h;NhPtd42x=fU0FrL;4jYfEF;p@--ALib) zH_j|e6JvJu;u&|h?eUCfg&i)#1*)r5U<64m(_PgF#zL}0GC~nSQCYS@s4|&ZLMx>l ziK@;CC0tyzS~{S zzN}_fn%7=IzYkne6q?4VAkR6&5slA9(R%|x?)jj6Z|@6pTRASWpFHPtdY7z;1E0`wnWo2d<_n;ofp1v*8oA}6;9-V8T7$EY#ga%1FJ>a) zHtlC0+$31oAem+2szugZck~BPQymKsyWNf1V7-FlA)*2COskGYF4GWRc`pTmZG))SwMbB}Q#tp|wd@QC<2_^Q%kM)Gn~)yxtxIepfDdk1Mx8 zU?w5~JED9f9$(0yZMCUXh;U7c|FmYehSOkw0-829-Sbq&Dt>5NM?)o#1SWpK=Wzdl z<2YTb)chn)}`V!JtlZTAN)#uM#P z<_VDqwmNe0QYO)}X$oWGD^kOo5+l>at20QeXOl-HgyJAX6tOIb|Mhtf42%J#1GP^u z#_d3JN4*}BNbuhUGRt;)G;2I|B9p|o;M%SqiQGjOd*HYBXa_O(rrvku7(AkyF5}?j zaj_4dP=9eShfHFt7El;D4{Wae_p&)!(x3^_@Jtq^+lxkr{nCv!L;Bd+ZV$(57Z;+L zcEQi4Sn!`Qu3qb#n;KDgLM{vSTkwkzGnF(0(Sd|&MdaN=vc?|>eD<~UOIoNeqB1pc z-Ambfaee2GfFKr0epXOFJK&a=wugy64_J$$1{Cq zaOSVCv>7(&{!d{=U!5<16qb5xstO#bx~v-#ZE?6DNcJOTyUk5trDA05m9}*h z{gPY_Ro=R}*J3&q?jaT}D_mpB&G7D1;#T;2h^ZEsNsBHO6Qo5Mb_}i3KD0x$!gf+! z4wLQD>Qxa@6tOnv6@S$M>Q=%nPYxbc3^mHTKQ$C{)(6rNAodwSQbNWYA?Vb!t;F;N zMKu8?@;+iYG+G}WJ!P^uhEo3`vZ_HfH9=BsPoicm-7_A;4UDI!$9h|1$k(WD3o<#j zGI{jtyDitP8BT(tW{OA+K?M`LTTJbej>31vIcb2NgnO0gr-t41Q^TE$XQDUV3KD?=`}2GX3ECvD|%hZT5GCJqCZDL+_>@vLdw#|sDapZ z2nv996ins_qksoqp@J=tT^A^?Ol}}60SB5bD^=(|m9Ax2P|3-8OBON(B}`w|zB|&` z<;;UVA^l@?xuFu^eq^g!A7j5yQhXRDMh7dnGO%uUa%B%bmMha;p&o-h5Zi%n_?f*b z$mOIO;+yRF;&MW39B{?+*~F^mLXUz}Fq`X(@%e1<{mae#{{HA}_I>PhoEZcztv8tQ z!h*+h7a3J>Tf>kxM>tA8Sp_@qJ;u=UV*KB7(|@X38^@Gf6NPNlb9gjp+S*qB0Jwix zoj}BCSQi-@bn#E9q^qq1eGf8;;0u^fgs)EwkaCOg;IGFiZ|osaNENL%5=%iu0wO|D z_b^^B2}<1|dSge(JYHAhXYTACg{p9<#0Jxok<`ik9O>F1b|gpD0k4*}xGq#%0Mf_` z3Q_8%di@rnQ)W4g#OcO#fNp`A24OZqk%FtDG{p0O_=HapEyBfV!Iobp6L0r08Cb8y zJq>s1eWu)WD{ru5HAthmpl+N#is&Lq)A%}nJhv@*n&sIg95NRdbHw%lO2MfFh3^7R z(|peZ%*ktaMD{_aM{8#oWkru@6h%O#YU%J(TVpg+RW|ga)-ADjh(48U1dAHU*9)0;Oz|YIj~0tf(i-~K>B4oHm^Lnt0tAgL9h7mw zIFwCV>54hV6vOw&-HNh%h-RFZ;)idDD9sJcleR-{YyQ>O<`C-79Z2*c@rC)NS^`|d z^o{Gkc(-|p6ldTzpe_UHhaIiJ`U+N}iIK?~knr;2dUK+rq|5aZHQp{=_=fyFo6;7^ zESV>Bpixikp+%#eE#b=?d^-C$snPGUOK=n8qpC!mI1KgaUFLJsSu%^aSr zN}V{N5f3uzp((3};2gEBGo3+K5WfjiQeri!*aaRIiyLXUW0C72+8ebaI(*R6?xu^l zxL4DNV~tSyOnjdwTHKGUZAww7FLQeV9E7@DY=Y^zlwrtr!_-L66)^rOb87?A@WOg_ zLY4y*>S9bq5bz%-8xG7Kg$?shtPrCa(%jr56a^)PbgYggOI(+UNTZOxu{6T5eK*>B<B zCb%G_K$?rD6BD~*L4|Ttg1KS}%vR-_c6*s{S0+n{MKH32AHF(F6%dZtLA}ah%|XGm zj|!C`Ch?;S%X`E_nqIRf@rIb+?Um&}aM>M&>`1_|VART&RTe!nQVVT9)QF1h7*lqA z%D0-GK67~3R-|6!IPUz|4_$Z1*YbRkcFY#w*RVaCwl-(hj;TI2sLNtKF(W*_4k4DF zTwZ*ttIF&n3ccA{_2YG%A$=mDkbWZAWIRRdbOzMUGly_ciyjRg#Jgd@WrU75u(yW@UU*rrI?9^euHS-DY8AtZY{$iK!3;-$Zk=9auHmtrw+iOFk4zs#NZ`CnCCk$(A0XTg zGvr}k(<8*Dt!A^I7cvOwDHj1d%uo*r|MeqOECum`6s4_zlW>j!rnj3damHzA0*_pJ z^X`eOYxo1Ov7IO*bR`T%HrWGeJZROtj79p1Hiv~~8b2jf>gyXoW@$m;=PEH)2$sQI z8cY+Gh{WRP?D}kcd4aIXn(Fk8(51xYmeG&J51`Qw4RUFdT~A(9enH|wrO^a?^!bFE zDm{Zjj58aIIOG0D(Mr)zg`jzd_5r5?M@UJfMu&+JLT(+)Kgn1v2@;WfnVJE4^ z-a)>lU%dSW?iNGi9U@{mBEWN7(==!Gl;@+POStVFzIcBwnpM$RFZvJhFD)U8hS63`_(>#Qbl~S>@_yplMnnc{0K#@LK1}#XKG~#0E!3EJRBuygH4AKjd)LE$b6`Tyedh_<1 z$(#4DZ*ShNZ{K{&@05RG&xnAF8BekzliK2eg&S%C(gTSG-5CLSxZsbnxEctD)2sB} z?rtVkqd)l*4ZcK{(Z!kUtQH(gw37R$IVA10!2Nt2yv6qj(dN|iI2Kw|gaANO>R(5-pIjmqKs{lgD9 zJozU}*$yAc`C<>A1?NzzKz%|7u1Y+i`n@|wGww=Ag|=N!FR|dXlC6P%nJ{3C7=c7# z1%=l+5Ry4>kI&$LygZvd@7IAB6?bTwrb;(LBP#W{AQ2JKg+w4k4N)Fp3&p4a7K%B9 z<-2e%27xG<>rXF)fDXC)-MjbCKlZU8;CDV2h9N`^e9B|DegWKYKjBu!SGbaE6nYc7c7}cu zh979^*dih8?G@z^o0zqAD=z?$dmdLlnarak!_wmc*dAN%P|qumJRF^BS)l{nyWWRw zN=PJ(KecAxEQFyY9$(CHQ z7)hEZ3F;YOb8>WiK7lR+N|E``h1l^X(7YG<^8LY?2y{oMRON88`F9i$s* zuUT!9C@35)y{1?cuOtL-^BQL~Kzk$VNg-1MC$ub^cWW5eNP+Psb#)a~4byO(YV2NI zv7dK+Y=6bF<^~uBZglr@Yx{ed1&r@y70@4nlI?vSflZ(SaSjdE>iHDTzNNx|em*$J zW`IyRjT!#+Fpbo%CU|R^VN8BeW|(thb#ji8KZjepXzGUM9FB+}fMD02!v?nhfUaTR+{mnem36itN)Xl=I0X)V`|t++KJg zXeZHn2tR!A?fsd54n88lV@u{AkeR-ij{@Pe5&acNlfc!ZxuZ9Js|8UpRAhi1DQ{ra zp{c{D>lrh8P7aQx9*Ra<&Z0ae`?#o~)TxXK;?lY2N+138$#~Rxljb(LqRte&yEz&D%YowM&rQi+7Ul2fB>3=ja6A;e?1Q5)vhnvA1DaPOkn1B$f zW*C))w|%f>30e?8oM;{6`42wJI2!8)vI0H6q}Bd%3D-GG?8uOc$z-~A)0TAFM^FtT z*@+p5ohq2hvI1+`c<*dUw-v<)EX}Zv^-EIc6y>{+$C^wAE@J5z{)sr|`28oUc*kOf zhC75DBR4oj{*)N}7}{jU@*$nLAG~U;i)(2(g8kzBF(214*m@kiOOSr*wwZDkEI{%n zh1Lk8;1P}l9tbL<8vFDZ5dddQr+3DeXCFAI#hEz~GIMDJctFgf%+?)20DGZF#2U|# zFQg1O8QdRWqu-P7H>N|Fp+9_}2O6e$%*pyHRSornvlsJKcwkSR5p-NP3&TXoE+Q!aKwn?-evR`*yHsfDIvD*4%;=99OUfaCcKxaz+)+wlVrr>>V6- z!@T_JhampL!6Ufn1&ah3a1vKl{TTbo+Ctd=x1Nazh?8JQ|EM3 zTL&?tQ|Xc*=tc0DB|K^soTpS5zkc!R>cyYkTz-3osCMAOOI(Jst&l;PxD#&CG|uk6 z`0~rQ5(BTm>q6Qdmy9M*}R7-fe3$9I@4P1)8JFut) z96LH%QzFNMA=qF_KuwcxkDH#laJ?6C5p_QN$19zws4Tw$Uyn~DQ6x?qB~NHm2j!?d zJM}uC0n)vB4`v=i{LLf;XWCBPD|~t`CoNC(G>eZ(pmE*-L3gxq0>O29WZO_kU_v7Z-En zUnwJuQ7G5la?U9<@-I|;NC}hd>s0!eJLDWOv6Mi_wG-3VFs-0OTO1qEBC9`*`BFoZ zqX?|!>U6<~!sFEfb}y!Z0h;1}@S)VM;Ep+6AMgr2&K_2Q(gu^~{}iZAY2PF3JI5x7 zjfL?D^+#Y-x_G-`1*_B7-@d=q)|RWIV|=m_R@vT#^S)9{+0E!fS23#wEnS)3bnajB zD?R=05_c-O&v8U0ww9fvzZg0b|7tduMspsHIF58n_cgMqmloRalQcBhT`I2Mv;lo zWJCIQ#=+pE2C#W;;4f$I$U57`aP_iRz=uB_J`i<- z$APu33X&)D23TCdWAi;XuWDs zL3$OTg6u>7lMaDc#HKkSfpWJdSSZ)k#cila4byO0M`4bKAPb}D19Efxm;wr87jv$Fsz3B8iXm>H(kPc0CMTnhRD%H2;s7b?{!PJ!f`KMq=E zs)gDHB|l~+ulcN`uk+btZrq>OclH>TXz6`4dD!u=OTvl8_BT(ZW$R%WRfUE>tPFg1{$%63 z|arJ?>{m=-MfBL{Z4n8>I zP$L4#^UPusr~EOc=j*5NrM!pnrJmr2H%1j*FM%TmUnx(UKAnhyUMF<|ZV2QCDZHah zxJz+BlAmr-XAiSu$Ja8eWw7FITkro^`I;vl+&s_i@`45Lxu_Jve;MMRQ<+G6@(>z!u_eYBz)E)DnNhjq zhK=`}%aKgn4A8U@(6w!gBMF*eahY_QrZ`gyu+0G77~8@8cnebj zs4F7%c2K>6&Im7WFW!Iii<`GPciso_&oU8;afWo&RJTEH+Q}rd&{bs{JQ2_nxTyta z0C{!;T@W`Iqu}yR;l@g}WIibDB6yg%BO+*`DT(!{l6K8HOBF~FP)LDLJ2{j+MOX|8 zuvves+9O|eSGnK0f0%oUL7~e!9bE&`bd&8-7Lk*lgwj-Wp(^;;^ z%Ppk)K(y#;UvUrg>K=I_@&2QN{R4yWH;kL%4etyk!I|hu-}NGfkY__>E4S17Tta=?vBjY> z&DzLt?#~OdWkfm>d*BkGHpl%2$Xl$Pl#&Lp6D2vZ3wU^`g~9=vjOaC2eqRTumrDhR zmJ4Kyf#al}QI!BXX0{4-?@CS2r-$2duiJM9>Jd~Nxc;TgK%kTa%kg7zvlRfHJ5e9X zm%VI;HBTPtC&;_Va=-i3c*1zsmoKp#@ezh~y2Ed=qDyB-Ll53d$@G4%Sy&t53f^=LT2h$L@sVq zxSL_7RJ)nWP|!#|tZ$Uw%unD5IOkE9vjD;|h{h_K7g+d;ViPQUuuDWsD<2O6TF1%d z+u&FD3VOmy@74GsY5{IO7UPUNLfL_)MsV$sotqUiUE|0KHzs6*$TfbC{1)&vw5a(X zu~THF+{(}$p%23owzp75Y!1G-0sEUj=<5<3~Bw8B9de}XZysmse%$7ZTCoQY_FoFfa-m; zN|0z?2 zJe!O+kRNcT!TzNol`z}1^k3_rfj-Z~;G7tuFYy{xWs+hwT9D=lXYhyx z(iSUI8?lWrbhdYhSZLYFzD9UI6PG8a$WSAz4^DkbYq8Z?qos7)Prf;Kh*L2!Oh$K- zRG-3K6#p?!1*@_Tbk`G1=#snHB7u}FJ#DttD3(5vsYCF@D5|w3;ahTnIYB8!u5^Lo zYnWC`D;PQFhjx5ZQyax!&bSW?lanhSq%a3fJbLb9y!h^5Hq4O-S~b(rPPJiD6MKdG zN^8tL0{|IJ9}AAYiJvAZ>*2t;si<_Q5-9VgTAh5yzqyFO8~!y!gml>*B0`}DNkst` zD>%W@Z;aH!;oWo+lrGoCplw*w|HV!LjD&A58PLT(8y+mMaBdA(n9iUW& zum{w`gppwXQMi>s;GFNd?THexJ^@~AFk7-RXenScARQ<6u@0^8OP)OvX#59FL|13- zOq!HU+=SS)7Hes5OwE6Ng0~FPv$1omwwFTqBe{Qs9#YGj&9T@ZqRAdH-a38MFx{O` z_RzJAUn%BP(Y8KSuEWb}pn9x($-7;-F$1?H*hX z{z%EJwQnTjrb{vGx>8Z*D>&t!b_MvqPrL$Nqqw5f1Jh(9)Z};^yR;2Af@-GH)1X1W zaiR-m;oApl#h)@?mS~|R%OZD!Fc{0df;+X2x7=*pYX#nBx+?^#z%l;88nPp*TADtX z{5KFX!C;`wL9Fa!rbMz5-2JEPLt{(4A=(gp9S-#r1|XuIU9rC0Eex?Wr>e;-csnSc zsQMYhWL6V##{{$tT_j%1TpZ3SnN%W;3+$?Xe^J1i1aQe+kO@!`_a1L-P2G~)v@9zn zv{iO!6zC0KUL-Uf0N^k`XMqxP6ZW6(1r+DpdQo25KNfzUA3qlF#F$ck3^jE>d%Acw z*O#PL`dG3kV*I7!*P@LmKZb2rD{tZwuCBLI*@|(LS#%b0m5xe(P0@9n*2z;#Ol0GKoZ!)4cyv@|LLk$?L>= zDw94PXDWoHYC6VMGAo9Mjc~=qhTc`FXls~=g(*Vehq?EuSHS6dj)f;W0apOM&G$Q~ z=&(}UG{U7F6Yd?z2qlXWTzqC*`v=(Ll3)#Icpbd42I;1^r6*Y9^SBeBfK&vVozzl|mmqo+P6!<2 zEKf8NKYR9f_KKkjHqNjb;*Wu{+)0q65&<|#I4{wk5A+isUWG(|KnujpVGTfXI;gun zPeQPVP0j-vre3^zck}l4`r8+8UwlJ~*>`=LEa4tp5i_4@SKR+8Nj(yUfClFWUvsEA zi|&HMbN8sjE!Juh^$O}!0PP~9e2-Un;Fb6q& zi2Ldq#TKt$-Mn~rTUQJu2E%UIOoYqm=)ZwKOG|ygv5ETVdq+I!VF-Y?*V!rPk{|?d zJ$OT$EXgP$f^7L+i%d{T3$F`hMkYT-VH4#JWCU;nfKZb6V{oYkKrK*2)zzObR#Z&2 zL3N3C7SeNq4}=d+eL)S=a6S?Yzk9?bwZX^)bw=%um&x(pNip$MKy(xAi1~`zmQ)3o za~&}`+!9dTJs%*=oauFeiE+lxLvNp&+Q&4NDha9mdo!WE}SU^kDjgJ?~%j;kKb&eX>ytPTiPMgTG(;a z5F^+N(G+N%SXgU$IzMpZMrvvVWq|J{XDhOjSCc2$OoMKhMgos>pEBvL>r0tw0?1Mc zC!}!mej?30x*BzF@Pi+KfD!rIW%9wb`>G>x0G?hi36TB6mzS7C6q{$T3#^ed=rWi$ z2e*%x#LEC-^9j)tzKC~?IlzsOtY^q;A(r9*p}ts^oE7C#&URt=y?HzN_D83v&!WHY z*1vr5_U6SeUftXqG?(mB4fN|lTyyW5Sk ze?HJp8I9Q_8^-TMDV_0?Qimq73R7a@RgkpQ^6BYZ<^(>izy~idI)~SUJVHOUZ4P8z zpqLdbF*iLt!a3E zz3=hW5ZhN%40LiuX~t!9R8E1hcI~lyaIaNUN5r}PN2|Vya%QaW8=|iY?vRR|oC;kn z-8)lJ=q74xT!HeonRL z!|jLv11CdM0jeVP+`bB%(5XWG)UC4gtHu?55CDz(lQBoQ!BhGP9nZ|&BsH1J6q%lI z)Tu+fc!JyF=UAFyw?fh8t z19gGUWLsMSmCcL(L~%y=Vqn|5#qRzAWs=UYp`4#{!|D~C!1fqgY>-~n%-08n9cqyI zFD_3BGVyP<0=EPC59Puj7s#3*(|{tbu%((@QT`ap5S%OV@HwD0R16MAYQE{qcf_4N zA+4Dy<*&p%(Zo?FmS9BoW+8+E>X!`LaABO`pkk^~p&|75tzRRcC;R4{r)Z!n)EIK6 zz`3-P_zVd?D{UTkegV{n^NcCl2$3mt5!v0PzR%P_MBgwCFw5Mpb?OMRae8F1C@c<# z{jy1#G+$ZUP8q5P#(uP8@2HFHj2JwuoK-@>1f+TbHN;*!o9eHoJgxPY7M6Si`yyio zMx(8JsRAXXwqDdcN6jNH81aiW>VeeHtw4Ha^07=6^ioZ$R3c)Gq9u5~~UP(p$>{s1ebKy!b?D!@ZNA4;Zkh z`Jk0z`D{89wvGnppkj5~&{lDH&iBgUHJ41IQ6n1+)Y9#oeT+JCk1;9M6+NZlrXB2h z25mo*RNx!_`_S-P?s@3sQnBqvNF3nwBDM7@V8QDAJb@B29_k;E7wIxQ-nn$<0HZTE zL$VZ)4#Q7qYtbf$;Hz#SVqna6I&smJ^fgRKBh=Yy>ta zM;@^h-lIX&)(mhz;s1230QLbBYt#}=o;)uDM&aHD7M)Oi=*^gRRLqUBU&T`hK~=?P zsD_1{rI#=o?4z&&b?HFF^7Mn3E5fn|yZ5DENnJ24Uo*)`P~;-`@1VD|WjVkX9?Jqt zG!jJC=O^(h2Gsd+g9BWWVB8yBETG^AQx6ara4aeoO_KA+l>*~X%nUUYki(FGlqUAo zbN^A=zqgIiJK0W(orC1ZZHKKMUN~oZ-tT03Mvumc+k$PJhEgo#@IeqT`JfAJd;YQm zW7eXjt7G4ckZuSI>J*8J1L9(pSzn(l+fce1rjN>LzqUA#kvpX}rUX+PEt4EFskKz7 z0{J5@&(4rW9#v~+NPln!(d-(`*>H(keSkdCD~G$6{M>;e@g*%nc@!%Cj8f1gCofAE z4r7pVieuN?7IVUwvyPV|^lmlHL^_hX;{colYumFF4P+holwDtc@y)xJ@2+9ddwZKi zKoD?dc~owP{m~NyrI$oyhL6eE3oLf!9tLB&N@tP_@VYPCa8=3Lv26sd=gU$zIpK)e_ns}@@tFz$5?QE zA0EAZbrCYdFJ8xH*l+-rXzt#NcP z+ck>$kW&@ANX6n-Gi5o5&T{Kx&>POL4%<<7;epA_)MyBzf)M9|iyZ=!m20qO6`w^H zX4UgjRO{)KO4znfdqAvF_yW3f2lF*@uUN1@N<48d?S>hKCV&MTiuIWk6V-weHZU|z zHxCkqR?D`VJaa`YV7Zu+*0q$OK~^kQSIIcCn^$+kiL;PU`aNjVU0mTO*{Xv+_^xAv8j1Y z1>0e;1Jf<>7@VB`+-BC~GmD3B=t^<3Ubr)JXEb6=J_ok8DIDWWr@pIoZ0<^wYm-n} zfD85m*{8@tRdt5c8bzFNkb%PxcLBieA><~Rek`I24c(R=61QPxIy6I;#g zL17S=%AD@-a9S1}W@z@aS<*Q~)>o@?U?AD>O z6ilE+VB&UqzTn@)7W;3ox_yI@t1yv@4~(2Ht}Z|=bQju_%}VNLk!afPU#S{A#G$lr z)Vc_L2rn!g0K_;c{k88#Mw2)PO3E-tG=^!htfjM@QQXt>0^dEw!pVOtP5}A1@ZvRo z$%U8x7~(3n5v-u8@_7^flAys)*VA2(4&MwSBa4Ys@B?tRIayKEaP z?`jn)rkW~!i*rLk$P1JeER97Spr*3ojSy!S9&M3u8~8y5{ra`AEeHk2KF8*oA>awt zLDV6)HI`euR!MfPk~`NPXyAIWDn-O$%k{QUU6Roj0tBY#AbtJrcY?MKcsz^i6VRs( z5FB3qB=i;Zi_dq)N}Beg+6z6-lh7k-?P1n#wkvO;&5(}zL|F(dXbtO^$yX!w7r?h4P@04kFflU{5vKm2eNotqBmQ%0%lawJ#wKt zte+?nnt^&&jg%^znR`NbC3wsYip7t9b(3Z!GqBsA7A{0M`SCwu5Sr#nFJ zz`KKfC*AQiI2}bx1*c5bS-z(jMS0%95ZaPDK(3Q6{TEzd&j3A<;tiFUDA5bX4;+t{ z42nTJr{~ZbM;JNlFj2Vy%Y50Xxi%IXsOkvOMP)-!UB;CnRsgMXxri*9X&6}KYV&-4 zN0BRo>XnP)FA4xHad!*T1w;T=wxtg>1VlrPD6gI$&sqI7sgQitTBt5*P$|xZu&mL2 z6?@Wrgm_x5kASY;|xXI8OxHwEG8orD9DQr=&D3mCB?+{V8T(DhE``?$JZ8OL2b0 zRfm^{LRFKKsc>pUmml=!X}7@gj|ubIBHl`vB`S8AQzB@?$D1}t<+Liv6d9SQAwiz@ z@vE=joWJ?<=K2J>O2}yJIy*KcF1vP~%syXbnfW-&%*d|c8$I)nO1KlOMANNpEwbk> z9wq6kx{8s|JmAG+hf715R}C&c;U<^GQoIvf^*nJ0wg(0+5DMb%zw|d!Nkd3H$0r*I zVB%;^YE@JcDu`u1JZw1JM()voBIZ$o3^GalOoB<-;m!=FlhkR;lVp?BpH*4KU>C+d za`X|?w8Bji9CpPn!%L~&w=Gm>r`*g3CNTQe*5!5*LVqzVGmi2c;{PN31D+E`g9GV& z!e%fc{-SLe=@6xfMXKQqqr{YP-%OG;gX%Z~DNpv1Ee0523c}Y0CKd;_7aod)Lk8oH zZoa#%wV{Wg!iefyJ)2G8p6$Ozpf^@57++vDh4n+&gXBm&#T*-H0>`@GDso$UwdNf? znAGkNML9x$1%*~n?%V~T2*F>d6A85{6)r3vwHzPMMh`=+l4?VZ9{TcD33xn1cv?m@DN*hO; zmDY);-3Md?FZGYDMW)nLY8A=crTieUh*cHf`M#v@4=1n-+PMp%#RZMUY7fN@%+iRh z3yb3Q=7du4;%o{p$48kqfm==6ifYT8F+fS0u+Yf?_9}V5^0Z6)hrKwvIxTcS#*$L9 zm~7Uk=>$bv=ZtuQw%y4olB8}CBa0aM(rzNfo|WI!kI+;I`^CF@g-tgn08~fTEnb3_yFARLhJ$=#{zXr z{<%jM*rsmc^`>r;SW1Hze+(h&Hq+3BCrpMwgYU8$qtIahKuucKSMtLYmeA8l)kd84>b>k?b7tLGwV)hd|IkYho93W*R8i za4|$wx;pvXB0tI;!YjSpPRM369lDv)`Udn(!U{^MPPKOS?V!X6R+o8fMFfs!h>y*r zAjp8cnbJohg_3g%2`v-G$*WXp{aR8PL9>$7Y@)bUCQ+ZW%%crSp-sk#f-%5avH%uAkR&fwPUQtuF5%xSJwUuHlFy+jABtBioH4oOr!S{^^t z;yWvb25dehw`&gj2>j z+ypLPGYnrgO_>7eFNy&Mcc|D^C{m%kW85Oow&_TwQup>jjFXd&5a?HX*Bg2dNKwqb zy{)uY7ijAZu4H^MCNeQ~U2f~HDmJjbxm~_}`R47*+rNOA)ph~XLm@SiKTem~Z$VOv z+Po6&KBb~q0cFS;0DiWSPdhnZ^-^5^^%-oAd~MtWn8aknQ2C7LeSLa0MfqyxKv-SE zekRMe%8ey}ymTf^#gxm?XyX?2j3>8^2E6qj80N)$@*-Eeh($8RPQKk}JSI>V0UR!48gq zXb=Xqu$Sm&0Ez41eTpy({1ngfBVw*EKpKXq83e(A2K6zmb+pM`1u}U3Q4F!t_S2G#EtUO*0h3#TAVB1Ywso z)(#DZ1NHf&%4F}P_d>x1QE74^CuFff=|{=<%;LPGfo=k8vsyyy+&553?UNAm&xzY2 z_mVZTJHnowO&llYXz1>%P-T-T;$7ZcZd*!xg0{5d;^wammJ^qZoTtg5D9iQ*v zlv~$>OLJRu1JuNa0rROc57-!%@bo9{T9#Nb;PLaPKcUYzQ&K5TG`dl2boUXvUD2M? zDm}8wD*)0FCYS`T)8_#Zo!x>$M46D!UGv3|+K7PIhvFuf)L*_paObN#Vj}iECZasI zo<`Mu2OxpC>kCc_xY-FYw!xold%|jilJ=i<~&O@&ptbH@tV84FJ8U;`t{A1Op(ULCC06ij_7QQ z3Dqk-nL-lvh3QFtnKPZpQH5TicaQSP!#f+FZPd2Fh7H8nXy-y#XD%scu5?c*FRv9} zUvju+8iG7#E>IID6N_23^g8%FGVrD6$o}8~_&SUBI2)s!)$=(r1!oQE>N(;p)M@KN z-vG1pbz&T~JQZAPB$NQuhz-`HA+I4CEOijwWUPh{JQ6xR`jQ}8(3mi8!C#nqCW~Vr z_Eg{rf||?>{oTW_!V;Kk-~uC%N%KNfrFlvWDPk}$TDpNn1KFkb zCdq$>_8Ltd*)r3Y@B|gya0}I>#d|ZT(Szl|?5U*#D9*i2gW#{3Qj@@}Wm7E|j6l_7YgRs3ppMP-J7+l>MO`4Nv zoYrbZ&R=3=u&|)X&&gSN)@2w*mAeE^CiH)ler3IR!iaE88MLF(8DUX4?*#mCKv4&b zn#^z?7h}hvPOPz_G{rpVBqb0jFQ8gCiX=3GFA*S-+&Eq2tzjBo7*c=|-O^61SOB6Q z-R6IH^kn%EF)(z+(@$-P5+TsR(QjeCjz+b+0XFqU&j~w8#Sn^io?4s8qT&t-0!PX%wE4surZ0>G%}feedQ(de z;U$5!v9lf`+FQtfmk6lV{@Hf zTvqZ~(QRK$ixLh_WW=gZoT7dUs4fX>Npgra^ri%;)e!}n95Q0A*?j$DbZZ?w*RPFy zFU!v*ZCH3CrFa})z#69exFO1McXBLx&~+?&K*Y;C5byf_Mjm)E|Kvi_Pi&*|2yhbU zmJhBN6Np5UkLa`qXRl$Abh7NzO7YXP7UjSgjZ%wppmlRs*7Nm~{Q(!OXzMnlKXv_) z)=#uMLi6HUHr($hHnBK+V{Nq0p21UI%V4CkiIIxjd0zaA4AEUzS*E?F!f}0nKL&nd zR-slAYUUNxMnSL!?T#r*Zp(h^8>UYd-N{V*W0URO3fBSZ5>6iMt5|<)B^xwOQrxT7O*&O{;^2NSa?uDFcm->$339EhUs>W!nozQ!2ApGU@XOybQw}*z|yruf0jj@#m+mb z7alsvYOYeuCi0Q+2uO*7=awOxWnb6=%0A}FXs?YR&gx;cdB9$mgmQKB?&cQmz;F!s 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 z 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

      Ygb)0V36c!aC8>o!`%d`B zrJG&jPeBL=3Jl*Q84RL9pON8S9Lis%7Xu$kF0tVm@w_MXVo%@o1e+sy#B4`}iZ3&D z%ZsT)C$sSt&}5-zJcY6n7|Y2RtkM8jzhH8w;|lBB34q0hA-{{aA3nZ%`@^F!S&&TEm6N?1 z{Nq1L2b#NddUCDX`)f(@h2+@w>4qvTL)Vs2rgT8BZZV*73cH?Nk5|ZVbh~~@UBY&D zEi?|4UogTp_S^3;ZhgJ_UGN8XsccEKgzjrcR(c?4M@EPxh8<%!7-gH*`h{Sc8j1$L zB*RuYMBmWJ%xfquI%yNwCdaRETtT1;LKz?e3oh0X* z`qEX5gPhk|D-Q4}DxO#q;8yeyXm}|VnvutJnQ#LcGb}B5E1)6#5RPaYH5%u@d28V6 zDve3WUG5o@>yf{hFXp$1CqUu)U5d~TWCs8HyHL=P?J_-OWJe1HUAS#w@rGcA9Ai=+ z-tquMK^Bc4$q=g%4lDpXAi#YLb5C!<@(}T$Q0#t=rx>8u1u%kL-dxNVT=H&{7Tm}U z`7tm)NNPT)8%_$=QQ;)x<%DViq+~>(5X`OP<=w2<8jdM?7^Pz4ztY{5b0|iD=+}WI zXwY;**!I9Nm%14^*2v&e?Pu}%kO$lRzo5k`)oJ6LiU4UROok+v&kF-k*NcJ_Y&V0@ zh3YD=(8WfMd7zv%ho{xbowoS0L?h_t0=^hn4ON%)^imlF)h=XO3L8S9pkuVMvRai0?3n^x~>GmTNCal&73c{ zAR?RH_je2EGj0&@K}%PDS1IgN$YhVqBk!QZ=()2HA7YWUt{qh5rRA<9S?9;NBqfeT zzIklsiKDZjc)C4$n(t`C3>=D!#C(pJzPfnsSxj%$bY%25> zGiWx!SkbH)Y(SNbE;qNy=>BQ&pSX$lLKtZ@)FWxAJ^G*echcL+v07p#GJc8Q?DX2w zSvaoV0I3aXox(gH4SF&ZH{hD#@4*M*f;{xmSBvfSZV8&WdjI$VIht(cx$c+_n0559 zjFz2F5+CuG$S({wXYz7~0%X=e%U*7L*a)V?S1_BD@4x$|b6ZkZxs}+fWFg10WD7ZI zVosUBl2gi}0DPfB!-h^G*9+CF$Dh`&KqgKk2@mYq6+2Zz#0g2wK)ReZ>B6RIph+&StW0vWuQEx+ z!%=DmHZ_wv><&yRf9tUbZicvBn*dj=SZBdBksb1TftbKK5f~WgUTaSr2+V|k!=1fs z(S1DpFjqql>oP45sW=7W6Ob4Brh}}y{n}ecnd?jDfxf)C0O2*)s}Lvq2Ix-Bws59+ zG8v%>&#r*Lo8T3{MO-ZG;YwGQ8}xz11Q+~5K+kl2FU(L}r!ml@qm&*7X#}qD6Aezw zvda3TS7lxFr|rB0$@gmMM=1k;#RA)eS(Zyla$phwTuN|Y`g~!;-XU5urwx(Y!mUbH zX1k~Y4OkF@S8mV6c9qS4C{S)Tr}ZO_yfF{evVR>4hgZ2`_b<<|E|da@#25^Asp_bBht8gn0B|bc*!M zsqonq^tdqBk$lJ)9`4t@BQ!I^pj<&isZf;v2JwL_f@{2-P@JD!5~G|xpIgDM~QXFM0FPe1)!M4W!&xiA#u`HrweN1yXt z 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�oauqU=yLC^TIHjTC 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

    lB5t`YD~$k{kN1V$agG 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

    nP*18pnY$94GfiVVAUeS`^`6_o2LD~Ezra$ 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 clMO?}C+{QgT%#*yp-*}r3`HZg^ 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

  • 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 literal 0 HcmV?d00001 diff --git a/Debug/Core/Startup/subdir.mk b/Debug/Core/Startup/subdir.mk new file mode 100644 index 0000000..60c6431 --- /dev/null +++ b/Debug/Core/Startup/subdir.mk @@ -0,0 +1,27 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +S_SRCS += \ +../Core/Startup/startup_stm32g431kbtx.s + +OBJS += \ +./Core/Startup/startup_stm32g431kbtx.o + +S_DEPS += \ +./Core/Startup/startup_stm32g431kbtx.d + + +# Each subdirectory must supply rules for building sources it contributes +Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk + arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<" + +clean: clean-Core-2f-Startup + +clean-Core-2f-Startup: + -$(RM) ./Core/Startup/startup_stm32g431kbtx.d ./Core/Startup/startup_stm32g431kbtx.o + +.PHONY: clean-Core-2f-Startup + diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.cyclo b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.cyclo new file mode 100644 index 0000000..15c31c8 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.cyclo @@ -0,0 +1,38 @@ +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:148:19:HAL_Init 2 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:192:19:HAL_DeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:221:13:HAL_MspInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:232:13:HAL_MspDeInit 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:255:26:HAL_InitTick 4 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:322:13:HAL_IncTick 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:333:17:HAL_GetTick 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:342:10:HAL_GetTickPrio 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:351:19:HAL_SetTickFreq 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:384:10:HAL_GetTickFreq 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:400:13:HAL_Delay 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:426:13:HAL_SuspendTick 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:442:13:HAL_ResumeTick 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:452:10:HAL_GetHalVersion 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:461:10:HAL_GetREVID 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:470:10:HAL_GetDEVID 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:479:10:HAL_GetUIDw0 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:488:10:HAL_GetUIDw1 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:497:10:HAL_GetUIDw2 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:526:6:HAL_DBGMCU_EnableDBGSleepMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:535:6:HAL_DBGMCU_DisableDBGSleepMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:544:6:HAL_DBGMCU_EnableDBGStopMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:553:6:HAL_DBGMCU_DisableDBGStopMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:562:6:HAL_DBGMCU_EnableDBGStandbyMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:571:6:HAL_DBGMCU_DisableDBGStandbyMode 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:603:6:HAL_SYSCFG_CCMSRAMErase 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:622:6:HAL_SYSCFG_EnableMemorySwappingBank 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:637:6:HAL_SYSCFG_DisableMemorySwappingBank 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:655:6:HAL_SYSCFG_VREFBUF_VoltageScalingConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:671:6:HAL_SYSCFG_VREFBUF_HighImpedanceConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:685:6:HAL_SYSCFG_VREFBUF_TrimmingConfig 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:697:19:HAL_SYSCFG_EnableVREFBUF 3 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:723:6:HAL_SYSCFG_DisableVREFBUF 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:734:6:HAL_SYSCFG_EnableIOSwitchBooster 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:744:6:HAL_SYSCFG_DisableIOSwitchBooster 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:754:6:HAL_SYSCFG_EnableIOSwitchVDD 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:764:6:HAL_SYSCFG_DisableIOSwitchVDD 1 +../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c:774:6:HAL_SYSCFG_CCMSRAM_WriteProtectionEnable 1 diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.d b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.d new file mode 100644 index 0000000..5f5f484 --- /dev/null +++ b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.d @@ -0,0 +1,66 @@ +Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o: \ + ../Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o b/Debug/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.o new file mode 100644 index 0000000000000000000000000000000000000000..829cec519ab74974b9f8f35ab5cfae0cb59b4d60 GIT binary patch literal 1153232 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 z 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

    B}OO@Yl5rmR}3B^EYW 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�Ekcv;bJI@3iX-XRAAw|m)v8MS(X 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 IBYxcf2NU60djJ3c literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/main.su b/Debug/Core/Src/main.su new file mode 100644 index 0000000..d6b722f --- /dev/null +++ b/Debug/Core/Src/main.su @@ -0,0 +1,14 @@ +../Core/Src/main.c:105:5:main 8 static +../Core/Src/main.c:190:6:SystemClock_Config 88 static +../Core/Src/main.c:237:13:MX_ADC1_Init 56 static +../Core/Src/main.c:305:13:MX_ADC2_Init 40 static +../Core/Src/main.c:373:13:MX_TIM2_Init 40 static +../Core/Src/main.c:418:13:MX_USART2_UART_Init 8 static +../Core/Src/main.c:466:13:MX_GPIO_Init 40 static +../Core/Src/main.c:503:10:get_actual_vdda 24 static +../Core/Src/main.c:525:10:get_calibrated_value_mv 16 static +../Core/Src/main.c:532:6:adc_task 8 static +../Core/Src/main.c:546:6:power_switch 16 static +../Core/Src/main.c:562:6:HAL_UART_TxCpltCallback 16 static +../Core/Src/main.c:568:6:HAL_UART_RxCpltCallback 16 static +../Core/Src/main.c:714:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/Debug/Core/Src/stm32g4xx_hal_msp.cyclo b/Debug/Core/Src/stm32g4xx_hal_msp.cyclo new file mode 100644 index 0000000..aca77ae --- /dev/null +++ b/Debug/Core/Src/stm32g4xx_hal_msp.cyclo @@ -0,0 +1,7 @@ +../Core/Src/stm32g4xx_hal_msp.c:63:6:HAL_MspInit 1 +../Core/Src/stm32g4xx_hal_msp.c:92:6:HAL_ADC_MspInit 7 +../Core/Src/stm32g4xx_hal_msp.c:164:6:HAL_ADC_MspDeInit 5 +../Core/Src/stm32g4xx_hal_msp.c:210:6:HAL_TIM_Base_MspInit 2 +../Core/Src/stm32g4xx_hal_msp.c:236:6:HAL_TIM_Base_MspDeInit 2 +../Core/Src/stm32g4xx_hal_msp.c:261:6:HAL_UART_MspInit 3 +../Core/Src/stm32g4xx_hal_msp.c:312:6:HAL_UART_MspDeInit 2 diff --git a/Debug/Core/Src/stm32g4xx_hal_msp.d b/Debug/Core/Src/stm32g4xx_hal_msp.d new file mode 100644 index 0000000..95aac04 --- /dev/null +++ b/Debug/Core/Src/stm32g4xx_hal_msp.d @@ -0,0 +1,66 @@ +Core/Src/stm32g4xx_hal_msp.o: ../Core/Src/stm32g4xx_hal_msp.c \ + ../Core/Inc/main.h ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + ../Core/Inc/stm32g4xx_hal_conf.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + ../Drivers/CMSIS/Include/core_cm4.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + ../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +../Core/Inc/main.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +../Core/Inc/stm32g4xx_hal_conf.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +../Drivers/CMSIS/Include/core_cm4.h: +../Drivers/CMSIS/Include/cmsis_version.h: +../Drivers/CMSIS/Include/cmsis_compiler.h: +../Drivers/CMSIS/Include/cmsis_gcc.h: +../Drivers/CMSIS/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/Debug/Core/Src/stm32g4xx_hal_msp.o b/Debug/Core/Src/stm32g4xx_hal_msp.o new file mode 100644 index 0000000000000000000000000000000000000000..ed10cb199682659b64f4183616d852083d21bddd GIT binary patch literal 1151876 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 z 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ρ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